Got into a discussion with someone on Twitter about what makes a programming language "good for beginners". They seemed to want to talk about syntax and stuff. My questions are:

- how hard is it to install
- how easily can you import useful data and output results in a useful format
- how likely is a beginner to know someone who can help them solve problems they run into
- how many resources (tutorials, example code) are out there
- can you easily do all this without the command line

Follow

I was defending Excel as an obvious candidate for best programming language for beginners (I consider the syntax and the runtime environment to both be part of the core language; in the case of Excel you can't separate one from the other)

@darius Excel as a platform for learning about logic, working with datasets, and dependencies is a lovely thing.

@darius Spreadsheets are the modern BASIC: the only way most people know how to make a computer do a thing they want.

But the problem with powerful products designed for a niche, is that you can make a half-assed version of anything with them. So people do, constantly.

A PM at a pervious job had a GANTT chart in a spreadsheet, using cell sizes and background colors, which they updated by hand. There's a lot of that kind of thing out there.

@darius Making the computer do stuff is good, but a spreadsheet really isn't a very good tool for general jobs.

I think it's an indictment of the whole industry that every computer doesn't ship with a powerful, general system which is simple for an average user to understand and use.

IT takes a shitload of creativity to build stuff in Excel. Imagine if that got applied more directly to the problem, instead of how to express it in Excel.

@darius ⚠️ My Own Personal Experience Alert ⚠️
I had a really rough time wrapping my head around Excel (and still do, to an extent) because I've never really found a good resource on functions and stuff, and the behavior of things like copypasting has always been strange to me. Plus getting stuff into the right format. IDK. always have had a rough time with it

I was introduced to TI-Basic a year or two after being introduced to Excel and I had a MUCH easier time with that one. The big things that made it good were

- No memorizing functions or symbols, everything comes from categorized menus
- No install, it was right there on my calculator
- The calculator home screen was basically a REPL for the math parts of it
- Really great online wiki with a ton of references on advanced ways to use things (http://tibasicdev.wikidot.com/home)
- Code went from top to bottom instead of the weird cell-structure that didnt click for me until after I learned Haskell (lol)

@artemis funny you mention Haskell because I just realized that the spreadsheet model for data propagation is functional programming!

But yes some flavors of BASIC are great candidates too

@darius I think the reasons TI-Basic worked for me are all due to the core principles you cited though

- No intsall
- Easy to enter data manually or transfer over the link cable
- It was easy to find people online to ask questions, and i had friends I could try stuff out with
- Great wiki
- No command line

@artemis yeah! TI Basic really clicked for me too as a kid

@darius The fact that I could send a program to my friend over a link cable was one of the best parts too, because I could be like "look at this cool thing" and then upload it to _their_ calculator right then and there with no effort

@darius which I think is comparable to emailing someone a spreadsheet. but more fun

@darius Excel being the defacto development environment for office solutions is what makes it so hard to replace Microsoft in that space. Though most people writing code in Excel probably don't think of themselves programmers.

Everything is a spreadsheet.

And if it isn't, it's a spreadsheet that dynamically fetches data from Sharepoint to produce a PDF.

@darius i keep wishing for something that is spreadsheets but a little more database, a little less brittle, a little less indecipherable-once-it-gets-very-complicated. these are all programmer prejudices, of course, but i don't think they're wrong. i just think the massive programmer prejudice against spreadsheets as a whole idea has sort of kept a lot of the people who could make this happen from doing anything in the space between spreadsheets and other things. it seems so possible though.

@darius (and stuff like https://strlen.com/treesheets/ is so tantalizing, but it rarely seems to get much beyond proof-of-concept stage.)

@t54r4n1 @brennen yes! I think Airtable is frankly the closest we have to something like that with wide adoption but they didn't quite take it in the direction I would like

@darius From a enterprise software UX designer point of view I support this position 100% due to the simple fact that Excel is *the* competitor to any entreprise app and the most asked feature for any of them is "can it export to Excel?"
So many processes rely on some Excel sheet with formula that somebody made that spits out stats or kpi or generate dashboards.

One very strong point of Excel is that it's crazy easy to share your "program" with other people on company locked computers.

@streetwanderer @darius Maybe an aside but as an enterprise application developer, I also tend to take every “Can it export to Excel?” in enterprise feature requests as A Challenge. What feature am I missing? What are you trying to code here that the software doesn’t do yet?

So often those questions lead to undiscovered workflows and “shadow” Enterprise code. There’s nothing wrong with “we’ve been doing this process for 15 years with this creaky collection of undocumented VBA macros”, but…

@streetwanderer @darius As an enterprise developer my job is “We can do better”. We aren’t stuck to shadows of the past and software built by amateurs with huge domain experience but few software development skills.

Sometimes that comes across as “anti-user” but the goal is improving user experience with trade off to “user programming flexibility”. But I do feel like every Export to Excel button in some way is a professional failure to meet user needs.

@darius I think another important consideration is would the tool scratch an itch for the learner and get them interested? Spreadsheets are great for some things, but if the learner is interested in making game-ish things I think Scratch is a great place to start. Building on "Logo", a lot of work was done to make the system intuitive and easy to learn, avoid syntax errors entirely, and be approachable for kids.

@Eliot_L Yes that's totally fair! Basically replace "import useful data and output results in a useful format" with "do something that the programmer finds really helpful/interesting"

@darius my first programming language was logo and it was amazing in that regard; i don't specifically recall the environment beyond "could manage it as a grade schooler" but then for years i was chasing the high of getting a little turtle to draw a little star

@darius I think someone I worked with at Spotify said they'd implemented a Spotify client in Excel. I never saw it, but it's a pretty cool feat.

@darius

In my last job we used Excel to create our “Interim Training database.” You could almost here it buzz and whirrr as it opened and closed multiple windows in order to data enter. Only one person could use it at a time. I loved it! A low-tech built for purpose database connected to a user-friendly dashboard.

Five years later, they are still using it, and it’s meeting operational and compliance needs. One of the coolest things I’ve ever done.

Sign in to participate in the conversation
Friend Camp

Hometown is adapted from Mastodon, a decentralized social network with no ads, no corporate surveillance, and ethical design.