4,274 karma · joined April 8, 2018
I love monkey-patching some python or js. But never have I ever suggested that anyone would should do it. Writing everything in Haskell sounds lovely but I wouldn't advise that either.
I honestly don't care what language I'm writing in. LLMs bring us back to the smalltalk days: your code is data and your data is code. LLMs bring a translation layer so that even if you're writing some high-level language, some DSL that exists only on some 1-off platform that no one else is aware of, _everybody_ has access to a self-bootstrapping codebase.
I feel more empowered to _code_ than ever: now, every single input carries semantic weight that gets carried through the "compiler." Every claim of determinism can much more easily be fuzz-tested and made more robust. "'sup, this broke, fix yo" and "Would you be so kind as to fix this error?" contain semantic context that actually affects the output of the generated code. That restores empowerment around code _authorship_ while still preserving the guarantees we want from the published artifact.
"Deep understanding" doesn't disappear when you gain the ability to be more expressive. "Deep understanding" disappears when people become incurious.
And then there's the bullshit artists.
Just because we never had the option of a chisel before doesn't mean all chiselers are bullshit artists.
Now I can work from wherever, whenever, by speaking into my headphones, and have it persist. Sure, I want to be in front of a screen to do final syntax review, but I don't mind planning out architecture and guiding an LLM towards a cohesive result while going for a walk or jog. That's just not a workflow that would have been viable 3 years ago.
This comes with some design drawbacks. I think Rust's borrow checker would be implementable but unreasonable in Haskell: Haskell already does lazy-evaluation on types to enable its arbitrary depth of type expressivity. But the borrow checker also wouldn't really make sense for Haskell because the default programming model uses a GC. I think Linear Haskell might be a kind of Rust-in-Haskell, though.
Again, caveat emptor.
If you are using LLMs to precisely translate a set of requirements into code, I don't really see a problem with that. If you are using LLMs to generate code that "does something" and you don't really understand what you were asking for nor how to evaluate whether the code produced matched what you wanted, then I have a very big problem with that for the same reasons you outline around prose: did you actually mean to say what you eventually said?
Of course something will get lost in any translation, but that's also true of translating your intent from brain to language in the first place, so I think affordances can be made.
Edit: to clarify, I'm suggesting that some people might prefer to let their brains "fill in the missing frames" rather than see the extra frames shown explicitly. For example, you might be more likely to notice visual tearing at 60Hz than you are to take note of visual tearing at 24Hz when you're already accustomed to filling in the missing pieces, or to a greater extreme, across two panels of a comic strip portraying motion.
I'm an avid video game player, and while FPS and sports-adjacent games demand high framerates, I'm perfectly happy turning my render rates down to 40Hz or 30Hz on many games simply to conserve power. I generally prefer my own brain's antialiasing, I guess.
nidhogg - deserves to be in an arcade cabinet but honestly this one is ALWAYS a hit...just 2player though
Broforce - 80s action stars in 80s action movie multiplayer platformer
Ultimate Chicken Horse - competitively build a platformer level and then race to complete the level first, best with 4 players
TowerFall Ascension - 2-4 players, also deserves to be in an arcade cabinet
Screen Cheat - FPS made for the couch; think N64 Goldeneye or Quake, but all the players are invisible, so the only way to figure out where your opponents are is to look at their quadrants (screencheat)
Overcooked 2 - it's pretty kid-oriented on the surface, but it's a game where you must out-communicate the absolute chaos unfolding around you in order to succeed...such a good couch-multiplayer experience, but best for experienced gamers imho
Rocket League
Magicka
Regular Human Basketball - control giant basketball automatons by jumping inside them and operating the manual controls in a team v team. Minimum 4 players to really work well, supports up to 10 players shared screen
That should get you started! But oops that wasn't my casual coop list, more my "makes for memorable group experiences" list.
It Takes Two, Portal 2, Untitled Goose Game, Halo Master Chief Collection was like $10 recently, all come to mind as positive local coop experiences I've had.
Although, Nintendo is still doing a good job at keeping the couch-social experience alive, and building 1st party games that can be good solo experiences but really shine when played next to a friend sitting on the same couch.
Its easier to say "I just didn't study and that's why I didn't get the job" than it is to say "even though I spent a bunch of time optimizing for this interview scenario and know I absolutely aced the technical interview, they still didn't like me."
Heck, I've been in interviews where I found the technical aspect a relatively easy bar to pass, and I blurted out something strange just to sabotage myself. If they can look past that and still see that I know what I'm doing and bring a lot to the table, I know they are people that I can do my best work with without needing to be constantly second guessing myself in conversation.
Some companies seem to forget that interviews go both ways, and that job candidates are screening for something different than what companies are screening for.