1. 15

  2. 2

    I never used Visual Basic since my path to computing didn’t involve DOS and Windows (except for games), but a lot of the stuff that purportedly made Visual Basic popular sounds like (Common) Lisp.

    So was Visual Basic the Lisp in sheep’s clothing?

    1. 4

      So was Visual Basic the Lisp in sheep’s clothing?

      No, not by any means. I’ve written in VB6 and Clojure and their commonalities are that they are both untyped and run on computers I guess. Visual Basic is an extremely limited language mostly propped up by its IDE and it’s ability to completely ignore errors (ON ERROR RESUME NEXT). Visual Basic neither has macros nor homoiconicity nor CLOS.

      So, yes, you can edit code at runtime. Erlang can do hot code reloading as well but I wouldn’t say that Erlang is Common Lisp because of that or Erlang is Visual Basic. Erlang has Prolog syntax but it doesn’t make it Prolog either.

      I think you should consider yourself lucky for missing out on this one because the article is right in one thing: Visual Basic made it extremely easy to write programs completely without any structure. In fact, the fact that the IDE automatically generated event handler functions and prevented you from seeing the whole structure made it actually harder to have an overview over your program. In a way, it might have more similarities with Smalltalk IDEs than with things like Eclipse.

      1. 2

        TL;DR: many-perhaps-most of us learn best from mistakes, and so a language that let’s you make all the truly lastingly-educational mistakes easily while shielding from more “lame” (operational/low-level/hardware-level/interrupts/pointers/syscalls or satisfying Hindley-Milner etc) mistakes (ie. not teaching about good practice through suffering from bad practice, just about some spec or paper you should have read) was and is and will be precious for learners.

        I think you should consider yourself lucky for missing out on this one because the article is right in one thing: Visual Basic made it extremely easy to write programs completely without any structure.

        Not denying this claim or others made, but one thing I know. When I started out (~1998-ish), I perused in the local town library first the C and C++ books, also a Miranda book, and just scratched my head — they explained all sorts of abstract and/or mathematical and/or low-level things but could never just get to doing some sort of “cool project from start to finish, interactive and on your screen”. (Guess I missed out on the mags with source listings that the 80s kids in the Anglo-sphere had access to.) As a PC aficionado teen (kinda rare traid back then) I wasn’t interested in the chapters upon chapters on what to know about C’s pointers or Miranda’s endless recursion elaborations without being shown some good hard real-world reasons for it all. Wasn’t necessarily scared, just hell-bent on going with material that got me somewhere neat instead of filling my head with what some PhD book author deemed VeryImportantIndeed. Pride of youth and eagerness! Well, I grabbed the QBasic booklet at last and it was pure fun exploring first everything in there and then everything else that it didn’t cover, too. VB was a re-iteration of the same highly-iterative fun way of creation. Yeah, they were never enterprise-strength. But they got a beginner excited like nothing else and kept them invigorated like that sustainedly for very long afterwards. In my case paved the way for later transition of Pascal and then “any language whatsoever, no biggie”. I would never have gotten my start with all the other langs in existence back then or even today. See, some people (like me) have a mind-set where, although over time they come to accept and learn to master all the little book-keeping and intrinsic subleties & implications involved in any language’s details, they’d never start down the path of programming if that indeed appears to be 90+% of the day-to-day doing, from the initial learning materials one has access to. Back then, Basic was the only “hey ho, let’s go” thing in existence as far as my local library and mags were concerned.

        Yes, not fit for the enterprise. Yes, easy to spaghetti-code. It’s all known. But — great to get tinkering-minds started tinkering, without having to drown in the stuffy for what would feel like ages to the impatient budding maker.

        A decade or so later, I think Flash/ActionScript came closest to the Basic experience for the kids of that decade(given that by then VB.NET was now just yet another OOP resume-boosting systems-architecty enterprise apparition). That is, interactive iterative visual results from your code that might go wrong in weird ways but would hardly ever blow up in your face. Until iOS came along to mortally wound it without any kind of replacement. Hey kid, wanna try some XCode? :D

        I think your comparison to SmallTalk is most apt. What some Alan Key et al papers of the late 70s / early 80s describe about getting kids / novices started with that, very similar captivating and hooking experiences apparently. Nothing beats this approach to crafting logic and seeing it live and stumble and grow as you keep etching it out iteratively.

        Oh yeah, my local library had Lisp books too. This sort of stuff just smelled off to me. Certainly 10 years later I could appreciate me some Paul Graham or LtU material (without ever getting anything awesome out of it in terms of actual production), certainly great mental grappling and the code-gen capabilities are delicious but I would suspect only a minority of budding “tinkering minds” would easily get hooked on any Lisp as their first language exposure. Although I get there are comic-style efforts like Land of Lisp / Realm of Racket and so on aiming to deliver a more “fun” learners’ starter pack so to speak. But the fun in Basic (and I guess Flash/AS) was very much not in the Gorillas, or the syntax, or in happy cartoony chapters. It just got you going insanely rapidly (and let you easily share the final artifacts with anyone without needing to pass along setup instructions — exes for Basic and swfs/htmls for Flash) and didn’t pester the blooming doer/maker/creator with endless caveats and too-numerous need-to-knows. Same in VB, until one started later on with importing COM / ActiveX DLLs but by then one could handle some pain and soon transitioned to more “mature” dev envs.

        It’s good to have a beginner’s environment full of “real-world short-comings” in the pursuit of rapid zero-to-results action. Because the only way to truly “know” of its short-comings and pitfalls is to stumble over every one of them, repeatedly. That’s why I disagree on some old-timers’ (and current folks’) opinion (not that the article or this thread voiced it, but it’s occasionally heard) that getting budding devs started on Basic ensures they will suck forever. They who have waded through the mud, by necessity have learned (or will more easily re-discover) how to evade the mud in any other environment, because it’s always there even if elsewhere makes it harder to stumble into. =)

      2. 3

        I started with QB and went onto VB6. The negatives are all true. I fondly remember the positive I didn’t get with C, C++, or C#: the ability to go from a code change to running program in 1 second. Then do it again and again with my mind still flowing. Folks using Lisp and Smalltalk with good IDE’s know what that’s like. So, BASIC’s were like that except with an imperative language simple enough for anyone to learn. There was also a lot of code and documentation out there to draw on.

        FreeBASIC is still around for people that like it. When I surveyed languages, it was one of easiest to get from download to running program. Still simple. Gambas tries to be more VB6-like. Today, I’d recommend a good book for beginners with a focus on Python. More for its plentiful libraries and communities using it in all kinds of situations. Beginners can move from toy projects to things that actually interest them rather quickly. Maybe even get a job.