This is what blows my mind. a 2015 smart phone has more power than everything else. proof that modern programming can be massively wasteful on resources.
This is what blows my mind. a 2015 smart phone has more power than everything else. proof that modern programming can be massively wasteful on resources.
Not really. The things that regular end-users do on their smartphones are computationally much more intensive than what you deploy on the edge in space. I'll be the first to gripe about the inefficiencies of modern front-end programming, but the software on a Mars rover also just doesn't have that much number-crunching or throwing around ginormous assets to do.
A much more interesting question is to ask what you could do on Mars if you had that compute power. For example, how realistic is it to expand further on autonomous capability.
As a simple example, greater autonomy might allow the rovers to do more by avoiding the number of times where they have to wait for the speed of light (20 minute one-way latency plus annual blackouts) & bandwidth delays for someone at JPL to learn about an obstacle, decide what to do, send commands, and see what happens. They’ve spent a lot of time doing that cautiously because the failure mode of some outcomes is losing a rover, but there are other scenarios where the same is true in the other direction so I’m sure they’re keenly working on ways to make it better able to handle safety navigation and various recovery scenarios for things like losing communications, but I’d expect that might come in the form of a system which operates as they have but logs what it would have done so they can compare the human and robotic commands.
It's only very recently that they've started to look at what the sensors are giving onboard the craft. I'm glossing over some very important details, but mainly, the sentiment holds: Spacecraft didn't have to do much, so they didn't have to think much.
I guarantee Starlink isn't using components from the 1990s.
Depends what you consider resources. CPU cycles are resources. Programmer hours are resources.
Alternatively, consider the possibility that what a smartphone does is a lot more computationally complex than you realize.
Disclaimer: I worked on smartphone chips for many years, including the Qualcomm chip that ended in Mars.
The things that seem the most computationally complex, like viewing hd video streamed over the internet in realtime, work fine on my phone. But mundane tasks I know shouldn't by any rights be complex regularly take forever to complete. Because they're probably negotiating some nonsense protocol for the bluetooth headphones I connected three weeks ago while facebook tries to access my gps signal for the tenth time this second while sending an updated list of every gesture, tap, and scroll to thousands of separate parties, each individually as a separate task
Have you considered the possibility that the phone is doing what most phone users want, and that their needs being more complex than yours doesn't mean that "programming can be massively wasteful on resources"? Instead, the phone you purchased is not fit for your purposes.
> But mundane tasks I know shouldn't by any rights be complex regularly take forever to complete
It is also possible that what it takes to complete that task is somewhat more complex these days than you realize. Not because it's poorly programmed, but because the software is designed to support many more features than you are currently using. An individual user may only rely on 5% of the features, but different users want a different set of 5%. Supporting other people's needs isn't any more wasteful than supporting your needs.