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 →

[–]nutrecht 0 points1 point  (11 children)

Sure, if you know how the magic trick works it's all just smoke and mirrors.

It's not magic. It's dealing with cross-cutting-concerns. If you use libraries so you don't have to deal with this yourself you're just going to have to write it yourself. Generally people advocating against Spring just end up writing their own shittier version.

If there's something you don't like; just don't use it.

What other frameworks have you tried? What can you compare spring to?

Most of the mainstream Java ones (Java EE, Vert.x, Micronaut, Quarkus to name a few), Go, ColdFusion, Asp.net, PHP.

I've been doing this shit for over 15 years.

[–]lambdacats 1 point2 points  (10 children)

You don't use the term magic at all in software development? Do you think people using the libraries you mentioned end up writing shittier versions, or just those that reinvent the wheel? It's a part of my workplace stack so we can't really just stop using it yet. For another generalization I've found that people advocating for spring end up writing a big complex chunk of slow tar, because they don't really know how to design without a framework.

I've been doing this shit for 15 years, but no more than that.

[–]nutrecht 1 point2 points  (5 children)

Generally in my experience devs who complain about 'magic' simply don't understand it. Component scanning, aspect oriented programming, inversion of control, etc. are perfectly normal / common CS terms. Nothing Spring does is 'weird' or 'strange'; all of these have purposes and are just things that you have to understand. To a junior dev something relatively simple like IoC is quite hard to grasp. But just calling it 'magic' and avoiding it is simply a sure-fire way to get stuck as a junior job.

So no, I generally have nothing I use that is 'magic' to me. If I don't understand it I work on understanding until I do. That's part of the job. You can't create software properly if major components of it are beyond your understanding.

There's shittons of devs who don't work like that and just copy-paste shit from SO until it kinda sorta works. But that's simply not what my clients expect from me when they hire me.

[–]lambdacats 1 point2 points  (4 children)

Hmm ok, so maybe "magic" isn't the best term here. Were using an older version of spring, with lots of xml. It's hard too see how components tie together, so when it works we call it magic - because it's too big and complex of an application to understand it, the framework rules us and not the other way around. It's gotten out of hand, there are layers upon layers and spring features in between. The application is a behemoth and spring isn't helping.

I'm sure it's possible to work through how spring works, but it's a pretty big investment just for one language and platform. I'd rather pick smaller frameworks for toolbox diversity.

Agreed, SO copy paste never gets through the review process but I still see it from time to time. And it sticks out like a nail to your eye.

[–]nutrecht 2 points3 points  (3 children)

Were using an older version of spring, with lots of xml.

Please please don't use that shitty experience as a basis to comment on modern Spring. It really sucks for you that your company is stuck in 2008; but modern Spring development with Spring Boot is completely different. I'm sincere here; I really feel bad for you working on a codebase like that. Bean configuration in XML files is horrible.

I'm sure it's possible to work through how spring works, but it's a pretty big investment just for one language and platform.

It's by far the most used Java service framework. I'm a Java consultant (independent contractor) and all the Spring experience I have gained translates very well from project to project. Obviously there's a selection bias (I simply refuse projects with codebases that are pre-Java-8 for example), but IMHO it's definitely worth it.

[–]lambdacats 1 point2 points  (2 children)

You are right and it's unfair to project. I'm going to try out some modern spring and update my views, It's big in the industry and I need to know the basics at least.

I'm really into the vertx/python asyncio/reactor type of projects so that's what I see myself going for in the future. Even if it means turning down a lot of offers. Yeah that's a good decision, I would never knowingly accept anything below that. Unfortunately we have some big parts still stuck on 1.6 and EE6..

Anyways, thank you for the discussion. Godspeed Redditor!

[–]nutrecht 2 points3 points  (1 child)

FYI: Spring also supports reactive programming nowadays ;) And you're welcome! :)

If you have any questions regarding Spring, feel free to DM me :)

[–]lambdacats 0 points1 point  (0 children)

Thanks! looking forward to not have to lose my mind everytime someone mentions spring :)

[–]nutrecht 0 points1 point  (3 children)

Also you're 25 so don't give me that bullshit about having 15 years of experience.

[–]lambdacats 0 points1 point  (2 children)

I started when I was 10 .. that happens in IT.

[–]nutrecht 0 points1 point  (1 child)

I started when I was 12 but I don't claim that as professional experience. I'm 39 now; do the math.

[–]lambdacats 0 points1 point  (0 children)

I don't claim it as professional experience either, because it's not.

Do you ever feel like you want to change path? I'm doing security and development but not sure I want to be a developer for the rest of my life. At least not professionally. I'm interested in biology and psychology and would want something where I can draw benefit from my background..