Novell Home

Programming Languages for SUSE Linux

From Developer Community

With a platform as versatile as SUSE Linux, you have to expect support for a variety of programming languages and applications as well. With so many language options available, how does one make a choice? We hope this page will serve as a guide for selecting the best language options for your type of application development.


Contents

Kernel Modules

For development at this level, we recommend C. This could include not only kernel modules but also other rather low-level applications that interact directly with the Linux kernel and other low-level APIs. Since Linux is written in C, and since it supports a POSIX-compliant interface which is also provided in C, this makes C the obvious choice for this type of programming.

Choose C For

  • Device Drivers
  • Other Linux Kernel Modules
  • Low-level Linux Applications


Systems Applications

Linux is commonly deployed as a workhorse machine to run all types of systems applications. Both C and C++ are good languages choices for thes types of applications. Which of these you choose will have to do with your experience, the application type, libraries to be used, etc. The POSIX libraries that come with Linux are all written in C. However, if you do prefer C++, there are several system libraries for Linux in C++, such as Boost and BloCxx.

Without getting into the details, suffice it to say that if you choose to use C++ libraries in your application, best practice recommends that the whole application should be a C++ application. While I personally have seen it work otherwise without trouble, there are some areas subject to interpretation, where the standard doesn't define proper behavior, that can be a source of trouble.

Choose C or C++ For

  • Linux Systems Applications

Choose C If

  • You prefer C to C++
  • You will be interfacing with C libraries only

Choose C++ If

  • You prefer C++ to C
  • You will be interfacing with C++ libraries


Scripting

Scripting languages, great for the quick and dirty, have gained popularity as robust languages for certain types of applications on their own. No matter what type of development you do for Linux, there will come a time that you will want to do things in a script. In addition to the ability to write scripts for the bash shell, Linux also supports other scripting languages like Perl, Ruby, and Python.

Choose Bash Scripts For

  • Initialization scripts (for /etc/init.d)
  • RPM Spec file tasks
  • Simple to relatively complex command-line sequences that need to be repeated

Choose Perl, Python, or Ruby Scripts For

  • Applications that need to tie into the command line
  • Data processing, file system manipulation, or other similar activities
  • Applications that don't require high execution speed

Choosing between Perl, Python, and Ruby is as much a matter of personal preference as anything. Perl's CPAN library is probably the most comprehensive, giving you a wealth of existing functionality. If you prefer to program using an IDE, you will probably want to use Eric and Python. Ruby is the newest of the three and is generating a lot of excitement. However, because it is new, it is sometimes harder to find the libraries you are looking for.


Web Applications and Web Services

SUSE Linux makes a great web platform. Whether you want to use a mainstream application server platform like Java/J2EE, ASP.NET, or LAMP, or one of the more obscure open source platforms like Zope (Python) or Ruby on Rails, you can do it on SUSE Linux.

For both web applications and web services, we recommend either Java or PHP. Each has many pros and cons, including your own personal familiarity, the application in question, and your need to tie into or leverage other applications. Java has been widely used for years in this capacity, and several powerful open source frameworks like Struts, Turbine, Velocity, and Hibernate have emerged to help you create your applications. However, PHP is the most widely used and fastest growing web application language today, and there are many existing open source applications in PHP to choose from.

Choose Java and J2EE for Web Applications and Web Services If

  • You are creating mission-critical, complex, enterprise-level web applications and web services
  • Your primary expertise is in Java
  • You want to use one or more of the open source web application frameworks

Choose PHP and LAMP for Web Applications and Web Services If

  • You are creating simple to relatively complex web applications and web services
  • Your primary expertise is in PHP
  • You want to tie into and leverage other PHP-based web applications

Choose ASP.NET with Mono for Web Applications and Web Services If

  • You are migrating from Windows to SUSE Linux and want to redeploy ASP.NET applications without having to rewrite


Desktop Applications

Today, there is no technical reason why many computer users in business settings cannot use a Linux desktop to do their job. A SUSE Linux Enterprise Desktop workstation comes with everything you need to send and receive e-mail, use the Internet, and create documents, spreadsheets, and presentations. Expect to see a major shift as more and more companies start to move many of their desktop systems to Linux over the next few years.

On SUSE Linux, you can write desktop applications in almost any language you want: C, C++, Python, Java, or C#, for example. One area that has traditionally been lacking on Linux, however, has been the domain for the Visual Basic developer. Now, through our partnership with Real Software, we can offer you the ability to develop desktop applications for SUSE Linux as simply as VB was for Windows.

Real Software provides a tool called RealBasic, which uses a Basic variant very similar to VB6. In fact, independent users have found that migrating existing VB6 applications to RealBasic is faster than migrating them to VB.NET. And, RealBasic delivers a cross-platform executable that runs on SUSE Linux as well as Windows - perfect for your mixed environment where some desktops have moved to SUSE Linux Enterprise Desktop and others have remained on Windows for a time.

Choose RealBasic for Desktop Applications If

  • You have existing VB6 applications that you want to redeploy on SUSE Linux
  • You need to deploy applications to both SUSE Linux and Windows
  • You want to create quick, robust desktop applications

Novell® Making IT Work As One

© 2008 Novell, Inc. All Rights Reserved.