3 ms·
How are created new programming languages
- rednum 15y agoI hoped for some interesting read, instead the article could be summed up in 3 sentences: Python, Ruby and Scriptol were created by starting with ergonomic study and user survery. Java, C# and Scala by repeating old habits of some programmers. The syntax of latter three languages sucks - it's full of cryptic symbols, including semicolons, and it's based on C which doesn't make sense today. Ok, so what is this user survey? In some ways it is the same as repeating habits of people - when you are doing a survery people will tend to vote for habits they have from programming languages they use. Even my friends who are just CS students (so shouldn't have bad habits from years of coding in the industry and seem to have more theoretical approach) are afraid of languages that resemble Java too little. I'm not saying this can't be done correctly, I think that this article simply lacks of content on methodology of gathering ideas for new PL and doesn't answer the question in the title. It would also cool to read what scriptol's authors did to make the language suit users' needs better. Also as far as I know scala and javascript has the same attitude towards semi colons - they are no obligatory. I'd say that scala has more 'new' ideas than Go and JS [1] [1] think pattern matching, actors - I know they are not actually new, but it seems to me that scala can become 'most mainstream' among languages that implement such features
- serichsen 15y agoThis misses a few things (aside from english grammar). For one, while there are fields where user demand is the most important design basis, language design is not one of them. I believe that the design of a language should put ab initio thoughts at the beginning. That box "Ergonomic study and user survey" is actually "Old user habits". Nowadays, everyone seems to think that a useful language has to look like C. I think that this habit is a big impediment to innovation in this field. This brings me to the next point of bother: semicola are not simply something to be dropped from otherwise C-like syntax. It is actually not dropped, but replaced by syntactic whitespace. That means that the programmer has the additional burden of determining whether he may put a newline at some point in code without it being interpreted as a statement terminator. I believe that syntactic whitespace---i.e. that the amount and type of whitespace are significant for the interpretation of the program---is a fundamentally flawed idea. Of course, C syntax is a complete mess, but dropping semicola is not a solution at all because the real problem sits much deeper.