3 ms·
Say what you will about BASIC, but it was (like Python) designed to be a programming language that beginners could learn in an afternoon and do something useful
by musicale 4y ago
Say what you will about BASIC, but it was (like Python) designed to be a programming language that beginners could learn in an afternoon and do something useful with. It was also compact, which made it scalable to support hundreds of users on a timesharing system, and small enough to fit on tiny, underpowered 8-bit systems and microcontrollers. BASIC, like Lisp, is also simple enough that it is easily implemented.
The computing era of the 1950s-1980s is interesting in that it was assumed as a matter of course that in order to get the most out of a computing system, users would write programs for it. As a result, the systems were fairly programmer-friendly and provided programming languages and instructions for using them in the box, including materials aimed at beginners.
Now that there are zillions of prefabricated apps that you can download almost instantly, there's a whole lot you can do with a computing system without ever touching a programming language. As a result, systems like macOS/iOS/Android/Windows are designed to create app and game users/customers rather than programmers or engineers - educational micro platforms like Raspberry Pi, Arduino, and micro:bit being notable exceptions, and Linux largely retains its programmer-oriented Unix heritage.
It's too bad, because JavaScript is included in every web browser, other languages like Python, Java and C++ are readily available for free on nearly every system, and even BASIC itself is still available from Microsoft in forms such as Visual BASIC, VBA, and SmallBasic. (And there are free and web implementations as well.)
What seems to be missing from iOS, Android, macOS, Windows, ChromeOS, and web browsers is an easy, visible, built-in onramp to programming. For example, Swift Playgrounds is neat, but I expect most iOS and Mac users don't know it exists, and would probably have little interest in it if they did.
- zozbot234 4y agoI still don't get why Python is considered "easy to learn" as a first programming language, even to the point of coding professionally in it. There are many things about Python that are extremely obscure and that a complete novice can only really hope to work around clumsily, not deal with in a principled way. That's frankly a big turnoff even compared to archaic but somewhat simple and understandable systems, including BASIC.
- analog31 4y agoI'm a heavy Python user, and have worked with a number of colleagues who have learned it as their first language in my group. And BASIC was my first language. I think Python is easy to use as a scripting language thanks to the proliferation of libraries, meaning that you can get things done without touching the obscure stuff. Many users can be quite productive with precisely the subset of Python that's not too different from BASIC. Python adds features faster than I can learn them, and though I'm a productive user, I scored "average" on a skills test.
- ExtremisAndy 4y agoVery good points. My Python skills are such that I would be laughed out of a Python job interview for hilarious incompetence, but the small subset of the language I know and am comfortable with has allowed me to automate all sorts of tasks and saved me an enormous amount of time over the years. What I love about Python is the great spectrum of possibilities with it over quite a range of skill levels!
- analog31 4y agoWhere my skills lack are in areas that just aren't relevant to my work. The quiz had a lot of questions about the testing infrastructure. Whereas I use Python mostly in Jupyter notebooks, and for laboratory automation. Still, I'm going to take a refresher course next year. I don't want to be the guy who's teaching Python without knowing it.
- Ekaros 4y agoAt basic linear scripting level it is pretty simple. Import stuff, write code, run it. But when you get to structuring it whole thing feels quite hacky and weird in places. Like why do I have this empty file here(__init__.py). Or what is the whole point of this "__main__" thing. Two examples of most basics ways of building a more complicated program and both are quite weird.
- abecedarius 4y agoWhen Python picked up that reputation it was considerably smaller, with the likes of Java and C++ as the most prominent competition. Also it's easy to think that newer fancier features added over time don't really matter for learnability, since the old style mostly still works; but they do matter some, since when you make a mistake, the interpreter doesn't know that you had no intention of straying from a simpler sublanguage.
- heather45879 4y agoAnother thing to note is that in modern computing environments there’s infinite distractions. We’re always one click away from YouTube. Back then, the screen was a playground one could poke and prod—without distraction, with a singular focus. This is especially important for children. Now we’re competing with the nearest iThing. I always think of the parents who buy their children the latest-and-greatest toys, only to find their child is more interested in the box. Or perhaps a stick and some bugs in the back yard.
- Falkon1313 4y agoAnother aspect was that the systems themselves were simple enough to fit in your head completely. Limited hardware, maybe a few special memory addresses or interrupts, and that was it. If you could read from a keyboard, write to the screen, and load and save files, you could already do everything that almost any commercial software could do. Going from that to more modern systems (even Windows 95) was a giant change. So many libraries, frameworks, and systems to know about. And you need to know them and work with them in order to create anything remotely like a commercial program. Your programs don't have full control of the entire system. So yeah, there's a lot more stuff available now, lots of free languages and tools, etc. But it's also a whole lot harder to get into.
- pjmlp 4y agoAlso something that I wasn't aware, given the amount of interpreted based BASICs, and the compilers being mostly commercial, is that the original implementation had a very crude JIT implementation. When typing stuff on Darthmound BASIC, the instructions would be compiled straight into machine code while on the REPL, just like Lisp and co.
- PaulHoule 4y agoWhen C, FORTH, Lisp and Pascal got special issues in Byte magazine what I noticed as a BASIC programmer was that all of them uses functions as an organizing principle. It wasn’t so clear to me the difference between languages like Lisp and FORTH where you could fully define new keywords and control structures and languages like C and Pascal where you can just define functions (that do what some of the keywords in BASIC might do.). It didn’t help that the C preprocessor cheats and lets you define ‘keywords’ with macros…