Oddbean new post about | logout
 The sissification of software development and its consequences has been a disaster. 
 Sissyfication is how it's spelled I think.  
 what's that? 
 I find most software development nowadays is just a shadow of it once was.

Use this framework, no use that framework, and the cloud, just use the cloud.

My brother in Christ, your app requires GBs of memory to show me my electricity consumption of the month.

Inflation isn’t just monetary I guess.

“Do you pine for the days when men were men and wrote their own device drivers?” - Linus Torvalds. 
 got it. I don't really have an opinion since I started 6 months ago coding more seriously.

Any recommendations for a noob like me? 
 C Programming Language by Brian Kernighan and Dennis Ritchie.

This should help you learn the inner workings of C.

You come from a Python background, right ? I suggest you start by porting all that you know in Python to C: data types, files, strings, algorithms, sockets, threads, etc. Take it all and implement in C. 
 that's what I was doing, then I found Go and will continue with it.

Go to me seems like C but "more modern"in the sense that it gives less control to the programmer, which is a good thing for me rn! I don't want too much control, or I'll mess up things! 
 By all means, pursue what seems best to you.

But don’t be afraid of “more control”, you won’t brick your PC.

And you’re not that CrowdStrike intern who brought down half the internet because of a null pointer 😂 
 Personally I find the SaaS model to be more odious, because it makes it impossible to run old software.  Planned obsolescence. 
 It’s because it’s not a real service. A product gets developed, and you basically lease its use. You’re renting software. Is that the service ? Where is the special skill you need that only few people can perform ?

Am I wrong ? 
 Nope that's exactly it.  Why do I need to rent software?  My computer can run it.

Browsers have made everyone lazy.  Even desktop apps run in WebView now (I'm looking at you Electron). 
 We’ll do things differently. 
 Desktop apps for all my friends! 
 That run smoothly. Without needing GBs of memory to open tabs. (Looking at you Chrome) 
 Me and my homies love desktop apps 
 I don't mind the ability to open an app in a tab instead of an app tray. Beyond that the security sandbox (or the perceived one) I'm a big fan of. I like a clean desktop and I put all of my data on servers so I can access my stuff from just about anywhere. But then optimization be damned we need to move fast and push features. Wow now I need 6gb of memory just to open 4 tabs. Wow now we need browsers to unload tabs to conserve memory. Wow apps used to run under 1mb with a GUI. Wow I can launch a single threaded C app with less than 1mb committed including mapped libraries.  
 “Please bro.
Time to market bro.
We must deploy bro.
One last feature bro.”

https://i.imgflip.com/49su9f.png 
 worse is better

features are the devil 
 “Literally 1984” 
 nope, practical engineering 
 C shared libraries are so baller. But we "vendor" entire OSes now so idk. I think the next app container will just be the OS as well. 

I've had many a docker container fail to build on me. I think people don't realize how fragile this all is. 
 I build many a shared library, and often vendor code because its much easier to manage when code updates appear in my source control. My container apps are build only. I just use CI to package up the bare-metal app then the user builds the container on their machine. I like that a lot. Packages are only a few mb instead of 120mb and such. Plus the user gets it all, source and config they can do whatever they want, I promote the freedom to mess with things! 
 Yeah, it's just browser-software rental.
If "service" made the difference, desktop and mobile-native software providers wouldn't offer services, like hosting and support, but they do.

SaaS is just easier to bugfix universally, without having to inform anyone, that you messed up. Stealth updates. 🤣 
 Easier to fix the bugs that wouldn’t have been introduced had they developed for cross-platform desktop. 
 Much more control, from the desktop. 
 Your daily reminder that @finrod is always right and his timing is impeccable.

nostr:nevent1qvzqqqqqqypzpnsmlxkey9jd7gnmlj4jsyce83swkspp6ddlfwaud73yc4sdpulfqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9ujumn0wd68ytnzvuhsqgpwldag90leujxed46akpw07ykv05hlhp93a2j292xgaa8djv4kpclxj4rd 
 I'd like that too! Something I try to do when I can with my apps, is create abstraction libraries that allow you add the data-structures to your project without the runtime. Most of my apps work that way. Just import the library and access data directly. So you, in theory, should be able to build local apps without all the server code loaded.