Will we ever see an adoption of something other than C and C++?

Started by
50 comments, last by Finalspace 6 years, 7 months ago
2 hours ago, Oluseyi said:

Hey guys, long time no post! Funny sequence of events that led to me checking in today.

My take: nothing will ever "replace" C++, because nothing will ever have the same degree of critical mass/hegemony that C had and C++ inherited. The language ecosystem will be more diverse and varied, with individual languages and their code being more generally portable, and practitioners more able to switch toolsets because the norm today is to have high-quality, cost-free, often open sourced implementations.

 

My other (and hotter!) take: JavaScript already "replaced" C++ as the language in which the largest subset of user-facing applications, and even server-side infrastructure, is written in.

I really have nothing of value to contribute to this discussion. Hi, Olu! How ya been?

Advertisement

Most of the console games that I've worked on were written in Lua.

(but yes, the engines were C++)

Maybe we'll all start using LLVM and use multiple language front-ends that all get compiled and linked together. 

I'm already linking together engine code in C, C++, and ISPC, and then layering Lua gameplay code and C# tools and wrappers on top. If other new languages like Jai can do what ISPC does and link directly with C++ code, that will help yo drive adoption. 

27 minutes ago, JTippetts said:

I really have nothing of value to contribute to this discussion. Hi, Olu! How ya been?

Been good, thanks! How are you?

11 minutes ago, Hodgman said:

Maybe we'll all start using LLVM and use multiple language front-ends that all get compiled and linked together. 

It's an interesting idea, but I recently learned that mere shared use of LLVM does not mean that the languages built with it are inherently link-able. Specifically, Rust and Swift both use LLVM as their back-end, but their object models are different enough that engineering the type transparency, etc is a significant lift. Most efforts at commingling the two, for now, focus on using C FFI as a narrow aperture for invocations. Pity.

1 hour ago, Hodgman said:

Most of the console games that I've worked on were written in Lua.

 

I'm so very, very sorry for you.

I think for all the talk over the last decade or two of what will replace C/C++, what I see is new versions of C++ replacing older versions as the standard at least at the low level of engine development and libraries.  With faster and faster hardware it's easy for higher level, less optimized languages, to take hold for games that dont require much performance.  But, many games will always be trying to push the envelope of what's possible on the current hardware, and that means they will always be using something like C++... and C++ is doing a pretty good job recently (C++11 and on) of improving itself continuously.  With all the amount of C/C++ code already out there, backwards compatibility, the knowledge base, and the lack of similar performing languages that bring any significant advantages to the table, I see C++ as the standard for a long time to come.

16 hours ago, Alpha_ProgDes said:

So after coming across this thread about JAI, I got to thinking why haven't more people embraced D as the programming to use, especially over/instead of C++? But just in general, will any language ever replace C and C++? Or is the amount of inertia and legacy code too insurmountable for any other language (of that sort) to be fully embraced (ie. not be a niche language)?

If you go abroad the industry and half of the game industry, C and C++ do not exist (or very few). In such service  IT, java (and its derivates) is almost the only language.

And if you look closer at the market, in the general programming, there are about less than 10% offers about C/C++ language. For the 90 other percents, java is predominant, with some C# that raised these last 10 years. But in these service companies (banks, insurances, web stuffs, institutions...) most of them choosed java 15 or 20 years ago, and they will never consider something else.

For example in the IT company where I work, we are 3 C++ developers and 50 java developers. In my previous company (in the industry), we were only C/C++ developers.

This is about the European programmer market. Maybe it's different in other countries.

13 hours ago, Oluseyi said:

My other (and hotter!) take: JavaScript already "replaced" C++ as the language in which the largest subset of user-facing applications, and even server-side infrastructure, is written in.

JavaScript is considered as the assembly language for the web since it is the only programming language (HTML is a markup language, not a programming language) understood by all web browsers. We do not include real assembly languages in this discussion although they are still kind of unavoidable in the end (unless you are programming directly in machine language instructions, but there is a kind of 1:1 mapping anyway between machine and assembly languages), because they are too low level to be practical on a large scale in our code bases. I think similar arguments hold for JavaScript as well in some sense and we must take this into account while talking about the impact of JavaScript. Languages like TypeScript, CoffeeScript, Elm, etc. all transcompile to JavaScript in the end, since browsers can handle only the latter. Typescript for instance is a superior alternative to JavaScript and many large companies adopt it or plan to adopt it. This is especially due to the dynamic typed nature of JavaScript becoming a bottleneck in large code bases, since programmers eventually realize that their architectures are built on quicksand: without giant test suites (larger than for statically typed languages at least) you have no idea when your program is going to break in at compile-time (there is even no compile-time because JavaScript is generally a purely interpreted language). Furthermore, JavaScript has and had problems with standardization and formal verification.

There is even an iconic picture illustrating the quality of JavaScript (I don't know if this is the original picture :)):

4704268314_bb0e9d0ff3_b.thumb.jpg.a6b3fdbe30461539a6ce6ad04995beee.jpg

🧙

2 hours ago, _Silence_ said:

java

Maybe this can change in the future as more common functionality is added to the platform-independent, standard C++ library. Before C++11, there was no std::mutex, std::thread, etc.

On the other hand, the JVM (including the Java bytecode compiler and JIT) consists of a very optimized compiler (I am talking about the JIT, the Java bytecode compiler is basically a lexer-parser-semantic analyzer). Together with C/C++ compilers, no other compiler comes even close to these compilers with regard to their level of optimizations. They also go back a very long time (resulting in lots of iterations and refinements).

🧙

Quote

The be honest I'm almost happy with C++. There are two features that I really want and I'm not sure if the people in the standard will get them right:

 - reflections - I haven't seen any custom tagging or attributes, which kills 50% of the benefits of having reflections. Otherwise it is good for sanity checks and asserts, and maybe something else that I'm not currently aware of.

- modules - will fight the compile times and will cut some needless code.

 - and the last one which isn't proposed is multiple return values. I'm not OK with that tuples thing.

 

In germany, i always get business job offers about java, c# and javascript programming only (mostly java), even though i have listed other languages as well - including low level ones like delphi and c/c++. I never got a single offer for c++ at all... but one for delphi :D which is a rare exception.

But it always depends on the kind of category you are working. For example in in the automotive industry there is a lot of special hardware involved, so there will always be C and C++ or some other low level languages. Making drivers for managed languages is a pita... But applications themself are mostly written in c# or java with bindings to the low level C libraries/drivers. Scripts, macros, math are written in mathlab, python or lua...

 

I expect this is similar to the game industry, there is C++ for all the engine low level core and then high level languages like lua/javascript/c#/java whatsoever.

 

But i see a future to be overwhelmed with a ton of full garbage collected, typeless, object oriented, functional languages without control of memory and performance at all. Maybe there will be 2-3 cores fully dedicated to do nothing else than collect memory garbage... moving the garbage collection to the hardware itself.

 

For C++ i dont see any future at all. I will fully get replaced with one of the higher level languages.

This topic is closed to new replies.

Advertisement