My first contact with computers was through my older cousin, Mauro. I remember watching him type DOS commands and play 5¼-inch floppy disk games on a 286, then 386, then 486 machines, year after year. I have to thank him for my career choice and involvement in computers.
When I was old enough and computers were less expensive, my parents bought me a PC. It was a Pentium 75Mhz with MS-DOS 6.22, Windows 3.1 and an 800MB HD, a.k.a. Winchester (that’s how we called all hard-drives).
I would only ever see a Macintosh later in my life. They were either too expensive or unavailable at the time, so I had no choice but to go with a compatible IBM-PC.
I started playing around with Basic, FORTRAN, Pascal, and developed my first game/freeware on Windows 95 32-bit (with Visual Basic 6).
Going forward a few years, now in the University lab, my colleagues and I were learning general programming and OOP with languages like C and Java on Unix (Solaris) machines. At the same time, a new language from Microsoft had just come out of the oven, it was C#. Being a Windows developer since the times of Windows 95, I decided to take a look at it.
C# was my favorite language of all. Because it was more elegant, succinct and easier to read than Java and of course C/C++.
Although, I had to learn other languages to graduate, such as LISP and PHP, I never really worked with those languages much in a professional setting. C# was where I really shined.
2003 was when I started working with C# (.NET 1.1) on Windows desktop applications. After 5 years, now in Canada, I transitioned to Web development. While my fellow graduated colleagues in Brazil were all working with JSP, I was happy where I was, with ASP.NET and C#. So much so, that I read in depth over 900 pages of this book.
That same year, Apple launched the iPhone in Canada. It took me a year to adopt it and I bought the iPhone 3GS.
I wasn’t ready to transition to mobile development yet. I was in the process of becoming a Canadian permanent resident which meant that I had to stay on my current job and, like I said, I was happy where I was.
After a while however; That awful feeling we, developers, feel when technologies are leaving us behind was gaining more and more space in me. When Android phones finally became more popular, I felt a little regret for not taking Java serious.
After my immigration process was done, I finally decided to invest in mobile development but I still didn’t want to work with Java. Coming from C#, I felt that going to Java was a step backwards.
So I engaged in learning iOS development and landed my first contract, Chartright, which was perfect for me because it was meant to be released for iOS only, 100% done by me, it was launched in 2013.
From 2003 to 2012, I had followed the evolution of C# very closely. Along with database development and T-SQL, I have developed and deployed software on Desktop and Web Servers in many different business areas. When back-end, front-end and devops engineers were all the same thing.
Since then, I have been wanting badly to develop for Android as well, but never got to put my hands on it. Until now.
About Xamarin, here is a great article that points out all my experience with it, and in summary:
- Xamarin had way too many bugs my patience could tolerate. I’m sure it was a frustrating experience to some.
- There is definitely an overhead to using Xamarin.
- There’s a learning curve. Leveraging what you know about .NET will only help you at some extent. So why not just use Java?
- If you want to develop a fantastic app for both iOS and Android with a great looking native UI, that it a big problem that Xamarin doesn’t help you with much.
Kotlin borrows a lot of features from C#. It will be interesting for any C# developer to experience in their own projects and take their own conclusions.
I will sure keep this updated in the near future.
Enough said for now.