{"id":850,"date":"2010-05-07T22:28:37","date_gmt":"2010-05-07T22:28:37","guid":{"rendered":"http:\/\/www.codedread.com\/blog\/?p=850"},"modified":"2010-05-07T22:28:37","modified_gmt":"2010-05-07T22:28:37","slug":"moving-right-along","status":"publish","type":"post","link":"https:\/\/www.codedread.com\/blog\/archives\/2010\/05\/07\/moving-right-along\/","title":{"rendered":"Moving Right Along"},"content":{"rendered":"<p><object type=\"image\/svg+xml\" width=\"100\" height=\"100\" style=\"float:right\" data=\"http:\/\/codedread.com\/clipart\/commodore.svgz\">[clipart]<\/object>When I started programming it was on the Commodore 64  (uh oh, you know this is going to be a long story - go take a piss first).  I started with Basic and then eventually moved to assembly language to try and write a <a href=\"http:\/\/en.wikipedia.org\/wiki\/The_Bard%27s_Tale_%281985_video_game%29\">Bard's Tale<\/a> clone with a friend.  We got pretty far.  I just came across the notebooks where I had scribbled all those assembly routines too - great times!  But by the time we got close to having something we could call a game, Commodore had lost the battle and the IBM PC clone market was taking off.  Different instruction set, different hardware and capabilities.  Doh! <!--more--><\/p>\n<p><!-- msdos --><br \/>\n<object type=\"image\/svg+xml\" width=\"100\" height=\"100\" style=\"float:right\" data=\"http:\/\/codedread.com\/clipart\/msdos.svgz\">[clipart]<\/object>My next foray into the world of programming was DOS-based in C\/C++ using <a href=\"http:\/\/en.wikipedia.org\/wiki\/Borland_Graphics_Interface\">Borland's Graphics Interface<\/a> (BGI).  I even wrote an <a href=\"http:\/\/en.wikipedia.org\/wiki\/Expanded_Memory_Specification\">Expanded Memory<\/a> manager at one point when 640kb of RAM just wasn't enough.  Borland had a great compiler for students of C\/C++, everyone was using it and it was affordable, so I didn't really think twice about using Borland's technologies.  Plus, it was all I had.<\/p>\n<p><!-- windows --><br \/>\n<object type=\"image\/svg+xml\" width=\"100\" height=\"100\" style=\"float:right\" data=\"http:\/\/codedread.com\/clipart\/windows.svgz\">[clipart]<\/object>When it became obvious that DOS had lost the battle and the world was moving to Microsoft Windows, I moved on again.  First with Borland's long-forgotten <a href=\"http:\/\/en.wikipedia.org\/wiki\/Object_Windows_Library\">Object Windows Library<\/a> (OWL) and then, when it was clear that Borland itself had lost the battle, I moved on to to the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Microsoft_Foundation_Class_Library\">Microsoft Foundation Classes<\/a> (MFC) and then just straight access to the Win32 API.  At that time I had <a href=\"http:\/\/en.wikipedia.org\/wiki\/Visual_Studio_2005#Visual_Studio_6.0_.281998.29\">Microsoft Visual Studio 6<\/a> - what an awesome <span title=\"Integrated Developer Environment\">IDE<\/span>.<\/p>\n<p><!-- directx --><br \/>\n<object type=\"image\/svg+xml\" width=\"100\" height=\"100\" style=\"float:right\" data=\"http:\/\/codedread.com\/clipart\/directx.svgz\">[clipart]<\/object><a href=\"http:\/\/en.wikipedia.org\/wiki\/Windows_GDI\">Windows GDI<\/a> lacked power so I eventually moved on to Microsoft's <a href=\"http:\/\/en.wikipedia.org\/wiki\/Directx\">DirectX<\/a> (DirectDraw and then Direct3D).  This was at a time when the entire known computing world was using Microsoft Windows.  I barely thought twice about using Microsoft technologies.  <em>You go where the technology can be accessed.<\/em><\/p>\n<p><!-- Java --><br \/>\n<object type=\"image\/svg+xml\" width=\"100\" height=\"100\" style=\"float:right\" data=\"http:\/\/codedread.com\/clipart\/java.svgz\">[clipart]<\/object>Along the way, I picked up a little of Sun's Java at work because the entire known computing world was predicting how big it would be.  Not too soon after that <a href=\"http:\/\/cwilso.com\/2010\/04\/30\/the-ie-plateau-a-history-lesson\/\">IE6 plateau'd<\/a> and Microsoft had started really losing developers to Java, Flash and the web.  Microsoft needed to \"invigorate\" their platform.  I think \"invigorate\" is another word for \"developers are way sick of the Win32 API, how can we win them back?\"  Markup alongside managed code was to be the future.  They introduced C# and started work on Avalon which became <a href=\"http:\/\/en.wikipedia.org\/wiki\/Windows_Presentation_Foundation\">Windows Presentation Foundation<\/a> (WPF) and Silverlight.<\/p>\n<p><!-- tired --><br \/>\nExcept this time I didn't go along for that ride.  I kind of got tired of learning some new technology in my spare time, becoming proficient enough to write non-trivial software and then having the ecosystem replaced by something else.  I had also started getting interested in open source and cross-platform capabilities because Linux was getting a lot of nerd-love and Microsoft distrust was so high.<\/p>\n<p><!-- useless --><br \/>\n<object type=\"image\/svg+xml\" width=\"100\" height=\"100\" style=\"float:right\" data=\"http:\/\/codedread.com\/clipart\/grumpy.svgz\">[clipart]<\/object>Sadly, my learned skills in the Win32 API, GDI, MFC are now completely useless to me.  DirectX is becoming less and less relevant with the rise of alternative platforms.  Even supposedly cross-platform frameworks like Qt, Java and SDL mean that you are locked out of some mobile platforms.<\/p>\n<p><!-- --><br \/>\nSo what's the point of my illustrious technology roll call and rambling history above?  I wasn't trying to put you to sleep there, promise.<\/p>\n<p><!-- --><br \/>\nWhy do I have to keep learning technologies only to have them killed or moved around or not accessible on major platforms? I'd rather take already-learned skills and apply them to a new area.  And putting all your eggs in one company's basket just doesn't seem like a good idea to me.  I don't care if that company is Commodore, Borland, Sun, Oracle, Trolltech, Nokia, Microsoft, Apple, Google or &#60;insert name here&#62;.<\/p>\n<p><!-- --><br \/>\nAnd that's why I believe the Web will eventually win as <em>The Platform<\/em>: No one company controls it - they all contribute.  JavaScript and DOM and CSS skills can now be applied to graphics as well as hyper-text.  Fonts.  3D graphics.  Video.  Audio.  Access to the file system.  New APIs for accessing device capabilities (like touch screens, accelerometers, webcams).  And remarkably, all browsers seem to be generally moving in the same direction, with innovations being fed back into stream.<\/p>\n<p><!-- --><br \/>\nNo device ships without a browser - it would be suicide. The Web is universal.  <a href=\"http:\/\/www.scribd.com\/documents\/30964170\/Scribd-in-HTML5\">As is HTML<\/a> (where HTML = a collection of web technologies).<\/p>\n<p><!-- --><br \/>\n<object type=\"image\/svg+xml\" width=\"100\" height=\"100\" style=\"float:right\" data=\"http:\/\/codedread.com\/clipart\/party.svgz\">[clipart]<\/object>What we have here is a platform that is continuously and incrementally evolving, has loosely-coupled technologies, that no one company controls, requires zero install from the user and is ubiquitous.  And it grew from just these tiny little seeds sown in the previous decade.  That's poetry.<\/p>\n<p><!-- --><br \/>\nMe like.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[clipart]When I started programming it was on the Commodore 64 (uh oh, you know this is going to be a long story &#8211; go take a piss first). I started with Basic and then eventually moved to assembly language to try and write a Bard&#8217;s Tale clone with a friend. We got pretty far. I [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,11,28],"tags":[185,186],"class_list":["post-850","post","type-post","status-publish","format-standard","hentry","category-software","category-technology","category-web","tag-software","tag-web"],"_links":{"self":[{"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/posts\/850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/comments?post=850"}],"version-history":[{"count":38,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/posts\/850\/revisions"}],"predecessor-version":[{"id":897,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/posts\/850\/revisions\/897"}],"wp:attachment":[{"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/media?parent=850"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/categories?post=850"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/tags?post=850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}