Trying new programming languages and platforms

With about 10 years of developing software in Microsoft .Net platform since 2005, I decided to try something new. Microsoft .Net, C# and ASP.NET are my good friend but I think they are not very fast in agile world and in fast growing startup demands. Also Microsoft .Net essentially require Windows eco system that is not free to use that can be problematic specially in countries that are sanctioned to buy legal licenses and is not rich enough to pay the prices.

As a mainly web developer I decided to gather more information on Ruby, Python and Node.js. They all have rich library of components and reusable components and batteries and also can be developed and hosted in a Linux machine. A good decision needed to me to get hands dirty and try them practical. My first try was Ruby/Rails. A small database driven web project was offered to me to evaluate and estimating the price. It was good situation to do it in Ruby/Rails especially I am an ASP.NET MVC developer and I was not un-familiar with MVC pattern. Finding good tutorials I started installing Sublime Text and Rails on my Ubuntu machine and exploring Ruby/Rails. The project I were offered to evaluate go cancelled finally but I learnt good thing about Ruby/Rails. Rails itself id pretty much similar to ASP.NET MVC. Controllers and Views (erb files) were pretty similar to ASP.NET MVC Controllers and Razor views (cshtml). Previously in an ASP.NET WebForms project, our team were using Castle ActiveRecord over NHibernate for data access. So Rails’ ActiveRecord pattern was also very similar.

Never had situations to try Python yet. Even I may remove it from my to-try-list. Because I see no business opportunity on it yet. In the other side I have a chance to install and use some portions of Node.js (npm) on my machine while trying AngularJs that will describe it later in this text. BTW as times go on I’m thinking that it’s better to wait for a new project or job position that needs or fits into a certain language/technology then try to learn and master it. This is mainly because my job position is not very stable now and may have changes soon.

As I’m deciding it’s better to learn a new language/tools when a new project arrived or a new job position is offered I started to try AngularJS as I’m offered to do sections of a web project in SPA style. First decision was selecting a good framework. Mine was AngularJs. Though Angular 2 is not finalized yet I decided to use it because our product is not very large and sensitive and will not be in production very soon. Using TypeScript over CoffeeScript was my second decision as it tied with Angular 2 and is very similar to C#. I guess I will use a little Angular 2/TypeScript in this project because main requirements of the project are satisfied with use of Angular routing module.

My journey is not finished here. I may try Perl too as my favorite help desk software, OTRS is written with Perl and a time in future I may develop some plugins for it.