时间:2016-12-21来源:本站原创作者:佚名

问:

学校为我下学期的CIT考试准备了五门编程考试,其中有四种语言是需要涉及到的:它们是JAVA,VB.NET,C,C++,每一门都有基础课程和高级部分,我被要求在其中选择2门学习(一门主一门选修),问题:我该如何选择,哪门适合当主打语言,同时选修其基础和高级部分,哪门当副语言?这样我就仅需要学习其基础部分就够了?

——————————-

答:

C不是单纯的一门语言,它实际表示着“以C为中心的C系语言体系”的核心,C的应用(适用于用C开发出的程序)被部署和执行在本地操作系统层面(C,C++编译器套件实现会使用运行时库的DLL作为后端,以OS的API为接口,产生能运行于其上的APP逻辑),这种程序或应用,通常着眼于解决系统编程问题产生的地方,和原生AUI应用程序的开发领域。

CPP被包含在C系中作为一员,它一定意义上是“一种C的语法增强和运行时增强了的产物”,但是它并没有改变“CPP与C共同面向针对要解决同一个问题领域”的本质目的和采取的方式,即:与系统本地APIruntime为后端合作,支撑C系应用APP逻辑在其中部署(语言后端合作)运行,最终解决本地问题。

虽然C和CPP有很多不同,但是,现今为止你只需要懂得以上的事实即足够用来用来澄清你对以下这些问题的疑惑,所以,让我们继续:

java源于采用CPP一样的方式强化通用基础语言C(就像CPP当初加上OO不过是增强了C运行时和C语言技法一样,JAVA也是针对于CPP在高级运行时和高级语言技法方面的强化,,但JAVA这个强公与CPP的强化就差了大了,反正JAVA作为类CPP的C系增强家族,它与CPP的方向完全不合,它有自己的目的,而不仅仅是满足于改良语法)“像CPP一样增强C”是它次要意义,更重要的是:它是为了某种规范目的的“反强化”—比如简化使之规范更适用于工业可用目的。所以它不光增强了语法,还增强了整个语言,带来了此生态上的未来改变。

最重要也是最先值得提及的事实就是“java代码被实现在一门虚拟机里运行,整个语言系统包含一个全功能的开发-运行-发布-APP部署环境”(那个高度整合的虚拟机软件系统兼语言系统),它与本地OS无关,虽然实现于其上,但开层层与系统编程再无关系(而C系有),JAVA程序和APP,在托管的JVM内部运行和部署,甚至是网上分布的一个未知的机器,这种意义上它就是分布式部署环境,而传统语言后端没有这个优势它们与具体OS和硬件没有中间层使之脱离,VB.net和c#(再加上CLR类似JAVA的这种软件和语言生态系统)

这些至少在以下方面显得跟传统的C系语言不同,与它们划分出了清希的阵营线:

1,虚拟机语言支持分布式开发和部署,它们以一种更优雅集成的方式代替了原来的DCOM,Corba这些方案,到整合的整个一个“软件虚拟机本身”作发布部件。

2,虚拟机语言大都直接接近领域域本身,抽象程度极度batteryincluded程度极高,且有专门的框架封装,已经能被称为领域APP语言,DSL,而不需要太多第三方的东西,甚至问题领域都抽象进框架,它们面向开发WEBAPP,分布式企业APP,移动终端APP,这些领域大都已经在这些语言中得到封装,甚至最细微的抽象都有提供,有完善的框架和中间件支持。几乎几个小的源文件就能组成一个APP.

3,分布式软件系统(云虚拟iaas技术,虚拟机语言系统),进一步将云计算机变成今天的开发主流(这个不详述)。

———————————

所以对上门四种语言最有效的分类方法不是“它们在语言级作了多高的抽象”,实际上这是次要因素,主要区别在于它们设计成被适用的那些本来领域,比如,1,C,CPP同属C系,可用于系统编程,和桌面应用开发,2,而vb.net,java可用于非桌面应用的开发(当然封装了桌面的API也可以用于这个用途),集中于脱离于桌面之上的分布式领域开发,较1,它以一种更强的工业适用度和强度,和更优雅的对程序员显友好的方式进行。

所以问题的关键“哪个更有用”,突现出来了–它们都是领域适用,你需要了解的是领域内它们的用法用处:

C系需要你懂得更多的系统知识和OS给你的桌面AUI组件的API接口(数据库系统啊,文件系统啊,网络系统,图形系统啊等等),了解越深,能使你作桌面编程显得更有后劲。

而vb.net,java对于目标领域天生集成有很多轮子,它们的生态在语言系统级就表现得很完善,什么都有,省却了程序员找轮子和纠缠于传统桌面应用要解决的那些问题(比如桌面程序要处理界面才能产生一个程序,而JAVA程序可能仅需要开发应用逻辑本身,界面逻辑被作为中间件集成在语言或MIDDLEWARE中),甚至更接近应用,它们主要用于现今主流的WEB开发,移动开发,虽然用处类似,可是它们的语法风格都有所不同,这是历史现象也是问题的其次。

我建议你学习“C,CPP,JAVA”搭配,或,“C,CPP,VB.net”搭配,前者你需要深学C和JAVA,同时学习基础部分和高级部分,后者就是C和vb.net,学完后实践达到开发的技能需求,而CPP你始终都要学,选修其基础部分就够,我不建议你用它开发(除非你要做3D大型游戏这些历史上CPP最能干好的事情),仅用它学习C到CPP开渡的那些因素,比如OO部分,来促进对JAVA或vb.net的学习,其它更多的就不用了。

既然走到这了,你也一定不会错过qtcling–一门比cpp,java更有特色,更整合的语言。

---------------









































北京的白癜风医院有哪些
北京治疗白癜风的有效方法

转载请注明原文网址:http://www.helimiaopu.com/cxkf/cxkf/3956.html

------分隔线----------------------------