Monday, October 8, 2012

Does Familiarity with Programming Language Drive Platform Adoption?

In the previous generation, everyone learned BASIC, it was bundled with every computer and there were lots of do it yourself programs in magazines and at Radio Shack.  When you learned a more serious language, there were several forks: FORTRAN, COBOL, etc. for business use, PASCAL, Lisp, etc. for the free thinkers, assembly for the hardware types, and C which spanned bare hardware to operating systems design.

My path was a bit skewed: FORTRAN and COBOL in High School (with some hacking of the university minicomputer in BASIC), FORTRAN in liberal arts school (with more BASIC hacking), assembler and C in engineering school, then off to my first job with more FORTRAN (programming in C for fun).  Very old school they would now say.

So as I adopt hardware platforms in projects today, I gravitate more towards what I know.  Arduino was a natural, being mostly C.  Raspberry Pi has helped me relearn Unix/Linux syntax.  I have looked at Python but the syntax is not close enough to the other languages to be an immediate fit.

Which brings me to today's question: will the programming environment make or break a microcontroller platform?  The choice of C/C++ for Arduino has been borne out.  Linux environments have a wealth of options as long as storage is not severely constrained.

But what about up and coming chips?  Some modify the Wiring/Processing environment of Arduino to work, others use IDEs provided by chip companies (which often have better debugging but syntax that one must pick up).  Picking up a new programming environment takes time.  Learning a completely new language is tougher.

The choice can make or break an up and comer.  My advice is to support C, not because it is on Arduino.  But because it is a well understood language, very flexible, and is very powerful (from Hello World to operating systems in under an hour ;-) ).  Thoughts?