Python vs C#

來源:互聯網
上載者:User
> I've used Python for most of my university projects so far (at least
> where I could choose what to use), and I've had professors look at me
> asking why I chose "an outsider" like Python over languages (considered
> to be "stronger") such as C++ and SML (whatever...).

> They only asked until they had a look at the code I had produced.

Likewise. And I actually succeeded in getting several people
interested. I love Python. But I love C# just as much and it is hard
to say which one I love better.

No too long ago, I had to create a tool for an information retrieval
project. I needed RegEx, GUI, Containers and Database features. And I
needed to make this fast. First I looked at Delphi. It had by far the
BEST GUI framework. Nothing else even comes close for GUI RAD. In most
cases, I just need to go a web site like www.torry.net and simply pick
from a choice of open source components. BUT it did not have RegEx.
Sure there was a lib or 2 out there but nothing standard. Same story
with containers.

Then I started with Python. Python had everything I needed. But my app
was GUI rich and it was taking too long to layout the interface. Even
with Boa Contructor, it still was taking a while. I had already
finished writing most of the classes for the app.

I switched to C#. Surprise. It took me hardly any time to port the
Python code to it. For everything I needed from Python, I had direct
analogues in C# (at least in the context of my app). And I finally
wrapped everything up quite quickly. I enjoyed C# as much I enjoyed
Python. Of course, the user was quite dismayed when I told him about
the 28 MB of dependencies. But the software did exactly what it was
expected to.

As for static typing, that never slows me down. What makes C++ slower
to program in not declaring types. It's the memory details to watch,
complex developmental cycles (not just compile time), lack of quick
libraries (batteries included) that we get with languages like Perl
and Python etc.

What enhanced my C# experience has a lot to do with mature tools than
with the language per se. The VS2003 IDE is far more complete than
PythonWin and Boa. Code Completion, Help integration for example is
far more mature and often means I rarely have to refer to the docs.

The standard library is fantastic as well. MS finally made a
developmental tool that is hard to point fingers at.

Personally I would like to see Python in a .NET environment. Not some
silly IDE add-in like Visual Python. One comment in this thread was
that Python's dynamic typing makes it difficult to port it to .NET.
But Perl is dynamically typed too. And ActiveState has a feasible .NET
language with Perl. What gives for Python? I don't know much about the
language internals but I believe true integration of Python into VS
will do it a world of good.

Adding onto "what C# can do that Python can't?", I am now developing
an app for the PocketPC with the Compact Framework in C#. The app is
every bit as professional as an experienced programmer might have
developed with eVC. And I was able to do it in a fraction of time of
it might have taken with C++ and MFC and this is my FIRST PocketPC
app. Python cannot do that at this point of time.

Similarly ASP.NET like development experience is hard to get from
Python at this point. Yes! There are several webapp frameworks for
Python and then there is Zope. But ASP.NET is something else and suits
certain kind of web apps quite well (Though Zope is way to go for
CMS). I am sure Python community will catch up eventually to this
paradigm but for now it doesn't.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.