3,685 karma · joined September 1, 2011
More at https://justinmiller.io
1. We will (hopefully) eventually get back to the truth that programming (for problem solving) is about understanding and modeling the problem space, not writing text that satisfies a compiler / runs an app / appears to work like well-written software most of the time. And programming (for art and creativity) is about the human spark of creating something outside the norm, informed by life experience, relating to another human because of the shared experience of being human. I believe that this will shake out in the end as these tools at best helping us to think about how to write software, not actually writing the software themselves. So in that sense, we will get back to "how we were writing code in 2019" — using tools to help our own brains create.
2. The now-long history of the internet has proven to us that those skeptical of trust in what is on the other end has largely proven out. Not commercially — we can almost entirely trust what is on the other end of a business transaction, at least when trading with large players in the economy. Some costs there include compromised online identity and compromised financials (from repeated, rampant data breaches). But we can't trust the voice of individuals anymore, as proven by our rapidly disintegrating democratic norms. We are in a crisis point as a civilization when it comes to not actually talking to each other at a human level anymore, rather being mediated by the internet. So that's where that — the internet never going away — landed. I think the jury is still out on whether the internet is good for humanity. I'm not saying it will ever go away — it can't possibly — but the fact that we've accepted it as inevitable has led to us failing at considering possibilities for reigning some things in or keeping some things offline. As a present example, we now purport to trust closed models run by trillion dollar companies, when one poll showed one in five voters asking chatbots who to vote for in a few weeks in the US elections — no chance for corruption there! "How we were writing code in 2019" was being aware of where the code and algorithms we were using came from and (even in the worst case, of secreting code into a large codebase via theft) trusting it as doing as its author, a human, intended.
3. Like other cycles, unsustainable economics are propped up right now by institutional investors riding numbers-go-up until the train crashes, always looking and finding someone else to point out and say "but they're still onboard" — just like past cycles. The common person / worker / individual will be left holding the bag in very painful market convulsions that will forever scar those who actually make it. There's a cost there — ruined lives, careers, potential — a cost that we repeatedly decide is acceptable. "How we were writing code in 2019" was weighing the tradeoffs of using a product or voting with our money on its sustainability, rather than determining the future laid out by us (not at all by random or by merit) is inevitable and "the way" that we should pursue. Groupthink at its worst.
I am using "How we were writing code in 2019" here not as a point that we should return to, but as the point before the hype took hold and all reason was thrown out the window and a point to consider as we weigh — really weigh — the pros and cons.
Lastly, on a personal note, I've got no fear of being replaced. Like another in this subthread, I happened into a career that paid well for doing something I already loved. At times in my career, I even chose the path that made the least sense financially, in order to pursue something I loved and that satisfied my curiosities. I am extraordinarily fortunate to truly love the art and craft of programming and to work with beautiful, caring people who hire me to do so. If it goes away tomorrow, welp... it's been a good run.
> A century later, the torments felt by my great-great-grandfather are forgotten. The garage feels like it has always been in the family. My father loved his job like few people I know, as if it had run in the family forever.
Arguably, the internal combustion engine is one of the most unsustainable and devastating technologies invented by humans. The jury is still out on whether our species will survive the environmental impact wrought by its effects. So much benefit, but so much dependence.
I would've been happy just looking (and not even touching) by myself for 15 or 20 minutes given the circumstances, but Stephen spent 1.5 hours with me in a hands-on tour, including playing Spacewar. He genuinely cares about these machines, their preservation, and spreading enthusiasm about them. I only wish I was a little closer (3 hours away in Portland) or I'd spend more time on-site helping with the effort.
About ten years ago when we were working on Mapbox GL, I did a mobile-native viz like this to show off the vector tile tech. The blog post is still up (thankfully) which has a good bit of info on the data processing pipeline as well, ranging from Shapefile to GeoJSON to vector tiles on the backend to Swift on the frontend:
https://medium.com/mapbox/visualizing-an-entire-citys-buildi...
I always loved mirroring a phone to a large TV and showing this off at 60FPS. It was such fun tech to work on.
There's also this little-known concept called learning things for learning's sake and not always trying to capitalize on it.
Counterpoint: Portland OR, where I live — enormous bike city (in some rankings, the highest in the country) — and most have fenders due to the rainy climate much of the year.
To put it another way: if a thing is written by a human from scratch, and there is a lot of text (often not the case, because things like this are built iteratively, in the open, so they reach eyeballs before that point), I can pretty quickly ascertain whether the person knows their stuff and if it is worth my time to continue to try to reach understanding with them, to learn from the coherent vision that they have created and are trying to communicate.
Or, if they are the ramblings of a lunatic, I am hopefully able to ascertain that pretty quickly and move on.
In the case of agent-written text at this volume, it feels written to fool the reader into reaching the first case, without the guarantees of the coherent vision. Maybe that gets better with time, but for me, for now, it's enough to note with interest and move on for now.
I appreciate the topic, interest, and ambition, but if a human couldn’t be bothered to create and document it, I can’t be bothered to spend my time reading about it.
We used to emphasize that you could buy a computer with us and go home with it today, whereas down the hall, you could buy it but it would come in the mail later. Their store had demos and the big cow-patterned boxes around, but no inventory.
Also around then, I applied for and got a Gateway-branded, Holstein-patterned credit card, which I promptly maxed out to buy my own first modern computer, a P2 build not from Gateway, but from Midwest Micro. I learned Red Hat Linux on it, reading the manual on break at work even before the computer came, and it began my real career.
So lots of adjacency to Gateway, but no real firsthand experience. They were definitely a force.
I think it’s more subtle than that. I am a power user — I was compiling my Linux kernel in the 90s, I wrote my own SSH tunnel manager 20 years ago, I always fiddle with settings, etc. etc.
However, I am constantly frustrated with a lot of OSS software because it expects you to think like the developer of the tool, instead of having empathy for the user. What feels obvious to the developer of the tool (I am making up a hopefully-representative hypothetical here, but finding the change of font under “Theme” because it’s how “it looks” but finding the font size under “View” because, well, you view it) feels frustrating and nonsensical to a normal human who relates both the font and its size the same way in their mind. Again, generally — I’m making generalizations here and not calling out any specific software, but trying to illustrate the feeling that I get.
When I switched to the Mac in 2002, it is because these sorts of things made sense. Yes, there were and are frustrations because of this sort of opinionated design mentality, but I judged the benefits to outweigh the positives. Unfortunately, Apple squandered this culture and skill and nowadays I often find the platform as frustrating as OSS ones, to the point where I have switched back to 50/50 time split between platforms.
https://codesorcery.net/2009/12/04/meerkat-15-great-ssh-tunn...
Then like me you can just worry about whether some dipshit is going to burn your house down while you're away.
Also LOL:
> it has the advantage of packing the best sound system I have ever come across on a keyboard