Thread: J# or C#
View Single Post
Old Jun 9th, 2007, 3:17 PM   #8
mackenga
Professional Programmer
 
Join Date: Mar 2005
Location: Glasgow, Scotland
Posts: 314
Rep Power: 4 mackenga is on a distinguished road
In short, Perl. To elaborate:

For web applications, Postgres or MySQL as the backend, Perl CGI scripts (or C++ CGI programs if performance is really crucial, but when is it really in this context?), and the excellent Apache webserver.

For small applications, system administration scripts and rapid prototypes of more serious GUI applications, Perl with a cross-platform GUI toolkit (I like Tk, which is dead simple, but of course the Perl wxWidgets binding could be used so that you could use the same GUI toolkit with Perl and C++). For more serious GUI applications, wxWidgets and C++ would be my first choice.

These technologies work just fine on Windows and used correctly do not tie you to any particular platform which means you aren't held hostage by your old applications in the future and forced to pay progressively more and more for support and licenses for new versions (which, as we're seeing with MS SQL Server 2000 -> 2005, can be almost as much of a porting and relearning effort as porting to Postgres from SQL 2000).

One problem though is that no two developers that use open source technologies seem to agree! A lot of people I know would be appalled that I didn't mention Python for example. In the one-size-fits-nobody world of Win32, this can seem confusing, disorientating and alarming: how can you tell who's right?

Well the thing is it actually doesn't matter. Look into which ones provide the sort of functionality you need, and then choose some. Different developers recommend different things - I like Perl, others prefer Python - but the truth is that they're both excellent and actually overlap a lot in terms of what they are good at. It's a win/win/win/win/win situation if you see what I mean: multiple options, mostly excellent.

To be honest, I think it's a bit of strange question: what would I recommend for people developing on the Windows platform. To be perfectly frank with you I'd recommend a change of platform. There are two kinds of people developing for Windows willingly: those that drink the MS marketing Kool-Aid and actually believe the claims about its greatness having never used anything that was genuinely good (to the guys in some hypothetical hick-town the pot-bellied eleven-toed girl next door is the most beautiful woman in the world), and those that are, like me, tied to it by legacy applications that were built using unportable MS software development technology, which seems a very strange reason to try the new unportable tinkertoy kit from the tat churning monolith.

If you're stuck with Windows as an OS, start moving to cross platform tools and in a few years, as the legacy systems retire, you'll find you can switch platforms, save a bomb on licensing and not spend years on rework. If you're not, and you still want to develop for it, devote some time to trying the good stuff and you'll probably lose your desire to target these archaic, expensive toasters. Use .NET now because you have VB6 legacy stuff that means you can't port away from Windows and in five or six years time, you'll keep using Windows because of that shitty legacy .NET stuff that you can't port away from Windows... and MS won't be supporting it any more.

P.S.: Apologies for the late response; not been on the forums much lately. Too busy trying to maintain steaming piles of VB6 filth from the nineties.
__________________
"I'm not a genius. Why do I have to suffer?"
mackenga is offline   Reply With Quote