{"id":1484,"date":"2008-10-10T13:33:39","date_gmt":"2008-10-10T13:33:39","guid":{"rendered":"https:\/\/techcafeteria.com\/new\/?p=1484"},"modified":"2014-10-26T14:50:11","modified_gmt":"2014-10-26T14:50:11","slug":"biting-the-hand-part-2","status":"publish","type":"post","link":"https:\/\/techcafeteria.com\/?p=1484","title":{"rendered":"Biting the Hand Part 2"},"content":{"rendered":"<p>This article was originally posted on the <a href=\"http:\/\/idealware.org\/blog\/2008\/10\/biting-hand-part-2.html\">Idealware Blog<\/a> in October of 2008.<\/p>\n<p><big><small>This is part two of a three part rumination on Microsoft.\u00a0 Today I&#8217;m discussing their programming environment, as opposed to the open source alternatives that most nonprofits would be likely to adopt instead.\u00a0 Part one, on Windows, is here:<b><\/b><\/small><\/big><a href=\"http:\/\/www.idealware.org\/blog\/2008\/10\/biting-hand-that-bites-me-as-it-feeds.html\"><big><small>http:\/\/www.idealware.org\/blog\/2008\/10\/biting-hand-that-bites-me-as-it-feeds.html<\/small><\/big><\/a><b><big><\/big><\/b><\/p>\n<p>Imposing Standards<\/p>\n<p>In the early days of personal computing, there were a number of platforms &#8211; IBM PC, Apple Macintosh, Amiga, Commodore, Leading Edge&#8230; but the first two were the primary ones getting any attention from businesses. The PC was geeky, with it&#8217;s limited command line interface; the Macintosh was cool with it&#8217;s graphics. But two things put the PC on top. One was <a href=\"http:\/\/dssresources.com\/history\/sshistory.html\">Dan Bricklin&#8217;s VisiCalc<\/a>, the first spreadsheet.\u00a0 A computer is a novelty if you have no use for it, and VisiCalc, as it&#8217;s modern equivalents are today, was extremely useful. But the bigger reason why the PC beat out the Mac so thoroughly was that the Mac had a strict set of rules that had to be followed in order to program for it, whereas anyone could do pretty much anything on a PC.\u00a0 If you knew<a href=\"http:\/\/en.wikipedia.org\/wiki\/Assembly_language\">Assembler<\/a>, the programming language that spoke to the machine, you could start there and create whatever you wanted, with no one at IBM telling you with languages and libraries to use, or what you were allowed or not allowed to do.\u00a0 As Windows has matured and gained the bulk of the desktop operating system market, Microsoft has started emulating Apple, raising the standards and requirements for Windows programming in ways that make it far less appealing to developers.<\/p>\n<p>Unlike the early days, when no one had much market share, Windows is now the standard\u00a0 business platform, so there are a lot more reasons to play by whatever rules Microsoft might impose.\u00a0 So, today, being a Windows programmer is a lot like being a Mac programmer.\u00a0 If you&#8217;re going to have the compatibility and <a href=\"http:\/\/www.microsoft.com\/windowsserver2003\/partners\/isvs\/cfw.mspx\">certification<\/a> that is required, you&#8217;re going to follow guidelines, use the shared libraries, and probably program in the same tools as every other Windows programmer.\u00a0 The benefit is standardization and uniformity, things that business computer users really appreciate.<\/p>\n<p>Accordingly, the Microsoft platform, which used to run on pretty much all PCs, now faces competition from Linux and other Unix variants, and for much the same reasons that IBM beat out Apple in those early days. What appeals to Java, PHP, Rails and other open source developers is very much the same thing that brought developers to the PC in the first place, and Microsoft&#8217;s arguments for sticking to their platform are much like Apple&#8217;s &#8211; &#8220;it&#8217;s safer, it&#8217;s well-supported, it&#8217;s standardized, so a lot of the work is done for you&#8221;.\u00a0 I would argue with each of these claims.<\/p>\n<p><b><big>Is it Safer?<br \/>\n<\/big><\/b><br \/>\nThe formal programming environment is supposedly more secure, with compiled code and stricter encoding\/encryption of data in their web services model.\u00a0 But it seems that the open source model, with, for the major apps, a multitude of eyes on the code, is<a href=\"http:\/\/blog.washingtonpost.com\/securityfix\/2007\/01\/internet_explorer_unsafe_for_2.html\">quicker to fnd and fix security glitches<\/a>.\u00a0 Microsoft defenders will argue that, because Microsoft lives in a commercial ecosystem, with paid training and support, that support is more widely available and will continue to be avaailable, whereas open source support and training is primarily community-based and uncompensated. But my experience has been that finding forums, how-to&#8217;s and code samples for PHP, Python and Rails has always been far easier than finding the equivalent for ASP and C#.\u00a0 In the open surce world, all code is always available; in the MS world, you either buy it or you pay someone to teach you.<\/p>\n<p><b><big>Is it Easier?<br \/>\n<\/big><\/b><br \/>\nThe bar for programming on Microsoft&#8217;s platform is high. To create a basic web application on the Microsoft platform, or to extend an existing application that supports their web programming standards, you, at a minimum, need to know XML; a scripting language such as Visual Basic or C#; and Active Server Pages (ASP).\u00a0 Modern scripting languages like Ruby on Rails and PHP are high level and relatively easy to pick up; RAILS, in particular, supports a rapid application develoment model that can have a functional application built in minutes.\u00a0 These languages support REST, a simple (albeit less secure) way of transmitting data in web applications.\u00a0 Microsoft depends on SOAP, a more formal and complex method. <a href=\"http:\/\/www.tbray.org\/ongoing\/When\/200x\/2003\/05\/12\/SoapAgain\">A good piece on REST versus SOAP links here.<\/a><\/p>\n<p><b><big>Is it Standardized?<br \/>\n<\/big><\/b><br \/>\nWell, this is where I really have the problem.\u00a0 MS controls their programming languages and environments.\u00a0 If you develop MS software, you do it in <a href=\"http:\/\/en.wikipedia.org\/wiki\/Microsoft_Visual_Studio\">MS Visual Studio<\/a>, and you likely code in a C variant or Visual Basic, using MS compilers.\u00a0 Your database is MS SQL Server. Visual Studio and SQL Server are powerful, mature products &#8211; I wouldn&#8217;t knock them.\u00a0 But Microsoft has been blazing through a succession of programming standards that a cheetah couldn&#8217;t keep up with over the years, revamping their languages rapidly, changing the recommended methods of connecting to data; And generally making the job of keeping up with their expectations unattainable. So while their platform uses standardized code and libraries in order for developers to produe applications with standardized interfaces, the development tools themselves are going through constant, dramatic revisions, far more disruptive ones than the more steady, well-roadmapped enhancing of the open source competition.<\/p>\n<p><b><big>Mixed Motives<\/big><\/b><\/p>\n<p>The drivers for this rapid change are completely mixed up with their marketing goals.\u00a0 For example, MS jumped on the web bandwagon years ago with a product called <a href=\"http:\/\/en.wikipedia.org\/wiki\/Microsoft_FrontPage\">Frontpage<\/a>.\u00a0 Frontpage was a somewhat simplistic GUI tool for creating web pages, and it was somewhat infamous for generating web sites that were remarkably uniform in nature.\u00a0 It was eclipsed completely by what is now Adobe&#8217;s <a href=\"http:\/\/www.adobe.com\/products\/dreamweaver\/\">Dreamweaver<\/a>.\u00a0 If you try and buy Frontpage today, you&#8217;ll have a hard time finding it, but it didn&#8217;t go away, it was simply revised and rebranded. Frontpage is now called &#8220;<a href=\"http:\/\/office.microsoft.com\/en-us\/sharepointdesigner\/FX100487631033.aspx\">Sharepoint Designer<\/a>&#8220;.\u00a0 It&#8217;s a product that Microsoft recommends that Sharepoint administrators and developers use to modify the Sharepoint interface.\u00a0 Mind you, most of your basic Sharepoint modifications can be made from within Sharepoint, and anything advanced can and should be done in Visual Studio.\u00a0 There&#8217;s no reason to use this product, as most of what it does is easier to do elsewhere.<\/p>\n<p>So it comes down to time, money and risk.\u00a0 The MS route is more complex and more expensive than the open source alternatives.\u00a0\u00a0 The support and <a href=\"http:\/\/www.microsoft.com\/Learning\/mcp\/default.mspx\">training is certified<\/a> and industrialized. All of this costs money &#8211; the tools, the support, the code samples, and the developers, who generally make $80-150k a year.\u00a0 The platform development is driven by the market, which leads to a question about it&#8217;s sustainability in volatile times for the company.\u00a0 As concluded in part one, Microsoft knows that the bulk of their products will be obsolesced by a move to Software as a Service.\u00a0 The move from O S-based application development to web development has been rocky, and it&#8217;s not close to finished.<\/p>\n<p>Look for part 3 sometime next week, where I&#8217;ll tie this all up.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article was originally posted on the Idealware Blog in October of 2008. This is part two of a three part rumination on Microsoft.\u00a0 Today I&#8217;m discussing their programming environment, as opposed to the open source alternatives that most nonprofits would be likely to adopt instead.\u00a0 Part one, on Windows, is here:http:\/\/www.idealware.org\/blog\/2008\/10\/biting-hand-that-bites-me-as-it-feeds.html Imposing Standards In<br \/><a class=\"moretag\" href=\"https:\/\/techcafeteria.com\/?p=1484\">+ Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[82],"tags":[160,155,16,236],"class_list":["post-1484","post","type-post","status-publish","format-standard","hentry","category-tech","tag-idealware-blog","tag-microsoft","tag-software","tag-standards"],"_links":{"self":[{"href":"https:\/\/techcafeteria.com\/index.php?rest_route=\/wp\/v2\/posts\/1484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techcafeteria.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techcafeteria.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techcafeteria.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techcafeteria.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1484"}],"version-history":[{"count":2,"href":"https:\/\/techcafeteria.com\/index.php?rest_route=\/wp\/v2\/posts\/1484\/revisions"}],"predecessor-version":[{"id":1655,"href":"https:\/\/techcafeteria.com\/index.php?rest_route=\/wp\/v2\/posts\/1484\/revisions\/1655"}],"wp:attachment":[{"href":"https:\/\/techcafeteria.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techcafeteria.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techcafeteria.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}