Live data from Hacker News

A Parable by Dijkstra (1973)

cs.utexas.edu

81–90 of 107 posts

Re: A Parable by Dijkstra (1973)

#82

Earlier quoted context omitted.

Depends on what you think you're teaching. Are you teaching computer science, or are you teaching software engineering? Hint: Of your graduates, probably 95% will work as software engineers, and only 5% will be computer scientists. But CS departments think they're computer science departments, even though they mostly are located in the college of engineering. (I accidentally typed "enginerring", which I thought was a…

I have some university degrees in (non-software) engineering. Engineering school is pretty far from a vocational program, but engineering students often mistake it for one. When I was in industry, it was easy to spot the people who'd made that mistake -- they couldn't engineer their way out of a wet paper bag. Engineering is applied science, and if you don't understand the science, you're going to have a heck of a ti…

Yes, exactly. Chemical engineers needs to know chemistry, but they need to know more. They need to know "how do we make this stuff, efficiently, at scale, without blowing up the plant." They're not going to get that from the chemistry department.

So, does a software engineer need to know some computer science? Absolutely, but they need to know more than that. They need to know how to efficiently produce working software at scale.

And, to return to my previous post, starting with Haskell could still get you to a software engineering education, as opposed to a computer science education. But it feels to me like the initial direction is aiming at a CS education, not at a software engineering education.

Re: A Parable by Dijkstra (1973)

#83

I thought the moral was going to be that accommodating toiletless cars cost more than simply building all cars with toilets.

With the end solution, a passenger is only one car length from a toilet (which would be the case if toilets are at the end of cars for structural reasons anyway) and they only pay for toilets in half of the cars.

Re: A Parable by Dijkstra (1973)

#84
post #67

The math is simple. This did not require a mathematician, just an cost benefit analysis. ($ * toilet each car) < shunting{($ * action * yard) + ($ * training * employee)} + ($ * accident cleanup) + ($ * customer bad will)

Read until the end again. The solution they came up with still only put toilets in 50% of the cars.

And from a system perspective, I would wager that the cost is still higher given the complexity of their final solution.

Re: A Parable by Dijkstra (1973)

#85

Moral: The engineer who conceived of the innovation was forgotten and not compensated for it, and the train owners made the bulk of the money. Sounds like software engineering to me!

I feel like the actual moral of the story should be "don't underestimate how trying to scrimp on a vital resource can result in horrible logistical complexities and a nightmare UX".

All true, but I would add that "in order to get back to the previous system that actually worked, you may have to provide a fig leaf for management, so that they can pretend no such thing is happening." We are back to one toilet per car, but we have to use cars of twice the size (with superfluous coupling in the middle that is never uncoupled) in order to pretend that we did not go back to the original system.

Re: A Parable by Dijkstra (1973)

#86
post #78
post #56

Earlier quoted context omitted.

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

Projects running over-budget Projects running over-time Software was very inefficient Software was of low quality Software often did not meet requirements Projects were unmanageable and code difficult to maintain Software was never delivered Yeah, that one.

A "crisis" would imply that:

1) we don't get increasingly bigger and more powerful systems

2) we're behind some previously existing "no crisis" state

Both (1) and (2) are factually wrong.

Projects running over-budge, over-time, often not meet requirements etc, are not a crisis in the actual meaning of the world.

It's just a normal state of affairs.

And despite that we have got from the laughingly primitive software in the 50s and 60s, to the software "eating the world" today, and have systems with 10 to 100 or 1000 more lines of code, and way more functionality -- even in our pockets.

If only "crisis" looked that way in other domains too.

It's not a crisis, it's just unrealistic expectations.

Even if we could do 100x better in the _future_, it wouldn't justify the term crisis for the state we're in, and have been for decades.

Re: A Parable by Dijkstra (1973)

#87

This solution is wrong. Rolling stock needs maintenance, and if you keep units permanently paired you can easily run out of units. In fact there is no easy solution given realistic business constraints. You can either put toilets in every car, which has a cost because it reduces available seating. In the best case you’ll lose money because of the lost seats. In the worst case overcrowding will make the toilets ineffe…

All metaphors melt if you push them loudly enough.

Re: A Parable by Dijkstra (1973)

#88
post #66

I guess the ultimate solution assumes that all the turntables are long enough to deal with at least two-car consists? Seems strange that the company would cheap out on a little bit of porcelain in each car and then overprovision its turntables in such an extravagant way.

With the toilet at the end of the carriage that is connected to its corresponding non-toilet carriage, and consequently approximately in the middle (the offset is the "last three feet" that Dijkstra mentions), there is no longer a need to reverse any two-carriage set.

Turntables are not just for reversing. A turntable also moves cars (and engines) between multiple tracks and storage facilities. Two-car sets need to be moved even if not reversed.

Re: A Parable by Dijkstra (1973)

#89

I thought the moral was going to be that accommodating toiletless cars cost more than simply building all cars with toilets.

I think he understates the cost of putting a toilet in a car, as it takes up space that could accommodate fare-paying passengers.

Re: A Parable by Dijkstra (1973)

#90
post #88

Earlier quoted context omitted.

With the toilet at the end of the carriage that is connected to its corresponding non-toilet carriage, and consequently approximately in the middle (the offset is the "last three feet" that Dijkstra mentions), there is no longer a need to reverse any two-carriage set.

Turntables are not just for reversing. A turntable also moves cars (and engines) between multiple tracks and storage facilities. Two-car sets need to be moved even if not reversed.

You can do that with tracks and switches - in fact, you can also reverse rolling stock with a 'Wye'. I believe turntables were mostly used to reverse steam locomotive - tender sets, and to build engine sheds in constricted urban areas where there wasn't a lot of room for a switch network.
Post reply on HN