RE: Python and VS.Net

Discussion in 'Python' started by Tim Peters, Jul 23, 2003.

  1. Tim Peters

    Tim Peters Guest

    [Ravi]
    > Has anyone tried building Python with VC++.NET? Does it work or fail
    > horribly like I think it will.


    Yes, several people have built it that way, and it works fine. You can get
    into obscure kinds of trouble if you try to mix code compiled with VC6 and
    VC7, though, because the C runtime systems are distinct (so, e.g.,
    malloc()ing memory in one runtime and free()ing it in another, or passing
    FILE* thingies across them, can lead to subtle-- or instantly
    catastrophic --problems).

    Note that all current Windows installers from PythonLabs install code
    compiled with VC6, and the same will be true for 2.3 final (due out next
    week). It also seems that 3rd-party extension modules compiled with VC7 are
    still hard to come by.

    > My boss seems to think it is good to have programs that are in managed
    > code because it is more 'portable'. Not that there's another complete
    > .NET runtime besides Microsoft's but he does not understand that.


    If you're younger than him, you can reasonably hope to outlive him <wink>.

    alas-it's-not-a-strategy-that-works-your-whole-career-ly y'rs - tim
     
    Tim Peters, Jul 23, 2003
    #1
    1. Advertising

  2. Tim Peters

    Duncan Booth Guest

    "Tim Peters" <> wrote in
    news::

    > [Ravi]
    >> Has anyone tried building Python with VC++.NET? Does it work or fail
    >> horribly like I think it will.

    >
    > Yes, several people have built it that way, and it works fine.

    <snip>
    >
    >> My boss seems to think it is good to have programs that are in
    >> managed code because it is more 'portable'. Not that there's another
    >> complete .NET runtime besides Microsoft's but he does not understand
    >> that.


    Note that Python build using VC++.Net won't be managed code. Its just a
    plain old unmanaged application built with the more recent compiler. Python
    build for the managed code environment would be a whole different kettle of
    fish.

    --
    Duncan Booth
    int month(char *p){return(124864/((p[0]+p[1]-p[2]&0x1f)+1)%12)["\5\x8\3"
    "\6\7\xb\1\x9\xa\2\0\4"];} // Who said my code was obscure?
     
    Duncan Booth, Jul 23, 2003
    #2
    1. Advertising

  3. Tim Peters

    Neil Hodgson Guest

    Matt Gerrans:

    > By the way, just because you compile something with the compiler that

    comes
    > with .NET doesn't mean it is managed code.


    You can produce managed code rather than x86 code by adding the /clr
    command line option. You may also have to fiddle some other options which
    are incompatible with /clr.

    Neil
     
    Neil Hodgson, Jul 23, 2003
    #3
  4. Tim Peters

    Trent Mick Guest

    > If your Python code could thereby access the .NET libraries, that would be
    > another story. That would be like Jython for .NET. I was hoping that was
    > what Active State's Python-in-VS.NET-thingy was, but alas it was too good to
    > be true: it is only (so far) a color-syntaxing Python editor that takes two
    > or three minutes to load up.


    You are mixing up two difference ideas. ActiveState's VisualPython is a
    plugin for VS.NET to provide all the IDE stuff (like editting,
    debugging, interactive shell, help, intellisense, etc) for Python
    programmers.

    The idea of integrating the Python language somehow into the .NET
    framework is independent of VS.NET-the-IDE, though I suppose one might
    like some level of connection between the two. Mark Hammond, before and
    while at ActiveState did do some exploratory work in this direction. But
    that is all it has come to so far: exploration. So your "too good to be
    true" does (currently) apply to a so called Python.NET. This code is
    currently in PyWin32's CVS tree one SourceForge:
    http://sf.net/projects/pywin32
    There is also the independent Kobra project that I have not looked at.

    Trent

    --
    Trent Mick
     
    Trent Mick, Jul 23, 2003
    #4
  5. Tim Peters

    Matt Gerrans Guest

    "Trent Mick" wrote:
    > > If your Python code could thereby access the .NET libraries, that would

    be
    > > another story. That would be like Jython for .NET. I was hoping that

    was
    > > what Active State's Python-in-VS.NET-thingy was, but alas it was too

    good to
    > > be true: it is only (so far) a color-syntaxing Python editor that takes

    two
    > > or three minutes to load up.

    >
    > You are mixing up two difference ideas. ActiveState's VisualPython is a
    > plugin for VS.NET to provide all the IDE stuff (like editting,
    > debugging, interactive shell, help, intellisense, etc) for Python
    > programmers.


    Uh, isn't that pretty much what I said? I don't think I mixed up the
    ideas. I only said that what ActiveState's Visual Python was and what I
    was originally hoping it would be were not the same.

    > The idea of integrating the Python language somehow into the .NET
    > framework is independent of VS.NET-the-IDE, though I suppose one might
    > like some level of connection between the two. Mark Hammond, before and
    > while at ActiveState did do some exploratory work in this direction. But
    > that is all it has come to so far: exploration. So your "too good to be
    > true" does (currently) apply to a so called Python.NET. This code is
    > currently in PyWin32's CVS tree one SourceForge:
    > http://sf.net/projects/pywin32
    > There is also the independent Kobra project that I have not looked at.


    Yes, I was aware of these, too. Despite Microsoft's claims about the .NET
    platform being language-independent, it doesn't seem to be a simple task to
    get Python going on it. So far, I think there are only VB.NET, C++, C#
    and J#. No Python#, Perl# or Ruby#, as of yet...
     
    Matt Gerrans, Jul 24, 2003
    #5
  6. Tim Peters

    Trent Mick Guest

    [Matt Gerrans wrote]
    > "Trent Mick" wrote:
    > > > If your Python code could thereby access the .NET libraries, that
    > > > would be another story. That would be like Jython for .NET. I
    > > > was hoping that was what Active State's Python-in-VS.NET-thingy
    > > > was, but alas it was too good to be true: it is only (so far) a
    > > > color-syntaxing Python editor that takes two or three minutes to
    > > > load up.

    > >
    > > You are mixing up two difference ideas. ActiveState's VisualPython is a
    > > plugin for VS.NET to provide all the IDE stuff (like editting,
    > > debugging, interactive shell, help, intellisense, etc) for Python
    > > programmers.

    >
    > Uh, isn't that pretty much what I said? I don't think I mixed up the
    > ideas. I only said that what ActiveState's Visual Python was and what I
    > was originally hoping it would be were not the same.


    Okay, fair enough. It was my mistake in reading your post, then.

    Apologies,
    Trent

    --
    Trent Mick
     
    Trent Mick, Jul 24, 2003
    #6
  7. Tim Peters

    HN Guest


    > Yes, I was aware of these, too. Despite Microsoft's claims about the

    ..NET
    > platform being language-independent, it doesn't seem to be a simple task

    to
    > get Python going on it. So far, I think there are only VB.NET, C++, C#
    > and J#. No Python#, Perl# or Ruby#, as of yet...


    This is probably because .NET is more suitable for statically typed
    languages than for dynamic ones. However, many statically-typed
    languages have .NET implementations. For example, Eiffel, which
    is a very good language, in many aspects far superior to VB, C++,
    C# and Java.
     
    HN, Jul 25, 2003
    #7
  8. Tim Peters

    Marc Wilson Guest

    In comp.lang.python, "HN" <> (HN) wrote in
    <>::

    |
    |> Yes, I was aware of these, too. Despite Microsoft's claims about the
    |.NET
    |> platform being language-independent, it doesn't seem to be a simple task
    |to
    |> get Python going on it. So far, I think there are only VB.NET, C++, C#
    |> and J#. No Python#, Perl# or Ruby#, as of yet...
    |
    |This is probably because .NET is more suitable for statically typed
    |languages than for dynamic ones. However, many statically-typed
    |languages have .NET implementations. For example, Eiffel, which
    |is a very good language, in many aspects far superior to VB, C++,
    |C# and Java.

    Borland are said to be working on Delphi.NET

    --
    Marc Wilson

    Cleopatra Consultants Limited - IT Consultants
    2 The Grange, Cricklade Street, Old Town, Swindon SN1 3HG
    Tel: (44/0) 70-500-15051 Fax: (44/0) 870 164-0054
    Mail: Web: http://www.cleopatra.co.uk
    _________________________________________________________________
    Try MailTraq at https://my.mailtraq.com/register.asp?code=cleopatra
     
    Marc Wilson, Jul 25, 2003
    #8
  9. Tim Peters

    Guest

    Hello,
    After going through various threads and messages, blogs and some local
    discussions, I would like to share my impression. However, I do not
    have any hands on experience on VS.NET.

    1) Both Java and .NET are going to stay and keep competing with each
    other for developers' mindshare.
    2) At present Python 2.3 for Windows is based on VC6. This cannot
    continue for ever. I consider absence of compatability of Python with
    VC7/VS.NET as a major threat for Python's future.
    3) Python and Java are already compatible with each other through
    Jython. Python is also extremely compatible with Windows (without
    ..NET) thorough Mark Hammond's excellent library win32all.
    4) Unfortunately, Microsoft's .NET does not appear to be friendly for
    dynamic languages like Python. .NET framework seems to favour
    statically typed languages. But I look forward to a solution.
    5) Even now, it is not easy to convince management about Python's
    adavantages in corporate world. It will be come more difficult, in
    future, if Python.NET is not available.
    6) Ruby users are also taking initiative to make Ruby work with .NET
    framework. Refer http://groups.google.com/groups?hl=...eekm=#link1

    I am interested to learn what core python team is thinking about
    compatability of Python 2.x, 3.x with Windows/VC7/VS.NET.

    Regards,
    Srijit


    "Matt Gerrans" <> wrote in message news:<bfo14i$ibh$>...
    > "Trent Mick" wrote:
    > > > If your Python code could thereby access the .NET libraries, that would

    > be
    > > > another story. That would be like Jython for .NET. I was hoping that

    > was
    > > > what Active State's Python-in-VS.NET-thingy was, but alas it was too

    > good to
    > > > be true: it is only (so far) a color-syntaxing Python editor that takes

    > two
    > > > or three minutes to load up.

    > >
    > > You are mixing up two difference ideas. ActiveState's VisualPython is a
    > > plugin for VS.NET to provide all the IDE stuff (like editting,
    > > debugging, interactive shell, help, intellisense, etc) for Python
    > > programmers.

    >
    > Uh, isn't that pretty much what I said? I don't think I mixed up the
    > ideas. I only said that what ActiveState's Visual Python was and what I
    > was originally hoping it would be were not the same.
    >
    > > The idea of integrating the Python language somehow into the .NET
    > > framework is independent of VS.NET-the-IDE, though I suppose one might
    > > like some level of connection between the two. Mark Hammond, before and
    > > while at ActiveState did do some exploratory work in this direction. But
    > > that is all it has come to so far: exploration. So your "too good to be
    > > true" does (currently) apply to a so called Python.NET. This code is
    > > currently in PyWin32's CVS tree one SourceForge:
    > > http://sf.net/projects/pywin32
    > > There is also the independent Kobra project that I have not looked at.

    >
    > Yes, I was aware of these, too. Despite Microsoft's claims about the .NET
    > platform being language-independent, it doesn't seem to be a simple task to
    > get Python going on it. So far, I think there are only VB.NET, C++, C#
    > and J#. No Python#, Perl# or Ruby#, as of yet...
     
    , Jul 28, 2003
    #9
  10. Tim Peters

    Glauco Guest

    Good work . i hope in a fast, simple, pythonic solution for WS in .NET ..

    I wrote a client library in python based on SOAPpy for use of WS in .NET .
    Is very difficult for me understand how many solution and how it works
    for this scope. The server i must use has 2 kind os Web Services ..

    I understood that in .NET you can create 2 kind of client.

    The SOAP-XML is something like an XML body into the SOAP message

    and the other is SOAP-RPC , i think this is a sort of a full enveloping
    of msg.


    I've builded some client whith SOAP-XML and it works whith a little of
    manipulation in some modules of package SOAPpy but now im'trying to
    "simply understand" how to use SOAP-RPC Web Service and how to modify my
    libs fot the scope.

    Someone use this 2 types of .NET Web Services with Python ?

    sorry for my engl.
    Glauco
     
    Glauco, Jul 28, 2003
    #10
  11. topposted:

    >1) Both Java and .NET are going to stay and keep competing with each
    >other for developers' mindshare.


    Yes, it's a problem, I would be better to have a general framework but
    initiatives by closed source developers can not provide such a thing.

    >2) At present Python 2.3 for Windows is based on VC6. This cannot
    >continue for ever. I consider absence of compatability of Python with
    >VC7/VS.NET as a major threat for Python's future.


    Windows is but a platform among many. IMO now would be the time to
    drop VC in favor of mingw or another free compiler with public
    sourcecode.

    <snip point three and four, no discussion here!>

    >5) Even now, it is not easy to convince management about Python's
    >adavantages in corporate world. It will be come more difficult, in
    >future, if Python.NET is not available.


    In Europe there is some initiative to use public source code in
    governmental settings. Since the world at large is drifting towards a
    knowledge based economy, selling computer programs based on
    proprietary sourcecode will not be a feasible alternative anymore some
    time in the future.

    As a result software industries will have to migrate into service
    based billing systems, but the bills will be paid by bills as I will
    try to explain below. A service industry can be more efficient the
    more it knows about its clients and the industry is already deploying
    initiatives towards this goal, see for example the microsoft passport
    initiative.

    However people seem to get more and more reluctant to provide
    information without receiving equal information "value" back because
    it's slowly being realized that information is the new money and
    industries that do not follow the new information exchange "laws of
    nature" will be left behind.

    In stark contrast to the old value system that was money based, in the
    knowledge based value exchange system one will receive more that will
    spend more. The reason for this is that by freely providing
    information one enables other information sources to return more
    specialized highly valuable information in return, however this value
    is also highly personalized. What you want to know is not necessarily
    what I want to know. For the moment it is still impossible to make a
    computer that thinks better than a human so until that happens humans
    will be the producers of the new kind of currency.

    Taking these two peculiarities -increasing value return by giving away
    value, and highly personalized value production and consuming- it is
    clear that only systems that do not cache information or impede
    information flow will be the survivors of the new market.

    So if one must worry, worry about google compliance instead of about
    microsoft compliance ;-) Of course google itself will survive only if
    it's not going to make the mistake of trying to sell its service for
    money or passwords\email adresses\logins\cookies. Google will get
    "rich" just by getting to know what you want to know and by freely
    providing this knowledge to those who want to know *that* and thereby
    getting to know what *those* want to know, enabling them to freely
    provide even more information ... etc. A key concept here is not
    forcing the user to provide information, but providing information
    based on information request.

    >6) Ruby users are also taking initiative to make Ruby work with .NET
    >framework. Refer http://groups.google.com/groups?hl=...eekm=#link1
    >
    >I am interested to learn what core python team is thinking about
    >compatability of Python 2.x, 3.x with Windows/VC7/VS.NET.


    Me too, but this question should probably be asked in the Python
    developers mailing list, which according to my analysis above should
    be turned into a newsgroup as soon as possible. Also they'd better
    answer that they're going to migrate to mingw-compiling soon :)

    Personally I'm still using windows products (w2000 and w98) but I'm
    leaning more and more to using Cygwin for Python related tasks, and
    unless microsoft is about to make a 180 degree turn in its philosophy
    about releasing sourcecode (it has happened before with some company,
    see for example netscape) my next OS will probably be Linux or some
    other open source thingy.

    Anton.
     
    Anton Vredegoor, Jul 28, 2003
    #11
  12. Tim Peters

    Dave Kuhlman Guest

    Re: Portability of Python (VS.Net, Java etc.)

    wrote:

    [snip]
    > I was just wondering that if Python has to be compatible to MS.NET
    > does it mean
    > that
    >
    > 1) Python should be re-written C# like Jython has been written in
    > Java ?
    >
    > But my bigger concern is about the term "Portability". More than
    > OS, it looks like frameworks/VMs (.NET and Java ) are getting more
    > dominant today.
    >
    > So for middleware like Python (though Python script runs on its
    > own VM) should be compatible with both the frameworks in order to
    > remain practically portable.
    >


    Of the two frameworks mentioned (MS .Net and Java) we already have
    Python in Java. So, before doing Python in/on MS .Net it would be
    worthwhile to ask whether Python in Java (Jython) has succeeded.
    In order to answer that, we need to specify what we mean by success.

    My belief is that Jython has succeeded in producing usable code.

    But, is it used? And, does it result in Python being more popular?

    Are there projects and project groups out there that had a
    requirement to work with Java but chose to do their work in Jython
    rather than Java. And, of those that did so, were these projects
    successful. Was using Jython a net gain over using Java itself?
    Or, eventually, did they re-write all the Python code in Java? Or,
    did they wish they had? Or, did they leave behind code that was a
    burden to Java developers that came after them? Or, ...

    I'd choose Python. But, I'm a Python zealot.

    Ask yourself this question: Would a consultant or contractor who
    had no ideological commitment to Python (which I do) choose to work
    in Jython over Java, and why?

    And, if you cannot come up with positive answers to the above
    questions (positive for Python/Jython), then why should anyone do
    Python in MS .Net?

    One additional consideration is that a consultant/contractor can
    bill more hours if Java is used than they can if Python/Jython is
    used, because development in Java is slower than development in
    Python. So, why would the consultant/contractor choose Python over
    Java?

    I'd like to hear that Jython has been enormously successful at
    making in-roads into the Java world, but I'm skeptical.

    Oh, and on comp.lang.perl, do you think they worry that Perl will
    die if it does not play well in the Java and in the MS .Net worlds?

    - Dave

    --
    Dave Kuhlman
    http://www.rexx.com/~dkuhlman
     
    Dave Kuhlman, Jul 29, 2003
    #12
  13. Tim Peters

    Matt Gerrans Guest

    Re: Portability of Python (VS.Net, Java etc.)

    "Dave Kuhlman" wrote:
    > Of the two frameworks mentioned (MS .Net and Java) we already have
    > Python in Java. So, before doing Python in/on MS .Net it would be
    > worthwhile to ask whether Python in Java (Jython) has succeeded.


    That's overly simplistic, I think. Whether or not Jython was "a success"
    on the JVM has little to do with whether it is worthwhile on the CLR. In
    fact, when Guido first began Python proper, I don't think he was too
    concerned with whether it would be "a success" -- I think he just wanted to
    create a useful tool.

    > Ask yourself this question: Would a consultant or contractor who
    > had no ideological commitment to Python (which I do) choose to work
    > in Jython over Java, and why?


    Yes, there are many *pragmatic* reasons to use Python, ideology aside. At
    the very least, Jython is a great way to experiment with Java APIs and learn
    them quickly.

    > One additional consideration is that a consultant/contractor can
    > bill more hours if Java is used than they can if Python/Jython is
    > used, because development in Java is slower than development in
    > Python. So, why would the consultant/contractor choose Python over
    > Java?


    This is a silly stereotype. Any consultant/contractor who looks at things
    this way is a charlatan and should be booted (to the head, no less) at the
    earliest opportunity. I have only met one consultant who created such bad
    work that it seemed like he was playing the "job security" game -- and after
    spending much time trying to disentangle his code, I concluded it was simply
    incompetence, not intentional malevolence.

    Having been a consultant/contractor for nearly a decade now, I can tell you
    that I am always happy to maximize my productivity. There is never any
    shortage of work to do, even when you get a project done in half the time
    with better than expected quality.

    I am working on a .Net project now and if I could do some or all of the code
    in Python, I would. Instead, I'm using C#, which I like more than Java,
    but less than Python. There are already a wealth of good libraries
    available in .Net that would make the Python-on-.Net combination very
    effective and useful.

    - Matt
     
    Matt Gerrans, Jul 31, 2003
    #13
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Andy Elmhorst
    Replies:
    2
    Views:
    531
    Bassel Tabbara [MSFT]
    Jul 8, 2003
  2. Veeresh
    Replies:
    3
    Views:
    456
    Veeresh
    Jul 10, 2004
  3. =?Utf-8?B?TWFya3VzIE1jR2Vl?=

    Migrating ASP.NET projects between VS.NET 2002 and VS.NET 2003

    =?Utf-8?B?TWFya3VzIE1jR2Vl?=, Dec 2, 2004, in forum: ASP .Net
    Replies:
    2
    Views:
    353
    =?Utf-8?B?TWFya3VzIE1jR2Vl?=
    Dec 6, 2004
  4. Paul Moore
    Replies:
    0
    Views:
    652
    Paul Moore
    Mar 1, 2008
  5. Martin v. Löwis
    Replies:
    0
    Views:
    690
    Martin v. Löwis
    Mar 1, 2008
Loading...

Share This Page