Sunday 3 February 2013

What's so ethereal about computer architecture

What's so ethereal about computer archtecture?  Perhaps nothing.  I fully admit that I chose this name because I needed to get a unique name that wasn't already taken in blogger.

By way of introduction, I have been doing computer architecture professionally for about ten years now.  I've done mostly software architecture for web and SAP systems (a bizarre combination, I know) as well as set hardware standards (a lot more controversial than you might think).

Along the way, I've seen language wars, database wars and tried doing some fairly serious things with NoSQL databases (which will probably end up being a topic of discussion here).

My background is fairly hardcore computer science, including doing graduate work in the field. Lately, I've had to learn about communicating with people with non-technical backgrounds, which is something I definitely find challenging and may write about.

I definitely have some biases:  For example, I used to program professionally (in that I got paid for it) in assembly language. For me, C (and also C++) is a really high level language.  When java came along, it seemed luxuriously high level.  I have very little issue with the "boiler plate" code that many complain of, but was always a big fan of functional programming. So, I suppose I am less interested in Ruby and Python and more interested in languages like Scala and Clojure as alternatives to java and C.  I am not a big fan of the call back model of programming (I used it a lot in the, ahem, 80's) and so I don't really get why Node.js is a big deal.

The company I am currently working at has been trying to use agile development methodologies (scrum and kanban) with varying degrees of success.  I've always been a big fan of iterative methodologies, but it is becoming clear that having good people probably trumps having the proper methodology.

We've also been having some issues with managing concurrent development.  That might make for some interesting blog entries.  Essentially, its interesting how easy modern source control systems (like Git and its cousins) make branching.  I'm not convinced though that branching is always the best idea.  It probably is not substitute for cooperation amongst developers.

Anyway, enough for now...  It will be fun to see if anyone actually reads this :-).

1 comment: