7 ms·
Hello! Author here :) 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 effort
by feifan 6y ago
Hello! Author here :)
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.
- drenvuk 6y agoYou're ossifying and it doesn't seem like you realize it.
- feifan 6y agoPerhaps, if you view it through my ostensible lack of interest in new computing technologies. From my perspective, computers have always been a tool to augment what I can do — gather information that my senses alone can't; crunch data that I can't do by hand; automate repetitive tasks; etc. 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.
- refactor_master 6y agoHow exactly does software “get in the way”? Everything is more free and more powerful than it ever was before.
- shrimp_emoji 6y agoTo me, webdev seems like the most "unfun" morass of bullshit in the software industry. It's fundamentally awful technologies stacked on top of each other in rickety spires in fits of money-hungry, Silicon Valley ADHD. The modern web is gross, technologically, and abusive, ethically. If it's all you live and breathe, I'd probably feel the way you do.
- ryandvm 6y agoAgree 100%. There are a lot of amazing things you can do with modern computers. More possibilities than ever before. But if you're going to constrain yourself to "state of the art" front-end development, you're basically signing up for wizard school that involves constantly learning new arcane spells from an ever-changing line-up of frameworks that are endlessly re-inventing the wheel just so we can shoehorn everything into a browser DOM designed in the 90s. That little slice of computing is indeed "not fun anymore".
- totalZero 6y ago> "fun" to me is being able to get my computer to effortlessly do things I have to and want to do. no offense but this is a weird definition of fun.
- feifan 6y agoHahaha fair :) I mean it more in a "flow state" sense — I usually have things I want to get done, and I feel good when I can flow through them effortlessly.
- slooonz 6y ago> 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. Computers were never fun in that sense. Probably never will be.
- feifan 6y agoYou might be right on the first part, but I'm young and optimistic enough to reject the second part.
- number6 6y agoEffortless? I am not that optimistic. Don't get me wrong. I love programming but it's not effortless. The best problems are the hard one: https://dwarffortresswiki.org/images/4/40/FunComic.png https://dwarffortresswiki.org/images/4/40/FunComic.png
- feifan 6y agoI could've been more clear: the "using the computer" part (what you might call incidental/accidental complexity) should be effortless. The problem itself can be as challenging as you'd like to tackle :)
- number6 6y agoI can totally understand your grievance with all the loops you have to jump through to get JS running. I can get an okayish webapp running with the Django Stack in about two hours; when I use JS it takes me hours just to configure webpack. I just use intercooler or htmx nowadays and ditched React and Vue. The customers don't care if they use a SPA or a traditional one. They just want their logo in the corner. They even don't care about the round trip to the server when doing input validation as long as the input is still there after validating it and a meaningful error message is there. But still - there is a lot of boilerplate for CRUD Apps and views. Maybe RoR does this part better...
- benibela 6y ago
- tlarkworthy 6y agoTry https://observablehq.com/@tomlarkworthy/serverless-cells https://observablehq.com/@tomlarkworthy/serverless-cells 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.
- feifan 6y agoOooh this looks cool! I'll check it out, thanks
- kickingvegas 6y agoCasually observing that all the things listed above could be done from Emacs.
- mathgladiator 6y agoYou may be my ideal customer. I hate modern web development, and while there are other domains to explore they are low level. 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/ 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.
- feifan 6y agoThank you :) While I personally haven't gotten into board games, I love that Adama exists as a stake in the ground towards "better". And yeah, I agree with that closing sentiment too. This post is meant to be a rallying point for inventing new, better things.
- tenaciousDaniel 6y agoI'm very interested in the emergence of high-level, low-tech DSLs that are highly adoptable by traditionally non-techy people. For instance, I'm trying to build a language specifically for UI designers. 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.
- feifan 6y agoIMO high-level, low-tech DSLs are under-explored. Lots of possibilities there. I don't think you're necessarily limited to just text-based DSLs though; there's interesting opportunities when you pair with a UI. For example, see Pharo: https://www.youtube.com/watch?v=HOuZyOKa91o https://www.youtube.com/watch?v=HOuZyOKa91o
- cccc4alll 6y agoThere are other hobbies that may be more interesting and fun. 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.
- karmakaze 6y agoI get where you're coming from. Sometimes I just want to make the thing and for nothing to get in the way. Other times I want to try out a new language or framework to see if it does things in a more fun, less fussy way. 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.
- nradov 6y agoI've been in computing for a long time and it was never effortless. Try getting a Commodore 64 to do what you want with only a reference manual and a few magazine articles for help. That shit was hard. If it's fun and easy then you're probably not solving any hard problems or building products that people want.
- grawprog 6y ago>is being able to get my computer to effortlessly do things I have to and want to do. 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?
- danShumway 6y agoIn which case, I'm even more confused at your complaint. There are a lot of things I don't like about modern web development, but it is unquestionably, absolutely easier than it was in the past. 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.
- rektide 6y agoHere here! There's a laundry list of emerging industrial-scale technologies. But your post starts with what ought be the star of the tech show: personal technologies, empowering technologies. Dream Machines. Places for imagination, exploration. Soft systems that are malleable to users, that let them unleash their own creativity & potential, explore the models & systems about them, devise new viewpoints, new connections/connectivities. 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. [1] http://paulgraham.com/worked.html http://paulgraham.com/worked.html [2] https://www.youtube.com/watch?v=bSNda9EzNOI#t=27m43s https://www.youtube.com/watch?v=bSNda9EzNOI#t=27m43s