| Scott 的个人资料Software Development Wit...日志列表 | 帮助 |
|
8月23日 HTML is the New Assembly LanguageAnybody remember assembly language? It's either that thing you learned in college and promptly forgot about when you learned C, or the language you fell back on when you needed to be "close to the metal". Assembly language has two distinguishing characteristics. The first characteristic is that assembly language truly embodies the essence of the system that runs the software, exposing the machine's most intimate details and enabling its most extreme capabilities. The second distinguishing characteristic of assembly language is that almost nobody actually uses it anymore. I believe that HTML is headed in that direction. Let's consider the business lifecycle of assembly language. (Yes, we could quibble about the distinction between "machine language" and "assembly language", but that is irrelevant for the subsequent discussion.) Way back when -- or so I'm told -- assembly was just about the only available language for system software development, and knowledge of it was essential if you wanted to accomplish anything in that space. As time went on, higher-level languages like Pascal, Fortran, and C entered the picture. These languages -- whose compilers were typically written in whole or in part in assembly -- were used to build many of the same applications that were formerly attainable only via direct assembly language coding. Assembly was always there in the background being used by compiler writers, and for developers to escape to ("inline assembly") if they needed a bit more performance or power. But over time, compilers for high-level languages got better and hardware got faster, making any assembly-driven performance boost less noticeable. In fact, compilers got SO good that if you ever did augment your C code with assembly, you were just as likely to slow your application down as to speed it up. Fast-forward to today. Higher-level languages have empowered millions of new software developers and enabled entire new classes of applications (imagine writing Microsoft Office in 100% assembly code). As higher-level languages thrive in practice, assembly language sees only limited application, in the embedded, tools, and systems spaces. How does this relate to HTML? Assembly and HTML are the most fundamental languages that their target environments understand: As assembly is to the machine (yesterday's platform, if you will), HTML is to the browser (today's platform). And just as C and other high-level languages obviated the need to code assembly to target the system, high-level web development frameworks like ASP.NET and Google Web Toolkit are obviating the need to code HTML to target the browser. HTML will continue to be taught and learned as long as we have the browser, just as assembly is still taught today. But the emphasis will be more on developing a holistic understanding of the browser environment, and to train the next generation of tool and framework authors. Except for those building the frameworks, there will be far less emphasis on direct development in HTML, Javascript, and CSS. HTML will always be there to escape to ("inline HTML?") when the frameworks can't achieve the necessary functional or non-functional requirements. But over time, the need for this will be less and less. Detractors of higher-level abstractions in web development are missing the forest for the trees. The clear lesson from the history of assembly is that wherever you think ASP.NET, GWT, and other modern more technologies are today, they will improve rapidly and subsume an increasing number of use cases that in the past could only be satisfied with raw HTML, Javascript, and CSS coding. And moving away from forcing the developer to worry about HTML/Javascript/CSS will enable web applications of increased complexity and much higher quality. I don't often do opinion pieces in this space, and it seems as good a time as any to point out that my thoughts don't in any way represent those of my employers past, present, or future. But I feel quite comfortable in saying that I don't believe my daughter will work with HTML. In fact, she'll probably look at it as an interesting technical subject, but also a relic of the past -- much the same way we now view assembly language. 评论 (1)
McMasterScott
在此页禁用了评论功能。
引用通告此日志的引用通告 URL 是: http://softwaredevscott.spaces.live.com/blog/cns!1A9E939F7373F3B7!429.trak 引用此项的网络日志
|
|
|