4 ms·
A programming language that is as easy to write as Excel formulas exists already: It's called BASIC. Lots of people fell in love with it since the late 70's. Su
by dragonbonheur 11y ago
A programming language that is as easy to write as Excel formulas exists already: It's called BASIC. Lots of people fell in love with it since the late 70's. Sure it's often ridiculed, mostly by people who somehow manage to slide an ill-fitting and unwarranted Djikstra quote in their argument, but the language has evolved with the times and once enabled millions of programmers to earn a respectable and honest living. Dialects like FreeBASIC, QB64, DARKBASIC, XOJO, FNX Basic, AutoIT and GAMBAS may seem very different to one another, but they remain BASIC and easy enough to learn within a week. Communities still flourish and are very tightly knit. Source code, Modules and Libraries are abundant, as are very capable IDEs, together with complete documentation.
Go forth(cough) and give FreeBASIC a try for a start. It already runs faster than Python ever will on Linux, DOS32 and Windows. QB64 is cross-platfrom too. If you're on the move give RFO BASIC a try, when you get back to your regular PC you can make APKs of the programs you've designed on your tablet. B4J enables you to run your programs on the Java VM. And if they are still not enough, you can still write your own dialect of BASIC... in BASIC!!!
- kjdal2001 11y agoI absolutely agree. My first experience was with QuickBASIC in the late 90s. I don't remember how I got my hands on it, but it was remarkably easy to pick up for a 10 year old with no programming experience and no one else in the house to answer questions. It was clearly designed with a quick feedback loop and small barriers to entry in mind.
- dragonbonheur 11y agoAnd you remember the documentation that came with that? Absolutely amazing for the time. Although syntax highlighting had not become prevalent yet, the absolute bliss of just pressing F1 and seeing all the documentation you needed was and still is unmatched. Python integration with its various IDEs still doesn't compare to what an obscure dialect like QB64 offers today.
- kjdal2001 11y agoYeah, it was fantastic. After programming in QuickBASIC ~1998-99, I didn't really do any programming for about 8 years. When I got back into it (in college) I was frustrated by how difficult it seems to get off the ground. The world of c++, python, command line, vim, shared libraries, package repositories, etc..., is very powerful, but it takes a lot of knowledge to get to the point of creating something of value. At my job, we have been getting non-programmers (at least people who aren't 100% programmers) to learn some python. It has been going fairly well, but there is still a lot of ancillary knowledge, often about the programming environment, that they don't have which means a programmer needs to get involved. As much as I dislike Excel, it does a great job of letting people think about their business logic without getting side tracked dealing with dependencies, libraries, whatever. I feel like BASIC had similar strengths, but was code with all of the advantages that brings. More modern languages like python could learn something from it.
- theseatoms 11y agoThis is identical to my experience teaching non-programmers to write Python. We end up reverting to Excel so often.
- dragonbonheur 11y agoYou should both teach them FreeBASIC. After they've written their first Objects as Extended Types they will have no trouble at all moving on to C++ if they want to. They will have little trouble finding out how to create GUIs using GTK or how to compile for DOS, Windows and Linux and they won't lose time trying to figure out how to distribute their programs or wondering if the Python runtime is installed on their client's machines or not.
- networked 11y agoI've also noticed the trend with various dialects of Basic producing tightly-knit communities but I wonder if you can credit that to the language itself. Is a modern, object-oriented Basic really friendlier than (a subset of) Python or Lua (edit: with a similar standard library)? I find it at least as likely that today Basic's reputation as an informal, hobbyist- and beginner-friendly language shapes the communities that use it in a certain way more than the language itself. I acknowledge this may not have been the case in the 1985 or even 1995. Blitz3D [1] was an exceptionally quick and easy way to do 3D in the year 2001 but at that point it could have been written to expose the same API, say, to a Pascal compiler. What exactly is right about Basic has been a matter of great interest to me lately because I have been thinking about developing a bootable early home computer Basic-like interactive environment for UEFI. I quickly realized that one of the hardest design decision involved in this project would be whether the language of the environment should actually be a dialect Basic (rather than Logo, Lua, Scheme, JavaScript, Tcl, Python or something else entirely). On a related note, I wish there were large empirical studies of how quickly new programmers learn to use each of the stereotypically friendly languages. Perhaps MOOC will eventually produce those. [1] https://en.wikipedia.org/wiki/Blitz3D https://en.wikipedia.org/wiki/Blitz3D
- dragonbonheur 11y ago> Is a modern, object-oriented Basic really friendlier than Python or Lua? QuickBASIC had User Defined Types, FreeBASIC not only has Pointers (and therefore Function Pointers) but also adds methods to TYPES which are defined as Subroutines just like in C++. In Fact FreeBASIC can be thought of as a covert way to learn and understand C++ for QBasic programmers. As for it being an informal or hobbyist language, if one begins by designing the proper data structures and adds the adequate functions to handle them, the resulting programs can be just as capable as those designed in any other language. Being able to think like a programmer makes all the difference, not the reputation of the language being used. As for Blitz3D, it can access external DLLs. DLLs can be easily written and compiled with freeBASIC. No problem for any adventurous BASIC programmer. As for your BASIC dialect you can take a look at [1] to learn how to write your own in FreeBASIC or QB64. This code can be easily understood and ported to any language. [Edit] The standard library may not be as complete as Python's but FreeBASIC can work with most DLLs compiled with C and the documentation will mention ways to include C headers and work with various external libraries. [1] http://www.qb64.net/forum/index.php?topic=6388.0 http://www.qb64.net/forum/index.php?topic=6388.0