

How are created new programming languages - scriptproof
http://www.scriptol.com/compiler/new-programming-language.php

======
rednum
I 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
This 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.

