NSBasic and PhoneGap for BlackBerry

As a basic-intensive (and basic-loving) developer, I recently heard about an interesting application: NSBasic which claims to do multiplatform mobile support using a Visual Basic style editor. I also have heard a lot about PhoneGap which is getting rave reviews for being multiplatform as well (and in fact turned out to be the driving force for NSBasic). Interestingly, some of PhoneGap was quite confusing due to strange decisions by the PhoneGap team to give themselves and their applications strange mismatching names.

So, I put aside about 6 hours today to play with NSBasic, PhoneGap and WebWorks to get an idea of the BB5/6/7/10 and PlayBook experience.

Now, for those of you who know me, I don’t like to make readers read unnecessarily.

Pros

Assuming you manage to get everything to debug and install easily to multiple devices (as they claim to be working through PhoneGap) it has potential to develop simple applications quickly

Alternatives to NSBasic:

GLBASIC works on iOS, Android, and many unusual platforms such as the GP2X Series. It does not work on BlackBerry, but it is a really in depth and fun IDE that will remind you of DarkBasic and QBasic. The support forums are great, the community is warm, and you really get what you pay for with it. 80 EUR or free for students. But, really, I’ve actually used this in business applications before for a quick solution for a lightweight locked down client.

Basic4Android is an Android Basic language. It doesnt support iOS. I haven’t tested porting to BlackBerry. Price is 49 or free for students.

Enhanced Details on PhoneGap

PhoneGap took several hours to install and configure and seems to have more of a Linux focus.

It did not include a standard windows installer binary and used an “unzip this somewhere and play with it” mentality. Installation: It requires WebWorks for BB / PB and QNX (which is expected). And it requires the Simulators (which is also expected). However it requires ANT and JDK. ANT and JDK have a conflict with JRE installed (which is a WebWorks requirement) that causes some fun error messages when trying to use ANT. There are several fixes, the “dirty” fix is to drop your lib files from JDK to JRE – but this is a bad Windows 95 DLL issue type resolution.

Once installed, I had signing and eventually deployment issues. I relied on BBHTools for deployment. However, read the XML’s carefully. If you have already configured and used WebWorks in the past, signing will be a non-issue. Remember to use the BlackBerry-Signer.bat -verify (BAR)command line tool from WebWorks to check on the files. However, if you only installed WebWorks and did not setup signing for each platform, make sure to do so.

Once you manage to get all the issues calmed, and follow the tutorial (which is fantastic) you’ll now have smooth sailing.

Details on NSBasic

NSBasic was more complicated. This requires PhoneGap + WebWorks. Which means you need to understand WebWorks, you need to understand PhoneGap and you need to understand NSBasic to troubleshoot issues – provided you have the full version and can use or test your applications on an actual device. If you are using the Trial, you can’t do any device testing anyway, and it defaults testing to IE or FireFox or whatever browser you have.

You can set Chrome as your default with Ripple, and maybe convince this to use a mobile-like platform. But this will only work when you “deploy” your application through NSBasic (which, oddly, deploys to their custom server NSApps) and trick Ripple to use it. Which raises some questions that are not answered anywhere in the documentation or help files – such as what is NSApps as a public server and why do your applications go there by default.

All other deployment options were unavailable, so all you can really do is see it sitting on some NSApps public server – which is unusual.

The Wiki was offline and unavailable. The actual IDE and UI was surprisingly attractive for the filesize although the IDE missed several big errors that a normal IDE would catch. You really do feel like you are programming in BASIC. And although the Debug function is completely unacceptable for replicating Mobile Devices, it did make it easy to test changes.

The major outstanding issue for me was the missing documentation. There was a lack of focus on the application itself. It felt like a junior IDE with potential, but it feels like its in Beta.

With that said, if you absolutely need to develop in Basic on multiple platforms – this *may* be the application for you. It is attractive, and if purchased as a full version, if it can actually be deployed to mobile devices with ease (I suspect it will require major hands-on modifications to get the installers on the devices) it could be a great way to save time and build applications.

Its fun, it has great potential, but it is too limited for me to feel comfortable using it. The NSBasic team will need to realize that by preventing a developer from seeing an NSBasic application on a mobile device, they will likely balk at the price. For the amount of work it takes to install, your better off installing Cascades and using a beautiful toolset at a lower OS level. Or taking out the middleman and using PhoneGap directly to get the most out of your applications. NSBasic looks to be a product of the WebGL/PalmOS/WinCE days and is not ready for modern phones. This is especially true when held up to the high standards of other BlackBerry development IDE’s. If you can rely on any other language, I would bypass NSBasic for now until they revisit their strategies and invest more time in the toolset.

This is just my two cents, sorry if the review seems harsh. But I had to provide an honest review.