Something first: I was a VB5 programmer long times aho…never got around to .net and heavy object orientated stuff

A few years ago, people were talking much about how Visual Basic 6 is a bad programming language, etc. It can’t do real object orientation, it can’t really do pointers, it creates slow code and so on. The list of arguments is long – but IMHO, Basic has a few good reasons for existance:

Basic is RAD
Nowadays, developer time is very expensive. When a new system hits the market, if the API isn’t simple, it won’t get used. It is as simple as that. So, for a OS vendor, having a good BASIC implementation handy is helpful. For Micro ISV’s, the advantages of a language like Visual Basic allow for faster programming – I can remember cooking apps out 2x as fast with Visual Basic than I ever could to with C.

Speed/Memory is a COMMODITY
Come on, people, please stop fucking around toasters and IBM PS/2s. Nowadays, a 200€ machine has so much CPU power that the 50% overhead is random. No one cares if a task takes 0.0001 or 0.001 seconds if it gets executed once an hour. The same thing is valid for memory…even on a Palm, one doesnt care about 1k of memory any more.

Case sensitivity, brackets etc suck
When coding, the case sensitivity, curly brace, etc thingies are just plain annoying… . Who will EVER need a variable named foo and another one named Foo?

Teaching BASIC is faster
Last but not least – getting a programmer up to speed on C takes a long time. On the other hand, basic BASIC can be tought in two hours while sitting in a bar with just a tiny sheet of paper. This has benefits for all organizations who want rather cheap programmers and try to achieve this by training coders themselves – shorter training cycles means faster productivity.

Overall, C definitely still has reasons – if you need pointers or similar stuff, nothing leads you around C. Same thing valid for OS programming(nope, please, no Basic powered operating system kernel) and lowlevel stuff. But the times when C was king of the world are IMHO over – you now need to choose your development platform wisely!

Related posts:

  1. Using the environment to help you in strange ways
  2. NS Basic – the interview
  3. Programming Sudoku – the review
  4. On C style or is code formatting everything?
  5. Dmitry Grinberg on compiler efficiency

10 Responses to “Why (Visual) Basic”

  1. Well why I must state that on the opposite side, I started with VB2 and that sucked, forcing my to move to C. but since then I’ve gone back to the world of scripting and have to learned the joy of a quick and easy language. VB definitely has its merrits and yes it is the easiest thing to learn, hell basic was the first langauge I learned when I was 5-6 years old. For portability reasons, I’ll probably go back and learn tcl/tk or python or some other unix like thing with a good port to other systems.

  2. As the developer of iziBasic (which is an On Board Basic for Palm), I can only agree with what you wrote Tom!


  3. When I was 15 I learned programming basics with QBasic and MS-DOS on my 80286 12MHz. Then, when I entered University, learning C and Jaba was much easier than for the people who had never programmed a bit before.

    I think BASIC is great for introducing programming to the young people.

  4. I meant Java LOL

  5. there is a reason BASIC = Beginner’s All-purpose Symbolic Instruction Code.

    A few things:
    1) 1kb of memory DOES matter, ESPECIALLY on palms and the like
    2) It most certainly does matter whether something is executed in 0.0001 or 0.001 seconds. That can be the difference between a fast program and a slow one… and people do not like slow programs.
    3) BASIC is faster to write with… but it isn’t nearly as functional. And VB just isn’t practical to use for most projects.
    4) And for the record, C/C++ still is the “king of the world”. The vast majority of all modern computer programs and operating systems are written in C/C++. BASIC has not been a serious programmer’s platform since the days when PCs natively ran DOS. VB simply doesn’t have the potential, and Java is only useful for web applications (while japa apps can be converted into executable applications, they run VERY VERY slowly compared to their C/C++ counterparts).

  6. This one is as hilarious as all the other TamHan posts.

    “Basic is RAD”

    Only someone who is new to programming and does not know the difference between an IDE and a compiler can write such nonesense.

  7. I like much more to laugh when I read Tam’s posts than to cry when reading you Tampax!


  8. It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

    Edsger Dijkstra

  9. BASIC is fine. VB.NET is fine.
    VB6 is hell.

    You can’t put a Type definition after a Class that uses it only in half-moon nights when the system is using an outdated OLE32AUT DLL version? WTF?
    What the heck is a form? An object? A reference to an object? A type? A STRING?????? IN FACT IT IS ALL OF THEM!!!
    Why it does not have Option Explicit enabled by default?
    Why the **** ByVal does not clone certain classes objects but instead does clone certain Type definitions?
    Destructors are called wenever the runtime wants to — including ‘never’.
    Its mind-fscking array declaration syntax still leaves me confused. When I declare an array, I am setting the upper bound or the element count? Or it depends on an Option Base setting which can be hidden wherever the coder wants to?

    VB6 and previous versions are usually maintainers’ hell. I hate it.

    HB++ is good, anyway. It’s RAD — but it’s not nonsense. You can even develop an assembler & linker with it. (I did it once just for fun), do lots of bitwise, pointers, and low-level operations and also you can UNDERSTAND what it does behind its useful class library. (It has flaws, too).

    Response1, Basic is not RAD. VB is. Java with a good toolkit and a visual designer is, too. C++, given a good object library can also work as a RAD.
    Response2, yep, speed is a commodity until you notice that your mapping application takes a few minutes to display a single 640×480 map page, because VB6 floating point operations are still slow in a 2Ghz CPU.
    Response3, I agree, case-sensitivity sucks.
    Response4. Teaching BASIC is not really that faster. If you don’t teach any of the C features that BASIC does not have, teaching C can be as fast as teaching Basic. I.e. just teach “pointers” as a replacement to MID$.
    However, teaching VB is, of course, a lot faster than teaching ANSI C.

    BTW, Dijkstra was wrong. You can be a good coder whatever language you’re using. I.E. You can be a good OO coder even if you’re using plain C.

    Problems arrive when languages allow you to do funky things that work randomly.

    I hope I’ve written this properly.

  10. Hi,
    good discussion going on here.

    First of all, to Tampax: I guess that everybody else got what I meant. Creating a basic program usually is less type work and is faster.

    Lets begin with the memory and code bloat issues. My aeon old Pentium 4 1.8GhZ workstation is idle 99% of the time when I am doing email, spreadsheet, email or even Microsoft Photo Viewer. So, the time saved there is unimportant – I meant that there simply are parts of the program where it doesnt pay out to go for speed!As said, for a kernel it pays…but not for a lonesome GUI widget.

    Many of you wrote about the advanced features that C can do. I fully agree that C can do much, much more than VB – but it always is a question if you really need it. When I got my Treo 600, I also felt that I couldnt miss out on the HiRes screen and xSCALE cpu. But tada, the T3 is at home now – I used it maybe 5 minutes a day!SO, for a program where you need ther advanced stuff do C by all means – but IMHO, not blindly!

    Once again a big thank you to all of you(yes, you too, Tampax)!
    Best regards
    Tam Hanna

    P.s. Had to fire up a notepad instance to write that..woohoo!

Leave a Reply



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe without commenting

© 2013 TamsPalm - the Palm OS / web OS Blog Suffusion theme by Sayontan Sinha