Re:Leaving Haskell Behind
by systems_glitch on Thursday August 24, 2023 @11:00AM
(#37249581)
These are job security features :P
Seriously though, the hours spent fighting dependency injection and Hibernate issues alone, when working on a really big Java project, could've been a full-time job.
For maximum fun, I once worked on a large ERP system that started out as a Struts 2/Hibernate 3/Jetty project and had an entire Rails app bolted on using JRuby. Some of the stuff in the JRuby side was injected thru Spring. ActiveRecord had to talk through Hibernate.
Re:Leaving Haskell Behind
by patmorgan23 on Thursday August 24, 2023 @01:55PM
(#37252322)
Gross
Re:Leaving Haskell Behind
by systems_glitch on Thursday August 24, 2023 @02:47PM
(#37252984)
I know, right? Hundreds of millions of dollars flowed through that system every year. I got the ball rolling on killing that design with fire after we hit one of the pathological limits in IIRC Hibernate 3 and thread safety.
I agree with some of that criticism (although I haven't had issues with having to manually delete files - if you do, I suspect it's a project that hasn't been set up with a proper maven/gradle setup but where all the build info is in some IDE config. that's an antipattern at this point but used to be very common).
But I don't think it's necessarily about the tooling.
And yes, Hibernate is just horrible.
Everything is in Maven and works fine in CI, which definitely does not use idea. But in some situations Idea believes the pom isn't as fresh as its rendition, unfortunately. I can live with some caching, but everytime that happens and the "clean cache" option doesn't work, I weep.
I don’t tend to run into that. But you should be able to fix it right clicking the pom and choosing Maven -> Reimport.
The number of times I actually needed to clean my cache I could probably count on one hand over the last 10 years.
- The community leans a lot on configuration over code, and that's annoying. Sometimes, a hardcoded string in your conf could have been a hardcoded string directly in the code.
- Sometimes, dependency injection systems are so abstract that knowing which class is depended on in a specific runtime instance becomes a pain in the ass.
- Your idea just won't load class x, the obvious "clean cache" doesn't work as advertised, and you're back to stack overflow to know which couple of file you need to get rid of. That stuff happens just often enough for you to have a lingering feeling of annoyance, but not often enough for you to remember the exact files.
- Sure, idea is great. But in <other language> I was fine with just vim. The LSP was a great help, not a lifesaver.
- Unit testing is great. Annotations are great. Don't you enjoy that unit test class with a dozen annotations spanning 20 lines just above?
- Hibernate. Spring too, while we're at it. Not sure whether you consider this one squarely fits the tooling box.