{"id":64,"date":"2008-01-16T21:16:59","date_gmt":"2008-01-17T01:16:59","guid":{"rendered":"http:\/\/www.cchsu.com\/art-en\/2008\/01\/16\/64\/"},"modified":"2008-01-16T21:16:59","modified_gmt":"2008-01-17T01:16:59","slug":"ui-development-1","status":"publish","type":"post","link":"http:\/\/www.cchsu.com\/art-en\/2008\/01\/16\/64\/","title":{"rendered":"UI Development (1)"},"content":{"rendered":"<p>In the good old days,\u00a0the definition of a witty computer power user\u00a0was that\u00a0he\/she knew something about GW-BASIC (or dBASE III, Lotus 1-2-3, you name it).\u00a0 All screens were 80 by 25 green text console and there were little requirements for UI.\u00a0 It was a paradise for UI programmers!\u00a0 Users were forced to learn all the tricks about using an application.\u00a0 If one did not know that pressing the slash (\/) key brought up Lotus 1-2-3 menus, he\/she was considered &#8220;disqualified in skills&#8221; and no one blamed that Lotus 1-2-3 had a lame UI.<\/p>\n<p>Unfortunately, the paradise faded away fairly quickly.\u00a0 We all knew that the UI of this age had many defects by design, such as<\/p>\n<ul>\n<li>It was designed for well-trained professional, which implied fewer users, higher training costs, and smaller market.\u00a0 Wall Street liked this model only if the profit margin grew better this way, which unfortunately\u00a0not.<\/li>\n<li>Heavy keyboard operations barred many baby and echo boomers.<\/li>\n<li>It was not fancy and friendly enough to use.<\/li>\n<\/ul>\n<p>To boost the revenue of software market, one simple way was to have more people buying and using computer software, which eventually led to a friendlier graphical user interface.\u00a0 The improvement of computing power and the invention of mouse made it possible.\u00a0 In the PC industry, Windows became the dominant OS and UI environment.\u00a0 Although the look-and-feel of Windows evoluted through versions, the great thing is that Win32 SDK\u00a0programming paradigm did not change (much) and thus programs written many years ago can\/may still run on today&#8217;s Vista machine.<\/p>\n<p>Microsoft Windows SDK\u00a0was first rolled out decades ago.\u00a0 In the beginning,\u00a0Microsoft C sucked (when Turbo C dominated the market), Win16 SDK sucked (where Intel 80286 was responsible for part of this), and thus it was not as popular as its successor, Win32 SDK.\u00a0 In the 32 bit era, there are better preemptive execution, better C compiler, and better designed Win32 SDK, so that the whole flow\u00a0became complete and mature.\u00a0 However, pure Windows SDK development was too demanding for most applications.\u00a0 As a result, Microsoft provided MFC to utilize C++ language features and to wrap the SDK so that\u00a0programming could be easier.<\/p>\n<p>As time went by, more and more new UI controls were introduced and they were as difficult to program with in MFC as using pure SDK, such as ListView.\u00a0 MFC also had some weird backward compatibility and \u00a0COM\u00a0issues version by\u00a0version\u00a0which further deteriorated itself.\u00a0 If one needed to spend so much time writing fatty MFC programs, why not spent much less time writing a fattier VB one instead?<\/p>\n<p>VB\u00a0might be\u00a0the most criticized language because it&#8217;s fat, slow, and blessed by Bill Gates.\u00a0 However, VB is a revolutionary language IMO.\u00a0 In many cases, people just want something that work without long waiting, especially the internal tools used in enterprises.\u00a0 These tools&#8217; time-to-market is far more important than performance, and that&#8217;s\u00a0the show stage to demonstrate\u00a0the power of VB.\u00a0 VB allows programmers to spend more of their time on business logic instead of tricky Windows messages and message loops.<\/p>\n<p>In the .Net age,\u00a0Windows Form was designed to replace legacy VB.\u00a0 IMO Windows Form was far from success because of following reasons:<\/p>\n<ul>\n<li>Architecture of enterprise applications shifted from client-server to multi-tier, and the trend of client-tier shifted from rich client to more managable web client (where ASP.NET covered).<\/li>\n<li>The need for full-customized software in the SMB segment dropped.\u00a0 SMB are using softwares that\u00a0are either good enough (e.g. PeachTree, ACT!), or flexible enough for minor customization (e.g. InfoPath), or shifted to ASP model (e.g. SalesForce).<\/li>\n<li>ISVs were hesitated to embrace .Net because of download size, look-and-feel,\u00a0or fear of instability.<\/li>\n<\/ul>\n<p>WTL\u00a0is one interesting thing\u00a0worth to mention here.\u00a0 Basically it can be treated as &#8220;MFC-done-right&#8221; and utilizes many modern C++ facilities to build slim fast Windows applications.\u00a0 However, WTL is far from popular because it is not included in VC++ and there are many alternative technologies other than Win32 UI\u00a0for developers to choose when WTL is born.\u00a0 We&#8217;ll talk more about these alternatives in the coming article.<\/p>\n<p>PS. As to Java AWT or Swing, don&#8217;t you think it&#8217;s something\u00a0similar to VB or .Net Windows Form in the fashion of building rich clients?\u00a0 IMO they are destined to limited applications and won&#8217;t draw too much spotlights in the future.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the good old days,\u00a0the definition of a witty computer power user\u00a0was that\u00a0he\/she knew something about GW-BASIC (or dBASE III, Lotus 1-2-3, you name it).\u00a0 All screens were 80 by 25 green text console and there were little requirements for UI.\u00a0 It was a paradise for UI programmers!\u00a0 Users were forced to learn all the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,2,6],"tags":[],"_links":{"self":[{"href":"http:\/\/www.cchsu.com\/art-en\/wp-json\/wp\/v2\/posts\/64"}],"collection":[{"href":"http:\/\/www.cchsu.com\/art-en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.cchsu.com\/art-en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.cchsu.com\/art-en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.cchsu.com\/art-en\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":0,"href":"http:\/\/www.cchsu.com\/art-en\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.cchsu.com\/art-en\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.cchsu.com\/art-en\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.cchsu.com\/art-en\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}