views:

260

answers:

9

Are there any good OOP languages that you can use on Linux? Obviously Java comes to mind, even running C# under mono.

Looking for a language that can be used for all round development, web dev, desktop, services etc.

Besides Mono C# and Java anything else come to mind?

+13  A: 

Python seems to be the obvious choice. There a lot of great web frameworks for it, strong support for development of GTK desktop apps and many others. Ruby should also be mentioned, although it's not usually used for desktop apps.

Don't forget other languages running on top of the JVM either - most notably Scala, Clojure and Groovy.

Bozhidar Batsov
+1  A: 

Python and Ruby are probably the most logical choice for all-round development. PHP is also great for web development.

Interesting how as soon as Java gets ruled out as an answer that we go straight for dynamic languages.

I'd still suggest using Java as a lot of your C# knowledge will apply with subtle differences in convention.

Kevin McKelvin
A: 

For the compiled type of app how about Freepascal.
Multi-platform and pretty easy to get the hang of for a C#/Java developer I would have thought. Can do web, desktop, client-server etc etc. And free (as the name implies!). Plus, it's based on Pascal (obviously) so it's well tried and tested and not one of the 'languages du jour' :-)

shunty
A: 

Give a try to the Free Pascal and Lazarus IDE.

You are getting support for multiple platforms, not only Linux. You write code once and compile it everywhere and you have a quite nice IDE which will speed up your development process.

Take a look at screenshots

TIP: When using Lazarus try the last daily snapshot instead of stable release. Snapshots are much more up to date with bugfixes \ features.

Wodzu
+2  A: 

Linux developent is a lot of things. For GUI application programming, you're most likely to want to program for one of the two big desktop environments, GNOME and KDE, or directly to the widget libraries that they are built on, GTK+ and Qt.

GTK+ is at its root a C library with object orientation being implemented as a set of conventions, very simply explained. However, many now program GTK+ and GNOME using true OOP languages like C++, C# using Mono (some very popular and default GNOME applications are built on Mono).

Another very interesting language for GTK+/GNOME is Vala, which is made to look and behave like C#, but which compiles to idiomatic GTK-using C, so all the GTK+ OOP conventions are lifted up to be part of the Vala language.

KDE and Qt are basically C++ libraries, but these also have bindings to other languages.

Both environments have good Python bindings.

harms
+4  A: 

Vala and D are new and interesting languages with some quality tools available. Vala was primarily designed to work smoothly in GNOME environment.

n535
+3  A: 

All of them. Whatever you want to use on Linux, you can.

Rob
+1 because I have a feeling Linux development can be more about getting the results, where as dev on Windows in my experience seems to be majority politically governed by using MS technologies. But this could be an assumption.
JL
A: 

Consider C++ with Boost.org. Boost is always coming out with new releases and it's all open source. Linux and C++ have a very long history and there are plenty of stable tools. Once you know C++, many new worlds seem to open up. There are several good IDE's as well. I like code::blocks.

User1
+1  A: 

You can still use C# with the Mono project.

tdi