---
layout: post
title: Coding in C# for (almost) any device out there
date: 2013-04-27
## Make sure to change these
published: false
hidden: true
sitemap: false
---

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](https://bugzilla.xamarin.com/show_bug.cgi?id=142). As I said
earlier, its not always easy to fit business with open source.


EOF