Slashdot Mirror


Ask Slashdot: A Development Environment Still Usable In 25 Years Time?

pev writes: I'm working on an embedded project that will need to be maintainable for the next 25 years. This raises the interesting question of how this can be best supported. The obvious solution seems to be to use a VM that has a portable disk image that can be moved to any emulators in the future (the build environment is currently based around Ubuntu 14.04 LTS / x86_64) but how do you predict what vendors / hardware will be available in 25 years? Is anyone currently supporting software of a similar age that can share lessons learned from experience? Where do you choose to draw the line between handling likely issues and making things overly complicated?

257 comments

  1. OpenVMS by nospam007 · · Score: 3, Interesting

    It's been around for almost 40 years and most trains and lots of factories are still running on it.
    It runs on almost everything since the original hardware has been discontinued years ago.

    1. Re:OpenVMS by danbob999 · · Score: 4, Funny

      Yeah, use something already outdated to make sure that no one evens remember it in 25 years.

    2. Re:OpenVMS by Anonymous Coward · · Score: 4, Insightful

      Outdated... proven... mature... what's the difference?

    3. Re: OpenVMS by Threni · · Score: 1

      Which OS is handling your SMSs?

    4. Re:OpenVMS by Anonymous Coward · · Score: 2, Informative

      You are right. Good choice.

      Linux is not multi-year support, it use to be all inclusive, exspecially with old equipment. I have equipment that is 15 years old, and cannot even use GCC3to recompile because it has ONLY 128MB of memory! GCC requires it to be all in memory are the same time, no pipes or swap! Add to it, cannot even try a system that was compiled after '05 because everyone turned on required MMX, even in their "386" or "486" versions. If your software uses the name 386, support the limits of the hardware on 386.

      JAVA is gone too. We have equipment with JAVA interfaces take cannot be used with current JAVA, so much for write once and run everywhere! The vendors does not even offer a fix. Just toss-it, buy something else.

      At work I use a language (RPG) that was developed in 60's to get insurance companies off of punch cards. IBM has basically guaranteed support for future version of their hardware. Over the years, we have seen grow new hardware, new OS, new... and the old code just keeps running. Even found third parties created runtimes on other OS, including Windows (baby/400) and Unix (Unibol).

    5. Re:OpenVMS by Anonymous Coward · · Score: 4, Interesting

      Why did the stupid parent comment get modded up to 5, Insightful?

      There are huge differences between software that is outdated, software that is proven, and software that is mature.

      Outdated software is old, and isn't being actively maintained. It's a fossil, frozen in time. See CP/M.

      Outdated software isn't necessarily proven. It may have had stability problems in the past, and these were never fixed because the system was superseded with better technology. See Windows 95.

      Mature software is independent of age. Newly-written software can mature quite rapidly, if developed using the proper techniques and by talented developers. See Dragonfly BSD.

      Then there is software like FreeBSD, which is proven and mature, but not outdated.

      If you can't comprehend the differences between these concepts, then you'd best be keeping your mouth shut, son.

    6. Re:OpenVMS by K.+S.+Kyosuke · · Score: 1

      There's also Maxima (formerly Macsyma) and REDUCE, both of which started in late 1960s or something like that.

      --
      Ezekiel 23:20
    7. Re:OpenVMS by TheGratefulNet · · Score: 1

      openvms? is that really a thing?

      (I worked at DEC for a number of years and loved vms back then. on a vax. BACK THEN.)

      how can it be relevant, still? who today even knows the name DEC anymore? recruiters even tell me to remove my DEC company experience from my resume.

      I knew vms before unix. unix was hard for me since it was different enough from vax/vms. but once I left DEC I never really touched vms again.

      I seriously ask - how is this still relevant, other than for legacy sw that someone refuses to let go of?

      --

      --
      "It is now safe to switch off your computer."
    8. Re:OpenVMS by Virtucon · · Score: 2

      who today even knows the name DEC anymore? recruiters even tell me to remove my DEC company experience from my resume.

      I do and at last count I have 10 customers running VMS/OpenVMS systems. Your recruiters are idiots. Yes it's not a growth market but if you have experience with these legacy systems you can still make a living in the niche marketplace.

      --
      Harrison's Postulate - "For every action there is an equal and opposite criticism"
    9. Re:OpenVMS by Anonymous Coward · · Score: 0

      Yup. Not too long ago (previous contract), I was supporting a system designed built on VMS and continually updated since the mid seventies. I offered to translate the whole thing, maybe a few hundred kSLOC, to C (their current development environment) to save on labor costs. While agreeing that it was a good idea, they ha no directive from the customer to do so.

      I have done this on a number of jobs, so I don't understand what the big deal is. All of the embedded system work that I have performed has been very generic and to strict guidelines. Coding is almost an afterthought as the real work is the system design and requirements. Once that is done and (well) documented, anyone with a Teach Yourself Programming in a Week book can pick up the job in any new environment.

    10. Re: OpenVMS by Anonymous Coward · · Score: 0

      HP-UX

    11. Re:OpenVMS by DoofusOfDeath · · Score: 0

      Why did the stupid parent comment get modded up to 5, Insightful?

      Good Heavans, man, are you trying to make us all deaf with the sound of that whoosh???

    12. Re:OpenVMS by Anonymous Coward · · Score: 0

      Java was never write ones run everywhere. I was there during the first days of Java when the marketing department of Sun was yelling that on their top of their lungs. Every manager and clueless developer believed it.

      But from day one we had issues that JVMs on different operating systems would be too different that applications where simply not portable. Then each version of the JVM required a different version of the application (no forward or backward compatibility, and you didn't have #ifdef either). Then the availability of the JVM was very limited, we had a lot more different operating systems in the 90's.

      All of this with a whole new layer of library version/dependency hell. And the windows 3.1/mac os way of having to specify how much memory an application requires before you start the application.

    13. Re:OpenVMS by Anonymous Coward · · Score: 0

      I agree with most of your rant, BUT... I think you probably mean BSD kernel-derived systems.FreeBSD is a great open UNIX framework on which to build your custom flavor-of-the-day implementation like serving NetFlix or driving OS X, but in itself proves to be a huge pain in the ass when treated like a modern OS by itself. If you haven't got the cash to write your own kernel drivers and write all your own software, you might as well hang on the coattails of 14.04.

    14. Re:OpenVMS by Anonymous Coward · · Score: 0

      It isn't obsolete until something better comes along.

    15. Re:OpenVMS by Anonymous Coward · · Score: 0

      Java had a lot of promise... write once, and the code could be run everywhere from an iButton to a zSeries box. However, code written for a JVM on a Mac may just throw exceptions and die if run on Windows, and Heaven help you if you have to use a newer JVM due to security mandates, while the embedded web page on an appliance is still back at J2SE 5.x.

      Linux has gone for many years, but the Linux of today isn't the kernel back in 1991-1993 which could be built in 4-8 megs of RAM, and could easily fit on a floppy disk. Things like umsdosfs (which were quite useful to allow Linux to run on a FAT file system and enforce UNIX perms) have been obsoleted, as well as a move from the a.out executable format to ELF.

      What is a "timeless" thing? Closest things that come to mind would be x86 assembly, ARM assembly, C and C++, and perl. Those are not going anywhere, and can do everything the latest FoTM language can do.

    16. Re: OpenVMS by K.+S.+Kyosuke · · Score: 1

      Android, currently. ;-p

      --
      Ezekiel 23:20
    17. Re:OpenVMS by Bert64 · · Score: 1

      The Linux kernel will run on a 486 and upwards, i believe they dropped 386 because it was extremely crufty... It also still runs on m68k as far as i know, all the way back to mc68020 (i even have an m68k box to hand running a fairly modern kernel but its a 68060).

      Mainstream distros compile to require modern hardware by default because it makes sense to do so, not making use of such features results in inferior performance when running on newer hardware, thats why many people use distros like gentoo where you can compile everything with support for your actual cpu.

      There's nothing stopping you from compiling binaries to support older cpus, and there are distros out there which support them but that's no reason to hold everyone else back for the very few niche users who might want to run linux on a 486...

      I'm also not sure why you'd want to run gcc3 on a 15 year old piece of hardware, you could always cross compile on new hardware and doing so is going to be MUCH faster.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    18. Re: OpenVMS by danbob999 · · Score: 0

      SM what?

    19. Re:OpenVMS by Anonymous Coward · · Score: 0

      It's still around because of only ONE factor, the US army, if it wasn't for them, it'be long gone

    20. Re:OpenVMS by Anonymous Coward · · Score: 0

      System A was designed 40 years ago, and is still in use, but slowly declining. System B was designed 1 year ago, and adoption is still growing. Which of these do you think has a better chance of being around in another 25 years?

    21. Re:OpenVMS by JWSmythe · · Score: 1

      I'm also not sure why you'd want to run gcc3 on a 15 year old piece of hardware,

      That was the question of the original post. Except don't do it on 15 year old hardware, do it on something circa 1990. So something base don a 80386SX, Z80, 65C02, or 68000.

      He doesn't realize that in 2017, the FUture Widget FUx5000 will be released, and in the following 3 years will become the dominant platform.

      It's not like a major processor manufacturer hasn't tried this recently.

      --
      Serious? Seriousness is well above my pay grade.
    22. Re:OpenVMS by Frederic54 · · Score: 1

      True, last year as a consultant I made some Ada and 80186 assembler on a 25 years old product, that is still kicking and being sold around the world.

      --
      "Science will win because it works." - Stephen Hawking
    23. Re:OpenVMS by Anonymous Coward · · Score: 0

      who today even knows the name DEC anymore? recruiters even tell me to remove my DEC company experience from my resume.

      Ignore the recruiters. When people who have a clue see your CV, they'll hire you. DEC did many awesome things. I'm only in my mid-thirties, but having DEC on your CV is definitely something that would likely get you on my short-list (or for me to push for you).

    24. Re:OpenVMS by Anonymous Coward · · Score: 1

      If not System A, and not System B, you didn't even bother to mention System C:

      Then it's gotta be systemd!

    25. Re:OpenVMS by Spazmania · · Score: 2

      Statistically, System A. System B is still an infant. Huge infant mortality rate for systems. Those that survive tend to live to a far too ripe old age.

      --
      Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
    26. Re:OpenVMS by unixisc · · Score: 1

      Problem is that before it goes to people w/ a clue, it first goes to HR, and that's where they are likely to bump such resumes. The guy w/ the clues only sees the resumes that HR bothers to show him.

      That said, having DEC on your resume is great, particularly if you are an architect.

    27. Re:OpenVMS by brausch · · Score: 1

      There are lots of OpenVMS systems still running in medical and financial institutions.

      --
      "Almost every wise saying has an opposite one, no less wise, to balance it." - George Santayana
    28. Re:OpenVMS by Anonymous Coward · · Score: 0

      No it shows why you cannot pick a modern tool and expect it stay around.

      Linux has abandon it past hardware. When you are working on internal and long term systems, you need tools that will be there in the future to support the current. Showing that Linux has in 15yrs abandon its hardware history, makes it not future proof. JAVA did the same in another way.

      I know, I have programs still running LARGE companies (one is in Fortune 50) handling $4T/night, and its been 15 yrs for some and 25yrs for other, basically unchanged. New hardware was put under it and it is still running.

      What is a side issue, people want to point Linux as it support old hardware, I was one of them, it is why I helped in multiple linuxfest installing os, I even was installing netcards (ISA 10baseT) before computers had network built in... But not any more. It is now more a hassel to track down any distro of any vintage to get what you need. I once had to load Ubuntu 7.04, and process to upgrade to 10.10 to get it install the right drivers. 10.10 would not install them, not on CD, but over the wire upgrade did.

      And my pet peeve is labeling something as 386, but it is really 686 x32 code, because of laziness. In business that is false advertising. In the home market, it make others wanting to play in your sandbox.. PISSED OFF!

    29. Re:OpenVMS by krashnburn200 · · Score: 1

      Everything you said is entirely accurate.

      Also:

      wooooosh...

    30. Re: OpenVMS by plopez · · Score: 1

      Connected to what? Oh wait that cloud thingy doesn't need an OS. My bad....

      --
      putting the 'B' in LGBTQ+
    31. Re:OpenVMS by JWSmythe · · Score: 1

      You're actually just mad at the kernel that came with your distro. That's easily fixed, and instructions are abundant. Really, I spot checked and there is 35 year old hardware still supported, you just have to know what you're doing. If you're installing Linux on obscure hardware, you should already know how to do this.

      I just grabbed the Linux 3.4.107 kernel (from kernel.org), which is still being supported. 3.6 dropped i386 support, so I'm going for the full support argument here. :)

      I did this on a x64, so I needed to export the correct arch.

      $ export ARCH=i386 ; make menuconfig


      Processor type and features -> Processor family -> [386]

      Bus options -> ISA support -> [checked]
      Bus options -> PCI support -> [unchecked]
      Bus options -> PCCard (PCMCIA/CardBus) support -> [unchecked]

      Networking support -> Networking options -> [whatever other/old network types you want] ... IPX, Appletalk, CCITT x.25

      Now you can support any antique ISA card on a i386 you want.


      Device Drivers -> Network device support -> Ethernet driver support ->

      All the old ISA cards that I can think of are supported. Here's a screen shot of the make config for network card drivers only, with just what I put above. I set them all to build, to expand out everything. In practice, only build the one you're using, and/or make modules so you can load them rather than building them.

      http://imgur.com/QVnIN5u

      --
      Serious? Seriousness is well above my pay grade.
    32. Re:OpenVMS by davegaramond · · Score: 2

      Score 5 Insightful... Funny... Interesting... what's the difference?

    33. Re:OpenVMS by Anonymous Coward · · Score: 0

      A call to all recruiting managers with a clue - if you want to change that you have to do what I do - tell HR to send you all the CVs and filter them yourself.

      Find better agencies if the incumbents aren't adequate.

    34. Re:OpenVMS by aaaaaaargh! · · Score: 1

      I think they had to be ported from earlier lisp versions to common lisp, though.

  2. Why not future proof the application? by grimmjeeper · · Score: 4, Insightful

    Why do you need to ensure you can keep recompiling it with the same old compiler for the next 25 years? Why not design it with the expectation that the development environment will evolve? Ensure you design in portability between compilers and development platform operating systems and you don't have to keep stringing along an environment that's already obsolete.

    1. Re:Why not future proof the application? by grimmjeeper · · Score: 1

      Sorry for my dyslexia. I thought I read Ubuntu 10.04, not 14.04. So it's not already obsolete. But it will be in the future.

    2. Re:Why not future proof the application? by danbob999 · · Score: 4, Informative

      Because not only the code would need to be portable, but the build system too (makefiles). Also, in 25 years you don't want to re-qualify everything and risk introducing some new bugs because the new compiler doesn't behave like the old one. Too risky.

    3. Re:Why not future proof the application? by grimmjeeper · · Score: 2, Interesting

      And struggling to maintain an outdated system in some kind of virtual environment isn't too risky?

      If you're doing any kind of maintenance or continual upgrade process, you're going to find yourself upgrading your development environment at least once or twice over 25+ years. And if you have any sense whatsoever, you'll have a suite of regression tests to run on your software already. You can use that to validate the new environment when you compile a baseline. I've been involved with several projects that migrated from one platform to another. I've been the technical lead on a project that even changed languages (from JOVIAL to C) because we were moving to a new processor that didn't have a JOVIAL compiler. Sure, there is some risk. But it's quantifiable and with a good set of tests, it can be completely mitigated.

      On the other hand, if you're not already testing your software as it evolves, there's no point worrying about any risk being introduced because there's no way you know how much risk you start with.

    4. Re:Why not future proof the application? by Anonymous Coward · · Score: 0

      Why do you need to ensure you can keep recompiling it with the same old compiler for the next 25 years? Why not design it with the expectation that the development environment will evolve? Ensure you design in portability between compilers and development platform operating systems and you don't have to keep stringing along an environment that's already obsolete.

      You know what else is obsolete that drives this particular conversation?

      Properly budgeting for ongoing support and maintenance, especially if you're already being raped for hardware and software support.

    5. Re:Why not future proof the application? by vux984 · · Score: 1

      Because not only the code would need to be portable, but the build system too (makefiles). Also, in 25 years you don't want to re-qualify everything and risk introducing some new bugs because the new compiler doesn't behave like the old one. Too risky.

      Are you planning on developing it today and then putting it in a box and forgetting about it until 2040 ?

      Because if you actually expect to maintain it over the next 25 years you will maintain it organically. Compiler versions and build environments will come and go. And the kinks will be identified and solved as they arise. And then 25 years from now it will still all work just fine because you actually maintained it.

    6. Re:Why not future proof the application? by QuietLagoon · · Score: 1
      This is similar to the backup media problem. Yeah, the code, build system and makefiles need to be updated when they go out of fashion, just as the backups need to be moved to new media when the current media goes out of fashion.

      .
      So you deal with it.

      Design for it. Make change your friend, not your enemy.

      When your fashionable long-term build environment looks like it is dying, create a new build environment based upon the current fashion.

      If you cannot or do not adapt, your pet project will be history.

    7. Re:Why not future proof the application? by Anonymous Coward · · Score: 0

      Because you would possibly have to keep the same compiler executable for 25 years. I think the answer is virtual machine, but it's still a rough problem. You might end up with a couple nested virtual machines by the time you get that far out.

    8. Re:Why not future proof the application? by Ungrounded+Lightning · · Score: 4, Interesting

      if you have any sense whatsoever, you'll have a suite of regression tests to run on your software already. You can use that to validate the new environment when you compile a baseline. I've been involved with several projects that migrated from one platform to another.

      Such tests might convince YOU (the developer). But would they convince REGULATORS? If not, you have to go through a whole, horribly-expensive, regulatory approval every time you migrate tool versions.

      Regulators don't get dinged for insisting on more costly work by the regulated and withholding their approval. They DO get dinged if they approve something that then does harm.

      That's why the FDA caused something like 400,000 extra deaths by delaying the approval of beta blockers for prevention of secondary heart attacks until the European research had been repeated in the US under US rules, rather than accepting the data and allowing the use. After the Thalidomide mess they're not going to approve ANYTHING quickly or easily. The same principle applies to other fields.

      --
      Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
    9. Re:Why not future proof the application? by K.+S.+Kyosuke · · Score: 1

      Then why isn't your build system written in the same language? Presumably it's a smaller software artifact of its own so bootstrapping it shouldn't be difficult even in the most pessimistic case.

      --
      Ezekiel 23:20
    10. Re:Why not future proof the application? by grimmjeeper · · Score: 2

      A comprehensive test plan was sufficient to convince the FAA when we did large scale changes like that for flight software.

      YMMV

    11. Re:Why not future proof the application? by grimmjeeper · · Score: 1

      You know what else is obsolete that drives this particular conversation?

      Properly budgeting for ongoing support and maintenance, especially if you're already being raped for hardware and software support.

      That will affect maintaining a virtual environment just as much as it will evolving the environment over the years.

    12. Re:Why not future proof the application? by MightyYar · · Score: 3, Informative

      That depends on the application. If he's making an industrial control system, then no, he probably will not be maintaining it organically. It will get built, qualified, and then expected to run for the life of the process. Think nuclear plant... what is more painful, re-qualification or running obsolete tools? Plants built in the 80s (power, sewer, etc) are still running DOS control systems with ancient serial PLCs.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    13. Re:Why not future proof the application? by grimmjeeper · · Score: 1

      Because you would possibly have to keep the same compiler executable for 25 years.

      Why? Every project I've worked on that's 20 years and older has updated their environment to fight off obsolescence. Even the under-funded government projects

    14. Re:Why not future proof the application? by angel'o'sphere · · Score: 1

      You put the whole build environment into a SCCS ... that is actually a no brainer.

      You would not compile the old code base with new compilers but with old ones.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    15. Re:Why not future proof the application? by jandrese · · Score: 1

      And then one of the stupid old PLCs craps out and you discover that they have not been made for 20 years and all of the old stock is exhausted... Now you have a crisis where you have to rebuild a major part of your system at great expense.

      --

      I read the internet for the articles.
    16. Re:Why not future proof the application? by Anonymous Coward · · Score: 0

      I can second the regulatory aspect of this.

      I work on medical device software, and I cannot migrate away from the Visual C++ 6 compiler and C++98 because it alters the output of our algorithms. Which requires at best a new submission to the FDA and at worst a new round of clinical trials, and I cannot convince anyone that a development "convenience" is worth that cost when everything "has been easily maintainable so far" (note that nobody who says that was ever involved in tech support or development).

    17. Re:Why not future proof the application? by MightyYar · · Score: 1

      I don't think many people would wait until their last spare to start retrofitting their system. At the same time, you want to stretch your investment as long as you can get away with it.

      In the case of old style PLCs, there have been a number of transitional technologies, since so many people were in the same situation.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    18. Re:Why not future proof the application? by grimmjeeper · · Score: 1

      How do the output of your algorithms change between different compilers? Is it related to timing? Is it that the math library changed causing minor (but still significant in your context) differences in precision? Is it something else entirely?

    19. Re:Why not future proof the application? by Joce640k · · Score: 1

      And struggling to maintain an outdated system in some kind of virtual environment isn't too risky?

      Who said anything about upgrades/maintenance? Maybe he has to build it once, certify it once, deploy once on an embedded system.

      If the job requirement says "25 years" then that's what he has to do. It wouldn't even be an unusual specification for military.

      --
      No sig today...
    20. Re:Why not future proof the application? by MadShark · · Score: 2

      Compilers improve their optimization algorithms over time. I've personally helped debug issues due to this on a number of occasions.

    21. Re:Why not future proof the application? by MadShark · · Score: 1

      Regression tests are never perfect. I recently debugged an issue where if we received an interrupt during a one instruction time window, the system had an issue. It worked fine on an older compiler but we were forced to upgrade for other reasons. The new compiler generated code that now had the issue due to improved optimizations that reordered the code. There is no reasonable way to unit test that kind of issue. It required the entire system to be running, and running on target.

    22. Re:Why not future proof the application? by danbob999 · · Score: 1

      Using new compilers was the whole point of the OP. Of course if you keep the old compiler you can keep the old "make" utility too.

    23. Re:Why not future proof the application? by grimmjeeper · · Score: 1

      Unit tests are only a part of a good regression test suite, especially in a complex embedded system.

    24. Re:Why not future proof the application? by ranton · · Score: 1

      Compilers improve their optimization algorithms over time. I've personally helped debug issues due to this on a number of occasions.

      I assumed when the AC said new compilers alter the output of their algorithms, he meant the actual output of the functions, RPCs, services, etc. Optimization algorithms of the compilers shouldn't affect this unless they are broken. Or at least that would be my assumption. I would love clarification on how these compiler optimizations can cause different outputs from someone who has done this professionally though.

      It does make sense that changes to math libraries would alter output because of differences in precision. Any other libraries, such as those which handle concurrency, would also open up possibilities for different behavior. I just don't see how compiler optimizations should make any difference.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    25. Re:Why not future proof the application? by ranton · · Score: 1

      And struggling to maintain an outdated system in some kind of virtual environment isn't too risky?

      Who said anything about upgrades/maintenance? Maybe he has to build it once, certify it once, deploy once on an embedded system.

      If the job requirement says "25 years" then that's what he has to do. It wouldn't even be an unusual specification for military.

      The only reason to need a consistent development environment is for upgrades and maintenance. If they never need to debug errors or add features then there is no reason to have a development environment at all. Just pass around binary executables.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    26. Re:Why not future proof the application? by grimmjeeper · · Score: 1

      As have I. I've debugged compilers for new processors because they were working incorrectly. And I've worked on project that deliberately turned optimization off (or at least way down) for that reason. I'd like to know from the AC who posted it more detail about what changed in his environment. I mean, I get that it changed and they don't want to go through re-certification. But I'm just curious about the details.

    27. Re:Why not future proof the application? by grimmjeeper · · Score: 1

      To echo the other response, there's only one reason to maintain the development environment. You want to use it. If you're not going to do upgrades or maintenance, there's no reason to maintain the development environment. Even if the work is sparse over the years, you still need to maintain the development environment.

    28. Re:Why not future proof the application? by Anonymous Coward · · Score: 1

      I work in a very similar industry: we often get requests to build more of a product we stopped offering literally more than a decade ago. Customers pay through the nose, but it still saves them money.

      Whenever we end-of-life components, we notify customers (on our website and directly for large orders) with ~6 months of notice before final orders are due. Quite often, the right answer is to take this opportunity to buy and warehouse a bunch of the soon-EOL product.

    29. Re:Why not future proof the application? by Anne+Thwacks · · Score: 1
      So it's not already obsolete. But it will be in the future.

      In the future, the future will be obsolete.

      C with Emacs on BSD will never die!

      Because it is the undead

      --
      Sent from my ASR33 using ASCII
    30. Re:Why not future proof the application? by localroger · · Score: 1

      You would be amazed at how many people wait until their last spare FAILS to think about retrofitting. It happens all the time.

      --
      Brackets contain world's first nanosig, highly magnified:[.]
    31. Re:Why not future proof the application? by MightyYar · · Score: 1

      Heh, don't buy stock in that company.

      I'm doing a very minor thing at work right now in the same vein. We have some ancient equipment that would cost $60-70k to replace. It still works, but the data collection PC just died. It had a workflow involving macros, Windows 2000, and several serial ports. I need to get it all working with the Win7 replacement - but at least it is all simple serial communication and the equipment seems amenable to USB adapters, and the communication is well-documented. There are two stations, so it isn't exactly time-critical - but I totally get why people would not want to spend money until absolutely necessary.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    32. Re:Why not future proof the application? by MadShark · · Score: 1

      I guess it depends on what your definition of output is. For a math algorithm, you generally wouldn't expect a change. There are still some exceptions to that. The compiler vendor could correct a bug in a library that your code took into account. Various libraries could become more compliant to a standard, or be upgraded to a newer version of the standard and have very subtle differences. Ideally your unit tests would catch this, but you would have to run your test on target, with the actual libraries. This is easier said than done in some embedded systems.

      Another example, you may be depending on the fact that a calculation takes X amount of time for you to go off and do something else or the time it takes to run may be an integral part of your output timing. Ideally, you don't want to code things that way, but sometimes you have to due to hardware constraints. Optimizations can cause things like that to break.

    33. Re:Why not future proof the application? by Anonymous Coward · · Score: 0

      "Optimization algorithms of the compilers shouldn't affect this " When I ever I read the word Should or Shouldn't from a developer I insert the thought "bug". Of course this stuff shouldn't cause problems or it would be broken, but what if for some reason only your code tickles the bug, or only a small subset tickles the bug and they don't find it for awhile.

      I would definitely try to create test suites, add assert logic in your code that has all of your assumptions on it, and probably turn off anything complicated in the compiler (Optimization, fancy code, etc.).

      The most complicated code I ever had to work with was legacy FORTRAN 2 code that implemented strings. Unfortunately, FORTRAN 2 didn't have string support so they had to do a bunch of logic to handle big indian vs little indian when they shoved characters into integer arrays. They should have actually used COBOL in this case but they didn't know any better.

    34. Re:Why not future proof the application? by brausch · · Score: 1

      This is how my longest lived project has been. Originally written for SunOS and HP/UX and Cray's UNICOS in the late 80s, it is still a live client/server application managing 100+ million files running on a wide variety of UNIX-like environments. The maintainers (me for the first ten years, others since then) have migrated development and production environments several times during the 25 years the project has been running.

      --
      "Almost every wise saying has an opposite one, no less wise, to balance it." - George Santayana
    35. Re:Why not future proof the application? by Anonymous Coward · · Score: 0

      Haha.
      PLC obsolete just means it costs more and more, but you can still buy it.
      Unless it was some crappy small company that was trying to enter the market or is junk hardware thrown together to execute a CoDeSys runtime.

      What goes obsolete and becomes unavailable are the HMI video screens. Damn those things. Based on "stable" PC technology that changes at least every 6 months.

    36. Re:Why not future proof the application? by mrchaotica · · Score: 1

      Can't you just use the newer compiler, but turn off the optimization?

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    37. Re:Why not future proof the application? by mcswell · · Score: 1

      As Yogi Berra didn't say, the future's not what it used to be.

    38. Re:Why not future proof the application? by Bite+The+Pillow · · Score: 1

      How did we get to qualifying and regulation? OP said maintainable. I can jump to that conclusion too, but I can't see that it's supported.

      If your compiler needs security upgrades, I would assume you need to upgrade and re-qualify rather than using Borland C++ Builder 3.0 for the rest of the product's life.

      Then I remembered Pascal, and as it turns out Delphi was last updated in 2011.

      Then I remembered that if you're doing embedded work on Linux, you can have any gcc back-end and any gcc front-end. So just stay where you are. When LTS ends after 5 years, something is going to have to change. And even meanwhile, a compiler issue may require LTS to update the compiler, and now your compiler needs to be re-qualified or you 1) can't upgrade or 2) can't maintain.

    39. Re:Why not future proof the application? by Bite+The+Pillow · · Score: 1

      I hate to be on this side of the argument, but MSVC 6.0 used Dinkumware libraries which they could not include in service packs due to license issues. I had some STL code that misbehaved until I spotted a relevant post on that place that no one mentions telling me to upgrade. I think it was std::vector that was fine until you reached 65k entries. Then the vector gets sheared and data is lost.

      Switch from something not broken to MSVC, fully patched, and your shit breaks.

      It's not likely 16 years later, but there are bugs in strange places. IOW you'd be surprised.

    40. Re:Why not future proof the application? by Bite+The+Pillow · · Score: 1

      Assuming goes a long way here. Maintaining for 25 years does not mean built, qualified, and expected to run. If that's the case, no one cares about maintainability 25 years into the future.

      "Maintain it organically" doesn't seem like the request, either. OP seems to want to open an environment, patch the code, and rebuild with little fuss. I don't even think that's possible, because you *have* to consider things like the runtime library (embedded systems should have at least minimal libraries, unless you're doing 100% assembler). Security patches mean updates to the environment.

      I can only assume the answer is in moving to something like Infocom's Z-machine, or more familiarly Java or .NET, where bytecode is interpreted. The IDE can be the same forever, with patches to the interpreter as needed for security. But that too is problematic without dedication to backwards compatibility.

      Microsoft seems settled on .NET 2.0 - but I recently built something that doesn't run on any later version. Builds, starts, but shits itself. I can't speak for Java. But the Z-machine, well WinFrotz still works.

    41. Re:Why not future proof the application? by thegarbz · · Score: 1

      What are you talking about? The actual control system or the computer managing it? In either case yes these systems are still maintained organically in any organisation that cars about reliability. Most allow some form of online updates, those that do not can be updated during planned outages which are more frequent than you may imagine. Even in the most serious cases like nuclear safety the process is simple for the maintainers. The vendors pre-approve the upgraded equipment and during refueling the entire system can usually be upgraded in a matter of an hour or so. Heck we are moving to a world of completely online upgradable equipment right now, every vendor is pushing in the same direction with this.

      The only people running ancient systems on ancient platforms are purpeopleple who don't understand the risk they expose themselves to, or in rare circumstances they understand and accept the risk.

    42. Re:Why not future proof the application? by Anonymous Coward · · Score: 0

      Well, let's just all be afraid of our shadows now.

      Look, we have professionals called software engineers which do this all the time. Maybe instead of finding new ways to avoid using them, we should just let them do their jobs.

    43. Re:Why not future proof the application? by MightyYar · · Score: 1

      I think we're talking past one another. The original poster is asking about future-proofing his development, not freezing development. Naturally you want the system to be adaptable and as easy to update as is possible - but the basic architecture is probably going to be pretty much frozen in time. "Upgraded" equipment is usually compatible with the same interface, and they tend to make popular interfaces for a very long time. Even when the interface becomes obsolete, there is usually a very long period with transitional hardware. At some point - unless you are lucky - you are looking at replacing the controller, and that can be quite painful so it makes sense to (a) put that off as long as possible, (b) spend time up front picking a popular and flexible platform.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    44. Re:Why not future proof the application? by MightyYar · · Score: 1

      If we are talking control systems, then the best bet is to go browse the popular offerings from Schneider or Siemens. Those will be around and supported for a very long time, and you won't be the only idiot out there building a factory with it. You naturally want to update things - that's the whole point of this question - but it is not like you are going to be continuously upgrading the core architecture over the 25 year life. I would not be surprised at all if the same architecture is in place for 25 years at a single installation. Sure, you'll swap out parts and maybe even the controller a few times - but it will all look very familiar to the guy who originally spec'd it, and new people will roll their eyes and laugh at it.

      If it is something in IT land, that is out of my field. There are many suggestions on here - but I'm betting that anything popular (Linux, Windows, BSDs, mainframes) will run in emulation going forward. I'd probably avoid Oracle, Apple, or other proprietary hardware - even though I told you to go with proprietary stuff for the factory :)

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    45. Re:Why not future proof the application? by thegarbz · · Score: 1

      Ahhh right.

      Though I must correct you on the last bit. We have for years now been at the stage where the software ports easily so that controller upgrades have become essentially painless. The last emergency shutdown system I upgraded the actual process took a lot of planning to check it would work and then only 25min of actual work.

      But the industry is now moving to a fully online upgradable environment. End user software is decoupled from the controller and can be upgraded at whim, application servers are being virtualised to decouple them from hardware requirements, and we're now starting to get to the point with multiple vendors that the full electronics of a control / safety system can be upgraded online without a bump in the process.

      In 10 years I think the concept of taking an plant outage for any kind of hardware modification or upgrade will be obsolete, barring an upgrade which requires severing actual field connections like a change in chassis design or termination assemblies.

    46. Re:Why not future proof the application? by MightyYar · · Score: 1

      I'm apparently obsolete in my thinking :)

      My familiarity is mostly with older installs and the problems in keeping older infrastructure working. There is a whole cottage industry built around that very problem... lots of things out there like serial to Ethernet converters. You can slowly modernize this kind of a system, but at some point you have to start moving things over to a more modern controller.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    47. Re:Why not future proof the application? by david_thornley · · Score: 1

      I have code in Common Lisp and C that's that old, that I wrote back in school. It still works, no problem.

      Pick a standardized language that will be around essentially forever and works for your application. C is a good choice for embedded. Don't use compiler extensions (you're going to have to use specific values as pointers for embedded programming, of course). Do use typedefs for integer sizes. Use an IDE if you like for development, but make sure you're not dependent on it. At this point, the only real danger is that support for your ancient CPU will be dropped in the next 25 years, so use Free/Open Source software for the build, and keep the source for everything. (If you have to use proprietary tools, you will have to negotiate with the provider for some assurance that they'll be useful in 25 years.)

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    48. Re:Why not future proof the application? by david_thornley · · Score: 1

      Um, optimizers aren't perfect. Moreover, they often assume correct code. If a C codebase has undefined behavior somewhere, then the optimizer will feel justified in doing anything it likes. If it has unspecified behavior, or implementation-dependent behavior that changes with the compiler, the optimizer might come up with something different that may or may not have observable effects. If I were a regulator, I wouldn't take it on faith that VS2013 optimizers were bug-free, or that the original code was absolutely perfect.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    49. Re:Why not future proof the application? by david_thornley · · Score: 1

      Testing can only prove the presence of bugs, not the absence of them.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    50. Re:Why not future proof the application? by thegarbz · · Score: 1

      The opposite to cutting edge is not obsolete. This is more of an emerging trend all designed to reduce the total cost of ownership:
      - Small form factors
      - Marshalling and termination within the same cabinet
      - Universal I/O so one card can have any individual point configured as input / output / analogue / digital etc
      - Redundant CPUs with bumpless failover
      - Online upgradable

      And above all this is all driven by industry requirements. When your customers start specifying that they need 8 years continuous uptime and being able to handle any situation on the fly in their Request For Proposals then that kind of gives the industry a bit of a kick. It's an emerging and scary trend when you look at the equipment these companies are trying to push.

  3. Store the hardware by mark_reh · · Score: 2, Interesting

    Keep a working system in storage for future use along with copies of software that runs on it including OS, etc., on archival disks.

    1. Re: Store the hardware by Anonymous Coward · · Score: 1

      This.

      Store several development boxes, and as one "dies" drag out the next one.

      There is no assurance that the VM systems, let alone the hardware vendors, will still support your system in 25 years.

      FYI, I worked on a system that had been developed in 1985, and as the worker bees got new computers, we grabbed their old ones and stashed them in a closet. Several times that saved us.

    2. Re: Store the hardware by Z00L00K · · Score: 1

      Only thing that's really worrying here is the fact that hard disks have a bad tendency to behave bad when they get older - lubrication issues. And I'm not sure that SSDs fares a lot better.

      Another issue that worries me is the fact that modern computers are soldered with lead-free tin combined with smaller solder joints than the computers made 25 years ago. A ticking bomb.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    3. Re:Store the hardware by Tailhook · · Score: 4, Informative

      Better plan: pick something that is currently and widely used in aerospace and military applications and the world will preserve working systems for you.

      I have personal experience with this. 15 years ago, just before I left an employer I had worked for for some time, I took a number of Digital Alpha workstations off their hands; they just gave them away after about five years of use and replaced them with newer workstations.

      It turns out there is a thriving market for this hardware because aerospace and military outfits used it for their work and today they still have drawings and material they need to deal with in original form. They have migrated the original material to newer systems, but they also still maintain the equipment and software needed to get at the material in its original form.

      They pay through the nose to get replacement parts and complete systems in working condition, so a salvage market has emerged and people prowl around trying to find caches of ancient workstations. Doubtless this will be ongoing for at least another ten years, and the prices will escalate accordingly.

      So if you need to ensure there will be spare parts and systems at your disposal a quarter century from now, find out what Lockheed and Boeing are designing today's jets with and use that stuff. It's built well and people pay dearly for it when new, so it tends to be carefully preserved; it's hard to trash something that cost $20k, even if it is wildly obsolete.

      --
      Maw! Fire up the karma burner!
    4. Re: Store the hardware by disposable60 · · Score: 1

      Then add the lovely note that unbiased electrolytic caps - the big power filter ones - 'dry out' over a couple of decades. The counterfeit ones go even faster.

      --
      You're looking for quotes? See my journal.
    5. Re: Store the hardware by afidel · · Score: 1

      Luckily ATX has been the power standard for so long that if you build/order your PCs with standard supplies that it will be no issue to find replacements, there are literally billions of them out there at this point.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    6. Re: Store the hardware by Anonymous Coward · · Score: 0

      Then add the lovely note that unbiased electrolytic caps - the big power filter ones - 'dry out' over a couple of decades. The counterfeit ones go even faster.

      If you just run the device occasionally, electrolytic caps can easily last for decades in storage. Even if you don't, they can usually be "reconditioned" by using an autotransformer to slowly ramp up the voltage unless they are so far gone that they are shorted. Power up interval is about once a year and let it run for an hour or two.

      Plus they are easily replaced with new ones with better ESR and working voltages with off the shelf models that are smaller and cheaper. Electrolytic caps, or a suitable replacement are going to be available for just about as long as humans walk the planet. These things are a foundational part of just about all power supply designs, have been since the start, and will be for a long time yet..

    7. Re: Store the hardware by omnichad · · Score: 1

      Look next to the CPU on just about any motherboard. There are caps there for power filtering specifically for the CPU.

    8. Re: Store the hardware by afidel · · Score: 1

      Many motherboards have gone to all solid state caps for reliability and performance reasons, those will have little problem with aging. Tin whiskers with RoHS solder is probably a bigger concern, though my understanding is that industry has managed to mostly stop their formation with newer solder and flux formulations (the problem of course would be to make sure that your components were made with a modern solder, and not the cheapest thing available to the outsourced manufacturing firm)

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    9. Re: Store the hardware by Agripa · · Score: 1

      If you just run the device occasionally, electrolytic caps can easily last for decades in storage. Even if you don't, they can usually be "reconditioned" by using an autotransformer to slowly ramp up the voltage unless they are so far gone that they are shorted. Power up interval is about once a year and let it run for an hour or two.

      I have only run across the electrolytic capacitor problem with high voltage capacitors like you would find in tube equipment.

      An autotransformer will work with a linear power supply but most switching power supplies will behave badly and possibly self destruct if operated below their minimum input voltage because of their negative input resistance.

    10. Re: Store the hardware by Agripa · · Score: 1

      Only thing that's really worrying here is the fact that hard disks have a bad tendency to behave bad when they get older - lubrication issues. And I'm not sure that SSDs fares a lot better.

      I think this problem with hard drives only occurs for models which land the head on the platters without using a textured landing zone. I have not had problems restarting old hard drives as small as several GBytes.

      SSDs have short unpowered retention times (months); leaving them powered up but unconnected might be a way around this.

    11. Re:Store the hardware by Anonymous Coward · · Score: 0

      John Titor wishes (will haven wished) he had done (will haven done) this before it was (will be) too late.

  4. Don't use an IDE by Kinthelt · · Score: 5, Insightful

    C, make, and vi/EMACS.

    --

    "Evil will always triumph over good, because good is dumb." - Dark Helmet (Spaceballs)

    1. Re:Don't use an IDE by Anonymous Coward · · Score: 0

      Indeed. IDEs are just somebody else's about how development should be done. They are my-way-or-the-highway - which is fine, if you happen to love their way.

    2. Re:Don't use an IDE by PauloftheWest · · Score: 1

      Also any decent IDE can import/use make. I would still recommend virtualizing your dev environment so future devs know what the original evironment was.

      --
      ~Less think, more do
    3. Re:Don't use an IDE by Anonymous Coward · · Score: 2, Insightful

      This is half of the answer. C and text editors will be around forever, However, the missing part is documentation. There will be stuff you have done that is built on assumptions. That must be documented. We can still maintain (and do maintain) 35+ year old aerospace code, and it's relatively easy *because* all of the software artifacts are still available. They've been ported now to 3 different formats, but we can still trace EVERY SINGLE LINE OF CODE to a requirements document, and each lower level requirements document to a higher level requirements document. All of the input assumptions and bounds checking are documented. Troubleshooting is done in requirements before in software, modifications are made in requirements before software, and debugging is pretty straightforward, as all of the unit tests are written straight from the requirements documents (to include bad inputs). We got a new engine sensor when the old one went DMS, not a problem to integrate it.

    4. Re:Don't use an IDE by JaredOfEuropa · · Score: 2

      we can still trace EVERY SINGLE LINE OF CODE to a requirements document

      So can I, for the software that I have produced. Line 1263 in stuff.c maps to the requirements "document" that I jotted down on the back of a coaster on the day we were having that 4 martini lunch. So do all the other lines, come to think of it.
      But seriously... I'm no hard core software engineer and I've never been involved in anything that required that amount of rigour. I've wondered how one ensures that requirements are correct at that level, and are correct together. Even in relatively simple business software I've see such mistakes: every item passes its unit test and checks out against specifications, but the overall thing fails because of unforeseen conditions in the higher level program flow, deadlocks or race conditions, that sort of thing.

      In any case you are right. Good requirement specs benefits maintenance on software of any age, where after a few years even the original developers are scratching their heads thinking "why on earth did we do that?"

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    5. Re:Don't use an IDE by rwa2 · · Score: 1

      Counterpoint: MSVC++

      CSB: so I briefly worked on MS Flight Simulator a few years ago. It was interesting working with code that was older than Windows, but it was still there (under a whole bunch of C++ shims).

    6. Re:Don't use an IDE by plcurechax · · Score: 2

      This is half of the answer. C and text editors will be around forever, However, the missing part is documentation. There will be stuff you have done that is built on assumptions. That must be documented. We can still maintain (and do maintain) 35+ year old aerospace code, and it's relatively easy *because* all of the software artifacts are still available. [...]

      Yes, the grandfather post did forget to include SCM (software configuration management) / source revision control, where numerous tools are available including : rcs, cvs, subversion, sccs, git or one of the other widely available SCMs. Of course, RCS (1982), CVS (1990), and SCCS (1972) are 25 years or older themselves.

    7. Re:Don't use an IDE by Anonymous Coward · · Score: 1

      how one ensures that requirements are correct at that level, and are correct together.

      I used to have that job. There are in house verification tools for that and done in software. There are logic maps that literally cover walls (in small type) that show relations and contradictions in requirements of which there were so many (tens of thousands probably) that I don't see how it could have been performed by a human.

    8. Re:Don't use an IDE by bmo · · Score: 1

      >Software with a 25+ lifespan
      >proprietary version of C++
      >proprietary IDE

      Just... no. Depending on proprietary anything is a no-no. Anyone who has experienced the "oh we don't do that anymore" phenomenon with other Microsoft products (the EOLing of MSVB 6.0, fer example), and other software vendors, know that depending on a company that needs to introduce $SOMETHING_DIFFERENT every year to differentiate (and call it innovation!) themselves from $OTHER_VENDOR is a road that leads to Lovecraftian madness.

      There is COBOL and FORTRAN code out there that is likely older than me and a most other Slashdotters, and the only reason why it's still around and maintained is because it conforms to standards, is documented to hell and back, and can be edited in a plain text editor, or even pencil-and-paper, and doesn't depend on any particular vendor.

      Proprietary languages and IDEs are a quagmire, and companies like Microsoft know this - once you've written enough code that requires their support, they have you by the short hairs.

      --
      BMO

    9. Re:Don't use an IDE by 0123456 · · Score: 1

      Yes. If I have a Linux VM, I can be sure it will run somehow, even if I have to run it through an x86 emulator on a 128-bit 256-core ARM (though that introduces issues of its own). If I have a Windows VM, who knows whether, in twenty years, it will announce that it's no longer activated and won't run?

    10. Re:Don't use an IDE by Beat+The+Odds · · Score: 1

      C, make, and vi/EMACS.

      It's actually: vi > EMACS

    11. Re:Don't use an IDE by Anonymous Coward · · Score: 0

      I've been burned VERY badly on C/make obsolescence.

      Personally, I think I'd get an old Amiga. That seems to have worked out well for somebody, anyway!

    12. Re:Don't use an IDE by T.E.D. · · Score: 1

      Emacs is is an IDE. The "I" stands for integrated. Emacs has a mode for integrating with about any other software development tool you can imagine (including some other IDEs).

    13. Re:Don't use an IDE by Bing+Tsher+E · · Score: 1

      I have 20 year old Windows VMs. It isn't a remote or obscure thing. And since Windows 20 years ago came on 7 floppy diskettes (including video and printer drivers) it's not very complex.

    14. Re:Don't use an IDE by Anonymous Coward · · Score: 1

      Well, that is the reason that the F-22 and F-35 and A-320 are so damn expensive. However, your back of the napkin spec isn't completely fulfilled by line 1263. My line 1263 maps completely to a line in the requirements document.

      We don't just unit test at the lowest level; we unit test at each unit level. and try to include all plausible states in the testing. That's very different then error checking in most software test. It's also very different than most unit tests that only work at one level of software design. We have unit tests for "vehicle" which is the entire integrated system. At that level, we have all of the actuators mechanically connected, some with force feedback from the aero model. We also run dozens of the physical processor unit in parallel in high level test. The only conditions I'm aware of that we don't exhaustively test for are simultaneous bit errors in the software in RAM, but the CBIT does check for those, and we've rigorously validated that software suite.

      With 15 years or so of flying, we had recorded something on the order of 2 million bit faults in software or data, several dozen in CPU registered, and one flight anomaly. That's the power of rigorous software design.

    15. Re:Don't use an IDE by rwa2 · · Score: 1

      Er, yes! But just want to point out that MSVC++ is/was "in house" as far as MSFS is concerned ;-)

      Yeah, for my part, I did my MS thesis in python about 10 years ago, and packaged the entire thing onto a Knoppix LiveDVD. It had a lot of dependencies (python 2.7, psyco JIT that only worked on 32-bit python, lp_solve, glpk, ... heck I even included a (barely) working openoffice and the latex used to regenerate the paper.

      I think it's aged OK so far. Though now I'd have to migrate everything over to python 3 using the pypy JIT compiler (not sure if it runs as fast as psyco did yet), but I think the other pieces should still work, mostly. My old environment would be too obsolete to try to do any serious new work in. But I suppose it's nice to know that I could still reproduce my results *somehow*.

    16. Re:Don't use an IDE by Bite+The+Pillow · · Score: 1

      K&R C came out in 1978, and I have the 1988 second edition, where a lot of the syntax had been changed. This would have been terrible advice in those years between.

      We now have ANSI, ISO, C99, C11, and Embedded C.

      Which one(s) will not be deprecated in 25 years?

      While I agree, "C" is not specific enough. I don't have the answer, and I'm not sure anyone will.

  5. vim by Anonymous Coward · · Score: 1

    I mean emacs

    1. Re:vim by Anonymous Coward · · Score: 0

      write it in Fortran. That shit will be around FOREVER.

    2. Re:vim by Anonymous Coward · · Score: 0

      write it in Fortran. That shit will be around FOREVER.

      COBOL or bust! COBOL and bust?

    3. Re:vim by Z00L00K · · Score: 1

      Why not Cobol while you are at it!

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    4. Re: vim by fermion · · Score: 1

      My first real coding was in FORTRAN a little under 30 years ago. At that time Fortran was about how 30 years old and it's doom was considered imminent. Many people thought Pascal was the bee's knees but fortunately I you second language was C, probably chosen because it had a shorter book. Over the past 30 years, obviously, many firms have moved to ratfor and then pretend code to modern languages, so outside of certain applications it is not used. OTOH if one is looking for an example of a language that has long life and continues to have a lot of coders who can use it effectively, Fortan and C are the only two real candidates. Vi/Vim and EMACS are the major development tools to survive as well.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    5. Re:vim by __aaclcg7560 · · Score: 1

      Busted COBOL!

      FTFY

  6. Huh? by gstoddart · · Score: 1

    Where do you choose to draw the line between handling likely issues and making things overly complicated?

    You're trying to create a VM with all of the tools for your development environment which will last 25 years.

    Why start worrying about being overly complicated now?

    --
    Lost at C:>. Found at C.
  7. IBM or VMs by dmaul99 · · Score: 5, Funny

    If you're talking about IBM Mainframe stuff, then don't worry about it. IBM will support it in one way or another for the next 500 years because the systems that processes your airline reservations and processes your credit card transactions all still run on mainframes with COBOL code and CICS UIs. Nowadays they're dressed up with modern GUIs on top of it but ultimately it's all the same. Peek over at what the airline agent is looking at when she prints your ticket and you'll see a text console with lots of green and where you press CTRL to submit the form.

    If you're talking about some modern unix or windows stuff, VMWare it now or something. In 25 years you'll have your quantum singularity computer with an emulator for GoogleOS 54 inside of which you can run an emulator for Windows 15 inside of which you can run an emulator for Windows 11 inside of which you can run VMWare Player with your stuff.

    Better get started.

    1. Re:IBM or VMs by JustNiz · · Score: 0

      Windows will be around for another 25 years? Oh God please no....

    2. Re:IBM or VMs by rubycodez · · Score: 2

      mainframe code for embedded system??! you win the unnecessary complexity award along with the OpenVMS guy. And yes I've done development and sysadmin on both.

    3. Re:IBM or VMs by geekmux · · Score: 1

      Windows will be around for another 25 years? Oh God please no....

      Don't worry. There's an app for that, I'm sure.

    4. Re:IBM or VMs by sjames · · Score: 1

      And it'll still run faster than when it was the native OS on it's own hardware.

    5. Re:IBM or VMs by Virtucon · · Score: 1

      rookie. Up until 2004 I had a customer on Tops-10 O.o

      --
      Harrison's Postulate - "For every action there is an equal and opposite criticism"
    6. Re:IBM or VMs by TWX · · Score: 4, Interesting

      Came here to say this. The financial system was implemented in the eighties on an i-Series and is written in COBOL and RPG. There are web front-ends for some components, others still use a "Client Access" TN5250 client or for me, since the console TN5250 client isn't being maintained for Linux anymore and doesn't want to compile, a 3270 client still works.

      Do not overlook the service agreement/contract. Do not overlook the need for grizzled old guy with poor social skills to take care of it. Do not parade him around in front of senior management, they will hate him and it if you do. Make it clear that it's not DOS. We've seen people complain about the system because it was text-based, calling it DOS. They're fools, but if you don't nip that in the bud at the beginning it'll bite you in the ass later.

      Also, define service windows when there is no expectation of access, and enforce them even when there's no maintenance from time to time, to keep people from complaining when there is a legitimate service needed. It's annoying but it can be necessary when some asshole thinks that they should work on something at 3am because they feel like it, even when that's in the middle of the published service window.

      --
      Do not look into laser with remaining eye.
    7. Re:IBM or VMs by Z00L00K · · Score: 1

      There's probably a Tops-10 system alive somewhere in the world still.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    8. Re:IBM or VMs by angel'o'sphere · · Score: 1

      CICS actually is not a UI but a "kind of" database, or more precisely the transactional interaction to storage systems.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:IBM or VMs by Virtucon · · Score: 1

      I remember in "Swordfish" they had one sitting in a basement. It was where the Jackman character stashed his code. It's probably still there.

      --
      Harrison's Postulate - "For every action there is an equal and opposite criticism"
    10. Re:IBM or VMs by Espectr0 · · Score: 1

      You know, you can alias the CTRL key to enter. /IBM iSeries (RPG) developer

    11. Re:IBM or VMs by __aaclcg7560 · · Score: 1

      If not, there will be a Windows emulator to play all your classic Windows games like Mine Sweeper and Solitaire.

    12. Re:IBM or VMs by iggymanz · · Score: 1

      rookie?

      TOPS-10 had releases 1970 to 1988, but the Z/OS and Z/VM operating systems can run programs and their job control back into the 1960s and it's still current.

    13. Re: IBM or VMs by Anonymous Coward · · Score: 0

      That doesn't make them any good

    14. Re: IBM or VMs by iggymanz · · Score: 1

      Your money exists in those systems; good? bad? they own your butt

  8. Just use FreeBSD, goddamn it. by Anonymous Coward · · Score: 2, Insightful

    Goddamn it, why would you even suggest VMS when we have FreeBSD?

    For over 20 years now FreeBSD has proven to be one of the most reliable and trustworthy operating systems out there.

    Unlike VMS, FreeBSD is very widely used, is very modern, is undergoing continuous development and improvement, and is truly open source (unlike proprietary or GPLed software), while still retaining superb compatibility.

    I'm confident that FreeBSD will be around in 25 years, and I'm confident that it will be as strong as ever then. It's much more resilient to problems like, say, systemd is, by the very nature of its project structure, the people involved, and their priorities.

    I know I can trust FreeBSD. I can't say the same about pretty much every other operating system out there, with the exception of OpenBSD.

    1. Re: Just use FreeBSD, goddamn it. by Anonymous Coward · · Score: 0

      AC is "confident". This should be good enough assurance for your management, subby.

    2. Re: Just use FreeBSD, goddamn it. by Anonymous Coward · · Score: 0

      ACs should be forbidden to use the word "I" - except between quotes as I just did.

    3. Re:Just use FreeBSD, goddamn it. by Bert64 · · Score: 1

      Or just make your environment portable enough to run on anything vaguely unix-like... Linux, *BSD, Solaris etc will still compile and run extremely old code without problems.
      There are plenty of old programs out there which still compile and run on current systems without problems. I have code which predates linux, and predates any 64bit hardware yet still compiles and runs (very quickly) on a modern amd64 linux host.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  9. Apple Swift by Anonymous Coward · · Score: 3, Funny

    Since all code will be written in Apple's amazing revolutionary innovative new Swift language, just write it in that! It will be infinitely portable and recompileable for millennia!

    1. Re:Apple Swift by Anonymous Coward · · Score: 0

      Until the founder dies and the company runs off the rails.....

    2. Re:Apple Swift by Anonymous Coward · · Score: 0

      Or just do it right the first time and the platform won't matter because you won't need to maintain it!

  10. Make it into an appliance. by russbutton · · Score: 1

    Try taking your install and making it into a bootable iso image and a bootable DVD. Run off of that.

  11. wrong "obvious" solution by rubycodez · · Score: 4, Interesting

    layers of complexity only increase the number of things you assume about the future.

    Instead use a common realtime OS and chipset. Those already have a track record of decades of support.

    Failing that the second best solution would be embedded java app.

    1. Re:wrong "obvious" solution by MightyYar · · Score: 4, Insightful

      This is good advice. You want a whole bunch of other people to be in the same pickle as yourself. That means there is a market, and where there is a market there will be a vendor catering to very old system support.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  12. Airline Problem by fldsofglry · · Score: 1

    A friend of mine heard a talk about a guy to had a similar problem in the airline industry. He needed the whole hardware and software package to be maintainable for 80 years. He used Field Programmable Gate Arrays: https://en.wikipedia.org/wiki/...

    1. Re:Airline Problem by MightyYar · · Score: 1

      That's brilliant, actually.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    2. Re:Airline Problem by Virtucon · · Score: 1

      which in and of itself is a problem. No IT system should have an 80 year life expectancy. If you're talking an embedded system, such as an onboard radar or flight control system, that's another topic but even those get refreshed at a frequency 80 years. Technologies and tools change over time and coming up with unreasonable requirements only means that eventually the system developed will be on a dead branch of support and extensibility. You'll spend more in supporting it than throwing it away and starting over.

      --
      Harrison's Postulate - "For every action there is an equal and opposite criticism"
    3. Re:Airline Problem by 0123456 · · Score: 1

      I worked on a system in the 90s that had to have at least a fifty year lifespan because REGULATION, though it was assumed that they'd have to replace the hardware now and again and just retain the files and database. I do sometimes wonder what they did when the optical drives we used became obsolete.

    4. Re:Airline Problem by Virtucon · · Score: 1

      and when the media decays and the systems no longer work and there's nobody around to fix them, then what? You can't put a system in a bottle and say it'll be supportable decades later. Even mainframe software has had to have some evolution because I don't see IBM selling S/360s anymore. Yes I can still run most of the apps built on the original S/360 but operating systems change as do underlying architectures. But those create more problems then they solve. If it's a "we need this data for X" that's something that migration to newer media can help but shit, mag tapes only last so long. Bitrot creeps into hard drives and optical media so unless you've built redundancy or library refresh into the solution there's no way to guarantee that. I guess after 40+ years the only solace is that the guy who designed it is long since retired or in the grave.

      --
      Harrison's Postulate - "For every action there is an equal and opposite criticism"
    5. Re:Airline Problem by TheGratefulNet · · Score: 1

      and when the media decays and the systems no longer work and there's nobody around to fix them, then what?

      "see?! we told you there are not enough qualified amercians. we DO need more h1b's!"

      --

      --
      "It is now safe to switch off your computer."
    6. Re:Airline Problem by jbolden · · Score: 1

      That's been solved: http://www.mdisc.com/

      We finally have a media designed to last.

    7. Re:Airline Problem by Mr.CRC · · Score: 1

      With FPGAs you have to ensure that a toolchain compatible with the particular model of chip is going to be available for that entire timespan, long after the chip has been discontinued--since to date no FPGA vendor has openly documented their low level configuration bitstream generator. Some time after that, the manufacturer's tools will stop targeting the old FPGA. I don't see how it solves anything, just by using an FPGA. The problem may even be worse than with CPUs, where at least for many architectures there are multiple compilers including open-source ones.

  13. Will the Linux kernel even be around in 5 years? by Anonymous Coward · · Score: 0, Troll

    I've been a user of Linux since the early days of Yggdrasil, and I still use it today. I've never been as uncertain about the future of the Linux kernel as I am right now. All of the major Linux distros have switched to systemd. Systemd is handling more and more functionality every day. I would not be at all surprised if it starts to subsume more and more of the Linux kernel's functionality. The Linux kernel will eventually be nothing more than a second-stage bootloader, at which point it starts to become very irrelevant. I could easily see the Linux kernel being discarded in favor of systemd.

    25 years is a long time from now. I don't see how we can ponder what things will be like then when it's very possible that so much of today's important software, like the Linux kernel, won't even be relevant in as soon as 5 years.

  14. Write A Support Agreement - Business, Not Tech by brian.stinar · · Score: 4, Insightful

    Unless you are (or someone is) getting paid to update, maintain, and upgrade this frequently (I would suggest every six months) I do not believe this is something than can be easily accomplished. I would recommend, if you are a contractor, that you create an ongoing maintenance agreement that provides deployments tests every six months. If you are an employee, I'd recommend you attempt to put into place such a program with your employer.

    If people do not want to pay to maintain this, then it's probably not going to work for 25 years despite your best efforts. If they only want to pay to maintain it when they REALLY need it to be maintained, it's going to be expensive and not necessarily possible. I see this kind of stuff all the time - customers don't want to pay to maintain something, until it breaks, then they want to pay.

    As an example (that isn't related to embedded, but the principle is the same), I JUST ported over Google OpenID logging in to OAuth2 in a PHP system. This was way more expensive, and way higher stress, because the customer did not listen to me six months ago when I said Google would no longer be supporting OpenID, and we should migrate to OAuth2 or they wouldn't be able to login. They didn't listen to me then, but called me when they couldn't login. The hourly rate was higher, because I hadn't scheduled this work, and it took longer (billable time) because I was under pressure to get the calendar time as small as possible. However, we got it! There are examples all the time where things basically need to be scrapped, since the technology is so, so, old and the provider doesn't exist anymore. For example, I am having a lot of trouble finding documentation for CouchBase 1.0 on some CouchBase work a customer wants done.... This wouldn't have been an issue if they had kept upgrading CouchBase versions along the way. Now, it's a pain.

  15. See how it is already done by john.r.strohm · · Score: 1

    You appear to be in the UK, so I'll suggest you check with the Ministry of Defence and get a list of UK defence manufacturers that build software-intensive systems with long life cycles. You're looking for things like airplanes and boats. Then write a NICE letter to those manufacturers and ask them how they do it.

    The military routinely deals in systems with very long life cycles and many software upgrades.

    As one example, the American F-16 first flew in the late 1970s. It is expected to continue to fly well into the 2020s. That's half a century.

    The American B-52 first flew in 1952. They're STILL flying, and it is not unusual for a pilot to fly the same airplane his grandfather flew. (Flying his father's airplane is routine.)

    You might also consider querying NASA in the US. They routinely launch deep-space missions that will take years, even decades, to reach their destination, and require software upgrades while in flight. For obvious reasons, it is not feasible to upgrade or replace the hardware on a probe out around Saturn's orbit, while it is on its way to Neptune.

    1. Re:See how it is already done by michael_cain · · Score: 1

      The Buffs still in the air are newer than that, dating only to the early 60s. While much of the airframe may be original kit, everything else in them (including avionics and other electronics) has been replaced multiple times, the electronics with all-new designs. The most recent upgrade cycle started in 2013.

    2. Re:See how it is already done by Mr.CRC · · Score: 1

      What's a "letter?"

    3. Re:See how it is already done by Anonymous Coward · · Score: 0

      It's like an email, but which has been maintained for 25 years.

  16. *sigh* by msobkow · · Score: 1

    The obvious solution is to build 2-3 boxes with the software needed to maintain your package, set them aside, and leave them the hell alone.

    Compared to the hassle and costs of trying to figure out obscure bugs caused by compiler/IDE/platform updates, it's the cheapest option you've got.

    Did you not notice the recent article about a school district's HVAC system still running on a long-obsolete Commodore Amiga?

    Have you never read about NASA stockpiling Intel processors of bygone eras for maintaining their fleet of hardware?

    In short, are you completely incapable of learning your lessons from what people have already done for 50-odd years of computing?

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:*sigh* by Anonymous Coward · · Score: 0

      Spain's traffic department uses MSX (A computer designed by microsoft in 1982) for their driving exams. It's literally a solid-state machine. No fans, no disks (the software is in a cartridge like those of old videogame consoles). The thing just works. When some break, they just take to any electronic repair garage to fix new capacitors.

  17. Re:Will the Linux kernel even be around in 5 years by MightyYar · · Score: 2

    Linux is at the heart of many embedded devices, most smartphones, and a whole crapload of servers. Given the staying power of golden oldies like COBOL running on mainframes (or virtualized mainframes), I don't think that there is any doubt that the Linux kernel will be around.

    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  18. Plan to last by info6568 · · Score: 1

    1) Design the processes involved independently of the language/tool/platform to run them.
    2) Choose a very stable platform, as the POSIX one (you already work on Ubuntu anyway).
    3) Be modular.
    4) Use a standards compliant language. They evolve very slowly but also, they are available for longer periods of time.
    5) Do good technical documentation and keep it updated.


    The (1) will permit you to design things that could last for centuries. Take into consideration how people control the ships on the sea; they use protocols having more than one thousand years by now. Today have computers, but this is not really a must and they know what to do when the computers fail.

    The (2) let you migrate from old hardware to new one without loosing compatibility. Yesterday these systems were using IDE disks, today SATA or SSD and tomorrow who knows? This is not something relevant when you don't think at that level, and the new POSIX systems have drivers for the new stuff, you just store and retrieve data using the standard primitives.

    The (3) is a must. You can replace modules when you have better options. If everything is a big monster, forget that you will keep it running without an issue for so many years.

    And the (4) offers you a quiet evolution. You could be using K&R C, and to work with C11 these days. If your design is good enough, your software won't be legacy and the only you need to do is to recompile and, maybe, to replace some small pieces that become obsolete with the years.

    The (5) is a big problem in almost all software around. People are accustomed to work quickly and to not to describe what and why the did the things. Ten years later, even the original programmers forgot the details, what could be expected 25 years later? a miracle?. So, document, document, enforce it, check it ...

  19. NOOoooo...! by cloud.pt · · Score: 1

    This is the type of question that calls out of the basement all the Emacs and Vi nerds, and bring the associated editor wars with them.

    REMOVE THIS POST BEFORE ALL HELL BREAKS LOSE!

    1. Re:NOOoooo...! by Anonymous Coward · · Score: 0

      Welcome to SlashDice.

  20. Not a VM by Anonymous Coward · · Score: 0

    Put it in a chroot setup.

  21. Avoid IDEs by sjames · · Score: 2

    Stick with command line utilities. Make and compiler on the command line have been around forever. Avoid IDEs with opaque 'project' files and do not let any sort of automake or autoconfig anywhere near it. Keep your Makefile simple and to the point.

    Thaty way, at least you have the worst-case option of porting forward to a new build system should all else fail. THEN archive the whole thing inside a VM. Use raw disk images rather than a proprietary something that may or may not be supported 25 years from now.

    1. Re:Avoid IDEs by Anonymous Coward · · Score: 0

      Instead of hating IDEs, one might check out if any of the tools have some kind of DRM built in them. If one uses a commercial compiler with floating license, it likely needs a license server to be available. And those may be really annoying to maintain, as the licenses themselves have expiration dates. A per-seat license may not be any easier, as they usually have some kind of copy protection mechanism, which may even refuse to work in a VM.
      Another important issue is to go through the documentation and the tools needed for reading or maintaining it. On my previous software shop we had to keep paying for a yearly license of Rational Rose just to be able to read the documentation of old software. All the free/cheap applications which claimed to view Rose files were unable to show anything but the most basic diagrams.

  22. I use Pacific C Compiler by OrangeTide · · Score: 2

    I use Pacific C compiler from inside DOSbox to patch an 80188 SBC (single board computer). Seems to work fine, and it's 20 years old.

    I think as long as your VM doesn't depend too much on IPv4 or being connected to the internet in general, it should be OK. I think equally important to having a VM is posting how to setup and install it, in the most brain dead and step-by-step way imaginable (screen shots for every step if you have to). Because it's really easy to forget that stuff over 20 years.

    --
    “Common sense is not so common.” — Voltaire
    1. Re: I use Pacific C Compiler by Graymalkin · · Score: 1

      I would modify this advice slightly by suggesting you print out the documentation and get it professionally bound. In fact print out multiple copies. Document (and print) all the details of the development and maintenance processes. Everything from electrical schematics and tolerances to specific compiler versions.

      Take the time to paginate all of the documentation and then build indices. When referencing code modules give printed hash values so potential bit rot can be detected.

      I have CD-Rs, hard drives, and floppy disks that are twenty years old and can no longer be read reliably. However I have forty year old technical documentation that I can read with no issues.

      --
      I'm a loner Dottie, a Rebel.
    2. Re:I use Pacific C Compiler by jeremiahstanley · · Score: 1

      It would be fairly easy to "fake" ipv4 inside of a VM and just forward packets from ipv6 if needed. This would be one of the few times NAT makes sense.

    3. Re:I use Pacific C Compiler by OrangeTide · · Score: 1

      assuming the websites configured in the VM still exist in 20 years.

      At least stuff like DNS can be configured dynamically over DHCP. but I suspect in 20 years we'll need more than a NAT, and rather an internet simulator to make it work well enough for old software that wasn't designed to be future proof.

      ps - I think the other poster's suggestion of having the instructions printed and bound is a fantastic idea.Even if college grads in 20 years might not know of physical books other than in old movies :)

      --
      “Common sense is not so common.” — Voltaire
  23. Modify your system to build itself. by RealGene · · Score: 2

    Deeply embed the tools required in the device itself. As long as the box exists, the tools exist.

    --
    Mission: To provide products that consume time and energy as entertainingly as permitted by the laws of thermodynamics.
    1. Re:Modify your system to build itself. by Anonymous Coward · · Score: 0

      yeah ..... that sounds secure. Amateur!

    2. Re:Modify your system to build itself. by Anonymous Coward · · Score: 0

      So.... your answer is FORTH?

  24. Probably due to certification by Anonymous Coward · · Score: 0

    It's probably some certified environment - you can't use plug in newer versions of tools without having to go through a full recertification process.

    This is common for safety critical applications (for example).

    1. Re:Probably due to certification by grimmjeeper · · Score: 1

      Yep. And doing the upgrade to a new development environment to prevent obsolescence is not a difficult process when you already have a full test plan in place to ensure you did it right. And in any kind of certified environment, you already have that test plan for the first time you did it. Running through that full test plan again means you can very easily mitigate the risk. Sure, it's not cheap to do it but it can be significantly cheaper than trying to keep outdated legacy systems running.

  25. Cost by Anonymous Coward · · Score: 0

    Why build in the cost of such a requirement? Have you attempted to cost an entire replacement? Is it that much more? Do you need to move to market now, or are you able to wait for this requirement to be "satisfied"?

  26. Amiga used for ~30 years for HVAC control by bfwebster · · Score: 2

    /. just ran this article about an Amiga still being used to control HVAC at multiple public schools after nearly 30 years: http://tech.slashdot.org/story...

    Technology embeds itself (so to speak); it is far harder to retire old tech (as per this article) than you might think (Windows 8/8.1 just barely passed up WinXP this year). I think that Linux + C makes as much sense as anything, especially for an embedded system, and I'll cheerfully bet that both will still be around and in active use in 25 years. ..bruce..

    --
    Bruce F. Webster (brucefwebster.com)
  27. Re:Will the Linux kernel even be around in 5 years by Anonymous Coward · · Score: 0

    Linux is already being replaced by Pottering OS, so don't count on it being around.

  28. Look closely at your requirements. by melstav · · Score: 1

    Depending on the regulations attached to your specific industry and how your company chooses to cope with them, "being able to maintain the application" may not be sufficient. If something goes sufficiently pear-shaped to get a government agency involved, they may demand that you be able to produce not just the source code used to create any given release, but the combined libraries, toolchains, etc.

    Hell, you *MAY* even be required to completely and faithfully recreate your entire development environment as it was on the date of sign-off. Only really feasible way, imho, to ensure that you can comply with that sort of a request is if you were to do all of your development inside a VM and take a snapshot when each release is blessed. (or at any other milestone)

    1. Re:Look closely at your requirements. by McLae · · Score: 1

      We did that on Postal contracts. The release package had the OS, compiler, any tools used to compile/run, and step by step instructions on how to install the OS, install the IDE/libraries, and build the release CD after compiling. Documentation written to 3rd grade level. ("Push OK button", with image highlighting button) The USPS program officer would only test software created using the documentation and release package.

  29. Stockpile physical hardware by Ketorin · · Score: 1

    What about the old fachioned way:

    Ensure that the physical hardware that you are going to use to run your development tools on will be available as surplus for the service life of your system. Have at least one backup machine any time for quick swap on hardware failure, maintain multiple copies of all your software which you refresh periodically.

    I think x86 wont be a bad choise, and Iäm fairly sure you can buy DVD's in 25 years from now. x86 is about at its end of life now, so what ever you buy in the next 25 years, will most likely be from this time period.

  30. How I accidentally solved this problem by Marginal+Coward · · Score: 1

    About 20 years ago, I accidentally solved a similar problem. I created a Windows application using Visual Studio with MFC without thinking very far into the future. It turns out that I still maintain that application - and a few spinoffs of it - to this day. VS and MFC turned out to be a good choice for this system.

    I've had to do some migration work every few years as newer versions of VS came out, but that's been tolerable. For example, I recently migrated from VS 2003 to VS 2010 because 2003 doesn't run correctly on Windows 7. And I recently made a transition to Unicode, which was slightly painful but tolerable - definitely the right thing to do at this point.

    VS may not actually be the best answer to the question, but my experience does illustrate a few points. It worked for me because:
    - The IDE had a large user base and ran on a ubiquitous platform.
    - The framework, MFC, likewise has a large user base. Microsoft doesn't seem to care much about MFC anymore, but it's easy for them to maintain with each new version of VS. Basically, as long as VS, C++, and the Win32 API is around, it makes sense for them to update MFC whenever they update VS. Typically, they just add new features for new API things I don't use like the "Ribbon" interface. That's easy enough for me to ignore.
    - Migrating to the new version of the system every few years makes sense. I don't do this with every version of VS, but I do it with every 2 or 3. Microsoft more-or-less forced me to do this when old versions of VS would no longer run, but it's actually been good for me overall. However, if I had somehow managed to continually use VS as it existed 20 years, the pain of migrating to a modern version today might be too great.

    1. Re:How I accidentally solved this problem by Dr_Barnowl · · Score: 1

      And sadly, it was only an accident.

      I used to work for a company that still maintains a VB3 system. We also used a licensed rich-text-format textbox control for reporting. We had to buy the company to get the source code for it when it went out of business, just in case it had a critical bug and we needed it fixed.

      Proprietary platforms will, as you say, only stick around by dint of luck. Free software is the only software you're guaranteed to have stick around.

      As for hardware, buy redundant units.

  31. Use popular mature open source by iceco2 · · Score: 1

    I have maintained various legacy systems dating as far back as the late 1970s some have faired better than others. By far the biggest difference between those that faired well and those that didn't was continuous supoort. A system from 1990 that wasn't maintained for only a few years due to the false assumption it was being phased was much harder to maintain and than older system which never went out of maintainance.
    The popular technilogies faired better than the trendy ones. PL1 Cobol and later C all faired well. Ada not so much. IBM mainframe faired very well. Nonstop servers (HP) not so much. Binary only libraries prevented hardware upgrades even when almost everything compiled properly. If you stick to the popular now yet mature technologies you won't be alone with your troubles down the road.

  32. Crystal Balls by Tablizer · · Score: 3, Insightful

    If I could accurately predict 25 years out I'd currently be playing poker with Warren Buffett in a mansion instead of trolling Slashdot.

  33. This is a cross-compiler? by tomhath · · Score: 1

    Presumably the target embedded system isn't running Ubuntu. So really all you need is some way to keep the compiler/linker running - the rest of the build environment is irrelevant. Unless, as mentioned above, everything has to be certified - in that case then what you need is several complete dev systems on a shelf somewhere and pray that you don't use them all up.

  34. install development tools on the embedded system by ecloud · · Score: 1

    See also the story about the Amiga HVAC controller which someone else already linked to...

    If the system is expected to run for 25 years, then it should still be able to run its own compiler in 25 years too. As long as it's not underpowered, it should be able to build its own software. So do the development that way too. Although I do wonder if flash storage is up to a 25-year lifespan.

  35. Dead Wrong by Anonymous Coward · · Score: 0

    You're just dead wrong. Trying to throw it away and starting over is very, very expensive. Hell, even in industry, most code refactoring projects fail miserably. In the aerospace industry, you have to recertify the entire aircraft if you throw away a significant piece and start over.

    What you're missing about the aerospace industry is that all software is written with a rigorous design process that starts from high level requirements documents and is designed on paper long before any code is written. We routinely have the unit tests written before we start writing the software. There's no need to scrap anything except hardware that's gone DMS. And, getting new hardware, compiling and testing is fairly straightforward with a good design. Our biggest problem is that processors keep adding registers, so we have to add more to the tests to compensate for the additional failure modes that more complex processors bring. However, we're still using Freescale 683xx processors because they still work, and the code we've ported to ARM ported very cleanly, though ARM doesn't have a proper real memory mode.

  36. Take a look at Forth by jays8088 · · Score: 2

    Take a look at Forth. Can run on anything and worst case, you can roll you own.

  37. FORTRAN by Anonymous Coward · · Score: 0

    FORTRAN! GPS is STILL written in FORTRAN. It will outlive the cockroaches!

  38. Two ways, neither is easy by davidwr · · Score: 1

    1) Keep redundant hardware examples around and make sure your backups are copied to new media frequently enough that you don't lose data,

    or, as some have already suggested without saying these exact words:

    2) give it up. That is, plan for the development environment to change out from under you.

    In the simplest cases, such as running a 16-bit DOS application you wrote in 1990, it may be as simple as finding a modern-ish computer than can boot with an error-free copy of your 1990 DOS 4.0 + Borland Turbo C development environment hard disk and hope that the newfangled UEFI and post-80486-chip and modern chipsets doesn't break your code. Bonus points if your code didn't use any Borland-specific, DOS-specific, or hardware-specific extensions or libraries so it can compile under any modern C compiler on any machine.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    1. Re:Two ways, neither is easy by Blaskowicz · · Score: 1

      Not sure how well BIOS emulation under UEFI is working, but if it does it should be very easy to run DOS. Requirements aren't big ; even USB storage can be used seamlessly if it was present as boot, as well as USB keyboard. To be on the safe side, use an USB stick, SD card, HDD or SSD that's less than 2 TiB. Using iPXE, you can even boot from an iSCSI volume and use that.
      Have a motherboard with on-board COM and LPT (one COM or one LPT are exceedingly common, one COM + one LPT common enough, two COM + LPT may be found in some consumer hardware) : they're wired to a legacy bus, ISA compatible.

    2. Re:Two ways, neither is easy by omnichad · · Score: 1

      Dosbox works way better than it should for this. And there's always Bochs or Qemu.

  39. Be sure you don't have the 2038 bug by DickBreath · · Score: 4, Insightful

    The 2038 problem is similar to Y2K but for Unix. 2015 + 25 years = 2040.

    --

    I'll see your senator, and I'll raise you two judges.
    1. Re:Be sure you don't have the 2038 bug by Anonymous Coward · · Score: 0

      NSA backdoor obviously.

    2. Re:Be sure you don't have the 2038 bug by Anonymous Coward · · Score: 0

      This is honestly the only advice worth mentioning here. 25 years isn't that long, especially now that computer technology very much stabilized. Right now I can easily run most software from 25 years ago, software that was NOT designed to be run for 25 years, and we've gone through a burst of technological changes in the meantime. I would take any bet that in 25 years gcc will still be around, runnable on modern hardware, and able to compile projects from today.

  40. Look to the past by linear+a · · Score: 1

    Look at stuff that existed 25 years ago that still exists and is supportable today. That will give you an idea of the *sorts* of things that could be supportable in 25 years.

    1. Re:Look to the past by BaronAaron · · Score: 1

      Exactly.

      In 1990 Windows 3.0 came out, which can still run in a VM today. Considering today's slower pace of change in computing technology, I think it's a safe bet any modern OS will run, in a VM, on future computers.

      Just pick a popular and open VM container format so you're not tied to a vendor. OVF for example.

      You might want to also consider visualizing the version control system as well. Source history may be important to future developers making changes. Use a decentralized VCS like git, so version history gets archived with the development machine automatically.

  41. Visual C++ 6.0 by Dwedit · · Score: 1

    Well, here's a development environment that is still quite usable after 17 years. I'm talking about Visual C++ 6.0. If it still works 8 years later, than I guess it fits the criteria.

  42. Experience by T.E.D. · · Score: 1

    Well, I'm supporting some hardware/software systems that go back to the 70's (45 years). I'm afraid I don't have much encouraging to say though.

    The nice thing about PDP-11's is that they were relatively ubiquitous, so there are lots of folks out there offering emulators, and even some with PDP-11's on a PCI card. The biggest problem we've had is with getting access to old sources. Source control discipline wasn't that hot back then, and a lot of the code was just done in machine language. Even if we had the sources to that, there aren't exactly a lot of folks conversant in it still working today. Plus a lot of the stuff still stuck there is stuck there because of hardware dependencies. For example, we had one networking protocol that goes back to somebody's decision to use the PDP-11 printer port for networking. Nobody ever tried upgrading both sides at once, so we stuck using this historical oddity in our system through several "upgrades" on both sides of the link. Its not so easy to find cards for this anymore when another single-side "upgrade" comes along.

    On the plus side, a lot of our older stuff runs on some company's personal flavor of Unix, so the ubiquity of Linux for ports to modern hardware has been a huge boon for modern ports. So if past history is any guide, I'd highly recommend targeting Unix.

  43. Pascal/Delphi by fhic · · Score: 1

    I still maintain a group of embedded semi-smart terminals that run OSes from MSDOS to current versions of Windows. The original program was written in Turbo Pascal 7 back in the early 90's, and some of the old ODS boxes are still in use.

    The program has been updated over the years to run on Delphi and now XE2. Three or four different development environments, but they can all be convinced to run under Win 7/8 (I haven't tried Win 10 yet.) I see no reason to expect that they won't live on long after I am retired.

  44. Misread title by Diss+Champ · · Score: 1

    I first thought it was "Still Unstable In 25 Years Time?" and wondered how the developer failed to notice Windows..

  45. Wrong questions by Anonymous Coward · · Score: 0

    The right questions are:

    1. What is the service life of the products I'm developing?
    2. What are the maintenance requirements, risks and costs over the lifetime of the product?

    A development environment is only small part of the maintenance plan.

  46. Retirement Fund by Anonymous Coward · · Score: 0

    Looks like the OP is hoping for it to crash in 2038 and it planning on coming out of retirement for big bucks.

  47. Re:Will the Linux kernel even be around in 5 years by Anonymous Coward · · Score: 0

    Linux is already being replaced by Pottering OS, so don't count on it being around.

    Not to worry. A special delivery via drone is coming to L. Pottering that will give new meaning to the term surgical strike. Debian GNU/Linux was my preferred distribution but with the decision to incorporate systemd there seems no choice except to roll my own distribution. The really sad thing about GNU/Linux in general these days is the bloating of the kernel and the constant additions instead of focusing on streamlining it and removing unused variables and code.

  48. Portable Virtual Machines by Anonymous Coward · · Score: 0

    Long story. Longer, in a sense, than 35 years. But this was a big one; windowed graphical user interfaces, context menus, mice, object oriented programming, ethernet.

    Started with Smalltalk, and the Learning Research Group at Xerox PARC. Hasn't ended.

    It's called Squeak now. Squeak's VM is written in a subset of Squeak and then automatically translated to C. So it's relatively easy to port to other platforms, as long as other platforms have at least a 32-bit word. It's not back-compatible with the original 16-bit Smalltalk-80, but it's forward compatible with anything you want to put a little effort into, and runs on almost everything already, with bit-identical, pixel-identical, write once and *really* run everywhere portability. Full integrated development environment and graphical user interface.

    The language doesn't suck either. Nice mix of wild west mutable objects and functional ways of dealing with collections. Closures. Continuations.

    There are other languages that can do this stuff, but none of them are as balanced, complete, and portable as Smalltalk.

    Links:

    https://en.wikipedia.org/wiki/Smalltalk
    https://en.wikipedia.org/?title=Squeak

    Cheers,

    --C

  49. When cross-assembling for small MCUs by tepples · · Score: 1

    Then why isn't your build system written in the same language?

    If I'm writing firmware for a microcontroller based on the MOS Technology 6502 architecture, I don't especially think writing the build system in 6502 assembly would be the best choice. That's why I use mostly Make and Python for my 6502 projects.

  50. Easy, Stay away from closed libraries. by Anonymous Coward · · Score: 0

    There, done. Use standard C, C++. Fortran or what ever and standard libraries. And don't buyinto the "modern" software hype. I can still compile and run the software I wrote in high school in fifteen minutes after I install a machine. Software written for IIS/MSSQL/MFC in the 2000s? Not so easy...

  51. Perl 6? by dlenmn · · Score: 1

    Maybe it'll be released by then?

    (I don't know anything about perl, but someone had to say it.)

  52. Doesn't matter, x86_64 emulation will be around by Kjella · · Score: 1

    The obvious solution seems to be to use a VM that has a portable disk image that can be moved to any emulators in the future (the build environment is currently based around Ubuntu 14.04 LTS / x86_64) but how do you predict what vendors / hardware will be available in 25 years?

    Realistically how long would it take for the vendor to go out of business, then how long until you can't find the hardware to run the last version on? And I'm sure there'll be migration options for any semi-popular virtualization system. Worst case you might want to save the install instructions (iso of OS + whatever else you've loaded on top) to use with a different VM provider. No doubt x86_64 emulation will be around 25 years from now, no matter what we run on. You're making a mountain out of a mole hill.

    --
    Live today, because you never know what tomorrow brings
  53. IBM AS400 by Lumpy · · Score: 1

    There is a crapload of AS400's out there still running the accounting for very large companies and medium sized companies.

    There is a crapton of 25+ year old environments that still have software being developed for them and or need it.

    Hell I was looking for an AS400 with a full software loadout on it after I learned what my wife's work pays for their expert per hour. I'll take $225 an hour any day.

    --
    Do not look at laser with remaining good eye.
    1. Re:IBM AS400 by Nethead · · Score: 1

      My new $DayJob is sending me to AS/400 school because our mail system runs on a bunch of them all over the world.

      $DayJob = "100 year old French company."

      --
      -- I have a private email server in my basement.
  54. Just code a GUI in Visual Basic by JustAnotherOldGuy · · Score: 1

    Haven't you heard? Visual Basic is the wave of the future, everything else will pale in comparison!

    --
    Just cruising through this digital world at 33 1/3 rpm...
  55. Use a 25-year-old system by bregmata · · Score: 1

    The inventors of Unix would be at home in my development environment: Bourne shell, vi(m), make. Unchanged for 30 years, still going strong. Consider that it was used to develop Ubuntu 14.04 LTS.

  56. Missing Some Key Information by Anonymous Coward · · Score: 0

    The submitter doesn't really provide enough information to fully answer the question. What software tools are needed for this embedded system? What hardware tools (debuggers, programmers) are needed? Does the development system need to be qualified by some sort of regulatory agency or are they free to upgrade tools as needed? How do they plan to staff the engineering team for 25 years?

    If you built an embedded system using a MIPS CPU 25 years ago, you might not be using the same hardware or OS for development, but if you used GCC, you'd probably be using newer versions of the same build tools to compile the software. You might be using Eclipse instead of Emacs to maintain the software, but the same Makefile scripts could still be used to build it.

    Avoid vendor extensions to languages or tools at all costs, such as GCC-isms or VC-isms. Use only standard language constructs. About the only answer I can give you is "rely on open source tools that have stood the test of time." And rely on the same tools and platforms that others developing long-term maintainable systems are relying on. That way there is shared incentive to keep the systems functional through time.

  57. Consider the IBM Power Systems by kriston · · Score: 1

    Consider the IBM Power Systems, formerly known as the IBM System i, AS/400 and eServer iSeries.

    The systems in these product lines are intended to be in use indefinitely with a completely compatible upgrade path. The operating systems and the software used on these servers are based on an architecture that has been in continuous use since 1979, the System/38, and the software that runs on these systems has been in use even earlier than that.

    https://en.wikipedia.org/wiki/...

    --

    Kriston

  58. Solve the right problem by MobyDisk · · Score: 2

    I'm working on an embedded project that will need to be maintainable for the next 25 years. This raises the interesting question of how this can be best supported. The obvious solution seems to be to use a VM that has a portable disk image that can be moved to any emulators in the future (the build environment is currently based around Ubuntu 14.04 LTS / x86_64) but how do you predict what vendors / hardware will be available in 25 years?

    [emphasis mine]

    maintainable for the next 25 years...use a VM

    Some people are answering how to make something "compilable" 25 years in the future. That's different from making it "maintainable." A VM will make the project compilable. But it won't make it maintainable. Ex: I can compile MS COBOL code for CP/M, but I can't find developers to maintain it. The only way to make it maintainable is to continue to update to newer operating systems, libraries, and tools over the course of the 25 years. If you are in a regulated environment, there is cost to that. That cost needs to be part of the maintenance budget for years to come.

    how do you predict what vendors / hardware will be available in 25 years?

    That is impossible. If management wants you to do this, ask them what the budget will be in 25 years. You can accurately predict the development environment in 25 years with the same accuracy that they can predict the budget in 25 years. The closest you can get to this goal, is to have the source code for everything. When you use closed-source software, then your contracts should require that the source code be released to you when the product is no longer supported. Such conditions are not uncommon in the medical industry. The contract will likely forbid you from using that source code for anything other than maintaining that product since they won't want you become a competitor.

    I work for a medical device manufacturer, who does this. We do *not* try to predict what tools will be available in the future. We keep VMs and make sure it doesn't require external packages to run. Ex: all installs, binaries, etc. are available. No npm or nuget required on the build server. Over the course of decades, you will have to move the source into newer repositories (RCS -> CVS -> subversion -> GIT) or keep ZIP file archives since that is easier.

  59. Oh Hell, Just use SCO Unix.... by Anonymous Coward · · Score: 0

    You KNOW it won't change... Just be sure to buy a bunch of hardware for it to run on. Don't worry, it will be CHEAP hardware so you can stockpile a couple of systems for each year of your presumed project lifetime for next to nothing. Just make them identical, buy 50-75 of them, and shove them into storage.

    Then, when you get down to about 10 copies of the development hardware, start thinking about re-hosting it onto something else.

  60. Digital preservation in libraries. by Anonymous Coward · · Score: 0

    The digital preservation community in libraries (when archiving software) has to deal with a lot of these aspects.

    I'd recommend learning about https://en.wikipedia.org/wiki/Digital_preservation, plus documenting your project with appropriate metadata in the right formats, e.g. http://www.loc.gov/standards/premis/.

    If you've got lots of artifacts (e.g. documentation) that need to be maintained with it, learn about OAIS (Open Archival Information System) and compatible systems. It was developed by a consortium of space agencies for long term storage and retrieval of maintenance documentation, etc. Now in common use for digital asset management in many cultural heritage institutions too.

  61. Obvious answers by plopez · · Score: 1

    C/Fortran 2003+ on a Unix, posix compliant, platform running some sort of X-Windows windowing system. All tried, true, usable, good for embedded systems, and portable.

    Avoid anything buzz wordy. No XML, too bloated for an embedded system. Avoid anything proprietary or requires a huge library stack. If you need persistence use something lightweight and sane like MySQL or Postgresql. Scripting languages with perhaps the exception of Perl or bash are probably too bloated as is anything that must run on a Java VM.

    Use lowest common denominator ASCII text.

    That's how I would approach it.

    --
    putting the 'B' in LGBTQ+
  62. Not so hard as it may seem at first by Anonymous Coward · · Score: 0

    In 2001, I wrote a service in Java 1.3 and Oracle 8i, and set up a Windows XP VM to compile and run it on. 15 years later, I am still able to launch the VM and do maintenance, and expect that 11 years from now I will still be able to. 25 years is not that long as it sounds at first...

  63. Obligatory... by sconeu · · Score: 1

    Emacs isn't an IDE. It's an OS. The only thing it lacks is a decent text editor...

    --
    General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
  64. I think you have it figured out already by scamper_22 · · Score: 1

    It seems to me that you have already figured it out.

    Get a developer/build VM Image and you're basically done.
    Well, that and make sure to use open source / easily licensed tools so you won't ever run out of a license.

    Are you worried that the x64 instruction set is going to disappear within the next 25 years?

    I'd say that is highly unlikely.
    When AMD when to x64, they made sure it still ran x86.

    In 25 years, I doubt we'll be dropping x64 from mainstream support. You're probably safe there.

    Not to mention, you'll probably be able to buy some old chips if that should ever happen. Just go on ebay and you can still find 386 chips :P

    Not to mention virtualization.

  65. Re:Will the Linux kernel even be around in 5 years by Spazmania · · Score: 0

    I'm morbidly fascinated with this concept of systemd subsuming the kernel too.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  66. Minix by unixisc · · Score: 1

    Submitter said Embedded Project. So Minix could be a better choice for what he wants

  67. possible systemd architecture by unixisc · · Score: 1

    Maybe systemd could be a microkernel like Minix, w/ all the various systemd services at the periphery. In fact, you could then start using the various rings of the CPU. Ring 0 for maybe a hypervisor, Ring 1 for the systemd microkernel, Ring 2 for the various systemd services and Ring 3 for all of Userland.

  68. inevitably... by Anonymous Coward · · Score: 0

    Not sure how well BIOS emulation under UEFI is working, but if it does it should be very easy to run DOS.

    Inevitably it will be labeled as 100% compatible but it will have a but that makes it useless for your application, and the bug will not be detected until the worst possible moment.

  69. Buy more hardware by DrHyde · · Score: 1

    Until about five years ago I supported a custom application running on CP/M. I just kept some spare hardware so that if anything broke I could swap it out, and I also could use the spare parts for developing on. Not that I actually did any development for the last fifteen years of the contract, all I did was visit once a year to blow the dust bunnies out.

  70. Forget the dev env, write good code by Anonymous Coward · · Score: 0

    What really matters more in maintaining software across multiple generations of hardware is the fundamental design of the software. Well designed, structured code can be 'ported' to new languages and environments. My company has been maintaining the same application (with significant enhancement) for over 30 years, on new OSes and hardware. Started MSDOS, currently HTML/PHP/JS/C.

  71. IBM370 BAL FTW by Anonymous Coward · · Score: 0

    OpenVMS has nothing on the IBM 370.

  72. Embedded? by Anonymous Coward · · Score: 0

    C and a Makefile.

  73. Aside from Y2K-type issues... by Loopy · · Score: 1

    ...why does an OS "expire?" The only reason we spin OS releases as fast as we do today is for (a) new hardware support/bugfixes, and (b) security hole fixes. If your critical long-term project is air-gapped or ROM-based, why would it need patching?

  74. You have the right idea. by bezenek · · Score: 1

    Having the OS and all of the tools packaged up as a bootable VMware image is a great idea. It removes all of the issues about how to resurrect it later.

    I can't image VMware removing backward compatibility (or failing to have tools to provide the ability to move things forward). Just in case, I see two solutions:

    1. Fire up your VM once a year with whatever you are using to run VMware VMs and do a forward-compatibility upgrade if available to be sure you don't fall too far behind.

    2. There are cloud providers who want to provide space for your VM. They are likely to have a forward-compatibility plan for their customers, even if those customers are so "lightweight" they are essentially non-paying.

    --
    Omne ignotum pro magnifico.
  75. IBM TXSeries and CICS by Anonymous Coward · · Score: 0

    CICS debuted in the late 1960s and keeps getting more popular and modern. The key, though, is that IBM doesn't break stuff, and that the invested value in CICS application code keeps increasing. Its baby brother is called TXSeries, and there are even companies that have implemented TX/CICS clones (though I'd stick with the genuine article). If you stick to TXSeries APIs (for the abstraction) your program will run (and continue to run) on both TXSeries and CICS Transaction Server. Pick any durable programming language -- C, COBOL, or Java, probably -- and you're OK for at least a quarter century (and more like half a century) with high confidence. Use CICS/TX facilities/abstraction for data access. If that needs to be relational, DB2 is a good choice underneath, though keep the SQL vocabulary very "plain vanilla" if possible.

    Nobody has supported durable, long-term application environments like IBM, and nobody else is likely to for the next quarter century plus. CICS and TX are the preeminent examples and even more relevant today than they ever were in that role.

  76. PR#6 by Anonymous Coward · · Score: 0

    10 REM HELLO WORLD

  77. Re:Will the Linux kernel even be around in 5 years by jerryjnormandin · · Score: 1

    My first Linux install was Yggdrasil on a 386SX! I installed it to help with my Computer Science homework!

  78. COBOL by mcswell · · Score: 1

    Actually...25 years ago was 1990. Windows 3.0 had just come out.

    I worked on a project once that used three programming languages. All three of them had gone through incompatibility-causing changes by the end of the project, and that in a space of three years. One was C; it went from 16 bits to 32 (which should tell you when this was). Since I was doing things that depended on the size of int (I was using ints--or maybe it was long ints--to encode things at the bit level), that was relevant. That would not have been too hard to fix. The second language was Prolog; the version I used also transitioned to 32 bits, and the vendor decided at the same time to change the way C calls were made. That would have been more difficult to change in my code. The third language was Smalltalk; the vendor was bought out by its competitor, who had an incompatible version. The version we used was dumped. That would have been a nearly complete re-write.

    As a result, my next project encoded its information in XML, and I wrote a converter (in Python) to translate the XML to the programming language of a finite state transducer. When (not if) that transducer becomes obsolete, we'll change the converter. (Of course Python may go out in 25 years, but the converter is the simple part.) I do not expect XML to go obsolete soon, and when it does, at least the data is human-readable (and there will probably be a converter to whatever the replacement for XML is).

  79. Suggestions by Anonymous Coward · · Score: 0

    1. Document the I/O for the system, so it can be replaced if necessary. Have someone rebuild the system using this documentation to check and revise it.

    2. Document everything you code, as You code it, and update the documentation. Then give the documentation to someone else and have them code it. Update the documentation as they ask you about it. Leave that documentation so they can totally rewrite the application if necessary.

    3. Use common chips that were available 10 years ago. Avoid fancy all-in-one H-Bridge chips. Leave behind tested schematics and PCB layouts. Document every chip in detail.

    4. Leave a FOSS development environment on disk. It should be on multiple media (e.g., USB flash dive, SATA SSD, SD Card, etc.) Keep the code on separate media, so that a future idiot will not have trouble with losing the code or getting confused as to which version is usable.

    It is acceptable to virtualize this environment, but do not leave only VMs. The environment must run on x86 hardware, with as few extensions as possible. (x86 is the most common hardware for developers.)

    5. Document this FOSS environment. Videos, books, etc. (No, they may not be able to just look it up on YouTube in 20 years.) Licensing may be an issue.

  80. Re:Will the Linux kernel even be around in 5 years by Bite+The+Pillow · · Score: 1

    Do not feed the trolls. Unless you're a goat. Are you a goat?

  81. same way it was 25 years ago by MrKaos · · Score: 1

    Use the shell. You can even encapsulate it in the device.

    --
    My ism, it's full of beliefs.
  82. Serious discussion by dbIII · · Score: 1

    Some people will not get the joke and think that was a serious suggestion.

    1. Re:Serious discussion by unixisc · · Score: 1

      It was! You have a textbook operating system, so until some other text book comes along w/ another OS to use as an example, this one will be there. It is a microkernel and has an extremely small footprint, and so will be portable to a wide variety of devices, particularly in embedded applications. Being in a textbook, it's extremely well documented for anyone who'd wanna spread it around. It has adapted NetBSD userland so familiarity w/ the programming environment will be there. It has also adapted the LLVM/Clang programming environment, and is probably good for Objective-C in addition to C and C++. It has gone through very slow evolutionary changes, in contrast to the major changes that each Linux version goes through. Which is why IMO it'd be a better option than FreeBSD

  83. 25+ years of code by Anonymous Coward · · Score: 0

    The code I work with dates back to mid 1980. That is around 30 years. Some parts are a bit hard to read, cause they coded things differently back then.
    But in the whole of it, the source survived the development environment did not. The code apparently started out being coded for DOS, then ported to Unix with a number of smaller ports inbetween. Bottom line: The code is still readable, with or without the original development environment.

  84. Large European Companies view of long term support by RandyJ · · Score: 1

    Not that I am recommending it but the Europeans under the Polarsys project are trying to solve the long term support problem for large projects. Ericsson with their communictation system and Airbus with their aircraft have found that they need active support for at least 20 where new features are added to systems. Then system maintenance is needed for another 15 years. I have worked on a number of Ericsson projects that have a developement system based on Solaris using IBM tools that are no longer maintained. Development is still going on and will continue for another 5 to 10 years. Ericsson and Airbus have now embraced an open source model for tools so that if the original vendor stops support, they could develop or contract out for support.

  85. Go all the way open source by Anonymous Coward · · Score: 0

    A lot of people said about using VMWARE. I wouldn't advise on that. Either go to an open-source virtual machine or, even better, an emulator. Who knows where VMware will be around 2040?

    Ide: don't bother. They will be long gone by then. Keep it simple. A text editor should suffice.

    Keep everything close to standard. Doesn't matter which one. C89, C++11, Python 3. Whatever. As long as you can have the source of that thing.

    You mentioned ubuntu. Fine. You can still find Linux 1.0 at Kernel.org, so you can be sure that the base components of your OS will be usable for a while, and upgradable. (kernel, libc, gnu toolchain).

    About hardware: either you go X86 or you go ARM (for easy availability) or you go to something specialized: IBM, or even PDP. Those things will be kept forever.

    Nothing stops you from buying 500 raspberry PIs and storing them somewhere....

  86. What about 2038? by Anonymous Coward · · Score: 0

    You are in trouble if you want a static solution. I don't know of anything that deals with the 32 bit time overflow or ask it's known as the year 2038 problem.

  87. MPE/V and MPE/iX by tmjva · · Score: 1

    MPE still runs code compiled in 1972.

    The fact that no one uses is is the fault of HP and the petty marketing effort they put into.

    AND the competetion.

    Fortunately now there is the Charon emulator from Stromasys. (But only for those who have an original hardware license.) Otherwise you get a hobby license.

    Another great HP marketing (and legal) move.

    --
    Tracy Johnson
    Old fashioned text games hosted below:
    http://empire.openmpe.com/
    BT
  88. No Need to Design One by Anonymous Coward · · Score: 0

    We already have a working example. It's the same Development Environment I've been using for more than 25 years: Emacs and C. It works.

  89. FPGAs? by Bengie · · Score: 1

    I wonder if an FPGA platform could be used. Make your own CPU and stuff.

  90. Delphi by MoarSauce123 · · Score: 1

    Working with a project written in Delphi. It is not quite 25 years old, but getting up there. One difference might be that we continuously maintain and improve it, it was not created once and then thrown in the corner expecting it to work forever. Although, it probably would thanks to Windows backwards compatibility. My concern would be finding the exact same hardware 10, 15, or 20 years from now. As OP mentioned, there are emulators for software and with a Linux based system you should be able to find some x86 hardware even 50 years from now that still works. The difference between that hardware and the hardware the embedded code runs on is that there is a magnitude more of x86 (compatible) hardware around compared to the embedded platform. I think you are asking the wrong question. Do not ask if there is a development environment that runs 25 years from now. Ask why the embedded platform is expected to work fine without changes for 25 years. If it does, great! But don't count on it!

  91. Why? by herbierobinson · · Score: 1

    We have been maintaining Stratus VOS since 1980, but it hasn't stayed static and it's very much larger than it was in 1980.

    Which gets me to my real point. If you aren't going to maintain it, keep the binaries. If you are going to maintain it, it won't be in a vacuum; so, you will need to move the software into new environments.

    --
    An engineer who ran for Congress. http://herbrobinson.us