Linked by Thom Holwerda on Sun 25th Sep 2005 12:05 UTC, submitted by Luis Gonzalez
General Development Shed Skin is an experimental Python-to-C++ compiler. It can convert many Python programs into optimized C++ code, without any user intervention such as adding type declarations. Its main purpose is to optimize algorithmic-like Python code, by applying advanced global type inference techniques.
Thread beginning with comment 36041
To view parent comment, click here.
To read all comments associated with this story, please click here.

Member since:

Parrot isnít that hot anymore. Most people in other language cams got their own thing, and lots of Perl people are falling out with the way things look for them (Perl 5 is dead, Perl 6 not in sight, and Parrot appears to be to bloated since it tries to produce a VM for all, but nobody is interested).
The >>one VM for all<< idea isnít all that popular. Just look at how much people bitch about .NET. But anyway this was about Python not about the large amount of other languages out there.

Reply Parent Score: 0

the_trapper Member since:
2005-07-07

I think the cooling off of excitement over Parrot, Perl 6, and all of that is just due to people being sick of waiting for them to become production ready. People need solutions now, and Parrot just isn't here yet.

The "one VM for all" idea is extremely popular, look at all of the language implementations that run on .NET and the Java VM (including Iron Python and Jython respectively). If you don't believe me, google for it. Before you dismiss Jython, it is extremely popular, and stands a good chance of becoming part of a future Java release.

The people bitching about .NET are mostly bitching because it is a Microsoft technology. Everyone I know who has actually sat down and tried to write something in C# has been thoroughly impressed, it is an incredibly fluid and intuitive programming language. I am by no means a Microsoft fanboy, but I will admit that Microsoft hit the nail on the head with C# and .NET. It is a drastic improvement over traditional Windows development tools. Another group of people who bitch about .NET are the VisualBasic developers, but that's just because MS made some major and not backwards compatible changes to their pet language, to shoehorn it into the .NET runtime.

Another argument for "one VM for all" comes on the server side of things. Say you need to run a Python app, a Perl app, a PHP app, and a Java app all on the same server. Your memory usage is going to go through the roof, as are the number of processes you need to run. (Yes I know PHP, Perl, and Python can be run via Apache modules, but you still get my point.) Another problem is trying to get all of these disparate server processes to talk to each other in a clean manner. Not to mention that from a network administrator's perspective, configuring, securing, and maintaining such a setup is nothing short of frustrating.

Reply Parent Score: 1

Member since:

The idea of >>one VM for all<< as I called it is enticing for lots of people. Mono went for it and it might not be that bad for them since there are a few languages being used on it, but still mostly only MS languages and then still only mostly C#. On Mono you will see the same thing C# is the dominant language there. But of course you CAN run other languages on .NET and Mono. Same thing goes for Java, you have scheme for it, python for it, ruby for it and groovy and what not. I think all of them are damn good alternatives to Java and I know at least ruby and python additionally to java so I could go all out and program in ruby or python on Java. But I donít. Other programs for the JVM are, hold your seats, programmed in Java. As a fact the JavaVM is shockingly almost purely used by programs made in Java.

And there you have it. An one for all VM will be ruled by its dominant language and so lots of the supposed benefits just donít exist. Why is this so? Well for one Jython != Python. I would have to port any program from Python to Jython do to stuff like API soandso not being implemented or being implemented different, my program making assumptions that are true under Python but not under Jython and last but not least, different GUI toolkits. As a >>one for all VM<< Java has failed but thatís not so bad since it never really was intended for that no mater how many other languages target the JavaVM. .NET and Mono have a different problem; the VM expects languages to fallow certain rules of the VM. This pisses lots of people of since their language of choice will need adapting to the VM and some of the APIs go byby since you are now coding .NET. So .NET and Mono fail because the languages need to adapt to the VM and programmers arenít to happy about their languages loosing their individual flavor to the degree that .NET requires.

But fortunately Parrot is different; it tries to provide an environment where the VM has everything that Perl5, Perl6, TCL, Scheme, Basic, Ruby and Python could possible need. Yes it is truly the >>one VM for all<< just that Ruby is doing their own VM and donít give a shit. Python is more interested stuff like PyPy and nobody cares much about TCL or Basic anymore. Well altheas Perl5 can interact with Perl6 and new programming languages like Amber right?

Multi language VMs are hyped up a lot thanks mostly to .NET, but they donít deliver what they promise. And with Parrot it lead to a VM that is more complicated then it needs be to accommodate other languages that are just not interested in running on Parrot.


But this is about Python not Parrot or .NET.

Reply Parent Score: 0

somebody Member since:
2005-07-07

The people bitching about .NET are mostly bitching because it is a Microsoft technology.

Not exactly, even though I'm one of them I don't care if this MS tech or Sun tech or whoever tech

Everyone I know who has actually sat down and tried to write something in C# has been thoroughly impressed, it is an incredibly fluid and intuitive programming language.

Same thoughts exactly. That's why tried harder than other languages I tried

I am by no means a Microsoft fanboy, but I will admit that Microsoft hit the nail on the head with C# and .NET. It is a drastic improvement over traditional Windows development tools.

No arguing here, in fact I agree 100%

Another group of people who bitch about .NET are the VisualBasic developers, but that's just because MS made some major and not backwards compatible changes to their pet language, to shoehorn it into the .NET runtime.

Not me.

Another argument for "one VM for all" comes on the server side of things. Say you need to run a Python app, a Perl app, a PHP app, and a Java app all on the same server. Your memory usage is going to go through the roof, as are the number of processes you need to run. (Yes I know PHP, Perl, and Python can be run via Apache modules, but you still get my point.) Another problem is trying to get all of these disparate server processes to talk to each other in a clean manner. Not to mention that from a network administrator's perspective, configuring, securing, and maintaining such a setup is nothing short of frustrating.

Ok, here we are. I don't care how many VM or whatever. What turned me off .NET is sloppy memory handling. I wouldn't even care if I would write desktop software, but since I'm writing server services that run 365/24 and so far I must say I had no problems in maintaing this result. Even though C# and .NET are beatifull and everything else would lead only to benefit me I had to drop the whole thing. On heavy load every service just consumed all RAM and SWAP and only after that started dribling between working and cleaning (restarting whole thing was the only option). As long as you write application that has idle time everything is perfect, even application that has heavy load job like renderer for example causes no problems (all these applications don't have long run and most of the software time is idle time waiting on user input), there's always enough time for garbage collector to do its work and so it waits with this task until too late.

The same as test of speed between C and .NET or Java (where magically java and .net won). Again, always they use allocating and freeing memory in their examples for the sole reason that freeing never happens in Java or .NET during timing (and it is time consuming), while C has a downside of actualy executing that. Same test with a lot bigger number shows the actual result. Just make in the same test a little change in for loop to go to 2^32 and speed test will become more accurate without doing any favours to any language

Maybe it is just me, but I asked a lot of people and no answer and solution. The only answer I got was to drop .NET and went back to the languages where I can control everything. Now, anyways it is too late until my next project.

Final thoughts: If I would be writing user apps I would probably (or more like 100%) move on .NET and Mono and I even suggest to people that do write them to look at Mono and MS.NET, but since this is not the case... well, you can't expect from me to not criticize something (that would be both java and .NET) that doesn't allow me what other languages allow without any hassle.

Reply Parent Score: 1