C++14: Papers

S

Stefan Ram

James Kanze said:
I don't have a "position". I simply observe.

You can be glad that you never have to choose a language
yourself!
Compared to what? It's less expensive than Java, for example.
The companies I see choosing C++ are choosing it because the
total development costs are lower than for other languages.

I cannot reproduce this result. It is based on which data?
How were the costs calculated?
COBOL (which was designed to look like human language).
Nobody's succeeded yet.

Another attempt at an English-like language was SQL, which
is quite successful.

Of course, algorithms can be given in English. However, even
if every-day English is used, the sheer complexity of some
algorithms will make them hard to comprehend.
 
T

Tony

I don't feel anything about it, in particular. I simply
observe. In many cases, there simply isn't any viable
alternative. C++ wins by default. No other language is
actually being used for many types of applications, at least not
to any measurable extent.

Are you "playing dumb", or are you an extreme in-the-box information processor?
We can always dream.

Apparently you can't, but said "we"?
I don't have a "position". I simply observe. One of my
observations (based on actual projects): the reason for choosing
C++ is that it is less expensive to develop software in it than
in other languages.

Again, begs the question: are you "playing dumb"?

(Aside: I like to get to the bottom of things. If it takes a bit of perturbance
or instigation or controversy, so be it.)
Compared to what?

Compared to a language built from the ground up with "easy to use" as a
requirement and with no baggage from any past language.
It's less expensive than Java, for example.

But Java isn't the same kind of language.
The companies I see choosing C++ are choosing it because the
total development costs are lower than for other languages.

Well if that is true, I should stop "trying to save the world" (in other
circles), and focus on getting that language that I mention so often,
implemented! As it is, though, I'm better at knowing what to do than actually
doing it, so it's very slow going at times.
[...]
Superior to inferior existing languages,

It's hard to compare it with something that doesn't exist.

Apparently for you it is. For me it is not.
Given that my comparisons are based on experience, and not
someone's pipe dreams.

The adage goes, "when you can't compete, tout your "experience"". I would say
"capability rules", but the unfortunate fact is that politics dictate. (The last
sentence was along the "save the world" lines).
People have been trying to make programming languages accessible
to non-professionals for years. The most blatent example is
COBOL (which was designed to look like human language).
Nobody's succeeded yet. It seems a safe bet that no body will
succeed before I retire.

The reason it hasn't happened is because working in someone else's company, it
couldn't be done, so I had to leave that world (I burnt every bridge on the way
out too) and do it with the resources I had/have at my disposal, and mostly that
was/is time. It could have been here 15 years ago, but politics prevented that
from happening.
There was a proposal for them before the committee. The
committee lacked the time to handle it correctly, but I wouldn't
be surprised if it were in the next version of C++.

So you don't have any inkling about whether it can be done or not? Or do you? I
really don't see the point of slowly deprecating existing C++ "features"
(baggages) and incrementally getting to Language Nice, and that's how I think
"C++ modules" will have to be.
Originally, C++ didn't have templates nor exceptions. Does
there presence make it something else?

But for modules, there is the issue of header files. Both templates and
exceptions, as implemented in C++, leave much to be desired in such facilities.
There are probably more differences between C++11 and C++ circa
1988 than there are between C++ circa 1988 and C. On the other
hand... There are even more differences between the latest
Fortran and Fortran IV.

But because they are kludges built upon a kludge of a language, well you know...
Not at all.

I think you do: a mish-mash of parts. But in D, GC is a permeating concept.
Sure, you get to choose which facilities (to some extent of choosing) you use in
C++, but that takes someone like you to be able to exploit that "power". I only
see C++ remaining viable if backwards compatibility and idiomaticy becomes
deprecated. It's just too much of a burden to perpetuate past mistakes. (That
last sentence sounds like a "save the world" one!).
[...]
Having separate headers and implementation files
[, modules]

Adding what I typographically/erroneously left out in the OP.
were not

Or maybe he just felt that the C solution was "good enough" at
the time.

It really needs an answer from Bjarne! His D&E book was one of the best tech
books, if not THE best tech book I have ever read. Yes, Bjarne, you've created a
monster! ;)
Not perfect, but certainly better than what Java
offers.

Java, Java, Java! I should probably write at least one program in it before I
dismiss it? But I don't have the TIME!
And maybe he just felt that adding templates would be
more fun.

And maybe you're just a politician (wannabe)?
 
T

Tony

You can be glad that you never have to choose a language
yourself!


I cannot reproduce this result. It is based on which data?
How were the costs calculated?


Another attempt at an English-like language was SQL, which
is quite successful.

Of course, algorithms can be given in English. However, even
if every-day English is used, the sheer complexity of some
algorithms will make them hard to comprehend.

Let's not forget that all the languages which have Pascal-like syntax (devoid of
curly braces) are touted to be "more natural" or something like that. The
problem is that curly brace languages trump non-curly brace languages in
popularity contests. That's a minor thing, but indicative that programming
languages should not be constrained by trying to be speaking/written languages
(!). If you want "a natural "programming" language", hook up a mic and a pen to
your PC and talk and write to your computer! (OK, save the jokes, cuz apparently
some of my posts seem like they are doing exactly that!).
 
T

Tony

you know its possible to engage in technical discussion without
ranting, name calling or ascribing base motives to other participants.

The "rants" are to keep y'all mindful that you're not fooling anyone (probably
would be a good separate newsgroup). I don't call people names.

Now on the "base motives" thing, it is so permeating and such a big problem,
that it really needs to be addressed every time and all the time. (On the "save
the world" note: a lot of people do this "tech stuff" for selfish reason or
exploit... well, you get my drift).

Case in point: I think James is dancing around the "questions" (they're not
really questions, for IP IS, IP!), but more so, well I don't know, but want to
know! I really don't see how someone can be a top-notch software developer and
NOT get what I am saying. (There is much more to this, but I'm not about to
succumb to anyone's attempts at ... well isn't that just THE reason I gave up
being an employee?).
so is C++ not very expressive?

Why would you ask me that? You very well KNOW what it is what I said, that being
that "all the expressivity of C++" is a strawman. (I THINK that fits the
definition of "strawman", but I'm not going to look up 'strawman' right now, but
again, YOU KNOW what I mean).
What do you ascribe its popularity to?

If you have a budget, I may want to go investigate that for you. I'm expensive,
and I turn down most offers. A lot of endeavors fail for lack of seeking
consultants. If someone is offering, you should take it, because anyone good
enough to consult to you, is probably better at what you do than you are. (Ha!
There's the rub: or KNOWS how to be better than you are!).
What language is more expressive than (or equally to) C++. Lisp?
Pascal? Ruby?

You're apparently allying with James, not providing his stance any support, and
thereby weakening the entire posturing. (Yes, I think he MAY be "posturing". But
hey, I don't know him at all so for all I know, he may be as mentally-challenged
as you are. JUST KIDDING! :p ).
I don't see him doing that.

I'd expect you to feign blindness in your attempt to bring strength "by virtue
of alliance", but of course, there is no such inherent strength.

I must be a simpleton! Is that what you are trying to imply? I don't play those
games Keith.
see him saying that designing a
language with the expressive of C++ and a cleaner syntax would be a
large and difficult undertaking

That's propagandizing C++, rather than trying to improve upon the existing, and
there is MUCH to do! What's all the spiel about jobs, when there is sooo much to
do and be doing? At what point does C++ become politics? (Or when did it become
so! Was it always JUST that?).
and that when you'd finnished the
world would have moved on.

Isn't it clear that moving-on cannot happen until stagnation is left behind?
I'm not sure I agree (I think at some point
C++ will be superceded) but I don't think he's obstructing such
attempts.

Isn't he top O' the heap C++ guru? Union worker with 30 years of seniority
("experience") holding back the world?
well yes, but he didn't say that

Only he knows what his motivations are.
you're assuming. You seem a very angry person.

YOU'RE assuming. YOU use every cliche in the book as a scapegoat? If so, I
suggest that you aspire to greater level of intellectuality, instead of being
lazy and using as little of your brain as possible to get away with as much as
you can.
quite a while. I don't think anyone would argue with that.

On the contrary, you seem to want to argue exactly that, but maybe you don't
even know why?
Though
"Accelerated C++" would make you productive quite quickly.

With C++11 current? C'mon, ANY C++ programmer needs at least 10 years to display
"Hello world!" on the screen.

Didn't I "facetiously" ask that? James poses: "C++ can do... yada", but if it is
a negative thing that the "better language" corrects, according to James'
"criteria", ... well, duh, there is no criteria other than C++ is the best!

It's BS. I likened it to hooking kids on cigarettes: kids will believe it. If
you can't prove it to an adult though, it's worse than BS. It's not about how
many kids you can convince to attack another country, that is easy.
why? Just plonking your opinions down doesn't make it so.

It's not just opinion and it's not just mine, but none the less, you are really
sinking any case you thought you could bring, fast. Don't think either that I
didn't notice your attempted subliminal "plonking" choice of word.
If C++ could fry eggs and make breakfast, you'd throw that in the

now you're being silly

Now you're being ... what?
you seem to have a strange hatred of C++ and make personnel attacks on
anyone who tries to support it.

Is THAT you handle key observations of the deficiencies of C++? There's much
work to do and there is not need for anyone doing bullshit "work" and
bullshitters are the worst.
 
T

Tony

the places I work there's barely any awareness of C++11. Using boost
is regarded as a bit brave. I'm still explaining CTOR initialiser
lists, auto_ptr and the wonders of RAII to people.

That probably explains your defensive stance in regard to anything but C++. You
just want a job at the highest pay. Hmm? I, OTOH, can't have one of those
things, because I want to make things better!
 
T

Tony

it made the STL possible
+ selling point (RAII being the other). STL and RAII seem to be
unmatched by any other language.

More weasel words. It's like on the 5 o'clock news when they do "unscientific
studies". Or when the public defender "gets his man". Most times bullshit.
Agenda seems to reign, rather than good purpose.
 
C

Christopher Pisz

Yes, but currently it works only on POSIX or Windows AFAIK.


Furthermore, does it really buy you anything on POSIX? As far as I know,
only Windows offers IO Completion ports for the implementation to take
advantage of.

Also, I've found boost::asio to be a real pain in my buttocks to debug.
Offering output to std::cerr just doesn't do it when trying to find out
who bound work to be completed. Seeing "My generic thread handler that
could have been called from anywhere" at the top of the call stack isn't
very useful. Some mechanism is needed to track down the binder in debugging.
 
I

Ian Collins

Christopher said:
Furthermore, does it really buy you anything on POSIX? As far as I know,
only Windows offers IO Completion ports for the implementation to take
advantage of.

Also, I've found boost::asio to be a real pain in my buttocks to debug.
Offering output to std::cerr just doesn't do it when trying to find out
who bound work to be completed. Seeing "My generic thread handler that
could have been called from anywhere" at the top of the call stack isn't
very useful. Some mechanism is needed to track down the binder in debugging.

+1. I've seen projects try and use boost.asio, but never successfully
or with any tangible benefit. The usual result is confused programmers!
 
Ö

Öö Tiib

It is just a library in boost, not sure. Some hate it and some like it.
A set of tools for asynchronous communication is handy ... even if
incomplete. What you then recommend for POSIX?
+1. I've seen projects try and use boost.asio, but never successfully
or with any tangible benefit. The usual result is confused programmers!

I have seen successful results. Performance improved (20 times on
cases) ... the result was easier to maintain. Certainly better than
nothing. Confusion arises when people try to mix asynchronous and
synchronous operations in same layer, but that is same with asio or
without it.
 
J

James Kanze

Are you "playing dumb", or are you an extreme in-the-box information
processor?

I'm not playing dumb. I do actual work. I produce programs
that people use. I live in the real world.
Apparently you can't, but said "we"?

As I sais above, I actually work at programming, producing
programs that people use. Imaginary languages which haven't (or
even can't) be implemented don't interest me. Especially when
the only definition of them is "better than X".
Again, begs the question: are you "playing dumb"?
(Aside: I like to get to the bottom of things. If it takes a
bit of perturbance or instigation or controversy, so be it.)

The bottom of things is that I have to produce a working program
by the end of next month.

The bottom of things it that I have actual experience in doing
so, and that I've heard a lot of promesses, but that unless I
can see the results, they're just hot air.
Compared to a language built from the ground up with "easy to
use" as a requirement and with no baggage from any past
language.

Where are the specifications of this language? Where is the
concrete user experience, to prove that it is easy to use?
But Java isn't the same kind of language.
Well if that is true, I should stop "trying to save the world"
(in other circles), and focus on getting that language that I
mention so often, implemented! As it is, though, I'm better at
knowing what to do than actually doing it, so it's very slow
going at times.

That might be a good idea. Walter did it with D, and while I
don't think it's better than C++, there are some good ideas in
it. And above all, I _can_ compare it, because I can use both,
and see the results.
[...]
C++ is superior
for large, stable applications which need to be maintained over
time.
Superior to inferior existing languages,
It's hard to compare it with something that doesn't exist.
Apparently for you it is. For me it is not.

OK. Since you obviously want to play the idiot, and not
understand politely worded English: it's impossible to compare
C++ (or Java, or C# or D) with a language which doesn't exist.
Because to compare, you have to actually develop programs in
each, and when it comes to developing programs, inexistance is a
killer defect.
The adage goes, "when you can't compete, tout your
"experience"". I would say "capability rules", but the
unfortunate fact is that politics dictate. (The last sentence
was along the "save the world" lines).

So now we have to invent adages, rather than present real
arguments.
The reason it hasn't happened is because working in someone
else's company, it couldn't be done, so I had to leave that
world (I burnt every bridge on the way out too) and do it with
the resources I had/have at my disposal, and mostly that
was/is time. It could have been here 15 years ago, but
politics prevented that from happening.

COBOL was _not_ invented by people working ins someone else's
company. Nor was Pascal, nor Prolog, nor Lisp, for that matter.

It turns out that, globally, working in someone else's company
(and having concrete users) seems to be an advantage.
 
J

James Kanze

+1. I've seen projects try and use boost.asio, but never successfully
or with any tangible benefit. The usual result is confused programmers!

For most applications, threads will acheive anything asynch IO
could, in a more flexible manner. I used asynchronous IO back
in the 1970's, before we had threads (or even multiple
processes), but I don't see any real use for it today.
 
T

Tony

I'm not playing dumb. I do actual work. I produce programs
that people use. I live in the real world.

You still seem, to me, to be avoiding giving substantive answers, hence I ask if
you are playing dumb or you truly cannot see that a from-the-ground-up
development of a new language targeting a big chunk of the space in which C++ is
now used, can be easily had. When I posed that to you, you went on your spiel
about "all the expressivity of C++", which is a non-substantive response IMO.
As I sais above, I actually work at programming, producing
programs that people use.

But the design of a programming language is outside of your thinking ability?
Nothing wrong with that--not everyone is cut out to do that kind of thing.
Perhaps you are more of a programmer which works under the direction of others
who tell you what to program, how to program it and what language to use?
Imaginary languages which haven't (or
even can't) be implemented don't interest me.

To each there own, of course, but that is what I do (save for your attempted
slam using 'imaginary' and 'can't be implemented).
Especially when
the only definition of them is "better than X".

That's easy to say when the language being compared-to is C++, because it's
warts have been so heavily discussed for so long. But I think your track is that
anything that deviates from anything other than C++ simply cannot be better. Now
THAT is, to me, simply not worth discussing--I think they call that "fanboyism".
The bottom of things is that I have to produce a working program
by the end of next month.

It's not my problem. Good luck with that.
The bottom of things it that I have actual experience in doing
so, and that I've heard a lot of promesses, but that unless I
can see the results, they're just hot air.

What promises are those?

I understand that you are a programmer and have a job to do. I, OTOH, I don't
care to develop the software I want to develop program until I have a language
worthwhile to program with (if something is worth doing, it's worth doing right,
IMO), and since there is not one of those available, I'm developing one. I think
it is noteworthy that I didn't start out developing a language--the need for a
language comes from software I plan on developing with the language.
Where are the specifications of this language?

I have enough of them to have decided that it is worthwhile to develop that
language, and that's exactly what I'm doing, and it's getting easier all the
time as my language implementation skills mount.
Where is the
concrete user experience, to prove that it is easy to use?

Why do you keep harping about "existing languages" when I've said a zillion
times already that I'm in the process of implementing one from scratch?
That might be a good idea. Walter did it with D, and while I
don't think it's better than C++, there are some good ideas in
it.

I think there probably are, and certainly I know some of those things, but none
come to my mind at the moment that are remarkable. I do keep notes about it
though (as well as other languages).
And above all, I _can_ compare it, because I can use both,
and see the results.

To me, C++ and D are characteristically the same, save for the fact that D seems
to me to be "not ready for prime time". It probably needs a committee process to
robusticize it but that seems unfathomably difficult (to me). So, C++ "wins"
easily in my book when the two are compared.
[...]
C++ is superior
for large, stable applications which need to be maintained over
time.
Superior to inferior existing languages,
It's hard to compare it with something that doesn't exist.
Apparently for you it is. For me it is not.

OK. Since you obviously want to play the idiot, and not
understand politely worded English: it's impossible to compare
C++ (or Java, or C# or D) with a language which doesn't exist.

For me it's ridiculously easy, because I have a lot of the language design
solidly known and can do that comparison. But that isn't even required--one can
(apparently you can't or refuse to or feign that "it is impossible", etc.) take
a moment (or 10 years!) and compare, contrast, evaluate language features and
analyze combinations of them, etc. So, I really don't understand your seeming
lack of ability to do so. Are you ever in a role where you get to design what
you are assigned to program? Surely you've created a program from scratch at one
time or another, yes? What if your next gig was to develop a programming
language in which large scale projects could be developed at significant savings
compared to doing them with C++? To me, it seems like you'd balk "impossible,
can't be done, so I'm not even going to try". And you may be saying, when you
balk that, that YOU can't do that, but that hardly means that someone else also
can't. Hmm?
Because to compare, you have to actually develop programs in
each, and when it comes to developing programs, inexistance is a
killer defect.

Well, if you want to persist in taking a stance as "an evaluator of programming
languages" or "programmer", OK. You can't drive home a 2014 Corvette today
either, but next year you will be able to. Same thing. Engineering takes time.
Everything you keep on saying, and I KNOW you must know this stuff, makes me
question if you are "playing dumb" or are truly incapable of grasping the
(simple) concepts.
So now we have to invent adages, rather than present real
arguments.

It's a standard answer when someone throws out "experience" rather than
substance. Let's "call a spade a spade": you can't develop a programming
language "better" than C++, and apparently can't even conceive of such, while
some others, including myself, find that very non-taxing (save for the amount of
time and effort required). Who knows, you truly may be so into C++ that you
simply cannot step out from it long enough to even ENTERTAIN the thought of
there ever being something else. That's my take on it upon observation thus far.

COBOL was _not_ invented by people working ins someone else's
company. Nor was Pascal, nor Prolog, nor Lisp, for that matter.

It turns out that, globally, working in someone else's company
(and having concrete users) seems to be an advantage.

That was an aside--I should have left out that info.
 
I

Ian Collins

Tony said:
You still seem, to me, to be avoiding giving substantive answers, hence I ask if
you are playing dumb or you truly cannot see that a from-the-ground-up
development of a new language targeting a big chunk of the space in which C++ is
now used, can be easily had. When I posed that to you, you went on your spiel
about "all the expressivity of C++", which is a non-substantive response IMO.

When you have your improved language up and running everywhere C++ is
currently used, come back and let us know. I won't hold my breath.
 
T

Tony

When you have your improved language up and running everywhere C++ is
currently used, come back and let us know. I won't hold my breath.

You're just trying to curb any discussions about the failings of C++. What do I
care if anyone else wants to use the language I'm developing? I'm making it for
myself. Maybe I don't even want anyone else to use it. No skin off my nose.
 
I

Ian Collins

Tony said:
You're just trying to curb any discussions about the failings of C++. What do I
care if anyone else wants to use the language I'm developing? I'm making it for
myself. Maybe I don't even want anyone else to use it. No skin off my nose.

By all means discuss some and your proposed solutions. All you've added
to the discussion so far is noise.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,904
Latest member
HealthyVisionsCBDPrice

Latest Threads

Top