[HN Gopher] Cookie Clicker saved my PhD ___________________________________________________________________ Cookie Clicker saved my PhD Author : azhenley Score : 197 points Date : 2023-06-21 12:11 UTC (1 days ago) (HTM) web link (advaitsarkar.wordpress.com) (TXT) w3m dump (advaitsarkar.wordpress.com) | wbobeirne wrote: | This article definitely captures the general joy I get being able | to work with the web. I understand it has its warts, but there's | something really magical about having one ecosystem where you can | so seamlessly play with user input, network requests, audio, | graphics, and it can be shared or deployed on basically any | consumer hardware. | | I recently have undertaken a little side project that at first I | assumed I was going to need to pick up an Arduino and hack | together some physical inputs, LEDs for an interface, and a | speaker. It wasn't until I started shopping around for pieces and | learning about the tech stack that I realized I could just take | my old phone, pop open a browser, and prototype it that way. | | There's a lot of complaints that not everything should be in the | browser, and that's very true for a lot of cases, but it's | extremely empowering that anything _could_ be in the browser, at | least for your MVP. | smohare wrote: | [dead] | simmschi wrote: | Must ... not ... open ... Cookie Clicker | mnsc wrote: | Do it! The Final Building has been released. It's all new | minigames from now on. | kerblang wrote: | I think for vanilla GUI where you only need readily available | vanilla components, Java is fine. But I suppose you would be in | for quite an adventure if you intend to do a lot of highly | customized user interfaces. The curse of JavaScript is that you | can readily devise newfangled componentry so easily that as a | user, you end up with all sorts of unpredictable things where | straightforward tasks become much harder thanks to endless | gadgetification and whizbangery. The idea of "standard" flew out | the window long ago. | | It would be exaggeration to say QWOP has become the new normal, | but only by so much... | | Eventually we'll get tired of this and straighten up, I'm sure. | Maybe menu mnemonics will make a comeback (they really are a good | idea). | jerf wrote: | I'd love to try to prototype a GUI that harmonizes GUIs with | keyboard accessibility; bring back some external component | model to script them again, put some sort of effort into making | that scriptability discoverable for users and easier to | maintain for developers than Applescript was, make it easy to | give and surface expert-level shortcuts, make it so keystrokes | are buffered across contexts so you can develop expert-level | skills in pre-keying what you want the UI to do even before it | pops up (one of the reasons why you had to pry the console- | based point-of-sale software out of customer's services hands | at gunpoint), and just generally make something useful for | experts again... but it's years of effort to even prototype | such a thing to the point where it's useful for anything. GUIs | are stuck in the 20th century because they're just so _big_. | naet wrote: | Maybe JavaScript is actually what saved your PHD, although cookie | clicker was what pointed you in that direction. | | Certain people love to talk trash on JS for many different | reasons, some probably valid ones too, but you can do so much | with just a basic understanding. | | I've probably never felt as empowered in my entire life as when I | learned a bit of HTML CSS and JS; it was like I l suddenly had | the tools to make tons of new projects. I didn't feel this way | using Python or C (those had felt very command line oriented the | way I had learned them), but when I saw how easy it was to use JS | and make an interactive web page I felt like I could make full | applications, games and toys and whatever else I wanted to. | Having the browser to draw images and UIs and access to built in | features like the HTML canvas or web audio APIs made dream | projects feel much more achievable. | gretch wrote: | I fully agree with this. | | A couple months ago I tried to do a quick hack project where I | could get the computer to play a sound and render an image when | there was a keystroke. | | Turns out with python, without additional libraries, you had to | read from stdin which requires the user to end the input with | newline before python could read the char. (2 keystrokes, not | 1) | | But I switched to JS where it's trivial to intercept single key | strokes and finished my script in ~30 minutes | saghm wrote: | > Maybe JavaScript is actually what saved your PHD, although | cookie clicker was what pointed you in that direction. | | I think you're basically saying the same thing as the article, | except their emphasis is on that they learned the skill they | ended up needing while doing silly things for fun rather than | trying to be productive: | | > But perhaps the simplest way to view this episode was as a | playful, recreational activity which through sheer dumb luck | gave me the skills needed to solve an important problem in my | work life. My colleague Titus Barik analysed how programmers | talk about programming as play, involving 'spontaneous and | creative expression', 'experimentation', and 'purposeless, | ludic activity'. He found that many programmers reflect on | episodes of playful programming as joyful experiences that | catalysed learning. | | > I'm extremely grateful to Cookie Clicker for the journey it | put me on, but even if I hadn't ended up learning JavaScript | because of it, I still wouldn't regret, and would cherish, the | many many hours I spent tinkering and clicking away in my | college dorm bedroom. | | I read the article as less about touting the benefit of some | specific technical tool but more about the value of time spent | purposely _not_ being productive. It's a counterpoint to the | "cult of productivity" that espouses the important of | maximizing efficiency and "hustling". | ehsanu1 wrote: | Play is every child's way to learn about the world after all, | and it works amazingly well. | noman-land wrote: | I couldn't agree more. The browser has everything you need to | make an insanely wide array of rich and dynamic applications | with just HTML, CSS, and JS. | | Learning that a browser and a notepad are all you need to have | a basically zero second feedback loop in an iterative | development experience was pretty breathtaking the first time I | press reload and some stuff moved around. | DantesKite wrote: | > Maybe JavaScript is actually what saved your PHD, although | cookie clicker was what pointed you in that direction. | | Yes the article strongly implies this with some added nuance: | | > I'm extremely grateful to Cookie Clicker for the journey it | put me on, but even if I hadn't ended up learning JavaScript | because of it, I still wouldn't regret, and would cherish, the | many many hours I spent tinkering and clicking away in my | college dorm bedroom. | hyperhello wrote: | Basic web programming is a dream world for prototyping. You don't | even have a compile step; it's all WYSIWYG. | WorldMaker wrote: | Semi-related, I was idly wondering the other day why we don't | see more "F12 Zines" like the "BASIC Zines" of the 70s and 80s. | You could collect all sorts of neat little bits of JS that run | easily in the browser's Dev Tools (F12) and introduce simple | programming concepts from whatever browser they already have | available on their machine. Dev Tools have gotten to be | impressive REPLs with surprisingly deep IDEs. There's probably | an interesting "punk" experiment in trying to open that to | people of all ages interested in exploring it. | | Imagine the wonder of introducing the right sorts of curious | people to the magical world of "about:blank" and from there | hitting F12 to go on a journey of making it not quite so blank | anymore. | zappchance wrote: | Not exactly what you're asking for but very similar: Hackits | [0][1]. | | [0] https://blog.haschek.at/2014/why-hackits-are-the-first- | thing... [1] https://www.0xf.at/ | Firmwarrior wrote: | Wait, you're saying it's possible to write web code without | typescript, react, and node? | ravenstine wrote: | Node? Who uses Node for anything serious in 2023? Real | backend coding today is done using Bun. And yeah, you can | write something in JavaScript, but it definitely won't scale | and will constantly throw errors. Pretty much all serious | frontend code today is written in Typescript across the | board. /s | anyfoo wrote: | > typescript | | Well, the problem is rather, that JavaScript is a pretty bad | language (nobody claimed otherwise, when it was designed in | 10 days), so that using something like TypeScript makes it | much better. Unfortunately your browser understands | JavaScript, not TypeScript. | | That's the immense tragedy of web development: It's a giant | pile of excrement, because it's built on several things that | were never meant to be what they are used for today. | | It's also why I left a long time ago, and never looked back. | vlunkr wrote: | If JavaScript is "a giant pile of excrement," I think that | makes TypeScript a polished turd. It's just a superset of | JavaScript. | anyfoo wrote: | Indeed, adding a type system does a lot. | simplify wrote: | No, it's actually quite good due to being the most | advanced (and a pleasure to use) type system to achieve | mainstream adoption. | baq wrote: | Yeah typescript is amazing, the javascript below it is | made out of evil hacks. | vlunkr wrote: | This is what I'm saying though. Typescript is just a hack | on top of Javascript. The same engine is going to run | your code in the browser. | | For the record, I think Javascript is fine (with some | nasty warts), and Typescript is a great addition. The | idea that TS is great but JS sucks is silly. | anyfoo wrote: | > Typescript is just a hack on top of Javascript. | | Exactly, it makes it "more palpable". | | > The idea that TS is great but JS sucks is silly. | | Just to be clear, I absolutely did not say that. Instead, | I think it was pretty clear that I'd rather agree with | your statement that it only makes things _better_. But | there is only so much it can do in that ecosystem, and a | good type system does notably improve things. | | Everything that's below that is still what it was. | twism wrote: | curious as to what you left it for that doesnt have this | compile step | anyfoo wrote: | I didn't leave it because of the compile steps, but | because the extra layers, despite all their downsides, | were far from able to hide the underlying impedance | mismatch. | | I left over a decade ago and went back to low level | kernel programming. | noizejoy wrote: | It's good for everyone that different individuals have | different likes and resulting priorities. Good that you | found the one that makes you happier. And with any luck | your preferred niche isn't too overcrowded, so you don't | suffer from those negative side effects. | anyfoo wrote: | I did not intend to shit on web developers, by the way. | It's not their fault, they just have to live with it. I | just lament the history that lead to what they ultimately | have on their plate. Early "web development" went | tremendously wrong, owing partially due to the fact that | the "hypertext" markup protocol and markup language were | meant to be used in an entirely different way, and | partially due to early hacks leading to early results in | terms of "web applications". But those hacks came at the | cost of making this layer sandwich in any way sane to | begin with. | | In my opinion, everything else since is an attempt to | find a way out of that mess. | | I was there when the web happened, though only watching | from the side lines. I also remember that there were more | fitting approaches early on, but a lot of them suffered | from what I said above: Some of the "sane" stuff at least | would have needed concerted efforts for plans that have | to be executed over time. But the web was already a | thing, and people already wanted to do certain things | with it. The quick hacks for that were available | immediately, and they were cool: "Hah, look what I can | do." | | I'm not saying you cannot have joy in web development. As | you say, it just wasn't for me. For the reasons above. | hyperhello wrote: | Interpreted languages are so improved by lengthy build | processes involving compilers, linkers, transpiration, and | sixteen different kinds of incompatible package formats, I | don't know why anyone would eschew them. | lcnPylGDnU4H9OF wrote: | I often wonder if a given manifestation of Poe's Law[0] is | intentional. It seems not in this case, but damn if this | isn't real. | | [0] https://en.wikipedia.org/wiki/Poe's_law | renlo wrote: | "transpiration"; is this the perspiration one gets when | trying to use the JavaScript toolchain to transpile code? | intensific_90 wrote: | That's great! I have a son who writes mods and is constantly | mucking around with CC code.. can't say I get it but draw | inspiration where you can! | B1FF_PSUVM wrote: | > many hours I spent tinkering and clicking away in my college | dorm bedroom | | Grad students in dorms? | embeng4096 wrote: | In the spirit of idle games, two that have really captured me are | Swarm Simulator and Exponential Idle, the latter being pretty in | a minimalist way. | | https://www.swarmsim.com/#/ | | https://conicgames.github.io/exponentialidle/ | | https://apps.apple.com/us/app/exponential-idle/id1538487382 | | https://play.google.com/store/apps/details?id=com.conicgames... | ubermonkey wrote: | DEAR GOD I WILL NOT BE SUCKED BACK INTO AN INCREMENTAL GAME | fullstop wrote: | See also: Universal Paperclips - | https://www.decisionproblem.com/paperclips/index2.html | wging wrote: | A Dark Room has a similar feel, and like Universal Paperclips | it opens up to be much more than a clicker: | https://adarkroom.doublespeakgames.com/mobileWarning.html | ge96 wrote: | ugh... I can't remember the name someone posted a game here | before web-based, you're in a terminal/folders structure, as an | AI trying to escape into the net | mr-ron wrote: | http://skynetsimulator.com my project from a few years back | __MatrixMan__ wrote: | I've never played cookie clicker, but I have a hard time | imagining that it can hold a candle to universal paperclips. | Never has such a pointless game made its point so well. | brazzy wrote: | Universal Paperclips has the best _story_ out of all the idle | games I know, but it 's not the best _game_. For one thing, | it has very limited reset /prestige mechanisms, and the | expansion mechanism in the final phase is very opaque and can | mislead players into frustrating dead ends. | jldugger wrote: | Cookie clicker is an OG in the "incremental" space. But while | universal paperclips goes places, CC also goes to different, | weirder places. | l__l wrote: | And Exponential Idle!! | | https://conicgames.github.io/exponentialidle/ | _def wrote: | pls no. | | I even bought a zipper after I played it because it impressed | me so much. It was rather expensive but the quality was pretty | poor. | news_hacker wrote: | The irony of a cookie popup showing up on the author's blog.. | JSLegendDev wrote: | Morale of the story : What is useless today might be useful | tomorrow. | FredPret wrote: | Time to fire up Universal Paperclips again... | tgsovlerkhgsel wrote: | > Previously, this might have taken me weeks. With JavaScript, I | built the prototype in hours. | | I really like web/html/javascript for building UIs for this | reason. It's really fast to prototype and get something decent | looking/working, it has a very fast edit-compile-run loop (if you | don't use any fancy tooling, as fast as you can press CTRL-S, | Alt-Tab, F5), great debugging tools, and in the end, your product | immediately works cross platform, both on desktop and mobile! | failuser wrote: | How is this in any aspect better than Delphi from the '90s? And | you get about the same performance with JavaScript on a modern | CPU as ObjectPascal on an old Pentium. | ativzzz wrote: | Because every single person with a computer, including | smartphones in the world with internet has access to a JS app | via a web browser | yunohn wrote: | You're right, ObjectPascal and JavaScript are the same | experience! | | /s | regularfry wrote: | I can absolutely guarantee you that it didn't give you a | consistent desktop and mobile experience. | hinkley wrote: | I want someone to take another stab at a simplified version of | HTML (like xhtml-basic) and CSS and then have an engine for | desktop apps built on it. | caust1c wrote: | Related to this, Eve online opened the door for me to learn a ton | about markets and economics I didn't even know I wanted to know, | but it fascinated me. Traded my way into free-play before my | grades started to slip so I quit. | redmerchant2 wrote: | The title is a bit hyperbolic but I enjoyed the sentiments | nonetheless. | | I definitely remember as a kid learning Lua scripting because of | video games. Just going over forum posts trying to make my own | games or break other games. | | Definitely gave me the basis to rocket ahead when I took a formal | CS class. | DonaldPShimoda wrote: | [flagged] | Firmwarrior wrote: | When I was in college, there were basically two completely | separate tiers of people in CS classes: People who knew how | to program already, and people who didn't | | It was pretty nuts. The class was tuned to make it possible | for non-coders to learn coding basics along with basics about | data structures, compilers, blah blah blah. So for people who | could already implement something like fizzbuzz, the class | was a joke. We'd get an assignment to store something in a | linked list and print it out, and some of the students made | fully 3D animated demoscene demos out of it. | | (It just goes to show that treating college degrees like job | programs is a terrible idea, if you ask me..) | fnimick wrote: | This is why I like that Northeastern does their intro class | in a Racket / Scheme dialect. (plug for https://htdp.org/ | as IMO the best way to learn computer science) | | The goal is to learn how to think about problem solving and | program design, not simply to make the computer do what you | want. I found that (myself included) people who came in | with experience in imperative languages, etc. had a harder | time than people who came in fresh. But the takeaways | around functional programming, data structure design, | testing, etc are far more important for a career than the | ability to make some arbitrary program do some arbitrary | thing. | lanstin wrote: | Maybe, but the ability to make some arbitrary program do | some arbitrary thing is the exact experience that lead | many of us to fall in love with computing. | | 10 FOR X = -5 TO 5 20 PRINT TAB(X _X); "_" 30 NEXT X | | wow, a parabola! ___________________________________________________________________ (page generated 2023-06-22 23:00 UTC)