Thursday, July 20, 2017

Digest for comp.lang.c++@googlegroups.com - 20 updates in 3 topics

Gareth Owen <gwowen@gmail.com>: Jul 20 05:10PM +0100


> A tautology is a thing that is tautological.
 
> You can make similar statements for any language.
 
> Saying this isn't adding anything to the conversation, however.
 
Actually, it is, because its clear truth refutes the childish notion
that it is not possible to write readable C++.
Siri Cruise <chine.bleu@yahoo.com>: Jul 20 09:34AM -0700

In article <okqia1$ev4$1@news.xmission.com>,
 
> >Some C++ is readable. Some is not.
 
> A tautology is a thing that is tautological.
 
> You can make similar statements for any language.
 
Except Intercal.
 
 
And APL.
 
--
:-<> Siri Seal of Disavowal #000-001. Disavowed. Denied. Deleted. @
'I desire mercy, not sacrifice.' /|\
Free the Amos Yee one. This post / \
Yeah, too bad about your so-called life. Ha-ha. insults Islam. Mohammed
Keith Thompson <kst-u@mib.org>: Jul 20 10:08AM -0700

Bo Persson <bop@gmb.dk> writes:
[...]
 
> c = pData->foo(42);
 
> and pretty obvious that it is a member function. So obvious that you
> might even remove the p prefix from pData.
 
c = foo(pData, 42);
 
could be a valid call from one member function to another. A pointer to
the current instance is passed implicitly, so pData would be something
else. Without more context, you can't tell whether foo is a member
function or not.
 
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
"James R. Kuyper" <jameskuyper@verizon.net>: Jul 20 01:33PM -0400

On 07/20/2017 11:30 AM, Richard wrote:
> [Please do not mail me a copy of your followup]
 
> Richard Heathfield <rjh@cpax.org.uk> spake the secret code
> <okpv8r$4f3$1@dont-email.me> thusly:
...
 
>> Some C++ is readable. Some is not.
 
> A tautology is a thing that is tautological.
 
> You can make similar statements for any language.
 
Are you sure? Could you provide examples of readable code for each of
the languages described at
<https://en.wikipedia.org/wiki/Esoteric_programming_language>?
 
In fact, I'd be amused to see a readable example for any of those
languages. After a quick review of the list, I think that LOLCODE comes
closest to being readable.
"Chris M. Thomasson" <invalid@invalid.invalid>: Jul 20 12:39PM -0700

On 7/20/2017 3:09 AM, Richard Heathfield wrote:
 
>> This is a straw man. I never said this.
 
> Fine. But it's partly true anyway. A more accurate rendition would be:
 
> Some C is readable. Some is not.
 
I have had to work on hard core macro laced code in C before. Think of
something along the lines of:
 
https://github.com/rofl0r/chaos-pp
 
It was basically unreadable, until I backtracked through all of the
macros. Even then, it was difficult.
 
> Some C++ is readable. Some is not.
 
Hard core template meta-programming can be pretty gnarly, especially
when its mixed with a boat load of macros.
 
[...]
Ben Bacarisse <ben.usenet@bsb.me.uk>: Jul 20 09:45PM +0100


>> Saying this isn't adding anything to the conversation, however.
 
> The conversation, too, is without merit. Language wars are
> pointless.
 
Wars are, but conversations are not. I would hope that c.l.c still has
enough reasonable posters that discussion of C in the context of other
programming languages could produce some insights. Obviously it will
produce a lot of rubbish as well, but that will be true of almost any
topic.
 
> Everybody has likes and dislikes, and what attracts some
> people to a language will repel others from it. That's /why/ we have
> different languages.
 
This is not a reasonable position. It makes language choice appear to
be largely a matter of taste, and suggests that the panoply of languages
available today simply reflects this diversity. I'm having a hard time
believing that that is what you wanted to say.
 
The technical merits and capabilities of programming languages have had
far more impact than taste. And social and economic forces are all too
often forgotten. C is successful, in part, because Unix was written in
it and hundreds of CS departments had small machines running Unix.
Algol 68 failed because it was too complex to implement. Initially on
all machines but then particularly on small ones just as they became
more and more important. K&R (the book) helped C enormously. There was
nothing like it for Algol 68 (partly because implementations were slow
to become available).
 
Quite apart from these, professional programmers must overcome their
likes and dislikes. I disliked FORTRAN in 1978 but what else are you
going to use to solve large systems of differential equations when the
NAG library is sitting there ready to use?
 
In the case of the core issue of the thread -- writing safe, correct
code -- I don't believe that anyone considers the language chosen to be
irrelevant. The question is whether there is anything that can be done
to make matters better. Whatever it is will have to be a long-term
strategy because there is a lot of social inertia in programming. There
is also a lot of unavoidable technical inertia. Many bugs have been
added to otherwise correct C code during the normal software life-cycle
and using another language is simply not an option is these cases.
 
In the sort term, the best solutions may be social -- improving the
dynamics of programming groups, more technical code reviews and so on.
 
<snip>
 
--
Ben.
Richard Heathfield <rjh@cpax.org.uk>: Jul 20 10:06PM +0100

On 20/07/17 21:45, Ben Bacarisse wrote:
> Richard Heathfield <rjh@cpax.org.uk> writes:
 
<snip>
 
>> The conversation, too, is without merit. Language wars are
>> pointless.
 
> Wars are, but conversations are not.
 
Indeed. But this conversation more or less started out as a war.
 
> programming languages could produce some insights. Obviously it will
> produce a lot of rubbish as well, but that will be true of almost any
> topic.
 
No argument there.
 
> be largely a matter of taste, and suggests that the panoply of languages
> available today simply reflects this diversity. I'm having a hard time
> believing that that is what you wanted to say.
 
I think it's a big factor. Of course I don't think it's the /only/
factor, or even necessarily the biggest, but it's very significant.
People wouldn't design new languages (except, perhaps, for fun or the
experience of doing it) unless they thought that by doing so they could
improve on the flaws of existing languages. (If an existing language has
no flaws, why not use that?) And what constitutes a flaw is often a
matter of taste. For example, we have seen in this very discussion that
some people object to function-like macros, which were deliberately
designed to be function-like, presumably because the designers thought
this to be a good quality.
 
<snip>
 
--
Richard Heathfield
Email: rjh at cpax dot org dot uk
"Usenet is a strange place" - dmr 29 July 1999
Sig line 4 vacant - apply within
Daniel <danielaparker@gmail.com>: Jul 20 03:00PM -0700

On Tuesday, July 18, 2017 at 1:34:48 PM UTC-4, Lynn McGuire wrote:
> "Death to C, ++"
> https://techcrunch.com/2017/07/16/death-to-c/
 
C++ is the only language I can recall that some very smart people have
described as an abomination, notably on comp.lang.functional. But while
comp.lang.functional is largely defunct, this one is still going.
 
Some day in the future we'll have more languages with more coherent, less
vexed, abstractions than C++, but in the meantime it may not be worth
anyone's time to produce a stop gap to C++ where other languages still won't
do.
 
Daniel
"Chris M. Thomasson" <invalid@invalid.invalid>: Jul 20 03:04PM -0700

On 7/18/2017 10:34 AM, Lynn McGuire wrote:
> But, if one cannot walk the tightrope then one should find something
> else to do in life. After all, working on the high wire is not for
> everyone.
 
The Joint Strike Fighter:
 
http://www.stroustrup.com/JSF-AV-rules.pdf
 
C++, oh yeah! :^)
Ian Collins <ian-news@hotmail.com>: Jul 21 10:22AM +1200

On 07/20/17 05:07 PM, Gareth Owen wrote:
 
> Because - as he has proven over and over again - he has literally no
> interest in anything that challenges how he has already made his mind
> up. C++ is bad and unreadable, C is smooth and elegant
 
The lack of a response certainly backs that up!
 
--
Ian
"Öö Tiib" <ootiib@hot.ee>: Jul 20 03:47PM -0700

On Friday, 21 July 2017 01:00:43 UTC+3, Daniel wrote:
 
> C++ is the only language I can recall that some very smart people have
> described as an abomination, notably on comp.lang.functional. But while
> comp.lang.functional is largely defunct, this one is still going.
 
It may be matters nothing. Over times I have heard "abomination" said
by smart people about other most popular programming languages at that
time as well. These were COBOL, PL/I, Perl, Visual Basic, PHP and
lately Javascript.
 
C++ has also been popular to bash. I don't know why. People who don't want
to use C++ don't need to use it.
 
> vexed, abstractions than C++, but in the meantime it may not be worth
> anyone's time to produce a stop gap to C++ where other languages still won't
> do.
 
We have large pile of programming languages. Soon likely more than alive
human languages.
Daniel <danielaparker@gmail.com>: Jul 20 03:50PM -0700

On Thursday, July 20, 2017 at 1:07:55 AM UTC-4, gwowen wrote:
 
> he has literally no interest in anything that challenges how he has
> already made his mind up.
 
Of course, that's not unique to that poster :-)
legalize+jeeves@mail.xmission.com (Richard): Jul 20 10:53PM

[Please do not mail me a copy of your followup]
 
Ben Bacarisse <ben.usenet@bsb.me.uk> spake the secret code
 
>In the case of the core issue of the thread -- writing safe, correct
>code -- I don't believe that anyone considers the language chosen to be
>irrelevant.
 
While I don't consider the language irrelevant, I've found that
practicing test-driven development has done more to help me product
safe, correct code than the choice of any particular language.
 
Between C and C++, my preference for C++ comes from the "zero overhead
abstraction" facilities more than anything else that differs between
the two languages.
 
One of the earliest open source contributions I ever made was an Xt
widget for hosting a PEX 3D viewport. You can find it under PEXt in
this contrib tarball on the x.org site:
<https://www.x.org/releases/X11R5/contrib-2.tar.Z>
 
Learning Xt and learning the internals of the X Window System server
were very instructive in teaching me OO design principles, even though
it was all implemented by hand in C. The server code has a mechanism
for doing derive-and-override in C using function pointers. The
server has good abstractions around various resources: bitmaps, fonts,
graphics contexts, windows, etc., to allow for extension to those
basic items as well as customization by a vendor server.
 
It's all quite nice and is a good example of how you can write good
code in C. But man, it really imposes lots of personal discipline and
it's easy to get things wrong in the boilerplate. It's simply much
more productive to have the compiler do the boiler-plate for you
instead of managing polymorphic function pointers yourself.
 
>In the sort term, the best solutions may be social -- improving the
>dynamics of programming groups, more technical code reviews and so on.
 
This is why I do plenty of coaching on TDD. It's not a testing
activity, it is a design activity. Testing just comes for free.
Desirable design qualities (SOLID principles, DRY, etc.) fall out
naturally instead of having to impose personal discipline to achieve
them.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
Daniel <danielaparker@gmail.com>: Jul 20 04:06PM -0700

On Thursday, July 20, 2017 at 6:48:08 PM UTC-4, Öö Tiib wrote:
> time as well. These were COBOL, PL/I, Perl, Visual Basic, PHP and
> lately Javascript.
 
> C++ has also been popular to bash. I don't know why.
 
All of the aforementioned languages can be regarded as legacy. Everybody hates legacy. In fact, the only redeeming thing about legacy is that it
works.
 
Daniel
Vir Campestris <vir.campestris@invalid.invalid>: Jul 20 09:58PM +0100

Subject says it all.
 
I can see why you couldn't copy a file stream, but a stringstream is
just a buffer and some pointers - yet copying is forbidden.
 
Anyone know why?
 
(I just wrapped it for my use, where as it happens I only copy it empty
- it's part of a complex object)
 
Andy
"Öö Tiib" <ootiib@hot.ee>: Jul 20 02:54PM -0700

On Thursday, 20 July 2017 23:58:54 UTC+3, Vir Campestris wrote:
 
> Anyone know why?
 
> (I just wrapped it for my use, where as it happens I only copy it empty
> - it's part of a complex object)
 
It is because it is stream, copying it does not make sense like
copying file descriptor or hard drive or thread does not make sense.
 
What really matters in it is its streambuf. Let me demonstrate that
a bit by screwing with our favorite, std::cout. ;)

#include <iostream>
#include <sstream>

int main()
{
std::stringstream ss;
std::streambuf *coutbuf = std::cout.rdbuf();
std::cout.rdbuf(ss.rdbuf());
std::cout << "second text" << std::endl;
std::string s = ss.str();
std::cout.rdbuf(coutbuf);
std::cout << "first text : " << s;
}
 
What it outputs to console?
Hope you start to get the idea why copying streams does not make sense.
legalize+jeeves@mail.xmission.com (Richard): Jul 20 10:56PM

[Please do not mail me a copy of your followup]
 
Vir Campestris <vir.campestris@invalid.invalid> spake the secret code
 
>I can see why you couldn't copy a file stream, but a stringstream is
>just a buffer and some pointers - yet copying is forbidden.
 
>Anyone know why?
 
Liskov Substitution Principle
<https://en.wikipedia.org/wiki/Liskov_substitution_principle>
 
The base class is not copyable (std::ostream/std::istream/std::iostream)
therefore a derived class cannot change this part of the contract and
honor LSP.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Jul 20 02:29PM -0400

You go to any place in the world and you see people trying to get ahead.
They are looking to improve their life, being willing to use their
natural creativity and resourcefulness, learned abilities, learned
expertise, and purposed disciplining in reaching a goal, to produce
something they can then offer to others.
 
Most people do this for money, or for their own personal interests such
as Frank or Bill offering their product to the open source community,
with attribution coming back to them and their offering.
 
-----
What I would like to do is something new.
 
Each of us has been created and gifted by God to the unique and special
abilities we possess. In addition, He has given us the opportunities
where He has to allow us to learn and grow and experience and do, all
those things we've been able to do in our lives.
 
For us in this semiconductor industry, we have gone the various paths
we have to get here, but here we are together.
 
What I want to do is give back to God the recognition, honor, and glory
for those things He's allowed us to do in this world.
 
I want us to come together and produce real world products that people
can use, and use efficiently and greatly, and to do so reaching deep
within each of our souls and pulling out the best of our experience,
knowledge, expertise, creativity, resourcefulness, and everything else
we possess, and then lifting all of that up together as this offering
we'll create unto the Lord.
 
-----
It is not for other reasons I am moving forward in my life. I want to
express in those area I have interest in, and I want to do so to make
people's lives better ... but I want to do it while giving full and
total glory and honor to God for what He first did for me.
 
Without Him, I would be nothing, I would have nothing, and there would
be no desire toward these ends. But because of who He is, I have real
hope, real abilities, real opportunities to affect and impact this
world, and I desire greatly from within to do this.
 
I ask you to come forward and help me on these projects. Do not do it
for me. Do it because you too love God and want to give back. He is
assembling a team of like-minded individuals focused upon Him who will
then produce the culmination of that which their skills will present.
 
-----
Lift your skills to God, and dig deep within yourself to offer up the
best of that which you possess, and then put it together in this product
for our fellow man. The feeling you'll get from that full-on best-of-
yourself giving ... it is unlike anything else you'll ever experience.
 
Jesus is worthy of this offering up of our lives and skills. Let's do
this project for Him:
 
http://www.libsf.org
 
"In God's sight, we've come together.
We've come together to help each other.
Let's grow this project up ... together!
In service and Love to The Lord, forever!"
 
We can change the world by taking our focus off private personal goals,
and setting them on serving Him in this world. We can watch Him grow
and blossom our effort to something the world has never seen before.
 
I urge you ... please step forward and serve the Lord in this way.
 
Thank you,
Rick C. Hodgin
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Jul 20 03:01PM -0400

On 7/20/2017 2:29 PM, Rick C. Hodgin wrote:
> and setting them on serving Him in this world. We can watch Him grow
> and blossom our effort to something the world has never seen before.
 
> I urge you ... please step forward and serve the Lord in this way.
 
Think of what we can accomplish when God is our banner, when we are,
from within, doing these things for Him.
 
My goals are a complete hardware and software stack. To design our
own CPU, our own motherboards, our own memory, video, networking,
sound, and all other devices required to move forward. I want us
to create all new designs that aren't tied to anything legacy.
 
I want us to create our own operating system to run atop that hardware.
Our own device drivers and applications to run atop that kernel. I
want us to create a product that we can manufacture and ship to people
to use. I want it to honor Jesus Christ within and without. I want
it to be something people have in their daily lives, reminding them
that they were bought at a price on that cross at Calvary.
 
I want people to receive this idea, and move the concept into their
own areas of interests. Car makers making cars not for profit, or
for parent car companies, but for the Lord, and for people. Making
a car that is easily serviceable, maintainable, easily repaired,
with inexpensive parts, etc.
 
I want this to move into the areas of manufacturing farm equipment,
and devices we'll use in our home, and into businesses that connect
things together like Internet Service Providers.
 
I want the world to be undone from its corporate mindset, and to
instead be focused upon the Lord, and upon His people, and in doing
right by Him, and right by them.
 
I want us to serve the Lord with our lives, and in all of the ways
we are in this world expressing ourselves unto Him, and only in all
right ways.
 
We can do this ... together. He can be our God, and we can be His
people, and we can stand up in this world united unto Him, and we
can say, "No!" to the corporate blaspheming giants that are trying
to kill people everywhere, and not just in the body, but in the
soul. Companies moving in evil ways by the men who acquiesce to the
god of this age (Satan) who leads them toward all manner of harm
against God's people for filthy lucre, moving by that which JFK talked
about ... "covet means" ... so that people are drawn in by whatever it
is they most seek.
 
This world we live in is heinous and become worse every day. We have
the power and ability and authority in Jesus Christ to change it. We
can stand up together and say, "NO! NO! NO! It will be like it has
been no longer. We are taking it back for the Lord."
 
-----
It starts with men and women hearing this call to serve Him in their
lives. It starts with men and women willing to put in the time and
stand up rightly for their Lord It starts with men and women willing
to look beyond their flesh, beyond their immediate needs, and to step
up in faith doing what's right knowing that the Lord will never leave
us or forsake us.
 
It takes brave men and women to do this, and this call is being extended
to you right now. If you hear the Lord's call within your heart, then
step up and serve Him where you are. If you hear the call to come on
board with an effort like this, or to create one of your own in your
area of personal interest, then do so ... but make certain you are
doing it unto Him, because the enemy in this world is no slouch. He
can deceive men and women with even the best intentions, which is why
we must come together and have the solid foundation in the Lord as we
move forward. We can move forward with a constant and consistent
focus upon the Lord, and let Him protect us and guide us in this world.
 
-----
Your service to the Lord is the calling of your life. It is not some
thing you've done or been doing, but it has all been in preparation
for this. Move forward where you are to serve Him with everything you
possess. Everything you occupy. Everything you are. Make Him number
one in your life, and then show this world what someone can do when
they are in service to God Almighty.
 
Thank you,
Rick C. Hodgin
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Jul 20 03:39PM -0400

On 7/20/2017 3:01 PM, Rick C. Hodgin wrote:
> to use. I want it to honor Jesus Christ within and without. I want
> it to be something people have in their daily lives, reminding them
> that they were bought at a price on that cross at Calvary.
 
For this project, there are tiers involved in design:
 
1) Hardware -- comp.arch, comp.arch.fpga
2) Kernel -- alt.os.development
3) Drivers -- comp.lang.c, comp.lang.c++
4) Assemblers and compilers -- alt.lang.asm, comp.lang.asm.x86
5) Utilities and applications -- Various
 
You have expertise you can offer to the Lord. You have skills that can
be given to Him and to your fellow man in an offering which is, from the
ground up, given over to Him.
 
We need hardware people.
We need low-level software people.
We need general software people.
 
We can give the world the foundation it needs to empower every other
discipline people will engage in. It starts with us at the computer
level, the core of data processing, and then goes out through the
communication networks, and then into every other discipline.
 
I urge you to step up and embrace this vision of service to the Lord,
and not to companies or money, but in doing things rightly for Him,
and for those people He's placed here around us.
 
We can take this world back from the evil enemy forces that are at
work against us ... and we can do so in service to the Lord in a way
that will let us go to sleep soundly each night, knowing in our
hearts and minds that we are doing right, because of the One we are
serving in this way.
 
-----
Think of what can be accomplished if we will all come together and
begin this project with our focus on the One who is immovable.
 
Thank you,
Rick C. Hodgin
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

No comments: