Computers Aren't Fun Anymore (2020)
feifan.blog
feifan.blog
SIGH.
Why doesn’t the author try many of the other areas of computing?
Game engine development, live coding environments, artificial intelligence, virtual and augmented reality, Theoretical computer science and algorithms, embedded hardware and low energy computing, mobile development, compiler design, FPGA development, computational finance, distributed computing frameworks, blockchain development, automated theorem proving.
All of these areas are super interesting and fun,
The author saying “Computers aren’t fun anymore” and then whining about web development is like me proclaiming that Earth isn’t fun anymore because I’m tired of my bedroom.
$1 microcontrollers, robotics, hundreds of programming languages that one can choose from, IoT FPGAs, and so, so much more. And what's even better is that computers are now everywhere, so we are no longer building things that are locked in a box on your table. You can command real-world objects, move real money, alleviate a disability, change people's lives, and all through your code.
I also believe that the most crucial aspect in all of this is that there's finally readily available, well-presented knowledge about all those things. Incredible educators and hobbyists in many of the fields mentioned above spend their days trying to get people interested and inspired and help them learn for FREE. Knowledge and expertise on most topics nowadays are just a few clicks away. I LOVE this.
It depends on your definition of fun. This is my blog, so I'll use my definition — "fun" to me is being able to get my computer to effortlessly do things I have to and want to do. Flow state and all that.
To me, I don't find most of these areas "fun". Interesting, worthwhile, valuable? Yes. Fun? Nah. None of these areas reduce the friction of using a computer for the things I use it for — tracking my budgets, life metrics, doing research and tracking my notes/thoughts, and ideally a bit of digital and IRL automation. Most of that (along with my day job) falls squarely in the realm of web development.
Computers and software are tools; they're means to an end relative to my interests. Tools should at least not get in the way, and ideally they'd be a joy to use.
For instance, Excel for me is the tool to use for a lot of numbers work, and I find Excel exceptionally more fun than a PL. However, it's not the way to make apps.
Now, if I wanted to build apps using the fun approach of Excel, then I can do it now with my new and shiny programming language for board games: http://www.adama-lang.org/
Yes, I wrote a language for board games! Why? Well, I'm a dummy. Ultimately, I'm trying to make it effortless to connect people around some state and what-not. I hate databases, and I have spent the last decade in infrastructure understanding the problem space.
Now, I am finding myself want to effortlessly build the user interface to the board game back-end, and so here I am foolishly inventing a new way to think about building products.
I believe your definition of fun is appropriate, but the bad news is that we are living in the dark ages. The only way out is to try to invent something, risk failure, risk scorn from our peers, and hope that we discover something. It's the only way out of the dark ages.
It's technically code, but it's meant for description rather than implementation, and it's designed to be easily understood by people who've never been exposed to data structures or flow control.
Here's what I hope will become the shell for this computer (live-updating, postfix): https://archive.org/details/akkartik-2min-2020-12-06
The big caveat: I have _no_ idea yet how to build a network for this computer. It has a screen and a keyboard, and I can probably get some sort of persistent storage. But that's about it for a while.
Which time in history are you referring to that this was possible?
From what I can tell, it's easier now than all the years i've had a computer to do whatever I want, pretty much whenever I want.
This wasn't the case for most of the 90's and 2000's.
Not only that, but the sheer amount of things I can use my computer to do has sky rocketed.
>tracking my budgets, life metrics, doing research and tracking my notes/thoughts, and ideally a bit of digital and IRL automation. Most of that (along with my day job) falls squarely in the realm of web development.
I disagree that most of those things are 'squarely' in the realm of web development. You could do many of those things without web development.
The friction you're experiencing may be in fact trying to use the wrong tool for the job.
>Tools should at least not get in the way, and ideally they'd be a joy to use.
Again, to reiterate my point, hammers are fun to use as long as you're hammering nails, trying to hammer screws is much less fun, likewise, trying to screw in a nail isn't very fun. It's an exercise in frustration.
Maybe exploring different technologies to achieve the tasks you want rather than dropping into a web development mindset for every single thing you need to do on a computer will make computers fun again?
Zero local tools required to code and deploy a URL from a reactive notebook.
I made this as soon as I discovered the environment was fun, my contribution is extendeding it to serverside programming.
So it's a live coding environment and web development platform. Fun and pragmatic, exactly coz I felt the way you did, I don't anymore.
Computers were never fun in that sense. Probably never will be.
no offense but this is a weird definition of fun.
If it's fun and easy then you're probably not solving any hard problems or building products that people want.
I've never considered computers to be fun. As you mentioned, they are tools to solve some problems. Some are interesting and challenging, most are tedious and grinding.
Computers and software engineering is a craft, way to make money.
For the first kind, I'll make a single fullstack repo that hot-reloads both server (maybe F#, Kotlin, Go w/Generics?) and client (Vue/TS) locally on autosave, and deploys on commit/push. That's fairly frictionless to my expectations.
You could also solve the metaproblem, make things more fun, streamline out all the unfun things in your toolchain/process.
Most of that 1) relates to web development in some way (i.e. you get the data from a website), and 2) has gotten harder over time as software gets in the way.
If it's all you live and breathe, I'd probably feel the way you do.
I spend less time worrying about browser compatibility, I have better tools now for building things, Javascript is faster. And if I want use the old methods, they still work. You can still deploy a website today using mostly the same methodology that you did in the past.
But very little of that stuff was fun. I remember trying to absolute-position images on the page because CSS didn't reliably support border-radius. That wasn't fun. I remember wondering how to embed Flash into websites because I needed a completely separate language to do something that can be hammered out in a day in a Canvas now. That wasn't fun.
Building a website is way lower friction today than it used to be. It's just that we have higher standards today, many people over-complicate it more than they need to, and our understanding of what is easy and low-friction has evolved and we can more easily see the problems of modern web dev. What was easier to do in the past on the web than it is today. I can set up a static Netlify site to serve images in 5 or 10 minutes, it's drop-dead simple.
In terms of treating computers like tools, this is something I actually do agree with, and do agree that if you stick with mainstream tools you're going to continue to be frustrated in that area. Everyone is different, this is not a universal suggestion. But my minor suggestion is that what you're feeling is the same frustration that has made people like me get progressively more religious about Unix philosophy over the years.
This is maybe not useful advice, but I just spent the weekend configuring the i3 window manager on Linux to integrate with all of my applications and handle modal keybindings, and it is genuinely the most fun I've had on a computer in a while -- it's so well documented and easy to work with and flexible and controllable that it really did feel like just chaining everything together and trying things out and seeing what did and didn't feel good. i3 is an absolute joy to configure.
There are programs out there that don't fall into the data-silos you're frustrated with. Matrix is a fun protocol to build on top of if you're sick of Slack. Image viewers like sxiv are really composable, tmsu is enabling some really powerful workflows for me with how I manage files. I love that when I buy ebooks and load them into Calibre I can edit the layouts and fix typos directly in my ebook manager. There is a world out there of programs that work well together, that are designed to adapt to your preferences and then get out of your way. They're just often not the popular proprietary apps.
Computers are not tools for programmers, they are augmentative systems for all activities of human intellect, or, they should be. In contrast, my feeling is that most of @malux85's tech laundry list are implementation details, research areas, maths: support systems & tech-wonky technics.
More tech for techies is not fun. More tech for industry and dollars is not fun. We need a real return to "create more value than you capture," (Tim Orielly) we need to be opening up potentials & possibilities, that others might roll with & explore. I thought you expressed that well, with this humble core statement:
> Of course you have an extensive list of things you wish your phone/computer/most-used apps could do; everyone does. You know the majority of it will remain a wishlist; there’s almost no hope of the feature you really want being implemented. This isn’t empowering.
Here here.
I have my own pet theories. Applications have gotten too big, prefigured too strongly. Computing itself, general systems research, has suffered greatly. The tides have been going the wrong way for years. Spotify used to have some really amazing plugins, with all sorts of awesome wild experiences. Closed. G+ social network launched so very long ago with only one api call: read posts. And it never grew another capability again. Applications have become totalizing experiences, where-as in the aughts there was this vision of intertwingularity, of interconnectedness, where each piece of computing was a reagent among a greater sea of computing systems, and that the user would have powers to shape the world about them.
Today's PG "what i worked on"[1] has one strong lesson that shows up a couple times, and it jives with this way things have gone: "the low end eats the high end." 'Worse is better,' (1989, in a book on lisp) in another form sort of/not really/but similar.
But I think our quest to build low systems has peaked. We've consumerized our industry to death, driven the ambition to compute better out. Everyone will swear to you that users want simple, but the whole paradigm is a black iron prison of a reality few have tried to escape from or even picture alternatives to. It's been profitable to industrialize, to take, to capture the softness of computing, and turn it into hard, simple, product. And with communications technology we've arisen radical new communicative capitalism, kept the simplified computing engaging by having it global-brain sized. Yes, I think it's ever so "realistic" to put forward "worse is better." But I continue to believe that computing is a much more broadly interesting & engaging medium, if we can undo some of the shackles that our assumptions have lead us towards, if we can build bold open exciting programmable-for-everyone malleable end-user-programmable information spaces. Make things live, data-oriented[2], record the events/processing that happen as more logged data... some possible suggestions. Towards expanding user agency, radically, across systems.
Computing needs to go high road, some day. Fancier forms of computing need to emerge, not for techies, but for us all; computing where humanity has agency & power & respect, can monitor observe & see the systems in action, the pitri dish of computing unfurling around them, and where they can replicate & experiment & test their agencies & powers. Computing must again fight for the user. Thank you for this wake up call Feifan, for identifying our disconnects, the impotency we have wrought.
I'd say it's more analogous to saying: Earth isn't fun anymore because I'm tired of North America, Asia, Europe, and Africa.
Web development takes the lion's share of computing people pay for which translates to the work people will do (we need money for survival). There are opportunities outside of it but they're few and far in between and highly competitive because few people want to deal with the monstrosity web development has turned into.
I've worked in niche industries that typically avoid touching web development for quite awhile and even I'm being pressured to reimagine these efforts as web applications, containizered, and deployed as microservices even when that approach is non-sensical in context. It's pretty difficult to avoid anymore from my experience. It used to be incredibly easy.
This just isn't true. There are so many systems where the web component is just the tiny part of the iceberg you can see, but underneath some form of browser client there's a huge mountain of computer-based technology. Concepts like containerization and microservices are far bigger than the notion of current web development.
This is a big area to wrap your head around. Best practices continue to change, risks change, technologies change, the scale of demand can change. It's complex.
As someone who's been working from his bedroom for the last year, this actually seems kinda true in a pandemic-induced depression sort of way.
But the computer industry as a profession, certainly way less fun. In the 90s Silicon Valley was places like Sun, SGI, HP, Cisco; building custom hardware and software. One got to work on compilers, kernels, server code and network stacks and all kinds of projects where correctness and performance mattered. Rewarding fun work.
Today Silicon Valley is Google (ads), FB (ads), NFLX (movies), Apple (cool, actual hardware and software product, but IMO too tightly walled-garden to be any fun).
Now, of course, yes there are people still working on hard problems and low level systems but those jobs are few and far between, have no recognition anymore and don't pay well. To follow a path of career progress, it's just adware or dumb webapps.
What he did was giving an incomplete list of troubling components for illustration and not picking the key and only components to improve for final resolution.
Also escaping to fun areas will leave all the rest - which are the overwhelmingly dominant part, used everywhere, everyday, by everyone - the same. Will not solve a thing but give the personal comfort of avoidance.
Go invent your own filesystem and write a driver with FUSE. It will probably take a week of work and will be pretty impressive to most people. Go reverse engineer the protocol for your rgb keyboard and write a program to change the colours. It wasn’t so long ago that I was blown away when I managed to make a crappy forum software in php.
If you think computers were boring, it’s not a reflection on computing but on you.
Point being, it’s not that things got boring, it’s just that boring is just how we feel about things that we have had for a while.
You keep implying that i hold the view that modern technology is boring. I never say that.
> I used to think the iPod touch was the most exciting thing in existence, mostly because I didn’t have one.
Perhaps you don't have much to compare the status quo to. I would hardly describe the iPod as old enough to be part of the bygone era. Hell you can still buy the modern version of one.
> Point being, it’s not that things got boring, it’s just that boring is just how we feel about things that we have had for a while.
I'd be curious how you define becoming boring if not a feeling that the novelty wore off. That's pretty much a dictionary definition of "becoming boring". Regardless i think we fundamentally agree, as my take is that people view things as being boring largely because so much programming has become commeditized, where back in the day the field was less mature, so everything seemed like an adventure regardless of if you were looking for one.
Edit: reflecting on this perhaps my view has changed, maybe the difference is the slowing down of moores law (and knock-off effects of that), especially for single threaded performance. I could use a computer from 10 years ago now without much trouble (ignoring certain specific workloads like video games). I think it would have been much more of a burden to use a computer from 1990 in the year 2000. Even just look at ui differences, windows 2000 is a big leap forward compared to windows 3.0 (which didnt even have real multitasking, only cooporative!) or MS-DOS. Windows 7 vs windows 10, not that big of a difference. Things used to change rapidly in leaps and bounds. Now its slow (albeit still steady) progress.
I spend a significant portion of the time I'm using my computer in Adobe Illustrator, drawing stuff. It is my magical assistant that will tirelessly do a lot of tedious work for me if I know how to tell it what to do. It makes it incredibly easy to do art in a fraction of the time it would take to do it with traditional media; I can, and have, drawn entire comic books by myself in less total time than it would take for a team of a half dozen people to do the same amount of work, because Illustrator lets me take some very different approaches. I still take longer because I am a slacker who considers it a great day if I have spent four whole hours working.
Right now a lot of my work in Illustrator is commissions for some delightfully absurd porn. These jobs largely come to me over the Internet, along with non-horny work. I regularly find myself laughing with delight at what I am being paid to draw.
But on the flipside I get the impression that Illustrator has never been a prestigious division of Adobe, and I'm sure that maintaining a thirty-year-old codebase is very not fun. I've been asking them for the ability to rotate the preview display for a decade and they are only vaguely beginning to work on it now, with a lot of lengthy excuses as to why this seemingly-simple task is hard. Being a programmer seems to have a lot of ways for it to suck like that. Some of y'all get paid a lot more than I probably ever will unless I stumble into a ludicrously-high-priced gallery art career, but you also have to go live the Dilbert life every damn day. (And as a side note, if any of you folks making ludicrous FAANG money happen to need some weird art to give you something to think about to help you get through those long days of bureaucracy and worrying about your next performance evaluation, my commissions are currently open.)
If computers aren't fun for you anymore, at what could reasonably be described as the apex of what's ever been possible with a computer right now, it's not computers that are at fault here, it's you.
But yea, I had to do a triple take with my jaw dropped. Grateful for Firefox's Reader mode.
I am the exact opposite of this. I honestly don't have anything I would want my phone to do but doesn't. Quite the contrary tbh. Why? Because I know anything I install on my phone or PC is most likely tracking me, and my data is getting sucked away into a third party black hole to be sold to shay marketers for pennies on the dollar.
Likewise, any time I do actually think of building an app that could solve a problem I have in my personal life or work process; a simple google search will confirm that apparently a few hundred other people had the same idea 3 years ago and here's ten apps that will do what you were thinking of building.
I don't want MORE tech, I actually want a lot LESS in my life.
Like Jack Kerouac once said, "If you own a rug, you own too much."
I think software development and UX have improved a lot in the last decades. Build tools are sometimes really annoying, but does anyone remember how life was without them? Does anyone want to pull a GB of libs from the web by hand? (Obviously nobody would do that and prefer to reinvent the wheel with help of the "XY Cookbook"). The author also criticises "flat UI", but does anyone remember the ugliness of UI's in the nineties with all their borders and pseudo shadows?
http://83.133.184.251/winworldpc.com/res/img/screenshots/30-...
Or think about IDE's! Does anyone want to change IntelliJ for JBuilder?
I think, what the author really means is the move from solo inventors and hackers to a complex and more or less mature industry. Not everything is fun in this industry, but it also not as bad as one could think after reading this article.
All of their technology is so advanced, and yet so... analog? It's beautiful, they get to just live their lives; they don't have to fuss about with documentation, closed source, outdated libraries, missing binaries, copyright, etc.
The problem is "@media (prefers-color-scheme:dark)". If you're using a dark theme it'll use a light font color but keeping the light background.
I personally hate when a site changes the default look based on how my OS looks.
If it is dark mode, it is light text on a dark background. With light mode, it is reasonably dark text on a light background.
Maybe on Firefox it is taking the light-mode backgroud with the dark-mode text.
Now : constantly opting out, denying cookies, blocking ads, installing piHole, blocking scripts, filtering emails for spam, ticking or unticking that tickbox, opt-out etc etc.
And I haven't even touched on the straightforward malicious stuff. Scams, phishing, cryptobombs, dodgy links etc.
And more and more of our lives rely on it.
End result = More angles to guard, stakes are higher.
This feeling of being "on guard" all the time is fatiguing and does drain some of the fun from day to day general use computers.
[edit: snipped examples, reworded bits for conciseness]
Every day, I build https://kinopio.club and enjoy it. Maybe that's partly because experience has taught me to deliberately/conservatively pick the technologies that I build with (https://pketh.org/how-kinopio-is-made.html).
Basically, I avoid douchebag tech.
I'm not a gifted coder. My only real talent is a strong bullshit detector.
However, the more fun aspects are still there. You can still make a app or service yourself to complete tasks and it may take some fun out of it but there are libraries full of tools to make it easier. If this is a "CRUD SaaS app" you should look around for another service which has the features you want. If you can't find one, there is probably a market for it.
The hard part for me has been knowing where to look to find the fun. Some of the smaller reddit communities I used to frequent have grown and no longer look the same. Discord has proven itself many times over, there are public channels for virtually any hobby.
Having been there and done all that, the question now is, what comes next? But no Next Next Thing is apparent, especially for those who live to be wired. Personal computing has become a flat level playing field that extends to the visible horizon where the cutting edge user is no closer to the vanguard of tech utopianism than the Everyman who lives only within Facebook. And what fun is that?
Arduino is already a common choice for fun-oriented programming, but adding onboard WiFi takes it to another level. Using a web server for the UI also makes it more accessible, because you don't need to build an assembly of switches and indicators to get information to/from the user.
Too much interaction with frustrating or dull technology (business software) or consumer-oriented software leaves you feeling disengaged and in the shallows.
Perhaps the author needs to look for communities that engage in the more imaginative and creative pursuits like demoscene, emulation, esolang or nixos :P Can't rely on cool things falling right in front of your doorsteps anymore.