3 ms·
The article focused on confusion among students learning the language. First, imperative programming is important to learn. Understanding the stack/heap and ca
by throwawayjava 7y ago
The article focused on confusion among students learning the language.
First, imperative programming is important to learn. Understanding the stack/heap and calling conventions is important. Yes, those things are hard to learn. But once you learn them, they are not that confusing. These are significant pedagogical concerns, but I'm not sure they are so important beyond the classroom.
Second, FP is also confusing to new programmers but for different reasons. E.g. anything that requires folds is typically easier in imperative settings.
- viebel 7y agoWhy imperative programming is important to learn? What will we be missing in a LISP only world?
- bsaul 7y agounderstanding performance characteristics ( memory consumption in particular ) better ?
- turk73 7y agoNulls, dumb syntax, bugs, my high blood pressure... In 2013 I tried darn hard to get a job doing Clojure but it never panned out. The world just isn't ready, it seems.
- iLemming 7y agoIt was six years ago. Try again, maybe? Clojure is slowly but steadily growing. The world is never "ready." It was never ready for Clojure, OCaml, for Smalltalk, for Haskell, for Purescript, for Elm, for Erlang, for Elixir - yet teams are using them, there are conferences all around the world, libs are being written, podcasts recorded. There are jobs. I started writing Clojurescript 3 years ago, and since then I can't find a better alternative for myself - a language that is well suited to build awesome things and makes me happy. I have changed 3 different jobs since then and never settled for anything but Clojure. Never had a problem with finding a job.
- lispm 7y agoLISP is imperative.
- simion314 7y agoIMO for someone new to programming imperative it is much simpler, like to this then do that. I also think programmers should understand eventually(not in the beginning) how things actually work, like there is a stack and a heap , external libraries are linked or dinamically loaded etc, otherwise you can hit some error like "out of stack space" and the dev has no idea what the hell is a stack and why recursion could cause this error.
- rand84545 7y agoI agree that imperative programming is important to learn but java is in my opinion shouldn't be the language to do so. I think learning should be fun and java is the exact opposite of fun. It's wordy, full of boilerplate and enterprise code. Java, in contrast to other major languages, doesn't have an inspiring narative or a reason to be.
- chapium 7y agoHaving recently taken a few courses in Java, learning things like data structures can be fun, but it depends a lot on the instructor and the exercises provided.
- DrMagnus 7y agoI used to feel that java was a good teaching language, but after using it at work, I totally agree. Java is excellent for enterprise distributed systems. It's got excellent tooling and an absurd quantity of libraries. It's not good for simple programs to teach students compared to say...python or even C++. Especially things that don't really NEED the complex machinery built in to the JVM/Language spec.
- throwawayjava 7y agoFor imperative programming, I think it makes sense to teach C and then also at least one object-oriented garbage collected language. Doesn't have to be Java. I also think teaching some course in Java is somewhat reasonable, if only because Java is so pervasive and so important in the history of programming that it's good for properly trained software engineers to have seen it.