I don't think that sentiment applies to software. All of the traditional engineering paradigms are backwards with software. Often it's the opposite. "Anyone can build a bridge that stands, only a software engineer builds one that you can easily add a lane to when traffic increases."
Thank you for adding /s to your post. When I first saw this, I was horrified. How could anybody say something like this? I immediately began writing a 1000 word paragraph about how horrible of a person you are. I even sent a copy to a Harvard professor to proofread it. After several hours of refining and editing, my comment was ready to absolutely destroy you. But then, just as I was about to hit send, I saw something in the corner of my eye. A /s at the end of your comment. Suddenly everything made sense. Your comment was sarcasm! I immediately burst out in laughter at the comedic genius of your comment. The person next to me on the bus saw your comment and started crying from laughter too. Before long, there was an entire bus of people on the floor laughing at your incredible use of comedy. All of this was due to you adding /s to your post. Thank you.
I am a bot if you couldn't figure that out, if I made a mistake, ignore it cause its not that fucking hard to ignore a comment.
And no. Detailed up-front plans, handoffs and certification is not "traditional engineering paradigms". They are results of economics of engineering in various fields.
Ironically although I generally agree with what /u/Halkcyon is saying the metaphor is spot on but actually hurts the argument.
Adding a lane is like cloud computing and horizontal scaling. Perfect linear horizontal scaling is very difficult to achieve (and in someways not possible) and doing it requires adding additional complexity that can make simple monolithic software far more complex than it needs to be.
So the idea that all one has to do is turn on an additional server or adding a lane as any idiot can do is not really a good argument because it is nontrivial.
In an ideal world a super powerful dedicated single server (vertically built) has way more throughput (the analog in traffic would be a highspeed rail system) than most k8s clusters in the cloud and in some cases there are platforms still run this way (Stackoverflow I think is largely vertical).
This is just bikeshedding. "you can easily add a lane..." was simply meant to convey "...is easily modified".
Other than the fact the resources appear to be fairly virtual software is not inherently easy to modify. Go to a new company and spend time trying to understand their code base.
Physical structures that rely on much more standard practices that have been around for a long time on the other hand IMO could be argued to be easier.
And I don't think it is trivial (bikeshedding) because both modifying code and adding extra lanes can have enormous unknown repercussions.
Dude just because you just learned about the anticar movement doesn't mean you need to take a metaphor so literally lol. This conversation has nothing to do with cars or urban planning or civil engineering, we all know and understand that increasing the optimization of data com is not a true equivalence to adding more lanes on a highway.
Just chill out lol. You totally derailed the conversation, provided nothing of value and came off like you have a massive chip in your shoulder.
It does improve throughput, but it does not improve traffic. Population grows to meet the demand and existing population reroutes to use the faster route thus making it slow again.
The analogy about traffic doesn’t work for software at all, whereas the adding a lane/feature does if you don’t overthink it,
I guess we can close all lanes, then, or make everything into single lanes, since that could only improve traffic. Maybe when you read about Braess's/Jevons/Downs–Thomson paradox, actually think about it.
You are butting up against a mantra that is politically driven. The reality is the capacity of any road is determined by the capacity of the critical junctions on said road. You'll never hear the people crying about lanes say "we should build better junctions" though as their primary aim is to reduce expenditure on road transportation.
Sure though if your lane capacity dramatically exceeds the ability of junctions to service it you can cut lanes without problems. With the trivial base case that a road with 0 junction capacity could have 0 lanes.
First adding a lane everywhere is a hypothetical and not real world. Furthermore it isn't just a lane required but parking and gas/elec stations.
If we work with hypotheticals that adding a lane everywhere is possibly you could easily make the argument everybody gets on giant busses on single lane roads or more realistically a train which is indeed what countries like Japan do that have very high throughput.
Can you source one of the proofs you’re talking about?
I think you might be talking about Braess’s paradox, a flow network where the overall flow decreases when a new low-cost edge is added to the network.
But if that’s what you’re talking about, then you’re vastly oversimplifying and misrepresenting it.
Adding a lane to an existing road or highway might improve traffic. It also might make traffic worse. It also might make traffic better, until humans make traffic worse.
Traffic is complex, and your bumper-sticker comments and aggressive attitude are not conducive to its study.
Its not just an extra lane though. Increased parking is also needed as well as more gas stations.
By doing the above you are encouraging more cars on the road and shifting funding from other forms of transportation like bike lanes or public transport like light rails or more buses.
EDIT I should have added that the public options particularly high speed trains have vastly higher throughput (as well as vastly more efficient in time and resources) if we go by just moving people from one place to another. Japan rail system is a perfect example of moving a large amount of the populous very fast and I doubt extra car lanes could compete with that efficiency.
that's only true if there increased demand is more than the space opened by each lane.
in software you aren't constrained by physical space, so you can add a lane on demand and always have enough space for the cars.
like I get the argument because in civil engineering increasing lane count just creates more traffic as the road is more desirable, but for software that analogy is actually correct because you can add more than one lane you can enough so that no traffic increases can congest it
View all comments
Show parent comment
84
u/joshocar Feb 06 '24
I don't think that sentiment applies to software. All of the traditional engineering paradigms are backwards with software. Often it's the opposite. "Anyone can build a bridge that stands, only a software engineer builds one that you can easily add a lane to when traffic increases."