Macs have brought a great deal to us over the years: desktop publishing, design, image editing and processing, multimedia, and more. One of the few fields where they have failed is programming, despite many attempts. Here I look back at some of those opportunities we missed.
It’s a bit of an only mildly related aside, but even though I personally would love to get into programming in some form, it’s actually a lot harder to get into than a lot of programmers tend to think. Learning how to program has big “the rest of the fucking owl” energy in that the most basic of basic concepts are relatively easy to grasp, but the leap from those very basic concepts to actually using them for something useful is absolutely massive and fraught with endless pitfalls.
Many, many have tried to bridge this massive canyon, and Apple sure has tried numerous times as this article illustrates, but other than just starting at a young age and never losing interest and never standing still for too long, it seems like nobody has found an actually good, reliable way of teaching latecomers how to program.
Thom Holwerda,
I don’t know how serious you would be, but just know that you’d have a lot of help if you wanted it. You could even turn your personal itch into into a cool community project. I am confident that you could learn everything you need to know, but the bigger question is 1) if you’ve got spare time, and 2) if that’s the way you want to spend it. If you are happy with your work/life balance as is and want to stay that way, honestly I don’t think programming would be for you.
Incidentally I always hoped I’d be able to show my kids how to program. I am learning that if I want to bond with them I have to change myself, because whether I like it or not, they don’t care about my interests as much as I try to make them, haha.
Interesting idea this, but if you look at the marketing history it’s probably correct given who different vendors targeted, some went down the artistic / creative route while others went for the analytic.
Of course “programming” is an all encompassing term, and it’s also something that has changed significantly from the days of Fortran and Cobol to the current day. I develop for IoT, but I would not call myself a programmer, perhaps coding best describes what I do, but I doubt I’m even as a skilled as the most basic script kiddie, but then script kiddies are no longer “unskilled” like the historical derogatory term infers.
But in my role I manage systems that include other developers, graphic artists, engineers and technicians, and I can confirm there is no one platform that does it all the best. Anyone who roles in and starts telling us “Platform A” is the best and can do it all, is immediately identified as an apparatchik and a fool!
Seems like this all depends on the individual.
Personally HyperCard was what pulled me into programming (just before learning GW-BASIC), and Swift was the reason I moved to Apple. So there is at least some success (one data point).
That being said, the early age programming literature and the associated tools have made significant progress. Purpose built languages like Scratch, ready-to-code platforms like LEGO Spike, and even kids games like MineCraft and Roblox with their programming platforms already do a good job. (Along with detailed lesson plans that come with them).
(And for sake of completeness, Xcode is still here, along with Swift Playgrounds, which is available and receiving updates on Mac and the iPad).
I started programming on a C64 in BASIC, Back then there wasn’t a lot of choice for me, Then onto the Amiga where there was more choice and one could pick different languages, I still stuck with mostly basic but was able to add in some C and 68K assembly. Now I work on an old code base in C, C++ and C#. One thing you learn when coding is how to break every problem down into small easier tasks. It’s the same when learning it too, Decide what you want to do, Find a language that does it then just start playing with small parts of the language until you are satisfied you understand them and move on to the next. You can learn a lot from any language that will then translate to others later, Most of them have similar building blocks like loops and ifs.
How did you learn to speak a second language ? did you learn it all in one go or was it bit by bit over a period of time ? To me, Learning a second spoken language has draw the rest of the owl energy too yet you did it.
If you want to get into programming, I would say that the main thing is to understand that, like with anything else, you are going to get what you put into it.
You can do a bootcamp to kinda get started, but you will only have a successful career if you have a passion and keep learning.
Perhaps the right choice might be starting it as a hobby. Go through some online courses, come up with a small project, see how it goes.
drstorm,
Whether it was programming, soldering, etc, I’ve always been under the impression that Thom only wanted to learn for personal fulfillment, not as a career.
As a career choice I personally find that much of the work is just tedious. I’d like to work more on on the fun & interesting stuff that drew me into computing, but the truth is that most of the programming jobs are boring to somebody with a CS degree because what we learned is simply not what most local companies need software developers for. Maybe 85% of what I do professionally is grokking mountains of business rules. I’ve had some exceptional jobs though, building a software defined radio was challenging and loads of fun (although stressful because it was a small company with limited resources). I do like databases and really wanted to build my own but it’s a hard sell.to companies who understandably don’t want to pay when off the shelf FOSS software is already free.
I kind of resent my current attitude, “I can technically do XYZ and it could be fun, but is it worth doing if I can’t get paid for it?” When I was at university, I didn’t let that stop me, but now funding is a deciding factor that keeps me doing stuff I don’t really like. If anyone can pay me to do the fun stuff, give me a holler
To learn how to program, you have to have a reasonable goal, and be okay with ugly.
Meaning maybe your goal is to write a simple question /answer application, or a simple database access helper or an office macro.
Choose a not insane language. Something really that can be really simple with minimal scaffolding, like maybe python.
Be okay that the language doesn’t have a great UI at least at first. Make it CLI or a really dumb ugly GUI. Just get it to work with minimal organization in the code. Then take small steps and gradually transform it as time and interest allow. If you really like the UX side of it spend more time there, if you prefer the backend, learn about how to better structure the code or interact with libraries.
If you’ve kept it simple you can always explore other languages by trying to replicate your simple useful program in that language.
Thinking back to my early days of computing, programming wasn’t something conceptually detached from using a computer like it is today.
You need cli commands to get Choplifter to even run! I learnt a Lot from that era.
In terms of people getting into programming, people obsess about languages to learn and other factors. At the end of the day, there is a problem to solve, and its up to you how you solve it. It might be java, it might be a screen recording tool. Find yourself a problem, and work out how to fix it. (Maybe the fact OSAlert denies access to certain countries and _people_ have to fill out a form every login/comment )
For My intro into programing, my main driver is the Macs we had in our house were older, so every time a new ¨cool¨ game came out, my Mac couldn’t run it. Rather than accept this fact I'd spend hours trying to get every last bit of life out of my machine. To get Cosmic Osmo to work properly must have taken me DAYS of work. I probably learnt to ¨rebless¨ the finder when I was 5 or 6, which is crazy to think about… But from all that, I learnt how to tweak things to make them work. To this day, you give me a blank screen and Ill be lost. You give me a page full of code (basically any language) and I can iterate through and fiddle until i get it to work. I'll break it along the way, but eventually I will have solved the puzzle
I started with gwbasic and then moved on to qbasic, then visual basic up to vb 6, which for me was the easiest way to create useful and fast applications. That should be the purpose of programming, to create easy solutions for our everyday problems. Then Microsoft destroyed visual basic with .net and I had to learn javascript and now I’m using react which is not as easy as vb6 was but it allows me to create the applications I need to solve my problems. The main drawback I find is that it is not easy to start using it to quickly create simple applications.
We really need something like vb6 where you could draw the application and hook up the events easily.
mebarg,
I agree that visual basic was really good at rapid prototyping. The language had a lot of flaws, but the way in which it was put together made it very accessible even for non-programmers. If it weren’t proprietary/windows specific/obsolete, I would say it’d be right up Thom’s alley. You could create legitimately useful GUI applications without having to invest lots of time in the learning curve first.
Now we have Gambas is the closest to vb i think https://gambas.sourceforge.net/en/main.html
mebarg,
Wow, it really is…thanks for the link. I hadn’t heard about it before but the screen shots are very familiar!
Thom could be building small GUI applications within a week