Live data from Hacker News

My 20 year career is technical debt or deprecated

blog.visionarycto.com

531–540 of 585 posts

Re: My 20 year career is technical debt or deprecated

#531

> 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…

I remember about 12-14 years ago I was deciding between learning Python vs. Groovy. I didn't know anything about programming then and for some reason at that particular point all articles/advice I found were saying the future is either Python or Groovy. Luckily I ended up going with Python :)

Re: My 20 year career is technical debt or deprecated

#532
Years before this guy got started, I was working in C. Then I moved onto more C, C++, then back to C. Today I'm working in a C++ codebase that compiles to C.

Lisp on the side, plus the Unix cruft that goes with build systems: shell, awk, make, ...

I went through the language churn as a kid. BASIC, assembly languages, Pascal, Modula-2. Studying CS pulled me into C world; all the upper level coursework at that time was systems programming in C on Unix, whether it be compilers, networking, distributed systems, operating systems or computer graphics or what have you.

I didn't think I'd be cranking out C for another 30 years after that, but I also didn't think of any reasons I wouldn't be.

Not everything I worked on is around; but the skills left behind are entirely relevant. There is hardly any technique I ever used that is inapplicable.

Re: My 20 year career is technical debt or deprecated

#535

Earlier quoted context omitted.

> It seems like there's a lot of people in the Java community who still think OO is a great idea If you're coding in Java, you've better think OO is a great idea. It's an object oriented language. And despite having loosely bolted on FP paradigms, that's not really going to change. Although I feel most of the criticism against OO is actually more like a critique of the FactoryBuilderFactoryImpl-style application of d…

> If you're coding in Java, you've better think OO is a great idea. It's an object oriented language. There's plenty of room in Java for nice, clean code. All "java is OO" means in practice is that your code needs to be in classes. Some things that work great in java: - Separates out value types from everything else. Value types should usually be tiny, and have public fields. They should not contain references to any…

You're one step away from loving Clojure... the quasi-official motto is "it's just data", and the resulting code tends to be simple and short.

Re: My 20 year career is technical debt or deprecated

#536
post #299
post #216

Earlier quoted context omitted.

> 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…

> The IDE that's written in Java most likely shares nothing with Java ecosystem parts they "hate" Most vocal java haters I had met were JavaScript programmers who knew basically nothing about Java. Their hate was purely cultural - they learned on discussion forums that they should hate java. But, they had literally zero knowledge whatsoever.

I don't particularly like Java (but I did love it back in 98 or so when I came across it, coming from C++), but it's mostly due to the proliferation of OO monstrosities created by architecture astronauts. The language itself is ok, if too verbose. The JVM is awesome when you use something like Clojure on top of it.

Re: My 20 year career is technical debt or deprecated

#537

Earlier quoted context omitted.

Trying desperately to stay on technical topic here, I'd say the only places where this dichotomy comes up are in cases that are inherently ambiguous and subjective. If something is genuinely proven then everyone does actually accept it. Conservatives and liberals don't disagree on the energy of an electron or the color of the sky. Disagreement occurs over things that can't be proven: how valuable is spending time on…

> If something is genuinely proven then everyone does actually accept it. This is demonstrably untrue. Vaccines. Evolution. Anthropogenic Global Warming.

Vaccines aren't proven compared to things like the color of the sky, are they? Who on earth still believes that after "95% effective against COVID infection and will end the pandemic" turned into whatever this week's version of the story is. COVID shots demonstrated unequivocally that scientists and officials will happily assert things with 100% certainty that are falsifiable, and then continue to assert them even after they've been proven false in front of everyone.

And that's my point - if you intuit that the world is simple and progress easy, you become committed to mental shortcuts like "if a professor/civil servant says it, then it must be true". The education system forces this mentality on you, even. When other (usually older) people who don't take such shortcuts say "but actually that's not true" then it turns into a fight over what reality actually is, which is an enormously complex thing. Rather than engage down in the weeds where they might lose, young radicals prefer to just try and shout down objections. This pattern crops up again and again.

Evolution is an interesting one because in that case it's the creationists who have adopted an overly simplified model of reality and don't want to let it go. Same problem, just different groups. I don't personally think the word "conservative" is all that useful for that reason even though you often have to use it, because it just means trying to conserve things, which as a position is neutral with respect to what's being conserved.

Re: My 20 year career is technical debt or deprecated

#538

Earlier quoted context omitted.

> I want to link it to whoever insisted on adding a useless TextDecoder class in javascript that you have to instantiate, instead of just calling textDecode(…, “utf8”) using a global function like the rest of the standard library. I for one would rather punch the person who proposes such a global function as the only mechanism for conversion, because charset conversion is a reasonable thing to do on chunked partial i…

> I for one would rather punch the person who proposes such a global function as the only mechanism for conversion, because charset conversion is a reasonable thing to do on chunked partial inputs Fight me. Javascript has a separate TextDecoderStream class if you want to support chunked, partial inputs. The TextDecoder class doesn't support streaming input at all. And it never will, thanks to the existence of TextDec…

I see a benefit from having this options container: you can have a central place to set the options and then only pass down the decoder and the user of the function doesn't have to bother with the configuration

Re: My 20 year career is technical debt or deprecated

#539

Earlier quoted context omitted.

> It seems like there's a lot of people in the Java community who still think OO is a great idea If you're coding in Java, you've better think OO is a great idea. It's an object oriented language. And despite having loosely bolted on FP paradigms, that's not really going to change. Although I feel most of the criticism against OO is actually more like a critique of the FactoryBuilderFactoryImpl-style application of d…

> If you're coding in Java, you've better think OO is a great idea. It's an object oriented language. There's plenty of room in Java for nice, clean code. All "java is OO" means in practice is that your code needs to be in classes. Some things that work great in java: - Separates out value types from everything else. Value types should usually be tiny, and have public fields. They should not contain references to any…

That can be OO. I think in general object inheritance is pretty unfashionable, and while it occasionally does solve problems, it's rarely the first thing to reach for. It can be useful in library code though, were you might otherwise end up with significant code duplication.

Overall the move is toward having data classes (basically records) that are light on logic, as well as logic classes that are light on data. I don't think pure functions are necessary or in many cases even desirable in Java, as it largely lacks the tools required for this not to be crippling; although I will concede that any state changes typically ought to remain local.

Factories can be pretty good for separation of concerns, although in many cases it's been superseded by dependency injection frameworks in modern java. I still reach for it every one in a while though.

Also fwiw, game development is a bit of a weird case. It usually reaches for design patterns like ECS. This is in part a data locality optimization, since you can just iterate through all components in a "straight line", but mostly it's for the sake of malloc, which generally doesn't deal well with billions of objects being allocated and deallocated over and over randomly with growing fragmentation as a result. There are many types of programs this or other game dev patterns aren't suitable for.

Re: My 20 year career is technical debt or deprecated

#540
post #538

Earlier quoted context omitted.

> I for one would rather punch the person who proposes such a global function as the only mechanism for conversion, because charset conversion is a reasonable thing to do on chunked partial inputs Fight me. Javascript has a separate TextDecoderStream class if you want to support chunked, partial inputs. The TextDecoder class doesn't support streaming input at all. And it never will, thanks to the existence of TextDec…

I see a benefit from having this options container: you can have a central place to set the options and then only pass down the decoder and the user of the function doesn't have to bother with the configuration

You can always pass a closure.
Post reply on HN