views:

201

answers:

9

This has probably been answered before in various incarnations, but I think there's enough uniqueness to this question to warrant a new one. If not, please vote to close as a duplicate :)

I spent several years as a developer/programmer in my younger years. A couple of years professionally in COBOL, a few more years professionally in Delphi, and a handful of years in academia in Java. I left the game because I was so fed up with the paperwork assault course required to get the simplest of changes pushed. Spending maybe 10% of my time coding was not my idea of fun.

Anyway, I've always maintained an interest in programming, and lately I've really been wanting to get my teeth stuck into it again. However, the goalposts have moved significantly since and I'm not really sure which pool to dip my toe into first. I have spent a lot of my in recent years in VBA and VBScript to aid in my current role.

.Net? Java? C#? - What is a good launch pad for me reintroduce myself back into current technologies and methodologies? This is not something that I necessarily want to do professionally again - but maybe just to condition that muscle again, for fun.

Thanks in advance

+5  A: 

The following is highly subjective:

.NET is a very 'safe' choice (C# is just one language inside that framework).

But I would personally also pick up one of the dynamic kids on the block (Python, Ruby...) . They really do put the fun back in programming for a lot of people (so it seems).

ChristopheD
My understanding is that those are both web based technologies? I think that's something I would definitely like to look into.
Izzy
.NET is the 'broad framework' (ASP.NET is it's web-technology component). Python itself is a modern broad 'general purpose' programming language but is also used a lot for webbased stuff (using popular libraries as Django, ...)
ChristopheD
You can even do .NET AND pick up the dynamic kids in .NET with IronPython and IronRuby...
Mathias
A: 

What style of applications would you like to be working with? If backend/server based, then Java is a good bet. If you like working with GUI's and also don't mind a bit of server side work, then I'd go .NET all the way.

If .NET, then go c#. Main reasoning being, language advantages aside, there's simply more jobs and resources for C# developers. C# is moving along at a VERY rapid rate, and with Silverlight, WPF, ASP.NET MVC all currently in demand, the future looks bright.

Marcus
I may be reading the question wrong, but I don't think he's looking for a job.
Breton
Perhaps, but it never hurts to have the skills that are most in demand.
Marcus
@Breton: Correct! @Marcus: I have a massive global environment to play with, but I think it would be more orientated towards utilities and solutions for myself, and by extension for my colleagues around the globe.
Izzy
@marcus actually, it can, if you don't really want to do it professionally. If you have the skills, but you do not want to program on the job, you have to keep your programming skills extremely secret.
Breton
Imagine you were superman, and everyone at the daily planet knew it. How many annoying construction jobs do you think the management at the daily planet would ask you to do, when all you're trying to do is be a goddamn reporter!
Breton
+2  A: 

Well, myself as a PHP programmer, reading your history about Microsoft solutions (VBA / VBS) recommend C#. There have been developed many interesting things for the past few years like LINQ to SQL / LINQ to Entities, WPF, WCF and the new .NET framework 4.0 beta 1 is available opening many new doors to programmers :)

I'm stuck at PHP due to deadlines and regularly new incoming projects. So I don't really have that much time learning a new language, but if I would choose one, C# is on top of that list.

Ben Fransen
C# is one that has been stuck in my unconscious mind like a thorn for a while now. I'm just wondering whether it's too big a bite to chew for someone getting back into it. Plus, I'm not really sure, but I have a dread feeling that a background in C++ would be an insurmountable prerequisite - something which I don't have. Thoughts?
Izzy
C# it Microsoft's answer to Java. It has less to do with 'classic C/C++'. It's garbage-collected, object-oriented from the start, ...
ChristopheD
C# grew out of microsoft's implementation of Java, and thus resembles Java more than C++
Breton
Hmm I only took a few looks into C#. Some friends of me are really spreading the word about it ;) It's indeed a heavy bite if you're just out looking to grab some lunch ;) But IMO C#, and .NET, has a lot of potential. Mainly I'm thinking of the posibillities of webservices. This way it's also possible to create a desktop app for you client to maintain his webshop. In my experience clients seem to find desktop apps less scary then webapps + a local resources are also used for handling your application ;) Those are some things keeping me 'sharp' on .NET ;)
Ben Fransen
For someone with Delphi experience, I'll note that the Delphi language designer, Anders Heilberg, is also the designer of C#.
Cylon Cat
+1  A: 

Both Java and C# have a huge amount of materials behind them so you can't go wrong with either. You might also want to look into functional languages for a different take.

codeelegance
Java is another one that has seemed like an obvious choice, with 3 years (albeit in academia) under my belt. It should be relatively straightforward for me to get up to speed again.
Izzy
A: 

Spending maybe 10% of my time coding was not my idea of fun.

That's why it's called "job", not "fun". You're lucky by most people standards to work at something you enjoy doing, and given the current economy - working at all.

Personally, I enjoyed the bureaucracy - stopped a lot of stupid client requests & made them respect that they should put thought into what they are requesting.

.NET or Java - the differences are subtle between Java & C#, so transitioning would be easy either way.

OMG Ponies
If you don't experience any fun in your job it's time to put your resume somewhere, since you only have to work at least 40 yrs in your life...
Ben Fransen
This is a comment, not an answer
Breton
Update to highlight others lack of reading comprehension.
OMG Ponies
It would be a much better answer if you actually explained your reasoning, and left out the sanctimonious preaching.
Breton
+3  A: 

If I were looking to learn a new language with the objectives of "fun", "web based" and "quick utilities, desktop, or command line", I would skip past everything else and choose python.

if you're into mathematical and logic puzzles, scheme or lisp would be a good choice.

If you just like learning new languages, then haskell, or erlang would be good.

if you want to make games, then google for "flixel" and "love 2d game engine"

Breton
Another one for Python. Going to do some digging into this one I think. Cheers!
Izzy
If you've programmed before, you can certainly learn (the basics of) python in a few days. It's really like executable pseudocode. Search stackoverflow for 'python tutorial' or 'python book' for references (e.g. 'Dive into python').
ChristopheD
Also I have tried Java before. It's not really what I would describe as fun. If you're serious when you say you don't like beurocracy, then stay away from Java.
Breton
+1  A: 

Are you looking for a tool with certain tasks in mind or for a puzzle to exercise your brain?

For the latter - how about F# - it is new, it has a smaller community around it, but the community is much more geeky - it is not diluted yet by lazy students trying to get somebody do their homework for them for free.

The language is a part of .NET and it is functional which would give you a very different perspective on programming.

Also because it is so new it still shaping up - it is fun to watch it grow

mfeingold
A: 

I would go with C# if I were you. Coming from some experience and knowledge of Java you have a basis in a similar language. To me C# is one of the most exciting things going on right now! The way Microsoft is moving with it is quick and it implements new features as rapidly as any language i have seen. I myself don't get to use it much as I am tied to mainly PHP web based programming but the way I see it is that with C# you can build anything almost.

MS has made it possible to build web applications using .net, if you prefer the MVC frameworks then they have the asp.net MVC framework that is actually not that bad and the new version promises to be even better! If you want to build a desktop application then you can use C# with WinForms (older) or with WPF to build awesome full blown applications, coming from having to of built desktop apps with MFC this is amazing to me. Then if you need to work with RIAs or something of the sort you have the option of Silverlight! I have been trying for almost a year to get back into working on Desktop applications and have been studying C# in my spare time. I think that it is pretty much a do-all language these days and as much as I have bad mouthed MS in the past they are doing some good things these days.

As mentioned above, some of the things like LINQ that have came out are also amazing no matter what you are doing with the language platform wise.

LokNessMobster
A: 

As someone who has spent a good deal of time in vbscript and vba I would go VB.net first. Out of the 3 I like VB.net the most because you got all sorts of nice tools (array.sort, hashtables, generics etc) and the syntax is close (yet different) to vba and vbscript. Once you get used to all the cool stuff in vb.net I would make the jump to C#. You won't have a sharp learing curve and will understand a good portion of .net

Anthony