> style and naming conventions are almost as important and on that front ocaml's are also among the worst in the world
I’m a bit lost because Ocaml has a Pascal-like syntax (I find it nice but I generally dislike B syntax and am amongst the rare bread of developer who didn’t start with a language using it) and an extremely nice naming convention. Ocaml strongly discourages overloading, weird operators and shortly named variables unless they are local and used for a short time or an idiom like the default type of a module being named t. Everything has a long name in a module with a long name. It’s extremely nice.
Ocaml has the same ALGOL roots as Pascal (which is what I meant by Pascal like) and you can see the influence in the syntax: words pairing for blocks (begin/end, do/done), same use of ":". Keywords are quite close.
It obviously went through ML but you can tell the influence.
If you compare OCaml and Standard ML, which came before it, it seems like OCaml is a lot like SML but with some changed syntax for convenience, and imperative features syntax for featyres that were technically supported by SML but still awkward, and I think it's in those imperative parts where they most resemble Pascal and Algol. They added "begin" and "end" as keywords equivalent to parentheses, they added for loops, and classes, and changed array syntax to resemble other languages more (by using square brackets to indicate an array subscript).
I’m a bit lost because Ocaml has a Pascal-like syntax (I find it nice but I generally dislike B syntax and am amongst the rare bread of developer who didn’t start with a language using it) and an extremely nice naming convention. Ocaml strongly discourages overloading, weird operators and shortly named variables unless they are local and used for a short time or an idiom like the default type of a module being named t. Everything has a long name in a module with a long name. It’s extremely nice.