Slashdot Log In
Where's the "IronPerl" Project?
Posted by
kdawson
on Wed Oct 08, 2008 02:05 AM
from the more-than-one-way dept.
from the more-than-one-way dept.
pondlife writes "A friend asked me today about using some Microsoft server components from Perl. Over the years he's built up a large collection of Perl/COM code using Win32::OLE and he had planned on doing the same thing here. The big problem is that as with many current MS APIs, they're available for .NET only because COM is effectively deprecated at this point. I did some Googling, expecting to find quickly the Perl equivalent of IronPython or IronRuby. But to my surprise I found almost nothing. ActiveState has PerlNET, but there's almost no information about it, and the mailing list 'activity' suggests it's dead or dying anyway. So, what are Perl/Windows shops doing now that more and more Microsoft components are .NET? Are people moving to other languages for Windows administration? Are they writing wrappers using COM interop? Or have I completely missed something out there that solves this problem?"
Related Stories
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
What? (Score:5, Funny)
Perl/Windows shops? WTF?
That's like buying an extremely overpowered, difficult to setup and impossible to maintain turbo for your Yugo.
Re:What? (Score:5, Informative)
Microsoft was shipping Perl interpreters for Windows at least as far back as the Windows NT 4 Resource Kits (like 1998?). There is a long history of Perl on Windows.
Parent
Masochism is rife within IT (Score:5, Funny)
Some people aren't happy until they have the worst of all worlds.
"Because I can".
Parent
Re: (Score:3, Interesting)
Actually, I remember reading somewhere that Microsoft uses build system written in Perl to compile Windows. Ironic, isn't it?
Re:What? (Score:5, Funny)
Don't cast perl(s) before swine(dows).
Parent
A bit O/T, but (Score:5, Funny)
I _love_ perl. It's so simple, anyone can use it. In fact, the other day I found my 1½ yYO in front of the computer, and she had written a fully working email reader in perl. Truely amazing.
Re:A bit O/T, but (Score:5, Funny)
Unfortunately, this being Perl, she had been trying to write a word processor :)
Parent
Re:A bit O/T, but (Score:5, Funny)
Not to be competitive or anything, but the email reader my cat wrote in perl this morning included a Bayesian spam filter. Did your child think of including that, huh?
Parent
Re:A bit O/T, but (Score:4, Funny)
To be honest, no. Seriously, though, she's not that smart - I think she was actually trying to write a FPS game.
Parent
Re:A bit O/T, but (Score:5, Funny)
I wish she'd writtedn DNF, at least wed be out of a long wait.
Parent
Re:A bit O/T, but (Score:5, Funny)
I'm pretty sure that qualifies as an UUOC.
http://en.wikipedia.org/wiki/Cat_(Unix)#Useless_use_of_cat [wikipedia.org]
Parent
Re: (Score:3, Funny)
I _love_ perl. It's so simple, anyone can use it. In fact, the other day I found my 1½ yYO in front of the computer, and she had written a fully working email reader in perl. Truely amazing.
Smalltalk would have been much more suited to the job.
Don't if this would help but.... (Score:5, Informative)
Re:Don't if this would help but.... (Score:5, Funny)
Parent
Perl in decline, at least here (Score:5, Insightful)
Based on what I gather in my country the use of Perl is actually in decline, while Python's is growing. Then there's Ruby that's also popular (not sure if it proves to be stable as Python's growth though).
This does confirm, at least for me, why IronPython and IronRuby happened, but why IronPerl is nowhere in sight. Of course, YMMV in your country, but I think it is a global trend to be honest.
Re:Perl in decline, at least here (Score:5, Insightful)
I think it's more that IronPython is basically a vanity/research project, akin to JPython/Jython a few years ago; very few people use it in practice, since the standard Python interpreter runs just fine on Windows and lets you avoid significant compatibility problems (and use all the packages that the rest of the Python world uses, seamlessly).
These "other language on my interpreter" projects _seem_ really cool, but in practice it's usually simpler and faster (both development and performance wise) to use the languages in their own interpreters and use some IPC/RPC/web services/etc to communicate with .NET (or Java, or whatever) rather than trying to shoehorn your language onto the CLI or JVM.
Parent
Re:Perl in decline, at least here (Score:4, Informative)
Yeah Python developers tend to like Boo, which is very Python-inspired.
The CIL part of the CLI is stack-based, and is more of a "theoretically generic" intermediary language, and works for almost any purpose.
The CTS (Common Type System) does have some limits (no multiple inheritance except multiple interface inheritance). Your language implementation only has to play nice with the CTS if you want it to interoperate with other languages on the CLI. (Normally you can write an app in a whole bunch of languages and the metadata is exposed to the others - so you might choose to use C# for your core services, C++/CLI for interop work, and something like Python/Boo for your business layer).
I think the Eiffel implementation ditches the CTS, or extends it. That has its ups and downsides (mainly down imo).
Parent
Re:Perl in decline, at least here (Score:5, Insightful)
The biggest reason is that Python is a fairly small language with a well-defined spec. It already had at least two independent implementations (in C and Java) and between them they had ironed out areas of ambiguity in the language. If you write a Python program you are programming for the defined language and usually not for the quirks of any one implementation.
Perl 5, on the other hand, is very much defined by its single implementation, full of odd quirks and things that don't really make any sense but have to be kept for compatibility. To implement a fully compatible Perl 5 you would essentially need to reproduce the guts of the existing perl source code, which is why nobody has really bothered.
Parent
Re:Perl in decline, at least here (Score:4, Informative)
*sigh*, Python is a lot of things, but it is NOT well defined. Maybe Python is OK compared to the other open source source scripting languages like Perl and Ruby. C is a well defined language (except for the bits that are explicitly left undefined), Pascal is really well defined, and Lua is pretty damn good.
I expect that Perl is left out because a lot of its strengths are in Unix scripting, database libraries, bioinformatics applications and other goodies, which rely on C code and a Unix platform. Ruby Gems and *cough* easy_install just aren't the treasure troves of CPAN, and CPAN can't be easily ported to .net.
Parent
Re: (Score:3, Funny)
Based on what I gather in my country the use of Perl is actually in decline, while Python's is growing.
It should be noted here that Asmodai [wikipedia.org] is in fact a demon, and therefore lives in hell. So keep that in mind before you adjust your strategies based on what languages he is using...
Perl6 (Score:4, Informative)
A main reason is that Perl 6, which has been in development for nearly as long as .NET, was supposed to be a VM itself. In effect, it was a competitor to .NET.
Way back when IronPython and IronRuby were starting, Perl 6 looked like it was Nearly Here, so no one thought porting Perl 5 to run on .NET was worth it. Since Perl 6 still hasn't materialized, guess it was a bad choice...
Re:Perl6 is the problem (Score:5, Interesting)
Unfortunately, (as perl fan), Perl6 is the problem. All the bright young things went into the death march that is Perl6 and CPAN stopped getting useful additions. Two burnout cycles later, we still don't have Perl6. Or modern, complete XML/Xpath support. Or a DBI::CSV which can do joins. Or any other number of actually useful code bits.
I'm now tossing up whether to learn Ruby or Python.
Parent
Re:Perl6 is the problem (Score:5, Interesting)
As a former heavy user of Perl (and now a light user), let me encourage you that you're unlikely to go wrong either way. Both are popular, well-supported dynamic languages with bright futures.
Python is less Perlish than Ruby in syntax, but in the end I found that rather charming and made it my "new" dynamic language. I have no regrets.
Besides, if I want to shred and rebuild a text file in 40 characters of line noise (please understand that I mean that fondly - I like Perl's conciseness), then I've still got Perl 5. Python does many other things well, so I consider them both useful tools to know.
So quit tossing up (ahem), pick one, and get on with it! :-)
Parent
Demographics (Score:5, Insightful)
I guess it's because most of the perl guys were Unix guys?
At any rate perl doesn't really fit into the .NET "OOP" paradigm. It has objects, but with such flexibility that every time I wanted to create an object in perl I have to look up the bless() function. Most people use it to write small, fast scripts (Activeperl on Windows takes care of that) and there aren't many medium to large scale projects (which .NET arguably does well) that use perl.
Re:Demographics (Score:5, Insightful)
Why does everyone keep repeating this? Just because you don't do it doesn't mean nobody does. There are tons of large projects in perl. You're using one right now.
Parent
Windows Administration language (Score:5, Insightful)
Search harder (Score:5, Informative)
Perl is an antique language. You should look at a modern scripting language. Powershell is much more powerful as it pipes .net objects instead of text.
Try asking "PerlMonks" (Score:5, Informative)
PerlMonks [perlmonks.org] is the right place to ask this question, IMO. You'll be posing the question to a lot of very experienced Perl users who might have similar experiences to yours, or good advice on what to do next. The PM community is friendly and very helpful as well.
Don't fight it - Perl is here to stay! (Score:4, Insightful)
1. I already know it. I learned it before Ruby was "cool".
2. It's already installed on every Linux and BSD machine. Yes, that means I can run my script on your brand new Ubuntu desktop, or your 1998 BSD server. And it'll work.
3. Great Regex support (am not saying your language de-jour doesn't, just that perl does)
4. CPAN is one of the most extensive software libraries known to mankind.
5. It really doesn't matter if you use it or not - perl is here for the long haul. Too many linux utilities depend on it. My linux box doesn't have ruby or python installed, and I haven't had any problems. Try deleting perl from yours!
So, if you are like me, you already know Perl. Maybe you don't use windows at home, but you have to use it at work. I suggest you download Strawberry Perl [strawberryperl.com] (or go all-out with cygwin [cygwin.com]).
Unfortunately, there does not seem to be great support for perl with
But maybe, just maybe, someone will come along one day... and viola! Perl.NET!
Until that day comes, I will continue to use perl anyway, and all of you Haters out there can go $@_{s/;//g}!
Re:Don't fight it - Perl is here to stay! (Score:5, Interesting)
My linux box doesn't have ruby or python installed, and I haven't had any problems. Try deleting perl from yours!
What distribution are you running? Every distribution I've used had Python installed by default for years (and would break terribly if you tried to remove it).
Parent
Re:Don't fight it - Perl is here to stay! (Score:4, Insightful)
Unfortunately, bare-bones Debian lacks Python, although hopefully recent popularity-contest results will make it more likely to be part of a default install.
Parent
Re:Don't fight it - Perl is here to stay! (Score:5, Interesting)
Oh and lets not forget how "cool" it'd be if the runtime of every pet scripting language was embedded directly in common web browsers. Yes Cletus, that sure would be 'great'!
My word. You've just described Silverlight.
Parent
Re:Don't fight it - Perl is here to stay! (Score:5, Insightful)
So your arguments for why Perl is great to use are:
1) I know it.
2) I have it.
3) (irrelevant)
4) YAY CPAN
5) Not a reason to use it?
So, uh, yeah, CPAN is awesome, but "I know it and it's installed." aren't really strong advocacy arguments.
No offense, but this isn't exactly Insightful, particularly given that (aside from good old CPAN) there's really nothing in there that isn't true for Python on almost all systems people will encounter these days.
Parent
So don't change. (Score:5, Insightful)
Why would you want to rewrite to use .NET, I mean c'mon Perl programmers are known for their objectivity and pragmatism. Rewrite in .NET before you *have* to, forget it!
There's 2 things to consider before you go changing your code:
1. COM may be 'oh, that old thing we no longer talk about' to Microsoft, but it isn't going away anytime soon, no matter what their marketing department tells you. There's a fair bit of code written that uses it.
2. One of those codebases that is heavily reliant on COM (and Win32) is this .NET thing, a lot of the class library is a wrapper around the old libraries. So even if you did rewrite your code, all you'd be doing is calling your old libraries through a intermediate layer!
Sure MS doesn't want to do IronPerl, I think that's because python and Ruby are 'cool' languages, and MS is trying to be like someone's Dad, 'getting hip with the kids'. I doubt it'll ever create an IronPerl simply because there's no mileage in it for them to entice the Perl developers over to Windows unlike the Python and Ruby folks that they're scared of losing to other platforms.
apparently (Score:4, Insightful)
Well, apparently, nobody in the Perl community cared enough about it to create it. Do you care enough to start such a project.
I suspect most people probably thought it was easier to switch to a different language that did support the environment they needed. I know I did.
Been in similar shoes (Score:5, Interesting)
I have been in similar shoes some time ago.
I wouldn't elaborate on the all boring details, but just shortly summarize my experience.
If you can Perl, then you better off porting your stuff to Linux. Perl on Windows sounds cool and ActiveState does excellent job. But Perl would always remain underdog, restrained by the fact that its foreign platform - platform where VB rules.
I know I sound impractical, but after two years trying to make some stuff fly reliably on Windows with CygWin and ActiveState, I simply given up. I given up on Windows mostly because I found that all stuff I need, on Linux is very similar and (most importantly) there are no all those stupid CygWin and OLE/ActiveX annoyances and periodic breakages. For my application, near doubled performances was only an extra bonus.
If you plan to remain on Windows, you have to accept and start doing it in VB or C# or whatever is language du jour in Redmond.
If you depend on Perl, then thinking in direction of *nix platform is sound choice. (Or even some VMware or VBox setup with Linux guest.)
P.S. My work was related to processing of .xls files with huge amount of statistical data and making some charts for them. On Linux that was solved beautifully with (1) telling people to export info as CSV (extra bonus: smaller files) and (2) gnuplot output charts to PDF. Frankly, in the end it worked magnitudes better than the setup with ActiveState Perl/Excel/WinWord/etc on Windows.
Re:Been in similar shoes (Score:5, Informative)
You probably should have had a look at Strawberry Perl [strawberryperl.com].
Most of the Perl technocrati abandoned ActivePerl for it over the last year, because all the CPAN modules Just Work.
(Full Disclosure: I made Strawberry) :)
Parent
perl missed several boats, sadly (Score:5, Insightful)
Opinionated post follows, feel free to ignore or disagree....
Perl is the original language that taught a whole generation of programmers that you don't have to write 1000s of lines to do a simple thing. I love its expressiveness, its design philosophy (There's More Than One Way To Do It) and its linguistic roots. Despite being known for write-only shit, actually writing clean, maintainable code in perl is a pure pleasure. It just gives you the extra bit of latitude in your coding, that what you write can express not just what you want done, but a little extra bit of how you think of it... by using "unless" instead of "if" at times, putting the conditionals after the statement at others, you can actually make the code read like the main points are main points, adn the accessory checks are accessory. I love that flexibility.
For years, perl was the secret productivity tool of many. What others would spend weeks writing in C++ or java whatever, a perl coder would prototype in a day or two, and often the result was good enough to be declared final. And with the amazing collaboration experiment called CPAN, there was a good chance you would find a module to do the heavly lifting for you, and the two days could be shortened to a couple hours.
Sadly, the perl development community missed not one, but two boats.
First, it missed the second wave of web programming. Perl was virtually synonymous with CGI programming, but then the web world moved on to embedding code inside the HTML, which is a rather crappy combination but is easy to start with. So the perl guys produce mod_perl and about a thousand templating kits, which all together made mod_perl a powerful, scalable, flexible web platform that was at the same time confusing, hard to learn, and unfriendly towards shared hosts. And then PHP came to fulfil that need, with their bastardized watered down clone of the language, and basically stole the show.
Second, the perl community in all their wisdom, back in 2000, decided that the whole language needed to be redesigned from scratch, and built on a new generic virtual machine for dynamic languages, which would run not only perl6 but also python, tcl, logo, and who knows what else. They embarked on a prolonged process of design by committee, which 8 years later has just managed to produce a variety of incomplete specifications, and two incomplete prototypes of the language interpreter, with no completion date nor any backwards compatibility to be seen. In the meantime, the whole .NET framework has been created and gone through several iterations, Ruby has risen from obscurity to fame, etc. For all we know, perl6 may still one day reach completion, and be a useful language. The design specs are way cool, and the people implementing it sound like they are having fun.
So what happens with perl and .NET? Well, not much. Apparently ActiveState have at some point developped a bridge of some kind, but I can't find it in CPAN. There's Inline::Java, but no Inline::CSharp. Maybe no-one cares enough. It's true that the target demographics for perl and .NET are quite separate, but that should not be a reason for the language that pioneered interfacing with everything on earth.
That's simply not possible as is. (Score:5, Insightful)
Perl 6 is among other things an answer to this limitation, because it's thoroughly spec'd in the "synopses", and is actually currently implemented in two different ways (Parrot VM written in C, and Pugs written in Haskell). So it's perfectly possible to make IronPerl6, but no IronPerl.
As the NRA says.... (Score:5, Funny)
From my cold, dead hands!
Parent
Re:Python is available (Score:5, Insightful)
The hell they do.
Parent
Re:Python is available (Score:4, Informative)
No, a Perl lover will jump in and say Perl is FAST to write. Its so easy to do so many things. I'm not talking large systems here, I'm talking things you need to do day to day.
I've yet to find another language where I can process a text file 100 different ways with just a few lines. I really don't give a damn if anyone else can read or maintain my short scripts. There for me.
Parent
Re: (Score:3, Insightful)
No... people are just moving away from Windows for ANY administration, or anything of real value.
The figures on this simply don't support that claim. Your anecdotal evidence of two places you worked it meaningless.
If anything I'd say this is because many people consider Perl's time to have passed and no longer see a reason to use it in any significant project. Perl is a typical example of a jack of all trades, master of none. These days with so many well-designed languages to choose from it's a great deal easier and more productive to learn several languages that each do one paradigm well and use them
Re:No one made it cause no one cares (Score:5, Informative)
The figures on this simply don't support that claim. Your anecdotal evidence of two places you worked it meaningless.
If anything I'd say this is because many people consider Perl's time to have passed and no longer see a reason to use it in any significant project.
Funny.. I'd like to see the figures behind your claims that "many people consider Perl's time to have passed".
A quote from CIO.com story entitled "PHP, JavaScript, Ruby, Perl, Python, and Tcl Today: The State of the Scripting Universe" (8/29/08)
"Of all the scripting languages, Perl offers the biggest installed base of applications, of code, of integrated systems, of skilled programmers. It has the lowest defect rate of any open-source software product. It is ported to essentially every hardware architecture and operating systems, from embedded control systems to mainframes. It is optimized for speed, for memory footprint, for programmer productivity. It has readily-accessible libraries for all types of programming tasks: Web application development, systems and network integration and management, end-user application development, middleware programming, REST and service-oriented architecture programming. Perl is ideal for the organization that takes charge of its own IT future."
Other interesting stats and info throughout the story..
full article [cio.com]
Parent
Re:No one made it cause no one cares (Score:5, Informative)
To be fair, that quote is by Richard Dice, the president of the Perl Foundation, so he might be a little biased. :-)
On the other hand, Perl still gets many more job postings on dice.com than any other interpreted language, including PHP: http://www.presicient.com/langjobs.html [presicient.com]
Parent
Re:No one made it cause no one cares (Score:4, Funny)
And the best part....
Almost all MCSE holders are afraid of it so they cant hire low wage cert's to maintain and change it.
I love perl in the windows world it allows us with skills to have yet another noose around the neck of management.
VB.NET was our first noose for management. I was so glad when Microsoft made VB hard. Almost all the part time VB programmers in the office instantly were ineffective as they could not wrap their heads around OO programming.
Problem is, there are still millions of VB6 applications in use today in corporations all over america... and one day micrsoft will do something to break every one of them.
That makes me smile.
Parent
Re:No one made it cause no one cares (Score:5, Insightful)
and then join them all together ... using perl.
Parent
join them all together ... using perl (Score:5, Funny)
There, I fixed that for you.
Parent
Re: (Score:3, Insightful)
I wouldn't say everyone is moving away from Windows, my last job was very Microsoft centered. Windows workstations everywhere, Exchange server, IIS servers, Microsoft SQL, Active Directory, all that bullshit.
But, I do think anyone using Windows is very unlikely to use Perl; they just seem diametrically opposed. One being used for Unix administration since large systems were in their infancy, and the other one being a the-suits-picked-it decision. At least in my (very biased) opinion.
What color are the power LEDs on those servers? (Score:5, Funny)
Your theory appears to be that Windows is a good web platform, because on netcraft, 2 out of the top 50 sites by uptime are running Windows. Wouldn't the goodness of a web platform depend on a whole bunch of things, only one of which would be uptime? And uptime would be less important than things like availability and ease of installing software. And most importantly, whether the machine has a blue or green LED for the power light. Obviously machines with blue power LEDs suck, but machines with green LEDs rock! And Windows web servers always have blue LEDs for power lights! Windows sucks and always will. They don't even know how to write drivers for green LEDs.
Parent