If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

John Carmack's Comments On C/C++

01-14-2013, 03:50 PM

Phoronix: John Carmack's Comments On C/C++

John Carmack, the veteran game programmer that co-founded id Software and was the lead developer on the id Tech engine and their most popular game titles, has shared some new opinions on C/C++ programming as it pertains to the id Tech game engine...

Hmm, I never liked C++ due to its weird style. I find C to be rather primitive, but at the very least it's consistent. I always felt that C++ was some sort of a hack glued onto C, as its syntax just doesn't fit with the rest... It has some really good features, but I can't stand this inconsistency, unfortunately. Hence why I prefer D, which is both consistent and provides all the powerful options of C++ and more. And yes, I have quite a bit of appreciation for immutable variables

Comment

This is why I like D. Compared to C++/C#/Java, D gets a lot of things right. There are still some issues related to the GC, but it's moving in the right direction. I prefer C++'s multi-inheritance model to D's Java/C#-like single-inheritance+interfaces model, but I guess you can't have everything ;-)

Comment

Hmm, I never liked C++ due to its weird style. I find C to be rather primitive, but at the very least it's consistent. I always felt that C++ was some sort of a hack glued onto C, as its syntax just doesn't fit with the rest... It has some really good features, but I can't stand this inconsistency, unfortunately. Hence why I prefer D, which is both consistent and provides all the powerful options of C++ and more. And yes, I have quite a bit of appreciation for immutable variables

I've always viewed C++ the other way around. A language that got C glued into it for the sake of compatibility.

D is a niche language that's far too complex and likely never gonna get finished due to it's complexity and ever increasing number of bolt-on features. I like D templates, because they are better and easier than C++ templates, but that's it. "static if" is a great idea.

It will be expressive, efficient, and have an elegant simplicity.
People will be able to master all its features in a week,
while being able to easily express powerful abstractions and complex data structures.

It will neither leak memory, nor perform garbage collection at random intervals.
It will be automatically and transparently thread safe,
and support inter process communication and synchronisation as part of the language.

It will be fully deterministic, so that it can be used in real time applications,
as well as being provably correct, for safety critical uses.

In the meantime, just pick whatever is least damaging to your sensibilities and most suited to your purposes.

Comment

Such a language is impossible. You can't get people to agree on basic things, like a typed language:

1) One says it must be strongly typed, but others don't wanna deal with types, they'd rather sacrifice some speed and let some errors trickle past the compiler.
2) The second one says it must be weakly typed, the first group wouldn't agree.
3) The third one says it should have both. The first two groups say it would make the language too sophisticated and bloated. Restart the circular logic from point one.

Comment

D is a niche language that's far too complex and likely never gonna get finished due to it's complexity and ever increasing number of bolt-on features. I like D templates, because they are better and easier than C++ templates, but that's it. "static if" is a great idea.

D is far easier to read and write than C++.
At beginning the language had some important bug that is the normal workflow for anything in informatic. Now the language is stable and for new code is better to start with D. Try it now

Comment

I am a full const nazi nowadays, and I chide any programmer that doesn’t const every variable and parameter that can be.

This tells me he finally did figure c++ out. The STL doesn't help much with const programming due to how it deals with collections, but that can be worked around and with c++11 can be rather efficient (although requiring a separate function body). C++11 and may also break the constness rule in some cases for parameter passing as well.

Originally I was excited about 'D' but the more I got into it the more disappointed I became with it. Especially now with c++11 D just isn't appealing to me in the least.