[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)