Live data from Hacker News

Java Is Underhyped

jackson.sh

251–260 of 808 posts

Re: Java Is Underhyped

#251

Earlier quoted context omitted.

Don't forget that Java first appeared in the late 90s and is a language of its time. That's not say that it hasn't evolved, but many of the decisions and choices were of that era.

- Java: 1995 - Python: 1991

The first and second half of the 90s where very different times when it came to programming.

Furthermore Python and Java set out to solve very different problems, which is reflected in their design decisions.

Re: Java Is Underhyped

#252
No other language has ever been hyped to the degree that Java was back in the day. The marketing was relentless and every month some new Java-related thing was going to change the world: thin clients, Java Cards, Java browsers, Java office suites...

We will never see its like. There's no money in programming languages anymore, no one would drop the kind of cash on pushing their pet language that Sun did back in the day.

What I'm saying is: Java have had its hype and should settle in for a dignified middle age rather than try to hang with the cool kids.

Re: Java Is Underhyped

#253

I do think Java has a bad rep as a "dry, corporate, enterprise" language, but I think there is an ecosystem around Java that is pretty awesome and you can build incredible applications with Java if you want to. Java has a branding problem. Java (and Oracle) missed the wave of the last 15 years when tech became "cool." If you were new to tech/programming and wanted to pick up a language, which of these three would you…

This is a funny comparison, for sure.

What is really going on here is that there isn't a "the Java website". There is no single organisation or project behind Java which could put such up a website. Similarly, where is the C++ website? The C website?

java.com was originally the website aimed at end-users who need to install Java to use desktop applications written in Java. It looks like it's from 2010 because that's when the last of those went extinct.

Re: Java Is Underhyped

#254
post #7

There are a few reasons to avoid Java today. - The programs are very verbose for the functionality they provide. There are countless lines of getters, setters, and trivial constructors. While IDE helps to write them, it makes reading existing programs slow and frustrating. Lombok helps, but very few programs use it. - If you do want to use Java ecosystem, there is Scala. It also has strong type system, nice IDE suppo…

As a Java developer: - I have no trouble reading java and have a hard time reading the 'less verbose' languages. There's way too much implied meaning and information only gleamed through tooling or backtracing, like determining the type of a variable that is declared with var - IDE support for Scala is half as good as Java and I suspect a good reason is the language. The auotcomplete in intelliJ is almost as bad as i…

> IDE support for Scala is half as good as Java and I suspect a good reason is the language. The auotcomplete in intelliJ is almost as bad as it is for python and the IDE really struggles to understand the code;

This is not my experience. I found the IntelliJ autocompletion to work very well with Scala. There are nice code-suggestions, highlights for implicit parameters, refactoring works as a breeze. What exactly are you missing?

> CPU usage when scala is open is MUCH higher than Java.

That is true. MUCH higher.

Re: Java Is Underhyped

#255
post #236

Earlier quoted context omitted.

Unfortunatly, I know a lot of devs that don't even know it's a joke. Singleton is still a design pattern used in the wild.

I'm not going to argue there are lots of ridiculous patterns out there, which seem to be embraced and encouraged by the various frameworks that a lot of developers seem to rely on. Why bother setting things up explicitly in the way you want when you can declare things as injected, other things as singletons, and then have no real idea why it all went horribly wrong?

It's starting to be the same in Python though.

Inertia is huge in our industry, and the HN bubble doesn't gives a good picture of it.

Behind corporate firewalls I now see things done the way they were 10 years ago: packaging, string handling, concurrency...

I assume it's the curse of being popular and old.

And java has been popular for longer than Python, so inertia is even stronger. It doesn't matter if it has lambda since V8 if people still believe the best practice is to pass fat objects around.

Re: Java Is Underhyped

#256
post #7

There are a few reasons to avoid Java today. - The programs are very verbose for the functionality they provide. There are countless lines of getters, setters, and trivial constructors. While IDE helps to write them, it makes reading existing programs slow and frustrating. Lombok helps, but very few programs use it. - If you do want to use Java ecosystem, there is Scala. It also has strong type system, nice IDE suppo…

I think of Java as hitting an 'anti-sweet-spot': - It forces us to go through the ceremony and verbosity of static typing, yet blows away lots of the benefit by pervasive use of `null` and `Object`. Compare this to ML or Haskell, where there's less ceremony (Hindley-Milner type inference) yet more safety (no `null` or down-casting) - Checked exceptions have a similar ceremony and verbosity problem, yet the pervasiven…

> pervasive use of `null` and `Object`

Who is pervasively using Object? You are talking about a language that hasn't existed for a decade.

Re: Java Is Underhyped

#257

Earlier quoted context omitted.

Well, it's true popularity in tech is not necessarily related to quality. Trending does have an impact. But by experience, having a killer feature, and a good adoption story usually does much more. E.G: - PHP: easy to make web page in 2001 - JS: monopoly on the client side web - Go: simple concurrency and binary production - Rust: borrow checker - Python: "yes, you can do that too. Also in 2 lines" Etc.

- Ruby: "yes, you can do that 5 different ways in 1 line"

Ruby, readable Perl since 1995.

Re: Java Is Underhyped

#258
post #47

Earlier quoted context omitted.

Verbosity is not a problem in large code bases. Speed of understanding and debugging of what somebody else wrote is. So, less magic is better. I will take Java codebase over Scala or Python every time, unless it is a toy script which is 100 lines

Every significant Java codebase I've worked in has had incredible amounts of magic. Between AOP, DI frameworks, APT, reflection, proxies, SPI, Lombok compiler hacks, dynamic classloaders, etc., there is a LOT of magic flying around and it can be quite hard to understand what will happen at runtime.

This is what drove me away from Java; the ungodly amount of magic that's required to make it economic. If it all works, it's fine. But as soon as something fails... Get yourself ready from some frustrating hours.

Re: Java Is Underhyped

#259

Earlier quoted context omitted.

I write software in Java. I can't stand python - too wishy-washy. But my main complaint about Python is trying to use someone else's software. Then it degenerates into a maze of twisty little passages of trying to install the correct set of dependencies, not knowing where those files are installed (which makes it difficult on a cluster, as you may need to do the install on every node separately). Then you try using p…

I came to say say that's not a language problem, that's a packaging problem. But that would be misleading. The reason packaging is still a problem in Python are linked to the language: - to get perfs, you need compiled extensions, which java doesn't need. So a Jar can be fast and portable, while in Python it's an "or" proposition. Wheels help, but they still are OS dependent, so you need a build per OS. - PYZ arrived…

It certainly doesn't help that the software I'm interested in is written for science, so there is a tendency to make it work just well enough on the author's machine to allow a paper to be published, and then abandon it.

Re: Java Is Underhyped

#260
post #200

Earlier quoted context omitted.

The ecosystem is large and diverse. But you don't have to use everything! You don't have to use anything ! I make a point of starting all new projects with just the JDK, and taking that as far as possible before adding dependencies. A 40k LOC codebase i work on has these external dependencies (plus some company- and vendor-specific libraries, which we would need in any language): 1. Netty, for serving HTTP 2. Glassfi…

As a java n00b, thanks for listing the libraries. Do you know any other simple libraries which will be useful generally?

Oh, there's millions of them. That's the problem!
Post reply on HN