3 ms·
I'm still traumatised by Java from my earlier career. So many weird patterns, FactoryFactories and Spring Framework and ORMs that work 90% of the time and the 1
by theshrike79 1y ago
I'm still traumatised by Java from my earlier career. So many weird patterns, FactoryFactories and Spring Framework and ORMs that work 90% of the time and the 10% is pure pain.
I have no desire to go back to Java no matter how much the language has evolved.
For me C# has filled the void of Java in enterprise/gaming environments.
- arethuza 1y agoTo be fair those "weird patterns" weren't really Java itself but the crazy culture that grew up around it when it became "enterprise".
- Orygin 1y agoPlus it seems hopeful to think you'll be only working with "New java" paradigm when most enterprise software is stuck on older versions. Just like python, in theory you can make great new green field project but 80% of the work in the industry is on older or legacy components.
- gf000 1y agoYeah, and you might just be given a mainframe with vacuum tubes.. Like, there are 10 million Java devs, there is a whole lot of completely brand new development going in any language, let alone in such a huge one.
- lock1 1y agoI guess it's reasonable to be hopeful as a Java developer nowadays. Modern Java communities are slowly adopting the common FP practice "making illegal states unrepresentable" and call it "data oriented programming". Which is nice for those of us who actively use ADT. I no longer need to repeatedly explain "what is Option<?>?" or "why ADT?" whenever I use them; I could just point them to those new resources. Hopefully, this shift will steer the Java community toward a saner direction than the current cargo cult which believed mutable C-struct (under guise of "anemic domain model") + Garbage Collector was OOP.
- vips7L 1y ago> most enterprise software is stuck on older versions This simply isn’t true. 60% of the ecosystem has moved beyond Java 8 in the last poll.
- CharlieDigital 1y agoC# is a highly underrated language that has evolved very quickly over the last decade into a nice mix of OOP and functional. It's fast enough, easy enough (being very similar now to TypeScript), versatile enough, well-documented (so LLMs do a great job), broad and well-maintained first party libraries, and the team has over time really focused on improving terseness of the language (pattern matching and switch expressions are really one thing I miss a lot when switching between C# and TS). EF Core is also easily one of the best ORMs: super mature, stable, well-documented, performant, easy to use, and expressive. Having been in the Node ecosystem for the past year, there's really no comparison for building fast with less papercuts (Prisma, Drizzle, etc. all abound with papercuts). It's too bad that it seems that many folks I've chatted with have a bad taste from .NET Framework (legacy, Windows only) and may have previously worked in C# when it was Windows only and never gave it another look.
- theshrike79 1y agoI'm still sad that Silverlight[0] (and Moonlight) died because people hated MS so viscerally back then. It was actually really good for the time and lightyears ahead of whatever Flash was doing. But people rather used all kinds of hacks to get Flash working on Linux and OSX rather than use Moonlight. [0] https://en.wikipedia.org/wiki/Microsoft_Silverlight https://en.wikipedia.org/wiki/Microsoft_Silverlight
- kstrauser 1y agoI was so glad it died. It was a weird proprietary replacement for Flash, which itself was weird and proprietary, except the new one was owned by a huge company that publicly stated they wanted to crush Linux and friends. A big chunk of their strategy at the time was around how to completely own the web. I celebrated every time their attempts failed.
- mhast 1y agoAs someone who developed in it at the time I found the reason it died was because they made new, slightly incompatible, versions every new Windows release. After a while people got tired of doing updates.
- mohaine 1y agoThat isn’t Java, but spring. That said, if on the JVM, just use Kotlin.
- aeonik 1y agoOr Clojure, Scala, Groovy. and with the GraalVM, JavaScript/Node, Python, R, and Ruby. among many others.
- lisbbb 1y agoI spent untold hours and years mastering inversion of control and late-binding and all those design patterns that were SOOOOO important for interviews only to never really utilize all that stuff because once the apps were built, they rarely, if ever, got reconfigured to do something besides the exact thing they were built for. We might as well have not bothered with any of it and just wrote modular, testable non-OOP code and called it a day. After just about 25 years, I look back at all the time I spent using Spring Framework, Struts, and older products and just kind of shake my head. It was all someone else's money making scheme. I'm also reminded about the time that Tomcat stopped being an application you deploy to and just being an embedded library in the runtime! It was like the collective light went on that Web containers were just a sham. That didn't prevent employers from forcing me to keep using Websphere/WAS because "they paid for that and by god they're going to use it!" Meanwhile it was totally obsolete as docker containers just swept them all by the wayside. I wonder what "Webshere admins" are doing these days? That was once a lucrative role to be able to manage those Jython configs, lol.
- figassis 1y agoThis, Go came and I just have no desire to go back to those languages spawned from hell that force fed me horrible patterns and called it best practices. Go is amazing in that it lets you tell the machine what you want, simply and you can easily verify that that is indeed what the machine should be doing. Regarding defer, idk about other, but I never assumed it was a gotcha, you read the go docs once and all is just clear and you don’t make most mistakes that others claim are footguns.