View Full Version : The next programming language to challenge C/C++
Like human-natural languages, programming languages evolve as well. From the lowish Assembly to high scripting languages and GUI RAD.
But it seems C++ has been the standard for a long time combining both low-level access and high-level. That with the overwhelming support, libraries, books, etc., and it's certainly a good one.
Still, languages evolve, and the goodness that is C++ -- I speculate -- will disappear with the coming of D: http://www.digitalmars.com/d/overview.html .
Already this language is catching on slowly, and it seems like a better C/C++. It has low-level access and high-level access, improves C/C++, while taking the best of Java and C#. Therefore it is higher than C/C++, yet still lower than Java or C#. It also has no VM but just compiles like usual.
Too bad there are no books out on it yet, and that the libraries are so scarce, but I bet over the years D will put its fingers on the game industry and even on systems programming. There's already a game project using D as language basis: http://www.team0xf.com/eng/ .
edyzmedieval
05-14-2007, 19:37
Python and Java are the future. Python is very flexible, and it has a very large community.
But Python is not general-purpose like C/C++ and D, which is the whole point. Python is also slower because it's mainly interpreted. Java has been around for years, but it still is bytecode meaning the performance is generally lower than programs that are written lower-level and are compiled directly to binaries.
D is the only fitting general-purpose language to actually challenge C++, and with that, the game industry (and systems programming). The DMD compiler is damn good :)
I heard since Java is interpreted while you're running the program, it's actually pretty slow. Doesn't mean you cannot program games with it, but I guess it's not fast enough if you want to include all the newest technology etc.
Funny I just read this blog (http://steve-yegge.blogspot.com/2007/02/next-big-language.html)...
It seems this guy predicts a language other than D as the next big one.
However... today the demand is for Java and .Net programmers. They are screaming for them.
I have 3 years experience with C# and have just started in a new job. I am taking a break from Microsoft and C#.
I am now programming in ABAP.
Funny I just read this blog (http://steve-yegge.blogspot.com/2007/02/next-big-language.html)...
It seems this guy predicts a language other than D as the next big one.
Aha! But the question of this thread was not the next big programming language, but the one to challenge and replace C/C++ :)
I quote from that (ugly-looking) blog:
D's a really beautiful language. By rights it should be the next C++. However, C++ programmers won't have it because it's garbage collected (even though it can be disabled, and even though Stroustroup himself is now advocating adding garbage collection to C++). Walter Bright is one hell of a lot smarter than the C++ programmers who won't look at his language, and he has demonstrated that D is as fast as or faster than C++ and nearly as expressive as Ruby or Python. It's a secret weapon just waiting to be seized by some smart company or open-source project.
D will -- it must -- replace C++. There's good reason it's called D.
It seems this guy predicts a language other than D as the next big one
E?
:grin:
D will -- it must -- replace C++. There's good reason it's called D.
That's it ... isnt it.
You have to convert the C++ programmers to use this new language. Only then has it challenged C++ and replaced it; as you say.
IMO those damn C++ conservatives will never move to a new and fresh replacement.
My first language was C++ and it was the language of my choice up to my post garaduation.
Luckily I took one cource as a supplement to the units supporting my Masters. It was an introduction cource to .Net (this was back in 2002 when it was spanking new at the universities).
In my career C# replaced C++.
Rodion Romanovich
05-15-2007, 08:52
C++ has got good, well-tested compilers, massive amounts of libraries, full control over the code down to memory allocations/deallocations (but this can be done automatically by libraries if wanted), and both produces fast code and is fast to write code in. No other programming language has all these things combined. The support for multiple inheritance makes it far more flexible than Java. The support for function pointers allows usage of functional programming methods for writing programs. Java is a simplistic, garbage collected language with few libraries other than the core API and is controlled by Sun, C# is the same but controlled by Microsoft instead. Scripting languages like Python and Ruby are interpreted and some scripting languages don't even have types, which makes them difficult to write error-free code and debug. Functional languages give almost no control over memory management and are only suitable to writing smaller components, not games. None of the suggested replacements so far are significantly better than C++, in fact most of them are one step back in most aspects except for instance being easy to use and giving cross platform code like Java. D looks like it has some improvements over C++, but the improvements look like they'll only give maybe some 1% faster execution and 1% productivity gain in writing code, however at present the lack of libraries and tested, optimized compilers probably makes the language 5% slower and 80% slower to write programs for at the moment.
D looks like it has some improvements over C++, but the improvements look like they'll only give maybe some 1% faster execution and 1% productivity gain in writing code,
Actually, there's one example that goes against that. That game I mentioned earlier, Deadlock, is it. I can't find the link to the thread, but the point was they said if they had written the game in C++ it would've taken them a LOT longer. And I ain't talkin' 1%-like.
The lack of libraries is true, but that will go over time.
however at present the lack of libraries and tested, optimized compilers probably makes the language 5% slower and 80% slower to write programs for at the moment.
I don't exactly understand what you mean to say.
---------
IMO those damn C++ conservatives will never move to a new and fresh replacement.
Possibly.
Meh. Looks like another C derivative focused on games and the like. Didn't care for C in school, doubt I'll care any more for it now. I think I'll stick with .NET.
edyzmedieval
05-16-2007, 18:47
Z++. ~;)
I still prefer C++ and Python. C++ has massive libraries, which allows it to have a wide range of developments.
When we come to a Z++ I bet all we have to do is have some mind-reading device -- connected to some computer system -- on our heads and just think to make software. Now that's high-level for you right there :laugh4:
And then when they get even further you just think into the device: "Make me a damn good game. It doesn't matter what kind, as long as it's genius and it'll bring me lots of cash and credit. Make now!"
ElectricEel
05-16-2007, 20:57
I heard since Java is interpreted while you're running the program, it's actually pretty slow. AFAIK, the code is interpreted when the program is started. This results in a slower start-up time than with other programming languages, but once that is done, the code shouldn't run significantly slower than with C++ or other languages.
Though claims about Java's slowness are common and persistent, I haven't yet seen any reason to believe they are true.
Blodrast
05-16-2007, 21:52
Legio: bravo, excellent explanation! :bow:
EE: Java code IS slower. If you'd like, I can point you to whatever number of papers who are struggling to get Java code to run as fast as C. Last one I can recall was showing a minimal speed increase over C/C++ "equivalent" code for some toy benchmarks, and that was not "standard" Java code, it was Java + extensions that allowed it some extra optimizations, and they had also disabled array bounds-checking, and a few other things I can't remember. Bottom line is, their child was pretty far from your standard Java, it had a lot of functionality disabled, and they showed it on toy programs - and only got not-so-impressive speedup for it...
C++ has got good, well-tested compilers, massive amounts of libraries, full control over the code down to memory allocations/deallocations (but this can be done automatically by libraries if wanted), and both produces fast code and is fast to write code in. No other programming language has all these things combined. The support for multiple inheritance makes it far more flexible than Java. The support for function pointers allows usage of functional programming methods for writing programs. Java is a simplistic, garbage collected language with few libraries other than the core API and is controlled by Sun, C# is the same but controlled by Microsoft instead. Scripting languages like Python and Ruby are interpreted and some scripting languages don't even have types, which makes them difficult to write error-free code and debug. Functional languages give almost no control over memory management and are only suitable to writing smaller components, not games. None of the suggested replacements so far are significantly better than C++, in fact most of them are one step back in most aspects except for instance being easy to use and giving cross platform code like Java. D looks like it has some improvements over C++, but the improvements look like they'll only give maybe some 1% faster execution and 1% productivity gain in writing code, however at present the lack of libraries and tested, optimized compilers probably makes the language 5% slower and 80% slower to write programs for at the moment.
I'm sorry to say it, but this whole piece of text is too unclear and bloated without paragraphs. And most of it is not even about D, but Java, C#, etc.
And when it's finally about D at the end I only read a very short quick-and-dirty piece of text stating some quick information about 1% without hard backup presented, and vague stuff about compilers, almost as if the previous statements about Java, C#, etc., have something to do with the criticism of D. Where do those percentages exactly come from anyway?
The only true thing so far I read in there is the lack of support (libraries, community and such), but this point is already well known.
I'm not going to simply accept your arguments and conclusions as true like that. No matter if you're an experienced programmer or something: what you wrote isn't backed up. And so far from the information available it looks like like the D language -- the language itself(!), compiler, etc. -- is and will be a lot better and faster than all that of C/C++, as it has a better design.
And you also haven't responded at all to my previous post that countered that last part of your words before.
I did see Blodrast's response but an encouraging bravo with an exclamation doesn't validate your arguments/conclusions.
----
On another note, I've seen C++ programmers being very stubborn when it comes to D, kind of what Sigurd Fafnesbane said. If a C++ programmer actually admits the language is flawed that's a lot already. C++ is a lot less friendly to beginners too than D.
Even Bjarne Stroustrup admits there are flaws in C++ and it needs better design, etc. He even wants to include garbage collection.
D looks to be the only viable language that sits in-between C/C++ and C#/Java, while it still compiles to native and while it is more expressive than C/C++.
The positivities, features, etc., mentioned in this thread about D (and many you can find on the Digital Mars site) should convince any programmer that D is -- and will be -- the only true viable challenger to C++.
D as a challenger to (C/)C++, which was the entire main point of this thread.
Rodion Romanovich
05-23-2007, 19:16
D isn't fully backwards compatible, which makes converting code to D troublesome. Without libraries and backwards compatibility, few large application developers will embrace it. As a result, general support for it will be limited. When the support is limited, compilers and other tools will not be as up to date, tested and optimized as C++ compilers. The percentages I gave above aren't scientifically proven in any way, however.
The second point is that the language design is still as unstructured and sometimes ambiguous as C++, while removing a lot of useful features and adding a few new ones, most of which aren't better than those that were removed. It's more like "alternate C++", than a new, higher-level language "D", IMO. For instance they remove preprocessor, multiple inheritance, include files, non-virtual member functions and bit fields. While these may not be used often, whenever there's need for them they're really handy. Removing multiple inheritance makes it as inflexible as Java for object oriented applications. Without bit fields, you can't as easily program hardware interface code and communicate with ports etc. Removing the preprocessor and conditional compilation makes D programs difficult to port between platforms, and for handling debug and release versions of the code.
vBulletin® v3.7.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.