Microsoft-ActiveState Conspiracy Theories
After just reading your reply to that brain-dead hate mail in the last issue, I decided I don't have to read the rest of the magazine.
That response alone was worth the price of the subscription.
Thanks, and keep up the good work. I do read the rest of the mag, really.
--Jared Still
I wish to object to the dismissive and adolescent reply to one of your (equally adolescent) subscribers who indicated their displeasure of the recent Microsoft/Activestate deal. You do your readers a disservice when you fail to analyze these events in depth. I for one was looking forward to your analysis of this development. For me the following questions need to be answered before a judgment should be made one way or another. I am sure many of your readers have other questions as well.
--Tim Uckun
Fair enough. We match the adolescence of our replies to the adolescence of the question, and your question is on an even keel. You have a lot of questions, so I've added my responses after each.
1) Why should we trust Microsoft? Why should we trust ActiveState? Bill Gates claims that Microsoft has only the user's best interest in mind. I'm not surprised that he said that. I am surprised he was able to say it with a straight face. Botulinum toxin injections to the mouth earlier that day, I suppose. Microsoft has only Microsoft's best interests in mind -after all, that's what shareholders demand. Do those interests coincide or conflict with Perl's interests? Good question; see below. Why should you trust ActiveState? That's easy: they'll have trouble doing business if they annoy the rest of the Perl community. It's definitely in their interest to play fair. Let's be vigilant, but give them the benefit of the doubt.
2) Does Microsoft have a history of acting ethically toward companies it partners with? Sorry, I can't stop laughing long enough to answer.
3) What does Microsoft stand to gain if Perl gets better? What do they stand to gain if it goes away? I forwarded some of your questions to Dick Hardt, founder of ActiveState. His response to this was, "More people using computers? Less people using computers? If Perl gets better on Windows, more people using Windows?" Makes sense to me. If Perl were the product of a competing company, like Java is for Sun, Microsoft's intentions would be more suspect.
4) Is it possible for Perl to get better without the aid of Microsoft? Certainly. Perl was doing just fine before Microsoft funded ActiveState, and in fact before ActiveState was ActiveWare and before ActiveWare was Hip Communications. But investment in Perl is good for Perl, as long as there aren't any strings attached. Dick says there were no strings attached.
5) What does Microsoft stand to lose if Perl gets better? What do they stand to lose if it goes away? According to Dick, "Microsoft sells apps and platforms. Languages and tools play a supporting role." Do I buy this? Yes. Microsoft is more interested in branching out into new media markets where there's a lot of money to be made, and I don't think anyone will ever make Microsoftian buckets of cash selling or supporting a computer language. 800-pound gorillas don't pay attention to camels; the forest is too far from the desert.
6) Does Perl compete with VB, Jscript, VBA, VBscript, Microsoft Scripting Host? Remember that we already have PerlScript, which runs under Microsoft Scripting Host. Your real question is whether Microsoft has a conflict of interest: why should they help Perl if they benefit more from a competing technology? I think the answer is that this is all nickel and dime stuff to Microsoft. Hey, VBScript competes with JScript too; Microsoft has to deal with its own technologies competing against one another all the time. As an analogy, consider database engines. They compete for market share, since people typically use only one. Microsoft favoring Jscript over Perl would be like DBI favoring Oracle over Informix. It might be that individual DBI developers prefer one database over others, but the whole premise of DBI is that there will always be a variety to choose from, and as long as that diversity exists, it makes sense to support it.
7) Is Microsoft going to be shipping Perl with every copy of Windows? Dick writes, "Not that I know of. I don't work for Microsoft. But I really, really, really doubt it." Microsoft has included Perl in the Windows NT Resource Kit since version 3.1.
8) What do we do if they ship an "extended"and incompatible version of Perl with every copy of Windows? Cry foul. But I wonder who would create that version -not ActiveState, since they've pledged compatibility. Here's how Dick described the events leading up to the investment: "Microsoft included the MKS port of Perl in their Services for Unix product. Their customers said that they wanted ActivePerl. MS approached us and wanted to license ActivePerl. We told them that if they wanted a better interop story, that there were a number of features that users had been asking for that would do that (fork(), globalization ...) They agreed to fund that work and to pay us for quality assured builds of Perl."
9) Is Dick Hardt able to objectively assess this investment or is it possible his opinion may be influenced by the fact that he just received a large chunk of money? Dick replies, "Note- Did not receive a "large" chunk of money. Having an ActiveState branded version of Perl (and just having Perl) in a number of Microsoft products was the bigger win for us." Do I buy that? Well, it depends how big the check was. Whatever the sum, it obviously didn't hurt, so sure, I think it's hard for Dick to objectively assess the cash. The way I see it, whenever money flows from Microsoft into the coffers of people hacking Perl for a living, Perl benefits -again, as long as there are no strings attached. Now if Microsoft had said, "We'll give you this wheelbarrow full of cash if you make ActivePerl work with Microsoft Technology X instead of alternative Internet Technology Y", there'd be cause for alarm. Dick has said that's not the case. Either Dick is telling the truth and deserves sympathy for all of the abuse heaped upon him, or he's mashing his keyboard with cloven hooves when he types.
10) Is it good for Perl that its main developer works for ActiveState? Ideally, Perl's main developer wouldn't work for a corporation at all. Unfortunately, Sarathy has to pay the bills, and I'm glad that he was able to find a job that allows him to develop Perl full time. If you've met Sarathy, you probably noticed the thick white cloud of integrity surrounding him. If you'd like to develop, distribute, and maintain your own version of Perl for Win32, no one's stopping you.
11) How concerned should we be about the influence of corporations in spurring development and determining feature sets of open source software? Again, I think we need to be vigilant, but give some companies the benefit of the doubt. When more people use Perl, ActiveState profits, so they get the benefit of the doubt. Ditto for O'Reilly, which has fostered Perl development in countless ways. The situation you want to avoid is when a corporation profits through selling language implementations. Then the corporation has an incentive to force people to upgrade, which is sometimes accomplished by introducing incompatibilities. Thus, I'd be more skeptical of ActiveState if they depended on ActivePerl sales for their revenue. But ActivePerl is free.
12) Is what's good for ActiveState good for the Perl community? Follow the money. Right now, ActiveState sells a debugger, a development kit, a CD-ROM, an NT plug-in to speed up CGI programs, an alert service, and Perl support. Sure, ActiveState might someday stumble upon an evil revenue stream: say, introducing bugs into Perl and charging people to fix them. Hey, they'd sell more debuggers that way as well. I don't think such scenarios are likely, because if they occurred, people would stone ActiveState employees at Perl conferences, and clamor for an alternative. Unlike Microsoft, ActiveState can't afford to have enemies. Perl is open source, so the barrier to entry for potential competitors is low.
13) What happens when the needs or wants of the Perl community conflict with Microsoft or ActiveState? This is hard to answer without a concrete example. Larry has the final say on when something is or isn't Perl, so he's the ultimate arbiter of technical issues, for what that's worth. ActiveState Perl and "standard" Perl used to conflict in several key ways, until O'Reilly sponsored the OnePerl effort to merge them in 5.004. Since then, I don't think there have been any conflicts at all.
14) What percentage of the Perl community thinks that Microsoft is sincerely interested in advancing the cause of open source generally and Perl specifically? Zero. In his reply to me, Dick stressed that he couldn't speak for Microsoft's intentions, and gave me the names of three Microsoft folks for elaboration. My message:
From: Jon Orwant
To: ryanj@wagged.com, CRAIGBE@MICROSOFT.COM,
a-jslons@MICROSOFT.COM
Cc: dickh@activestate.com
Subject: Re: Fwd: Re: Fwd: Re: TPJ letter to the editor
Thanks for the intro, Dick!
Ryan, Craig, James: I'm interested in finding out more about why Microsoft is supporting Perl. As I'm sure you're aware, the Perl community has a deep "share-and-share-alike" ethic, and is prone to skepticism of Microsoft. What can you do to convince the skeptical members of the community that Perl won't be a victim of Embrace, Extend, and Extinguish? We'd love to see Perl integrated into NT (not just the resource kit) and Windows 98/00 the way it has been into other operating systems, so that application developers can assume it's in every installation. But some members of the community are concerned that the interoperability that has made Perl such a success on other platforms is not in Microsoft's best interests.
Basically, Perl is our teenage daughter, and we'd like to know what her new boyfriend's intentions are.
Regards,
Jon Orwant
Editor-in-Chief, The Perl Journal
MIT Media Laboratory IBM Fellow.
They never replied.
15) What percentage think that this is the opening volley in a war to destroy Perl?
I'll guess five percent. Microsoft perpetrates a lot of evil in their quest to further their bottom line, notably through their policy of embracing, extending, and extinguishing foreign technologies. It all comes down to whether you think Microsoft sees Perl as a threat.I don't think so, although I do think Sun sees Perl as a threat.
So many magazines these days are nothing but de facto public relations departments of their advertisers. I am hoping that TPJ does not slip into that abyss. It is my sincerest hope that TPJ becomes a warrior for and a relentless advocate of the Perl community and Perl itself. In this case TPJ dropped the ball. Instead of hard hitting journalism and in-depth analysis we got a lame reply. We deserve better.
Our reply matched the tone of the letter, which was not a requestor an in-depth analysis but a bug-eyed rant. You asked more sanguine questions, and I hope you find my answers fair.
You do raise a good point about advertiser influence in magazines. As magazines lose ad revenue to TV and the web, they get more and more desperate to keep the advertisers they have, causing the traditional wall between editorial and advertising departments to break down over time. Some magazines even send articles to their advertisers before publication to help them decide whether or not to advertise. TPJ does not and could not, due to its production schedule.
Strangely, the deterioration of the wall between the editorial and advertising departments was reversed with TPJ. I used to perform all of the magazine's duties -I chose the content, I edited it, and I solicited advertisements to pay for the printing. The only barrier between TPJ's editorial side and advertising side was my sense of self-respect. Now EarthWeb solicits the ads, and the design firm VOIS Communications lays them out. EarthWeb is in a posh New York office, VOIS is in New Hampshire, and I'm in Boston. I select, edit, and proofread all the articles, ship them to VOIS, and only later do I find out who the advertisers are. For all I know, there's a Microsoft ad on the next page.
--Jon
Precedence Problems
I read Mr. Dominus' article on Perl operator precedence with great interest. Precedence has and continues to be a source of problems in Perl coding for me. Curiously, it took him six pages to describe and demonstrate precedence rules for Perl. Contrast that with a description of APL's precedence I found on a web page: APL is different; all operators have equal precedence and all operators associate right to left. Wow. Simple, elegant, even functional if you don't mind occasionally working through a fair number of parentheses. Admittedly, APL is probably the only language I ever learned for which I could recite operator precedence correctly. Larry took an eclectic mix of other languages and added them to his recipe for Perl. He did a great job too; I don't code in anything else unless I have to. I do wish that he'd thrown APL into the mix when establishing precedence rules. Simply stated, in APL, PRECEDENCE RULES. In Perl, better keep that test script handy, or be able to commit six pages of small text from TPJ to memory.
--Sara Starre
Mark-Jason Dominus responds:
This looks to me like the grass-is-greener syndrome. The APL system has obvious advantages. But having actually programmed in APL, I can attest that the APL precedence rules also have some serious problems that may not be apparent.
The obvious problem, of course, is that if you see something like 2*5+3*4 you probably think 22 almost automatically, and it takes a an effort to go back and recompute it to find out that it actually means 34.
But probably the most serious problem with APL's precedence, which I didn't mention in the article, is that because everything associates to the right, you have to read every expression from right to left. When you're typing a line, however, you start at the left and work your way over to the right, and that means that you start typing the things that are done last and work your way over to the things that are done first. This is a terrible nuisance. The practical result is that you have to imagine every line of APL code complete and fully-formed in your mind, and then type it in backwards. That is not easy to do in any language, and in APL it is mind-bending.
I don't know if Perl would have been better or worse with a different precedence system, but I do know that APL's precedence rules were widely criticized, for good reasons.