6 ms·
I've programmed extensively in QBasic and TI-BASIC. Both were extremely limiting, ofc. But there is one thing I'm very grateful for, in retrospect. Both langua
by sdsd 3y ago
I've programmed extensively in QBasic and TI-BASIC. Both were extremely limiting, ofc.
But there is one thing I'm very grateful for, in retrospect. Both languages required very few "concepts". Functions? Pointers? Classes? These are basics for coders, but BASIC didn't ask even this of you.
With a small syntactic baseline you could make full on games pretty easily. Compare this to making games even with Python using PyGame, or Godot, or whathaveyou.
Of course, nothing prevents you from learning Python and just limiting yourself to a few data types and control structures. But what really made BASICs easy (for me) was that "draw to the screen" was such a primitive operation. Same with detecting keypresses.
Again, these are easy if you're a software engineer, or even if you know how to code. But what if you don't?
Even Visual Basic had this virtue. When I was in Mexico I volunteered at a homeless shelter. The man who operated the shelter had no coding education, but was able to self teach Visual Basic two decades ago, and had created an entire system for managing the facility.
He had tried to rewrite it to use a more modern language (I believe C# or VB.Net) and was totally unable.
I've never used VB but I've heard countless tales like this, where non-coders create entire functioning software in it.
- pjmlp 3y agoWhich is why VBA is still loved, regardless how many think it is outdated. Lost count of non-coders that outgrown their Excel macros that I got to know, that dive into VBA, eventually ask IT for VS and VB.NET.
- XorNot 3y agoLinux is still missing something which had as tight a development loop as VB in terms of "intent -> result" (I've never managed to get Glade or any of the similar GUI tools working, and thus never really written a GUI app in Linux).
- pjmlp 3y agoHave a try at Gambas. https://gambas.sourceforge.net/en/main.html https://gambas.sourceforge.net/en/main.html Or Lazarus, for the Delphi variant, https://www.lazarus-ide.org/ https://www.lazarus-ide.org/
- coldtea 3y agoLazarus is good and featured enough, if you know your way around, and the language is nice, but for "ease of use" and "beginners" the Lazarus just has horrible UX, on par with Eclipse.
- pjmlp 3y agoBeauty lies with the beholder.
- coldtea 3y agoNot really. People converge quite strongly on what's beautiful (e.g. when shown faces) - or in usability considerations.
- ikari_pl 3y agoThat's because it's mimicking Delphi, which was mimicking Visual Basic (the first one). Just like Eclipse was one of the first of its kind. People hate changes, even the slightest UI color changes are booed down. I can imagine redoing Lazarus to look like IntelliJ IDEA would be a lot of work that would be frowned upon (though I love IDEA... but I myself find it not tempting at all to switch to their "new UI" which copies VS Code and hides away my most frequently used features behind submenus and pictures, like I can't read ;-) (old man yelling at clouds)).
- pjmlp 3y agoEclipse was mimicking Visual Age for.... Workspaces as a way to have the concept of Smalltalk images, while being based in files. To this day it supports code navigation like in Smalltalk. Ironically, VSCode was also created by one of Visual Age and Eclipse architects, Erich Gamma.
- hoistbypetard 3y agoGambas very much fits that bill, as the other reply mentioned. If you want to pay for something, Xojo (formerly known as RealBASIC) does too: https://www.xojo.com https://www.xojo.com
- campsoftware 3y agoXojo is full of bugs. https://ifnotnil.com https://ifnotnil.com was set up after Xojo banned users for complaining...
- pjmlp 3y agoWhat a pity, I liked the product when it was Real BASIC.
- hoistbypetard 3y agoUgh! I hate to hear that. I used to like RealBASIC, and thought they'd kept up that spirit.
- timdietrich 3y agoHere's a completely different perspective on Xojo: https://timdietrich.me/blog/xojo-netsuite-development/ https://timdietrich.me/blog/xojo-netsuite-development/ My advice to developers that are interested in Xojo, or looking for something different in terms of languages / development platforms, is to give Xojo a try. You can build and run apps in debug mode for as long as you'd like, all at no charge. It's only when you want to compile apps so that you can run them as executables and/or for distribution that you'll need to purchase a license.
- garrypettet 3y agoIgnore the naysayers replying to this. I have no vested interest in Xojo except I’ve been coding with it and enjoying it since 2004.
- ajuc 3y agobash?
- spit2wind 3y agoEmacs does pretty well. Its focus, however, is text rather than GUI. However, it has a really tight connection between intent and restult. Your point is a good one. VB, especially in the context of VBA in Excel, was quite effective. Was it Joel Spolsky who headed VBA design?
- cafard 3y agoTcl/Tk?
- Turing_Machine 3y agoLoved or hated, it's going to be around for a very, very long time, IMO. Too much business depends on some VBA macro that Shirley in Accounting or Jim in Shipping wrote 20 years ago.
- pjmlp 3y agoAnd their replacements were adding new code just last week.
- ofrzeta 3y agoWhy would it be outdated? I just spent some time browsing the VB .NET docs and there's about everything you could imagine including async functions or iterators.
- cyanydeez 3y agoVBA is deprecated
- signaru 3y agoI also used to be a non coder until I got my hands on VB. Consequently, my first programs were GUI instead of command line, which was everyone else's "hello world". It took a while to convince myself to learn other languages that didn't have GUI out of the box, because non-GUI software didn't look like the software I knew or wanted. My more "advanced" C/C++ friends, on the other hand, thought of GUI stuff as being more difficult.
- noduerme 3y agoI also grew up with BASIC (no new flavor. Controlling pixels one at a time on a TRS-80). One thing it teaches you is how to organize your own code, i.e., spaghetti is so easy in that format that you develop a lifelong appreciation for OO or functional code once you move on to it from thousand lines of GOTO and GOSUB... yet it teaches you everything you need. Yea it exposes screen interfaces you don't have to write yourself, but the point is to teach logic, not pure CS. Every first time coder should be exposed to BASIC because it has no preference or bias... any code you write in it will be equally shitty and equally educational.
- charlieyu1 3y agoLearning BASIC made me feel OO, clear variable names and clean code was unnecessary and I made no effort learning that back then. I’d regret about that much later
- ikari_pl 3y agoCould they have been unnecessary at the time? Not all applications (in the literal English sense of this word) need this, and I think it's something we embrace as we advance. After BASIC (which was obviously also my first, if I didn't mention it in the article already :D), I switched to a PC and used Borland Delphi for my first programming adventures. Fully object oriented language, with all the structural help you may want. And yet, my code was often repetitive, procedural, or just doing silly things (and variable names mixed English and Polish even within a single name). But it was a phase. I think a beginner programmer focuses on the goal and struggles with their way to reach it enough not to bother about the best, or most beautiful, or idiomatic way to achieve the goal. However, after a few years you build the awareness that if you're going to revisit this code in the future, you want it easy to read as well, and you may want to hide certain functionalities and operations behind functions, procedures, objects. The more time you spend programming, the more you appreciate structuring your code, then your application, then your entire architecture in a way that wouldn't hurt you in the future... or minimize the hurt. It's also a matter of the right tool for the job - an advanced programmer, writing a one-off script to quickly get or transform a result, may also decide not to decorate it with a sophisticated system of classes :-) I'd just write a bash or python script.
- hedora 3y agoI’m surprised how close JS has gotten to this: https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Move_the_ball#compare_your_code https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_... It’s not quite there, but getting to a context similar to a qbasic graphics mode is only 10-20 lines of boilerplate.
- musicale 3y agoI used to think that Python was a modern BASIC-type language because you can learn the basics (so to speak) in an afternoon. Now I consider JavaScript as more of a modern BASIC because of its ubiquity - it is included in basically anything that has a web browser (Like BASIC, JavaScript also has its own set of idiosyncracies, many of which derive from its environment.)
- radicalbyte 3y agoPython is ideal! You can just drop code in a file - no structure - and it runs. Then when you have code you wanna reuse just wrap it in a function and drop it at the top of your file. That get too much? Split it into a different file and import. Have cases where data + logic in functions kinda all fit together? Move them to a class. Start getting overwhelmed by all the runtime errors and stuff being slow? Learn C#, Kotlin, Java or Rust.
- vrighter 3y agono structure apart from the very strict structure imposed by the significant whitespace, guaranteeing that copy and pasting code will result in something unexpected, for a beginner?
- donatj 3y agoI spent a pretty significant amount of time in QBasic. It definitely has functions. It also has subroutines "Subs" and the difference was a function returned a value and a subroutine did not.
- whstl 3y agoI remember QBasic (the DOS 6 version at least) having a distinction between Subs and Functions, where the function returns a value but the Sub doesn’t. I never stoped to wonder why and just accepted this as reality, but the mere existence of this distinction helped me understand software from an engineering point of view quite early. It was a bridge to Functional programming, CQRS, Bertrand Meyer’s teachings, 10 years before I could even have a chance of hearing about it.
- colanderman 3y agoI didn't understand it at the time, but even Applesoft BASIC made the same distinction (DEF FN/FN vs. GOSUB/RETURN). In fact functions could only be defined as pure mathematical expressions.
- ikari_pl 3y agowhich was also what limited their practical applications at the time
- 7thaccount 3y agoThere are some modern versions of basic (e.g. Purebasic and Powerbasic) that seem extremely nice. Also, there is Xojo, which is a fully OO Basic that natively cross compiles to Mac/Windows/Linux/Android/iOS/Raspberry pi. Xojo also has a full RAD tool that abstracts away a lot of stuff. Pretty easy to build games on it too. It's commercial though.
- campsoftware 3y agoXojo is full of bugs. https://ifnotnil.com https://ifnotnil.com was set up after Xojo banned users for complaining... Xojo also compiles to Web Apps. But to compile to all those targets means creating a - Project for Desktop ( Mac/Win/Lin/Rasp ) - Project for iOS - Project for Android - Project for Web So, four different Projects instead of one Project. You can create externals to share code between projects. I used Xojo shortly after it became available under the name "REALbasic" back when you could only compile to Desktop. Web, iOS, Android were later added. I spent a ton of time on Web 1.0, but Xojo replaced it with Web 2.0 with no upgrade path, practically requiring a rewrite. So I now code my Web Apps with PHP. While I really wanted to keep using Xojo, the lack of quality just got worse and worse. The only bugs I encounter now are my own. If Xojo was as tight as PHP, I'd still be using Xojo!
- 7thaccount 3y agoThanks for the heads up? Do you think it's changed in recent years? I'll look at the link.
- mcmoor 3y agoVB is what made me fall in love with programming, because it made coding feels like WYSIWYG. To this day nothing compares to it and I still never really touches front end programming again ever since.