从2000年UCanCode E-Form++ 图形可视化源码库2.0在国外开始销售以来,弹指一挥间已经快14年了。这14年里见惯了各种新技术的不断涌现、也见惯了各种科技公司的不断出现和消亡,仔细想来也对,软件其实也是一个生态,这个生态环境中有生命力强的大树,也有更多作为大树养份的小众植物。大树只所以能不断长大,长久不衰,我想一个很重要的原因就是大树从出生那一刻起就具备的优质基因以及优秀的架构。让我们深有感触的是:软件开发确实是一个需要不断积累的过程,从当初E-Form++的简单制图源码,到现在能快速开发各类工业基础应用的优秀的图形可视化开源架构,如果没有UCanCode的坚持,随时都可能面临着夭折!当然也就不会有现在全球数千家大型软件公司能够“拿来即用”开源基础库了。1999年我开始负责E-Form++核心基础架构的设计和开发,本人从事C++编程已经超过17年了, 这些年我基本只看不说,一来担心自己不会说,另外一个是怕说错。

个人以为,软件同其他工业产品一样也应该分为传统软件行业和新技术软件行业,新技术会在极短的时间不断涌现,代表着新的生命,甚至预示着未来的方向,但这个方向是不断修正的。这也就是我们会看到很多技术在出现之后很短时间就消失了。

传统软件行业(比如石油、化工、造船、航空、航天… … etc)却始终保持着非常稳健和平缓的步子向前迈。当Windows 7 & Windows 8在个人应用领域铺天盖地的时候,传统软件行业才刚刚完成Windows 2000到Windows XP的全面转换。作为向中国这样一个体量的大国,如果没有坚实的工业能力是绝对不可以的。

一提到软件编程语言的选择,很多人无不将关注点放在C#, VB, Java上面。其实这也没错,毕竟这些语言学起来容易、用起来方便。但作为基础软件行业(工业控制、数控、CAD, GIS,制造,建模与仿真等等)支撑着我们国家的工业软件基础却需要大量的C++开发工程师。UCanCode Software这14年里的感触最明显,跟我们接触的软件开发公司国内的和国外的开发水平差距巨大,作为工业软件开发的主力(C++)目前还多以70年代开发员的为主,而80-90后学C++的就相对少多了,试想想, 70年代的人很快就奔40了,新生力量是多么的不可或缺。对比中美软件领域看来,作为工业最强国的美国基本上每个大型的实验室,每个具体的工业领域都有非常专业的软件。而国内绝大多数都是空白。中国的GDP已经上升为全球第2位,作为中国人是很自豪的一件事,无不希望祖国能够更加强盛。 但现实很残酷,由于软件基础差,我们的出口的产品基本上都只能做中低端的。这里还更不用说基础软件差对国防国家安全构成的威胁。

因此,作为一个在软件基础行业超过17年老程序员,我要大声讲:要爱国,请从我做起,从学习C++做起!

开发基础性软件尤其是基础性C++图形可视化架构异常困难,我在UCanCode Software这么多年, 还是一直在尽最大的努力来为国内的C++开发工程师提供一个尽可能完美的开放源码C++图形基础架构, 我们希望是尽可能的将计算机的图形可视化部分编程基础架构化,以尽可能的节省我们在开发工业控制、监控、建模与仿真、CAD、GIS、打印等等开发时间。 一个优秀的C++图形可视化架构设计起来可谓呕心沥血, 每个功能都得考虑得异常细致, 有的时候甚至是如履薄冰。UCanCode Software一直秉持着源码绝对100%开放的理念的理念也一直激励着我们要尽可能将架构设计得更好、质量更高。微软的Visual Studio版本每隔1-2年就有一个新版本,从Visual Studio 5.0, Visual Studio 6.0, Visual Studio 2002, Visual Studio 2003到Visual Studio 2013光版本号都好长一串, 基础架构库的设计目标就是要保证所有C++工程师在每个Visual Studio环境下都好用、易用。

每当看到外国人在从我们购买的E-Form++可视化图形源码(UCanCode.com上免费下全功能评估版本)上很快开发出产品,然后又高价将开发出来的软件卖给我们国家的企业后,都有一种迫切的愿望,真诚希望我们国内的基础性软件行业好好用我们的源码多开发些属于咱们国家自己的好软件。

全面开放这些源码,我们希望通过我们的绵薄之力能够全面提升国内软件公司在开发电力、能源、化工、机械、造船、石油、航空、航天等领域的软件开发能力。通过这些源代码,您不仅能学习到如何用VC++编写大型软件工业建模与仿真、监控、工控、组态、CAD、GIS软件,还可以学习如何使用各种领先的设计模式来创建成熟的应用。 为了能最大限度的帮助国内开发人员,在我的力促下, UCanCode不但完成了所有软件功能的全面本地语言化, 还专门设置了军工与科研机构折扣, 这也算我为中国软件事业尽的一份绵薄之力!

(完!)

关于学习C++编程语言对中国软件发展的的一些思考!的更多相关文章

  1. 是什么让C#成为最值得学习的编程语言

    随着 Web.iOS.Android.智能设备的流行,新的编程语言纷纷涌现并表现不俗,如 Ruby,Python,Scala,Go,Node.js,Swift 等.反观已经发展了近20年的 C# 语言 ...

  2. 转:为什么说Python是最值得学习的编程语言

    老猿作为一个老程序员,研究生毕业后就没有这么用心的学过一门新的语言,而今年4月开始学Python以来,疯狂的迷上了它,有时很想写一篇为什么要学Python的文章,可一直懒没动笔,今天看到博友" ...

  3. Atitit.编程语言and 自然语言的比较and 编程语言未来的发展

    Atitit.编程语言and 自然语言的比较and 编程语言未来的发展 1. 单词的间隔靠空格,编程的单词的间隔靠分界符..1 2. 语句分界符:自然语言使用逗号,编程语言使用分号1 3. 换行1 4 ...

  4. 总结了零基础学习Java编程语言的几个基础知识要点

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.本文总结了零基础学习Java编程语言的几个基础知识要点. 1先了解什么是Java的四个方面   初学者先弄清这 ...

  5. 1.html5 学习要求,Html 5发展历程

    以下是我在学习html5,项目中用到的关于html5的总结和心得. 1.学习要求 Html4.01,xhtml Css2 Javascript 耐心,动手,毅力. 2.Html 发展历程 Html1. ...

  6. 学习 java 编程语言两个月来的感受

    今天是我接触java编程的第81天, 现在的感受是觉得非常快乐, 每次看着自己的写的代码能成功运行的时候那种喜悦是无法言表的, 最初接触电脑还是在小学, 后来到了初中觉得电脑无非就是点点鼠标, 按按键 ...

  7. java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)

    最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...

  8. 如何深入系统的学习一门编程语言——python自学笔记

    前言 最早接触python的时候,他并没有现在这么火,我也没把他太当回事,那时候我对python的印象就是给运维人员使用的一门很古老的语言,显然随着tensorflow(以下简称tf)的兴起,pyth ...

  9. python学习day3 编程语言分类 变量 格式化输出

    1.编程语言分类 机器语言:直接使用二进制指令直接编写程序,直接操作计算机硬件,必须考虑硬件细节 汇编语言:使用英文标签代替二进制指令去编写程序,直接操作计算机硬件,必须考虑硬件细节对,不过相比机器语 ...

随机推荐

  1. url的内容及格式

    url的内容及结构: url格式:

  2. el: 在jsp页面内使用函数判断子字符串

    e.g. <c:forEach items="${datas}" var="data"> <c:if test="${not fn: ...

  3. js字符串和正则表达式中的match、replace、exec等的配合使用

    正则并不是经常使用,而正则和字符串之间的函数关系又错综复杂,谁是谁的函数,又是怎么样的一种结果,往往我们是看一遍忘一遍,对此我是头疼不已,感觉自己是个笨蛋^_^. 为了以后不再查文档,特此把常用的函数 ...

  4. Oracle手工创建数据库

    1,确定数据库全局变量名和实例名 DB_NAME = ORCL SID = ORCL 2,确定数据库管理员的认证方式: 管理员的认证方式包括操作系统认证和口令认证两种,本例采用操作系统认证 3,创建初 ...

  5. JVM 虚拟机 内存说明

    Java虚拟机所管理的内存图: 1程序计数器: 该模块作用是记录线程执行字节码的位置,记录程序执行状态,以便该线程下次获得CPU时继续执行.程序里的每个线程程序计数器相互独立,互不影响,该内存区也称“ ...

  6. Java自由块(静态和非静态)(转载)

    java中的自由块分为两种: 静态块和非静态块 静态块: public class Test { 2 static int x = 10; 3 //静态块:静态块的执行时机是在class文件装载的时候 ...

  7. 基于内存,redis,mysql的高速游戏数据服务器设计架构

    转载请注明出处,欢迎大家批评指正 1.数据服务器详细设计 数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改. 数据层次上分为:内存数据,redis数据,mysql数据 设计目的: ...

  8. μC/OS-Ⅲ系统中的任务就续表

    μC/OS-Ⅲ支持任意数目的不同优先级.一般情况下64级优先级就足够了. 在μC/OS-Ⅲ中所有已经就绪等待运 行的任务都被放入一个我为的“就续表”(ready list)中.就续表包括两部分:一个就 ...

  9. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...

  10. Disable testSuite and testCase on some environment

    def testEnv = context.expand('${#Project#testEnv}') String[] testCases = ["CheckEARouting(ADS)A ...