Ask HN: Who is building “long lived” software?
As a web e-commerce developer, I'm tired of building software that feels like it has a lifespan of 6 months before the next framework/business model/org change comes along. Is anyone building software with a lifespan of greater than say 5 years? Would I need to get into hardware/embedded systems if I wanted to build something that was longer lasting? Any other developers that have made the switch?
23 comments
[ 2.9 ms ] story [ 59.5 ms ] threadTwo systems I worked on that had over 500k users each, have both been switched off and are not longer 'alive' on the interwebs. One for internal political reasons, the other was absorbed into the main portal for the parent company. (Some of my code still runs internally, but the public-facing stuff is drastically different)
And my other web-apps were internal/intranet web-applications. That said, they're still running and useful - even 12-15 years on... so it's not all bad.
But the public web (particularly e-commerce related sites) seem to have short lives these days. Perhaps Open source might be your better bet if you want to leave some sort of legacy.
I do have an embedded systems background, but the technology for this application is a step higher-level than that. It's 99% Python3 running on a network of Raspberry Pis.
im quite envious of them at times when Im plugging away doing Java development as they have a legacy that most developers wont have
Gave a lot of thought to what languages are future-proof and decided to stay away from the whole Microsoft suite after seeing many perfectly OK apps written for Visual Basic having to be scrapped.
In the end I went for C++ for speed, portability and longevity. I'll bet there will still be backwards-compatible C++ compilers in 50 years which means my code will still be usable.
Since we use DDD, we can swap out technologies but keep our core business logic.
I used to work on helicopter avionics. I'd be surprised if the projected service life of the software was less than 30 years.
Downside: everything is amazingly old-fashioned, even during prototyping.
Pick your tech well, and you can pull it off though. S3stat has major bits of heavy lifting in place that I wrote in 2006. There are even older infrastructure pieces such as an ActiveRecord-style data layer that I pulled across from another project I built in the early 2000s.
A lot of that stuff was written in C# to target .NET 1.1. And it still works today because Microsoft understands the value of backward compatibility.
I feel your pain though. I just watched Amazon shut off one of my Lambda projects because it was running an old, deprecated, version of Node.js. Old, meaning, I kid you not, One Year Old.
Sorry for the self-promotion, but I wrote this article after being frustrated with the "iPhone mindset for application development": it’ll be obsolete in 6 months anyway, so who cares?
http://www.programmerfu.com/2017/03/17/the-everlasting-app.h...
Right now I'm working on ways to extract the meat of my applications into plain, sustainable code. Then I can still use the new hotness when it's appropriate, but in a way that doesn't lock me in.
It's not that CSS/HTML will stop rendering. So you can just stay with 5 year old framework if you want. e.g.: old Twitter Bootstraps and old Angulars will still work, so if you've written code in that, don't touch it. But people get excited about updating, because they like to get features they won't be using.
The long-lived software is hard, and make sure you don't leverage yourself on the other end. Writing stuff to survive many years can be stressful. And you'll see 10-year old hacks and workarounds in the code as well. Just look at some Linux/FreeBSD kernel code. You can also read what Raymond Chen is writing about Windows kernel hacks to make customers happy.
But yeah: embedded, and everything infrastructure related should be long-lived. Even mobile: when writing www.sensorama.org I've mostly used ObjC stuff even though Swift existed for 3+ years now I believe. And all libraries and proprietary apps are and will be ObjC for many, many years. There's just not enough reasons to upgrade.
http://standardnotes.org
https://news.ycombinator.com/user?id=mobitar
Also, the Space Jam website is up and unmodified since 1996.
Notably, I still get customer support enquiries from people running the binaries I published in 2003 - literally an EXE installer they found on an old magazine cover CD-ROM or outdated shareware website. And in some cases, the official binary people are buying from my site today is completely untouched since 2011, and still sells - just not at the levels of 2006. (But I don't recommend that, I'm in the process of updating & releasing new versions of all of them.)
Wow, that's really cool, Kohan. Do you also sell products developed in Xojo, or do you only use it for internal projects of yours?