Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

The Future of C++ As Seen By Its Creator

Zonk posted more than 7 years ago | from the fun-name-to-say dept.

Programming 424

holden writes "In a rare public talk, C++ creator Dr. Bjarne Stroustrup discusses his ideal in programming languages, as well how he sees the next version (and beyond) of C++ developing. He explains the general selection criteria used for adding new features, some of the legacy of C++, and many other interesting topics. Especially interesting is during the Q&A he explains his views of the embrace and extend mentality some implementations, such as VC++, have taken."

Sorry! There are no comments related to the filter you selected.

uh... (4, Insightful)

cosmocain (1060326) | more than 7 years ago | (#20210265)

...transcript, anyone? i hate watching or listening to vids at work.

Re:uh... (4, Funny)

neonmonk (467567) | more than 7 years ago | (#20210279)

Agreed. I don't see the point in video unless they're actually showing up some fancy technology. ...Or, alternatively, they've got really nice jugs.

Re:uh... (-1)

Anonymous Coward | more than 7 years ago | (#20210509)

Do fatty man boobs count?

Re:uh... (0)

Anonymous Coward | more than 7 years ago | (#20210595)

Not past two.
Now, if you throw in sculptable gut-folds and fake nipples, you could get into double digits on some models.

Re:uh... (1)

badran (973386) | more than 7 years ago | (#20210285)

You can always tell your boss, this is an instruction video. And that this would make your a much better programmer.... This might work... or you will get fired for reading too much /.

Re:uh... (-1)

Anonymous Coward | more than 7 years ago | (#20210317)

Nobody ever got fired for reading slashdot!

... wait

Re:uh... (5, Funny)

larry bagina (561269) | more than 7 years ago | (#20210621)

exception: slashdot editors.

Re:uh... (5, Funny)

LiquidCoooled (634315) | more than 7 years ago | (#20210299)

Good afternoon everybody, I would like to start by including iostream.h into the discussion.

After this we can get onto the main proceedings which might or might not return anything.

We move to the future by emitting a string of "Hello world" before returning zero.

This is the end of the discussion I hope it was informative.

Re:uh... (5, Insightful)

Pseudonym (62607) | more than 7 years ago | (#20210479)

Good afternoon everybody, I would like to start by including iostream.h into the discussion.

That ruined the joke for me. Like Stroustrup would ever include the legacy non-namespaced header!

Re:uh... (2, Funny)

smitty_one_each (243267) | more than 7 years ago | (#20210615)

Stroustrup is an academic. Blowing by petty details for pedagogical reasons is a time-honored device.

Re:uh... (5, Funny)

Odin's Raven (145278) | more than 7 years ago | (#20210711)

Good afternoon everybody, I would like to start by including iostream.h into the discussion.

That ruined the joke for me. Like Stroustrup would ever include the legacy non-namespaced header!

I'm sure he only did that to ensure compatability with older members of the audience.

Re:uh... (4, Funny)

Mr. Underbridge (666784) | more than 7 years ago | (#20210823)

I'm sure he only did that to ensure compatability with older members of the audience.

Then the joke should have been in COBOL.

Size of iostream? (3, Interesting)

tepples (727027) | more than 7 years ago | (#20210961)

Good afternoon everybody, I would like to start by including iostream.h into the discussion.

After this we can get onto the main proceedings which might or might not return anything.

We move to the future by emitting a string of "Hello world" before returning zero.

This is the end of the discussion I hope it was informative.
Yes, all quarter megabyte of it. A Hello World program that uses <iostream> has been seen to take nearly that much space [pineight.com] when compiled with g++ and linked statically with GNU libstdc++, on fairly recent versions of both MinGW and devkitARM toolchains. Compare this to an equivalent program that uses only <cstdio>, at under 6 kilobytes each. (Actual source code, binaries, and makefiles are available on request [pineight.com] .) This hurts especially on one of the platforms that devkitARM supports, which has only 262,144 bytes of program RAM and no suitable shared library mechanism. There are some people who claim to have reduced libstdc++'s <iostream> overhead by a factor of four, but they're not revealing how they did it other than a vague "RTFM".

Re:Size of iostream? (1)

keesh (202812) | more than 7 years ago | (#20211147)

Do you really expect to get meaningful results when you a) use "Hello world" as your test program and b) static link?

Mod Parent Insightful (5, Insightful)

dreamchaser (49529) | more than 7 years ago | (#20210323)

Video or audio just for the sake of being flashy is a dumb idea and I usually won't watch or listen. If I want audio and video I'll devote my full attention to my TV feed. Otherwise when I'm accessing information on the Internet I want text. I can read it far faster than someone speaks on a video interview for one thing, and for another text lends itself far better to (human)multitasking than video or audio does.

Re:Mod Parent Insightful (1)

Joe Tie. (567096) | more than 7 years ago | (#20210545)

Agreed. Audio/Video presentations of what could be run through much faster as a simple webpage or pdf is becoming increasingly common and annoying. Hearing people talk about code is like listening to the audio of a person making balloon animals.

Re:Mod Parent Insightful (1)

Yvanhoe (564877) | more than 7 years ago | (#20210929)

Plus, it is more difficult for a non native speaker to understand than a written text.

Re:uh... (1)

jrumney (197329) | more than 7 years ago | (#20210353)

I don't mind watching videos at work, but at 101 minutes long, and with all of slashdot hitting it right now ... rebuffering 1% ..., I don't think I'll be watching this one.

Re:uh... (1)

pigscanfly.ca (664381) | more than 7 years ago | (#20210367)

Did you notice the bittorrent links? you can set it to download and come back to it later.

Re:uh... (1)

tepples (727027) | more than 7 years ago | (#20211115)

Did you notice the bittorrent links? you can set it to download and come back to it later.
Not everybody who is on break at work has an always-on home server that runs a torrent client with a web gateway. Heck, not everybody lives in the service area of a broadband ISP that allows such behavior on residential accounts.

scratch that itch (1)

CarpetShark (865376) | more than 7 years ago | (#20210457)

It would be fine if there was a functional version of this:

texttospeech --output-format simplehtml vid.txt

Re:scratch that itch (2, Funny)

mwvdlee (775178) | more than 7 years ago | (#20210571)

I'd much rather prefer speechtotext in this particular case, but to each his own.

Re:uh... (5, Funny)

cerberusss (660701) | more than 7 years ago | (#20210889)

Here ya go, buddy.

Interviewer: Well, it's been a few years since you changed the world of software design, how does it feel, looking back?

Stroustrup: Actually, I was thinking about those days, just before you arrived. Do you remember? Everyone was writing 'C' and, the trouble was, they were pretty damn good at it. Universities got pretty good at teaching it, too. They were turning out competent - I stress the word 'competent' - graduates at a phenomenal rate. That's what caused the problem.

Interviewer: Problem?

Stroustrup: Yes, problem. Remember when everyone wrote Cobol?

Interviewer: Of course, I did too

Stroustrup: Well, in the beginning, these guys were like demi-gods. Their salaries were high, and they were treated like royalty.

Interviewer: Those were the days, eh?

Stroustrup: Right. So what happened? IBM got sick of it, and invested millions in training programmers, till they were a dime a dozen.

Interviewer: That's why I got out. Salaries dropped within a year, to the point where being a journalist actually paid better.

Stroustrup: Exactly. Well, the same happened with 'C' programmers.

Interviewer: I see, but what's the point?

Stroustrup: Well, one day, when I was sitting in my office, I thought of this little scheme, which would redress the balance a little. I thought 'I wonder what would happen, if there were a language so complicated, so difficult to learn, that nobody would ever be able to swamp the market with programmers? Actually, I got some of the ideas from X10, you know, X windows. That was such a bitch of a graphics system, that it only just ran on those Sun 3/60 things. They had all the ingredients for what I wanted. A really diculously complex syntax, obscure functions, and pseudo-OO structure. Even now, nobody writes raw X-windows code. Motif is the only way to go if you want to retain your sanity.

Interviewer: You're kidding...?

Stroustrup: Not a bit of it. In fact, there was another problem. Unix was written in 'C', which meant that any 'C' programmer could very easily become a systems programmer. Remember what a mainframe systems programmer used to earn?

Interviewer: You bet I do, that's what I used to do.

Stroustrup: OK, so this new language had to divorce itself from Unix, by hiding all the system calls that bound the two together so nicely. This would enable guys who only knew about DOS to earn a decent living too.

Interviewer: I don't believe you said that...

Stroustrup: Well, it's been long enough, now, and I believe most people have figured out for themselves that C++ is a waste of time but, I must say, it's taken them a lot longer than I thought it would.

Interviewer: So how exactly did you do it?

Stroustrup: It was only supposed to be a joke, I never thought people would take the book seriously. Anyone with half a brain can see that object-oriented programming is counter-intuitive, illogical and inefficient.

Interviewer: What?

Stroustrup: And as for 're-useable code' - when did you ever hear of a company re-using its code?

Interviewer: Well, never, actually, but...

Stroustrup: There you are then. Mind you, a few tried, in the early days. There was this Oregon company - Mentor Graphics, I think they were called - really caught a cold trying to rewrite everything in C++ in about '90 or '91. I felt sorry for them really, but I thought people would learn from their mistakes.

Interviewer: Obviously, they didn't?

Stroustrup: Not in the slightest. Trouble is, most companies hush-up all their major blunders, and explaining a $30 million loss to the shareholders would have been difficult. Give them their due, though, they made it work in the end.

Interviewer: They did? Well, there you are then, it proves O-O works.

Stroustrup: Well, almost. The executable was so huge, it took five minutes to load, on an HP workstation, with 128MB of RAM. Then it ran like treacle. Actually, I thought this would be a major stumbling-block, and I'd get found out within a week, but nobody cared. Sun and HP were only too glad to sell enormously powerful boxes, with huge resources just to run trivial programs. You know, when we had our first C++ compiler, at AT&T, I compiled 'Hello World', and couldn't believe the size of the executable. 2.1MB

Interviewer: What? Well, compilers have come a long way, since then.

Stroustrup: They have? Try it on the latest version of g++ - you won't get much change out of half a megabyte. Also, there are several quite recent examples for you, from all over the world. British Telecom had a major disaster on their hands but, luckily, managed to scrap the whole thing and start again. They were luckier than Australian Telecom. Now I hear that Siemens is building a dinosaur, and getting more and more worried as the size of the hardware gets bigger, to accommodate the executables. Isn't multiple eritance a joy?

Interviewer: Yes, but C++ is basically a sound language.

Stroustrup: You really believe that, don't you? Have you ever sat down and worked on a C++ project? Here's what happens: First, I've put in enough pitfalls to make sure that only the most trivial projects will work first time. Take operator overloading. At the end of the project, almost every module has it, usually, because guys feel they really should do it, as it was in their training course. The same operator then means something totally different in every module. Try pulling that lot together, when you have a red or so modules. And as for data hiding. God, I sometimes can't help laughing when I hear about the problems companies have making their modules talk to each other. I think the word 'synergistic' was specially invented to twist the knife in a project manager's ribs.

Interviewer: I have to say, I'm beginning to be quite appalled at all this. You say you did it to raise programmers' salaries? That's obscene.

Stroustrup: Not really. Everyone has a choice. I didn't expect the thing to get so much out of hand. Anyway, I basically succeeded. C++ is dying off now, but programmers still get high salaries - especially those poor devils who have to maintain all this crap. You do realise, it's impossible to maintain a large C++ software module if you didn't actually write it?

Interviewer: How come?

Stroustrup: You are out of touch, aren't you? Remember the typedef?

Interviewer: Yes, of course.

Stroustrup: Remember how long it took to grope through the header files only to find that 'RoofRaised' was a double precision number? Well, imagine how long it takes to find all the implicit typedefs in all the Classes in a major project.

Interviewer: So how do you reckon you've succeeded?

Stroustrup: Remember the length of the average-sized 'C' project? About 6 months. Not nearly long enough for a guy with a wife and kids to earn enough to have a decent standard of living. Take the same project, design it in C++ and what do you get? I'll tell you. One to two years. Isn't that great? All that job security, just through one mistake of judgement. And another thing. The universities haven't been teaching 'C' for such a long time, there's now a shortage of decent 'C' programmers. Especially those who know nything about Unix systems programming. How many guys would know what to do with 'malloc', when they've used 'new' all these years - and never bothered to check the return code. In fact, most C++ programmers throw away their return codes. Whatever happened to good ol' '-1'? At least you knew you had an error, without bogging the thing down in all that 'throw' 'catch' 'try' stuff.

Interviewer: But, surely, inheritance does save a lot of time?

Stroustrup: Does it? Have you ever noticed the difference between a 'C' project plan, and a C++ project plan? The planning stage for a C++ project is three times as long. Precisely to make sure that everything which should be inherited is, and what shouldn't isn't. Then, they still get it wrong. Whoever heard of memory leaks in a 'C' program? Now finding them is a major industry. Most companies give up, and send the product out, knowing it leaks like a sieve, simply to avoid the expense of tracking them all down.

Interviewer: There are tools...

Stroustrup: Most of which were written in C++.

Interviewer: If we publish this, you'll probably get lynched, you do realise that?

Stroustrup: I doubt it. As I said, C++ is way past its peak now, and no company in its right mind would start a C++ project without a pilot trial. That should convince them that it's the road to disaster. If not, they deserve all they get. You know, I tried to convince Dennis Ritchie to rewrite Unix in C++.

Interviewer: Oh my God. What did he say?

Stroustrup: Well, luckily, he has a good sense of humor. I think both he and Brian figured out what I was doing, in the early days, but never let on. He said he'd help me write a C++ version of DOS, if I was interested.

Interviewer: Were you?

Stroustrup: Actually, I did write DOS in C++, I'll give you a demo when we're through. I have it running on a Sparc 20 in the computer room. Goes like a rocket on 4 CPU's, and only takes up 70 megs of disk.

Interviewer: What's it like on a PC?

Stroustrup: Now you're kidding. Haven't you ever seen Windows '95? I think of that as my biggest success. Nearly blew the game before I was ready, though.

Interviewer: You know, that idea of a Unix++ has really got me thinking. Somewhere out there, there's a guy going to try it.

Stroustrup: Not after they read this interview.

Interviewer: I'm sorry, but I don't see us being able to publish any of this.

Stroustrup: But it's the story of the century. I only want to be remembered by my fellow programmers, for what I've done for them. You know how much a C++ guy can get these days?

Interviewer: Last I heard, a really top guy is worth $70 - $80 an hour.

Stroustrup: See? And I bet he earns it. Keeping track of all the gotchas I put into C++ is no easy job. And, as I said before, every C++ programmer feels bound by some mystic promise to use every damn element of the language on every project. Actually, that really annoys me sometimes, even though it serves my original purpose. I almost like the language after all this time.

Interviewer: You mean you didn't before?

Stroustrup: Hated it. It even looks clumsy, don't you agree? But when the book royalties started to come in... well, you get the picture.

Interviewer: Just a minute. What about references? You must admit, you improved on 'C' pointers.

Stroustrup: Hmm. I've always wondered about that. Originally, I thought I had. Then, one day I was discussing this with a guy who'd written C++ from the beginning. He said he could never remember whether his variables were referenced or dereferenced, so he always used pointers. He said the little asterisk always reminded him.

Interviewer: Well, at this point, I usually say 'thank you very much' but it hardly seems adequate.

Stroustrup: Promise me you'll publish this. My conscience is getting the better of me these days.

Interviewer: I'll let you know, but I think I know what my editor will say.

Stroustrup: Who'd believe it anyway? Although, can you send me a copy of that tape?

Interviewer: I can do that.

Re:uh... (0)

allthingscode (642676) | more than 7 years ago | (#20211009)

And God has been kicking himself in the ass every day for creating English at Babel. Why in the hell do you need both restful and restless to mean the same thing? One million words in a language? Reduce the language to just one word for everything and you'll be fine.

Maybe you should make the use everything in the language to write a program a part of your job interview questions. As for remembering whether stuff is dereferenced or not, I didn't find it to be any trouble. Look at what java and C# have gone through: java had to introduce clunky wrapper classes, but since they don't allow operator overloading, you have to know whether you are dealing with an int or Integer and whether to write .add() or +. C# added "ref", but that's no different than C++.
 

Embedded video? no thanks (2, Funny)

JosefAssad (1138611) | more than 7 years ago | (#20210321)

At least we won't get any "RTFA, moron!" comments in this article.

But seriously, I like slashdot because, unlike digg, we get ARTICLES, not videos. I'm not watching this. In protest, here's a completely misinformed and irrelevant comment which extrapolates a lot of very outlandish conclusions from the article summary:

Stoustrup just wants to make sure VC++ doesn't eat into the market share of his new linux-powered RC car, CTTOX. He has been embracing and extending C ofr many years now; if congress weren't so impeachment-obsessed, they would have slapped him with anticompetitive sanctions. What is a doctor doing talking about languages anyhow, he should leave that to linguists like Alan Cox and stick to paediatric medicine.

Or, to rephrase, give me text links or give me fatal and catastrophic loss of message and meaning

Re:Embedded video? no thanks (1)

archeopterix (594938) | more than 7 years ago | (#20210329)

At least we won't get any "RTFA, moron!" comments in this article.
Time to upgrade to VTFA.

Re:Embedded video? no thanks (0)

Anonymous Coward | more than 7 years ago | (#20210345)

View the fuckin article? That's okay, but I like WTFV: watch the fuckin video better.

Re:Embedded video? no thanks (3, Funny)

neonmonk (467567) | more than 7 years ago | (#20210385)

Don't you mean WTFV?

I thought he already admitted it (-1)

Anonymous Coward | more than 7 years ago | (#20210331)

That C++ was a joke? There isn't a huge future for C++, low level stuff will continue to be written in C and high level stuff will be written for virtual machines. C++ isn't great in either of these roles, it just lets programmers do both in the same language.

In other news. (3, Funny)

Anonymous Coward | more than 7 years ago | (#20210343)

The future of BASIC has been envisioned as a language to do more and more intricate beeping loops in high school classes.

but... (1)

daddyrief (910385) | more than 7 years ago | (#20210349)

what about extinguish? jk, i love visual studio... (there actually are some nice features, imo.)

Next version? (4, Funny)

tygerstripes (832644) | more than 7 years ago | (#20210357)

Great - I've been hearing a lot about C-Pound [worsethanfailure.com] .

Re:Next version? (1)

nagora (177841) | more than 7 years ago | (#20210421)

Great - I've been hearing a lot about C-Pound.

Do you mean C-hashed?

Re:Next version? (1)

smitty_one_each (243267) | more than 7 years ago | (#20210647)

C-octothorp [octothorp.us]

Re:Next version? (2, Insightful)

netpixie (155816) | more than 7 years ago | (#20210445)

That's a weird article.

Why is this candidate "bad" because he interprets a piece of marketing twaddle (i.e. the name of C#) in a different way from Bill?

Round here we (mostly) purposefully call things the wrong name, usually as an exclusive in-joke because we all really know what the real term is meant to be. This includes Giga- pronounced "jigga-" and internet called "interweb" or "interwebnets". My favourite is referring to C# as "coctothorpe" as the proper name for the # symbol is octothorpe. I also used to call C++ "C double plus" as "plus plus" just sounds so ugly (and I'd just finished reading 1984 when I started programming).

This candidate may be useless for other reasons (and it looks like he is), but calling a silly programming language with a silly name something silly shouldn't be held against him.

Re:Next version? (3, Interesting)

nwbvt (768631) | more than 7 years ago | (#20210663)

Well for starters, your pet name for a programming language is not something you should continuously use while in a job interview. Basically what it tells the interviewer is that you really have very little experience with it, and probably have never heard it spoken before.

Re:Next version? (1)

Calinous (985536) | more than 7 years ago | (#20210671)

No, but refering to C Sharp in front of him, and he telling he really prefers C-Pound could make a clue.
      Would you say, when asked about C-Sharp in an intervew: "Well, if you're going to talk about the language I'll just write with if I want to be comfortable, it's coctothorpe."

Torrents of vid available (4, Informative)

Anonymous Coward | more than 7 years ago | (#20210373)

Please use the torrents, and keep those torrent up and running after you're done d/l'ing.

http://csclub.uwaterloo.ca/files/stroustrup.ogg.to rrent [uwaterloo.ca] Ogg/Theora (Recommended)
http://csclub.uwaterloo.ca/files/stroustrup.avi.to rrent [uwaterloo.ca] XviD
http://csclub.uwaterloo.ca/files/stroustrup.mp4.to rrent [uwaterloo.ca] MP4
http://csclub.uwaterloo.ca/files/stroustrup.mpg.to rrent [uwaterloo.ca] MPEG

AC to prevent karma whoring.

Re:Torrents of vid available (0)

Anonymous Coward | more than 7 years ago | (#20210395)

Why should we ENCOURAGE video interviews when text transcripts are so much better suited to this type of discussion?

BOYCOT VIDEO INTERVIEWS NOW.

Re:Torrents of vid available (1)

hr.wien (986516) | more than 7 years ago | (#20210533)

It's not a video interview, it's a presentation he held that just happened to be filmed and put online. I'm sure someone will write up a transcript for you eventually if you're that bloody fussy, but I'd rather watch the presentation as it was held now.

The problem with VC++ (5, Insightful)

PhrostyMcByte (589271) | more than 7 years ago | (#20210377)

Is that they have given 95% of the development time toward managed languages.

If you look at the new Visual Studio 2008 - in the three years since 2005 was released, what does Orcas have for C/C++? Still no C99, with open admission that there are no plans to support it. No TR1 for C++. No significant compiler changes. Intellisense is still slow and quite easily stops working all together. Still no assembly support in the 64-bit compiler, missing intrinsic functions for important instructions such as CMPXCHG16B.

What we get is a newer bundled Windows SDK (which you can download NOW), updated MFC libraries (yuck), and a few new options for Vista compatibility.

In three years, .NET has advanced from 2.0 to 3.5 with huge changes like WPF, WCF, LINQ, etc. They have all but forgotten C++.

Re:The problem with VC++ (1)

Constantine XVI (880691) | more than 7 years ago | (#20210469)

Hmmm... Those tactics don't sound familiar at all. Definitley nothing Microsoft's ever done *coughNetscapecough*

Re:The problem with VC++ (1)

mwvdlee (775178) | more than 7 years ago | (#20210477)

Despite Mono's best efforts, .NET is still largely a Windows lock-in feature.
Now why would Microsoft abandon alternatives to that?

Parent is trolling (3, Informative)

Interfacer (560564) | more than 7 years ago | (#20210513)

C99 is driven by customer demand. And I don't mean as in a bunch of geeks saying 'implement ALL of C99 now!' but as in they work with their enterprise customers to prioritize features.

TR1 WILL be supported as soon as C++0x is finalized. Not sooner. If they would implement is now, it would likely change as soon as the new standard is ratified. Of course, even if they would implement now, you would criticise them as soon as the standard is ratified because ZOMG! Microsoft's TR1 is proprietary and out of date! LOLOLOLROFLMAO!
I suspect they will simply license TR1 from dinkumware which is feature complete with the current state of TR1.

Intellisense is a dog. People are working on it, and a lot of redesign is going on. Not just for intellisense, but for the whole compiler architecture to make it more scalable and plufable.

And I don't know where you are getting your info from, but asm is perfectly supported in 64 bit. Just inline assembly isn't because for 64 bit code this would make it non-portable between different 64 bit architectures.
You can still add asm files to your VC++ project and compile them.

And you can say yuck to MFC and I would agree. But a very large number of enterprise businesses still builds massive VC++ applications that use it extensively. maintaining and improving it makes lots of business sense.

And finally, C++ is not meant to be as RAD as C# and VB because that would require a lot of manpower which cannot be justified. VC++ is targeted for interoperability, performance and control over the program execution. Not for whipping up a data driven LINQ doc. People who want to use LINQ would simply build a C# project for data interaction and add it to their mixed mode C++ project.

Re:Parent is trolling (3, Interesting)

PhrostyMcByte (589271) | more than 7 years ago | (#20210609)

These are complaints, not trolls. I develop primarily in C++ and am ecstatic about C++0x, and dread seeing my favorite IDE/compiler get put on the backburner and not implement modern unmanaged programming. I don't want to wait 10 years to see C++0x and TR1. They could have easily included Dinkumware's TR1 implementation with it, even in a seperate tr1 namespace, and be sure - everyone would be much much happier.

C++ was not meant to be RAD like C#, but VC++'s compiler and IDE are _far_ from perfect. There are still several annoying little issues you come across when you play with real C++. My point was that there is so much room for improvement in the C++ compiler but they have completely neglected it and the IDE to implement features for their proprietary languages. Which all in all, this being Microsoft, is not that surprising - but it is still a shame.

You got one thing right - I did mean inline assembly (sorry, typos happen). It would be just as non-portable as using seperate .asm files - the functionality was there in the x86 compiler, am I to assume they completely rewrote the compiler enough that it would take vast effort to enable this basic functionality for x64?

Re:Parent is trolling (1)

snemarch (1086057) | more than 7 years ago | (#20210715)

Smart developers don't use inline assembly, but use external asm modules. Easier to port source between compilers that way, you can use a full-featured assembler with macro support etc.

If you complain that it's too big a fuzz compared to inline assembly, well, chances are good that your piece of code is so small/insignificant you shouldn't be dealing with assembly at all - or at least you should refactor the code and do a larger chunk in (external) assembly.

Re:Parent is trolling (2, Insightful)

PhrostyMcByte (589271) | more than 7 years ago | (#20210883)

A lot of C++ developers are fans of header-only libraries. What can I say, I am too - it makes use of these libraries so much easier. Having assembly files breaks this when writing a library.

I agree that a good developer will almost never need to use assembly. Unfortunately there are some (very few, but still some) things you just can't do efficiently in C++ - be it a limitation of the language or the compiler.

Believe me, I wish Microsoft could implement intrinsic functions for everything I need (like CMPXCHG16B mentioned previously). But they don't. I want nothing more than to not have to touch assembly!

Re:Parent is trolling (2, Interesting)

MORB (793798) | more than 7 years ago | (#20211111)

Bullshit. They could (should) start implementing TR1 and even parts of C++0x right now so that they can have a fully compliant implementation shortly after the standard is officially released. That's what gcc is doing. It also helps the stadndardization process because they can see whether the current draft has serious issues and fix them.
gcc has a TR1 implementation and they have started implementing some of the c++0x features (that should be enabled explicitely on the command line)

In any case, VC++ majorly sucks. It's slow (and gets significantly slower at each new version), takes ages to do elementary things (I've seen it take 10 to 20 seconds to open a fucking text file - and a small one at that), has a sucky interface (as of vs2005, the project properties dialog was still not resizeable and full of small text fields meant to contain lots of data, like list of libraries. And don't even get me started on the project configurations dialog), don't really have any features not found anywhere else and they don't even work that well (how easily the code completion system fails). To do anything really useful like some automated refactoring operations, you have to install a third party tool (visual assist)

The project management, with its file/directory hierarchy which is not taken directly from the file system, is completely stupid and annoying (I worked at a MMORPG company on a solution containing dozens of project, and the hierarchy layout in visual studio and the file system were completely different, a fucking nightmare)

It also don't play well with version control tools, because it like to save the contents of the xml in project files in a different order each time, so even a trivial change will show lots of diffs in version control, making it impossible to figure out which compilation setting was changed frmo a version to another, for instance.

I don't know, I just can't find any redeeming feature in this IDE. As far as I'm concerned, when it comes to C++ it's a worthless piece of shit that is only used out of market inertia. It used to be alright, but the performance went down while the features stayed roughly the same except for those awesome 3d toolbars, so now it just doesn't seem to be worth its (rather high) price point compared to free alternatives like eclipse/cdt (or even kdevelop 3.4 if it was available for windows).

And don't come to me saying that a free version is available, its irrelevant to the professional world which have to pay for the dubious privilege of using this thing.

Re:The problem with VC++ (4, Informative)

Jugalator (259273) | more than 7 years ago | (#20210729)

This discussion came up again with Visual Studio 2008 "Orcas" and plans seemingly a bit lacking once again for an improved C++ feature set and general love for IntelliSense, etc.

Microsoft had the following to say:
http://forums.microsoft.com/MSDN/ShowPost.aspx?Pos tID=970938&SiteID=1 [microsoft.com]

See bdunlap's response.

Re:The problem with VC++ (1)

Jugalator (259273) | more than 7 years ago | (#20210755)

Forgot one thing. Although the topic is on C++/CLI (formerly called "Managed C++"), I'm not being stupid and confusing it with native C++, but the MS rep is actually saying a few things on their futre "native vs managed" strategy. In essence, they've listened and hear the demand. Not much to come for Orcas, but more in store for the version after.

Re:The problem with VC++ (2, Informative)

rbanffy (584143) | more than 7 years ago | (#20210821)

It's clear that Microsoft is not interested in the future of C++.

They more or less own the market for C# and IDEs for .NET. Why would they still be interested in something that could be used to migrate away from Windows?

BTW, it's really hard to migrate a Windows C++ program away from Windows. A Windows C++ program may be legal C++, but is something horridly deformed and barely recognizable.

Re:The problem with VC++ (4, Insightful)

Anonymous Brave Guy (457657) | more than 7 years ago | (#20210825)

If you look at the new Visual Studio 2008 - in the three years since 2005 was released, what does Orcas have for C/C++?

I'll see you VC++ 2008 and raise you VC++ .Net (aka VC++ 7.0, aka the 2002 release).

The sad thing is, from a pure C++ programmer's point of view, a lot of people still regard VC++ 6 as the peak. Sure, the standards compliance is better now, and that's a real improvement. Sure, there have been a few optimisation improvements, and those are worthwhile (when they don't introduce bugs). Sure, the debugger has better visualisation support (autoexp.dat) even for native code, and that's definitely useful (if only they'd document it properly).

But when they moved to .Net for everything, the IDE slowed down horribly, even without the Intellisense/multi-threading mess that they finally fixed in 2005SP1. Certain features (I'm looking at you, browse toolbar) actually disappeared from VC++, for the rather poor reason that they couldn't be supported in all .Net languages. I understand that the whole unified architecture thing makes sense from a development perspective at Microsoft, but the bottom line is that users don't care, and removing useful functionality is bad. I also appreciate that, several versions later, we now have most of the same basic functionality back again, but it's still a mess compared to the simple, effective browse toolbar. Similar comments apply to various being-too-clever changes to Intellisense, incidentally.

Perhaps more seriously, as great as all these new optimisations are, we've found far more compiler bugs recently than we ever used to. We write serious mathematical libraries at work, and I promise you it is not fun to spend several days tracking down a bizarre floating point problem, because it turned out that the global optimiser got it wrong fifteen functions up the call stack and now the FPU stack is overflowing.

Meanwhile, we get to see Microsoft putting lots of goodies in for .Net developers. I'm sure they'd love us all to develop for .Net, but until they support it on seven different platforms (where all versions of "Windows" are grouped together as just one of those), it's never going to be of much interest to us.

Right now, Visual C++ is still (in my personal opinion) the best C++ compiler/IDE combination available today. But things move fast in software. Code compiled with g++ has lagged in performance for a long time, but if the recent work behind the scenes on things like SSA bears fruit, that performance gap could close very fast. Eclipse/CDT is so clunky as to be almost unusable for C++ development right now (don't flame me, it's just a personal opinion) but I check every now and then to see how things are going and it sounds like someone might be planning a big clean-up so it doesn't feel like C++ forced into a Java-friendly IDE any more. With Microsoft pushing all their funky new UI support into things like WPF that almost no-one uses, and portable GUI toolkits like wxWidgets and Qt becoming better all the time, it's not like having MFC support is a great bonus for new developments anyway.

In other words, if VC++ 2008 doesn't deliver real improvements for non-.Net-only C++ developers, it's entirely possible that the serious players will be switching to genuinely better open source alternatives for new developments well before the next version of VC++ is out. And that should scare Microsoft, because the superiority of VC++ and the ease of use of VB are the reason so many people have been making effectively Windows-only software for so long.

Re:The problem with VC++ (2, Insightful)

Blakey Rat (99501) | more than 7 years ago | (#20210919)

Good. I think languages with some kind of automatic memory management are the future and make development easier for software houses, which in turn gives them more time worrying about issues like, "will my grandma be able to use this software?" and less time worrying about issues like, "why does it crash when this pointer is dereferenced!?"

Not that I have anything against C or C++, but for applications (i.e. anything made by Visual C++) I don't think it's an ideal language. We've (as an industry) wasted too much time getting it working with a modern GUI environment already, let's move on. Make fun of VB or C#, or even Obj-C/Cocoa if you want, but all those languages are designed, and excel, for GUI software development.

Re:The problem with VC++ (2, Informative)

spectrokid (660550) | more than 7 years ago | (#20211057)

intrinsic functions for important instructions such as CMPXCHG16B

You know you have a sucky language when your important function is called CMPXCHG16B (not to be mistaken with that other little SOB, the good ole CMPCHXG16B)

Just one thing (1)

jeti (105266) | more than 7 years ago | (#20210381)

Please implement delegates and get rid of the method pointers.

Thank you.

Re:Just one thing (2, Informative)

PhrostyMcByte (589271) | more than 7 years ago | (#20210423)

C++ has adopted Boost's function class in the TR1 library - you will be able to use std::function, etc. No more member function pointers if you don't want them.

Re:Just one thing (0, Redundant)

Anonymous Coward | more than 7 years ago | (#20210449)

Please replace the language with Haskell.

Thank you.

Re:Just one thing (1)

doti (966971) | more than 7 years ago | (#20210699)

Haskell is a wonderful language, but it's another completely different paradigm, it's not to replace C++.

D [digitalmars.com] is, it's C++ done right.

C++ is a freak of programming languages. It has grown like cancer, much like HTML.
If you wanted to add OO features to C, I think a simplistic approach like Perl's would be better.

Re:Just one thing (2, Interesting)

jeti (105266) | more than 7 years ago | (#20210923)

Can Haskell interface with our existing C and C++ codebase?
Does a compiler exist for ARM architectures?
And do you think moving over to Haskell would work for my
colleagues? Some of them do not have a formal education in
CS and PL and are not too eager to learn something new.

Re:Just one thing (1)

mwvdlee (775178) | more than 7 years ago | (#20210555)

I'd like the Java "interface" mechanism in C++. It's pretty much the only thing that the Java syntax does better than C++ IMHO.
That and a standardized, platform-independant networking library.

Re:Just one thing (2, Informative)

Pr0xY (526811) | more than 7 years ago | (#20210627)

you can easily get the same effect as the java "interface" mechanism bu supplying a class which contains only pure virtuals (and a virtual destructor). For example:

class AnimalInterface {
public:
    virtual ~AnimalInterface() {}
// note the = 0; on the next lines, that means "pure virtual"
// pure virtual means "no implementation here, a child class must implement
    virtual void eat() = 0;
    virtual void poop() = 0;
};
 
class Monkey : public AnimalInterface {
public:
    virtual void eat() { std::cout << "monkey eating!\n"; }
    virtual void poop() { std::cout << "monkey pooping!\n"; }
};
if a class inherits from AnimalInterface and fails to implement eat or poop, it will result in a compiler error, this the child class must implement the "interface" supplied by the parent class. And just like java, this is safe with regard to multiple inheritance because the pure virtual functions have no implementation, which means no ambiguity with regard to which parent function to call.

Re:Just one thing (1)

mwvdlee (775178) | more than 7 years ago | (#20210669)

The main benefit of Java interfaces is that you can have a single class implement multiple interfaces without having to resort to something like C++'s multiple inheritance. So the Monkey class can also implement HairyInterface, EvilInterface and SlingInterface.

Re:Just one thing (2, Interesting)

smellotron (1039250) | more than 7 years ago | (#20210725)

The main benefit of Java interfaces is that you can have a single class implement multiple interfaces without having to resort to something like C++'s multiple inheritance. So the Monkey class can also implement HairyInterface, EvilInterface and SlingInterface.

The main benefit of C++ abstract classes is that you can have a single class inherit from multiple abstract classes without having to resort to something like Java's interfaces.

You think multiply inheriting from a bunch of C++ abstract classes is somehow worse than implementing multiple Java interfaces? Abstract classes are interfaces, and inheriting from an abstract class is identical to implementing an interface. All of the problems you hear about for the evils of multiple inheritance go away when you start talking about pure abstract classes. There's no worrying about "which parent class method will be active when they have identical signatures" since there aren no parent methods.

Re:Just one thing (1)

mwvdlee (775178) | more than 7 years ago | (#20210779)

I was just thinking that as the submit button did it's job :)
Still though, it would be nice to have a mechanism that can't be easily abused, but I guess my main concern has been taken care of :)

C Plus Plus Bye Bye (-1, Troll)

Anonymous Coward | more than 7 years ago | (#20210429)

Look at the job listings. The only positions that are hiring C++ programmers are for legacy applications and support or rewriting C++ code into C#. C++ has gone the way of Fortran, Cobol, Pascal and Delphi.

Let it go.

Re:C Plus Plus Bye Bye (4, Informative)

Omni-Cognate (620505) | more than 7 years ago | (#20210499)

Not that job listings are a particularly good indicator of anything, but from Monster:

The C++ ones include plenty of new systems.

Java: "more than 1000" (1)

zigamorph (991245) | more than 7 years ago | (#20211017)

Java: More than 1000 [monster.co.uk]

Re:C Plus Plus Bye Bye (3, Interesting)

ardor (673957) | more than 7 years ago | (#20210535)

If you really understand C++, migrating to C# is very easy. C#->C++ however...

but, if we talk about managed languages, I'd go straight for Python or Common Lisp.

How good it is, isnt a major plus (1)

cheekyboy (598084) | more than 7 years ago | (#20210567)

Whats the point of something good, when you have a problem and google it and find zero results every single time.

Search for C++ and find 10000s of results/samples/etc....

People do more than just back end database integration to web front ends. The day intel implements C# decoding on CPU side to make it as fast
or faster than native code, that might move a LOT OF mindset to it.

Re:C Plus Plus Bye Bye (1)

pzs (857406) | more than 7 years ago | (#20210657)


but, if we talk about managed languages, I'd go straight for Python or Common Lisp.




I've heard a few people saying this. Is Common Lisp really an industrial strength development tool? I thought it was just for functional programming acolytes and emacs power users.




Peter


Re:C Plus Plus Bye Bye (1)

Zekasu (1059298) | more than 7 years ago | (#20210733)

I've personally heard from a friend that Lisp is pretty damn powerful, particularly in the terms of calcuations and the like, so I can see it being used for some backend applications. Although, I personally find Lisp more obscure than C++, or C#, but that's just me.

Re:C Plus Plus Bye Bye (1, Funny)

Anonymous Coward | more than 7 years ago | (#20210737)

This is slashdot, a magical land where functional languages are popular and scripting languages are fast...

Re:C Plus Plus Bye Bye (1)

marcosdumay (620877) | more than 7 years ago | (#20211091)

"Is Common Lisp really an industrial strength development tool?"

What is an "industrial strength development tool"?

Lisp has advantages and disadvantages, like anything else. Prejudice will lead you nowere.

Re:C Plus Plus Bye Bye (1)

Goaway (82658) | more than 7 years ago | (#20211139)

What is an "industrial strength development tool"?

A programming language which you can use to develop, debug and distribute a real-world, functioning application in, I'm guessing. Something like, say, Firefox. Use native APIs, native GUIs, run at decent speed, behave like a native app.

Linus is right (-1, Offtopic)

Anonymous Coward | more than 7 years ago | (#20210465)

I am with Linus on this one. For the life of me I can't understand what this sucking up to RMS is about.
Linus himself does not think GPLv3 is a good thing. So why do people keep adopting it.
I trust Linus to lead our community than RMS.

With all respect... (2, Insightful)

2Bits (167227) | more than 7 years ago | (#20210529)

to Stroustrup, but don't you think it's a bit ironic that the creator of such a monstrosity is talking about ideal of programming languages? And don't even get me into the the differences between implementations!

Yeah, go ahead, bring out your flame hose. Even if I had to burn in hell, this thing is still a monstrosity.

Re:With all respect... (2, Informative)

ardor (673957) | more than 7 years ago | (#20210583)

C++ is far too complex yes. But there is nothing that can really replace it. A language which supports functional, generic, procedural, object-oriented programming, with static typing, metaprogramming, and heavily geared towards native building? I mean, do you know a language which can resolve iterators to simple pointer arithmetic when compiling? Of course there are far better languages feature-wise, but they all demand some performance penalties. This may or may not be relevant. For example, for video codecs its relevant, as it is for most other realtime stuff (try capturing with Java and its GC for instance).

So, C++ fills a niche. D *may* be a replacement, but I am skeptical. I don't know Eiffel well enough though, this may be a good candidate.

And lets not forget that C++ toolchains are among the most optimized and tested ones. For example, Lisp could be able to reach C++ performance, but doesnt simply because the Lisp toolchains arent as optimized. A simplified example: sometimes SBCL does register->memory->operation->register calls, where g++ optimizes to register->operation. And, the amount of C++ code in existence is staggering.

Re:With all respect... (1)

MichaelSmith (789609) | more than 7 years ago | (#20210617)

Of course there are far better languages feature-wise, but they all demand some performance penalties

Pure OO C++ code I have seen, generated direct from UML, performs hopelessly against a C equivalent because of its reliance on memory allocation.

Re:With all respect... (-1)

Anonymous Coward | more than 7 years ago | (#20210641)

code ... generated direct from UML
ROFLMAO

Tool misuse? (1)

mattgreen (701203) | more than 7 years ago | (#20210651)

Why are you using code generation tools to write code that is performance sensitive? Of course you avoid indirection at all costs in code that has to be fast. It would have been equally as slow if you had used pure OO code in C.

Re:With all respect... (2, Interesting)

hr.wien (986516) | more than 7 years ago | (#20211069)

Why does everyone coding OO in C++ seem to think you need to new and delete every damn object? Use the stack and the RAII pattern whenever possible (which, in my experience, is most of the time). It'll make your code both cleaner and safe from resource leaks.

Re:With all respect... (2, Interesting)

Dr. Manhattan (29720) | more than 7 years ago | (#20210777)

C++ isn't just "too complex". It's "so overly complex that it becomes a real problem." From The Art Of Unix Programming [faqs.org] : "Compactness is the property that a design can fit inside a human being's head. A good practical test for compactness is this: Does an experienced user normally need a manual? If not, then the design (or at least the subset of it that covers normal use) is compact... C++ is anti-compact -- the language's designer has admitted that he doesn't expect any one programmer to ever understand it all."

With all the libraries and the plethora of features, it also has a large measure of Perl's problem: "Some designs that are not compact have enough internal redundancy of features that individual programmers end up carving out compact dialects sufficient for that 80% of common tasks by choosing a working subset of the language. Perl has this kind of pseudo-compactness, for example. Such designs have a built-in trap; when two programmers try to communicate about a project, they may find that differences in their working subsets are a significant barrier to understanding and modifying the code."

The summary, here [faqs.org] : "When all is said and done, however, C++'s most fundamental problem is that it is basically just another conventional language. It confines the memory-management problem better than it did before the invention of the Standard Template Library, and a lot better than C does, but the confinement is brittle; it breaks unless your code uses objects and only objects. For many types of application its OO features are not significant, and simply add complexity to C without yielding much advantage. Open-source C++ compilers are available; if C++ were unequivocally superior to C it would now dominate... Consider using C++ if an existing C++ toolkit or service library offers powerful leverage for your application, or if you're in one of the application areas mentioned above for which an OO language is known to be a large win."

Re:With all respect... (1)

rbanffy (584143) | more than 7 years ago | (#20211025)

"A language which supports functional, generic, procedural, object-oriented programming, with static typing, metaprogramming, and heavily geared towards native building?"

The real question is "do we need a single language that has all these different goals built in?"

We probably have better solutions in each and every problem C++ proposes to solve.

Replacing C++? (5, Interesting)

Anonymous Brave Guy (457657) | more than 7 years ago | (#20211079)

C++ is far too complex yes. But there is nothing that can really replace it. A language which supports functional, generic, procedural, object-oriented programming, with static typing, metaprogramming, and heavily geared towards native building?

The thing is, most development projects that use C++ today don't need all of that.

C++ is a fine, pragmatic tool, and I have great admiration for Stroustrup's ability to build such a useful thing. C++ is also a powerful systems programming tool.

But C++ is not a good language for most application development, which is what a great deal of code written in it really is. I think there are several separate but somewhat related reasons for this.

One is the safety argument. Most people simply don't need the flexibility/footshootability [delete as applicable] of C++. You need only look at the much-hyped field of garbage collection to see that (a) many professional developers find this one feature useful that they regard Java as superior to C++ for this reason alone, (b) many more professional developers have no clue about the overheads involved (which are almost zero for typical applications using modern approaches to GC implementation), and most importantly (c) a great many developers using languages without GC make mistakes that developers using languages with GC wouldn't. Similar arguments apply to other routine problems, such as pointers/NULL.

The second is the expressive power argument. Life is too short to be using programming languages with primitive, error-prone control flow constructs, functions that aren't first-order entities, no syntactic support for common data structures, crude macros, header files, etc.

Third we have the standard library argument. Yes, yes, you can get a C++ library for almost anything. That's not the point. The key word is "standard". Take a look at the huge practical success of Java and Perl, and tell me the vast Java standard library and CPAN have nothing to do with them. Sure, C++'s standard library is, technically, of a higher quality than most. But it still has stupid flaws (string support and IO streams are both fundamentally broken, for example). More seriously, it has stupid gaps. In the 21st century, it's hard to seriously advocate application development in a language with no standardised support for user interfaces, networking, concurrency, file systems, etc. No, I'm not going to spend days trying to find the right non-standard library for me. Non-standard libraries are for solving significant problems, where the difficulty and scope make it worth investing the time to find and hook in someone else's code. They're not for trivia that everyone uses all the time.

And finally, we have the tools argument. Working with header files sucks, and while just about everyone else is playing with their funky, auto-refactoring, navigation supporting editors, what do we have? VC++ (where refactoring still isn't available in native C++) and Eclipse (which is C++ forced into a Java-like IDE)?

The really scary thing is that reality bites now. It's not like I'm the first person to identify these practical flaws with using C++ for application development. It's not like other people haven't developed languages and tools with all these improvements already. And yet C++ continues to be one of the most important application programming languages today. Why?

Momentum. That's why. Building a new programming language with a syntax that doesn't look like C is asking for trouble; just look at the arguments Python sees over whitespace. (Curiously, I've never seen such complaints made about Haskell. Perhaps this shows a difference between the insight of your average professional programmer vs. your average language geek academic?) More to the point, trying to advocate a new programming language for industrial application development that isn't some form of block-structured, OO-based clone is asking for trouble.

I'm hopeful that over the next few years, as hardware forces a new emphasis on concurrency and changes in our preferred programming models to those that aren't fundamentally broken on that score, there will be an opportunity to exploit many of the other advances in programming language design that have been made in recent years. And hey, until then, there's always C++, where at least you will probably be able to do whatever you want to if you try hard enough.

Re:With all respect... (0)

Anonymous Coward | more than 7 years ago | (#20210619)

If C++ didn't exist, today in 2007, it would need to be invented. Bjarne and company saved us 20 years of development. The syntax and feature set actually make sense, if you're willing to invest the time to learn to use them properly.

What language would you use to write a commercial quality DBMS or web browser, for instance? I suppose you could use Objective C, but that is much more obscure (in terms of compiler availability and the community of trained developers) than C++.

Re:With all respect... (1)

Goaway (82658) | more than 7 years ago | (#20211169)

I'm a huge fan of Objective-C, but I'll still admit that it loses to C++ in terms of performance. Message passing and the lack of objects on the stack mean it will never be quite as fast.

Still, it's a shame it's not more prevalent, because it's a wonderful language for a lot of real-world tasks.

Do I.... (-1, Flamebait)

Anonymous Coward | more than 7 years ago | (#20210579)

...really have to VTFA?

3...2...1... (2, Funny)

kazade84 (1078337) | more than 7 years ago | (#20210687)

and let the syntax criticizing begin ;)

Re:3...2...1... (1)

HappySmileMan (1088123) | more than 7 years ago | (#20211051)

C++ syntax sucks...

I mean

int a = 5 + 6;
How the hell is anyone supposed to understand it

mod Down (-1, Troll)

Anonymous Coward | more than 7 years ago | (#20210691)

not bad... (5, Interesting)

rgravina (520410) | more than 7 years ago | (#20210697)

Recently, I've just started getting into C++, and I can't understand why so many people hate the language with such a passion. The thing is, if you need/want to write your program in a compiled language with plenty of library support, then aside from C, what options are there? I'm not trying to start a flamewar, but I figure if I want to say use C (or other C++) libraries and a compiled language then I feel C++ is much better option than C. One very smart and experienced C programmer I know hates C++ with a passion complaining that "it's too complex" and just rejecting it outright.

I haven't yet written (or debugged) any large programs in C++, so that could be why I'm still enthusastic. Perhaps after some time with the language I might see what everyone is so worked up about.

I'm reading through "Effective C++" by Scott Meyers, and although the language seems like it has its warts and complexity, it also offers a great deal of power and is a hell of a lot more fun to program in than C because you get the abstraction support of objects, namespaces etc. Streams - awsome. Shared (reference counting) pointers - awsome. Less need for the preprocessor - awsome. And the standard library (plus Boost too) is so vast... containers, algorithms, it's all there.

Python is still my favourite general-purpose language, but if I need something compiled, then I don't see what is so bad about C++. Sure, Objective-C is a far better approach to the "lets-make-a-better-C" idea, but I'm not sure how to use it (and the standard library) outside of OSX or GNUStep.

Re:not bad... (1, Interesting)

Anonymous Coward | more than 7 years ago | (#20210893)

For me, the answer has become D http://www.digitalmars.com/d/index.html [digitalmars.com]

Re:not bad... (2, Insightful)

Anonymous Coward | more than 7 years ago | (#20210951)

C++ seems to have been designed by someone who hated C.
C++ is anti-C (should have been named ~C):
  • is complex where C is simple
  • hides what's going on, to the extent that you
    can't tell what's going to happen just by looking at code
    (you have to look way behind the scenes
  • has implementations which are diverging, not converging

Re:not bad... (4, Funny)

Random832 (694525) | more than 7 years ago | (#20210981)

(should have been named ~C) And Godwin's law has been invoked/fulfilled/whatever.

Watch the video (2, Interesting)

dysfunct (940221) | more than 7 years ago | (#20210743)

As an autodidact I'm easily bored by overly long and dry technical presentations of what could be read through in a couple of minutes, but this video is getting very interesting and funny after the first couple if minutes. Lots of insight into the process of creating the new standards and and all the thoughts that go into it, mixed with anecdotes, random trivia and geek humor by Bjarne Stroustrup himself. I'm actually considering downloading the 700mb xvid version of the talk and making me some popcorn to go with it. IMO, even if you're not a C++ geek it's actually worth watching.

The Future Is Already Here... (2, Funny)

ezdude (885983) | more than 7 years ago | (#20210757)

And it looks something like Haskell. Static typing, lazy evaluation, high-level parallelism, pure functionality, explicit imperative-ness. Heck, monads even sound like something from the future.

C++ needed improvements several years ago. (3, Informative)

Futurepower(R) (558542) | more than 7 years ago | (#20210897)

Dr. Stroustrup [wikipedia.org] made a great contribution by designing the C++ language. However, in recent years it seems to me that he has been taking a leisurely approach to making improvements.

Stroustrup is, unlike most programmers, an excellent writer. His FAQ [att.com] is an example. Quote: "What's a good certification for C++ programmers? To the best of my knowledge, there isn't a good certification program for C++ programmers. That's a pity. A good certification program would be most useful. However, C++ lacks the central organization that would produce a solid certification program, and a certification program without authority or that focused on syntax would be worse than useless."

I'm certainly not an expert in this subject. However, I get the same impression from the words "C++ lacks the central organization" in that paragraph that I get from his other recent work. Something like, "What, me be a leader?"

Note that Java and C#, which are sometimes seen as replacements for C++, are proprietary languages from companies that are routinely mismanaged. If you use those languages, you partner with those companies, and it is possible that you too will suffer from their mismanagement. For that reason, there is a big need for strong leadership in maintaining a language unencumbered by issues of proprietary behavior.

Concerning Java, Dr. Stroustrup says [att.com] "Java isn't platform independent; it is a platform. Like Windows, it is a proprietary commercial platform. That is, you can write programs for Windows/Intel or Java/JVM, and in each case you are writing code for a platform owned by a single corporation and tweaked for the commercial benefit of that corporation."

Concerning C#, he says [att.com] , "It will take a lot to persuade me that the world needs yet another proprietary language (YAPL). It will be especially hard to persuade me that it needs a language that is closely integrated with a specific proprietary operating system."

Again, I'm not an expert in this area, but it seems to me that Dr. Stroustrup tends to define his leadership narrowly and concern himself with programming constructs rather than larger issues such as extension, standardization, and certification of libraries, for example. About C++ garbage collection he says, partly: "See ... Hans-J. Boehm's site [att.com] ". It seems to me that there are too many areas in which the C++ answer is "You can just go there", rather than "This is the standard, certified method."

It's amazing to me, but true leaders are very rare. After all these years, we still depend on Dr. Stroustrup, even though he has been less than a complete leader in the more social aspects of developing the C++ language, in my opinion.

Answer : Common Lisp (-1, Flamebait)

chthon (580889) | more than 7 years ago | (#20210975)

QED

Obligatory quote (his 1998 "interview") (1, Troll)

Phatmanotoo (719777) | more than 7 years ago | (#20211049)

Someone had to mention his other famous interview [nsbasic.com] .

The way I see C++ these days: it might be your only choice if you are building a mass-market "horizontal" app (like, say, mozilla), and even then I would consider alternatives such as Objective C or plain ANSI C. But for "enterprise" apps, it is absolutely dreadful! Like someone said, it is the language with the most error-inducing features.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?