Live data from Hacker News

My 20 year career is technical debt or deprecated

blog.visionarycto.com

281–290 of 585 posts

Re: My 20 year career is technical debt or deprecated

#281

> My entire career is now technical debt, or the code has been deprecated. My fellow dev often laugh when I tell them that instead of looking at all the long dead techs that are not useful to me anymore, my way to feel good is to look back at all the long dead techs that I didn't bother to learn . And, geez, is the graveyard huge. > Java Applets were also a big thing once upon a time. They were slow, and having the c…

> And most devs hating on Java are using an IDE written mainly in Java (all the JetBrains ones): the irony of that one gives me the giggles. Guilty as charged! I hate using Java because everything written in java seems to blend into the same indistinguishable swamp of classes with meaningless names, full of methods that constantly find new and interesting ways to obscure what your program is actually trying to do. De…

Does anybody know where I can find a good, substantiated, critique of the common Java coding patterns, including on Android? This niche is such a huge mess that simply documenting all the bad things in a single codebase (along with explanation why they're bad) took me a month. It's tiring and mentally draining to do this: every other line of code you read makes you go "Why. Please, just tell me why anybody could ever think good code should look like this". Worse yet, there's hardly a discussion to be found about these things - it's "Uncle Bob" & co and the horde of their followers all the way, no dissenters. It looks like an echo chamber so hermetic that the most basic principles like DRY or YAGNI have a hard time penetrating it.

What is the most painful for me with all this, other than it being 99% self-inflicted and not caused (you could argue it's encouraged by it, but the ultimate cause is the culture) by the language, is the fact that it has infected Kotlin code. Kotlin was built to increase expressive power of the language, doing away with multiple limitations of Java and offering lots of modern-ish features on top of it. The community looks split in half: the Kotlin community tries to get the most out of Kotlin, and the Android community that does anything in their power to make Kotlin back into Java, writing code as if the limitations were still in place and new features didn't exist. I know that the churn and "production readiness" of things on Android generally favors a more conservative approach, but it's still too much. I cry tears of blood every other code review I'm forced to do.

If there's a single, definitive resource that I could point my coworkers to and eventually turn it into enforced guidelines, the author can count on a serious donation from me.

Re: My 20 year career is technical debt or deprecated

#282
post #235
post #230

Earlier quoted context omitted.

I feel like if Java had immutability by default it would be such a better language to work with. It is so hard to determine what actually gets modified where in a large Java codebase.

Too bad immutability breaks the quite-ubiquitous-in-JVM-land Bean spec (and I wonder what one was smoking before drawing that spec). I think having proper sum-types with pattern matching would have also made it a much better language.

Java now has sum types (sealed types) with exhaustiveness checking, pattern matching for records, and more general destructuring in the works for classes.

Re: My 20 year career is technical debt or deprecated

#283

Earlier quoted context omitted.

You're describing WSL2, but the post you quoted explicitly said WSL1.

But is WSL1 supported by the POSIX layer? I don't think so. I think it uses some of the mechanisms built for the POSIX layer but I think it is a separate "personality".

See my post to a peer; this comes from the DEC Mica project, the cancelation of which directly led to Windows NT.

Windows was designed in part as a UNIX kernel.

Re: My 20 year career is technical debt or deprecated

#284
post #216

> My entire career is now technical debt, or the code has been deprecated. My fellow dev often laugh when I tell them that instead of looking at all the long dead techs that are not useful to me anymore, my way to feel good is to look back at all the long dead techs that I didn't bother to learn . And, geez, is the graveyard huge. > Java Applets were also a big thing once upon a time. They were slow, and having the c…

> And most devs hating on Java are using an IDE written mainly in Java (all the JetBrains ones): the irony of that one gives me the giggles. The IDE that's written in Java most likely shares nothing with Java ecosystem parts they "hate" (I'm guessing all of the EJB, applets an general 90's Java enterprise stuff). Only irony here is you thinking it is. The 90's Java was a thing to hate. Running fat complex app server…

Ironically, deployment, management, monitoring and security of a single (even clustered) EJB app server was a much more straightforward affair that today's cloud based Rube Goldberg machines that I encouter in practically every "modern" enterprise app.

Re: My 20 year career is technical debt or deprecated

#285

Earlier quoted context omitted.

People don't hate Jira because it's written in Java. They don't know or comprehend that something like Jira or Confluence or Minecraft can be written in Java.

Jira does, somehow, faintly smell of Java. There's just something about how slow it is, and how maximalist it is in supporting every whimsical idea that any rich corporate customer has ever asked of them. No matter how poorly the request blended with everything else Jira does. Mind you, I've only ever used Jira when its been setup, poorly, to fit in to a badly designed "scrum" process. People say it can be usable if…

Java isn't slow, quite the opposite in fact.

https://www.techempower.com/benchmarks/#section=data-r21

Re: My 20 year career is technical debt or deprecated

#286
I kinda find the premise here to be flawed. To me, technical debt is stuff that you do intentionally that you know is bad and will have to be fixed at some point, but you've decided the trade off of shipping sooner is worth it.

Sure, all code rots, frameworks and even languages come and go. That's not technical debt, to me, though.

Put another way, if everything is tech debt, then there's really no point to having the term at all.

Re: My 20 year career is technical debt or deprecated

#287
When I look at the list of "technologies" the author invested in learning ... no surprise it's all technical debt or deprecated: all the things he lists are completely superficial and have obvious short-term, "I can make money now with this stuff" flavor to them.

Had the author invested in learning stuff like math, physics, cryptography, advanced data structures and algorithms, functional programming theory, 3d programming, compiler theory, database theory, etc...

None of it would be obsolete today, and all of it would be almost immediately applicable in any language that happens to be the flavor of the day at a given point in time.

Let that be a lesson to all of the folks who become extremely proficient in the latest react-like fad javascript framework: in 10 years time, all your knowledge will be useful for one thing: maintaining and patching old crumbling code piles that no one wants to touch.

Do yourself a favor instead and go learn timeless things that will still be completely relevant 20 years from now. Then spend a minimal amount of time learning how to apply it in whatever language/framework of the day is fashionable at your job.

Re: My 20 year career is technical debt or deprecated

#288
post #230

Earlier quoted context omitted.

I feel like if Java had immutability by default it would be such a better language to work with. It is so hard to determine what actually gets modified where in a large Java codebase.

Java's records are immutable.

And most shops likely aren't using a JVM new enough to use records, and it will be a while before they are able to upgrade. And even then, most 3rd-party libraries out there won't use records, because they want to be compatible with the JVMs their users use. Hell, most popular libraries available on Maven Central are compiled with JDK8, or, at best, JDK11.

Aside from immutable instances, it would be nice if 'final' was the default, as well.

Re: My 20 year career is technical debt or deprecated

#289

> My entire career is now technical debt, or the code has been deprecated. My fellow dev often laugh when I tell them that instead of looking at all the long dead techs that are not useful to me anymore, my way to feel good is to look back at all the long dead techs that I didn't bother to learn . And, geez, is the graveyard huge. > Java Applets were also a big thing once upon a time. They were slow, and having the c…

> And most devs hating on Java are using an IDE written mainly in Java (all the JetBrains ones): the irony of that one gives me the giggles. Guilty as charged! I hate using Java because everything written in java seems to blend into the same indistinguishable swamp of classes with meaningless names, full of methods that constantly find new and interesting ways to obscure what your program is actually trying to do. De…

I cannot dislike "clean architecture" enough.

Re: My 20 year career is technical debt or deprecated

#290
post #196

Earlier quoted context omitted.

Who are the people who belong to "I hate Java" and "I love Jira" sets? I'd love to see that Venn diagram.

Do people who loves JIRA exist for real?

When the alternative is Azure Devops...
Post reply on HN