Carbide.c++ is a software development tool for
C++ development on
Symbian OS. It is used to develop phones that use the OS, as well as applications that run on those phones. It is based on the
Eclipse IDE
Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, un ...
platform enhanced with extra plug-ins to support Symbian OS development. The product is provided by the
Symbian Foundation under an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
model. In April 2009,
Nokia
Nokia Corporation (natively Nokia Oyj, referred to as Nokia) is a Finnish multinational corporation, multinational telecommunications industry, telecommunications, technology company, information technology, and consumer electronics corporatio ...
transferred Carbide.c++ and many other software developer tools to the
Symbian Foundation. Members of the Symbian community now manage and contribute code to the Carbide.c++ product.
Tool packages
Carbide.c++ is provided by the Symbian Foundation in two different tool packages.
* Application Development Toolkit (ADT) contains tools for application development, including the IDE, debugger, and analysis tools.
* Product Development Toolkit (PDT) contains tools for contribution and product creation.
Both the ADT and PDT are basic installers that include Carbide.c++, several Eclipse-based plug-ins and several stand-alone tools.
ADT/PDT v1 contains Carbide.c++ v2.0.4
ADT/PDT v2 (Q4 2009) is targeted to contain Carbide.c++ v2.2
Technology
Carbide.c++ is based on the latest versions of
Eclipse IDE
Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, un ...
and Eclipse
CDT extended with Symbian OS -specific features. Currently it supports the WINSCW x86 C++ compiler found in
CodeWarrior for production of emulator binaries. For target binaries it supports
GCC, and ARM RVCT compilers (sold separately). The WINSCW and GCC compilers are actually provided in the SDK and not explicitly included in the Carbide IDE.
Carbide.c++ has branched very few parts of CDT nearly all of it is contained within added plug-ins added on top of Eclipse. The few branches mostly relate to the different semantics of the CodeWarrior debugger engine, compared to
GDB
The GNU Debugger (GDB) is a Software portability, portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada (programming language), Ada, C (programming language), C, C++, Objective-C, Free Pasc ...
which is what Eclipse previously supported. Because Carbide.c++ is very similar to a standard Eclipse installation, it can still be used for other types of development such as Java or Perl (provided the correct plug-ins are installed using Eclipse's self-update mechanism). Similarly, it ought to be possible to produce a product with similar functionality to Carbide.c++ by moving the Carbide.c++ plug-ins into a standard Eclipse installation; this is not currently a facility offered by Nokia.
Carbide.c++ supports the Symbian Build System v1 and v2 (aka Raptor). The former is a perl-based build system and the latter is built using Python and supports the next generation Symbian OS operating systems. The main advantage of supporting SBSv1 and v2 in Carbide is users can create command-line builds in parallel with IDE builds and not have to manage two different workspaces. The disadvantage of SBSv1 is dependency checking is automatic on every build and re-building large projects to take a while. Carbide.c++ built in some short cuts (starting with v1.3) to speed up rebuilds.
Early versions of Carbide (v1.0, 1.1) supported a different build method which had many problems.
History
Carbide.c++ development tools family was created to replace
CodeWarrior for Symbian OS as the primary development environment for Symbian OS. Adoption of the tool has been slow but CodeWarrior usage is diminishing since the older tool no longer supports the latest changes to Symbian OS and S60 platforms.
Carbide was provided as three commercial products and one free product. Today the product is part of the Symbian Foundation offering and is completely free.
* Express Basic tools for application development. Contains project management, code authoring, emulator and GCC-E builds, and emulator debugging. The Express edition was provided for free and did not support development directly on production phones.
* Developer Edition Targeted at aftermarket software development. Contained Express features, a UI Designer (for rapid UI creation), and application-level on-device debugging for S60 and UIQ phones.
* Professional Targeted at Symbian OS phone manufacturers, their partners, and application/middleware vendors working on demanding projects. Contained Developer features, system-level on-device debugging, and performance profiling tools.
* OEM Targeted at early-access embedded development such as driver-development, base porting, and hardware-dependent application and middleware development. Contained Professional features, and stop-mode debugging using
Lauterbach and Sophia in-circuit emulators.
The products ranged in price from 300 to 8000 Euros depending on features set and licensing model.
Carbide had a slow reception to the Symbian community. Developers are generally not fond of moving to new tools and early versions of Carbide had problems. There were several frequently cited complaints for example, lack of Symbian-OS-style code indenting, lack of an easy "find in files" facility, speed of import of Symbian OS build files (MMPs), and difficulties using on-device debugging. In addition, the much-anticipated Managed Build System did not work properly rather than offering a true incremental build, it frequently deleted everything and started again. Otherwise the reception was warm - the development environment is preferred to CodeWarrior, the IDE is based on Java so there are some speed and memory concerns, the IDE is often slow and has a pretty big memory foot print, all trademarks of the Java environment.
Carbide.c++ has made steady progress in addressing issues brought up by the developer community. CodeWarrior usage has dropped off significantly due to improvements in Carbide and CodeWarrior's lack of support for the newer versions of Symbian OS.
References
External links
Nokia-specific SDKsAn alternative - Symbian OS development within Apple's XCode IDESymbian C++ - Nokia Developer Wiki
{{Nokia platforms
Free mobile software
Symbian OS
C++ software