Saturday, September 11, 2010

The stigma of BASIC

Back in 1998, we chose the name "REALbasic" for two reasons. First, it would suggest that this might be similar to Visual Basic and second, it suggested that the language would be easy to learn and use. But over the years we discovered that some people would make a lot of assumptions about the language because it included the word "basic" in it. The biggest assumption has been that it must be BASIC as in the language invented at Dartmouth College in the 1960's. Nothing could be further from the truth.

The original BASIC was procedural, under-powered and interpreted. BASIC is an acronym that means Beginners All-Purpose Symbolic Instruction Code. It was designed primarily to teach people programming and not to write large applications.

The language of REAL Studio, REALbasic, is as object-oriented as Java, very powerful and compiled. If you doubt this, consider that REALbasic is strongly-typed and supports inheritance, interfaces, polymorphism, operator overloading, introspection, delegates, RTTI (runtime type information), exceptions and the list goes on. And if you're new to programming, you can ignore almost all of this until you are ready. That's what makes REALbasic approachable. There are only a few keywords (such as Dim, Left, Right and Mid) that REALbasic and the original BASIC share in common. But they they do share one important thing in common. The goal of both languages is to make it easier to learn and write code. In BASIC as in REALbasic, there's one line of code per line. No need to remember to end each line with a semi-colon and no creating crazy lines of code that can't be read. Such as this in C:

v(c,j ,K){ char*P=E[c][j];

The point is to focus your attention on solving the problem and to avoid getting distracted by the semantics of the language itself. REALbasic, as a language, is every bit as powerful and object-oriented as C#, Objective-C, Java or C++. But it was designed to be much more approachable than these languages especially when combined with the REAL Studio IDE. I've had many users tell me that they tried for a long time to get a friend or co-worker to look at REALbasic but they wouldn't because of the word "basic" in the name. But in all cases, when they finally agreed to look at it, they found they really, really liked it. They were converted.

Now you could say that I'm just making an argument for changing the name or perhaps ust dropping the word "basic". Perhaps we just called the language "RB". PHP for example, is an acronym but it no longer means that anymore. It's just PHP. This is a discussion for another blog post.

So the next time you meet someone that looks down on REALbasic because of the word "basic", tell them that it's a misnomer and that REALbasic is a very powerful, object-oriented language that compiles to machine code and shares only the few good parts of the original BASIC. Convince them that they really should look deeper. You'll be doing them a favor. And you'll be doing the community a favor by growing it by yet another member.

RealSoftware was the answer to my dilemma, a Mac person teaching at a University where classrooms are Windows equipped. It is an extremely powerful language, as powerful as, but with a much less complicated syntax than C++ or PASCAL.I am delighted to have found it!

To me, the stigma of BASIC comes from two causes. First, BASIC is actually many different proprietary languages, rather than a single open standard. That means that when I program in BASIC, I'm at the mercy of a single commercial entity for ongoing support. Even when the support is outstanding (as yours is), how do I know it will continue into the future? Secondly, all versions of BASIC seem to impose serious performance penalties on certain types of numerically intensive applications. I'm afraid I pretty much abandoned REALbasic when I saw how slowly it handles numerical arrays.

Sorry to be so negative, but I thought you might appreciate the feedback.

Geoff wrote: "So the next time you meet someone that looks down on REALbasic because of the word "basic", tell them that it's a misnomer and that REALbasic is a very powerful, object-oriented language that compiles to machine code and shares only the few good parts of the original BASIC."

The problem is you have to do this every darn time you explain what dev environment you use to another software person or potential employer or client.

Geoff: great post!@Ward: I totally agree. I also have been programming since 1969, and have used all the languages you mentioned, plus various others including APL, C#, Java, and many assembly languages.

The language of REAL Studio doesn't get in the way, and doesn't limit you, no matter whether you call it "basic" or "snarfblatz." Is it perfect? No. But it's served me well for many years.

I agree that the framework is much more that a "basic thing" but the name is only a "marketing problem".The real RB problem is that bug fixing are very very very very very slow and I suppose that the Cocoa transition make this process even more slow.For example more than one years ago I've submitted 3 case (all carefully documented) and they're still awaiting for a fix (one of them is still open so after more that one year no one reviewed it!!!):- #8688: a serious container control clipping bug that make this "professional feature" completely unuseful under OSX -> still range from 40 to 52 priority position- #8921: bad behavior of textarea when storing certain ASCII char under Win -> now in 644 priority position and still in open state!!!- #10589: different behavior of TextArea selstart method from MAc and Win -> now in 830 priority position

I'm still hoping for a "quick" fix of the first serious bug (since I've just renewed a professional OSX license) but I can imagine when bugs with priority > 300-400 will be fixed!

I hope this isn't an anathema to people, but perhaps it's time to rename the language. If the language was renamed and a proper amount of marketing $$ invested to inform the programming public of the power of the language associated with the new name, people would no longer have the stigma of the BASIC name interfering with the perception of the resulting applications.

I am not a professional programmer and I mostly develop for the web. In 2007 I had the luck to download a trial version of RB and as I remember I just played with it a bit enough to feel that it was the right starting point for develop desktop application too. In this I recognize the meaning of the word BASIC.The most important feature of the language is its learning curve which is not as steep as other professional languages like Objective-C: now after three years I cannot tell people I am a professional programmer yet but I have deployed several apps to my customers, and I am very proud of it. I agree that you should consider the possibility of changing the name to something which would be better refelecting the power of RB

I fully agree. Each time there is an article about RealBasic, comments are instantaneously neative, often of course form people who never used it. Again recenly (http://www.macgeneration.com/news/voir/168051/ecrire-une-application-ios-en-basic) and we need then to defend our choice.One of the problem is that, because the language is far more accessible than most other programing language, one ca find on the web quite a few software developed by beginner, hence of low quality.But again, it is also true for web site development, one can find on the web the best and the worst.As for a name, I think RealStudio is already better. May be RealObject ?

@Geoff - I am not certain that RB is the best choice. While it does not have the "BASIC" baggage, it also does not convey the modern-age sexy / powerful appeal of an OO language that has the ability to program for everything from Win / Linux / Mac to the web now - and possibly iOS and Android.

I used to do Product Marketing for a living, so how about I come up with a couple of cool names for you?

All I ask is for a lifetime use of some of your cool software for use by me and my company that I own. :-)

As someone who never touched programming until four weeks ago, I love the name (and co-incidentally the product). I reckon the name is a selling point to newbies like me - beats Real Complicated.

As to the power of language, any writer working in the world of the written word (as opposed to computer language) would say that the best writing is simple and clear, yet forceful in its argument. RB as provide the simple and clear part, its up to developers to do the forceful in the argument thing.

@ Dan - FWIW, we are in the process of switching the backend of our compiler to LLVM, the same one that Apple is switching to for XCode. LLVM is an optimizing compiler so I'm sure you will see a BIG performance improvement from that. RBScript already supports it so you can try it yourself in the current release.

@ John - yes, the framework is not tiny. However, it hasn't grown at anything like the rate at which hard drives and internet bandwidth and speed have. So relative to that, it's gotten smaller. But also remember that it takes a LOT of coding to double the size of your app.

Hah! great assumptions that people who say negative things about RealBasic have never used. How can you be sure? I have been an enthusiastic RB user for a couple of years (2004-2008) and gave up. It's slow, buggy (VERY buggy! constant IDE crashes became unbearable), unpredictable (text encoding would come up with mysterious values), simple statements like WHILE((N=(EXPR))>0) are a no no. It's a shame because I like the promise of the language.

You know, the irony is that the only reason I even discovered REALbasic in the first place is because I was specifically searching the Web for a version of BASIC that ran on OS X. (Versions of BASIC tend to be easier to work with than the various C-like languages out there, and of course I use VBA [Visual Basic for Applications] and VBScript at work, so I wanted something like that for casual coding on the weekends.)

I visited a NeXT Developer meeting in the 90s. As they extolled the virtues of Objective-C and the NeXTstep APIs, I thought, "wow -- these guys are as quaint as ham radio. Soon they'll adapt to Mac OS 8 APIs and normal C."

Who isn't writing iOS apps? Yes, Apple tends a walled garden, but it's not "closed" -- not anything like Wii, Xbox, or PS3. Every iOS developer had to learn new tools. Are Objective-C and iOS APIs easier than REALbasic?

Hell to the no.

iOS succeeds despite this, because of the App Store. I'm quite happy to fork over 30%.

In my 25+ years of writing software the topic of what platform or language has never come up with the person who was spending money for the product or the solution.

it appears the only people who worry about the "stigma" are the people who are NOT spending the money on my products but are more concerned about things that are not relative to the product or the customer, therefore, I ignore those folks and plod forward.

Bottom line: If my technology choice to build a product was the wrong one, it will show up in the quality of the product and the functionality that I provide.

To prove this point. This month we released a new product written in RealBasic. The original product was written in VB in 2000. We've sold that product for ever 10 years and employed several people and sustained a business on that older VB code. Moving to RB was an easy choice for many obvious reasons, but more importantly because RealBasic was not only easy to learn, it was cross-platform and compiled.

When I looked at the other choices on the market (C++, C#, Java and even Delphi) there were wasn't anything that matched up with our vision and more importantly, our customers needs.

At the end of the day, customers don't buy the hammers. They buy the house...

I don't think RB is a good choice because people would constantly hear it as "Ruby".

When people asked me how I made my apps, I used to say "REALBasic it's an object-oriented language similar to VB but cross-platform." I'd say it just like that, with no pauses, so that before they could roll their eyes at the mention of BASIC, they would have heard "object-oriented", and by the time they digested that they would have heard "cross-platform". I also said "VB" instead of "Visual Basic" so that they wouldn't have to hear the word "BASIC" twice. I still got the impression that mention of BASIC turned them off, possibly marking me as a lesser coder in their eyes.

Now that it's REAL Studio, I don't have to lead with the stigmatized item. "REAL Studio. It's a cross-platform IDE with a built-in object-oriented compiled language and libraries." Nothing there to sneeze at, and I even get to take a breath. "Sounds interesting; what's the language?" "REAL Code. It's got nice clean syntax, like a grown-up BASIC but with classes and such." The difference is that I can put all the attractive stuff first.

And in the long term i think it would be wise to include a second language choice based around C# but keeping with an option to not use semicolons plus an option to use the for-next syntax from RB as well as the C way ( since the C way is just a drag )

Now that the product name has changed to Real Studio renaming the language is easy. Most of the marketing was around the "Real" brand. Since the product has maintained "Real" calling the language "real" starts to sound hokey. They can't use xBasic but I haven't heard of anyone using "xb" as the official name of a language. It better describes the language even if you don't actually spell out what it means. People can infer whatever they want.

1.a soldier specially trained in the techniques of guerrilla warfare2. a person who ranges or roves.3.(esp. in Texas) a member of the state police.4 one of a series of instrumented U.S. space probes launched in the 1960s that transmitted closeup pictures of the moon before impacting the lunar surface.

Basic is not a bad thing. I think some people are just chauvinistic about C-syntax languages and need to be set straight. There are lots of Basic packages out there in addition to REAL Studio: not only Visual Basic, but also PowerBasic, PureBasic, DarkBasic, HotBasic, etc. Many of these are compiled, just as C and C++ are. Some of us prefer to work with Basic syntax, even if we're already comfortable coding in PHP or Javascript or some other C-syntax language.

I'd vote to keep the "basic" in the name of the language. It makes sense to change the name of the software package to "REAL Studio" so it's easier to distinguish the package from the language, but to me the language is "REALbasic", and I'll probably continue to call it that even if REAL Software decides they don't want to call it that anymore.

"At the end of the day, customers don't buy the hammers. They buy the house..."

That's true, but isn't the "customers" Geoff would be concerned with is us, the developers? And a fair share of us probably do associate a certain stigma with "Basic", and I'd bet Real Software is losing some business to this issue. I'm in a similar situation as others before me, I'm a micro ISV, and my products are written in VB and I'm looking to make the move to REALbasic as the replacement. Not sure when I will begin. But I'm probably unique in that I already own an RB Enterprise license, because I know it is what I will be moving to and it can only help move the product line forward, even if it is only one license.

There's no question that RB is a fully capable replacement that can hold its own against the other similar tools (and whoop the pants off of some). But it did cross my mind to look at some of the other choices such as Qt or Delphi. And I can't say for certain, but maybe in the deep recesses of my thought process, is it possible the other products seemed cooler or more modern or relevant by not having "Basic" in their name? I wouldn't be opposed to a name switch, I already like "REAL Studio" better.

Geoff wrote: "So the next time you meet someone that looks down on REALbasic because of the word "basic", tell them that it's a misnomer and that REALbasic is a very powerful, object-oriented language that compiles to machine code and shares only the few good parts of the original BASIC."

If you want to change the stigma then you have to change your 3rd party developers/plug-ib authors mindset as a lot of them still call it BASIC programming Language. Here is just one example:

I totally agree that Basic is a stigma. But it is naive to thing that renaming will help. I have a powerful application written in RealBasic that was sold and works beautifully. But when it comes to updating, first thing my boss says is: if we do it, we should probably use a "real" language. Do you think if I tell him there is this brand new language called "ReallyGreatNameWithNoAllusionToBasic" he will be fooled? A little googling and the truth is out there.Hm, but if you do need a new name NatB would fine.

I totally agree that Basic is a stigma. But it is naive to thing that renaming will help. I have a powerful application written in RealBasic that was sold and works beautifully. But when it comes to updating, first thing my boss says is: if we do it, we should probably use a "real" language. Do you think if I tell him there is this brand new language called "ReallyGreatNameWithNoAllusionToBasic" he will be fooled? A little googling and the truth is out there.Hm, but if you do need a new name NatB would fine.

Why didn't you just call the new version REAL. That is short, good for marketing, free of any stigma of Basic, and looks like the other programing languages such as Pearl, HTML, PASCAL etc. And it still fits with RealSoftware, etc.

The name has no stigma. In fact, it helps. I know many people that prefers to program VB.Net instead C#. The BASIC name does not interfere.The Real problem of the product is that everyone who checks the stability and the level of bugs, feels like a never ending work. I can't trust my next product to a compiler that can produce a bugged software that I need working perfectly right on day one, but a bug I find will not take few hours to be corrected, but maybe years, as people reports here and in foruns...I'll keep checking. Once the COCOA transition is done, the LLVM implemented, compiling self-cotaining monolithic executables (without all that external contents), and a stable, bug free state reached; I'll buy it for sure! With this same exact name. No name changes are needed. The stigma is not the name, the stigma is that people think that RB, or whatever people renames it, is not reliable as an IDE/Compiler for large projects and produces huge non-monolithic code for a small utility. This is the Real stigma. Once RB gets mature and credit, it will sell ok, unless any other tools came up and do it the right way faster...