Archive

Archive for the ‘Microsoft’ Category

Linux’s Mainstream Appeal

November 14th, 2007
Comments Off

Some comments on an Ars review of the Eee PC note some surprise that Linux’s spread into mainstream consumer electronics is happening care of the low end of the hardware spectrum, as opposed to the high end where most desktop PC Linux fans feel it really shines.

What’s really happening is that the cost of software is being made more and more visible the cheaper the hardware gets. When you bought a $2,000 PC ten years ago, the fact that you paid another $100-200 for Windows wasn’t such a huge factor in most people’s minds. But if the cost of the OS doubles the cost of the purchase, well, that’s something people tend to notice. Note that this says nothing about the value of software in general approaching zero, or anything like that. Instead, it’s making a decision that was viewed as abstract to the point of absurdity by many, into something with real weight: how much is Windows worth to me? Consumers must ask themselves this question when considering any other piece of software, but the OS is both essential to the use of the computer, and it has been seen as a free throw-in from whoever sold the computer. Now that the OS can no longer be viewed as a freeby, historically unquantified benefits of Windows such as superior device support and user friendliness are being quantified, and a price tag is finally, truly being put on them.

So Linux’s advantages may now be nearing full operational status: you can go back and forth about device support and ease of use, but the Linux side will always have price as a kicker. A kicker that, until hardware prices dropped below a certain threshold (apparently $500 or so), wasn’t worth much, but is now worth a fortune.

Anthony Linux, Microsoft

PowerShell: Bringing it all Together?

February 16th, 2007
Comments Off

Is Microsoft’s PowerShell the a missing link between the command line and GUIs? In many ways, yes.

What I find most striking about demonstrations such as these (check out the invoke-sql cmdlet and dir Command videos) is not so much the idea of a more powerful shell as it is the integration of GUI elements with scripting. I can not comment too much on PowerShell itself — I have installed it on a few computers, it’s rather slow to start up, but it makes the noble gesture of accepting UNIX-style commands — but, watching those videos, I couldn’t help but feel a twang of jealousy.

So often while working in languages like Ruby, one runs into walls when the goal of graphical interface comes up. Sure, it can be done, but the incantations needed to bring up and populate windows always strike me as ill-favored when viewed in comparison with the concepts more readily expressed in such languages. However the chart output piping demonstrated in those PowerGadgets videos is just the sort of thing I’d love to be able to do from any language. No bothering with windows, title bars, etc. Instead, it’s just a matter of passing in some structured data and getting reasonable output. And hey, we already can do this pretty well on the web!

A huge barrier is, of course, platform differentiation. Miguel de Icaza recently defended some of Microsoft’s past actions as being necessary concessions to the goal of platform integration. He made the point that while Java may be cross-platform, any application that uses Cocoa bindings runs the risk of being tied to Apple’s platform. Yet, this is a sensible action for a couple reasons: you don’t want to reinvent the GUi wheel on every platform, and you do want to provide users with a consistent, intuitive experience. These goals lead towards platform integration, and there’s nothing wrong with that.

But where does this leave your favorite language of the month? Languages with small communities can’t really afford to be single-platform as that would further diminish their potential audience. Instead, they, for the most part, aim to be as cross-platform as possible at the expense of extensive support for the features unique to any particular platform. Which leads me back to PowerShell. PowerShell seems to be doing a few things such as component inter-operation via typed object interchange, and easy integration with existing class libraries (including GUI components), that are quite forward looking. So I wonder, are the platform-makers the only ones capable of elegantly bridging the gap between scripting and graphical interfaces? Both Apple and Microsoft have demonstrated some ability to provide such capabilities, and I look to Adobe introducing Apollo to see if the platform continues to be the key.

PS: Of course, the web is the platform many of us worry about today. I recently built what would have been a standard GUI application using Ruby and OpenLaszlo as an exercise. The outcome of that exercise was predictable: OpenLaszlo is a great library for building web applications, but it sure would have been a lot faster for me to use VS2005 to put together a Windows Form.

Anthony .NET, Microsoft, Software, Windows

I’m Hunting Wabbits

November 16th, 2006
Comments Off

From the outside looking in, the Wikipedia entry on FLOSS doesn’t really clarify what it is. There’s a general concept here, sure, but if you read that page and then try to deal with the FLOSS community, as such, you may well be in for a confusing world of hurt. So when Jason Matusow asks for comments on the recent Microsoft patent covenants, it’s no surprise that there are a bunch of people talking right past each other. Frankly, these covenants, especially when viewed in the light of Steven Ballmer’s statements regarding them, seem like a prototypical demonstration of FUD tactics. I don’t like using that term because almost any argument intended to be persuasive could receive that label, however I’m willing to say it here in large part because you have Matusow asking people how they feel about it.

As for the covenants themselves, I think Matusow’s blog post, along with the associated comments, paint a sufficiently detailed picture. What strikes me, however, is the impossibility of the situation. Similar to how today’s geopolitical climate is confused by the lack of uniformed armies clashing on known battlefields, the line of contention between Microsoft and the FLOSS community is not a line at all. Instead, it is the result of a convoluted function that is most definitely not one-to-one. Members of the FLOSS community will often argue as if there is a unified voice, so when Microsoft addresses one set of issues, it finds that it is merely further upsetting another part of the same community. In this case, the loose philosophical blanket that covers most of that community happens to exclude Microsoft, so the arguments are all legitimate, but the details are squirrely, and that leads to many communication breakdowns. Some FLOSS advocates speak of how there should be no discrimination of users based on who they are or what they are doing with software, yet how can Microsoft form an argument for this person that will also satisfy a GPL v3 advocate who thinks it’s all fair as long as it doesn’t involve DRM? The debate is framed as being between two parties, yet the philosophies involved are varied enough to reduce the whole thing to noise.

Yet there must be an argument, and I do not believe it necessarily has anything to do with a unified theory of FLOSS. I think this issue can be reduced to individuals; forget the GPL, forget the ecosystem. These ideas are not irrelevant, but they are not necessary to frame the issue of patent covenants. What this boils down to is that software patents are virtually impossible for individual developers to avoid, and thus remain a constant dark cloud over all software development. Who cares if I prefer the BSD license, and you the GPL, we may both feel threatened by the idea of a big company hitting us with a lawsuit that we have no chance of winning no matter the merits of the case.

Some of the feedback on Matusow’s blog suggests that Microsoft should just tell the world what patents are being violated so that would-be offenders have the opportunity to change their ways to stay out of trouble. Unfortunately, this doesn’t get very far because Microsoft would rather wield an enormous, nebulous threat than a smaller, well-defined one. But also because it’s just not practical. There doesn’t seem to be any useful way of making a database of software patents available such that developers can clear everything they do on a daily basis. If Microsoft were to provide a user-friendly, searchable database of every patent they hold, would all developers be able to determine when they were in violation of a patent? Of course not. It takes months to determine this in courts, with paid advocates working on the outcome of that determination full-time.

If Microsoft wants to understand the other side, they must think about the lone programmer toiling away in relative anonymity. If you are threatening this individual, which you seem to be with these patent covenants, then it really doesn’t matter what Red Hat thinks. The worst act here is the oppression of the individual, not the competitor. And for those who would decry Microsoft as insulting them with this covenant and its associated perceived threats, I would suggest that they consider other large companies who draw significant revenue from patent licensing and litigation. Those companies are making the same threat, they just don’t have quite as visible of a good cop / bad cop routine as Matusow and Ballmer.

Anthony Microsoft, Software, Technology

Mono For The Win?

November 3rd, 2006

I’m still trying to absorb the possible ramifications from the Novell / Microsoft announcement. While there is every possibility that nothing will come from this, if it is instead Microsoft’s long-awaited acceptance of Mono, then this could be a very significant part of both companies’ futures. I have argued in the past that Mono is a critical part of Microsoft’s potential cross-platform future, and this announcement seems to suggest that they may see it that way, too.

So, ignoring the many juicy complexities, let me pick on one that I haven’t seen mentioned yet: What of XAML? I think it’s a real win for Microsoft if programmers can use .NET for all their needs, be they command-line utilities on the server or GUI apps for customers. This could encourage uptake of .NET, while creating a stage on which both Microsoft and Novell will be competing on the more genuine bases of who provides the better platform for a given technology. For so long the Microsoft suite of software has been disjoint from, well, everybody else. This has made comparison difficult, and many skills not as transferable as one would wish. Now there is a real possibility for the more apples-to-apples comparisons of

  1. On which platform do I most like to develop my .NET applications?
  2. On which platform do I most like to run my .NET applications?

To throw something out there, it’s entirely possible that we will see some programmers choosing to develop on Windows (thanks to Visual Studio) and deploy on Linux (thanks to cost, etc.).

But back to my question, if .NET is to become a truly cross-platform technology, there needs to be a better answer to GUI construction. Just as Mono’s SWF implementation is coming up to speed, Microsoft is moving to WPF, which Miguel is none too fond of. Perhaps this is a sign that WPF/E won’t be overly crippled, or perhaps this is an opportunity for the Mono camp to offer something new that could actually gain some penetration on the Windows side of the equation. Here’s hoping this all ends up being a fraction as interesting as it could be.

Anthony .NET, Microsoft, Mono

Pure Progress

November 3rd, 2006
Comments Off

The other day I was working on a programming project in my free time, and I was using Ruby. I had actually started out using MySQL and Ruby, but quickly determined that I’d probably be better off not using a proper database since my query types weren’t so far ranging. Later on, I found that the performance of my Ruby code just wasn’t there, and, really, the program was very straightforward, so I ended up re-writing a bunch of little helper programs in C. When all was said and done, I had gone from using Ruby w/ MySQL to using C w/ binary data. Hooray for progress. This was all a little frustrating, and, for some reason, it made me feel justified that I usually use PHP for the little web programming that I do.

The mental connection was because PHP could be viewed as the C of the web. It’s fast, it’s ubiquitous, it’s old, and it’s even got some vaguely familiar syntax in places for the C programmer. It just so happened that this strange train of thought was immediately followed by me reading this summary from the Zend/PHP conference. Let me cite the relevant passage, a quote from a plenary Q&A:

Ruby is appropriate for computer-science-loving people who have a puristic [sic] attitude.

Ugh.

In an earlier post, I expressed doubts about the outcome of Microsoft’s recent push into new programming language territory. In light of something like this statement from Zend, that seems unfair of me, so let me be clear: Whatever the outcome, the fact that Microsoft is endeavouring to bring new programming techniques and technologies to their customers is not only good, it is necessary. (Note: “new” as in newly available on the platform.) Will lambda expressions make C# 3.0 a language only for purists? I think not. Positioning yourself as the VB of the web makes good sense, but not if you’re doing so as an argument against progress.

Anthony .NET, Microsoft, PHP, Programming