`
javasee
  • 浏览: 961170 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

技术标准化——福兮?祸兮?

阅读更多

诚如Jim Waldo所说,我们生活在一个标准的年代。我们常常不由自主地相信、选择标准。如果一个东西被标准化,我们就认为它开放、稳定、有保障、好用;反之,我们就不敢信任它。

但是,如今的标准也和以前不一样了。在C++和CORBA那里,首先是全世界的人使用它们,他们觉得有彼此兼容的必要,然后为它们订立标准。到了Web Service这里,情况完全倒了个:在看到任何实用价值之前,厂商已经为标准吵翻了天,技术讨论早已变成了政治、商业之争——而作为用户的我们还没用货币投票呢。

太多的标准。我们需要这么多的标准吗?对标准的过度重视甚至依赖是否会损害技术创新和发展?To be standardized or no to be, this is the question.


Artima Weblogs

Why Standards?

by Jim Waldo
May 18, 2003

Summary
Common wisdom, especially in distributed computing, says that the right approach to all problems is to use a standard. This common wisdom has no basis in fact or history, and is curtailing innovation and rewarding bad behavior in our industry.

We are living in the era of standards. Technology that is a standard is good because it is a standard; if something is blessed as a standard it can be seen as open, non-proprietary, and gets the blessings of the IT managers and the analysts. Something that is not a standard is closed, proprietary, and to be avoided at all costs. This is the received wisdom in our industry; it is so obviously true that we don't even question it, and we seem to get uncomfortable around those who ask why standards should always be used.

This kowtowing to the god of standards is, I believe, doing great damage to our industry, or craft, and our science. It is stifling innovation. It turns technical discussions into political debates. It misunderstands the role that standards have played in the past. Worst of all, it is leading us down absurd technological paths in the quest to follow standards which have never been implemented and aren't the right thing for the problems at hand.

Let's get back to first principles...standards have historically played two roles in our industry. The first role has been to codify what is already common practice in the industry. Such standards are attempts to capture what everyone is already doing, perhaps ironing out some minor inconsistencies along the way. But such a standards effort is at base a descriptive one. The original IP standard was such a beast; so was the ANSI C standard. Neither attempted to invent much of anything; both simply tried to make clear what everyone was already using. The standards being described were already de facto standards; writing them down was a documentation job that either got it right or missed the mark.

This is very different from a standards effort that attempts to invent the standard from the ground up. Such a standards effort is not descriptive, but rather an attempt to invent by committee. There is no common practice to describe; instead the standards group is trying to tell everyone what they should be doing in the future. The ANSI C++ committee, which started out as a descriptive body, became one of these sorts of standards groups when it was decided that they should "improve" the language. Many of the Object Management Group (OMG) Common Object Request Broker Architecture (CORBA) Common Services groups were this sort of standards body. There are lots of others around now; I'm sure you can name many of them so I won't. These are the de jure standards groups, and they are the ruin of our industry.

Those of you who have been part of a de jure standard effort know what I mean when I say that they turn all technical questions into political ones. Discussions may appear to center around the technology, but the real decisions are made either in setting up the requirements (beware the use case, my son) or in meetings outside of the general discussions between subsets of the committee who trade votes like Chicago precinct bosses. The ultimate threat in such organizations is that some of the founding (or important) members will split off and start a competing standards group, which seems to be happening on a weekly basis in some of these discussions. The real goal in all of this, of course, is to get your competitors to (unknowingly) agree to some approach to technology that you and your company already have in a product (either shipping or ready to go). Then what would otherwise be proprietary can now be seen as an "open" standard. Just an open standard that only you have.

What gets lost in all of this, of course, is whether the technology being blessed by the standard actually helps the customer to solve a real problem. Can the standard be implemented? Will the implementation perform adequately? How much will it cost? All of these sorts of questions are not appropriate in the era of de jure standards.

What is also forgotten in all of this is how fragile the de jure standards have been in the past. I can't think of a single standard that was invented by committee that has survived in the marketplace. The long-standing standards are those that were first de facto standards, and were described (no invented) by the standards bodies.

Such standards didn't start out in a standards body. They started out solving problems. Because they solved the problems, people used them. The use drove the standard, not the other way around. This allows innovation, this allows technical progress. Things that work get used by people who are trying to solve problems.

This does take the decision making power out of the hands of the managers, and the IT departments, and the technical analysts. They aren't trying to solve problems in new ways; they are trying to lead parades, or keep their jobs, or show that they have influence. They aren't the engineers that can actually understand the solutions, but they do (for the most part) understand politics. Standards groups cater to their expertise, not the expertise of the engineer.

Of course, this hard dichotomy is something of a caricature. There are substantive discussion of technical merit in standards groups that are trying to invent. But that isn't all that goes on. And certainly there is little evidence that the best technology wins in such groups. Just look around you for evidence of that.

So the next time you are talking to a manager and he or she tells you that you have to use something "because it is a standard", push back. Ask why only standards can be used. Ask if the standard has actually been implemented, or if the standard will really solve the problem under discussion. For that matter, ask if the manager really knows what the standard is. If any of these questions can't be clearly answered, may the standard isn't the way you should approach your problem.

Talk Back!

Have an opinion? Readers have already posted 8 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Jim Waldo adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Jim Waldo is a Distinguished Engineer with Sun Microsystems, where he is the lead architect for Jini, a distributed programming system based on Java. Prior to Jini, Jim worked in JavaSoft and Sun Microsystems Laboratories, where he did research in the areas of object-oriented programming and systems, distributed computing, and user environments. Before joining Sun, Jim spent eight years at Apollo Computer and Hewlett Packard working in the areas of distributed object systems, user interfaces, class libraries, text and internationalization. While at HP, he led the design and development of the first Object Request Broker, and was instrumental in getting that technology incorporated into the first OMG CORBA specification.

This weblog entry is Copyright © 2003 Jim Waldo. All rights reserved.
分享到:
评论

相关推荐

    5G基础入门知识-归去来兮的百宝箱

    这一技术标准由3GPP负责具体研究和制定,它代表着移动通信技术的新阶段,不仅提升了速度,还扩展了应用场景,对物联网、智慧城市、自动驾驶等领域产生了深远影响。 5G的发展历程可以追溯到20世纪80年代的1G,主要...

    UML期末大作业——PDF

    UML(统一建模语言)是一种标准的方式,用于可视化、规格化、构建和记录软件系统的蓝图。它包括一系列图表,比如用例图、类图、序列图、状态图等。在这个案例中,UML被用于设计和文档化“XX市教师项目调研统计平台...

    大学食堂面食档口排队效率分析与优化.docx

    简化复杂的流程,如采用标准化配料包,减少个人定制的需求。通过这些改进,实际试运行结果显示,排队效率得到了显著提升。 论文强调了标准作业程序(SOP)在流程优化中的重要性,通过绘制流程图,明确每个环节的...

    小米商城静态模型.zip

    《小米商城静态模型——基于layui的前端实现》 在当今互联网时代,优秀的前端设计与实现是吸引用户、提升用户体验的关键。本项目“小米商城静态模型”正是这样一款以layui框架为基础,采用HTML5和JavaScript技术...

    8中华文化的勃兴(一).ppt

    秦始皇统一中国后,确立了方块字的标准化,标志着文字的进一步发展。 【天文历法与医学】 在古代中国,天文观测始于夏朝,如日食的记录。商朝时,观测范围扩大至日食、月食。到了战国,出现了二十四节气的划分,对...

    java培训个人工作总结.doc

    与面向过程编程相比,OOP更加模块化和易于维护,降低了程序的复杂度。 面向对象的三大特性——继承、封装和多态,是其核心所在。继承允许子类从父类继承属性和方法,实现了代码的复用和扩展。封装则是将数据和操作...

    用于车牌号识别的字符模板.zip

    车牌识别技术是现代智能交通系统中的重要组成部分,它主要用于自动识别车辆的身份——即车牌号码。在本"用于车牌号识别的字符模板.zip"压缩包中,包含了一整套用于车牌字符识别的训练数据集,主要涵盖了全部的数字...

    习茶礼仪培训教材.pptx

    总结来说,【习茶礼仪培训教材】不仅教导茶艺人员如何呈现专业的形象,还强调了内在的道德品质,如孟子提到的“善心”——仁、义、礼、智,提倡以爱心为基础的服务态度,体现对自我和他人的关爱。这样的培训旨在培养...

    tomcat系列

    本系列涵盖了Tomcat的三个重要版本——Tomcat 6、Tomcat 7和Tomcat 8,它们各自代表了不同时期的技术发展和特性改进。 【Tomcat 6】 Tomcat 6是Apache Software Foundation在2006年发布的,主要支持Java EE 5规范。...

    大体评定量表(GAS)

    《大体评定量表(GAS):评估精神疾病的标准工具》 大体评定量表(Global Assessment Scale,简称GAS)是精神疾病评估中的一种重要工具,尤其在精神科领域,它的应用尤为广泛。源自1976年NIMH(美国国立精神卫生...

    ffmpeg ffplay.zip

    FFmpeg是一个全面的、跨平台的解决方案,用于处理音频、视频以及图像格式的编码、解码、转换和流化。而ffplay是FFmpeg的一部分,是一个简单但功能强大的媒体播放器,它基于SDL库构建,可以播放多种格式的音频和视频...

    rtl8192cu-linux驱动

    这款芯片支持802.11n无线标准,能够提供最高达150Mbps的传输速率,同时向下兼容802.11b/g标准。在Linux系统中,由于内核的版本差异和硬件的兼容性问题,可能需要手动安装或更新驱动来确保最佳性能。 要安装rtl8192...

Global site tag (gtag.js) - Google Analytics