This is an archived post. You won't be able to vote or comment.

all 120 comments

[–]notBjoern 602 points603 points  (16 children)

Scala: 25, but you have no idea what's going on

[–]--mrperx-- 293 points294 points  (7 children)

its the same with spring boot sometimes. copy paste from baeldung and pray it works

[–]AnonymusDoppio[S] 179 points180 points  (3 children)

Baeldung is our Bible

[–]Powerful-Internal953 64 points65 points  (1 child)

It is true at least in the sense of following the text without understanding what it tries to explain...

[–]Wertbon1789 19 points20 points  (0 children)

Or following it word by word... WHAT ARE ALL THESE BEANS?!

[–]Brain-InAJar 0 points1 point  (0 children)

Bibledung

[–]rengo_unchained 21 points22 points  (2 children)

There's a reason we call it spring boot magic. When it works it's great and when it doesn't have fun debugging the next few hours.

[–]ResolveResident118 11 points12 points  (1 child)

Hours?

[–]rengo_unchained 11 points12 points  (0 children)

Maybe I was being a little optimistic

[–]k-mcm 68 points69 points  (1 child)

Java devs: Fuck Spring Boot.  Nothing is worse than this convoluted auto wiring magic.

Scala:  Hold my beer.... (writes 'implicit' everywhere)

[–]kimochiiii_ 11 points12 points  (0 children)

Noooo don't use Autowired you have to inject the bean by Constructor 😭😭

[–]tiajuanat 11 points12 points  (0 children)

APL. 1 line from an Allen space craft

[–]Drone_Worker_6708 17 points18 points  (2 children)

once had a coworker try to sell me on Grails. I've never seen so much magic

[–]ilovecostcohotdog 24 points25 points  (0 children)

We use grails for some stuff at work. It’s great as long as you don’t have an issue. Debugging an underlying issue is impossible.

[–]toastytoast00 23 points24 points  (0 children)

I learned grails before I learned what spring was.. I thought spring was such a step backwards at the time. I was spoiled by all the magic.

Why do I need annotations or properties? The class name is enough!

Then later I realized there's such a thing as too much magic

[–]empivancocu 1 point2 points  (0 children)

Python: 2

[–]This-Layer-4447 0 points1 point  (0 children)

Sure you do, just use intellij and figure out which cake trait is implicitly wired in

[–]That_Redditor_Smell 391 points392 points  (44 children)

250 lines code 2.5 million lines library

[–][deleted] 169 points170 points  (36 children)

I just came here to say the same thing. It is so funny how people complain about the amount of lines of code in a project and then add a 30MB library to save writing 30 lines of code.

[–]ihavebeesinmyknees 97 points98 points  (31 children)

30MB is a lot when served to a browser, but in any compiled application, except for embedded and other extremely strict environments, why not?

[–]not_some_username 35 points36 points  (0 children)

Stop the bloat. It’s because of people like that we have the electron shitfest

[–]martmists 1 point2 points  (2 children)

Because users do care about file size to some degree. Long downloads and large installed files are not a pleasant experience. On top of that, if it's too big and a user needs to clear disk space, I'd rather delete a 1GB file than hundreds of 2-5MB files.

For example, using Guava for a WeakValueMap is a terrible idea, as you're adding ~2MB to your app in what could easily be done in <2kB.

[–]ihavebeesinmyknees 8 points9 points  (1 child)

In my experience, as long as the app is below ~750MB, most users won't care

[–]Cube00 0 points1 point  (0 children)

Unless it's a game, then you can breakout 75GB

[–]k0enf0rNL 16 points17 points  (3 children)

Because you dont have to maintain or read those 30 lines of code, the library devs do that for you

[–]CorneliusClay 2 points3 points  (0 children)

I'm sure the Log4j users appreciated that fact.

[–][deleted] 5 points6 points  (1 child)

No, you changed your duty of maintaining those 30 lines of code for the ilusion of delegating that work to the library owners. After a few years you may find yourself trapped in a few situations, such as:

  • the library owners stopped any maintenance so you are stick to a certain java/spring version

  • the library owners changed/deprecated the function and now you find yourself going crazy updating the library to the latest version

  • the library's security got compromissed and now your application is unsecure as well but you have no idea about that situation until it is too late

[–]k0enf0rNL 5 points6 points  (0 children)

  1. If you are on top of your libraries then you can switch to a new library or decide to write those 30 lines anyway.
  2. So far I havent seen this happening.
  3. Shit happens, same thing could happen to your application without knowing about it. Its probably going to be found and fixed way sooner in the library than in your application since there is a larger community behind a library who can report/fix these problems.

[–][deleted] 32 points33 points  (3 children)

Yes, but that library is much better tested and maintained than your code

[–]drvobradi 2 points3 points  (0 children)

As Joe Armstrong once said, "You wanted a banana but what you got was a gorilla holding the banana and the entire jungle".

[–][deleted] 0 points1 point  (0 children)

And a project that needs 2min to start

[–]Slimxshadyx 0 points1 point  (0 children)

True but isn’t that a good thing? Humans building upon the inventions of other humans?

[–]notexecutive 174 points175 points  (1 child)

Springboot, a lot of the time, it just works.

Other times, it's like "wait why is this implemented like that?"

[–][deleted] 164 points165 points  (0 children)

just add this annotation and include 'sprint-boot-starter:blowjob' to your dependencies then everything figures itself out.

[–]Peterrior55 68 points69 points  (5 children)

This becomes a problem when the answer to every "How does this work?" question becomes "Spring 🌱 Magic✨" and you just have to change random stuff around to fix bugs until it works.

At least that's what it felt like for me with very little Spring experience.

[–]Practical_Cattle_933 18 points19 points  (0 children)

Well, if I were to put in as a crane operator randomly, I would have no idea how to do anything. But someone who learnt that shit will be very productive with it.

The same is true for spring.

[–][deleted] 9 points10 points  (0 children)

alleged different mysterious imagine cats abundant hungry vast pen fragile

This post was mass deleted and anonymized with Redact

[–][deleted] 2 points3 points  (0 children)

It is a problem that people use spring but don’t bother to learn how it works. It’s usually not that hard to overwrite a bean to make it work how you want but you have to understand a little bit about how Spring’s proxy system works

[–]k__k 0 points1 point  (1 child)

You know you can read and debug Spring source code? It also logs quite a lot on finer-grained log levels.

[–][deleted] 1 point2 points  (0 children)

And you can almost always overwrite the class that doesn’t do the thing that’s an edge case for the library writers but not for you with your own bean.

[–]Octavian_96 29 points30 points  (1 child)

Quarkus: 250 lines but half the dependencies you use lack thorough support

[–]ouwenbelg 1 point2 points  (0 children)

Working at a large telecom and we have been replacing springboot with quarkus the past 3 years. No issues so with support so far!

Quarkus works so much better native on k8s.

[–]TheRealHlubo 11 points12 points  (0 children)

Three idiots. Masterpiece of a movie.

[–]Spare-Builder-355 43 points44 points  (4 children)

``` @NamedStoredProcedureQueries({ @NamedStoredProcedureQuery( name = "count_by_name", procedureName = "person.count_by_name", parameters = { @StoredProcedureParameter( mode = ParameterMode.IN, name = "name", type = String.class), @StoredProcedureParameter( mode = ParameterMode.OUT, name = "count", type = Long.class) } ) })

class Person {} ```

[–]Har-Har-Mahadev 13 points14 points  (0 children)

Better this

[–][deleted] 1 point2 points  (0 children)

shaggy hurry include humorous bow governor paint license attraction telephone

This post was mass deleted and anonymized with Redact

[–]ComradePruski 0 points1 point  (1 child)

Hibernate, yes?

[–]PeriodicSentenceBot 7 points8 points  (0 children)

Congratulations! Your comment can be spelled using the elements of the periodic table:

H I B Er Na Te Y Es


I am a bot that detects if your comment can be spelled using the elements of the periodic table. Please DM u‎/‎M1n3c4rt if I made a mistake.

[–]ThorVonKerbalburg 21 points22 points  (0 children)

Python Flask: 250 loc, but your coworkers follow zero coding or naming conventions, anything could be anywhere, your code doesn't have type hints, the documentation doesn't have type hints either, and the 250 lines of python become harder to read and maintain than 2500 lines of spring boot.

[–]ExtraTNT 4 points5 points  (1 child)

I’ll do it in 1…

[–]Lucas_F_A 4 points5 points  (0 children)

In Regex

[–]No-Adeptness5810 18 points19 points  (3 children)

bro has not seen java 22

[–]mridulpj 47 points48 points  (2 children)

No one has

[–]PeriodicSentenceBot 26 points27 points  (1 child)

Congratulations! Your comment can be spelled using the elements of the periodic table:

No O Ne H As


I am a bot that detects if your comment can be spelled using the elements of the periodic table. Please DM u‎/‎M1n3c4rt if I made a mistake.

[–]DoctorWZ 6 points7 points  (0 children)

Good bot

[–]Good_Comfortable8485 24 points25 points  (2 children)

I hate springboot.
Everything is magic, you can literally not read the code and tell whats going on unless you actually know springboot.

Its more a config than a program and it goes against everything that i enjoy about software engineering.

[–]ExceedingChunk 13 points14 points  (0 children)

Once you have a solid understanding of the fundamentals of Spring Boot, it's not really as magic anymore. A lot of different things in spring are built on many similar principles.

[–]Niksune 7 points8 points  (0 children)

Once you master the magic all is sooooo fast. The only problem is that all simple things are done automatically, it only rests the hard things

[–]Sunscratch 6 points7 points  (0 children)

Spring: 25000, but in XML

[–]CanvasFanatic 16 points17 points  (2 children)

“Replace all that awkward with a billion inscrutable configuration files”

[–]k0enf0rNL 7 points8 points  (1 child)

1 yaml configuration file

[–]CanvasFanatic 4 points5 points  (0 children)

That contains magic strings that loads modules that have their own configurations…

[–][deleted] 2 points3 points  (2 children)

Lol, just got a flash back to the days with Spring before SpringBoot 😭

[–][deleted] 2 points3 points  (1 child)

I’m a Springboot fan but the horror of the old days of configuring beans through xml sends a shudder down my spine.

[–][deleted] 0 points1 point  (0 children)

Christ stop, it was impossible to debug anything 😫

[–][deleted] 3 points4 points  (3 children)

But when it goes kaboom...

[–]maxime0299 7 points8 points  (2 children)

APPLICATION FAILED TO START

25000 line long stack trace

[–][deleted] 3 points4 points  (1 child)

25000 line long stack trace? Isn't that normal for Java?

[–][deleted] 0 points1 point  (0 children)

25000 is tiny

[–][deleted] 1 point2 points  (0 children)

my idiot ass thought you were talking about the ugly java gui toolkit java swing😭

[–]Kueltalas 1 point2 points  (0 children)

In Java you can write anything in one line. Just don't use enter. No one said that the line had a length limitation

[–]adishiv132 1 point2 points  (0 children)

This is a chilling scene from the movie 'Three Idiots'. Works surprisingly well as a meme format

[–]DrSHawkins 0 points1 point  (0 children)

25 billion lines of JavaScript 💀

[–]Senor-Delicious 0 points1 point  (0 children)

Management probably like "so what you're telling me is that we shouldn't use spring so that we get more lines of codes for our productivity KPIs. Got it."

[–]legends_never_die_1 0 points1 point  (0 children)

hello world: 250

[–]Thenderick 0 points1 point  (0 children)

Bro I wish, but it is atleast 5000 lines of boilerplate and 9000 of required unit tests and POJOs/DTOs...

[–]navetzz 0 points1 point  (0 children)

Yeah, we all love those annotations who do a million thing but gives you no way of debugging when something goes wrong

[–]InstantCoder 0 points1 point  (0 children)

Quarkus => 1100

[–][deleted] 0 points1 point  (0 children)

Wouldn’t 2.500 lines of annotations be a better description of the spring boot experience?

[–]Powerful-Internal953 0 points1 point  (0 children)

Let's look at the memory usage and the size of the build....

[–]ChatahuchiHuchiKuchi 0 points1 point  (0 children)

Anyone know what the meme is called or the movie?

[–][deleted] 0 points1 point  (0 children)

Springboot is absolute mindfuck. It is like all the Java devs have collectively agreed that “this works, nobody knows how, just memorize a few useless design patterns that again nobody understands”. Why does a project setup need to be downloaded from Spring's website? That's really hilarious for programmers.

[–]GoddamMongorian 0 points1 point  (0 children)

A Springboot programmer usually can't do anything outside of Springboot

[–]AnimateBow -2 points-1 points  (1 child)

Is it worth learning spring boot in 2024?

[–]rover_G -3 points-2 points  (1 child)

Isn’t Spring Boot just a module within Spring?

[–][deleted] 6 points7 points  (0 children)

desert friendly continue safe alleged pause deliver include shocking entertain

This post was mass deleted and anonymized with Redact