What's a good programming language for open source development?
February 17, 2004 2:36 AM   Subscribe

Programming Languages. I've always done my "fun" programming using Delphi, but have decided that it's time to go open source. What languages should I be looking at? (My feature list is inside)

- Database facilities
- file i/o
- IDE with drag and drop components.
- Ability to integrate code with a website. (as CGI Scripts / etc)
- SOAP Classes & the ability to read / write XML
- Must run on Windows XP

I love the fact that with Delphi I can just drag a grid onto a page, link it to whatever database I want to look at, and then press one button to have a basic (but functional) database editing App. If possible, I'd like to retain this functionality.
posted by seanyboy to Computers & Internet (10 answers total)
 
Your choice of language really depends on what you're planning to code... if you're doing desktop applications, you're probably going to want to use a different tool to whatever you use for server-side/CGI scripts.

Microsoft .NET languages do all of those things, but it's as much an "open source" technology as "something you should be looking at".

The language that does everything you're after (especially the "Ability to integrate code with a website. (as CGI Scripts / etc)") that springs to mind straight away is Python. I've not used it before, but there appear to be a range of free IDE's available which you should be able to get to grips with.

You could always investigate the Java route, too, although you can't (really) compile it to native Windows code.
posted by cheaily at 5:06 AM on February 17, 2004


I'd say C & C++ for the desktop, and perl for the website. C++ Builder provides that Delphi-like experience you're looking for.

If you don't want to go down the C/C++ route, wxWindows has cross-platform GUI bindings for a number of languages.
posted by cmonkey at 8:26 AM on February 17, 2004


There is only One True Language: Python.

Give it an honest try for two weeks. I promise you, you'll never look back.
posted by five fresh fish at 8:39 AM on February 17, 2004


no "open source" language that i know of will have the kind of integrated environment you're used to with delphi. for that kind of thing you need to stay with borland or microsoft (and they work hard at making sure that you can do the same thing whatever language you use - the emphasis is very much on the development environment).

i wouldn't recommend c or c++ for anything apart from low-level drivers or operating systems work. c is an appallingly out of date language with a very weak type system and the crudest memory management possible. c++ tries to fix these, but because of backards compatablity all the bad bits of c remain, so you need to be something of an expert to use it correctly.

python is a nice enough language and pretty popular. it's not particularly fast and doesn't have the kind of ide support you think is important. the best add-on ide available is probably komodo - http://www.activestate.com/Products/Komodo/ - but it's not free (free test period and low price for personal use though) and still not a match for borland/ms, i suspect.

java is probably the other obvious alternative, in that it's popular and has most of the functionality you want. i have no idea what ide is best - a free and fairly well known one is eclipse. yet again, integration into the environment isn't going to be up there with borland and ms.

given a choice i wouldn't use any of those languages (although i've had paid work using all the above except c++). for personal development i use haskell. i wouldn't recommend it for your requirements, but if the most important things you want to do are to learn something interesting and find new and better ways of thinking about programming (but just forgot to include those in your list) then it is worth a look.
posted by andrew cooke at 9:37 AM on February 17, 2004


Definitely give Python a go. We've been using it more and more here at work (myself not as much as others, sadly), and it's really becoming beloved. Friend has suddenly made it his language of choice of late. I believe it's being used in a lot of open source projects itself, as well. .. and it has quite a good community attached to it.
posted by tittergrrl at 9:42 AM on February 17, 2004


Also remember that java is not open source. In fact in some key ways it is more closed than products like .NET.
posted by srboisvert at 9:43 AM on February 17, 2004


If you decide to look at Python, you can probably satisfy many of your GUI programming needs by looking at wxPython and the associated designer wxGlade.

Python's a good, clean language. I'll back up what andrew cooke suggested: stay the hell away from C and C++ unless you need to do low-level work. C++ in particular is a horrible kludge, don't let anybody tell you otherwise.
posted by Galvatron at 1:56 PM on February 17, 2004


I'd HIGHLY recommend C#. It does every one of the items you've listed above quite well. The language is a hybrid of java and c++. The .NET framework is installed as an update on most windows boxes now, so that isn't a big issue.

Good luck.
posted by woil at 6:41 PM on February 17, 2004


C# is great, and Mono (which is open source .Net) is available on Linux/Windows.

No IDE though, just great libraries. Expect an IDE (#Develop doesn't work on Mono yet, I think) to come along soon.

//

For Java, the Eclipse IDE has GUI plugins
posted by holloway at 9:52 PM on February 17, 2004


Don't know if I can be much help answering your question. I just wanted to point that the issues you're talking about are mostly about libraries and tools, rather than being about language features.

What I've been using for program sketches lately (and I'm certainly not recommending that you do the same) is picking a language that I like (scheme) and using an implementation that either targets the java virtual machine or has a good java interface. That way I get to take advantage of the java tools and libraries and still get to use a language I like to develop in.
posted by rdr at 1:26 AM on February 18, 2004


« Older Multiple Macs   |   What are future versions of Internet Explorer... Newer »
This thread is closed to new comments.