I was taught the Standard ML of New Jersey (which as a non-American I did not realise is a joke, it's referring to the company now known to you as Exxon, the Standard Oil of New Jersey) at university.
I strongly believe that - although my home institution no longer teaches an ML as first language - this is the best way to teach CS to undergraduates. An ML has all the fundamental ideas you will need to also teach about this discipline, and (so long as you choose e.g. SML/NJ or similar, not Rust or something) it won't be a language the average teenager you recruited might already know, so the week 1 exercise showing they've understood what they're doing is actually work for all of your students, averting a scenario where some of them drift away only to realise at exam time that they haven't learned a thing.
Agreed - we wrote an ML style language in my uni compilers course and it was taught by the primary maintainer of MLTon (Dr Fluet is a great guy). Since it’s full program optimizing, the compilation took a while. He told us to give SML NJ a try for faster compilation but slower execution. It was a headache and only marginally faster compilation for our use case.
That said, it’s the OG so I give it some slack. I did enjoy MLton though, but it’s easier to do when the instructor wrote it.
I strongly believe that - although my home institution no longer teaches an ML as first language - this is the best way to teach CS to undergraduates. An ML has all the fundamental ideas you will need to also teach about this discipline, and (so long as you choose e.g. SML/NJ or similar, not Rust or something) it won't be a language the average teenager you recruited might already know, so the week 1 exercise showing they've understood what they're doing is actually work for all of your students, averting a scenario where some of them drift away only to realise at exam time that they haven't learned a thing.