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