3 ms·
I don't know much about Kelley, but if the goal is to create a "C replacement", aggressively keeping the language surface area small seems like a reasonable way
by skohan 5y ago
I don't know much about Kelley, but if the goal is to create a "C replacement", aggressively keeping the language surface area small seems like a reasonable way to go.
- drcode 5y agoExactly, this is why he sometimes comes off as a jerk, because he tells people stuff like "No, you can't add your virtual function table feature to Zig, OOP programming is a bad idea in a systems language."
- matheusmoreira 5y agoIndeed. In this video he explains the reason why he made those choices: https://youtu.be/Gv2I7qTux7g?t=120 https://youtu.be/Gv2I7qTux7g?t=120 All these programming language features require a lot of machinery, complicating the binary interfaces of the resulting software and preventing code reuse.
- v8dev123 5y agoSimple, small languages getting complicated when used in large applications while complex languages become simple and easier when used in large applications.
- skohan 5y agoThat mostly seems correct, but Zig will be an interesting one to watch due to the approach of having powerful compiletime execution. I.e. Zig doesn't have generics in the traditional sense, but you can get them by writing normal code which creates types for you at compiletime. The promise would be that you can get more advanced features without adding complexity to the language, i.e. like in Rust where you have to basically understand the AST in depth to be able to write macros. We'll see if it pans out. Also for instance Go has been able to stay relevant while staying very small. Complex languages can help with complex projects if there is a good program structure, but one advantage of simple languages is there is only so much of a mess which can be made if developers go a bit off the reservation.
- dnautics 5y agoYeah this is not my experience. Enterprise distributed systems are much easier in erlang and elixir, which are simple languages, over java, which is not.
- v8dev123 5y agoThey are functional languages. There is difference.
- blacktriangle 5y agoAnd even if you don't think that's right, we already have the large-surface area systems programing language experiment in Rust. Aren't we better off with Rust and Zig exploring clearly different paths for a C replacement than both of them trying the same things?