Official website for Linux User & Developer
FOLLOW US ON:
Mar
24

Linux – A supercharged development environment

by Kunal Deo

Linux is not just another operating system, but a complete stack of technologies that virtually any developer will enjoy. It doesn’t matter if he or she is coming from Windows, Mac or any other OS – there is something for everyone. This feature looks behind the scenes and finds out what really makes Linux tick as a development platform…

Integrated development environments
Back in the old days VI was enough for most of us, but not any more. As the complexity grows in today’s applications, people are shying away from plain text editors. IDEs can make a developer very productive by reducing the repetitive tasks and boilerplate code. IDEs also provide a central place to run and debug applications. This ensures the higher standards for the developed product. There are plenty of IDEs are available for Linux. Let’s look at a few important ones.

KDevelop
KDevelop is a multi-language cross-platform integrated development environment (IDE). Although geared towards KDE, KDevelop can be used to develop applications for any SDK and platform.

KDevelop can make use of CMake or standard UNIX-based makefiles for its projects. KDevelop 4 supports C, C++, PHP, Python and Ruby. KDevelop uses a pluggable architecture, hence new features can be easily added by third-party developers without touching the core KDevelop source code.

KDevelop is a very feature-rich IDE. It has support for a class browser, built-in version control and Doxygen, along with wizards for generating and updating the class definitions. Compiler freaks will enjoy KDevelop’s front-end interfaces for GNU Compiler Collection and GNU Debugger.

MonoDevelop
MonoDevelop is a cross-platform IDE primarily designed for C# and other .NET languages. It currently has language support for C#, Java, Boo, Visual Basic .NET, CIL, Python, Vala, C and C++.

MonoDevelop

One of the unique features of MonoDevelop compared with other Linux IDEs is its good support for ASP.NET web applications. You can build and test your ASP.NET application with the built-in Mono web server.

MonoDevelop is especially useful for people who are coming from a Windows/.NET background. You can use Mono to port Windows .NET applications to Linux and other platforms. Mono strives to be 100 per cent .NET compliant. MonoDevelop features a lot of GNU-specific extensions to .NET, such as GTK# (.NET GUI widget toolkit based on GTK), Boo (statically typed programming language) and NUnit (unit testing framework).

NetBeans
NetBeans started its life as a student project in the department of mathematics and physics at Charles University (Prague, Czech Republic). After that, it was developed by an organisation that was later bought by Sun Microsystems, and it was subsequently open sourced. NetBeans is a complete C/C++ and Java IDE with flexible support for third-party plug-ins.

It is available under a dual licence consisting of the Common Development and Distribution License (CDDL) v1.0 and the GNU General Public License (GPL) v2. This means that while developing for NetBeans, you can get open source licensing facilities.

NetBeans has a wide community and numerous solutions have been developed around it. There are a plethora of plug-ins available for it. NetBeans supports virtually all languages, including C, C++, Java, Ruby, Python, PHP and Perl.
This IDE also enjoys solid commercial backing from Sun Microsystems, the maker of Java.

NetBeans is written in Java, so it is natural that it comes with strong support for Java. But do not mistake NetBeans as another Java IDE. NetBeans has a lot of features that are not even found in commercial offerings. NetBeans features UML (Unified Modeling Language) and BPEL (Business Process Execution Language) diagrams, a GUI designer (for Java desktop and web apps), mobile development and BD-J (Blu-ray Disc Java) among many other features.

If you want to supercharge your development environment, Linux is the way to go. You will not necessarily be able to develop a super-cool application for Linux, but you will be able to easily port it to other operating systems and smartphones.

Advisor:
Kunal Deo is a veteran open source developer. Currently he is leading two open source projects: WinOpen64 and KUN Wiki. He is also a KDE developer. He has contributed to many open source projects, including KDE-Solaris, Belenix and Openmoko. He has written numerous articles on open source, Solaris and Linux  related technologies for various technical magazines around the globe. He is also writing  a book, ‘Porting On Open  Solaris’.

Pages: 1 2 3 4
  • Tell a Friend
  • Follow our Twitter to find out about all the latest Linux news, reviews, previews, interviews, features and a whole more.

    11 Comments »

    • Shawn said:

      You missed gtk-perl http://gtk2-perl.sourceforge.net/ in your list of GTK languages.

    • Golodh said:

      Well, there is a lot to be said for Linux as a development platform.

      Only I fear that the article contains rather too much boilerplate “hurrah” text to seriously address the issue.

      Starting with game development: seen any good games for Linux lately? Because I haven’t. It’s all consoles and MS Windows as regards attractive games. The Allegro environment despite.

      Then the IDE’s. Certainly KDE is an impressive achievement. Only … still not as polished and feature-rich as MS Visual whatever. The make side of things is still rough, and it’s still harder than it ought to be to point at a bunch of existing C files and say: “Ok, those files constitute my project compile, link and run ‘em”. It *can* be one, but it’s still not like click, click, done. And then the KDE integrated debugger. Compared to the inevitable MS offering it’s simply not as good. KDevelop still smacks a little too much like “Gee, we can do this too” to me. Even after its long development history.

      Fortunately KDevelop is getting competition from Qt develop. Which is a lot smaller, more focused, and easier to integrate GUI development in. And it runs both under Linux and MS Windows.

      Valgrind on the other hand is not mentioned, but it’s great, about on par with Rational Purify, but not quite as easy to use.

      Qmake and Cmake are a welcome relief from the arcane and painful to write automake / make scripts. But they haven’t been universally adopted.

      Netbeans is fine, but it’s not Linux-specific and it owes nothing to Linux.

      And then the gushing piece about the audio libraries. It’s great that they are there. They’re needed. But I’m sorry: but the mere fact that they rate a mention at all highlights the problem: their existence is not something that’s taken for granted. And anyway we’re looking at two offerings, not a single one. Despite the popular opinion that “choice is good”, this applies only during the R&D phase of a system. When you merely use a system as a vehicle to run applications on, choice isn’t automatically good because it fragments the market and dilutes your efforts. What you want is the best; all the rest can drop into the bit bucket. But how to determine the best? What you’d really want is one single thing that is best in every respect. But such thingies are hard to make.

      But then that gushing piece about the Gimp. Sorry, but fine a piece of software as it is, it’s not Linux-specific although its roots are in Linux. It runs fine on Linux, but it runs just as well on MS Windows. And that’s where it competes with programs like Photoshop, which it still hasn’t quite matched yet.

      When we come to the interface libraries, Qt deservedly gains pride of place. I really have no criticism there. Its great, it’s fast, it’s modular, it’s clean, it’s portable, and it even looks great. Only its development is carried by a commercial company, not by volunteers. Perhaps that’s why it pays so much attention to polish rather than piling up the features (unlike other projects I could mention).

      Oh yes, there is that wx stuff too. Sorry, but I never bothered with it. Here too I just want one library: the best. Anything else can go straight to the eternal bitfields. And as an end-user I’d like it to be standardised too. Away with hose annoyingly different file-open dialogues please. If it were a straightforward C library then I could understand its attraction, but it’s a C++ thing, just like Qt.

      OpenGl is great, but I never used it. I don’t program 3D stuff from scratch. If I need something done I’ll go straight to simple-to-use widget sets like Qt or I use a plotting package to do it for me.

      So please lets try to keep a perspective. Linux has developed into a platform one can be proud of, and a worthy challenger to MS Windows. Only … it still isn’t there yet. It still needs more polish and more end-user friendliness. It’s certainly getting there, but “turbo-charged development environment”? Lets keep some modesty in our claims, shall we?

    • Michael said:

      Now if only Linux could get a good modern text editor….. (emacs, vi, vim, pico, nano, kate, nedit, eclipse, gedit, anjuta, and joe don’t count for me… each is incomplete or a PITA to use) I’m tired of having to run Boxer under WINE to get the type of text editor I want. At least I found Kdbg which is worlds better than the extremely annoying ddd.

    • Boris said:

      Wow,

      You go in lengths to favor Linux. There are many reasons to stay away from Linux as development machine. I use both Linux and Windows.

      Many tools are not available for Linux. Gimp is almost totally useless and i don’t think there is a serious user base for it. No surprise Ubuntu has dumped it. Ppl who do serious (also open source) graphics work, don’t use it. Period.

      Why are even open source tools not supporting Linux well? Compare for example MySQL tools (Query, Administrator). It has a Linux and a Windows version, but the Windows version is way better. The details are the small usability things. They are not there in the Linux version.
      With many Linux tools you have this usability lag. For example graphical SVN support for Windows is far superior. On Linux you’d better just use command line subversion.

      Windows versions also tend to be more stable for most tools. I often see applications crash on my Linux box. Rarely they do that on Windows.

      Eclipse on Linux is so bad that it actually pushed me to move away from Eclipse after many years of use. I tried to use IntelliJ but only their Windows downloadlink works currently. So, in Windows Eclipse, NetBeans and IntelliJ work out of the box, in Linux only NetBeans works. Of course you can fix it, but it is always nice when mature software work just like that.

      On the server side of development Linux is King however. See the integration of Hudson in many distributions. Or the many other server side stuff. It is safe to say that when you need a graphical user interface, with Linux you step 20 years back.

    • Harry D said:

      @Boris & @Golodh

      Do you guys really think Windows is the better development environment than Linux, so I have a simple question for you, why Android (Linux) is popular where Windows mobile actually going to disappear.

      Linux is actually the home of many projects, without Linux these products would simply not possible. Here are few highlights to clarify. You will understand it you just have look beyond Windows;

      1. GCC (GNU Compiler Collection): This is project is used making software not just for linux but also for a diverse range of platforms from iPhone applications to Playstaion 3 games. Windows has Visual Studio, I have not seen them getting used anywhere apart from Microsoft platforms. Now you may say that GCC is available on Windows, but remember this Linux packages are designed to portable unlike Windows where you cant run ensure that your software even run on all Windows. Eg. DirectX 10/11 doesnt work on XP. Windows Mobile 5 cannot use Exchange 2007. Countless examples. Not to mention the Closed source nature of things. That is the reason Why Google and many other companies use Linux and not windows.

      2. Firefox aka Mozilla aka Netscape : This project was originated on Linux and later ported on different platform. Even today if you try to compile Firefox you will come to learn that it is not possible without using GNU utilities which were originally created for Linux.

      3. libxml, libiconv, zlib and many other common libraries: These libraries were created on Linux on now powers almost every system that is not windows. Exception is projects ported from Windows.

      4. Qt: Qt was never existed if it was not for KDE. So dont say it was just originated. Qt was a solid product for linux from day one. Go look at KDE 1 screen shots. Windows port was improved incrementally. Thank Qt developers (who are actually linux developers first) for Windows support.

      You guys mentioned yourself as end users, so you wont get it anyway. This is meant for developers. So as end user you need not to look at this period.

      SVN was created for Linux. It was made easier on Windows because the Windows users are retard. Linux users dont care for a good UI and we are dam well happy with it.

    • Boris said:

      Harry,

      Some good points you make. It would be indeed a significant victory of Android to bury the already dead Windows Mobile.

      But as me being a retarded Windows user, could you perhaps point me to the Linux kernel SVN repository?

    • Harry D said:

      Here is the thing. Linux is more than just kernel and several linux components use SVN. Linux Kernel is using GIT, again originated on Linux only. So no harm there.

      I apologize for using retarded.It should not be used in discussions like this.

      My point was, Windows from Top to Bottom was designed to be use friendly. Linux on the other hand was designed to be powerful, portable and open. Anybody can make software for Linux without paying and yet have access to complete source code to build on his knowledge aka build software that do not re invent the wheel. So user friendliness in Linux vary. People build software to solve kind of itch. Sometimes this itch is user friendliness itself (read KDE or Ubuntu).

      Windows on the other hand is a different game. One company dictates the term. You do not have access without money. You do not have the complete source code. If you build something using Microsoft’s library and for some reason it is unsupported in next release you are stuck. You do not have the access to library code. That is Vendor lock and it sucks big time. Thats why corporations and specially governments what to get out of the Microsoft’s proprietary jail

    • Arkadi said:

      I like Linux very much, but I like user friendliness too and thats why I have chose to use Ubuntu. I know that even Ubuntu is still not user friendly us Windows yet but I hope that all the open source community would help her getting there.
      To Boris: if you use the latest Ubuntu, Installing a new software as eclipse is very easy, you click on “Ubuntu Software Center”, search and install it.

    • cbemerine said:

      Great list and points Harry D.

      @Golodh and @Boris, the title of the article is not “Windows – A supercharged development environment” is it.

      Too many times in the past I (and many of you) have allowed another proprietary company (including Microsoft) to lead me down a blind alley, only to have them discontinue support for the tools. And their only reason for doing so, over 90% of the time, is to force developers to pay more money for the upgraded/new development tools. Just so they can discontinue support and force you to pay again… and again… and again… and again.

      You know what they say about people who continue the same behavior while expecting a different outcome!

      You do not have to be a rocket scientist to want to get off that, financially negative to you, roller coaster/ferris wheel that only perpetually costs you more and more of your hard earned money. And these days, with so many jobs being shipped to India so a foreign company can replicate and steal your product and your market, it is even more critical.

      I will not even get into the time wasted to learn the new gotchas and additional problems with the new development environment and tools.

      Since their (proprietary company) choice is clear, yours (intelligent developer) should be also. Just say no and move into a more effective development environment. It will certainly save you time and time is money, right? Right. And that is more productive.

      As for Windows being the premier gaming platform, sadly true…however imagine a gaming platform where your operating system will run in only 128K, 256K or 512K of RAM Memory and you had the rest of the memory (Gigabytes today) to run/render the game?

      Linux is that platform.

      How many times do you have to buy a new Xbox or buy that proprietary operating system again for the same hardware (minus 2/3 minimal hardware changes) before you will wise up?

      Perhaps you want to pay them monthly or they turn you off, like your Cable TV, Internet provided or Cellular phone provider? Well you are in luck, as it would happen, this is what they want to force you into as well.

      As for me (and many, many others) I choose to own my hardware, own my software and have 100% control over LAN, my WAN, my development environment and my Personal Computers in general.

      I will upgrade ONLY when I deem necessary and not be interrupted only because some proprietary company wants more of my hard earned money. Duh moment that one.

      In Summary, the title of the article was “Linux – A supercharged development environment”. It is a great article!

    • Golodh said:

      @chemerine,

      I don’t quite get what you want to say with that comment on “what the title of the article is”.

      Boris and I point out ways in which Linux really isn’t a great development platform (especially compared to MS Windows), with the aim of getting the hype back on the ground. In that sense our comments are on-target.

      Next, your (to some extent justifiable) gripes about having to pay for development software have no bearing whatsoever on their quality, and therefore have no bearing on the article either.

      Last but not least, your (laudable) support for Linux as a free environment has precisely nothing to do with the question of whether it’s a *good* development environment, Ok? An in many ways it (still) isn’t.

    • Andaluz said:

      I’m working both on Windows and Linux. The problem is, when comparing Windows with Linux, it’s like comparing apples with pears. For example, Windows is commercial and developed with payed professionals. While Linux is opensource and developed by volunteers (and professionals from commercial companies too).

      As someone else mentioned before, Linux is built with stability, security and opensource in mind. While Windows was built from userfriendly point of view. So you can’t compare these OS together, it would be more fair to compare Windows with Mac.

      Now as time changes, Linux also changes and this means Linux is getting step by step more userfriendly, but it’s not there yet. Ubuntu is doing a good job, in such that it can be used by at least an average Windows users. Furthermore, there are different combinations that influence the success of an graphical OS. Like supported drivers (for audio, video etc..), Skype (which is just currently supported by Linux), flash for watching videos… All these important stuff can make a graphical OS successful or not.

      Visual Studio as an IDE is much better than Linux alternatives. As a C/C++/C# developer I debug a lot and the debug tools of MS is amazing. While using gdb or ddd is a real pain and frustrations I can’t get used to. But on the other hand, GIT is so great, there is no such cool SCM for Windows (ofcourse there is a port for that, but still). And working with COM objects on Windows is a straight disaster (no wonder they dropped it).

      Anyway, it’s also a matter of taste, I like Linux, because it’s built by developers for developers :) But on the other hand, if you want something that just works as a simple user, like watching movies or listening to music, I think Windows or Mac is much better for now…

    What's your opinion?

    Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

    Be nice. Keep it clean. Stay on topic. No spam.

    * Required fields