10 ms·
I was always jealous of the stories about programmers in the 80s who wrote games in insanely small amounts of RAM. I kind of want that same kind of challenge ne
by abnry 6y ago
I was always jealous of the stories about programmers in the 80s who wrote games in insanely small amounts of RAM. I kind of want that same kind of challenge needed to be overcome in my lifetime.
- karatestomp 6y agoWrite apps for Garmin watches, especially supporting ones a generation or two old and on the lower end. Welcome to the world of removing code to shave a couple KB off the space the code itself takes up in memory so you can use it for data. Oh and for some reason their language and APIs are OO despite the fairly tight memory limitations, and despite not having any real need to do that (nor enough memory to really take advantage of any OO features even if you wanted to). So you've really got to watch (haha) yourself.
- nradov 6y agoThere are a lot of crappy third party apps on the Garmin Connect IQ store which burn battery life or cause random crashes or interfere with activity recording. On the Garmin forum another user found that a third party data field causes erratic GPS tracks for open water swimming.
- karatestomp 6y agoSome of that might just be sloppy development but I have a feeling that part of it's the SDK's fault. It's a weird mix of being too abstract to let you take tight control of performance but not abstract enough that I ever felt confident it was doing a reasonable job of taking care of that for me. Though maybe I'm wrong and that part's fine, I don't think I ever benchmarked power use (another thing: the tooling is about as mediocre as you'd expect for a proprietary platform like that) I tell you what, though: having a declarative UI where "declarative" is "now draw text at coords [some coords]. Then draw a square of dimensions [dimensions] at coords [other coords]" is a fucking refreshing break from webdev. Even more so than regular mobile dev. There's simply no room on the devices for much screwing about. You've got your lifecycle methods and some calls that draw things. You can listen for button presses. That's about it as far as the UI goes.
- adrianN 6y agoIf third party programs can disrupt core functionality that's a failure of the operating system.
- nradov 6y agoThe operating system is working as designed. Garmin wearable device customers demand maximum battery life with minimum size and weight. Within those constraints it simply isn't feasible for the OS to provide a high level of protection.
- adrianN 6y agoI don't understand what power constraints have to do with the operating system providing proper process control, but I'm not an OS expert. Could you maybe add a few sentences of explanation?
- sys_64738 6y agoIf the cpu is doing work it’ll consume battery life. You get longer battery life from a system mostly in a low power state. An app will get the cycles it requires - it’s a trade off which usually means doing more work means less low power states. Less efficient apps will not enable low power as often. There is cooperation here and it’s why Apple didn’t originally allow background apps on the iPad.
- skaevola 6y agoThe Garmin Watches don't have DRAM for power reasons. The processor is a memory constrained microcontroller without a hardware memory management unit. Without the MMU you don't get as powerful memory virtualization or process isolation.
- realtalk_sp 6y agoThose challenges are everywhere in data science/engineering. It's enormously expensive to do things shoddily in those domains and the resource constraints are very much bottlenecking what's practically achievable.
- jcadam 6y agoExpectations for what software should be able to do were quite a bit lower in the 80s too :) I started learning to code as a kid in the 80s on 8-bit machines. Seemed like there was rapid progress in the availability of CPU power, RAM, etc., up until the early 2000s and then things seemed to... slow down. Which is about the time everybody started to focus hard on horizontal scalability.
- rayiner 6y agoWere they? My recollection is that software back then had more features. Software today is neutered in comparison. (Compared Google Docs to Word Perfect from the early 1990s).
- xellisx 6y agoThink about Windows and how easily it was to change settings, you went to the control panel. Now in Windows 10 you have dig around to find things. It's like they are trying to hide stuff.
- dehrmann 6y agoNo, they're just maintaining two separate interfaces for everything.
- siberianbear 6y agoGoogle Docs isn't a great example. In WordPerfect's case, WordPerfect was the product and there was an incentive to make it great. Google Docs isn't the product. It's free. You're the product. And it only needs to be good enough to keep competitors from creating something so great that it removes their first-mover advantage. It's clear that Google has given up developing new features for it.
- dehrmann 6y agoA solid portion of Docs users are paid G Suite users.
- deleted 6y ago[deleted]
- ikeyany 6y agoIt's still very common in the embedded and IoT space. One such challenge is low-power/low-overhead encryption.
- Kye 6y agoIt's all relative. There's nothing stopping you from trying to make a complex 3D game that runs well on a low-end laptop. Think of how much waste there is in games made with popular tools like Unity. They trade performance for ease of development. See what happens when you go the other way.
- jamiek88 6y agoThat’s not a bad sub genre to create ‘integrated graphics only’ 3D games. Constraint based creativity needed!
- gameswithgo 6y agovideo games, high traffic websites, cloud infrastructure, deep learning, compilers, jits, databases, video editors and encoders, embedded, aerospace
- pixelpoet 6y agoRegarding your first example, there was this wonderful troll article recently about the Unreal Engine 5 demo: https://www.theolognion.com/unreal-engine-5-is-meant-to-ridicule-web-developers/ https://www.theolognion.com/unreal-engine-5-is-meant-to-ridi... P.S. Please don't shoot the messenger, I'm just linking it.
- m4rtink 6y agoWell, microcontroller programming is like that to this day - many MCUs have performance and memory pretty simillar to early classic microcomputers - and in some casrs they actually use the same chip design. :)
- qznc 6y agoYou can just go into some embedded domain. I work in automotive and in the current project, we have a budget of ~2MB RAM. Also, you still worry about small amounts at Google scale: > “It’s pretty slow,” Jeff said. He leaned forward, still relaxed. “So that one was a hundred twenty kilobytes,” Sanjay said, “and it was, like, eight seconds.” “A hundred twenty thousand stack calls,” Jeff said, “not kilobytes.” [...] In a sense, they had been occupied by minutiae. Their code, however, is executed at Google’s scale. The kilobits and microseconds they worry over are multiplied as much as a billionfold in data centers around the world. – https://www.newyorker.com/magazine/2018/12/10/the-friendship-that-made-google-huge https://www.newyorker.com/magazine/2018/12/10/the-friendship... If you are in a startup where you rather worry about product-market fit, of course such minutiae is not relevant (yet).
- mD5pPxMcS6fVWKE 6y agoWrote a game for PDP-11 ... operating system, all the drivers, compiler, editor and your code had to share the same 65636 bytes of memory. Try that, Elon Musk!