You are on page 1of 3

ASSESSMENT AND EVALUATION OF SOFTWARE DEVELOPMENT PLATFORMS AND LANGUAGES

SEAN ROBINSON

ABSTRACT:
This report will document the analysis of several programming development platforms and languages which could be utilised with them in order to create the final application. It is not the mandate of this report to fully document their usage or even provide a substantial critique and evaluation, this is simply a brief explanation of my views of each one and personal evaluation based on previous experience. As this is not a research article, citations will not be included as research will not be completed within the scope of the report.

CONTENTS:
Abstract: ................................................................................................................................................................. 1 Languages: .............................................................................................................................................................. 2 C: ......................................................................................................................................................................... 2 C++: ..................................................................................................................................................................... 2 C#: ....................................................................................................................................................................... 2 Java: .................................................................................................................................................................... 2 Platforms: ............................................................................................................................................................... 2 Visual Studio 2010: ............................................................................................................................................. 3 Netbeans: ........................................................................................................................................................... 3 Eclipse: ................................................................................................................................................................ 3 Text Editors: ........................................................................................................................................................ 3 Conclusions: ............................................................................................................................................................ 3

Page 1 of 3

Sean Robinson 2011

LANGUAGES: C:
C is a language I am only familiar with as a stepping stone within my education from which we were launched into C++. Although the control within a program is comparable to C++, the limitations with regard to modularisation through the use of classes would be a severe hindrance and serve only to apply restrictions on how the application could be developed. One of the main advantages of using C is that we remain in control of data through pointers; there are many areas of this application that will need to be accessed and modified without creating copies and overloading the system.

C++:
C++ is the language I am most comfortable with as my education has been based around this language almost from the start. The improvement over C in that we are now able to utilise classes in order to decompose our programs is extremely valid in this circumstance. By allowing us to modularise our code in such a unique way, we are able to apply useful decomposition to the problem and then lock them away. As I have already decided to maximise code re-use through creation of small and general classes and methods, this suits my requirements very well. Through C++ I am also able explore potential graphical improvements with OpenGl and DirectX, both of which have been covered on the course in some detail. Inherent in C++ is the utilisation of pointers afforded by C.

C#:
Although I have little experience with C#, I have found it to be a very robust language capable of handling a huge variety of tasks. While we lack the control of C and C++, the rapid development afforded through the event manager and UI builder is a very tempting prospect. The deciding factor with this language may simply turn out to be whether the initial time cost of learning the new syntax outweighs the advantages of having a RAD language. If this project was dealing with some other solution, then C# may be our best option. However, as we are only developing a suite of core modules that needs no interface or graphical component, learning the new syntax in exchange for access to options that we will not use seems wasteful. We may consider using C# toward the end of the project in order to make use of marshalling capabilities in order to further develop .DLL files. Should we find the need to generate a UI that makes use of the libraries then we may also consider this language.

JAVA:
Java has been included here as something of a wildcard. I am not particular well versed with the use of Java but the syntax is quite similar to C languages and the semantics are pretty much identical. Java suffers from the same issues described with C#, the trade-off for using the extra functionality does not weigh favourably against the time cost of learning a new language. It suffers a further hit when we realise that Java would be much more difficult to marshal further in the development cycle.

PLATFORMS:
Page 2 of 3

Sean Robinson 2011

VISUAL STUDIO 2010:


Visual Studio, initially, is the strongest candidate in this category as it the package in which I have had most experience using. The very powerful intellisense, coupled with extensive auto-complete functionality, support for a multitude of languages and a very pleasing layout makes this contender very difficult to beat. The main area where VS2010 falls down is where we encounter project creation and files. Visual Studio is a huge program and seems happy to propagate that mass to its creations. The project folders generated by Visual Studio are immense and, as such, can take up a very large amount of space in memory. Not only do we have the direct disadvantage of disk space consumption associated with this, it also makes it slightly more difficult to transfer files and keep copies up to date through syncing.

NETBEANS:
Netbeans is an environment designed specifically for Java based programming; it is a very powerful IDE that incorporates many of the features we would expect from a high end application. Despite the numerous virtues associated with this platform, we are still restricted in the fact that it is based on Java development and we would severely limit our development and future extensibility options should this route be taken.

ECLIPSE:
Eclipse is mentioned here as a free alternative to the Visual Studio IDE, this section essentially speaks for others of this type, such as Code::Bloks, in addition to Eclipse. While development in this platform would allow us to provide project access to those without VS, this feature doesnt matter in the context of this project and the slightly less stable features, a by-product of being a more general IDE, provides a reason to avoid IDEs of this type. While excellent in their own right, something more specific to the needs of the project is more favourable.

TEXT EDITORS:
As an honourable mention, and to document a completely different method in which we could develop this application, I looked at some text editors and their extended family. While it is perfectly acceptable to use these text editors such as Gedit and Notepad++, they lack the functionality that more robust IDEs come with. The more advanced versions such as Geany on Unix offer some further functionality, such as basic intellisense and autocomplete but are still a far cry from professional development environment. These programs certainly have their place within the programming world but are just too simple in implementation to fulfil the needs of this project in the way offered by other packages.

CONCLUSIONS:
As is likely clear from the report, this project will be developed using a C based language, namely C++. The pure control and previous experience combine to make this the only real contender in the field. C# may very well be used to implement extended functionality in a RAD manner, but will take a lesser role to C++. Despite there being all manner of superb IDEs available, the robust and highly functional Visual Studio 2010 is the best pick for this specific instance and will provide a huge amount of support in many of the design and development stages within this project.

Page 3 of 3

Sean Robinson 2011

You might also like