God creates man
Man rebels
God calls Man back
Rebels again
God sends Man 2.0 blueprint
Man ignores blueprint
God sends architects
Man kills architects
God becomes Man
God-Man does blueprint
Man kills God-Man
Ineffective
Man 2.0 Demo Day
Man starts 2.0 upgrade (ongoing)
There are a few things that I look back on as my mistakes in the early days.
Quake was overly ambitious technically. We could have done all the great multiplayer and modding work inside a Doom++ engine, allowing the designers to work with a more stable base instead of rug-pulling everything out from underneath them a couple times. The follow up game could have then brought in full 6DOF environments and characters.
I pushed everyone too hard. I didn’t appreciate how maturing companies need more slack, and that running people at startup intensity constantly will wear them out. Quake was also where I really had to accept my personal limits. I was working pretty much as hard as humanly possible, and I was still slipping past my goal points.
On all of the founders’ shoulders, our original corporate stock arrangement and buy/sell agreement was a mistake, and resulted in bad incentives. We wanted to ensure that all ownership rested in the hands of people working hard on current projects, but the Silicon Valley standard approach of vesting stock would have worked out better.
One real problem that I don’t accept the blame for is that we were insisting that level designers be not just game designers, but also have strong visual design esthetics. They needed to make things that not only played well, but looked awesome, and it got more challenging as the technology provided a richer palette. Romero covered that well, which set our company expectations early on.
We should have figured out how to pair up artists and designers earlier, but there was infighting among the designers, and the ones that could manage the visuals were happy to disparage the ones that couldn’t.
Sorry, Sandy.
@DanTalks1 The answers here are good, I'll also add:
-Herding is a real issue, because data can be sliced and weighted in all sorts of directions so no poll looks like an outlier, big issue in 2024.
-Using the same tactic to fuel propaganda seems relatively new, but is widespread
In 1997, Brazilian soccer player Roberto Carlos took a free kick from 35 meters against France that seemed to defy the laws of physics as it curved around a wall of defenders at an angle that seemed impossible.
This “miracle goal” led a team of French physicists to publish a study in the journal New Journal of Physics, in which they explained that the extreme spin and speed created a “spinning spiral of the ball” that overcame gravity and air resistance.
As evidenced by the unbridled promotion and implementation of technology at the expense of human dignity, we are truly experiencing an eclipse of the sense of what it means to be human. It is imperative to recover an understanding of the true meaning and grandeur of humanity as intended by God. It is in this sense that the challenge we currently face is not technological, but anthropological, and it is my hope that the Encyclical Letter to be published within a few days will contribute to answering this challenge.
Prop A: LLMs can replace the output of human minds and automate every aspect of our economy that requires minds
Prop B: LLMs are a tool that output language but require the limiting guidance of experts to be productive over any significant timeline
Prop A: LLMs can replace the output of human minds and automate every aspect of our economy that requires minds
Prop B: LLMs are a tool that output language but require the limiting guidance of experts to be productive over any significant timeline
@darwintojesus I agree except for novel moral controversies.
Atheists can get murder or kidnapping right because of history.
But wokeness or COVID? Atheists didn't fair better than random selection
Christians have the Holy Spirit, and that is essential to navigate new controversies.
“Vibecoding”, i.e. ~hands-off usage of LLMs to rapidly generate code without regard for the actual code’s contents, for novel applications, can literally never be non-slop, because—as I’ve described before—there is not enough bits of information content in prompts to express the user’s exact desires in sufficient detail, and the desired solution is not expressed in training data (due to the problem’s novelty).
Only a sentient human developer can relate to another human user to determine what is desirable, and design the software such that it accomplishes this desirable outcome, and carefully verify that it is doing that, rather than something else (potentially undesirable).
This is true even for the combinatoric space implied by the training data, for instance if the novel problem is merely novel in that it combines pieces of existing solutions. There needs to be a guiding force to know what to combine and how.
The more detailed the prompt becomes, the more human oversight (the more human-guided round trips with the LLM), the closer it becomes to actual code (i.e. detailed execution instructions for a computer).
@rfleury@vkrajacic FOSS has allowed rapid protyping, which allows managers to show rapid progress. There's a perverse economic incentive caused by short term thinking.
One group needs reckon with the long term cost in short term thinking.
OTOH, some software should be disposable.
A fundamental division between schools of thought in programming is (a) the elimination through simplifying of cruft, boilerplate, and extra abstraction layers, and (b) the automation of maintaining cruft, boilerplate, and extra abstraction layers.
One of the reasons I drifted away from C++ and newer languages with adjacent philosophies towards a subset of C is that I found myself in the first camp. Some problems were simply not as hard as I was making them. Memory management, threading, UI, and so on could be simplified such that not only the high level C code became simple, but the actual machine code also became simple.
This is starkly different from modern C++ and Rust programming culture, where the philosophy is simply that dealing with the complicated lower level details is a matter of *automation*. The compiler needs to generate something extra, it needs to check extra things, and so on.
“Agentic programming” falls into the latter camp, and this is also why I don’t employ it in my workflow (other than search engine usage and so on). I don’t need it to generate 10s of 1000s of lines of code. The requirement of 10s of 1000s of lines of code—for implementing something derived from the information content inside a tiny prompt—is an architectural red flag.
Perhaps a substantial portion of that code simply shouldn’t exist. I find that my programs become much better when I do that simplification pass first. After that, there’s drastically less boilerplate, less maintenance, and less busywork to begin with.