4 ms·
> Yes, but they have moved their compilers to C# A compiler is a different matter. GCed languages are very compelling for static compilers. Even gcc uses GC in
by millstone 10y ago
> Yes, but they have moved their compilers to C#
A compiler is a different matter. GCed languages are very compelling for static compilers. Even gcc uses GC internally.
The claim is that GCed languages make for poor interpreters - and also poor JIT compilers and runtimes.
> If you take Nashorn engine running on Jikes, it is an 100% Java stack running a JavaScript interpreter
Nashorn gets participation points, but it's not competitive with any of the major JS engines, all of which have C++ runtimes.
> Taking Swift as an example bootstraping the language would increase the burden designing it, as they are still far from fully stable design. If they would throw away in man years invested into the LLVM, which happens to be written in C++,
This still confuses the compiler with the runtime. The Swift compiler is indeed written in C++ using LLVM, but it could have easily been written in a GCed language without affecting much of anything.
But the runtime is separate, and it also happens to be written in C++. It's possible to imagine the Swift runtime written in a GCed language, but that is not what Apple chose to do.
- pjmlp 10y ago> The claim is that GCed languages make for poor interpreters - and also poor JIT compilers and runtimes. Have you ever spent time with Graal, Truffle, PyPy? 30 years ago I used to take the flak for arguing about C++'s suitability for writing programming language tools in comp.compilers instead of C. Yet here we are praising C++ virtues over other languages for writing interpreters and JITs. One thing I learned in all those years reading compiler related papers, is that many times the main issues are actually human and not technical. The majority just want to have something running, and take the shortcut of using whatever works to achieve their goals, instead of taking the effort that might bring the technology forward but would delay getting everything to work.