I’ll focus on this one statement:
In Uruguay, all universities will give you a whirl of java, c, c++, javascript and python (with some smidges of pascal or modula in UDELAR’s FING). The following information comes from some kids I know that finished their universities in the last 3-5 years:
In Vancouver, Simon Fraser University:
python, C, C++, js, that custom one we wrote for the compiler, kotlin, arduino-C. Most courses would probably be tied python/C
In Glasgow, university of Strathclyde:
Core language was very clunky java, but I took a terrible course in agda in my last year, and there was some C for the systems class
in Norway, university of University of Tromsø and later University of Bergen
First learned C at one and Java in another, though my university later switched to Python. I learned Haskell in the FP course and used C++ with a lot of macros in the concurrency class
In Carnegie Mellon (this friend of mine went into academia and now works on Lean)
I was taught programming in C and SML
and to some extent bash (LOL)
and had other courses with programming expectations in python, c++, ocaml
At University Stuttgart:
University Stuttgart taught mostly Java, there was a single mandatory course that explored other programming paradigms via various languages, which included Ada, C, Lisp, Pascal, a lot of Haskell, and Prolog.
there was another optional course that taught MIPS and RISC assembly iirc
Then you also have pre university courses taught to kids. I’ve seen everything from scratch, godot, unrealengine blueprints, to javascript and python. Python is surely used, as is everything else, and summing all the braces-based ones stacked against python+haskell, they are by far what they are exposed to.
In frankness (maybe more than this argument calls for), saying “Scala, F#, Haskell, Lean” are new languages, or that they are popular, while ignoring typescript, golang, rust, kotlin, swift, zig, dart and others, which are way more popular (not zig in particular) and newer… I can’t take that as anything but a bad faith argument, because there’s no way you don’t know this…
P.S: the lean committer is very against the notion that lean is indentation based.
He says:
most idiomatic lean code is in the pure fragment which doesn’t have any whitespace sensitivity. It has indentation sensitivity to prevent you from making stupid syntax mistakes like nested matches, but most syntax is whitespace agnostic.
lean has whitespace sensitive syntax in a few places, namely tactics, do notation, and match exprs
All with very good justification for being whitespace sensitive to avoid confusions.
Like you can’t write a multi line if statement in do notation without braces just by indenting. Braces are required.