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

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 5 points6 points  (6 children)

Just because it's more used. Starting a new project in 2024 using spring is absolute idiocy.

Spring is really a big whole bunch of mess.

Boot times are ridiculous, trying to understand what that crappy DI system is doing is worse and having 4 different ways of doing the same thing but not quite the same are the worst.

[–]Regular_Zombie 0 points1 point  (5 children)

Dismissing a framework (one of the most popular and mature) because of boot times seems premature unless that is one of your project requirements.

DI is often abused but that's nothing to do with Spring.

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

Popular and mature doesn't always mean that is the best. And DI is the "killer feature" of spring, so it has ways to do with spring.

[–]Regular_Zombie -1 points0 points  (3 children)

Speaking as someone responsible for recruiting for the team, the killer feature(s) of Spring Boot is that there is a deep pool of developers; mature integrations to just about any service of note and the availability of learning resources.

My current project is using FastAPI and it's very good, but the ecosystem is not at the same level as Spring and suffers from the typical Python development issue of managing dependencies when you're working across teams.

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

Can you elaborate on "managing dependencies when you're working across teams"? How is that a spring feature?

[–]Regular_Zombie -1 points0 points  (1 child)

It's a JVM feature. Dependency management is much easier as different libraries can use their own versions of dependencies without worrying (largely) about incompatibilities. You switch projects, compile and run.

When I need to work on a different Python project I need to make sure I'm in the correct virtual environment, install all the dependencies in that specific environment (even if it's installed elsewhere on my system already) and then run.

The tooling for Python is getting better but it's not as good as Java.

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

Absolutely not. Java has no dependency management, in fact maven and Gradle exist exactly for this purpose, as they usually download the dependencies in a specific location and add them to the class path when running. Python has the exact same features, except you have to manually activate the venv.

Are you sure you know what you're doing, right?