Is anyone using Python for .NET?

  • Thread starter Brandon J. Van Every
  • Start date
B

Brandon J. Van Every

Is anyone using Python for .NET? I mean Brian's version at Zope, which
simply accesses .NET in a one-way fashion from Python.
http://www.zope.org/Members/Brian/PythonNet
Not the experimental ActiveState stuff, which tried to compile IL and
apparently didn't succeed.

Two motives for the question:

1) whether to use it for my C++ / C# / .NET / Python (?) game project. It's
a prototype, so in this context a "mostly working beta" is acceptable. I
won't need "ready for prime time" for another year yet.

2) whether it's viable at this time to consult Python + .NET interop as a
business model to various Suits. I'm gathering that due to lack of
resources on Brian's webpage, and lack of responses on their mailing list,
that it isn't. Suits need to perceive support, after all.

So I'm wondering who's kicking Python for .NET's tires, as that would be
part of the agenda of getting Python development to be .NET friendly.

Why have that agenda? Well, Microsoft does generally succeed at
out-marketing everybody, so if you're with them rather than against them,
you have a much better chance of having your technology widely adopted.
Also, people actually like .NET language interop for its technical merits
alone. It's a rare case where Microsoft is actually leading the industry
rather than cloning and conquering. The clone is now Mono, in the Unix
world. I hope that eventually, at least the IL components of .NET are not a
Microsoft thing per se. Programmers need easy language interop solutions.

--
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA

Brandon's Law (after Godwin's Law):
"As a Usenet discussion grows longer, the probability of
a person being called a troll approaches one RAPIDLY."
 
G

Guyon Morée

What I like to do is use the .NET framework as the GUI-engine for my
(windows only) applications.

Is this already possible?
 
P

Paul Boddie

Brandon J. Van Every said:
It's a rare case where Microsoft is actually leading the industry
rather than cloning and conquering. The clone is now Mono, in the Unix
world.

From "Contracts and Interoperability - A Conversation with Anders
Hejlsberg, Part V" [1]:

"Anders Hejlsberg, a distinguished engineer at Microsoft,
led the team that designed the C# (pronounced C Sharp)
programming language... In 1996, after 13 years with
Borland, Hejlsberg joined Microsoft, where he initially
worked as an architect of Visual J++..."

I'm no big fan of Sun or Java, but that's quite some industry
leadership you're showing us, Brandon. ;-)

Paul

[1] http://www.artima.com/intv/interop.html
 
F

Fredrik Lundh

Paul said:
From "Contracts and Interoperability - A Conversation with Anders
Hejlsberg, Part V" [1]:

"Anders Hejlsberg, a distinguished engineer at Microsoft,
led the team that designed the C# (pronounced C Sharp)
programming language... In 1996, after 13 years with
Borland, Hejlsberg joined Microsoft, where he initially
worked as an architect of Visual J++..."

I'm no big fan of Sun or Java, but that's quite some industry
leadership you're showing us, Brandon. ;-)

eh? are you saying that all Hejlsberg knows about programming language
design is stuff he picked up while working on a Java implementation?

</F>
 
R

Richard Brodie

eh? are you saying that all Hejlsberg knows about programming language
design is stuff he picked up while working on a Java implementation?

Surely not. There is little doubt that C# was in part a reaction to the
failure of J++ to be a serious competitor to Java. Whether you regard
it as taking a lead, or following Sun, is largely a matter of interpretation.
That is independent of Hejlsberg's ability as a language designer.

That said, Brandon's claim was fairly contentious and likely to get
someone to bite. It's a well worn debate though, and c.l.py probably
isn't the best place to renew it.
 
P

Paul Boddie

Richard Brodie said:
Surely not. There is little doubt that C# was in part a reaction to the
failure of J++ to be a serious competitor to Java.

Indeed. It would take quite an active imagination and a lot of history
rewriting to conclude otherwise. As for Mr Hejlsberg's credentials, I
personally don't regard him as being part of the pantheon of great
language designers - perhaps that's because Object Pascal really isn't
my thing, I suppose.
Whether you regard it as taking a lead, or following Sun, is largely a
matter of interpretation. That is independent of Hejlsberg's ability as a
language designer.

Yes, although my point could presumably be undermined by pointing out
that C# and the .NET runtime are two separate things. Whether they are
completely separate, or whether there is undue influence on the latter
by the former, is an issue that the recently announced IronPython will
presumably investigate.

Paul
 
F

Fredrik Lundh

Richard said:
Surely not. There is little doubt that C# was in part a reaction to the
failure of J++ to be a serious competitor to Java.

"in part", sure. just don't replace it with "only".

</F>
 
B

Brandon J. Van Every

Paul Boddie said:
"Brandon J. Van Every" <[email protected]> wrote in
message news: said:
It's a rare case where Microsoft is actually leading the industry
rather than cloning and conquering. The clone is now Mono, in the Unix
world.

From "Contracts and Interoperability - A Conversation with Anders
Hejlsberg, Part V" [1]:

"Anders Hejlsberg, a distinguished engineer at Microsoft,
led the team that designed the C# (pronounced C Sharp)
programming language... In 1996, after 13 years with
Borland, Hejlsberg joined Microsoft, where he initially
worked as an architect of Visual J++..."

I'm no big fan of Sun or Java, but that's quite some industry
leadership you're showing us, Brandon. ;-)

*I'm* showing you? Since when was I Microsoft? I guess your point is
whether you think Java or .NET is responsible for the interop principles of
..NET. I'd say the latter, since otherwise, it would be Java and we'd all be
doing our language interop in Java.

--
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA

Brandon's Law (after Godwin's Law):
"As a Usenet discussion grows longer, the probability of
a person being called a troll approaches one RAPIDLY."
 
B

Brandon J. Van Every

Richard Brodie said:
That said, Brandon's claim was fairly contentious and likely to get
someone to bite. It's a well worn debate though, and c.l.py probably
isn't the best place to renew it.

It was a comment made in passing, and it takes quite a Trollhunter to make
it otherwise. My motives for posting were quite explicit, and I could care
less whether anyone wants to call .NET "a clone" or not. You can call it a
sheep or a dog or a rock for all I care. You can debate it until the cows
come home for all I care, I just want to know if people are using Python for
..NET.

Again in passing: the concept of .NET was of course based on Java and a
number of other higher level languages. Every book on the subject I've read
says so (which by now is a small handful), and the goal (aside from
Microsoft dominating the world as usual) was to improve upon the basic
premise of a virtual machine. They have been successful and the truth
stands: the Unix world is cloning .NET because it is a superior technology
for a certain class of language interop problem. It remains to be seen
whether the *Windows Forms* part of .NET will be cloned successfully, or is
desired by the Unix crowd. I'm referring mainly to the IL.

Why bother to make another comment in passing? Because it's the truth, and
I find it annoying to be labeled as trying to get people to "bite" on some
advocacy debate when it's not my motive. If you want to debate the
relevance or morality of it all, go talk to the Mono people. Right now, I
don't care. I'm going to wait 4 years and then run .NET on Unix, picking up
a residual and unimportant market of Linux gamers for very little effort.
Sooner if things develop quicker.

--
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA

Brandon's Law (after Godwin's Law):
"As a Usenet discussion grows longer, the probability of
a person being called a troll approaches one RAPIDLY."
 
B

Brandon J. Van Every

Guyon Morée said:
What I like to do is use the .NET framework as the GUI-engine for my
(windows only) applications.

Is this already possible?

Apparently to at least some trivial degree, judging by the 3 trivial demos
in the Python for .NET kit. It's unproven in the "big apps" degree, you'd
have to be an early adopter to do it. The developer says it'll work for
some things and not for others, for instance "complex COM interactions"
would make him scared. Check out the mailing list archive.
http://www.zope.org/Members/Brian/PythonNet/
 
E

Erik Max Francis

Brandon J. Van Every said:
It was a comment made in passing, and it takes quite a Trollhunter to
make
it otherwise.

Outstanding! You're so paranoid about being called a troll you whine
about being called one even when you weren't!
 
P

Paul Boddie

Brandon J. Van Every said:
*I'm* showing you? Since when was I Microsoft?

Rephrasing:

1. That's quite some industry leadership you're revealing to us.
2. That's quite some industry leadership you're referring us to.
3. That's quite some industry leadership to which you're
referring us.

Suggestion #3 is for the "to boldly go" crowd. On the other hand, if
Sherlock Holmes was in any sense accurate, perhaps you are Microsoft.
;-)
I guess your point is whether you think Java or .NET is responsible for the
interop principles of .NET.

Not at all. My point was that .NET apparently got cooked up when Sun
rained on Microsoft's J++ parade. A lot of old timers made comparable
remarks when Java emerged back in the mid-nineties because the
portable virtual machine thing has a long history and has produced a
lot of compelling competitors to Java, although the Java security
model does seem like a differentiator to me.
I'd say the latter, since otherwise, it would be Java and we'd all be
doing our language interop in Java.

Well, I get a fair amount of mileage out of Jython, Apache Axis (SOAP)
and so on, but I guess that this isn't your point. I think it is
widely accepted that Java was never really made for in-process
interfacing with other languages, or at least that JNI (or whatever
they call it now) is "nasty". From what I see, Microsoft may have
tried a bit harder on that front, and I can imagine that the Mono
people have pushed it even further to leverage various components
implemented in C/C++.

Perhaps we will be doing all our development in .NET-related
technologies in five years time. I just hope that if this is the case,
Microsoft don't do a SCO and hit everyone up with $799 "licence"
demands.

Paul
 
B

Brandon J. Van Every

Paul Boddie said:
Not at all. My point was that .NET apparently got cooked up when Sun
rained on Microsoft's J++ parade. A lot of old timers made comparable
remarks when Java emerged back in the mid-nineties because the
portable virtual machine thing has a long history and has produced a
lot of compelling competitors to Java, although the Java security
model does seem like a differentiator to me.

Ok, to understand history (lest we be doomed to repeat it) why did Java
succeed as an industry dominant language where others failed? Was it simple
things like level of support?

Incidentally, I just did a whirlwind tour of all the various languages
recognizably available on Usenet: Haskell, OCaml, Mercury, Bigloo, Erlang,
Common Lisp, Eiffel, quite a few really. Although I'm satisfied with Python
from a high level applications glueing standpoint, I'm not satisfied from a
low-level performance language interop standpoint. So I wanted to see if
there was something that was both high level and generated much faster code
for 2D image processing type problems. What I decided was, Python has too
much community, library, and industry support behind it, and a lot of these
other languages carry major design risks, i.e. going from imperative to
functional programming. So as of today, Python is winning in practice
despite whatever might be better in theory.

See any parallels with Java or C# history debates?
Well, I get a fair amount of mileage out of Jython, Apache Axis (SOAP)
and so on, but I guess that this isn't your point.

It could be for your problem domain, but it isn't for mine.
and I can imagine that the Mono
people have pushed it even further to leverage various components
implemented in C/C++.

Perhaps we will be doing all our development in .NET-related
technologies in five years time. I just hope that if this is the case,
Microsoft don't do a SCO and hit everyone up with $799 "licence"
demands.

I would hope that there's a replacement strategy for the interop concept.
Aren't the FSF guys doing something like that?

--
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA

20% of the world is real.
80% is gobbledygook we make up inside our own heads.
 
S

Simon B

I know everyone has probably heard what I'm about to say a couple of
hundred times, but because it's true, it should be stated.
It was a comment made in passing, and it takes quite a Trollhunter to make
it otherwise. My motives for posting were quite explicit, and I could care
less whether anyone wants to call .NET "a clone" or not. You can call it a
sheep or a dog or a rock for all I care. You can debate it until the cows
come home for all I care, I just want to know if people are using Python for
.NET.
>
Again in passing: the concept of .NET was of course based on Java and a
number of other higher level languages. Every book on the subject I've read
says so (which by now is a small handful), and the goal (aside from
Microsoft dominating the world as usual) was to improve upon the basic
premise of a virtual machine. They have been successful and the truth
stands: the Unix world is cloning .NET because it is a superior technology
for a certain class of language interop problem. It remains to be seen
whether the *Windows Forms* part of .NET will be cloned successfully, or is
desired by the Unix crowd. I'm referring mainly to the IL.

..NET is a platform, not a language. What you probably meant to say was:
"C# is of course based on Java and a number of other higher level
langauges". Completely true... Just as Java is based on Smalltalk and
C++ along with a number of other higher level langauges.

..NET the platform is, to programmers, a common set of types and
libraries across multiple languages, whereas the JVM was sold along with
the language Java, which in my opinion the only difference in
marketing... Sun associated the JVM with Java so that to use the JVM
they expected you to program in Java. Weird, because they could just
have easily sold it as a platform on which other languages ran, and then
we'd all be impressed about the vision of having multiple languages use
common types... But it's happening anyway
(http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.html). There are far
more languages running on the JVM than languages running on .NET.

UNIX is cloning .NET not because it is superior technology (although it
migth be, but that is arguable) but because it creates a situation where
UNIX can run all of the software being churned out by .NET programmers.
The barrier to moving platforms becomes Null and Void... Very JVM-esque eh?

My opinion on why MS did take the .NET path is based on the premise that
they are only really interested in Operating Systems, which isn't too
bigger a stretch. They want to sell operating systems, and part of the
reason corporations don't upgrade to the lastest version until they
absolutely have to (and even then, they often don't!) is because they
have invested big money in software that will require considerable
testing and/or modification and/or risk if the underlying OS changes.

..NET solves that problem for Microsoft.
 
M

Mark Hammond

Simon said:
I know everyone has probably heard what I'm about to say a couple of
hundred times, but because it's true, it should be stated. ...


.NET is a platform, not a language. What you probably meant to say was:
"C# is of course based on Java and a number of other higher level
langauges".

No, I believe his original statement is correct. Java is both a
language and a virtual machine specification. .NET was based on the
idea of the JVM, but they decided to make it language agnostic (as
opposed to Sun, who made absolutely no concessions to
languages-other-than-Java running on their VM. The world could have
been quite a bit different if it did)

.NET the platform is, to programmers, a common set of types and
libraries across multiple languages, whereas the JVM was sold along with
the language Java, which in my opinion the only difference in
marketing... Sun associated the JVM with Java so that to use the JVM
they expected you to program in Java. Weird, because they could just
have easily sold it as a platform on which other languages ran, and then
we'd all be impressed about the vision of having multiple languages use
common types... But it's happening anyway
(http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.html). There are far
more languages running on the JVM than languages running on .NET.

This is true, but if you speak to the language implementors, you will
find they prefer .NET over the JVM - mainly as Microsoft got alot of
them into a room at once, and asked them what they truly needed, then
delivered. Many problems that do not exist for Java, C#, C++ or VB, but
do for more niche languages have solutions inside the VM, explicitly to
help solve these problems that noone inside MS ever sees.

Dynamic languages are still missing some support in V1, but MS promised,
and is delivering, enhancements that better support dynamic languages,
even though it is not a direct issue for these MS languages.
UNIX is cloning .NET not because it is superior technology (although it
migth be, but that is arguable) but because it creates a situation where
UNIX can run all of the software being churned out by .NET programmers.

I don't agree, but there is no way either of us can be proved right
here. However, I seriously doubt people are putting all this work into
..NET with the sole intention of running code churned out by below
average programmers working for some huge insurance company - and that
is exactly where .NET is "hot" at the moment. Marketting rules here -
"no brain for programming - try .NET" :) The truly smart people,
including the people working on alternate implementations, understand
the bigger picture.

My opinion on why MS did take the .NET path is based on the premise that
they are only really interested in Operating Systems, which isn't too
bigger a stretch. They want to sell operating systems, and part of the
reason corporations don't upgrade to the lastest version until they
absolutely have to (and even then, they often don't!) is because they
have invested big money in software that will require considerable
testing and/or modification and/or risk if the underlying OS changes.

.NET solves that problem for Microsoft.

I don't understand what you are saying here. That MS only developed
..NET to force people to upgrade their OS? I thought .NET was available
for existing OS's, for free?

MS have invested *hugely* in this - if every legitimate user of an MS OS
upgraded once, I seriously doubt they would recover their investment. I
believe MS are looking a little more forward than that.

Underestimate MS at your own risk. It is one thing to not like MS, and
possibly a reasonable positition to take. However, underestimating them
is for fools.

Mark.
 
P

Paul Boddie

Brandon J. Van Every said:
What I decided was, Python has too much community, library, and industry
support behind it, and a lot of these other languages carry major design
risks, i.e. going from imperative to functional programming. So as of
today, Python is winning in practice despite whatever might be better in
theory.

Yes, despite the theoretical advantages of many languages, Python has
a lot of working code available for it, some well-established
approaches for certain kinds of activities, and quite a bit of
guidance and support around those activities. Consequently, upon
discovering that more legwork is necessary to get up to speed in those
other languages in order to implement a given solution, one can be
rather dissuaded from pursuing those other languages further.
See any parallels with Java or C# history debates?

Really, one can always ask, "Is this language good enough?" I've seen
a number of cases where implementation languages being used have been
less than appropriate for the applications concerned and where a
different language could have been used, not just for reasons of
elegance or performance, but mainly for access to much better
application frameworks. For example, why use C++ for Internet server
applications when Java (or Python) has a lot more framework support in
that area?

There was some mention of "Worse is Better" on Ian Bicking's weblog
which convinced me that one can almost base one's career on such
debates, however. ;-)
It could be for your problem domain, but it isn't for mine.

I suppose that's a good argument for improved across-the-board
interoperability. Shouldn't one be able to write Internet server
applications in C++ whilst using various Java-based Apache frameworks?
I would hope that there's a replacement strategy for the interop concept.
Aren't the FSF guys doing something like that?

DotGNU Portable.NET perhaps:

http://www.dotgnu.org/pnet.html

Paul
 
B

Brandon J. Van Every

Simon B said:
.NET is a platform, not a language. What you probably meant to say was:
"C# is of course based on Java and a number of other higher level
langauges". Completely true... Just as Java is based on Smalltalk and
C++ along with a number of other higher level langauges.

I do tend to mishmash terms in a way that's annoying to a lot of "harder
core" programmers than myself.
(http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.html). There are far
more languages running on the JVM than languages running on .NET.

"More," yes, but at a glance most of those look like academic tweaky
languages. So to an industrialist, don't count. I'll save the exercise of
determining which ones do count for some time when I'm more awake.
My opinion on why MS did take the .NET path is based on the premise that
they are only really interested in Operating Systems, which isn't too
bigger a stretch. They want to sell operating systems, and part of the
reason corporations don't upgrade to the lastest version until they
absolutely have to (and even then, they often don't!) is because they
have invested big money in software that will require considerable
testing and/or modification and/or risk if the underlying OS changes.

.NET solves that problem for Microsoft.

Does it? What if in so doing, only .NET has value, and OSes have no value!
W2K with .NET, XP with .NET, makes no difference. Stuff still runs. But
they do get to sell Visual Studio, and they can patent screw Linux.

--
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA

20% of the world is real.
80% is gobbledygook we make up inside our own heads.
 
S

Simon B

Brandon said:
Does it? What if in so doing, only .NET has value, and OSes have no value!
W2K with .NET, XP with .NET, makes no difference. Stuff still runs. But
they do get to sell Visual Studio, and they can patent screw Linux.

There be the risk... And it is a big gamble unless, as you point out,
they somehow screw the non-MS implementation users of .NET with patent
calls.

Also, they may feel that .NET + MS infrastructure (COM+, MSSQL, MSMQ)
might create enough of a platform tie-in to protect them from the vast
majority of migration paths to other OSes.

They might even trully believe their own TCO marketing... :)

..NET has seems to me like the most dangerous thing MS has ever done...
but considering Emulation of the Win32API was just a matter of time
(Wine, etc.) perhaps the laywers really do have everything in hand with
..NET?
 
S

Simon B

Mark said:
This is true, but if you speak to the language implementors, you will
find they prefer .NET over the JVM - mainly as Microsoft got alot of
them into a room at once, and asked them what they truly needed, then
delivered. Many problems that do not exist for Java, C#, C++ or VB, but
do for more niche languages have solutions inside the VM, explicitly to
help solve these problems that noone inside MS ever sees.

Dynamic languages are still missing some support in V1, but MS promised,
and is delivering, enhancements that better support dynamic languages,
even though it is not a direct issue for these MS languages.

I've heard it said that .NET is designed around having multiple
languages utilise it as their VM, whearease the JVM was designed to have
java utilise it as it's VM... Certainly a better vision, although not
something that is uncorrectable with the JVM. Sun could turn around
tomorrow and begin changing the JVM spec to make it easier to support
other languages, implement a new JVM, and we'd all be none the wiser
(aside from the Language implementors :)
I don't agree, but there is no way either of us can be proved right
here. However, I seriously doubt people are putting all this work into
.NET with the sole intention of running code churned out by below
average programmers working for some huge insurance company - and that
is exactly where .NET is "hot" at the moment. Marketting rules here -
"no brain for programming - try .NET" :) The truly smart people,
including the people working on alternate implementations, understand
the bigger picture.

But if Insurance Company has spent millions deveoping code in .NET, and
tomorrow we said they could run that code on platform B, with no
changes, then it would be a massive boon for platform B. It removes a
cost of migration to alternative platforms.

I'm not going to second guess the objectives for those re-implementing
..NET (albiet, i did in the above paragraph!), but from the perspective
of someone who likes the resulting flexibility of moving to platform B,
I think it's an amazing ramification.
I don't understand what you are saying here. That MS only developed
.NET to force people to upgrade their OS? I thought .NET was available
for existing OS's, for free?

MS have invested *hugely* in this - if every legitimate user of an MS OS
upgraded once, I seriously doubt they would recover their investment. I
believe MS are looking a little more forward than that.

Underestimate MS at your own risk. It is one thing to not like MS, and
possibly a reasonable positition to take. However, underestimating them
is for fools.

Mark.

My point was that .NET was developed so that business CAN upgrade their
OS. MS only have to support the .NET API, which is not tied to their OS.
There are thousands of system implementations that can't move from NT
because of the amount of testing and QA (and code changes) that is
required to get onto W2k, or Winxp, or Win2k3.

As you pointed out... they're looking forward, and cleverly see .NET
can't solve this immediate problem, but it can solve tomorrows problem.
Any new development on NT should be started in .NET so that these
migration issues don't exist for the new software... It's a perfect way
of ceasing a businesses investment in yesterdays technology, and
beginning their investment in todays technology, with a clear upgrade
path to todays operating system... (and tomorrows operating system for
that matter!).

I would never underestimate MS... which is why I like them so very much
and will continue to like and admire them until they cease to hold a
grasp on a large volume of the businesses that I work for :)

Simon
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top