10 ms·
BASIC is anything but dead
- shever73 4y agoFor smaller projects, VB6 was great. I wrote a number of tools with it. For anything large-scale, things could get out of hand quickly. I remember having to work on localising a VB4-based ERP system that was very slow, unwieldy and full of spaghetti code.
- david927 4y agoAnd in the 90's, what people would do is to do the prototype with VB and expect to write the app in something else. But then the executives would see it, think it's 80% done because the UI was done, and push forward with it in VB. Or it would start out as a small, niche app in VB and then grow in scope. Either way, what would start off rationally would end up in chaos. Part of that was the language, and Microsoft is to blame there; the fix, C#, came too late. But the other, larger part was the failure of component development. And that's what people miss and that's what still remains to be solved.
- toyg 4y ago> the fix, C#, came too late Because it wasn't a fix for VB - it was just the answer to Java. Somewhat unfortunately, that "answer" swallowed the whole MS development ecosystem, and the VB world never really recovered.
- david927 4y agoI'd argue. I think it was both. Yes, it was an answer to Java but remember, VB apps didn't scale. They exploded at scale. And no matter how much you, as an organization, promised yourself you wouldn't scale up that VB app, it kept happening. So it was also an attempt to try to fix that.
- Sohcahtoa82 4y agoWhen I was young and stupid I was trying to learn game development in VB6. I had a type library that provided bindings for DirectX. This was in the late 90s, so I would have been on Windows 98. I learned quickly how SLOW VB was, but was in denial about it. I wanted to make it work, but anything that required more than a few lines of logic made it impossible to maintain even 30 fps. At the time, though, I was afraid of C/C++. I thought "Those languages are too complicated! Why would anyone use them when VB is so simple?" Yeah...I learned.
- Zardoz84 4y agoBack to these times. I try to remake a N body problem simulator. I was trying to imitate an old DOS program called "GRAVITY.EXE" on VB6 I throw it, when I saw that my VB6 was slower that the old 16 bit DOS program, and that setting the timer control to throw events too fast, could make Windows unresponsive.
- shever73 4y agoIn my naivety at Windows software development, I wrote an animated screensaver in VB6. It performed about as well as you just described!
- signaru 4y agoI used to have an irrational fear for curly braces and semicolons, given BASIC looks clean and simple. I see that now in some young programmers who try to stick to Python. Interestingly, seeing Rust code for the first time also reminded me of that.
- starik36 4y ago> unwieldy and full of spaghetti code When I was young, I saw the same until I worked with a team of professional devs and the code was clean and performant and easy to get around in. > VB4-based ERP system that was very slow Yep. VB4 was made for the transition from Windows 3.1 to 95. The first effort was good enough but not great. IIRC, it compiled to byte code and then a runtime would interpret it. Once VB5 came out with native compilation, the resulting code became very snappy.
- bioemerl 4y agoIn my opinion basic was not about the language. It wasn't that easy to understand, it wasn't that powerful, it was slow. It was about simplicity, it was easy to make sound. To draw to the screen. It was about accessibility. Computers with it would boot right to a basic prompt. To use a computer was to program, and you were certain to naturally be exposed to programming and learn by doing rather than in a classroom. It was also about the fact you could easily open up other programs and read and modify them, much like older fashioned web and HTML. That's why these new basic projects fail so often. Python is simply better, and the ease of use of modern computers and phones means that the push basic used to have is just gone. Basic is being able to hear your data when you play it on a tape. It's about being able to cheat in your game by changing the code. It's typing code in from magazines and making games in math class. It's warm and fuzzy and you just can't bring it back.
- zokier 4y agoYou are talking about different BASIC of different era, a decade before VB.
- m463 4y agoActually, I was amazed the first time I used visual basic. This was probably the first version of visual basic and it was loooong ago. It let you do gui programming immediately, which was pretty new. You sort of intuitively learned event-driven programming in a few minutes. Drag a button on the screen, and with a click you could enter the code to run when it was pressed. In comparison, lots of systems since then have been pretty powerful, but you exchanged that for layers (and layers) of complexity that many people never got through. For example, I was pretty surprised the first time I used xcode. I thought it was apple - and they would make things easy. But in comparison to my first try at visual basic it was not intuitive, even after using it a while. (Did Steve Jobs ever try it?)
- zabzonk 4y agoactually, basic being so slow might be some kind of good feature. one of the first programs i ever wrote was an implementation of conway's game of life in basic on a z80 cp/m machine. i was unhappy with the results. this made me learn z80 assembler so i could get it to run much, much faster. but probably, looking back from old age, what i should have done was improve the algorithms i was using. i think basic is a good thing. perhaps a bit sad that people today do not have instant access to it.
- marcodiego 4y ago> Nostalgic for VB? No. I actually liked VB when I was a teenager. It was very easy and (using ms parlance at the time) quick to develop small applications. For me it was not much more from a mere toy. I know some people used it for serious purposes, but I'm sure many of these uses were makeshift prototypes that eventually nobody had the time or money to rewrite. I don't think many serious and popular apps were written in VB and were maintained for a long time. I don't think it was adequate for that purpose and I don't know anyone who thought it was.
- RajT88 4y agoI used to do support for software developers. I used to joke that anyone claiming to be a "Very senior VB developer" was basically saying, "I don't know how computers work". While it was a funny way of blowing off steam (and indeed senior VB devs didn't seem to know things like calling conventions or static linking), therein lies the miracle of VB. People could make business applications without having to know that stuff. Often enough, they had VB devs for the frontend, and the heavy lifting done in *.dll's written by more hardcore C++ devs. I guess it worked out well enough that way.
- jdwithit 4y agoI also got a copy of VB (I think VB4) as a teenager and it was a perfect stepping stone into GUI programming. I had been writing DOS games in QBASIC for years, and some basic (heh) C/C++. But the leap to writing Windows apps in C++ was terrifying. There was so much more to learn. What the heck is an SDK and why does the Windows SDK contain like 5 trillion different functions, many of which have ALMOST the same name and method signature? What is an event? What on earth is a CORBA or an OLE? As a teen with no mentor and no resources besides books and the early web it was overwhelming. But VB did so much of the work for you. And it was BASIC, which I already knew well. So it was exactly what I needed to understand the fundamentals without having to boil the whole ocean at once just to get a window with a button on my screen. Agree it wasn't really suitable for large scale projects (although it got used for them anyway heh). Somehow VB apps always looked and felt "wrong", like they were a cheap knockoff. But for learning, and writing quick non-commercial apps, it was just right. All that said, I feel no nostalgia or desire to go back.
- RedNifre 4y agoIf you'd like run classic BASIC programs on your old programmable calculator (HP 15-C) you can use this compiler written in Idris: https://gitlab.com/michaelzinn/voyc https://gitlab.com/michaelzinn/voyc
- lockhouse 4y agoIt was mentioned briefly at the end of the article, but I think Free Pascal and Lazarus are the closest in spirit to what Visual Basic classic was. It’s the best drag and drop interface builder I’ve seen in an open source project and it’s cross platform and compiled to static binaries for easy distribution.
- actionfromafar 4y agohttps://www.radbasic.dev/ https://www.radbasic.dev/ <--- also an interesting take
- themodelplumber 4y agoLazarus is really nice. In BASIC land, the QB64pe project has a maintainer for Inform-pe, a pretty straightforward drag & drop interface builder: https://qb64phoenix.com/forum/showthread.php?tid=1311 https://qb64phoenix.com/forum/showthread.php?tid=1311 Here's an example running under QB64 (though not Phoenix Edition/pe): https://www.youtube.com/watch?v=a9pNGBaIr94 https://www.youtube.com/watch?v=a9pNGBaIr94 Background on the Phoenix Edition: https://qb64phoenix.com/forum/showthread.php?tid=259 https://qb64phoenix.com/forum/showthread.php?tid=259 There's also Purebasic and Gambas, though Gambas isn't cross-platform... https://www.purebasic.com/ https://www.purebasic.com/ https://gambas.sourceforge.net/en/main.html https://gambas.sourceforge.net/en/main.html Zooming further out you have e.g. Defold and Cerberus X, which I'm not sure about the drag & drop but GUIs are certainly doable. https://defold.com/ https://defold.com/ https://www.cerberus-x.com/community/index.php?pages/about/ https://www.cerberus-x.com/community/index.php?pages/about/ Then there are Wonkey and wxBasic... https://wonkey-coders.github.io/ https://wonkey-coders.github.io/ https://www.wxbasic.net/ https://www.wxbasic.net/ Et cetera... :-) Personally I'm pretty fascinated by the way these projects typically center around a traditional forum, with various software structures in place that shape the user experience. For example, prolific library authors may be invited to publish directly to their own subforum and kind of use it as their own website, etc. When new projects start, spin off, fork, etc, the forum is often the first part of the user experience to see created, frameworked and decorated in depth.
- timw4mail 4y ago
- cbazz 4y ago[flagged]
- meindnoch 4y agoCan you please fuck off from HN with your obviously GPT-generated trash comments? Thanks.
- Sohcahtoa82 4y agoThis is such an obviously AI-generated comment.
- zwieback 4y agoI think VB was such a smash hit not because of the language but because the ease of writing a quick GUI for Windows, there wasn't really anything quite like it at the time. Other GUI builders existed but were harder to use and not as well integrated. The appeal of VB lives on in WinForms with C# as the backing language. Initially MS tried hard to keep VB.Net around as a fully emancipated partner but it turns out everyone just moved over to C#.
- Turing_Machine 4y ago> I think VB was such a smash hit not because of the language but because the ease of writing a quick GUI for Windows, there wasn't really anything quite like it at the time. I agree completely. The language itself was pretty crap, but there was nothing like it for rapid layout and wiring of a GUI. IMO, even modern tools like the storyboards and visual components in Xcode don't quite make it (they're more powerful, certainly, but also much more complicated to use).
- signaru 4y agoBasically how Pascal still exists in Delphi/Lazarus. I'm not a fan of the language, but Rapid cross-platform GUIs that compile to native code instead of bytecode that anyone can just drop to ILSpy are really compelling.
- jodrellblank 4y ago> "Initially MS tried hard to keep VB.Net around as a fully emancipated partner" Not very hard[1]; "making Visual Basic.NET not backwards-compatible with VB 6.0. This was literally the first time in living memory that when you bought an upgrade to a Microsoft product, your old data (i.e. the code you had written in VB6) could not be imported perfectly and silently. It was the first time a Microsoft upgrade did not respect the work that users did using the previous version of a product. And the sky didn’t seem to fall, not inside Microsoft. VB6 developers were up in arms, but they were disappearing anyway, because most of them were corporate developers who were migrating to web development anyway. The real long term damage was hidden. With this major victory under their belts, the MSDN Magazine Camp took over. Suddenly it was OK to change things. IIS 6.0 came out with a different threading model that broke some old applications. I was shocked to discover that our customers with Windows Server 2003 were having trouble running FogBugz. Then .NET 1.1 was not perfectly backwards compatible with 1.0. And now that the cat was out of the bag, the OS team got into the spirit and decided that instead of adding features to the Windows API, they were going to completely replace it. Instead of Win32, we are told, we should now start getting ready for WinFX: the next generation Windows API. All different. Based on .NET with managed code. XAML. Avalon." [1] https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost-the-api-war/ https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost...
- WillAdams 4y agoI've always wished that MacBASIC hadn't been canned: https://www.folklore.org/StoryView.py?story=MacBasic.txt https://www.folklore.org/StoryView.py?story=MacBasic.txt and would give a lot for something contemporary and cross-platform along those lines which was likely to stay around. Thought that was going to be Runtime Revolution/Livecode, but that went back to closed source --- I suppose I should look at Lazarus/FreePascal (but I didn't do well with Delphi back in the day). Applescript Studio seemed promising --- really wish that that had been opened up to make iOS apps.
- mberlove 4y agoIMHO the key distinction is between BASIC, the group of languages, and VB, the SDK. The article notes this but I think it is really the crux. In other words, did BASIC draw us in because it is a straightforward language? Or because of the power that VB provided? As others point out, many hobbyists still use variants of BASIC...I don't think we can claim it's the most practical language for most uses, but it has its niche for sure, and is fun to use. Visual Basic, however, while at the time representing a _fantastic_ entry point to development (at least it was for me), has been legitimately replaced by other, newer models, some of which the article notes.
- rqtwteye 4y ago"Visual Basic, however, while at the time representing a _fantastic_ entry point to development (at least it was for me), has been legitimately replaced by other, newer models, some of which the article notes." Before VB setting up a GUI application was hard and required a lot of specialist knowledge, then VB made it easy, and its replacements on the web are making it hard again :-). I still don't know an easy way to set up a web with a database that also allows you to go into depth if needed.
- Sohcahtoa82 4y agoYeah, I loved VB's drag-and-drop method of building a GUI. Are there any programs out there these days that will let you drag-and-drop components to build a web page?
- dr-detroit 4y ago[dead]
- mattl 4y agoThere are some drag and drop webpage builders for WordPress and things like Squarespace which are mentioned ad nauseam on podcasts and YouTube channels which promise something like it too.
- brunovcosta 4y ago
- FpUser 4y agoMy first "language" was straight machine codes. I have then "progressed" to assembly, C and many other languages. For some reasons I've never liked Basic and whenever I had a choice I would avoid it.
- stevekemp 4y agoI started with a computer that booted to the BASIC prompt, the ZX Spectrum, and later moved to Z80 assembly language. After the low-level stuff it was MS-DOS 3.3, with DEBUG.com for assembling intel assembler, and later MS-BASIC, Turbo Pascal, C, and all the later languages. BASIC still has a soft-spot in my life, I wrote a trivial implementation of BASIC in golang which is complete enough to be fun, but missing specific features for running things like the widely-reshared Star Trek game. Maybe I should setup a stretch-goal of completing a bunch of common games/programs and work on it some more. BASIC was never my cup of tea, but I used it because it was all that was available at the time. And books of programs really helped.
- danielodievich 4y agoThe company I worked for in 1996 made all kinds of money from Visual Basic development for clients. We built what one would call a CRM system, we built a legal document management system, we build a CMS for early web site publishing (kinda sorta echoing wordpress), we build a timecard entry system. The rapid prototype and good debugging support meant quick time to market. And you'd still be able to run them all with the VB6 runtime preinstalled on every windows machine in the world. I recently discovered various projects of that era on my archive and was kind of scratching my head on what those .cls files meant, and chuckling over my comments from 30 years ago...
- Yhippa 4y agoThis is a great point. I haven't run into an easier visual prototyping system that's accessible and fairly close to what the end user would see from an interaction perspective. Did this way back in undergrad. Used VB to quickly visually prototype and then Visual C++ for the final project.
- hnthrowaway0328 4y agoI think nowadays Python is the new BASIC. It has an interactive mode; It has access to a hell amount of libraries and APIs one can imagine; It is easy to program. I'm sure it can open the door for so many kids.
- helf 4y ago[dead]
- wvenable 4y agoWhat's a library? What's an API? Visual Basic was much more approachable than Python because it didn't even have those barriers.
- dragonwriter 4y agoClassic VB had libraries and references to them. And an API is just whatever interface any piece of code exposes, and it definitely had those.
- wvenable 4y agoBut you didn't even have to open the references dialog to create an application. VB was great because it made easy stuff easy but it also made more difficult stuff possible. You could reference other libraries, of course. You could also directly call Win32 APIs. But you didn't need to that. You didn't need any boilerplate or ceremony -- you could drop a button on a form, double-click on it to add code, and make it do something without knowing anything about the infrastructure to make that possible. As far as I know, there are no tools that do something equivalent now that aren't so sandboxed that it's a dead end.
- lelanthran 4y ago> I think nowadays Python is the new BASIC. Maybe, but it certainly isn't the new Visual Basic. Even in (was Delphi, now) Lazarus, there's much more to know when you need to create a simple application.
- lholden 4y agoI started programming with BASIC back in the late 80s and into the early 90s. Started with gw-basic and then with QBasic, both of which were included in versions of DOS. QBasic was really cool at the time. I wrote a lot of (very crappy and slow) games in it. The documentation was all readily available and it had a lot of power. QBasic (and VB) were very "batteries included" and that was amazing. But, and this may sound harsh, I've always felt that BASIC was a language of desperation. You use it because it's the only thing available to you, not because you actually want to use it. There was a time where some form of basic was available on literally every computer. This continued well past the 80s with VBA and gave a lot of people the power of extensibility over their applications. Back when I was writing a lot of BASIC code, I quickly found myself running into walls and realizing that it just wasn't a great environment to build anything serious in. The lack of a real compiler in DOS was the primary reason I found Linux and C in the mid 90s. Once I had my hands on a C compiler I never wanted to look back ever again. (I know that QuickBasic and Visual Basic existed and could create binaries. But, I was young and couldn't exactly afford them. Before finding C, I was using a BASIC environment called ASIC, which wasn't quite as nice as QBasic, but could produce binaries.) It makes me wonder how things might have been different for me if DOS came with a C compiler and something like raylib. The lack of a real (free) compiler drove me to Linux. Would I have still gotten into Linux? I don't really know!
- wvenable 4y agoYou never got to the stage of pirating QuickBasic off of a BBS somewhere. I went from 8bit BASIC to QBasic to QuickBasic and then to VB. I even started writing some assembler and linking it with QB code. QuickBasic and all the variants filled a niche that exists in multitudes now but did not exist in the early 90s. There weren't many high-level languages with garbage collection in common use.
- lholden 4y agoI would have if any of the BBSs I was on had it :). I just downloaded a boatload of SLS Linux floppy images from a BBS instead! :D
- GartzenDeHaes 4y agoOne other thing that VB did well was integrate with Windows COM components. I was working on a scientific application at the time. Just for fun, I spent a half an hour to add a button on the data grids that would start Excel and push the data over. The scientists were more excited about the Excel integration than the actual statistical analysis features I was working on.
- WorldMaker 4y agoHard to be nostalgic for VB when your day job includes a VB6 development rube goldberg machine of multiple VMs to continue to maintain/debug a "not broke" application in 2023. It certainly feels quite broken given the complexity of the rube goldberg machine, but the business priorities to lift/shift/rewrite are always behind the priorities to keep the current users happy.
- goosedragons 4y agoI recently picked up SmileBASIC for the Nintendo Switch. I haven't done anything yet with it but it's kinda wild it exists.
- nuc1e0n 4y agoPython ain't so different to BASIC.
- sedatk 4y agoThe article delves into VB's alternatives only, but VBA (Visual Basic for Applications) is also very much alive. My brother uses Excel VBA to teach Decision Support Systems and Genetic Programming at the university. Excel provides a very capable and easy to use environment for data modeling, and Visual Basic provides ample functionality for implementing algorithms on top of it with zero setup cost.
- retrocryptid 4y agoAnd people tease me for liking COBOL! (Seriously though, for a certain class of problems, BASIC is fine.)
- empressplay 4y agoThere's a web-based Applesoft BASIC editor that runs in emulated ProDos and has a large library of BASIC software that can be directly loaded (via the dropdown selectors in the top-right) at https://paleotronic.com/applesoft/ https://paleotronic.com/applesoft/ There's even the original BASIC version of Oregon Trail! For a native BASIC interpreter, there's an enhanced version of Applesoft BASIC built-in to the microM8 Apple II emulator -- it has various enhancements including 3D voxel graphics and the ability to draw in SHR (Super Hi-Res) https://paleotronic.com/microM8 https://paleotronic.com/microM8
- msla 4y agoBASIC is ripe for a classic if-by-whiskey argument: If by BASIC you mean the line-numbered language with single-character global variable names, with no flow control beyond GOTO and maybe GOSUB, which encouraged, nay, demanded humans crunch their own programs by removing as much whitespace as possible to fit them in RAM, then it wasn't a good language. If by BASIC you mean the block-structured language with most modern flow control features, normal ideas about variable names and scope, which allows people to write GUI applications in a short period of time using GUI builders and easy access to libraries written in other languages, then it is a good language, but still not my favorite.
- major505 4y agoJust curious, theres something like vb6 gui rad tool today for multi platform projects (like it runs in windows, linux and mac) but for a more modern language?
- hghid 4y agoVisual Basic was an incredible leap forward in programming in that it made programming accessible to much wider range of people. People that just wanted to make a computer perform a task without necessarily writing a commercial product or changing the world. Being a child of the 70's/80's, I was fortunate enough to learn by just diving in and writing Basic on a BBC Model B. I think the problem people have with BASIC is the 'B' for Beginner. It created a lot of snobbery. I remember being amazed when Windows came out because it brought a level of consistency to everyday software which meant that by and large you could get the basics of a piece of software without a manual. Before VB, there was a huge barrier to programming in Windows because for a long time it was C which, for all it's power, is not a language many people should be using. I suspect a lot of people here won't have experienced starting with an empty Window, dropping a Button on it, double clicking the Button and being dropped straight into the event handler code. It was a revelation. Especially when you realised that you got access to all of the other Windows goodies like printing, database access etc just by dropping a control onto a Form. Software development now is a long way away from the ease of access that VB gave us and is probably poorer for it.
- akrymski 4y agoIsn't there still Visual Basic.NET? Along with a C# version, it had all the VB UI goodies as far as I recall. MS also had some awesome tech around DCOM in VB - transparent RRC was very futuristic at the time.
- jcadam 4y agoI was 8 years old the first time I wrote a line of code, in BASIC on the family Apple ][e. Did that for a few years before moving on to AMOS (also a BASIC, though definitely more modern and useful -- it even had a compiler) on the Amiga. The summer after Junior High I started learning C on DOS (Turbo C!) and at that point I was done with BASIC. I don't think I could have started with C in grade school, BASIC is what got me hooked on programming :)
- spiralx 4y agoI got into programming using GFA Basic on the Atari ST, which had: • no line numbers • indentation-based code blocks for conditionals, loops etc. • string/byte/word/float/boolean variables • pointers • arrays, hashes and record types • editor with auto-indenting, code folding and immediate error highlighting • a super-fast interpreter and the ability to compile programs • 600+ function library covering hardware/OS calls, matrices, collections etc Really, it was an amazing language and I was very lucky to start on it, as it made the jump to Turbo Pascal a few years later relatively painless. GFA Basic v3 Manual - http://www.atarimania.com/st/files/GFA_BASIC_Version_3_Interpreter_User_Manual.pdf http://www.atarimania.com/st/files/GFA_BASIC_Version_3_Inter... GFA Basic for Windows - https://gfabasic32.blogspot.com/p/about.html https://gfabasic32.blogspot.com/p/about.html
- analog31 4y agoI used VB5 or VB6 for more than a decade, and HyperCard before that. The first thing I did when I got an academic job was to buy VB5 at a discount. I loved the simplicity of drawing the GUI and then adding functionality to it. Every other tool involved additional complexity that didn't seem to add value, though I didn't explore every possible alternative. When I started using Python, I missed being able to draw my GUI with the ease of VB, but not for very long. I discovered that building a GUI with Tkinter was nearly as easy, except for the part about laying it out visually. But I also read enough critiques of GUI's, to know that my own layouts were actually quite mediocre, and that a simple top-down layout using Tkinter's defaults was usually no worse. So, VB certainly got me to a certain point, for which I'm grateful, but I no longer feel a desire to go back there.
- lproven 4y agoI must admit I do kinda like it when I submit an article I wrote and find it's already here with comments. :-)