DesktopLinux.com takes a swipe at Vista to promote Linux

Looking at DesktopLinux.com takes a swipe at Vista to promote Linux, and the referenced article, I wholeheartedly agree with Loren on this, though I do not seem to have the willpower to resist commenting on this stuff. I have said it before, and I will say it again – the Linux community has to shut up about Vista, and about Microsoft in general. It hurts them, more than helping them. The kind of drivel in the DesktopLinux.com post just makes Linux evangelists sound like babbling morons. It really hurts any chance Linux has of being taken seriously.

It is also interesting to see the Linux community so excited by how much progress they are making on the desktop – as reflected by the number of diggs a statistic like Linux bypasses Windows 98 in use. Wow – Linux is outperforming a no-longer-supported OS. And they are up to 1.34%. And Windows XP only has 83%! Even the much hated Windows Vista has more than twice the desktop presence of Linux.

Face it folks, at the moment, Linux is nothing but a novelty on the desktop. In the real world, it is meaningless. Hopefully, in the future, it will become a real contender. But please, until it does, stop pretending.

Service Oriented Architecture is your Ticket to Hell?

With reference to Service Oriented Architecture is your Ticket to Hell, it always amuses me how people insist on calling any idea which does not agree with their own, “bullshit” – always thinking in terms of absolutes, and believing “my ideas are great, yours are BS”. Remember, an idea is a dangerous thing when it is the only one you’ve got. The statement that Service Oriented Architecture (SOA) increases agility can be interpreted in two ways: as increasing the agility of your architecture, or as increasing your ability to adhere to the dogma of “agile development” (which has been bastardized as much as all dogma ultimately is).

(of course, I tend to think of SOA in the dogmatic view of Erl as somewhat bastardized as well, and I do not recognize his authority on the subject as absolute. I was modeling systems as collections of autonomous interacting objects/services years before the term was hijacked)

I will start by looking at the closing statement of the post, since I actually agree with it:

What I am saying is that, if SOA is scaled up without precaution, it can create systems so precarious that anyone asked to maintain them will feel like s/he’s won a ticket to programmer hell.

While I agree with this statement, I do not agree with specifically targeting SOA. This statement applies equally well to any architectural model, including any emergent architecture coming out of an agile development project.

Lets now look at the two specific concerns expressed with SOA.

It is not entirely clear to me that SOA requires excessive amounts of “up front” architecture. The only locked in architectural decision is the one to model your system as a system of interacting services. Even the choice of what kind of a service bus to use should not imply lock-in, since if you implement things properly, it is not particularly onerous to move services from one context to another. And the decision to model your system as a collection of loosely coupled services does increase the agility of your project, in some respects. Need an additional execution component? It is fairly easy to implement it without disrupting the rest of the system. Need to take one out, or change its implementation? Same thing.

Looking at the second concern, I would agree that is possible to create “strange loops” and other architectural oddities through unconstrained application of service oriented architectures. The same was said for a long time about inheritance dependencies in object oriented systems.  It remains important for the architect of the system itself to understand the implications of any services being used. This is an inherent complexity of large, complex, distributed systems.

(as an aside, this is a fundamental problem I have with agile methodologies – the idea that up front architecture is sacrilege – and I have seen little to no evidence the agile methodologies scale to large, complex projects).

As for the comparison between object oriented approaches and SOA, I do not see the two approaches as being mutually exclusive. What are services but large scale objects which respond to messages and provide a service/behaviour? Much of the same modeling concepts which apply to OOAD also apply at the larger scale (of course some do not – such as granularity of operations).

Ultimately, I find SOA to be a useful approach to modeling large, complex distributed systems (and yes, I have built a few). Is it perfect? Probably not. Are the “gothcha’s” in there if you apply it blindly, and without due thought? Absolutely – the same as any other approach I have seen. Is it the correct approach for every system and every project? Absolutely not. It is one approach. It pays to know more than one, and to use the correct one in the correct situation.

8 Answers to the Question: Why do you bother?

I liked Andrew Garrett’s post 8 Answers to the Question: Why do you bother? I absolutely agree with his points, but wanted to add a couple of my own (only slightly serious):

  1. It gives me a chance to write (with words and everything), something I do not get to do as much as I would like in my “real” job. Writing is like anything else, if you do not do it often, does it ever get hard to do!
  2. Ego. I have opinions, thoughts, ideas. I have lots of them, on just about every subject. And of course I believe everyone should have the opportunity to hear them 🙂 .
  3. It gives me a place to write things so that I will not lose them. My stuff is all right there, and hopefully will stay there as long as I need it. I am notorious for writing down ideas and losing them (or not writing them down, and still losing them).
  4. It gives me a place to say things, when I cannot find anyone else to listen – and it does not creep people out as much as when I sit and talk to myself!
  5. It gives me a place to indulge my obsession with numbers and statistics, as I watch the counter move (ok, slowly), and try to find a correlation between tags and reader count.
  6. And finally, because it is still fun!.

What Microsoft Doesn’t Want You to Know about WPF

Looking at Eric Sink’s post What Microsoft Doesn’t Want You to Know about WPF – gee, I thought I was the only person who coded on vacation (at least that is what my wife tells me).

Anyway, I agree with the observation that “beautiful” is definitely not the default for WPF – certainly not until Microsoft’s toolset catches up. Maybe then beautiful will be the default, or at least a selectable option.

I guess the point, though, is that WPF is supposed to let you separate design from coding, and enable you to let designers design, and programmers program. I have never actually seen this work in the real world, but I am forever hopeful. The fact is, though, that no technology or tool is going to protect you from creating ugly designs – the same as using the right language will not guarantee you will not produce bad code, and having the right process does not guarantee that your project will be a success. All it does is improve your odds a little. Maybe. if you are lucky.

Vista equals Edsel?

Vista equals Edsel?  (which just refers to http://www.linuxworld.com/columnists/2007/082307backspin.html)

Ok – here is a thought. If Windows sucks so badly (and not just Vista, because you all bitched about XP before Vista came out, and 2000 before that, and Windows Me, and so on), and I am having one of those weeks that makes me believe Windows does suck, then why hasn’t Linux won? Or OSX?

How badly must you suck if you cannot beat something that sucks as much as Windows???

(and don’t give me the “20xx will be the year of the Linux desktop” crap – you’ve been at this for 15 years – get on with it).

Eight compelling reasons why you should not even think of using Office 2007?

I read Eight compelling reasons why you should not even think of using Office 2007, and I think I would like to respond to these “eight compelling reasons”.

  1. New default file formats? Microsoft offers the Microsoft Office Compatibility Pack so that users of Office XP and Office 2003 can work with the new file formats. I am not really worried about OpenOffice, since I do not know anyone who uses it. If you really need to, save as .DOC or PDF from within Office 2007.
  2. OOXML is Evil? FUD from the open source, anti-Microsoft crowd. While I do not support fast-tracking OOXML (or anything else) through ISO, the rest of the rhetoric is just noise propagated (largely) by Microsoft’s competitors (remember, they are in this to make money, too).
  3. The learning curve? The learning curve on the UI is minimal, unless you are a potato.
  4. Need too much hardware? I am running quite nicely on a 2 year old Tablet PC with a 1.5 GHz Centrino, and 1 gb of RAM. Hardly a high end machine.
  5. You will get viruses? More FUD. The DOCX format is safer than the .DOC format.
  6. Open Source is Good for the World? This is a philosophical opinion. If that is the way your philosophy points you, then by all means, stick with OpenOffice.
  7. You have to pay for it? No argument there – if you cannot afford to buy it, don’t buy it.
  8. It is proprietary? More FUD. Apple is worse the MS in terms of being proprietary, but no one cares, right?

Just my thoughts. Cheers 

Why No One Plays on CodePlex

In response to the post Microsoft’s Open Source Software is Junk? and the article which triggered it, I would like to offer a few comments:

  1. CodePlex is not “Microsoft’s Open Source Software”. CodePlex is a sandbox where others can create open source software based on the Microsoft platform(s). 
  2. To say there are no interesting projects on CodePlex is something of an exaggeration. To say that it is “all junk” is just a sensationalistic headline trying to suck in readers. That said, much of the more interesting stuff actually comes from Microsoft’s Patterns and Practices group (such as the Enterprise Library), and so open source zealots do not recognize it. I would agree that there are few, if any, mature projects there which did not originate inside Microsoft.
  3. Do people not enjoy developing in .NET? Well, given the number of people using it, I would say many do enjoy developing using .NET (and no, they are not all Microsoft cronies, and they are not all forced to by evil, imperialistic employers). 
  4. While there are few mature .NET projects on CodePlex, that does NOT mean open source project based on .NET do not exist. Look around SourceForge. There are a lot of successful, valuable projects there based on the .NET platform.
  5. Look at the profile of the typical open source developer. Typically, they are coming from a very anti-Microsoft state of mind. Given that, they are not likely to develop their great idea on the .NET platform (even if it would be an ideal platform for it – they are making emotional and philosophical decisions, not technical ones). Even if they can bring themselves to use a Microsoft platform, they are definitely not going to host that project on a Microsoft-controlled site, where the evil empire could steal their radically brilliant work.
  6. Until relatively recently, there were no Microsoft-supplied free tools to develop on .NET (there have been a couple of open source tools, such as #develop, which is of course hosted on SourceForge). Open source developers are even less likely to pay Microsoft for the privilege of developing on .NET.
  7. Look at the life cycle of “successful” open source projects. Apache and Linux have been around for a very long time. Of course they are going to be much more mature than anything on the .NET side (though I am not sure many open source projects in any context will have the level of success these have had). FireFox hardly started from scratch, but from a large code-base of pre-existing code. A significant advantage. If Microsoft were to open source IE, you might see a big jump in open source browser development over top of it (though I doubt it, given point (4)).
  8. The existence of successful open source projects (again, leaving aside Apache and Linux) is largely a by product of having lots of open source projects. It is like ideas, the more you have of them, the more likely you might have a good one. There are not enough open source projects on .NET to have that “critical mass”, and given point (4), there may never be.

Some good OOXML analyses

This article has some good thoughts about the weaknesses of OOXML. I am not sure I agree with all of the author’s conclusions, but it is definitely worth reading if you are interested in the OOXML standardization debate.

http://www.arstdesign.com/articles/OOXML-is-defective-by-design.html