←back to thread

74 points holmofyHu | 10 comments | | HN request time: 0.244s | source | bottom
1. pylua ◴[] No.41279610[source]
I don’t get all the spring hate here. Spring is a great framework, and the sheer developer mass means it’s easy to hire developers that can quickly be onboarded. It’s definitely opinionated, but a lot of the opinions are correct.

I think that rust is missing something like the above, and the attempt is appreciated by me.

replies(2): >>41279940 #>>41280712 #
2. re-thc ◴[] No.41279940[source]
> I don’t get all the spring hate here.

It's popular to hate on Java. It's become a sad trend.

The funny thing is most people that hate it go on to re-invent or use something vastly similar eventually (even if they don't see it that way).

Spring does it for you right at the start. People hate to read the documentation or understand how things (including how Java) works and just blame it.

replies(2): >>41280074 #>>41282543 #
3. tdb7893 ◴[] No.41280074[source]
It's a 29 year old language. It has done an amazing job adapting over time and is a technical marvel (and I still think it is a better than average language overall) but there are tons of valid criticisms of it and I don't begrudge someone not loving the language.
replies(2): >>41280231 #>>41281987 #
4. wredue ◴[] No.41280231{3}[source]
Yeah. But people will be like

“Java sucks. Ruby/Python/Haskell is the shit”

5. written-beyond ◴[] No.41280712[source]
There literally like 1 straight up bigot-yish opinion but that too gives an explanation.

I will show you true spring hate. During my second summer in college I had a PM recommend me some stuff to try so I could maybe contribute free labour to their organisation. This very unenthusiastic person told me to first learn "spring", I said ofc I will learn some spring and get back to you in a 1-2 weeks.

Context, I had already written many small PoC apps in Rust using Rocket, Diesel and Postgres, I was naïve but not completely inexperienced in the Rest/we server space.

Every tutoria for spring that I'd find would first want you to setup the Spring IDE because it's very difficult to learn and work without. The IDE is super simple and should be a breeze to setup and start working. I had recently paused by distro hopping on PopOS! so I started so I followed the Spring IDE installation for Linux.

I spent 2 weeks trying to install Spring. I reinstalled by OS multiple times because I was very inexperienced in Linux and would be paranoid that I had broken something in Linux (which I frequently did before). 2 weeks of debugging the Spring the IDE installation ended with me finding out that the certificate for the java installation I had installed through the PM was invalid or expired, someone had pushed a broken package, which was preventing springs ide from verifying any of the sources it would need to download and install packages from. You needed to download the official tar from javas website and change the certificate from there. Everything worked and I had spring setup after 2 weeks of tinkering.

I gave up on learning spring after that, for atleast till my graduation I did not formally every work with Java because of the unhealthy reliance on editor integrations for newbies. Those 2 weeks had traumatized me, they were most probably my fault. I could had switched OS's been windows to make it easier, you could think of many solutions. But the fact that I was able to learn and work with pre-async rust did not give me much confidence in the Java ecosystem.

I am wiser now and understand the utility of Spring, but it's heavy reliance on IDE features I still do not appreciate.

replies(1): >>41280916 #
6. dxxvi ◴[] No.41280916[source]
First, I never use Spring IDE (which is nothing but Eclipse + some plguins). I use IntelliJ ultimate version which supports Spring pretty well. I wonder why you had to re-install the OS when you mess up the IDE, esp. in Linux. In Linux, Spring IDE, IntelliJ, jdk ... are zipped files. You download them, unzip them in your home directory. If you think everything is messed up and you want to restart from scratch, create a new account in you Linux machine and start again. Second, you can write a Spring-based app without a Spring-support IDE (e.g. IntelliJ community edition doesn't support Spring, i.e. it doesn't understand any Spring feature but of course, it understands Java). Many places where I worked were too cheap to buy the InterlliJ licenses for us and we were still fine (although we weer not happy at all).
replies(1): >>41282011 #
7. okr ◴[] No.41281987{3}[source]
The language is old, the JVM is not. As a human i am happy that my language is well understood, independent of how old i am. I can express myself, and thats what counts. From time to time we get new words. But i do not have to ditch the old stuff. Is it not astounding how old many of the programming languages have become?
replies(1): >>41282304 #
8. okr ◴[] No.41282011{3}[source]
IntelliJ Ultimate is a steal. It is less that my spotify abonnement. It is time for them to increase prizes.
9. pylua ◴[] No.41282304{4}[source]
They do a great job of keeping the language fresh, on many levels. Java streams, encryption, syntax updates. It doesn’t feel old to me.
10. signal11 ◴[] No.41282543[source]
It’s not about Java hate.

Historical context: Spring was a lightweight alternative to J2EE. It started and became popular in financial services because no one wanted the boilerplate hell that was J2EE.

By your logic we should all have stuck to J2EE as that was what the vendor (Sun) was pushing.

Today Spring has become the new J2EE. It’s no longer lightweight. It has a gravitational field at this point. (Except less boilerplate than J2EE because the Spring devs cared about dev ex more than J2EE’s creators did.)

Like J2EE back then, today, once you step out of the “framework == language” mentality, you’ll see there’s a bunch of ways to achieve what Spring does for you. Often with less code, less magic, and faster.

This is not to say Spring is always bad. Use it if it makes sense — for some small teams it may make a lot of sense. But don’t sleepwalk into it because “Java means Spring.” It doesn’t.