tags:

views:

661

answers:

7

Currently I am developing in the .Net environment using C# but I want to know whether it is worth learning python. I'm thinking of learning the Django framework. What is better?

+1  A: 

Depends on what you will use it for. If you're making enterprise Windows forms applications, I don't think switching to Python would be a good idea.

Also, it is possible to still use Python on the .NET CLR with IronPython.

Jon Limjap
+1  A: 

Both are useful for different purposes. C# is a pretty good all-rounder, python's dynamic nature makes it more suitable for RAD experiences such as site building.

I don't think your career will suffer if you were competant in both. To get going with Python consider an IDE with Python support such as Eclipse+PyDev or ActiveIDE's Komodo. (I found a subscription to Safari Bookshelf online really invaluable too!)

stephbu
+1  A: 

What's better is inherently subjective. If you like Python's syntax - learn it. It will probably be harder to find a Python job, C# and .NET in general seem to be more popular, but this may change.

I also think it's worth to know at least one scripting language, even if your main job doesn't require it. Python is not a bad candidate.

Alexander Kojevnikov
+4  A: 

Personally I feel you can write good/bad code in any language. I also firmly believe in learning a new language every so often for the sake of learning itself. On those grounds I say if you have the time just go for it. Python is a great language that many others are inspired from.

Whether one framework or language is better or not depends on your definition of better. Do you want more work as a programmer? Do you want to develop business apps quickly, or do you want to compute 3D matrix transformations?

Once you've answered those questions you might find yourself taking a completely different direction, say F# if you had particular interest in the financial or scientific sector.

Jim Burger
+2  A: 

It can't hurt to learn Python, especially considering some of the heavy weights (Google) are really getting behind it.

As for the actual use, it all depends on the application. Use the best tool for the job.

Geoff
+8  A: 

Yes, you should learn Python, but it has nothing to do with Python or C# being better. It is really about making you a better programmer.

Learning Python will give you a whole new perspective on programmer and how problems can be solved. It's like lifting weights, except you're building up the developer muscles in your mind.

For example, if you've only ever programmed using a statically typed language then it is hard to imagine any other way. Learning Python will teach you that there is an alternative in the form of dynamic typing.

For a summary of Pythons benefits: http://www.cmswire.com/cms/enterprise-20/2007s-programming-language-of-the-year-is-002221.php

Ged Byrne
Damn, yuo stole my answer :-)
e-satis
In particular, Python is a dynamically typed language, with a lot of really interesting features that make python programs very compact. Learning both a strongly typed, and a dynamically typed language is a good thing for every programmer to do. If you want another suggestion besides Python (hey I love Python!), it would be Ruby.
Warren P
+1  A: 

Never stop learning!

That said, how can you compare the two? How good is Python support in .Net? Is there C# support in Google App Engine? It really depends what your target system is. Therefore, the more languages you have the better equipped you will be to tackle different challenges.

paul