4 ms·
I agree with what you are saying. So I am not sure what it is you think I am not understanding. My objection was to the “rule” claiming that implementations of
by mbrodersen 4y ago
I agree with what you are saying. So I am not sure what it is you think I am not understanding. My objection was to the “rule” claiming that implementations of higher-level features in lower-level languages are always inferior (“poorly on both counts”). That is simply not true. For example, a high-performance AAA game typically use a number of different custom garbage collectors all optimised for specific purposes. Solving a hard problem that higher-level languages can’t solve. There is nothing inferior about that. So that part of the “rule” is wrong. And if we remove that smug incorrect parts of the “rule” then all that remains is a claim that complex systems often implement higher-level features in lower-level languages. That part is obviously true. But not very interesting.
- lispm 4y agoAn example was Gosling Emacs written in C by James Gosling (who later developed Java). He added his own adhoc scripting language: Mocklisp. Instead of using a real Lisp, he invented his own, poorly. Stallman later rewrote Gosling's Emacs: he added a Lisp runtime with real GC and a Lisp, which was based on Maclisp. That's now GNE Emacs.
- mbrodersen 4y agoYep those are good examples of how not to do it. Games typically instead link in Lua or Python and get on with it. That’s a much better approach. Another good example is the Unity game engine, using C# as the scripting language and then compiling it to C++ for high performance. That works really well.
- lispm 4y agoNote: 'nowadays'. The 'rule' came up in the early 90s, when Lua and Python just were appearing.