2008-10-08

#include

In the next few weeks i will be posting a series of blogs about development of applications on linux, 3D graphics, physics, networking and all of my discoveries as a developer. This should include some warnings, tips, tricks, and anything useful to developers who primarily use linux. This first post will focus on tools!

As a developer who has worked commercially in a Windows development environment, i have to admit, Visual Studio is good. Sadly ( although it would benefit Microsoft greatly ), VS is Windows specific. So what to do if you want to develop on a Linux OS? There are many environments out there, and in my opinion most of them suck. I want to be able to develop for anything, i like my graphics and physics based applications, but i don't want to be forced into writing a GUI. Sometimes i want to write a GUI, and something like GTK# really doesnt do it for me ( i much prefer QT ). I want code completion, my typing sucks. Although i've been coding for years, i'm still a bad typist. Makefiles are a pain, but if i want them, they must be accessible. At the same time i want to be able to just quickly create a project without having to worry about setting up makefiles and stuff like that. And Visual Studio solution support wouldn't hurt. And if anyone wants their IDE to be more like XCode, they've been working on a Mac too long and need a break.

My tests taught me this:

  • Monodevelop, which now supports C/C++, crashed randomly, and is too specific to certain tasks. I don't like GTK#, and it took me four hours to create a checkered board on a gui in monodevelop. The C# support and Visual Studio solution importing is nice, although i am not a fan of C#, but for C/C++, the IDE is disappointing
  • Anjuta is not fully featured. I tend to steer clear of GNOME based technologies ( excepting GIMP ), and although i gave this a try, it seems to be more geared to GNOME development, which makes sense. I want a general environment, which i feel Anjuta falls short of.
  • KDevelop has some big advantages. The project support appeals to me, and the fact that is was simple to set up some stuff is also a big plus. It is geared toward KDE development, again this makes sense, and tends to be more specific. It is makefile driven, but the built in automake tools can remove the effort of setting up a makefile. However, being makefile driven still creates it's own problems, and can limit development time in this environment. Productivity is my main goal, i don't want to spend time setting up stuff, i would rather be coding.
  • Eclipse is a big one. I will state here that i am not a fan of java or most things written in it. Speed matters to me, and i have never felt that a Java application or it's interface feels correct. Eclipse is no exception. It uses up way too much of my ram and feels like i have to fight it for the processor.
  • Netbeans is for me the same as Eclipse. Slow and chunky. Altho it would be my second choice. Its C++ features are not bad, and altho it has a lot of polish, it lacks some nice little things.
  • CodeBlocks is a cross platform ( Win/Lin/Mac ) C++ IDE. It is fast, feature packed and surprisingly visual studio compatible. It has a whole bunch of project templates, ranging from Ogre, openGL and irrlicht to QT4, GTK and wxWidgets. The reason i discovered Codeblocks was exactly this, i needed to make an Ogre project ( for a physics engine ), and this IDE was suggested. The latest version supports VS2005 and 2008 solution files, which is great for compatiblity. It supports ( minimally ) makefiles, which is good to know.

Being my choice, Codeblocks is what i will refer to for the rest of this series. You can get it from www.codeblocks.org and installation is pretty simple. Using openSUSE 11.0 linux, all i did was searched the Webpin software repo's and installed the latest version i could find. 

If anyone has any other suggestions for IDE's, please do let me know, i'm always looking for new software to play with!

Next Week i will hopefully cover some basics of 3D graphics in openGL

    No comments:

    Post a Comment