Is C++ The Only Real Language?

OK, I feel like posting something fun (and possibly controversial)…

For some time now I have thought that C++ is the only “real” or “proper” programming language. I also hold the view that the answer to the questions “Can he/she code in C++?” and “Is he/she a good programmer?” will always be the same. I have even recommended it for use as the sole interview question in my post Hiring the Best Coders.

Up until now I have had no scientific evidence to support these opinions. But this has changed. I can now present to you a totally un-biased set of questions that can accurately score the “real-and-proper-ness” of a programming language (unless otherwise stated a “yes” answer scores 1 point):

1. Does the language compile?

Two points for compiling to machine readable code. Only one point for compiling to some kind of intermediate code. If you can open the executable in a text editor then I’m afraid it’s a big fat zero.

2. Are a variety of IDEs and compilers from multiple vendors available for the language?

This is what separates a “product” like Delphi or VB6 from a “language” like C++. Note, that to count as an IDE, compilation and interactive debugging must be supported.

3. Does the language support multiple operating systems?

No answers of “Yes, Redhat Linux, Suse Linux and Unix” please, because those are just flavours. It’s like saying that VB6 supports Windows 98 and Windows 2000. Examples of operating systems that count as different are MacOS, Windows and Linux/Unix.

4. Can the language create stand alone applications?

Answer yes only if an application written in this language does not need any additional framework or DLLs to run.

5. Does the language support object orientation?

The language doesn’t have to have flawless OO in my opinion but has to have some support for inheritance, polymorphism and encapsulation.

6. Is the language commonly used to write device drivers and other low level software?

7. Does the language support pointers and direct memory allocation?

8. Is there an ANSI standard for the language?

9. Has the language ever been used to write an operating system?

10. Does the language fit into the “if it’s possible it can be done” category?

Here are my scores for the following languages (based on my experience with them):

  1. C++ (11)
  2. PHP5 (3)
  3. VB6 (2)
  4. C# (5)
  5. Java (4)
  6. COBOL (4)
  7. Windows batch files (1)
  8. Unix scripts (1)

I know that you’ll be as startled as I was to discover what a commanding lead C++ has over…erm…everything else. It just goes to show that I was right all along (I really need to trust my instinct more often). If you would like to score other languages for me on the same scale then I’d love to see your results!

Advertisements

30 comments so far

  1. Zibadian on

    I’ve checked the Java figures and Java came way too short:
    1:2 (With JET Excelsior/JavaOS/Various non-IBM architectures)
    2:1 (Eclipse/JavaBeans/JCreator)
    3:1
    4:1 (With JET Excelsior/JavaOS/Various non-IBM architectures)
    5:1
    6:0 (or 1 for Various non-IBM architectures and JavaOS)
    7:0
    8:1 (ISO-8859-1 (UTF-8). Since ANSI is part of ISO, the UTF-8 is an ANSI standard)
    9:1 (JavaOS)
    10:1

  2. Lundin on

    Regarding Java:

    1.1 Java can compile to machine code only if there is system support for Java, otherwise it would not fulfil its own standard which demands that the programs must be able to run on other platforms/VMs.

    Still, (correct me if I’m wrong), it makes only byte code for the VM and no machine code that the CPU can understand.

    2.1

    3.1

    4.0 No it can’t. You can’t put Java in an empty computer without an OS and run it, unless the hardware itself supports the language. If it must either have a VM or support from the OS, I don’t think it qualifies as stand-alone.

    5.1

    6.0

    7.1 Yes it supports pointers and dynamic allocation. In fact, it is hard use anything -but- pointers and dynamic memory. If you name a variable containing an address for “pointer” or “reference” matters little, and has only academic purposes.

    8.1

    9.0 JavaOS was written in C.

    10.0 Since you can’t write an OS in Java. And good luck writing safety-critical real time systems with a language requiring garbage collection.

    Score: 6

  3. Lundin on

    9 is wrong, I’m confusing it for another system…
    oops.

  4. Zibadian on

    JET Excelsior can further compile the Java bytecode into native byte code. This second compilation step would give Java 2 points (or at least partially) for question 1. It is true that nearly all other compilers only produce the bytecode.

    You based your answer of question 10 on IBM-based processors, while there are several specialized processor architectures, which handle the garbage collection on a hardware level, thus leaving the rest of the processor free for the actual code.

  5. Rohan on

    You wanted controversy, so here it is 🙂 :
    I used to program in C++ all the time, and I can say that these metrics aren’t useful in judging the quality of a programming language. Some of them, like #10 (which basically amounts to the language being Turing complete) are obvious, but others are completely irrelevant.
    If I’m building a web app, why would I care if anyone has written an OS in Ruby?
    Note – I’ve been using Ruby for the past year, and it is AWESOME.
    I put up my comparison of C++ and Ruby here:
    http://comparati.com/1009-Ruby-vs-C-
    You may find it interesting…

  6. daviddaly on

    Wow – it’s been a real eye opener for me to read the responses to this (both here and in the forums over at Programmers Heaven). A big thank you to everyone who has commented.

    JavaOS looks very interesting, I have to confess I’d never heard of it! I would have to point out that it is not entirely written in Java though as it is based around a kernel written in, ahem, C++.

    I was equally interested to read about Excelsior JET. By allowing you to compile your Java to machine code it evidently allows you to speed up your applications. However I would doubt that the speed matches the performance of a C++ app and I doubt the executable would be as small. It’s also a fairly expensive solution that is limited to Windows and Linux development. It looks suspiciously to me like a product for those who wrongly opted to develop in Java when performance was a critical requirement, but maybe I’m wrong!

    Several people have noticed that I (rather deviously) posed questions that were bound to make C++ score comparatively well. Rohan makes the point that Ruby is more productive for web development than C++ (although, lets face it, Ruby wouldn’t be so productive without the support of a number of applications that are written in C++ like Apache and MySQL). However the point I was trying to make was not that C++ is the best language for everything but that if you could only use one language then C++ would allow you to do anything you need to (it is possible to write a web app in C++). Maybe I should have called the post “C++: My Desert Island Language”!

    I have read the entire discussion thread on Assembly vs. C++. There is a sentiment that learning a language at the “next level down” helps you improve your coding ability. Almost everyone would agree that learning more than one language will improve your development skills but I think choosing languages that operate at different levels of abstraction (VB, C++, Assembly) or that use a radically different approach (OO or procedural) make the learning benefit even greater. I would also like to take my hat off to AsmGuru62 for working on an object oriented assembler. I’m not sure there’s a market for it but in my opinion he/she deserves 11 out of 10 for extreme-computing-hardcore-ness.

    The thread on Is C++ The Best Language also made interesting reading with some good comparisons between Java and C++ syntax. Of course I think that syntax is only one of many reasons for choosing a specific language.

    Ultimately I know that the best language to use on a given occasion depends on multiple factors (available resources, the application being developed, etc.). Still, if the world was to only have one language, I would choose C++. In fact, that world sounds rather nice to me! 😉

  7. Zibadian on

    I think the definition of the best programming language is: the language with which one feels comfortable and which can create the applications one needs/wishes to create.

    Based on this I say the best languages are Java and Object Pascal. But that’s just my subjective view of the world.

  8. Actor on

    I would challenge the concept that the tests you propose are a meaningful metric for judging a language. However, just for fun, let’s see how the ABYSMAL language stacks up.

    1. Does the language compile?

    Definitely yes. 2 points.

    2. Are a variety of IDEs and compilers from multiple vendors available for the language?

    I really don’t know the answer to this one. The concept of an IDE came after ABYSMAL’s heyday. The language is still widely used and I definitely know of at least one IDE for it. I suspect there are more. However, someone will cry “foul” if I say yes, so zero points.

    3. Does the language support multiple operating systems?

    A definite yes here. One point.

    4. Can the language create stand alone applications?

    Another definite yes. One point.

    5. Does the language support object orientation?

    No, I don’t think so. Recent revisions in the standard my include OO but I’m unaware of any. Zero points.

    6. Is the language commonly used to write device drivers and other low level software?

    A definite no. Zero points.

    7. Does the language support pointers and direct memory allocation?

    Since about 1990 the answer is yes. One point.

    8. Is there an ANSI standard for the language?

    A definite yes. One point.

    9. Has the language ever been used to write an operating system?

    The answer is yes but it was done only to prove it could be done. One point.

    10. Does the language fit into the “if it’s possible it can be done” category?

    I’ll say no, but with recent revisions in the standard I think the answer could be yes.

    Total 7 points. Making it second behind C++ in a metric that is obviously devised to favor C/C++.

    Oh, in case you haven’t already figured it out the language is not really called ABYSMAL. I’m sure that with a little thought you can figure out what its true name is.

  9. Actor on

    Why is Cobol given only four points? I count five.

    Compiles to machine language — 2.
    Multiple OS — 1
    Stand alone — 1
    ANSI standard — 1

    Total — 5

  10. HackmanC on

    Sorry, I have to tell you. You CAN’T compare one with each other. Because each one was developed in different lines of work.

    Try to build a regular expression parser in C++ ? Try to build a driver in Unix scripts ? A Database application in Fortran ? A graphical interface in PHP5 ?

    Each one has its own place in programming environment, you can’t compare them because neither of them was designed to replace any of each others. Just to design different kind of applications.

  11. tonyB on

    Well David, I have read-a-lot and rote-a-lot in my years of interacting on my net. I am a creative developer, and enjoy both creating and developing in virtually every conceivable definition applicable to those words, I won’t bore you with the infinite details (but yes c++ is included). I am a humble man, but over the years, the decline of intellectual content has almost made me conceited in comparison. I stumbled upon your blog via googling Delphi/C++, and I am driven to congratulate you on your contribution. Comments like “My Desert Island Language” and “11 out of 10 for extreme-computing-hardcore-ness” for our asmguru, and even the whole concept of scoring and outlining metrics (although I feel you are comparing chalk and cheese!) is just the sort of light hearted intellectual content we ought to see a lot more of.

    So I just thought I would let you know that at least one person appreciates your efforts.

    As a final parting comment, I program in 6 languages, and find all languages are equal in essence, they all have to communicate with the hardware at various levels of efficiency, and it all boils down to ‘0’s and ‘1’s whichever way you look at it. My preference? I almost ashamedly admit that it has to be vb6. If I need a quick solution to interface 2 data sources, or if my daughter needs a snippet to convert XZ’s to YQ’s I always instinctively turn to vb6 and hand the compiled exe back minutes later. It is such a powerful intuitive RAD language, that it remains warts and all as my desert island general purpose language.

  12. HackmanC on

    Quote from tonyB … “So I just thought I would let you know that at least one person appreciates your efforts”

    I believe everyone here has appreciated his efforts. Every poster has expressed their opinion, and was very nice to read such experimented and professional programmers expressions.

    I share you feeling about the “sort of light hearted intellectual content we ought to see a lot more of”. Even when my opinion is controversial to some readers, I don’t deny everyone opinion it’s right in it’s own way.

  13. BroadHorizons on

    Let’s consider LISP (11 points)
    * Does it compile? Yes. 2 points
    * Variety of IDEs and compilers? Yes. 1 point
    * Support multiple operating systems? Yes. 1 point
    * Can it create stand alone apps? Yes. 1 point
    * Object Oriented? I don’t think that this is important, but CLOS is one hell of a system. 1 point
    * Commonly used to write low level software? Depends on how you define commonly. It has been used and it works well. 1 point
    * Pointers? Yep, Allegro CL (as an example) uses memref. 1 point
    * ANSI standard? The hyperspec for common lisp definitely qualifies. 1 point
    * Written an OS? I think the Symbolics machines qualify. 1 point
    * Is there anything CL can’t do? Aside from updating the spec, nope. 1 point.

    Python (8 points)
    * Compile? Try Shed Skin (converts to C++) or PyPy (compiles down to C, LLVM, and the CLI, JVM, and JavaScript backends are in progress). 2 points. (Can C++ do that? I think that Python deserves an extra point here.)
    * Many vendors? Jython, PyPy, CPython, and IronPython all provide compilers and there’s a healthy market for commercial Python IDEs. 1 point
    * Multiple OSes? Yes, as well as multiple virtual machines. 1 point
    * Stand alone apps? Well, there’s py2exe on windows and PyPy can compile down to C, so I’ll call that a yes. 1 point
    * Object Oriented? Yes. 1 point
    * I wouldn’t use Python to write a device driver.
    * Direct memory allocation? Yes, actually. You can now include C code in your CPython programs. 1 point
    * No ANSI standard. I don’t think that that’s a bad thing, look what happened to Groovy when it was blessed by the JSR too early.
    * Unununium was an attempt to write an OS in Python. It has since died as the devs quit to focus on other things. The 0.1 release was a _very_ bare bones OS that functioned.
    http://web.archive.org/web/20060709223841/unununium.org/status
    * If it can be done, it can be done with Python. Especially if you cheat and embed C. 1 point

    I’d also like to give honorable mentions to OCaml (if it wasn’t for the OS requirement…), Fortran (I use it regularly), and Forth (it doesn’t get much lower level).

    With all due respect, you sound like a blub programmer. http://www.paulgraham.com/avg.html

    Personally, I stick to C and Fortran for the performance critical bits and friendly languages for the rest.

  14. daviddaly on

    Once more – thank you all so much for contributing your thoughts.

    To tonyB I feel obliged to confess that VB6 is also the language I feel most comfortable in when it comes to “knocking something up”. I gave VB.NET a look but unfortunately what it has added in functionality it has taken away in simplicity!

    Having read the link provided by BroadHorizons regarding Blurb programmers I have to say that yes, I probably am one! In fact I suspect we all are to a greater or lesser extent. In my defence though I would like to point out that I mentioned in my previous comment that the actual language you choose is dependent on lots of factors dictated by the work you are undertaking!

  15. Mexilus Plesva on

    ABYSMAL is clearly COBOL, but let’s update the analysis to reflect the current ISO standard. We gain positive answers to questions 5 and 10, yielding 10 out of a possible 11 points.

    The only negative answer is to question 6. However, COBOL is commonly said to resemble machine language — all those MOVE statements — so it should be considered an honorary member of that club.

    Given that a COBOL programmer above a certain age will also know System 360 assembler and JCL, you should add a few points to his score, and hire on that basis. COBOL is difficult to replace, but not so difficult to outsource. When you’re ready to outsource his job, it will not be necessary to fire him. Just throw a nice retirement party.

  16. Jacob on

    C#
    1. 2: Compiles to IL and with AOT compiles to native machine code.
    2. 1: Sharpdevelop, Visual Studio, Monodevelop.
    3. 1: Linux, Windows, MacOS all are supported as well as embedded systems (in fact it even has its own .net only embedded operating system in the form of the .net compact framework.
    4. 0: not really, theoretically you can by using AOT compilation and using only your own internal framework but in practice no one does it.
    5. 1: yes definately from the ground up.
    6. 0: Possible but as of yet nothing in use. I do have a design for a device driver modal that would work with virtually any operating system.
    7. 1: Definately in the form of unsafe code i’ve done it myself.
    8. 0: ISO and ECMA Only afaik.
    9. 0: Not yes but its very possible I would even say its easily done if you have the skills.
    10. 1: Yes definately. I can’t think of anything you can do in C or C++ that you cant do in C#.
    Total: 7 points.

    C++
    1. 2: Compiled to machine code.
    2. 1: Lots of IDEs out there.
    3. 1: yes, virtually everything.
    4. 0: not really, you still have to ensure you have STL available and while most operating systems include it now, there was a time when that wasnt common.
    5. 1: definately.
    6. 0: not commonly but some operating systems do include support for it but lots dont.
    7. 1: yes.
    8. 1: yes fully standardized.
    9. 1: yes but this is a cheap win here as in practice afaik there is no wholy C++ operating system.
    10. 1: sure
    Total: 9 points (i think 8 is a more realistic number in light of nswer #9.)

    C++’s lead over C# is a lot less than you make it out to be. in practice C#’s shortcomings could easily put C# ahead of C++. a device driver in C# would be easily done everything to do it is out now, compiling to a standalone application is at least as doable as C++ however we will never see this as C#’s strength lies in the fact that it has an excellent framework which makes development of applications very fast and provides excellent performance (in the future i believe we will see VM’d languages like java and C# leave native languages in the dust due to run time optimizations.) Ansi standardization doesnt really affect the quality of language its nothing but a rubber stamp in the long run, I could say C++ is a horrible language because it hasn’t received Linus Torvalds rubber stamp of approval, or apples rubber stamp or microsofts rubber stamp but the metric fails as much as the metric of Ansi standardization does. An operating system in C# is one area I will concede C++ will always outshine C# as C# would need to give up all of its advantages in order to accomplish this, no more runtime optimizations, no more advanced framework, no more processor independance. So tell me why a language is superior because it can do be used to write an operating system? Linux started out not as a operating system but as a terminal emulator. Saying something can make an operating system sucks as a metric we don’t need more operating systems we need better tools to enhance the development process. C# has a lot of shortcomings but it also has strengths to balance that lets compare C# and C++ with some new questions.

    1. Well designed garbage collection. C# 1 C++ 0
    2. Advanced Runtime optimizations. C# 1 C++ 0
    3. Bounds checking an integral component of the language. C# 1 C++ 0

    By this test C++ is clearly a loser with 0 points compared to C#’s perfect score of 3.

    Naturally this test is as flawwed as the first there is no one true language to rule them all. I’ve coded in everything from assembly on embedded systems to php with web applications. For embedded systems I preffer C and assembly. They provide a concise method of implementing functionality while reducing the resources needed. For web applications I like php for its function for everything approach. need to mess with strings? 80 thousand functions for string manipulation. need to access a database? theres about a million database choices and functions. I will concede that php is a poor choice for anything for the very reason I like it. The functions it has are poorly designed and poorly standardised but generally if im doing something for the web its either a quick hack to get clean functionality for something simple like a database report or its a website which im using php to build a template system in, neither of which are hampered by php’s nature. Finally for applications I like C# it provides a well designed and thought out framework that provides plenty of features combined with maintainability. Portability is somewhat lacking if you want to use the mainstream microsoft framework but there are alternatives that do provide plenty of portability along with functionality. C++ does not fit in at all for me, i’ve used it, its a great language but its just not for me.

  17. Chris on

    Im sorry but: “3. Does the language support multiple operating systems?

    No answers of “Yes, Redhat Linux, Suse Linux and Unix” please, because those are just flavours. It’s like saying that VB6 supports Windows 98 and Windows 2000. Examples of operating systems that count as different are MacOS, Windows and Linux/Unix.”

    is not accurate. The Unix Kernel and Linux kernel are completely different and thus are different platforms.

    Also: “Does the language support object orientation?”

    is non-sense. Functional programming languages (i.e. erlang, haskell) do not have “objects” with encapsulation. they have data structures and are wonderful languages that can outperform languages like C++ and Java in certain areas.

  18. adam on

    It is not logical to compare the language to the skill of the person using it. Just because I go buy a brand new car doesn’t make me any better of a driver. This rating system makes no sense to judge developers by.

    A better method would be questions about how much you understand the programming concepts related to the language of your choice.

  19. daviddaly on

    Fair point Adam. However if I saw one person riding tricycle and another flying a fighter jet I would reach some conclusions about the relative ability of each person to control a vehicle. Of course I wouldn’t dare compare C++ to a fighter jet and batch files to a tricycle. That would just be asking for trouble…

  20. Killjoy on

    Good programmer = C++ Programmer

    I more inclined to believe that C++ is a prerequisite before you can call yourself a programmer at all. Anything else and your just a script kiddie with a hobby.

    Harsh comment?
    I would view it as the general consensus for most commercial programmers working in today’s environment.

  21. Rob on

    I’ll partially agree that knowing C++ is a prerequisite to being a programmer, but that is more because it teaches you the low-level stuff, and C does that on its own. Oh, and pointers are nasty. Any good C++ book will tell you to avoid them at all costs and use const references or a boost smart pointer instead.

    I wouldn’t say C++ is the only prerequisite to being a good programmer. You said in one of your comments that procedural and object-oriented styles of programming are radically different. No, they’re not. OO is good, but radically different? Hardly. Go learn a functional language like Haskell or Scheme (MIT has a good book here, this IMO is a must-read for any coder: http://mitpress.mit.edu/sicp/full-text/book/book.html), or a logic language like Prolog, or a concurrent functional language like Erlang. If you think OO is thinking outside of the box, you haven’t gone very far.

    One thing to keep in mind is that languages often complement one another. You COULD do everything in C++, but that’d take much longer than it would if you used some C++ foundations and used something like Ruby or Python to fill in the gaps where execution speed is not a bottleneck (game developers do this with Lua). As you pointed out, web app languages would not run without MySQL or Apache or whatever else you have there written in C++, but you get shit done a lot faster with the web app languages. You probably COULD write MySQL or Apache in Ruby and compile it down to machine-code, but it’d be slow as shit. C++ complements the other languages in this way mainly because it strips out so many abstractions or adds all sorts of edge cases that add to the run-time efficiency of a program.

    Also, you’re putting the chicken before the egg. Suppose people had to choose only one language for anything. You’d probably see real machine-code languages come out for things like Java or VB. The reason these languages don’t compile to machine-language is because they don’t have to, they have C++ to do it for them.

    Finally, if we’re going to discuss what makes a real programmer a real programmer, you’re not a real programmer until you learn Vim or Emacs. I used to think that my fat IDE made me productive, and while they help in the refactoring/debugging process, Vim/Emacs helps you out the other 90% of the time – when you’re coding.

  22. daz on

    I’d like to inject the distinction between ‘language’ and implementation (of) with regards to programming performed by humans. The only question I think you need to ask with regards to language is “is it turing complete?”, then perhaps an ordering of the languages by efficiency of use by humans. I THINK that this will be very subjective as a mathematician would probably make more powerful use of a functional language than a ‘lay’ programmer would an imperative one.

    But…c++/assember are my island companions.
    Linguistically though I find Java more powerful with explicit closures and now that it has templates (which are one of the most useful features of c++) the compiler itself should be turing complete!

  23. Alysha on

    I think your definition, of what a programming language is, is flawed seriously.

    1. Does the language compile?

    What’s wrong with interpreted languages? As long as the code can get the job done in it, then it’s fine! Noticed that people normally use php scripts on the web instead of compiled CGI’s…

    2. Are a variety of IDEs and compilers from multiple vendors available for the language?

    languages like delphi do have multiple IDEs (borland/codegear/lazarus project etc.) and anyone can make one if they so desired.

    3. Does the language support multiple operating systems?

    Reiterating what was stated earlier, Linux and Unix are different, they may look the same on the outside but they are different under the hood. Besides, anyone can transfer any language over to another OS. It’s just a matter of compiling into another application structure (example: Windows PE to a Linux ELF)

    4. Can the language create stand alone applications?

    Back to 1., as long as the language can get the job done with minimal hassle it’s fine.

    5. Does the language support object orientation?

    OOP came about with smalltalk but wasn’t really used until C++. Are you saying that all languages before C++ weren’t real languages? Is Assembly, not a real language? (since everything compiles / is converted down to it)

    6. Is the language commonly used to write device drivers and other low level software?

    Languages have strengths and weaknesses. Something like C++ would be great for device drivers, and Python would be a pain. But you can make a huge application waaaay faster in python than you can in C++, simply because python is simpler. That’s why it’s good to know at least 2 languages, one for the low-level stuff, and another for simple RAD.

    7. Does the language support pointers and direct memory allocation?

    If the application you’re working on doesn’t require the use of pointers, do you really need to use a language with features that you probably won’t even use?

    8. Is there an ANSI standard for the language?

    What’s wrong with them having their own standards? I don’t even have to elaborate on how silly that argument is.

    9. Has the language ever been used to write an operating system?

    Back to 6, and 7. I can take a month and write huge application in C++, or I can take a week and write it in python. Clearly, python saves time and lines of code, so as long as the project I’m working on isn’t an operating system or doesn’t need to be extremely low-level, then i’ll probably use python over c++. (I still love c++, no hard feelings, but there’s a time and place for everything. PHP for websites, Python for small program, C++ for programs that really require a lot of power or need low-level access)

    10. Does the language fit into the “if it’s possible it can be done” category?

    Technically, anything can be done if you can bring modules/plugins into the language.

  24. alanw on

    Great discussion! I happened onto this as our company is in the throes of having two large engineering departments, one largely using Delphi, and one largely using C++, and the issues that come up between the pre-conceptions of both.

    Alysha (and others) make some very good points that the particular standards depend upon your needs (isn’t that the heart of engineering to begin with>> don’t solve a problem you don’t understand!)

    However, I’ll take issue with her on
    >>What’s wrong with them having their own
    >>standards? I don’t even have to elaborate on
    >>how silly that argument is.

    True – it doesn’t have to be ANSI! But I think an important point, and one that makes #8 nearly the singular issue, is that you need a robust, consistent standards definition – and that really goes back to having a good, well-established and recognized standards body. Anybody can check who’s on the C++ standards committe, and nearly be blown away with the level of genious that sits there; and still the committee acts with quite a conservative deliberation about any new feature (or deprecation) it comes in contact with. That robustness of definition is critical for professional quality code, IMHO!

  25. RIchard on

    The fact that you are trying to compare a compiled language vs. an interpreted or byte code compiled language says more about your knowledge of software engineering than it does anything about what is the “one real language”.

  26. James on

    C++ is nothing more then a dirty hack atop C. End of story.

  27. […] Posted in Uncategorized So, I was recently browsing the Internet out of sheer boredom and stumbled across this, titled “Is C++ The Only Real Language?”: https://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/ […]

  28. Cyrill on

    Remeber when VB and Delphi was around – all those developers were claiming that delphi and vb was going to replace c++. Where is delphi and vb now???

    Most of these delphi and vb programmers migrated to c# and java. Now they make similar claims that java and c# is going to replace c++. I wonder if history repeats itself – and we find c++ still remaining after those 2 have died out, will they make such claims about the next successors of c# and java.

    Seems like some people don’t learn from history 🙂

  29. Christian Sciberras on

    Absolute bullshit.

    Lazarus (Delphi-like) gets an honest 10 (since you seem to award 11 to C++, when you only listed 10 questions).

    Also, what the f is the point with #6?? Lazarus/FPC can be used to created device drivers, but what is your point with popularity? Just because the rest of the world decided they should use a quirky old language (such as old-school C) doesn’t mean it is the best option.

    Most questions are outright discriminate bias. For instance, #4, your beloved C++ requires the C++ runtime if you use a certain compiler – so you are excluding C++ from the list.
    Also what the f is your point with #2? Delphi happens to be the name of the IDE as well as the language. Just because I name my IDE for C++ as “C++” doesn’t meant C++ is not a language does it?
    As to ANSI standard – huh?? ANSI standardization stifles innovation. Just look how much it took for the latest C++ incarnation.

    I just can’t be bothered with the rest of your questions since they’re an obvious troll.

  30. Christian Sciberras on

    Oh and by the way, the only real language out there is assembler. Now go resign from your job – you’ve been living in denial all this time.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: