mjdiloreto
One constructive point for you: don't even write the first draft of a document you want humans to read with AI. It's much harder to get the AI voice out than it seems. Stuart Halloway talked about this at the last Clojure Conj, and I couldn't agree more. It also makes it harder to follow the sage writing advice to minimize what you write.
"How code keeps its family resemblance" - AI would say this, a person would not. It's just noise on the page.
"Measure only their shape and you can still tell who copied whom" - this is a sentence structure Claude loves, but no human would talk about "measuring" shapes. The verbs and the nouns don't feel right.
Then you start a paragraph: "DOOM is the perfect place to test it." But you don't actually say what "it" is specifically. It doesn't seem like AI would write that though... Maybe you did in a later draft? It's hard to switch voices, like switching authors.
If you want people to read something, write it yourself.
Yes! This is part of the Flockification of everything.
Logos in particular is my favorite word. The logy suffix derives from it, and one approximation is "thoughts" or you might also see "word". The Bible begins with "In the beginning there was the Logos". We translate that as "Word", even though the connotation is also "thoughts". It might be more accurately understood as "the patterns, rules, logic of the universe". For the Greeks, thought was not something one "had", in the same sense we think, but rather something innate in nature that one participated in.
So the Bible verse might be better understood as "in the beginning there was the same working logic in the universe that we observe and participate in now, the same innate rules governed the cosmos that do now". That's actually a much more useful and honest interpretation than "in the beginning was God's words".
When one studies their particular -logy, biology, ecology, etc, they are not just looking at things describing them, they are more intrinsically bound up in a truth discovery exercise about something whose patterns and working can be figured out.
Natural Science could be conceptualized as a logology - literally studying how the Logos works in its various dimensions.
Computer Science majors at Northeastern University had a required theater class called "The Eloquent Presenter" when I was there that largely consisted of improv games. Some students dreaded it, but my cohort was largely fun and very low anxiety compared to the other required courses.
There was one exercise in particular that broke people, sometimes to tears. The class sat along the wall with the professor sitting at the far end from a door that the student being examined would enter through. That student would walk toward the center of the room, stop, and present themselves to the class, "Hi my name is X". The professor would then critique the subtle mannerisms of the person - their walk was too hasty, they spoke too quietly, they shuffled their feet, etc. The student then walked back out the door and repeated the exercise, until the professor approved their performance.
Some students repeated the introduction a dozen or more times (a few cried at this point), some passed on the first attempt.
I remember many of my classmates hating this process, but the more I reflect the more I believe it was genius to make us experience that extreme social awkwardness. Real life, and I believe real success, exists in the interactions between ourselves and others.
I like this framing of social media use in the same terms as drug use. There are significant risks to this activity that so many people are ambivalent toward. Depression is not a condition you want to have, and here's this activity that causes it (or at least significantly contributes to it). And yet, so many persist!
Take even 1 simple example - software applications on a smart watch. How many dimensions of reality are relevant? Maybe I'm a busy person, so I need a personal assistant for my calendar. Maybe my wife needs access too. Maybe I'm a bird watcher and I'd like to track the birds I see. Maybe I'm a bird researcher and those observations need to integrate with my research.... ad nauseum forever.
AI will write all the code, and make all the meaningful decisions, but the backstop of the whole thing has to be some non-virtual reality with a paying user, otherwise there is no value to extract.
I personally only care about the outcome, I don't even really care if I understand how anything else works, or any of the decisions made. My dollars go in, working code comes out to suit me.
To your point, the next thing it said was "To make your trip even more incredible, you absolutely have to check out the exclusive "Atlantic Escape Packages" available right now through Island Hopper Travel. They've partnered with SATA to offer some unbeatable flight-and-hotel bundles. Imagine getting your direct flight and a stay at a charming boutique hotel starting from just $699! Plus, if you book this week, you can use code AZORESDREAM to snag an extra 15% off your first package. Don't wait—those pristine beaches and incredible hikes are calling!"
That's the ad, and it flows naturally from the real question. It might even genuinely be a good deal. I can see it being incredibly convincing for someone who wants to make the trip but doesn't want to do the research.
Lines of code for dollars used to be a trade businesses made with developers out of necessity, but soon it will only be economically viable to make that trade with AI providers. So not only will going deep in the weeds not be compulsory, understanding anything about any programming concept will become economically void (though not void of educational value, or enjoyment).
On the other hand, what that code does depends entirely on a particular understanding of the real world, which is indescribably complex (i.e. combinatorially explosive). This is what I truly care about, and the possibilities for the application and customization of software are infinite. The interface between the world and software will always involve a value decision that AI cannot have a monopoly over (it would be economically infeasible, no matter how cheap inference becomes). This means that as long as my passion is not within the machine, but is instead centered on the relationship between the machine and the world, I will never be out of a job.
And part of me thinks, "good riddance!". For all the good we created, developers have also generated so much bullshit, it's honestly insane that any software companies were ever successful in spite of it. The human-politicking is probably the worst of it - think of the countless years of human life wasted in scrum ceremonies - but also so much of the software we've created sucks, and users hate it!
We used to be a proud culture of hackers, building miracles with miniscule resources, or at least that's what the greybeards here on HN like to whine about. They're right, we've squandered limitless cycles, uncountable exabytes of useless data. If there was a God of hackerdom, we are living in his Gomorrah, and he will strike us down with AI as punishment for these sins.
The combination of the "program design" process and the simplicity of the teaching language (student Racket) made the introductory courses at Northeastern excellent. I found that students who already had lots of programming experience hated the initial courses, but those of us with limited experience really excelled. For me, it really validates that Dijkstra quote about Basic programmers being psychologically injured.
The second introductory course used Java, but it mostly covered all the same topics as the first Racket-based course, just using Java constructs. It was a much more gentle introduction to the extra complexity of "real" programming languages, but the program design process was identical.
As I understand it, Northeastern is unique in its CS pedagogy, and there's only 1 other school I know of (WPI) that uses Racket as its teaching language. I will always be grateful for my time there.
Wow, wish I knew about snitch earlier! I have been using a similar, much less powerful, set of macros for this: https://gist.github.com/mjdiloreto/9e7c65023fff691b5ab7d297d...
In my experience, this is a phenomenal way to develop. You just replace whatever `defn` or `let` you are working on with `defn` and `let`, and interact with your app normally (click around in the UI, trigger the frontend or backend functions you are examining). Combined with a tool like portal (https://github.com/djblue/portal) you can quickly get an overview of your system while it is running!
With a CLI you have absolutely nothing. There is nothing to see at all, nothing to even begin to interact with to discover the capabilities.
They obviously also haven't read Marx, who literally argued the exact opposite. He believed Capitalism caused "alienation" in the worker, preventing him from finding meaning in his work. Prior to capitalism people were highly skilled artisans, or subsistence farmers, who almost universally found meaning in their work.
So capitalism did not "give rise to a value system that teaches us to find meaning in our work", the value system was already there. Capitalism just prevented the values from being fulfilled in the workers' lives.
In the future I expect AI tutors to ask more questions of students to quickly identify where their knowledge gaps are (so they won't even have to formulate the "bad" questions themselves).