Fun vs. Computer Science (2016)
I have happily traded working in a nice language with slow iteration times to working in a lousy language with very, very fast turnaround.<p>My favorite extreme example was the time I used a super fast 6502 assembler environment that would do the &quot;change a line of code and get the target running&quot; cycle in a couple of seconds. This kind of interaction is <i>magical</i>. You&#x27;re still writing kind of crappy assembly language, but it almost doesn&#x27;t matter. Things just flow.<p>On the other extreme: A large component of me deciding to quit a job was the fact that a build of the product took four hours. And the build was typically broken. So: Arrive in the morning, sync, wait all morning for the build to fail. Do another cycle after lunch: fail. Go home, repeat for <i>weeks</i>. (Add to this: Managers who refused to buy decent development machines, people who kept checking in busted code and making things worse, and a crushing schedule. Who needs that?)<p>These days I&#x27;m do a lot of C++, and some PHP. The C++ projects take a few minutes to build, which isn&#x27;t great, but it&#x27;s survivable. The PHP &quot;builds&quot; as fast as I can refresh a browser page. And as much as it pains me, on most days, when I grit my teeth and get honest about it, I&#x27;m more productive in PHP. And I despise PHP.<p>I learned LISP early on in my career; wrote a few LISP interpreters, goggled at the majesty of LISP machines, read all that I could. But I&#x27;ve never shipped a significant project in LISP, nor am I likely to. And the Newton actually flipped from a LISP (well, OOPy-Scheme) implementation language to C++ in order to ship. I&#x27;m wondering if there is some law of human nature at work: You can have elegance and comfort or you can have a product. I sure hope I&#x27;m wrong.