Hacker News new | ask | show | jobs
by ModernMech 4 days ago
How can you say that when millions of non-programmers are using AI to write programs all of a sudden? The problem isn't with non programmers it's with the languages they've been given are usually written by people who are keen to write languages that conform to their sensibilities rather than the programmer's.

For example: I would say that 1-based indexing is pretty much required for a language targeting non-developers; Excel, SQL, R, Matlab, Cobol, Mathematica, Lua are all 1-indexed and all target non-developers. Most PL devs refuse to do this citing how unnatural it is for themselves to reason about, and how Dijkstra was right about the beauty of 0-based indexes. Sorry, but all that is irrelevant when you're trying to convince a non dev that "Actually it makes a lot of sense that the first thing is called 0". They hear that and they tune out because it asks them to abandon their familiar assumptions too early, and they're unwilling to do that on promises of it getting better.

So the first problem people have in making languages for non-developers is they make it like Python, because Python is considered an easy language for beginners. Big mistake, because then you've only appealed to people for whom Python is appealing. Those are not the people we're trying to get with a non-dev language, and besides we already have Python for that.

You look at the top languages used by non devs and you can see that they appreciate aspects of languages that devs do not, so that's why devs fail so regularly at this. But there are some success stories you point out.

Then there's of course the biggest example you forgot: Excel. And it's not a surprise this one is always forgotten by programmers because despite being a programming language it doesn't follow typical programming language conventions, and as a design artifact it sits well outside the design hornet's nest that is the C/C++/Java/Javascript/Python which comprise most of mainstream programming.

Finally there is LOGO - This one is often missed, but it's a lisp-like language that allowed small children to program complex applications like differential physics coursework which grad students find difficult to program, and they're able to do it simply by reframing the program into something they are familiar with like their own body rather than abstract concepts like integration.

They called this "body syntonic reasoning" and it was impressive because the language itself contained the pedogogical framing to enable this. If it hadn't and just said "Here's what a for loop is, now write programs!" it wouldn't have worked. This shows you in order to get non-developers to code, you have to approach them with an uncommon level of empathy for how they thin, and I don't know if most lang developers are up to that task.

1 comments

> Most PL devs refuse to do this citing how unnatural it is for themselves to reason about, and how Dijkstra was right about the beauty of 0-based indexes

Thankfully I learnt to program back in the days where languages could go both ways, or even better you could explicitly set the lower and upper bounds.

Thus as programmer I never agreed with him.

And it isn't as if programmers of some famous 0 based index languages don't do indexing errors all the time.