Coding in C# for (almost) any device out there | Express IT: Coding in C# for (almost) any device out there

sábado, 27 de abril de 2013

Coding in C# for (almost) any device out there

I was listening to an interview with Miguel de Icaza who was talking about Mono and Xamarin, his new IDE for .Net development which isn't targeted at competing with Visual Studio, but to fill the void for developing .net applications in MacOS.

De Icaza is a well known open source software developer and every company he started has been very committed with open source, but Xamarin itself is not open source. In the interview he shares very interesting opinions about the open source ecosystem, for many years I've been in agreement with these opinions about the role of open source within the software development business. I'm a true believer of the free software ideals but very early I realized too, that making money does not always play well with having fun and doing things just for fun.

I'm not going to transcript here the interview, you better watch it. I've been doing professional work for a little bit more than half of my life (I'm 35 years old), I have started 3 formal business companies, also have done freelance development and consultancy and of course I've been employed by a few companies and (I'm ashamed to tell this) by government. Very early in my career I used a lot of proprietary stuff, until I heard about Linux, around 1997 and started using it actually in 2003, since then I've been involved and gradually switched to only open source technologies.

Lately with the mobile wave, I began to develop (obviously) for Android not only because its Linux base, Java which is a programming language I know and love to code in, was the only language to develop for Android devices, until the arrive of C# by Xamarin folks.

As an app developer you cannot constrain to only Android devices, if you wish your app to be a successful one or if the mobile application is only a front end for the services your company provides, then you must support iOS, Windows, Bada, blah, blah...blah devices, unfortunately I can't code in Java for all these platforms, and in some cases (namely iOS) I'm (legally) forced to use a MacOS computer. Isn't that enough? Well, I should also code in at least three different programming languages (Java included).

I'm happy to know that Xamaring allows to code in C# for a wide range of devices and operating systems using either Visual Studio (which personally I think is one of the very best IDEs out there, but certainly I won't say its the best) or Xamarin which runs in MacOS. Too bad that Xamarin does not provide Linux support, you can read why here. As I said earlier, its not always easy to fit business with open source.