Mark Lewis
2 min readDec 19, 2021

--

While I agree with your conclusions, I have somewhat different motivations. I think that you make very good arguments here but the one you lead with is the one I find least convincing, that of having multiple ways to do things. One of the challenges we face as educators is that as languages evolve, they get more complex. If you want a simple language where things can only be done one way, you either have to stick to a teaching language that isn't really used in industry, or you have to resign yourself to swapping languages regularly to something new that hasn't yet grown in complexity.

In another article you mentioned Go and Kotlin as options that you find to be good. Go was created to be simple, but it was also incomplete. The addition of generics is really essential for a modern language, but it will inevitably make Go significantly more complex. A little web search found that Kotlin is also gaining features with every release, as one would expect from any language getting real usage (https://kotlinlang.org/docs/whatsnew16.html#stable-exhaustive-when-statements-for-enum-sealed-and-boolean-subjects). Given that most languages completely avoid deprecations that would break old code, this means they only get more complex over time.

Personally, I take the approach that all languages have advanced features and dark corners that novices shouldn't be exposed to. The question is whether you can avoid them early on. Some languages allow you to do that. Others require more complex knowledge right from the beginning. I'm not a believer of the claim that students will find those features in web searches even if we don't teach them. My own experience teaching Scala in CS1 for over a decade does not support that claim. Only a few students of the hundreds I have taught have clearly gone into territory they didn't understand with web searches. It is possible that many have done such searches, but if that happens, almost all of them recognize that there are things they don't understand yet in what they find and come back to doing things with the tools they have been taught.

--

--

Mark Lewis
Mark Lewis

Written by Mark Lewis

Computer Science Professor, Planetary Rings Simulator, Scala Zealot

Responses (1)