Thursday, 25 June 2009

Mono and FLOSS Zealots

I was reading Is Linux Suffering From Mono? the other day. This is an issue that crops up now and again- is Mono a traitor to the Open Source community? Quite frankly I think the argument that Mono is somehow going to be downfall of Linux is a pile of s!*@t!

The anti-Mono arguments all seem to revolve around the fact that it’s based on Microsoft technology and so is evil. The arguments are all very negative, full of speculation and FUD. Here are some of the arguments as I see them:

Mono is based on proprietary technology

Mono is an implementation of the .NET Framework, a Microsoft technology, but C# and the CLI are both ISO and ECMA standards. I reckon MS set out with the idea of creating a cross platform framework to encourage adoption and help compete against Java etc, rather than use it as a some kind of patent Trojan Horse (see below).

From a MS perspective there’s nothing ‘official’ about the Mono implementation of the .NET framework, but they certainly don’t have anything against it. In fact MS did work with the Mono team to produce an official cross platform version of Silverlight. Again, I think MS needed to do this in order to compete effectively with Flash (and the AIR) who obviously have a massive head start.

Microsoft will try to enforce Patents

I just can’t see this happening. Trying to enforce a patent after you’ve released an Open Standard and encouraged other implementations has got to be pissing in the wind. I’m no expert, but I just can’t see how this would ever work. I can’t see how it would fly legally, it would be bad PR and would damage MS’ relations with developers. I suppose it’s possible they might try to enforce some patent to do with the implementation, but anything in this vein could easily be worked around. The Mono team are pretty careful about this kind of thing (i.e. no copying of MS code!).

FLOSS Zealots

I’ll try not to get in to a discussion about the merits of Open Source versus proprietary software, but I have to say the FLOSS (or FOSS) zealots do get me going! These are the issues I have with them:

  • Their arguments are generally negative. They’re all about criticism (MS, or Mono or whoever).
  • Their arguments are hypocritical. “I want everything Free and Open” as long as it’s done the way I want, and you don’t use any software I don’t like.
  • They complain about companies spreading FUD, and then spout more crap and FUD than anyone else.
  • They apply double standards. Anything from someone they don’t like has to be meet their standards to a much greater degree than someone they do like.
  • They’re basically Fan Boys (or their opposite).

My Take

I actually quite like MS software and the development support they give. I have Vista on my desktop, C# is a good language, Visual Studio is a good development tool, .NET is a decent framework.

Within the company I work for .NET and Mono are great for the following reasons:

  • C# is a strongly typed OO language that has decent performance and string handling. XML and other string based technologies aren’t handled particularly well in C / C++!
  • Makes resourcing easier. C# is relatively easy for people to pick up- teaching web programmers C / C++ is probably not the best way forward. You can write Web Services and embedded programs in C#. Once you have a few people that know C# it becomes a lot easier to resource projects.
  • Multiple languages, one framework. This means you only have one Framework to learn and you’re able to choose the language (or multiple languages) for the job. One of the projects we did was prototyped in Python, made to run in IronPython (pretty easy) and then gradually replaced module by module by C# code.
  • You can develop and test on Windows, and deploy on Linux (ok so you have to test on Linux as well). Which is a good thing given most of us have Windows on our desktop. Most of our Linux machines are command line only, so less trawling through text files, more stepping through code in the debugger! Yay!

Go Mono! That’s what I say! :-)

Thursday, 11 June 2009

Sharepoint

At the company I work for we’ve started using Sharepoint for some of our internal intranet stuff.  Sharepoint is billed as a platform that aids content management and business processes. 

As far as functionality goes it allows you to store documents in libraries, store information in what Sharepoint calls lists (they’re essentially just database tables), and create web pages by placing modules on a page template as you see fit.  These pages can can then be customised by the user.

Originally I was just playing with the technology, but after a while I started using it for To Do Lists, Support Rotas and the like.  Although we could write web pages to do this in house this ultimately takes away resources from stuff that makes us money.  Plus I was setting this up and my PHP experience is fairly limited, and I don’t really have a great desire to learn it! :-)

With things like the TODO lists, Sharepoint allows you to easily change the information that’s stored in the list and automatically provides forms to display and edit the data without having to write any code.  It also gives you a lot of functionality for free, for example- login management, email notifications, version control and site search etc.

So far the simple to do lists, rotas etc have all been fine, and as long as you don’t want to do anything fancy then the project tracking template can be useful as well.

One thing that’s been needing a bit of a revamp for a while is our Help Desk system (a set of pages written in house by a summer student).  We’re currently trying out moving it to Sharepoint which will be much more of a test of Sharepoint’s capabilities.  Hopefully I’ll be covering how we get on with this in future posts.