views:

250

answers:

6

I have a friend who I am trying to teach how to program. He comes from a very basic PHP background, and for some reason is ANTI C#, I guess because some of his PHP circles condemn anything that comes from Microsoft.

Anyways - I've told him its possible to use either Ruby or Python with the VS2008 IDE, because I've read somewhere that this is possible.

But I was wondering. Is it really that practical, can you do EVERYTHING with Python in VS2008 that you can do with C# or VB.net.

I guess without starting a debate... I want to know if you're a developer using VS IDE with a language other than VB.net or C#, then please leave an answer with your experience.

If you are (like me) either a VB.net or C# developer, please don't post speculative or subjective answers. This is a serious question, and I don't want it being closed as subjective. ...

Thank you very much.

update

So far we've established that IronPython is the right tool for the job.

Now how practical is it really?

Mono for example runs C# code in Linux, but... ever tried to use it? Not practical at all, lots of code refactoring needs to take place, no support for .net v3.5, etc...

+1  A: 

I don't know why you would want to - perhaps something like IronPython Studio would be a happy medium. But as I said I don't know why you would want to use Visual Studio for Python development when there are much better options available.

Always choose the right tool for the right job - just because you can drive a nail with the butt-end of your cordless drill doesn't mean that you should. Visual Studio was not designed for Python development and as such will not be a perfect environment for developing in it. Please use the list I have linked to choose a more appropriate editor from that list.

As a side note, I am wondering why your PHP friend refuses to use C# (a free, industry standardized language) but is okay using Visual Studio (an expensive, closed-source integrated development environment).

Andrew Hare
I thnk the question is - MS Kinda Claim that the VS IDE can be uncoupled from C# and VB.net to be used with any language. How practical then is it to use Ruby or Python for the same kind of development we do in VB.net or C#
JL
It can be. There is a robust plugin architecture that can be used to develop just about anything you can imagine with it. Nut those plug ins take a lot of work. Work that hasn't been done yet to the quality level found in other ides.
CaptnCraig
+1  A: 

This has been discussed before in this thread. I personally prefer eclipse and pyDev.

CaptnCraig
read that thread thanks, but its not the same discussion.
JL
+8  A: 

If you want to use Python together with the .NET Common Language Runtime, then you want one of:

  • Python.NET (extension to vanilla Python that adds .NET support)
  • IronPython (re-implementation of Python as a .NET language)
  • Boo (Python-like language that compiles down to C#-equivalent MSIL code)

Using Python in Visual Studio without using the CLR seems like a bit of a waste to me. Eclipse with PyDev would be a much better choice.

Daniel Pryden
How Practical is it then to use IronPhython. Does it support every single language feature you have in C# or asp.net v 3.5, etc?
JL
What do you mean by "every single language feature"? IronPython supports using all the classes in the .NET standard library from Python code. It doesn't magically make Python understand C#-specific syntax like LINQ or anything like that.
Daniel Pryden
But bottomline, when given a task to build a program (not a hello world sample) , but an enterprise solution. Are you saying that you would be equally capable of deliverything this solution using either c# or Python.net (so to speak) ? Or would it be a case of C# you know forsure would work, but the Python stuff is experimental, and you would have issues with it?
JL
I have never done an enterprise-level application in IronPython. If I was to do so, I would probably lean toward using Boo instead, even though it is admittedly a bit experimental. You can also just do everything in Python and avoid using .NET or Visual Studio at all -- I've had good success with that as well (especially if you're building a network app or anything that you want to run on Linux). I would suggest you open another question explaining what your requirements are for this project and asking what language people would recommend.
Daniel Pryden
+2  A: 

I find it odd that your friend is against C# but is ok with Visual Studio. There is, after all, an open source development environment for .NET called SharpDevelop. The C# language is a standard. .NET is free (as in beer) and there is an open source implementation of that platform called Mono. The only "un-free" thing is Visual Studio (though there are "Express" versions which are free as in beer).

Scott Whitlock
I am trying to convince him that not everything from Microsoft is "evil".
JL
+1  A: 

Firstly, there seems to be a question as to whether python (or various implementations) are as 'powerful' as C#. I'm not quite sure what to take powerful to mean, but in my experience of both languages it will be somewhat easier and faster to write a given piece of code in python than in C#. C# is faster than cpython (although if speed is desired, the psyco python module is well worth a look).

Also I would object to your dismissal of Mono. Mono is great on Linux if you write an application for it from scratch. It is not really meant to be a compatibility layer between Windows and Linux (see Wine!), and if you treat it as such you will only be disappointed.

It just seems to me that you are taking the wrong approach. If you want to convince him that not everything Microsoft is evil, and he is adamant about not learning C#, get him to learn Python (or Ruby, or LUA or whatever) until he is competent, and then introduce him to C# and get him to make his own judgement - I'm fairly in favour of open source, and am far from a rabid Microsoft supporter, but I tried C#, and found I quite liked it.

I think that getting him to use python and visual studio in a suboptimal way will turn him against both of them - far from your desired goal!

TheBoff
A: 

Go here for a discussion on the Visual Studio IronPython IDEs.