(no title)
banbangtuth | 1 month ago
I am a TypeScript/Frontend guy by trade, but I always admire languages like Go. It seems like a simple language that I can write once and maintain forever or once in a blue moon. Everytime I want to write something in TypeScript and then I pull bunch of crazy dependencies, I began to question if it is worth it? These days I am just pulling React, TypeScript, and just do CSS. If I need a dependency I'll try to just code it from scratch with LLM. Is it realistic to expect, React, TypeScript to be maintenance free forever? Since those are basically just abstraction on top of HTML/JS/CSS which are rock solid.
Ideally the home-baked software that I build will be just using very simple technologies, and I can just vibe/LLM code all the dependencies, or worst case just vendor it, and update it once a year or longer.
userbinator|1 month ago
hulitu|1 month ago
no. Pure win32, maybe, but as soon as vcredist or DirectX enters the scene, one is hopeless.
gyomu|1 month ago
Yes, but you have to put a bit of effort to make it so. For example, if you write your software as a ROM for an early game console (SNES/GBA/etc.), you can probably expect it to run for a very long time, as there will likely be people who want to play Final Fantasy 6 and Pokémon Silver for as long as computers are around.
That's one extreme, but you don't have to go that far. I have some HTML/CSS/JS projects (meant to run locally) from the 2000s that still work totally fine today. Same for Python code from 2010, etc. I wouldn't be surprised if those still worked just fine 50 years from now.
All I do is write code that is meant to run locally first, with very minimal dependencies, only choosing to use conservative/proven technologies.
1313ed01|1 month ago
(In practice I edit my code outside of DOSBox, and sometimes I use cross-compilers, but it is good to know that there is a fallback.)
close04|1 month ago
Is Final Fantasy 6 seeing a lot on new players today? Old games are played more by the people who enjoyed them when they were new. Even the landmark games are easily forgotten and younger players will never bother when they have so many modern choices.
pseudohadamard|1 month ago
Someone once asked the author of an at the time widely-used security utility why it hadn't been updated since 1996, and whether it was abandonware. His response: "No, some people just get it right the first time". Just had a quick check and there's a single CVE for it from 25 years ago, possibly from a third-party mod rather than the original code.
Liftyee|1 month ago
Anecdata: My Wii (2006) console has had a few hardware issues I've fixed, but the software is just as responsive as a decade ago (though many external networks/servers have shut down). Homebrew community is very much alive and has expanded its utility.
banbangtuth|1 month ago
On the frontend world, the browser so far has been super reliable in maintaining backwards compatibility of HTML, CSS and JS for years and years.
hulitu|1 month ago
From an engineering perspective, yes. From the current mindset in SW development (reinventing the wheel every couple of years) no. Almost all current SW is throw away software. For most of it you need a particular version of an OS, particular versions of libraries and a particular planet alignment, just to be able to run it.
veqq|1 month ago
coffeefirst|1 month ago
You can never escape security patches, but your theory of limiting to a free stable dependencies usually works really well for me.
WillAdams|1 month ago
None of the Inkscape devs are invested in Freehand's keyboard shortcuts and working techniques, Graphite doesn't even work with a stylus, Cenon is clunky beyond words and hasn't been upgraded in decades last I checked, Krita is pixel-oriented, and none of the note-taking programs really work for technical drawing/vector editing....
thephyber|1 month ago
I agree that the wider NPM ecosystem is a morass of slop and that is technical debt for anyone who wanders into that minefield. But the solution isn’t to assume that there are no bad / unmaintained GoLang libraries. It’s to realize that maintenance, quality, and sustainability need to be first class attributes of every library you choose to allow your project to depend on.
Your proposal will yield lots of LLM near-slop (basically code that works given the original prompt requirements, but will fail to continue working well once some requirement changes, some original assumption is violated, some browser changes are implemented.
Ultimately, the sustainable solution is to have a subset of NPM libraries be extremely high quality, vetted via robust tests and security audits, and are visibly different than the average slop on NPM. Basically a very visible delineation between untrustworthy code and very trustworthy code. Then you should be able to tell the LLM to use only dependencies from that vetted subset.