土木行业软件应向开源发展
1.信息技术的应用
随着计算机技术的发展,信息技术的应用业已渗透到了社会的各行各业。在土木工程行业,先进的信息技术产品也受到极大的欢迎,人们也更加渴望能有更多更好的技术产品被开发出来,将人们从日益重负的工作中解脱出来,提高工作效率和工作质量。这个改善是显著的,如若到现今许多的设计单位,已经很难看见有人再伏在图版前描画图纸。一些过去尤显重要的设计硬件都被抛弃在了一边,转而使用先进的CAD软件。
究竟截至目前,计算机信息技术已经在土木行业的那些方面得到应用了呢?我们可以大致把它们归为数值分析、图形设计、结构分析、力学计算、工程测量、施工技术及项目管理、仿真与模拟、工程信息化、协同工作等方面。
2.现在的状况
时至今日,计算机器件技术、组成技术得到了很大地发展,计算机的处理能力和系统结构能够适应各种不同的应用要求。然而,计算机的性能的发挥还要看是否有高效的软件,提高硬件的利用率,提高系统灵活性。
在土木行业,已经不乏有许多好的软件得到应用。可是,只要是软件就必定会有自己的生命周期。一方面,是随着工程技术的发展,出现了新的解决问题的方法。要把它们转移到过去的计算机软件中,就需要提供商对软件的相关功能模块进行重构维护,用户则只能拭目以待。另一方面,行业软件经常是为解决某一方面的问题而设计,当用户出现额外的需求,过去的软件商往往难以兼顾,使得用户不得不去寻求其他的或者编写新的软件。这样做,最终都提高了应用的成本,降低了软件的利用率。
软件提供商独占核心产品产权,这是当前软件的一个特点。这也造就了如微软、IBM、Autodesk等一批软件公司。可是,这样的局面下出现了许多问题,比如软件的性能和安全性完全掌握在提供商手中,软件公司常向用户隐瞒设计或开发过程中的漏洞。另外一个问题是,当新的公司或个人想进入这一领域时,不得不从头开始,重复已经得以实现基础性技术环节,以及可能陷入被率先这一领域的公司的起诉的风险。
3.该如何解决
开源软件 — open source software。
解决一个的问题都需要提出一个可行的方法,开源软件就是这个方法。
4.为什么开源软件可以解决?
开源软件的定义让它具有了可自由重新发行、可以被修改和衍生新作品、不限制使用目的、不收取销售版税、可多人协同开发等特点(可以参考附录1的开源软件定义)。开源软件和自由软件的最大区别就是开源软件并没有限制商业用途。自由软件是Richard Stallman的哲学,而开源软件则理性的思考了从事软件行业人们的生存,并且让开源与商业软件可以更大程度的混合。
正因为如此多的优点,开源软件具有极大的生命力和灵活性。有关土木行业软件现状的问题,也一一得解。其实,不仅仅是在土木行业,在计算机相关各个领域都叙述掀起了开源运动。只是,在互联网技术领域相对较快。并且,之前如IBM这样的计算机业巨头也积极投身到开源社区。不过,在土木行业软件领域,这只还是个开始,但也是一种迫切的需求。
附录1 [原文] 出自 www.opensource.org [译者] Dirk Xu 【有修改】
【开源软件定义】
开源,并不仅仅是公开源代码。 开源软件的发行必须遵守以下标准:
1. 自由重发行
任何组织都可以把一个或多个不同的开源软件作为自己程序的一部分,来进行出售或分发。开源软件的许可权中,不能对此要求支付版权费或其它费用。
[注] 自由发布限制了程序商因谋求短期营利,而放弃某些长期收益的作法。
2. 源代码
发布的程序必须包含源代码。如果产品的发布中没有源代码,那么必须提供一个免费的,容易获得其源代码的方式,比如Internet的免费下载, 以便于其更好的传播与复制。 源代码必须以一种易于程序开发人员开发的方式发布。 一切混淆源代码的作法都是不允许。以一种中间产物的形式(比如,预处理指令,转译程序)发布其源代码也是不允许的。
[注] 清晰的源代码促使人们修改它,促进了开源软件的升级、进化。
3. 衍生作品
开源软件必须许可人们对其进行修改和对它产生衍生作品的权利。允许人们以原作品同样的许可权,发布它们修改后的或衍生出的作品。
[注] 提供易于修改的源代码,还需要赋予人们修改的权利,才能让开源软件快速变革。
4. 作者源代码的完整性
当开源软件使用者发布其修改的产品时,开源软件作者可以限制人们对其原作品的发布。人们不可以发布原作品, 除非许可权中允许补丁程序可以与原作品一起发布, 以便于其它使用者安装和使用这些补可作品。许可权限中可以要求衍生的作品以不同于原作品的名字或版本号发布。
[注] 促进修改开源软件是件好事,但需要让使用者知道,谁该负责这个软件。原作者和维护者都应该拥有提供帮助和保护其名誉的权利。补丁 + 源码的发布方式,可以确保开源作品易于获得稳定版,同时确保非官方的修改可以被人们使用,并且这些修改可以被人们很容易地识别出来。
5. 不得歧视个人或团队
开源软件的许可协议中,不能存在对个人或团队歧视的条款。
[注] 为了最大化的利益,任何人或团队都有平等的权利为开源事业做出贡献。
6. 不得歧视任何使用目的
开源软件的许可协议中,不得约束人们对其在某些行业的使用或开发。例如,不可以阻止人们把它用于商业,或遗传学上的研究。
[注] 防止开源软件的许可权中有阻止其用于商业行为的陷阱。我们想要商业开发人员加入开源事业中来。
7. 许可证的发行
所有对开源软件进行重新发布的软件,都会被该开源软件中所附的发布条款约束,但不可以再有另个的条款约束。
[注] 此条款的目的是防止因某些未公布的条款,而终止某个开源的发布。
8. 许可证不能针对某个产品
开源软件中所附的权限,与它发布在某个产品中无关。如果从发布的开源程序中提取出一部分程序,进行使用或发布,同样受到原作品中发布条款的约束。
[注] 此条款是阻止另一种开源软件许可权的陷阱。
9. 许可权不能约束其它软件
许可权不能约束与其一同发布的其它软件。例如,许可权中不能强调与其一同发布的其它软件,也必须发布为开源软件。
[注] 开源软件中的许可权仅可以约束自己。GPL兼容此条例。使用GPL库的软件,它需要遵守GPL许可,但它使用到的其它第三方库,可以独立出来,并不需遵守GPL许可。
10. 许可权必须技术中立
许可权中不可以间接或直接地鼓励某些个别的技术。