3 ms·
Genuinely curious as to why this was so. Did these students have prior programming experience? Was their reaction due to a particular fault of Racket or would
by Zuider 8y ago
Genuinely curious as to why this was so.
Did these students have prior programming experience? Was their reaction due to a particular fault of Racket or would they have disliked any language to which they were not accustomed? Perhaps their reaction was to the idea of functional programming which would have provided a distressing challenge to intuitions developed through object-oriented or imperative programming? What textbook did you use?
- mrweasel 8y agoI would suspect that at least part of it is the same reason that I disliked having Pascal as taught as doing my programming introduction course: It's not a main stream language and it's sufficiently different that you cannot directly apply what you're taught in most commercial settings. The languages they will be using in the future, or expect to be using in the future are C-style object oriented languages like C# or Java (depending on where in the world you live). It's not that languages like Racket, Rust, Haskell or even something like Prolog and other languages aren't interesting or useful, in many cases they're a better fit for your problems. It's just that without the background in the C-style and object oriented languages it's pretty hard to appreciate the more "niche" language and the problems they solve.
- gameswithgo 8y ago>The languages they will be using in the future, or expect to be using in the future are C-style object oriented languages like C# or Java Between Go Rust, F#,Nim, Kotlin etc I think ML-style syntax, and composition over inheritance is generally being preferred in a lot of newer up and coming languages. As well languages like C#/Java/Rust are so multi-paradigm these days the crossover relevance is very high from any one language to another. I've never seen most languages as drastically different really. Lisps and Prolog certainly are, Rust is a little with the borrow checker, but otherwise I feel like people make much ado about "int x" vs "x :int" and "f(thing)" vs "thing.f()"
- emidln 8y agoGo isn't a strong example of ML syntax.
- goto11 8y agoThe industry will probably still be using C#, Java and JavaScript in the future - but those languages and environments evolve over time. Teaching the languages as it is used in the industry today is not preparing the students for the future. C# 3.0 is in many ways closer to ML than it is to C# 1.0. I have seen developers complain they had to learn an unpractical "ivory tower" language like Haskell - and then the same developers get totally lost when C# introduced type inference and closures and deferred evaluation of queries.