Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Am I crazy to think any sort of talented Eng could re-engineer whatever tf this piece of software is in a few weeks or months? Identify the black box. Figure out the inputs and outputs. Reverse engineer where possible. Recreate the black box in a modern tool that’s easier to maintain. No reason to be stuck on this ancient version of windows at this time. I haven’t touched 3.11 in like 25+ years.


> Am I crazy to think any sort of talented Eng could re-engineer whatever tf this piece of software is in a few weeks or months? Identify

Reminds me of people who know little of the field of computing and the efforts involved and think that solutions spring out of just saying "it's easy, why don't you do it?!".

No, it's not.


Everything is easier than people make it out to be. Especially for skilled engineers.


Everything is always easy as a purely mathematical/technical problem. Add in dealing with the real world - fellow workers, customers, regulators (especially in the case we're talking about), etc., and it gets complicated in a hurry.


I don’t know about trains but in medical a switch to a newer system causes enormous effort to revalidate so it’s often easier to keep the old OS and software.

Rewriting the software is probably not much of a problem but the paperwork around it is.


So you put out a req for a new hire and keep it going forever? Nah. Bite the bullet, eat the cost and get it done. But I guess this is the difference between startup world and European bureaucrat land.


It’s the same in the US and most other countries. And you don’t want to “move fast and break things” with things that may kill people.


If you were doing a hobbyist project, sure. With something like this which has safety implications, there would be a lot of recertification required, not only of your software but also of the new hardware that it will require. This is not trivial, and would be very resource intensive. And don't forget that you have to roll out the new hardware to the trains.

Or - you can use the existing Win3.11 systems, which are apparently still working just fine, and just update and test a single application.

I can lend you my Petzold, if you like.


https://en.wikipedia.org/wiki/Second-system_effect

A system that old that has been working for as long will surely have so many quirks, exceptions, bugs and workarounds deeply engrained in its users' processes. A naive port and rewrite will probably need many man-months of lost productivity spent recreating all the quirks of the original piece of software, resulting in an even less maintainable second iteration.


What if the inputs are twenty floats, and time-dependent?


they’ve had 30 years to replace this. easy peasy.


But does it cost "a few weeks or months", or "30 years" of developer time? Which is it?


Guaranteed it’s a few weeks or months. Nothing is that complicated. Especially if it runs on windows 3.11.


I find it heartwarming that you've never seen software more complicated than a few months of work. I wonder what you typed that message on.


Again, what insanely sophisticated system could possibly be running on 3.11? Identify the inputs and outputs and go from there. It’s probably a driver. Or something that operates an antique piece of hardware. Dig into the binary protocol. Pen test the heck out of it. Reverse engineering is not hard.

I’ve done some wild shit in my day. Gotta think outside the box and go to first principles. If it looks like a duck, quacks like a duck and walks like a duck it’s a duck. You can replace things pretty easily when you identify the perimeter of a piece of software.

These days we have pretty powerful decompilers too. I’d posit I could replace this tech for the same cost of one year of whoever they are hiring for this to perpetuate the antiquated crap.


In general there is no real reason why a software running on Windows 3.11 could not contain 100 years of development time. What seems less likely is that the majority of that code would be highly hardware or system specific and would require porting to a modern platform. But as we do not really have any idea what kind of system we are talking about, it is hard to speculate.


If you think that "Identify the inputs and outputs and reverse engineer it which isn't hard" is all that's needed to re-create some bespoke piece of software then I hope you will never-ever have the chance to put this in to practice for this sort of safety-critical stuff.

"Oh yes, we missed that one output that only happens under these specific conditions and now the train crashed – oops!"


that software is certified and tested to work with those trains...do you know what it takes to test and get certified?


Terrible attitude.

“Hey, our software works and is certified but it’s ancient and no one knows how to maintain it. If was written 30 years ago on a version of windows that doesn’t even support the internet. We need to upgrade and recertify”. This is an easy argument.


"These trains have been working fine for 32 years, after we ironed out some bugs with the software in the first six months of use. We absolutely don't want to have trains failing, as it's very disruptive for passengers, so let's keep the existing software working for a few more years. The trains will be scrapped in 2030 anyway."


>Recreate the black box in a modern tool that’s easier to maintain.

I assume in the newer trains they already recreated new systems. For the old trains it's just not worth it to modernize, as it's incompatible with the newer trains and thrown away eventually.

And who knows, maybe they gave it a try in the past, and it did not work out.

What you wrote reminds me a bit of a friend who asked me 15 years ago when he installed Java: "Who uses Java anyway?". You just have to change your perspective from an end-user. Same for Windows 3.11.






Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: