| General > General Technical Chat |
| Which is more complex - car or an operating system? |
| << < (4/9) > >> |
| T3sl4co1l:
Ah, another opportunity to wax philosophic.... :-DD I agree with the statement that comparisons aren't useful -- but for different reasons. Consider: How did we arrive at modern, well, anything? Complex software systems are built upon simpler software systems. But they're also nearly useless without complex hardware systems to run them on. Complex hardware systems, in turn, are built upon simpler hardware systems. And those hardware systems are built upon complex industrial processes, which are built upon simpler, and so on and so forth -- we are dozens of generations in at this point, the list goes on. It is not meaningful to speak of the development of one technology in isolation, because it depends implicitly upon every other supporting technology that is at a similar level of development. The whole reason we have this complexity today, is because we had a similar increase in complexity in the previous generation, and so on. A more concrete example that motivates this line of thought, is the thought experiment of the time travelling technologist -- if you were transported back 100, 1000, 10,000 years, whatever; even given a robust device to access current knowledge upon, not relying on your memory alone -- what might you be able to accomplish? A typical answer seems to be ~roughly~ 18th century development, but on a much smaller scale, and only after many decades of concerted effort; and assuming adequate patronage from whatever political power you happen to be working under, and assuming no death from the great many natural causes that were typical of the time. I don't think it's reasonable to compare complexity, when the design of a given, exact item is impossible without some chain of prerequisites. For two items at the same depth, their complexity can be considered equivalent, or perhaps quibbled over in terms of modest degrees of complexity, which might be measured in some agreeable method, like minimal person-hours, or project time or budget, to take that existing technology (previous designs, theory, SDKs, etc.) and make the finished item. Whereas things that exist on different technology nodes, are intrinsically ordered. So, that laid out, I think there are some refinements that can be made: - We might make something with a given technology node, but it doesn't need to be made that way. Many things can be made, across many nodes, that are functionally equivalent. An audio amplifier can be made with ICs, transistors, vacuum tubes, or indeed, carbon granules. We've made a stopwatch (as such) in pure mechanics, discrete transistors, integrated circuits, and software on still-more-advanced integrated circuits; are they all equivalent? (In other words, should we relax the requirement that we consider the technology required to create an exact particular item, but something that is, in some useful ways, equivalent?) - There is a cost-scale tradeoff inherent in economics. Consider the mainframe computer of the 1950s, which might've cost as much as a small factory; are they therefore equivalent in some sense? Or compare the minicomputer of the 1970s to the personal computer of the 1980s or 90s: they might have equivalent performance, but one cost exponentially more than the other; does that make one or the other more advanced? - We do have to be mindful of the minimum investment criteria. It's always possible to make something cost more, so of course we need to avoid cases that ran absurdly over budget, under their performance target, were affected by corrupting influences, etc. They're not more complicated just because of that. Conversely -- we might argue that such influences are inseparably part of the game, and we should use a broader scope. After all, if the locals object to construction of a new hi-tech factory, surely part of that technical node includes either addressing their concerns, or convincing them it's beneficial? Technology isn't just physical objects, it's our entire society top to bottom, thoughts included! Overall I think the idea of technology nodes, or generations, is a useful one, but I'm not sure that there can exist a simple, convincing method to compare things of greatly varying complexity as well as technology. Well, that's just it -- I've enumerated several axes with which we might measure a thing. It's just trying to order multidimensional vectors -- you can create a definition, but there can be no unique ordering of them. Tim |
| 0xdeadbeef:
--- Quote from: CatalinaWOW on June 02, 2020, 06:12:37 pm ---Depends on what you mean by complexity. Windows has hundreds of thousands of lines of code, while a car has only a few thousands, or possibly tens of thousands of parts. --- End quote --- I guess you underestimate both by quite a bit. I guess a typical engine control unit (gasoline, diesel) already has a few hundred thousand lines of code. Maybe already a few millions. Haven't checked recently but from what I know just the application functionality for something like lambda control already has thousands of lines of code. Hard to tell nowadays with auto-generated code and things like that. And that's only one of the many control units. I guess the cockpit stuff with multimedia and navigation (even letting aside driving assistants) could already use much more code than the engine control unit. Definitely more bloated code for sure. And don't underestimate how many control units (i.e. microcontroller systems) there are in a car. Lots of sensors and actuators have their own little control unit, letting aside things like the gearbox, the airbags etc. I'd still think though that Windows's complexity with all the subsystems, drivers and what not will be magnitudes above all the stuff in a normal modern car combined. |
| CatalinaWOW:
--- Quote from: 0xdeadbeef on June 02, 2020, 06:34:45 pm --- --- Quote from: CatalinaWOW on June 02, 2020, 06:12:37 pm ---Depends on what you mean by complexity. Windows has hundreds of thousands of lines of code, while a car has only a few thousands, or possibly tens of thousands of parts. --- End quote --- I guess you underestimate both by quite a bit. I guess a typical engine control unit (gasoline, diesel) already has a few hundred thousand lines of code. Maybe already a few millions. Haven't checked recently but from what I know just the application functionality for something like lambda control already has thousands of lines of code. Hard to tell nowadays with auto-generated code and things like that. And that's only one of the many control units. I guess the cockpit stuff with multimedia and navigation (even letting aside driving assistants) could already use much more code than the engine control unit. Definitely more bloated code for sure. And don't underestimate how many control units (i.e. microcontroller systems) there are in a car. Lots of sensors and actuators have their own little control unit, letting aside things like the gearbox, the airbags etc. I'd still think though that Windows's complexity with all the subsystems, drivers and what not will be magnitudes above all the stuff in a normal modern car combined. --- End quote --- You misunderstand me. I am saying that in some sense mechanical systems are more complex because they have a more complex environment and more complex choices. I would agree with your estimates of slocs for both cars and windows. |
| mc172:
Don't forget the incredible complexity involved in designing the parts themselves, rather than just the software. The crankshaft, the fuel pump, the headlights, the housing for the ECU... Etc. |
| Syntax Error:
Perhaps another question is, which part of a car does not require an operating system? Just about everything from the oil flow sensor to the courtesy light subsystem is chattering away on the CAN bus. Name one device in a modern vehicle that does not require a bootloader/RTOS to function? Just one device you can fix with a multimeter rather than spending a really expensive diagnostic day/week plugged into some customer care service center, trying to figure out why the cruise control only works when the parking brake is engaged? :-// Fix it? It's your software mate. |
| Navigation |
| Message Index |
| Next page |
| Previous page |