Live data from Hacker News

Java is confusing, Clojure is simple

blog.klipse.tech

11–20 of 25 posts

Re: Java is confusing, Clojure is simple

#11

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 n…

I 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.

I 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.

Re: Java is confusing, Clojure is simple

#12
As a java novice and a Clojure non-entity, I found the article interesting and helpful. I don't think the author is trying to convince enterprise java dev teams to abandon java in favor of Clojure, its just a helpful comparitive view of two languages meant for beginners.

Re: Java is confusing, Clojure is simple

#14
post #3

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 n…

Why imperative programming is important to learn? What will we be missing in a LISP only world?

IMO 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.

Re: Java is confusing, Clojure is simple

#15

This feels like someone who prefers Clojure really hard, and doesn't like Java. Admittedly, I'm a finance Java EE wageslave, but java is really not that complex to understand. Objects are references, updating the referenced object will change all objects sharing that reference. Primitives are an admittedly confusing bit, but we're kinda stuck with them. I don't think Java is "confusing" (but I am a bit biased), but d…

Java as a language might be not so difficult to learn and understand, but using it for writing real applications can become convoluted pretty quick. Siding with Java in arguments against it, today is like arguing against printing press in the 15th century - "This devilish machine takes the soul out of divine process of copying a book by re-writing it by hand." non-Java JVM languages popping up every few years for good reasons. Another platform that has more languages is Javascript and Clojure beautifully simplifying work there as well.

Re: Java is confusing, Clojure is simple

#16
post #6
post #3

Earlier quoted context omitted.

Why imperative programming is important to learn? What will we be missing in a LISP only world?

Nulls, 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.

It 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.

Re: Java is confusing, Clojure is simple

#17

This feels like someone who prefers Clojure really hard, and doesn't like Java. Admittedly, I'm a finance Java EE wageslave, but java is really not that complex to understand. Objects are references, updating the referenced object will change all objects sharing that reference. Primitives are an admittedly confusing bit, but we're kinda stuck with them. I don't think Java is "confusing" (but I am a bit biased), but d…

Java as a language might be not so difficult to learn and understand, but using it for writing real applications can become convoluted pretty quick. Siding with Java in arguments against it, today is like arguing against printing press in the 15th century - "This devilish machine takes the soul out of divine process of copying a book by re-writing it by hand." non-Java JVM languages popping up every few years for goo…

The reason others prefer immutable constructs is due to a permanent and stable cognitive blockage. [About half of programmers are incapable of understanding mutable state](https://blog.codinghorror.com/separating-programming-sheep-f...). Functional programming solves this problem by removing mutable state (almost) entirely.

Functional programming is like speed controls for trucks. It enables people who have cognitive blockage to produce some work for the company. So it's going to be promoted over and over.

Re: Java is confusing, Clojure is simple

#18

This feels like someone who prefers Clojure really hard, and doesn't like Java. Admittedly, I'm a finance Java EE wageslave, but java is really not that complex to understand. Objects are references, updating the referenced object will change all objects sharing that reference. Primitives are an admittedly confusing bit, but we're kinda stuck with them. I don't think Java is "confusing" (but I am a bit biased), but d…

Java as a language might be not so difficult to learn and understand, but using it for writing real applications can become convoluted pretty quick. Siding with Java in arguments against it, today is like arguing against printing press in the 15th century - "This devilish machine takes the soul out of divine process of copying a book by re-writing it by hand." non-Java JVM languages popping up every few years for goo…

I can see where you're coming from, but for the area that I work in (finance) I can't help but feel the features of the JVM are a net gain rather than a loss.

I'll absolutely agree that it's not good for applications that don't need it's complex machinery. Half my side projects are written in java, and probably could be easier in python.

I'm not sure your metaphor really works here, as you're implying that Java is inherently less efficient/worse than Javascript or Clojure.

Re: Java is confusing, Clojure is simple

#19

Earlier quoted context omitted.

Java as a language might be not so difficult to learn and understand, but using it for writing real applications can become convoluted pretty quick. Siding with Java in arguments against it, today is like arguing against printing press in the 15th century - "This devilish machine takes the soul out of divine process of copying a book by re-writing it by hand." non-Java JVM languages popping up every few years for goo…

The reason others prefer immutable constructs is due to a permanent and stable cognitive blockage. [About half of programmers are incapable of understanding mutable state]( https://blog.codinghorror.com/separating-programming-sheep-f... ). Functional programming solves this problem by removing mutable state (almost) entirely. Functional programming is like speed controls for trucks. It enables people who have cogniti…

Functional programming is a concept, not a magic cure-all for bad programmers.

Java also supports functional elements (though I'm not implying it's a functional language in the slightest).

I could have an optimistic view of programmers, but I feel like that article is heavily slanted towards CS education, which is taught by people who intrinsically understand computer science. I work with people who are definitely not even approaching the middle of the bell curve in terms of skill and efficiency. They still produce work in imperative programming, and without introducing catastrophic levels of instability into the system.

Post reply on HN