Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. There's the successful direction and then there's the approach that Bjarne took with C++

There's the successful direction and then there's the approach that Bjarne took with C++

Scheduled Pinned Locked Moved The Lounge
c++swiftcomquestionlearning
30 Posts 12 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Rama Krishna Vavilala

    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.

    J Offline
    J Offline
    jschell
    wrote on last edited by
    #16

    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.

    1 Reply Last reply
    0
    • P Pierre Leclercq

      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.

      J Offline
      J Offline
      jschell
      wrote on last edited by
      #17

      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.

      D P 2 Replies Last reply
      0
      • P PeterGuerilla

        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

        J Offline
        J Offline
        jschell
        wrote on last edited by
        #18

        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.

        K 1 Reply Last reply
        0
        • P Pierre Leclercq

          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.

          J Offline
          J Offline
          jschell
          wrote on last edited by
          #19

          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[^]

          P 1 Reply Last reply
          0
          • R Rama Krishna Vavilala

            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.

            P Offline
            P Offline
            PICguy
            wrote on last edited by
            #20

            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.

            1 Reply Last reply
            0
            • J jschell

              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.

              D Offline
              D Offline
              David Snow
              wrote on last edited by
              #21

              What I recall about the mid 90's is that Borland suddenly and inexplicable fired Philippe Kahn, and then self destructed. Did anyone ever find out what was behind the rift betreen Kahn and the BI board?

              1 Reply Last reply
              0
              • J jschell

                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.

                P Offline
                P Offline
                Pierre Leclercq
                wrote on last edited by
                #22

                jschell wrote:

                Finally there is nothing it C++ standards that relates to "message maps" but perhaps that is a terminology difference.

                By reading your post I have the feeling you are not aware of the mechanisms Borland introduced in the OWLs, to attach a handler to a windows message. This was a syntax that looked like this:

                void MyClass::MyTimerHandler(/* Some parameters */) = [WM_TIMER]
                {
                /* Some code to handle the WM_TIMER message*/
                }

                Obviously this is NOT standard C++. While the message maps introduced in the MFC are a set of macros that expand to regular C++. A C++ committee disaproved Borland's choice, and this gave MS an edge. So it is interesting to sort things out when it comes to MS's ways of doing business. Again saying MS won all of those wars because they had undocumented apis is equivalent to say engineers from competing companies were morons! This is obviously a false claim given MS eventually hired a lot of them. So now the dust has settled, Netscape, Borland and others are gone, it is worthless to keep on maintaining those overly simplistic claims.

                You can't turn lead into gold, unless you've built yourself a nuclear plant.

                J 1 Reply Last reply
                0
                • J jschell

                  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[^]

                  P Offline
                  P Offline
                  Pierre Leclercq
                  wrote on last edited by
                  #23

                  jschell wrote:

                  http://en.wikipedia.org/wiki/AARD\_code\[^\]

                  That article from wikipedia states the AARD code was enabled in the beta of Windows 3.1, and DISABLED in the final release of Windows 3.1. So this should not have made much difference to help MS. Also, back in 1992, when Windows 3.1 was released DR-Dos was already way behind MS-DOS, and the shift away from command line interfaces was already well started. (I mean the trend was well visible).

                  You can't turn lead into gold, unless you've built yourself a nuclear plant.

                  J 1 Reply Last reply
                  0
                  • R Rama Krishna Vavilala

                    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.

                    K Offline
                    K Offline
                    Kevin McFarlane
                    wrote on last edited by
                    #24

                    Can't say I know very much about Objective C. However, a few weeks ago I found what seemed to be a very good Windows tutorial but just couldn't get the suggested Windows distribution working at all. I quickly lost interest.

                    Kevin

                    1 Reply Last reply
                    0
                    • S Shog9 0

                      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...

                      K Offline
                      K Offline
                      Kevin McFarlane
                      wrote on last edited by
                      #25

                      Shog9 wrote:

                      It wasn't until i started using STL heavily that i found something to like in the language or its libraries...

                      I've worked at places where they say things like "we don't use STL here." This was as recently as 2005. :laugh: In fact, a colleague of mine who had a contract interview at MS Research a while back was giving me tips for the same interview (the job was filled before I got as far as the interview though) told me that they don't use STL either, and that was this year! That surprised me. :omg:

                      Kevin

                      1 Reply Last reply
                      0
                      • M M Towler

                        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.

                        K Offline
                        K Offline
                        Kevin McFarlane
                        wrote on last edited by
                        #26

                        M Towler wrote:

                        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

                        Perhaps, but it may nevertheless have put C++ on the map, i.e., into people's consciousness.

                        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. 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

                        Yes, I read that they had supposedly created a better OO design but it was rejected in favour of MFC.

                        Kevin

                        1 Reply Last reply
                        0
                        • P Pierre Leclercq

                          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.

                          K Offline
                          K Offline
                          Kevin McFarlane
                          wrote on last edited by
                          #27

                          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.

                          I think it was just assumed that MS was able to produce more successful and/or better apps. because they made use of these undocumented features. However, over the years, I've noticed many innovative features in Windows applications that Microsoft themselves only copied later despite their owning the API. So even if there are undocumented features that MS use the fact is that the API is rich enough to provide innovation despite this.

                          Kevin

                          1 Reply Last reply
                          0
                          • J jschell

                            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.

                            K Offline
                            K Offline
                            Kevin McFarlane
                            wrote on last edited by
                            #28

                            I haven't done any C++ for a few years and didn't do it to a "super advanced" level. I would say it is to some extent ugly and complex. However, when taking into account the problems it is trying to address, it probably has to be the way it is. C++ has to be there to tackle the problems where: "if you can't do it in anything else, you can do it in C++."

                            Kevin

                            1 Reply Last reply
                            0
                            • P Pierre Leclercq

                              jschell wrote:

                              http://en.wikipedia.org/wiki/AARD\_code\[^\]

                              That article from wikipedia states the AARD code was enabled in the beta of Windows 3.1, and DISABLED in the final release of Windows 3.1. So this should not have made much difference to help MS. Also, back in 1992, when Windows 3.1 was released DR-Dos was already way behind MS-DOS, and the shift away from command line interfaces was already well started. (I mean the trend was well visible).

                              You can't turn lead into gold, unless you've built yourself a nuclear plant.

                              J Offline
                              J Offline
                              jschell
                              wrote on last edited by
                              #29

                              Pierre Leclercq wrote:

                              That article from wikipedia states the AARD code was enabled in the beta of Windows 3.1, and DISABLED in the final release of Windows 3.1. So this should not have made much difference to help MS. Also, back in 1992, when Windows 3.1 was released DR-Dos was already way behind MS-DOS, and the shift away from command line interfaces was already well started. (I mean the trend was well visible).

                              Not quite sure how any of that is relevant. The intent of MS was to disable DrDOS, as indicated by the memos. The reason it was probably disabled in the release because it was found and publicized before the release. Nor it is relevant that DrDos had fewer sales but rather that MS considered it a threat and was attempting to disrupt it further.

                              1 Reply Last reply
                              0
                              • P Pierre Leclercq

                                jschell wrote:

                                Finally there is nothing it C++ standards that relates to "message maps" but perhaps that is a terminology difference.

                                By reading your post I have the feeling you are not aware of the mechanisms Borland introduced in the OWLs, to attach a handler to a windows message. This was a syntax that looked like this:

                                void MyClass::MyTimerHandler(/* Some parameters */) = [WM_TIMER]
                                {
                                /* Some code to handle the WM_TIMER message*/
                                }

                                Obviously this is NOT standard C++. While the message maps introduced in the MFC are a set of macros that expand to regular C++. A C++ committee disaproved Borland's choice, and this gave MS an edge. So it is interesting to sort things out when it comes to MS's ways of doing business. Again saying MS won all of those wars because they had undocumented apis is equivalent to say engineers from competing companies were morons! This is obviously a false claim given MS eventually hired a lot of them. So now the dust has settled, Netscape, Borland and others are gone, it is worthless to keep on maintaining those overly simplistic claims.

                                You can't turn lead into gold, unless you've built yourself a nuclear plant.

                                J Offline
                                J Offline
                                jschell
                                wrote on last edited by
                                #30

                                Pierre Leclercq wrote:

                                Obviously this is NOT standard C++.

                                Interesting. However when it was introduced there was in fact no standard for C++.

                                Pierre Leclercq wrote:

                                C++ committee disaproved Borland's choice, and this gave MS an edge. So it is interesting to sort things out when it comes to MS's ways of doing business.

                                Also interesting but again noting that at the point where there was in fact a standard Borland had already lost. There still remains nothing to the assertion about standards because Microsoft had won and Borland had lost before there was a standard. The success and failure had nothing to do with the standard.

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups