My experience with generative-AI has been that, at its very best, it is subtly wrong in ways that only an expert in the relevant subject would recognise.
-
@jonathanhogg Thanks! I'll absorb that and then I can ask you better questions at EMF.
@jonathanhogg .. great talk!
-
@jonathanhogg .. great talk!
@jarkman thank you!
-
We seem to have largely stopped innovating on trying to lower barriers to programming in favour of creating endless new frameworks and libraries for a vanishingly small number of near-identical languages. It is the mid-2020s and people are wringing their hands over Rust as if it was some inexplicable new thing rather than a C-derivative that incorporates decades old type theory. You know what I consider to be genuinely ground-breaking programming tools? VisiCalc, HyperCard and Scratch.
@jonathanhogg Rust does fundamentally rely on advances in type theory that weren't there until 2010s, so I don't think this is a fair characterization of it
-
@jonathanhogg Rust does fundamentally rely on advances in type theory that weren't there until 2010s, so I don't think this is a fair characterization of it
@jonathanhogg I do agree otherwise and I've spent a lot of time working on lowering barriers to entry for RTL development; I think quite successfully, after observing a chemical engineer with no formal CS training or background develop an electron microscope data acquisition package from the basics
-
@jonathanhogg Rust does fundamentally rely on advances in type theory that weren't there until 2010s, so I don't think this is a fair characterization of it
@whitequark Heh! I honestly expected to get more pushback on the Rust quip
. I don't mean to ding on it in particular, I actually like Rust a lot. Introducing the borrow checker as a type-theoretic way of doing formal proof of memory safety is genuinely great, but algebraic types and protocols go way, way back. -
I will say one thing for generative AI: since these tools function by remixing/translating existing information, that vibe programming is so popular demonstrates a colossal failure on the part of our industry in not making this stuff easier. If a giant ball of statistics can mostly knock up a working app in minutes, this shows not that gen-AI is insanely clever, but that most of the work in making an app has always been stupid. We have gatekeeped programming behind vast walls of nonsense.
@jonathanhogg I get the strong impression we don't want to! We want to feel like Real Engineers doing Real Programming.
This can really be seen when it comes to the web...
-
I will say one thing for generative AI: since these tools function by remixing/translating existing information, that vibe programming is so popular demonstrates a colossal failure on the part of our industry in not making this stuff easier. If a giant ball of statistics can mostly knock up a working app in minutes, this shows not that gen-AI is insanely clever, but that most of the work in making an app has always been stupid. We have gatekeeped programming behind vast walls of nonsense.
@jonathanhogg
i think it can only generate an app that is sort of working maybe and could have security problems -
@whitequark Heh! I honestly expected to get more pushback on the Rust quip
. I don't mean to ding on it in particular, I actually like Rust a lot. Introducing the borrow checker as a type-theoretic way of doing formal proof of memory safety is genuinely great, but algebraic types and protocols go way, way back.@jonathanhogg I very much agree with that! at the time Rust was a tiny little language with a lot of promise I was heavily using OCaml, which is nearly as old as C, and a lot of what I like about Rust is just that it finally brings those decades old techniques into the mainstream. I think this is in itself a valuable achievement!
the other thing about Rust is that it does make systems programming more accessible by giving you lots of guardrails in the trodden path. it is not only focused on that and you could argue it's not even primarily focused on that, but I think it's a very important aspect of it that allows a lot of people to do things they'd otherwise be afraid of.
I also think it's useful to say "accessible to whom?". in my description above, the unstated part was "makes system programming accessible to developers with experience in different domain", but this is very different from "makes programming accessible to people who do not think of themselves and do not want to be 'developers'" which as I understand is more what interests you
-
@jonathanhogg I very much agree with that! at the time Rust was a tiny little language with a lot of promise I was heavily using OCaml, which is nearly as old as C, and a lot of what I like about Rust is just that it finally brings those decades old techniques into the mainstream. I think this is in itself a valuable achievement!
the other thing about Rust is that it does make systems programming more accessible by giving you lots of guardrails in the trodden path. it is not only focused on that and you could argue it's not even primarily focused on that, but I think it's a very important aspect of it that allows a lot of people to do things they'd otherwise be afraid of.
I also think it's useful to say "accessible to whom?". in my description above, the unstated part was "makes system programming accessible to developers with experience in different domain", but this is very different from "makes programming accessible to people who do not think of themselves and do not want to be 'developers'" which as I understand is more what interests you
@whitequark yes! Rust totally makes accessible a lot of previously esoteric type theory to people who are programming at a low enough level that they probably should be using it. But even as someone who lives for this sort of shit, it’s too low level for 95% of what I want to be doing day to day
-
@whitequark yes! Rust totally makes accessible a lot of previously esoteric type theory to people who are programming at a low enough level that they probably should be using it. But even as someone who lives for this sort of shit, it’s too low level for 95% of what I want to be doing day to day
@jonathanhogg completely fair, yeah!
-
@jonathanhogg this is my central response to the "AI makes software development accessible" argument.
Once upon a time anyone could program their personal computer using a book that came with it. We taught it to all the kids in my tiny town's elementary school. My shopkeep neighbor and our local mechanic wrote their own custom software with no CS background.
BASIC, Hypercard, personal computers, printed manuals > LLM's.
@requiem @jonathanhogg I am old enough to remember the days before gcc when I wanted to learn how code everyone laughed and said first I'd need $500 for a copy of the Borland C compiler. It wasn't until linux became popular that I actually had a way to compile my C programs.
-
I will say one thing for generative AI: since these tools function by remixing/translating existing information, that vibe programming is so popular demonstrates a colossal failure on the part of our industry in not making this stuff easier. If a giant ball of statistics can mostly knock up a working app in minutes, this shows not that gen-AI is insanely clever, but that most of the work in making an app has always been stupid. We have gatekeeped programming behind vast walls of nonsense.
@jonathanhogg Creating CRUD for any database object was a solved problem in Django 20 years ago. No reason for people to pretend it was difficult all this time.
-
@saferblue.bsky.social Rust, Swift, C#, Java, C++ are all functionally equivalent languages to me. When I say “high level” I mean something like Prolog or HyperTalk, maybe Haskell
-
You know what? HyperCard was a glorious moment in time that I dearly miss: an army of non-experts were bashing together and sharing weird and wonderful stacks that were part 'zine, part adventure game and part database. Instead of laughing at vibe-coders, maybe we should ask ourselves why the current state-of-the-art in beginner-friendly programming tools is a planet-boiling roulette wheel.
@jonathanhogg Have you seen Decker? It’s a lovely homage to HyperCard: https://beyondloom.com/decker/index.html
-
You know what? HyperCard was a glorious moment in time that I dearly miss: an army of non-experts were bashing together and sharing weird and wonderful stacks that were part 'zine, part adventure game and part database. Instead of laughing at vibe-coders, maybe we should ask ourselves why the current state-of-the-art in beginner-friendly programming tools is a planet-boiling roulette wheel.
@jonathanhogg HyperCard was amazing, and I like to think that if it had still been getting the appropriate support it needed, it would have transitioned really well to the World Wide Web, with stacks being transported to an in-browser runtime plugin that could make calls to data sources on servers.
Even on various modern SaaS platforms, we are still struggling to empower internal staff to build useful stuff that HyperCard could have done so well. The newest generation of that is LLM-powered agentic tools for departments, but even those are turning out to be difficult to build quality products from.
-
@requiem @jonathanhogg I am old enough to remember the days before gcc when I wanted to learn how code everyone laughed and said first I'd need $500 for a copy of the Borland C compiler. It wasn't until linux became popular that I actually had a way to compile my C programs.
@skotchygut I'm pretty sure I still have a "backup copy" of Turbo C++ somewhere...
@jonathanhogg -
You know what? HyperCard was a glorious moment in time that I dearly miss: an army of non-experts were bashing together and sharing weird and wonderful stacks that were part 'zine, part adventure game and part database. Instead of laughing at vibe-coders, maybe we should ask ourselves why the current state-of-the-art in beginner-friendly programming tools is a planet-boiling roulette wheel.
@jonathanhogg well, things started going downhill bc of Steve Jobs:
Atkinson: [At an event at the school our kids went to], he said "you know, Hypercard was really ahead of his time, wasn't it?"
And that was the first time he'd ever said anything good about hypercard. I think before that, the problem is: Hypercard is the reason I didn't go to NeXT, and it had Scully's stink all over it. [...]
https://youtu.be/INdByDjhClU?si=Ft-fFBWBGC5tmC74&t=954That doesn't explain why the world stayed at the bottom of the hill tho.
-
To me, all these people crowing about having written 10k lines of code in a day are idiots. If you need to write that much code in a day, you are manifestly working at the wrong level of abstraction to solve your problem.
@jonathanhogg yep. And if they're working on an operating system (or any related system software, or anything that needs to stay up and running), they're committing malpractice that's going to get a lot of people killed:
https://mastodon.social/@JamesWidman/116133223470110717 -
@jonathanhogg Have you seen Decker? It’s a lovely homage to HyperCard: https://beyondloom.com/decker/index.html
@eschaton It looks cute, though curious to build such a faithful homage but ditch the most interesting thing about HyperCard – the HyperTalk language
-
@skotchygut I'm pretty sure I still have a "backup copy" of Turbo C++ somewhere...
@jonathanhogg@requiem @skotchygut believe it or not, I actually learned C on the BBC Micro in the 80s with the Beebug C compiler, which was a strange contraption that compiled to a 16-bit virtual machine code and then interpreted that on the 8-bit 6502