从二十一世纪头十年的软件技术发展历程来看,其存在两个主要的趋势:开源Web化

虽然软件技术从一开始就是开放源代码的。但上世纪最后二十年,是属于闭源软件开发商的“黄金年代”。从那个时代中走出了Microsoft等一系列商业软件公司,而这些公司的核心竞争力在于其源代码。但近十年的发展,这样的趋势已经被打破。开源软件越来越重要,并逐步成为商务业务中的主流软件技术,其主要表现为:

  • 稳定高效的开源操作系统日益成熟:不论在服务器端、还是在桌面PC端、或者是移动智能设备中,开源操作系统已经逐步成熟,并已经取代既有的商业操作系统,成为最主要的开发平台。在服务器端,RedHa(CentOS)、Ubuntu(Debian)和OpenSuSE日益成为最主要的服务器操作系统,Apache成为最主流的Web服务器,MySQL被绝大多数服务器作为主要数据库系统,......。可以毫不夸张地说,在服务器端,闭源商业软件的获利空间已经很狭小了。在桌面PC端,Windows平台虽然仍然是霸主,但其市场逐步被免费的Ubuntu、Fedora等所蚕食。在桌面操控与用户体验度的竞赛中,Windows已经从既有的被赶超者沦为赶超者,而最新的Ubuntu 10系与Windows7系对比而言,其占用资源更小,界面更美观,操控更方便。而在移动智能设备开发中,WindowsCE显然没有获得期望的市场,而既有的Symbian等系统也面临众多基于Linux内核的开源操作系统的威胁,其中包括Google的Android平台。随着开源操作系统在不同硬件环境下的逐步成熟,其将对于软件技术的开发产生根本性的影响。
  • 开源代码库的飞速发展。经过近三十年的技术积累,开源代码库已经有了很大的积累。这不仅仅是从数量上考量,更是从质量上而言。在开源代码库中,一些重量级的代码库逐步成熟。例如在C++平台下的Boost开源库,其技术广度与深度是任何一家商业软件公司的产品难于企及的。而且这些开源代码库与SVN、Google Code Search和Sourceforge等平台相整合,形成一个快速查询、定位、获取与比较的环境,这对于软件开发者来说是最大的资源。
  • 开源商业模式的日趋成熟。软件的发展离不开商业的推动。在上世纪八九十年代,软件主要依靠授予权收费而获利。这一较为单一与原始的商业模式在今天已经被打破。软件已经进入“免费”时代。在这个时代中,免费与高效的软件比比皆是,用户选择范围很大,已经完全没有为授予权付费的驱动。同时,开源软件的商业模式已经逐步成熟。除了以Web形式提供免费服务的软件系统,还有许多利用拓展服务来进行商业运作的软件系统。商业模式的成熟促进开源软件趋势的发展。也正因为如此,业界许多大型公司,如IBM、Oracle等都大力推动开源软件,期待从中获取发展主导力量。
  • 开源社区与文化的成熟。相对于上个世纪末,目前开源社区更加成熟,其运作更加专业化。信息互通的渠道也更多样。人们可以不用劳力费神地制作“HomePage”,或者去维护WebSite Application。而只需要注册一个博客、甚至一个微博,就可以进行软件技术信息发布。而且可以通过各种通用语垂直搜索引擎来获取软件开发技能信息,进而增强自身的软件能力。

由此可见,开源软件将成为软件发展的主流之一。而现在软件技术学习的主要目标在于增强自己在开源软件中的开发能力。

软件开发的另一个趋势是:Web化。目前软件形式已经脱离了单纯的单机形式,或是局域网形式。基于Web平台开发面向多终端、分布式的软件系统已经成为主流。这很像上世纪八十年代初,软件开发由大型机转向PC一样。在七八十年代之交,软件主要是面向大型机,如IBM的X360,而到了八九十年代,面向X86架构的PC机软件已经成为主流。绝大多数的程序员都在开发PC机程序。由此可类比,随着互联网技术的发展,面向Windows平台或者Linux平台单机开发的软件将越来越少,而带有Web通信与服务功能将成为软件必须具备的模块。

对于每个程序员,这三个问题很值得我们深入地进行思考:

  • 为何要学习编程?
  • 有没有持续学习的动力?
  • 想要让编程帮助你达到怎样的人生目标?

在上述两个趋势下,对于上述问题存在一个思考的方向,即强化自我的开源软件技术与Web技术开发能力,将最利于在软件发展中获得最大的实现价值,其主要有如下具体实现方式:

  • 强化自己对于开源系统的操控能力。对于Windows用户而言,安装一个VirtualBox免费虚拟机软件,再安装一个Ubuntu系统是最好地与Linux系统亲密接触的方式;
  • 熟悉基于社区方式的开发技巧。要善于使用代码搜索引擎,并善于在开源社区中寻找帮助与进行提问。要逐步熟悉社区的文化,用最“潮”的交流方式进行技术沟通。
  • 遵循团队开发原则,培养良好的文档习惯。开源软件开发需要更好的团队开发能力,因为许多开源软件都是基于Web进行开发,其参与者之间并不进行面对面交流。这就要求有良好的开发习惯,特别是文档编写习惯。只有这样才能真正融入开源软件开发中,从开源社区的海量资源库获取知识与技能。
  • 编程语言不是问题,但深入学习一些开源社区的主流语言仍是必要的,比如PHP与Python等,通过这些语言的学习会帮助你提升开源软件开发能力

转载于:https://www.cnblogs.com/yankchina/archive/2010/08/02/1790476.html

[Soft]软件技术的两个趋势相关推荐

  1. 信誉管理软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    报告页数: 150 图表数: 100 报告价格:¥16800 本文研究全球与中国市场信誉管理软件的发展现状及未来发展趋势,分别从生产和消费的角度分析信誉管理软件的主要生产地区.主要消费地区以及主要的生 ...

  2. CAD查看器软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    报告页数: 150 图表数: 100 报告价格:¥16800 本文研究全球与中国市场CAD查看器软件的发展现状及未来发展趋势,分别从生产和消费的角度分析CAD查看器软件的主要生产地区.主要消费地区以及 ...

  3. 泌尿外科电子病历软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    本文研究全球与中国市场泌尿外科电子病历软件的发展现状及未来发展趋势,分别从生产和消费的角度分析泌尿外科电子病历软件的主要生产地区.主要消费地区以及主要的生产商.重点分析全球与中国市场的主要厂商产品特点 ...

  4. 健身软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    本文研究全球与中国市场健身软件的发展现状及未来发展趋势,分别从生产和消费的角度分析健身软件的主要生产地区.主要消费地区以及主要的生产商.重点分析全球与中国市场的主要厂商产品特点.产品规格.不同规格产品 ...

  5. 企业防火墙软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    本文研究全球与中国市场企业防火墙软件的发展现状及未来发展趋势,分别从生产和消费的角度分析企业防火墙软件的主要生产地区.主要消费地区以及主要的生产商.重点分析全球与中国市场的主要厂商产品特点.产品规格. ...

  6. 汽车零售软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    本文研究全球与中国市场汽车零售软件的发展现状及未来发展趋势,分别从生产和消费的角度分析汽车零售软件的主要生产地区.主要消费地区以及主要的生产商.重点分析全球与中国市场的主要厂商产品特点.产品规格.不同 ...

  7. 人力资源(HR)软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    报告页数: 150 图表数: 100 报告价格:¥16800 本文研究全球与中国市场人力资源(HR)软件的发展现状及未来发展趋势,分别从生产和消费的角度分析人力资源(HR)软件的主要生产地区.主要消费 ...

  8. 广域网优化软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    报告页数: 150 图表数: 100 报告价格:¥16800 本文研究全球与中国市场广域网优化软件的发展现状及未来发展趋势,分别从生产和消费的角度分析广域网优化软件的主要生产地区.主要消费地区以及主要 ...

  9. 飞机MRO软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    报告页数: 150 图表数: 100 报告价格:¥16800 本文研究全球与中国市场飞机MRO软件的发展现状及未来发展趋势,分别从生产和消费的角度分析飞机MRO软件的主要生产地区.主要消费地区以及主要 ...

  10. 固定资产管理软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    本文研究全球与中国市场固定资产管理软件的发展现状及未来发展趋势,分别从生产和消费的角度分析固定资产管理软件的主要生产地区.主要消费地区以及主要的生产商.重点分析全球与中国市场的主要厂商产品特点.产品规 ...

最新文章

  1. Android环境搭建和Android HelloWorld—Android开发环境搭建
  2. 【2】Vue项目引用Element UI(饿了么框架)菜单导航条初期配置
  3. py-faster-rcnn用自己的数据训练模型
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1108:向量点积计算
  5. 《Linux From Scratch》第二部分:准备构建 第五章:构建临时文件系统- 5.2 工具链技术备注...
  6. java throw与throws_基于Java中throw和throws的区别(详解)
  7. Java开发人员的5种工具
  8. css笔记——css 实现自定义按钮
  9. DevExpress v18.1新版亮点——WPF篇(五)
  10. 【华为云技术分享】STM32L476移植华为LiteOS系列教程---Kconfig 6
  11. 95-10-035-启动-Metrics
  12. 计算机教学改革主要内容,计算机教学改革主要内容和措施.doc
  13. 交通流理论学习(Introduciton)
  14. android经典动态壁纸,android中自定义动态壁纸
  15. 思科无线服务器,Cisco统一无线网络TACACS+配置
  16. mysql .ibd_MySQL单表ibd文件恢复方法详解
  17. 小米路由器sn算ssh密码_路由宝刷小米mini编程器固件,开SSH.
  18. mysql in 子查询无法使用索引全表扫描 慎用in
  19. python urlencode函数 adb打开,Python urlencode和unquote函数使用实例解析
  20. Tomcat服务器的默认端口是多少?怎样修改tomcat的端口?

热门文章

  1. python语言检测模块langid、langdetect使用
  2. SQLServer实现将VARCHAR字符型对象转化为int/float数值型对象后排序、对VARCHAR对象截取指定部分再转化为数值对象进行排序
  3. python实现json文件中向量写入Excel中
  4. mysql 触发器 new.id_mysql 触发器 new.id
  5. ubuntu定时任务cron 访问网址php
  6. python图片x轴数据过多_一个操作证明python数据可视化比excel强百倍:X轴刻度间隔显示...
  7. 【cookie,session】cookie和session基础知识入门
  8. LogBack 日志等级设置无效,原因竟然是因为这个?!
  9. Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 redis 缓存
  10. ubuntu server 14.04/16.x 开启 root ssh 登录