There's the successful direction and then there's the approach that Bjarne took with C++
-
So during lunch I was looking at the book: Masterminds of Programming[^]. It's a book which has interviews with the creators of different programming languages. I started by looking at Objective-C inventor Tom Love. He was asked, "Both Objective C and C++ started with C, but they took different approach? Which approach do you prefer now?". His reply was:- "There's the successful direction and then there's the approach that Bjarne took with C++". Also he thinks that the only reason for popularity of C++ was the AT&T brand name and that C++ is ugly and complex. I found that pretty funny. I have programmed in both the languages and I find Objective-C to be uglier than C++ in many respects. It is true that C++ is complex in some respects, but it is also true that Objective-C has complex elements too. As far as success is concerned beyond Apple no one else has chosen Objective-C anyways.
-
So during lunch I was looking at the book: Masterminds of Programming[^]. It's a book which has interviews with the creators of different programming languages. I started by looking at Objective-C inventor Tom Love. He was asked, "Both Objective C and C++ started with C, but they took different approach? Which approach do you prefer now?". His reply was:- "There's the successful direction and then there's the approach that Bjarne took with C++". Also he thinks that the only reason for popularity of C++ was the AT&T brand name and that C++ is ugly and complex. I found that pretty funny. I have programmed in both the languages and I find Objective-C to be uglier than C++ in many respects. It is true that C++ is complex in some respects, but it is also true that Objective-C has complex elements too. As far as success is concerned beyond Apple no one else has chosen Objective-C anyways.
IMO, the success of C++ is due to MFC / Visual C++. if MS didn't push C++, i wouldn't have ever bothered learning it.
-
So during lunch I was looking at the book: Masterminds of Programming[^]. It's a book which has interviews with the creators of different programming languages. I started by looking at Objective-C inventor Tom Love. He was asked, "Both Objective C and C++ started with C, but they took different approach? Which approach do you prefer now?". His reply was:- "There's the successful direction and then there's the approach that Bjarne took with C++". Also he thinks that the only reason for popularity of C++ was the AT&T brand name and that C++ is ugly and complex. I found that pretty funny. I have programmed in both the languages and I find Objective-C to be uglier than C++ in many respects. It is true that C++ is complex in some respects, but it is also true that Objective-C has complex elements too. As far as success is concerned beyond Apple no one else has chosen Objective-C anyways.
Rama Krishna Vavilala wrote:
"There's the successful direction and then there's the approach that Bjarne took with C++ - Tom Love".
Looks like he's living in his own deluded world. :)
It is a crappy thing, but it's life -^ Carlo Pallini
-
IMO, the success of C++ is due to MFC / Visual C++. if MS didn't push C++, i wouldn't have ever bothered learning it.
+5 for Visual C++.
It is a crappy thing, but it's life -^ Carlo Pallini
-
IMO, the success of C++ is due to MFC / Visual C++. if MS didn't push C++, i wouldn't have ever bothered learning it.
Before Visual C++, there was the semi-graphic dos based Turbo C++, which was very good. A big part of the success of Visual C++/MFC against Borland C++/OWL, was MS adhered closely to C++ (ie message maps against custom c++ extension). Funny how the adherence to a de facto standard helped them win the challenge. But things came out fine eventually, as Mr Hejlsberg joined MS and designed C#. So I was a big C++ fan before Visual C++, but I jumped on it when v1 was released, and am glad MS decided to invest in it.
You can't turn lead into gold, unless you've built yourself a nuclear plant.
-
Before Visual C++, there was the semi-graphic dos based Turbo C++, which was very good. A big part of the success of Visual C++/MFC against Borland C++/OWL, was MS adhered closely to C++ (ie message maps against custom c++ extension). Funny how the adherence to a de facto standard helped them win the challenge. But things came out fine eventually, as Mr Hejlsberg joined MS and designed C#. So I was a big C++ fan before Visual C++, but I jumped on it when v1 was released, and am glad MS decided to invest in it.
You can't turn lead into gold, unless you've built yourself a nuclear plant.
Funny... If there's one thing i took away from TurboC++ and OWL, it was that i didn't much care for C++. Then again, i got the same impression from using MFC. It wasn't until i started using STL heavily that i found something to like in the language or its libraries...
-
Funny... If there's one thing i took away from TurboC++ and OWL, it was that i didn't much care for C++. Then again, i got the same impression from using MFC. It wasn't until i started using STL heavily that i found something to like in the language or its libraries...
so what was you favourite language back at this time? C?
You can't turn lead into gold, unless you've built yourself a nuclear plant.
-
so what was you favourite language back at this time? C?
You can't turn lead into gold, unless you've built yourself a nuclear plant.
-
C is nice too, but C++ was very promising. A lot of the design decisions Stroustrup made, made a lot of sense, at a time when programmers would question the validity of a constructor, ie a function that is always called wether you need it or not.
You can't turn lead into gold, unless you've built yourself a nuclear plant.
-
C is nice too, but C++ was very promising. A lot of the design decisions Stroustrup made, made a lot of sense, at a time when programmers would question the validity of a constructor, ie a function that is always called wether you need it or not.
You can't turn lead into gold, unless you've built yourself a nuclear plant.
It did what it was supposed to do: provide a two-way bridge to OO-ish coding from C. It could use C APIs, be called from C, and pretty much become C if that's what the job required. Unfortunately, that meant a lot of reliance on C libraries, perhaps with some halfhearted attempts at putting C++—style wrappers around them. Lots of schizophrenic code. It didn't help my attitude that when i was finally forced into using it, it was via the VC5/6 compilers and their lackluster support for templates, and the STL. Don't get me wrong - i still use C++, and there are a lot of things going for it... but the shear amount of "C packed into classes" code i have to deal with gets me down.
-
Before Visual C++, there was the semi-graphic dos based Turbo C++, which was very good. A big part of the success of Visual C++/MFC against Borland C++/OWL, was MS adhered closely to C++ (ie message maps against custom c++ extension). Funny how the adherence to a de facto standard helped them win the challenge. But things came out fine eventually, as Mr Hejlsberg joined MS and designed C#. So I was a big C++ fan before Visual C++, but I jumped on it when v1 was released, and am glad MS decided to invest in it.
You can't turn lead into gold, unless you've built yourself a nuclear plant.
If you want to understand why C++ is how it is, read Bjarne's excellent book "the design and evolution of c++". It explains why all the warts are there and why the language would fail without it. Put simply the approach taken gave people something they could use now, and with all their old code. Other languages are often better but require recoding everything and retraining programmers. Remember these were the days before the internet and cargo-cult programming - to learn something new you had to get a real paper book, read it and work things out for yourself :) I laughed at the suggestion that MSVC made C++ successful. MFC has always been a C framework with only a slight hint of C++ thrown in, no OO design worth mentioning and no template support. At the time it was suggested this was done so that MS didn't have to retrain all their C programmers in order to produce MFC - which probably also helped as it meant the same for the application programmers who would have also been much more familiar with C. Borland had templates years ahead of MSVC and a proper OO windowing toolkit. It was mostly killed off by anti-competitive practices when windows 95 was released. Specifically certain widgets not really being documented well enough for anyone else to make use of them, or relying on undocumented features so others could not replicate. So if you wanted something up to date and working with the new OS then it had to be MFC. It is worth bearing in mind that C++ of the mid nineties bears little resemblance to that used nowadays. I still have a copy of the second edition of "the C++ programming language" and it is on another planet.
-
So during lunch I was looking at the book: Masterminds of Programming[^]. It's a book which has interviews with the creators of different programming languages. I started by looking at Objective-C inventor Tom Love. He was asked, "Both Objective C and C++ started with C, but they took different approach? Which approach do you prefer now?". His reply was:- "There's the successful direction and then there's the approach that Bjarne took with C++". Also he thinks that the only reason for popularity of C++ was the AT&T brand name and that C++ is ugly and complex. I found that pretty funny. I have programmed in both the languages and I find Objective-C to be uglier than C++ in many respects. It is true that C++ is complex in some respects, but it is also true that Objective-C has complex elements too. As far as success is concerned beyond Apple no one else has chosen Objective-C anyways.
C++ is ugly, complex and highly unreliable compared to earlier programming media. I've been at this since 1960 and, as the practice became more user (i.e. engineer) friendly, the "professional" programmers saw the handwriting on the wall. Our purpose, as program designers and developers, was to put ourselves out of business. The computer science community, however, chose to establish a continuing need for their services by morphing assembly language into a syntax-laden barrier between the user and the computer: C, then C++. Believe me, there were plenty of other, more utilitarian, alternatives available to FORTRAN and COBOL. To give the devil his due, Bjarne did make the world safe for professional programmers - and held back the development of computer applications by decades. Peter McLaughlin The Simulation and Modelling Workshop
-
C++ is ugly, complex and highly unreliable compared to earlier programming media. I've been at this since 1960 and, as the practice became more user (i.e. engineer) friendly, the "professional" programmers saw the handwriting on the wall. Our purpose, as program designers and developers, was to put ourselves out of business. The computer science community, however, chose to establish a continuing need for their services by morphing assembly language into a syntax-laden barrier between the user and the computer: C, then C++. Believe me, there were plenty of other, more utilitarian, alternatives available to FORTRAN and COBOL. To give the devil his due, Bjarne did make the world safe for professional programmers - and held back the development of computer applications by decades. Peter McLaughlin The Simulation and Modelling Workshop
I couldn't disagree more! C++ is an elegant language that is only becoming more elegant with the improvements introduced in TR1/C++0x and the Boost libraries. I learnt C++ way back in 1993 and have been an addict ever since. OK, it may take a higher intellect to understand the subtleties, but if you do there is no language more powerful than C++. To be honest, I am sure there were many more useful languages (but not more powerful - except for assembler) in the 60s and 70s, but most of which got killed off by the DoD's standardisation process and Ada - not C/C++/Java/C#. Nevertheless, I've programmed seriously in three main languages - Pascal, C and C++ - and C++ is the most flexible and powerful (and most complex!) of them all. Add in Boost, Std Lib & STL, and all the enhancements of TR1/C++0x and it is unstoppable! And what killed Borland? Probably Delphi/VCL creator Anders Hejlsberg being poached by M$ to write C#/.Net. That's innovation for you - if don't have it, buy it, steal it or copy it! Derek
-
If you want to understand why C++ is how it is, read Bjarne's excellent book "the design and evolution of c++". It explains why all the warts are there and why the language would fail without it. Put simply the approach taken gave people something they could use now, and with all their old code. Other languages are often better but require recoding everything and retraining programmers. Remember these were the days before the internet and cargo-cult programming - to learn something new you had to get a real paper book, read it and work things out for yourself :) I laughed at the suggestion that MSVC made C++ successful. MFC has always been a C framework with only a slight hint of C++ thrown in, no OO design worth mentioning and no template support. At the time it was suggested this was done so that MS didn't have to retrain all their C programmers in order to produce MFC - which probably also helped as it meant the same for the application programmers who would have also been much more familiar with C. Borland had templates years ahead of MSVC and a proper OO windowing toolkit. It was mostly killed off by anti-competitive practices when windows 95 was released. Specifically certain widgets not really being documented well enough for anyone else to make use of them, or relying on undocumented features so others could not replicate. So if you wanted something up to date and working with the new OS then it had to be MFC. It is worth bearing in mind that C++ of the mid nineties bears little resemblance to that used nowadays. I still have a copy of the second edition of "the C++ programming language" and it is on another planet.
M Towler wrote:
cargo-cult programming
:)
M Towler wrote:
MFC has always been a C framework with only a slight hint of C++ thrown in, no OO design worth mentioning and no template support
yep, it took a long time for MS to change their mindset, moving away from C.
M Towler wrote:
Specifically certain widgets not really being documented well enough for anyone else to make use of them, or relying on undocumented features so others could not replicate
There used to be a lot of talks about undocumented features, and people even made money writing books on this topic. On the other hand, I question the fact it really caused problems to competitors. For example, speaking about UI, nothing prevented competitors to develop their own frameworks and their own controls. Actually, I think that's what Borland did (with those typical Borland bitmaps). So I don't buy that idea MS killed competitors with undocumented features, this would be equivalent to say engineers outside MS were enable to develop by themselves. :omg:
You can't turn lead into gold, unless you've built yourself a nuclear plant.
-
I couldn't disagree more! C++ is an elegant language that is only becoming more elegant with the improvements introduced in TR1/C++0x and the Boost libraries. I learnt C++ way back in 1993 and have been an addict ever since. OK, it may take a higher intellect to understand the subtleties, but if you do there is no language more powerful than C++. To be honest, I am sure there were many more useful languages (but not more powerful - except for assembler) in the 60s and 70s, but most of which got killed off by the DoD's standardisation process and Ada - not C/C++/Java/C#. Nevertheless, I've programmed seriously in three main languages - Pascal, C and C++ - and C++ is the most flexible and powerful (and most complex!) of them all. Add in Boost, Std Lib & STL, and all the enhancements of TR1/C++0x and it is unstoppable! And what killed Borland? Probably Delphi/VCL creator Anders Hejlsberg being poached by M$ to write C#/.Net. That's innovation for you - if don't have it, buy it, steal it or copy it! Derek
I agree C++ is a good language, but IMO you are overcharging the DOD. They did an excellent standardization job. And this did not kill much. When the DOD started thinking about what would become Ada, they audited their departments and realized they had projects written in about 100 different languages, and programmers from one department to the next just were not sharing. So in short, this was a tower of Babel. Ada is mostly used in areas where C++ (or similar languages) is not. They cover different needs. Ada is not an "evolved" language, it is a "planned" language. Similar and as good in quality as Eiffel.
DerekJChandler wrote:
And what killed Borland? Probably Delphi/VCL creator Anders Hejlsberg being poached by M$ to write C#/.Net. That's innovation for you - if don't have it, buy it, steal it or copy it!
Come on!! Borland was dead before Hejlsberg was hired by MS.
You can't turn lead into gold, unless you've built yourself a nuclear plant.
-
So during lunch I was looking at the book: Masterminds of Programming[^]. It's a book which has interviews with the creators of different programming languages. I started by looking at Objective-C inventor Tom Love. He was asked, "Both Objective C and C++ started with C, but they took different approach? Which approach do you prefer now?". His reply was:- "There's the successful direction and then there's the approach that Bjarne took with C++". Also he thinks that the only reason for popularity of C++ was the AT&T brand name and that C++ is ugly and complex. I found that pretty funny. I have programmed in both the languages and I find Objective-C to be uglier than C++ in many respects. It is true that C++ is complex in some respects, but it is also true that Objective-C has complex elements too. As far as success is concerned beyond Apple no one else has chosen Objective-C anyways.
Rama Krishna Vavilala wrote:
It's a book which has interviews with the creators of different programming languages. I started by looking at Objective-C inventor Tom Love. He was asked, "Both Objective C and C++ started with C, but they took different approach? Which approach do you prefer now?". His reply was:- "There's the successful direction and then there's the approach that Bjarne took with C++". Also he thinks that the only reason for popularity of C++ was the AT&T brand name and that C++ is ugly and complex.
Sounds extremely naive to me. There are many more failed attempts at new technology compared to those that succeed. And very few that are wildly successful. By definition one would hope that inventors of a particular technology consider that it has utility. But for failures there are realistically only two causes. 1. It has no utility for the majority of the market. 2. It was poorly sold by the holder of the technology. Neither of those have anything to do with external forces. And that is even more apt in this case since there have been other successful OO languages.
-
Before Visual C++, there was the semi-graphic dos based Turbo C++, which was very good. A big part of the success of Visual C++/MFC against Borland C++/OWL, was MS adhered closely to C++ (ie message maps against custom c++ extension). Funny how the adherence to a de facto standard helped them win the challenge. But things came out fine eventually, as Mr Hejlsberg joined MS and designed C#. So I was a big C++ fan before Visual C++, but I jumped on it when v1 was released, and am glad MS decided to invest in it.
You can't turn lead into gold, unless you've built yourself a nuclear plant.
Pierre Leclercq wrote:
Before Visual C++, there was the semi-graphic dos based Turbo C++, which was very good. A big part of the success of Visual C++/MFC against Borland C++/OWL, was MS adhered closely to C++ (ie message maps against custom c++ extension).
Most of the IDE battle was over before there was a C++ standard of any sort. And when there was a C++ standard Microsoft was far from being a leader in correctly implementing it. Ansi C++ was officially released in 1998 and at that approximate period Borland was in serious financial difficulties and actually changed their name. As an example I know that it took MS two major version releases after the standard was issued to implement overriding the new operator even though that was something approved by the committee long before the standard was finalized. It took them longer still to get templates right (in fairness a lot of compilers had a problem with that.) And prior to the standarization of the language the most significant advantage Microsoft had was that with each new release of the OS Borland had to upgrade its own libraries post release because Microsoft would not release the API. Finally there is nothing it C++ standards that relates to "message maps" but perhaps that is a terminology difference.
-
C++ is ugly, complex and highly unreliable compared to earlier programming media. I've been at this since 1960 and, as the practice became more user (i.e. engineer) friendly, the "professional" programmers saw the handwriting on the wall. Our purpose, as program designers and developers, was to put ourselves out of business. The computer science community, however, chose to establish a continuing need for their services by morphing assembly language into a syntax-laden barrier between the user and the computer: C, then C++. Believe me, there were plenty of other, more utilitarian, alternatives available to FORTRAN and COBOL. To give the devil his due, Bjarne did make the world safe for professional programmers - and held back the development of computer applications by decades. Peter McLaughlin The Simulation and Modelling Workshop
PeterGuerilla wrote:
C++ is ugly, complex and highly unreliable compared to earlier programming media. I've been at this since 1960 and, as the practice became more user (i.e. engineer) friendly, the "professional" programmers saw the handwriting on the wall. Our purpose, as program designers and developers, was to put ourselves out of business. The computer science community, however, chose to establish a continuing need for their services by morphing assembly language into a syntax-laden barrier between the user and the computer: C, then C++. Believe me, there were plenty of other, more utilitarian, alternatives available to FORTRAN and COBOL. To give the devil his due, Bjarne did make the world safe for professional programmers - and held back the development of computer applications by decades.
Interesting opinion. Certainly not one that I agree with. Certainly not one that I have seen any evidence for. I have certainly seen a number of technologies, recent ones and older, claim that they would remove the need for programmers. Some have had a very limited success in very limited tasks. Most simply fail almost immediately.
-
M Towler wrote:
cargo-cult programming
:)
M Towler wrote:
MFC has always been a C framework with only a slight hint of C++ thrown in, no OO design worth mentioning and no template support
yep, it took a long time for MS to change their mindset, moving away from C.
M Towler wrote:
Specifically certain widgets not really being documented well enough for anyone else to make use of them, or relying on undocumented features so others could not replicate
There used to be a lot of talks about undocumented features, and people even made money writing books on this topic. On the other hand, I question the fact it really caused problems to competitors. For example, speaking about UI, nothing prevented competitors to develop their own frameworks and their own controls. Actually, I think that's what Borland did (with those typical Borland bitmaps). So I don't buy that idea MS killed competitors with undocumented features, this would be equivalent to say engineers outside MS were enable to develop by themselves. :omg:
You can't turn lead into gold, unless you've built yourself a nuclear plant.
Pierre Leclercq wrote:
There used to be a lot of talks about undocumented features, and people even made money writing books on this topic. On the other hand, I question the fact it really caused problems to competitors.
Certainly disabling competing DOSes in early versions caused problems. http://en.wikipedia.org/wiki/AARD_code[^]
-
So during lunch I was looking at the book: Masterminds of Programming[^]. It's a book which has interviews with the creators of different programming languages. I started by looking at Objective-C inventor Tom Love. He was asked, "Both Objective C and C++ started with C, but they took different approach? Which approach do you prefer now?". His reply was:- "There's the successful direction and then there's the approach that Bjarne took with C++". Also he thinks that the only reason for popularity of C++ was the AT&T brand name and that C++ is ugly and complex. I found that pretty funny. I have programmed in both the languages and I find Objective-C to be uglier than C++ in many respects. It is true that C++ is complex in some respects, but it is also true that Objective-C has complex elements too. As far as success is concerned beyond Apple no one else has chosen Objective-C anyways.
Near the top of a C++ module say const int zzz = 3; Then zzz acts just like a non-global (int)3. The compiler may (and should) attempt to avoid allocating a storage location for zzz. This is better than... #define zzz 3 ...because scope rules do not apply to the #define form. However, in an object definition const int zzz = 3; is illegal. I understand the workaround which forces every object instance to have storage for zzz. I also understand how an unchangeable data item might need to be different in each instance of an object. There is also some related Mickey Mouse™ stuff related to enum and constants, which I have not thought about for a long time. Please forgive any C/C++ syntax errors. I have been working with $.50 processors lately. C++ and processors with less than 30 bytes of RAM go together about as well as pregnancy and poll vaulting.