A first sight at Borland C++ Builder, Nokia Edition

Keywords:

As a user of JBuilder in a past life, I had great expectation into Borland C++ Builder for Symbian / Serie 60. As a matter of fact, this is the first totally free IDE for developping a Serie 60 application.

So I downloaded the huge zip archive (320MB) available from Forum Nokia. This zip archive contains several packages:
-  the free edition of the Borland C++ Builder 6
-  the Mobile Edition Add-on
-  the Nokia Serie 60 SDK v0.9
-  Perl (v5.6.1) - which is not the version of Perl that was used by my previous install of Nokia SDK v0.9 for Visual Studio
-  JRE 1.3

Here are my first impressions after a couple of days.

The Installation

The space required for the total installation is around 690MB - not including Perl and the JRE. If you do not have this space available, you'd better not go on with it since it may alter the Visual Studio [1], Codewarrior and the Symbian SDKs [2] you may already use.

Creating your first application

To create your own application, launch the IDE, select New|Others..., then select the Mobile tab, then choose New Mobile Application. This will start an Application Wizard... Unfortunately, this wizard is rather simple compared to the one that exist under Visual Studio: it can just create an blank project or a "Hello World" application: prjwizard.png

Let's select the Hello World type of app. The IDE will open several windows:
-  The Object Inspector - you cannot use it in the free edition
-  The Object Treeview - same as above
-  The Project Manager which handles a list of the files used in your application
-  The Editor window.

Globally, the editing environment is not very different from the Visual Studio and Codewarrior ones: ide.png

The left window is the Project Manager. It is a repository for all files of the project. Like in Visual Studio, it is easy to handle a big application containing several sub-project (a subproject being a DLL with its own MMP file). However within a subproject or for a more simple developement (a single MMP file), it does not looks possible to really organise the files: you will only have a flat list with all your files. It is also quite strange that the project manager does not include the header files (.h and .hrh) generated by the application wizard. You cannot edit them unless you add them manually in the list [3]. You can do this by using the Add.. command. This will raise a file selection box that can filter several file types (C, CPP, Pascal, Assembler ...) but not header files: you have to set the filter to Any File. As the App Wizard use a totally flat directory structure (all the files are in the same directory), this is definitely not convenient.

The text editor is OK. It has syntax highlighting and can simulate several environment including Microsoft Visual Studio. A big, big drawback for the free edition is that there is no Class Browser included. You have to upgrade your version to Pro or Enterprise version to access it. Navigation within the code structure is made difficult and you quite loose all of the benefits of the C++ object orientation. With the header file issue mentionned above, this makes the study of the Symbian code examples delivered with the SDK quite painful.

The Compilation environment is - as usual with Borland products - very good. The error messages and compilation logs are far more clearer than the usual Visual Studio ones: you are not more lost with long lines of path statement to find a single small compilation error. Furthermore, any change made to the MMP file(s) are taken into account automatically: no more abld makefile vc6 on the command prompt [4]. The only annoying things are:
-  you cannot compile with a running emulator, which was possible with Visual Studio and saves some time when you test small changes in your code
-  if you run several time your code without making any changes, the IDE does not detect automatically that no change has been made and parse all Makefiles before each run.

And now the big disapointment: the debugger is not enabled in this version. Like the Class Browser, you have to upgrade your copy to Pro or Enterprise version.

Deployment to Mobile Devices

The IDE integrates Symbian tools (AIF Tool, SISAR tool) to help you deploy your application. There is not much interaction between these tools and the IDE except launching them. The issue with SISAR and non-english Windows has not been solved wich will prevent it from running by default on most systems (except if you configure your locale to english). A good point compared to Visual Studio is the ability to generate code for ARM target and SIS files directly from the IDE (in ARMI mode only, the THUMB mode does not seems to be supported. Read this article if you are not familiar with THUMB and ARMI words).

Conclusion

I do not know what to think of this Borland C++ Builder, Nokia Edition. It is a free IDE - which is quite nice, however the lack of class browser and debugger support (in this free edition only) makes not big difference with using a good text editor like UltraEdit (which is not free but there is probably some free equivalent) configured to use ARM GCC compiler and the existing Series 60 Symbian SDK.

And it is clear that Borland C++ Builder is mainly an IDE targeted to Windows development and not a native Symbian environment. Most menus, including contextual menus, are only suitable for a Windows developer. The Mobile Edition is just a plugin that would add some extra submenus to manage the Nokia Serie 60 SDK.

However, the Borland IDE (in its Pro or Enterprise version) everything is not bad with this environment. In facts, it lays somewhere in the middle between Microsoft Visual Studio and Metrowerks Codewarrior:
-  it has a part of the simplicity of MS environment
-  it has a part of the ability of Codewarrior to generate target code. It will be the perfect environment if it can achieve a better integration of Symbian environment and a good mix of these two features (I need some practice with the debugger and the class wizard to confirm!). But today, I will probably keep the simplicity of Visual Studio for developping applications, and the technicity of Codewarrior for embedded or low-level development.

[1] If you are a Visual Studio user (for Symbian or Windows development), you should save the Just-In-Time Debugging registry key setting before proceeding to the install (i.e. the ability to enter the debugger when you run an application and it crashes): The installation will register Borland debugger instead of Microsoft debugger for Just-In-Time debugging... but the Borland debugger is not activated in the free edition! To save this setting:
-  run Regedit
-  select the key KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AEDebug\Debugger
-  export it to a file

[2] Installing Borland C++ Mobile Edition for Series 60 on a system with Metrowerks CodeWarrior with Series 60 or Symbian SDKs already installed on it may cause problems to occur when building Series 60 or Symbian projects. CodeWarrior and Borland C++Builder use different makefile utilities that both have the same name "make.exe". To allow CodeWarrior Series 60 or Symbian projects to continue to build, you need to do the following:
-  Remove the EPOCROOT environment variable (Control Panel->Properties->Advanced-> Environment Variables).
-  Place the path to the Borland C++ Mobile Edition (C:\Progra~1\Borland\CBuild~1\Bin; by default) after the path to CodeWarrior Series 60 and Symbian SDK tools (C:\Program Files\Common Files\Symbian\Tools, by default). After performing these steps, you can no longer build Borland C++ Mobile Edition projects at the command line. However, Borland C++ Mobile Edition projects can still be built through the IDE. If you want to make it so you can build Borland C++ Mobile Edition projects from the command line, EPOCROOT must be defined and the path to the Borland C++ Mobile Edition must be moved in front of the CodeWarrior SDK tool paths. If the Borland C++ Mobile Edition was installed in its default location, the default path to EPOCROOT is \Nokia_Symbian\6.1\Series60\.

[3] This looks to be a limitation due to the lack of class wizard. When you right-click on a class name or a function name you have a contextual menu with a Open Source/Header file option. But this option does not seems to work on the Free edition

[4] the syntax for the Borland compiler would be abld makefile winsb. And to be honest, user of Visual Studio could also use the Epoc Bar add-on to get rid of this


> A first sight at Borland C++ Builder, Nokia Edition

Hi, I download borlandX today and install it with Nokia series 60 sdk for borland. it works fine after some configuration, my problem is i can't get the menu in emulator, and also from rel build also when i try it on my phone, I try same source with UIQ SDK in other pc with codewarrior, it works fine with the emulator, but when i use winsb, the menu doesn't appear at all.

> A first sight at Borland C++ Builder, Nokia Edition

good GHood articles

> A first sight at Borland C++ Builder, Nokia Edition

I have noticed the same thing, does anybody know why

> A first sight at Borland C++ Builder, Nokia Edition

Short comment on the .h file problem. If you place the cursor over a filename(in fact any text) that the IDE can locate, and press ctrl-enter the file will open in the IDE. If the Include directory for Symbian .h files is added to the Library path, they to will be found when pressing ctr-enter. (This can be done in Tools->Enviroment options on the Library tab). Another hint for non-borland users: if you press ctrl-F12 you get a list of cpp files in the project.

> A first sight at Borland C++ Builder, Nokia Edition

I can't run Borland C++Builder 6, Mobile Edition, Miss a registation key?