3 ms·
It's not worse. It's just not better in any significant way. So if you're new to this language, and the first thing it makes you learn is this new syntax which
by kerkeslager 4y ago
It's not worse. It's just not better in any significant way. So if you're new to this language, and the first thing it makes you learn is this new syntax which isn't better in any significant way, learning that language immediately feels like you're wasting your time learning something that isn't better in any significant way.
Of course, if you started with ML syntax, you'd feel the same way learning a language with C syntax.
But if you're introducing a new language, it makes sense to target the language the most people are already familiar with. Maybe your language does really bring some real syntax improvements, but it's a silly hill to die on, because syntax just isn't very important.
If syntax changes are all your language brings to the table, your language really isn't worth learning. And if your language brings more important ideas to the table, then it would be a shame for people to never make it to those ideas because they got bored learning unimportant syntax ideas.
- vlovich123 4y ago> if you started with ML syntax, you'd feel the same way learning a language with C syntax. I always wonder this but I’ve always found Lisp syntax to be a lot more intimidating and less readable for whatever reason. I should give it a fair shot one of these days.
- trenchgun 4y agoLisp syntax is unreadable because there is not much syntax. Functions, macros, variables are all in a mix of gazillion parentheses. ML syntax is really clean.
- kazinator 4y agoLisp syntax is about the vocab. Because the grouping (what expression is child of what other expression, and at which position: third child, fifth child, ... is clear). If you don't know what the word means, like what is foobly in (foobly ((x 3)) (blorch x)), and don't yet have the intuition to make an accurate guess, you are screwed if you don't look it up. The meaning of everything inside (foobly ...) could depend on the definition of foobly. foobly could be in the language itself, or some extension in the language implementation, or it could be defined in the code base. Newcomers to some kind of Lisp get confronted with identifiers that they haven't seen anywhere.
- matsemann 4y ago"Not better in any significant way" is a hot take, and pretty hand-wavy way of dismissing a whole group of languages. With so many people preferring that syntax, it might just be that you're actually wrong.. For instance, I'd say the piping is significantly better than the backwards reading of nested function calls you have to do in Python. Data |> map |> filter |> group |> sum Vs sum(group(map(a) for a in data if filter(a)))
- kerkeslager 4y ago> "Not better in any significant way" is a hot take, and pretty hand-wavy way of dismissing a whole group of languages. With so many people preferring that syntax, it might just be that you're actually wrong.. I can see how it could be interpreted that way if you didn't read anything else in my post. A lot more people use C syntax than use ML syntax, so your own argument, "[w]ith so many people preferring that syntax", would support C not ML. > For instance, I'd say the piping is significantly better than the backwards reading of nested function calls you have to do in Python. > Data |> map |> filter |> group |> sum > Vs sum(group(map(a) for a in data if filter(a))) That's not coherent Python syntax, but knowing both languages, I'll agree that the ML syntax is definitely better. But significantly better? Reading that sort of code in Python simply isn't a problem I run into. Neither syntax solves any problems I have, because understanding syntax isn't ever the problem I have (in languages that aren't intentionally opaque). Incidentally, if you want that sort of thing in C-ish syntax, it's not hard to get it in (for example) C#: data.map(f).filter(p).groupBy(g).reduce(add);
- bmitc 4y agoI first learned of programming with C, C++, Java, and Python. I was unimpressed and remain so. It wasn't until I learned of visual dataflow languages and functional languages, in particular functional-first or pragmatic functional languages that I began to like programming. But, I was also not indoctrinated by a computer science degree, which probably has a lot to do with it.