2 ms·
> Everytime somebody comes up with a new programming language, I am like, yeah, so you added these abstraction, just in a different syntax. I got this feeling
by CaptainOfCoit 1y ago
> Everytime somebody comes up with a new programming language, I am like, yeah, so you added these abstraction, just in a different syntax.
I got this feeling too, until I started to explore languages outside of the C/Algol-like syntaxes. There is a wide range of languages out there, from array languages to lisps, and they don't give me the feeling of "just a different syntax" but actually changed the way I think.
So yeah, I love lisp now and spend most of my days writing it, but it also comes with the downside that now Java, C# and Golang look more similar than different to each other.
> It would also allow to build a library of universal optimizations, etc. So I think programmers would benefit from having a single universal language.
I think assuming everyone would use the same hardware, same environment and same workflows to solve the same problems, this would make a lot of sense and would be hugely beneficial!
But in reality lots of problems need different solutions, which has to be made in different ways, by different people who think differently. So because the world is plural, we need many programming languages too. Overall I feel like that's a benefit.
- TimTheTinker 1y ago> they don't give me the feeling of "just a different syntax" but actually changed the way I think. Not only that, but languages that enable more concise expression of an idea (without losing clarity for readers) reduces the error rates of programs written in them. It's been proven that when not accounting for constraints imposed by a compiler/interpreter (like the Rust borrow checker), the average error rate per unit size of programs across widely varying languages is constant. So reducing the number of lines/expressions required to express ideas reduces the number of errors by the same factor. Brevity pays when readability isn't sacrificed.
- js8 1y ago> assuming everyone would use the same hardware, same environment and same workflows They don't have to. I would ideally represent HW, OS and compiler in the LC as well. Then primitives of the language that could be proven to be HW/OS/compiler independent could be abstracted and readily translated. For the ones that could not - well you have exact description of what the differences are.