高低之分在这个社会很普遍。大到什么主义,什么社会制度制度,小到单位个人,方方面面不比出个高低好像不过瘾似的。这真是一个比高低的国度。记得在很久很久以前就被教导过程序语言分之为低级语言和高级语言。高低这两个词比较单纯容易记忆,而且从小就被灌输要高不要低的价值观。因此,那时候自己就有要学高级语言,不学低级语言的简单朴素的想法,仿佛学习高级语言自己就会高级起来一样。
没想到今天这个话题依旧。无论新手还是老程序员中都有许多人都在问 “什么语言是最好的?什么语言是最高级的?”,言下之意就是要学习最好的语言,掌握了最好的语言自己就是最好的了。在上几篇文章的回帖中,我看到有人这样说:地球人都知道要选择C#,java。你能说说为什么吗?在另一回帖中也看到了有人对自己原先选择VFP感到后悔,因为他感到VFP语言已经被淘汰了,同时他对自己没有选择C语言感到后悔,因为他认为使用C语言才能看出程序员的水平。
归纳起来有以下:
1) 什么语言是最好的?
2) 我现在掌握的语言是否已经或将要被淘汰,我今后要学习什么样的语言?
3) C语言是真正的高级语言
这些问题就其本质上来说,他们都给程序设计语言定下高低之分,并且他们想知道谁高谁低。
那么程序设计语言是否有高低之分呢?根据我长期编程经历和经验,我认为:
1) 程序设计语言本质上没有高低之分
所谓程序设计语言是指让计算机能够听懂、并能指令计算机进行操作的语言。每种语言的产生都有一定功能范畴,也就是说这个语言是为了解决什么问题而产生的。不同的问题就可能用不同的语言来解决。不同的问题是很难用高低来区分的。例如,基于计算机底层的操作(汇编语言、C语言)与计算机应用层上的操作(C#、Java),那个是高级的,那个是低级的是很难说清楚的。又例如,基于单机程序的VFP和基于网络的ASP、C#也是很难说清楚的(虽然VFP也可以用于网络编程、ASP、C#也可以用于单机编程)。他们的侧重点是不同的,而这个侧重点正是这个语言的别于其他语言的特点。
因此,没有任何一种语言是最好的,哪怕是暂时的。
C语言的确是一个高级语言,也能反映出程序员的技术水平,但是C语言有它的适用范围。我们不能以自己不懂的语言,或使用人数少得语言,或其稀缺就感到其高级。
2) 程序设计语言是一个不断发展过程
没有一个语言是静止不变的,几乎所有语言都会随着技术进步而不断升级。同一种语言确实是存在高低之分,版本高的语言因为改进其版本的问题,增加了新的功能,扩大了语言的应用范围。所以,程序员要关注本语言的发展,不断跟踪语言发展的最新结果。
有的语言由于其最初所设计功能范畴满足不了现在流行技术构架就逐渐地被人淡忘和淘汰了。原来很流行的基于单机的、基于B/S构架的语言,如BASIC、VB、VFP、BP、DELPH等语言渐渐地消失了。
认识到语言是一个发展的过程,跟上语言发展步伐,才是程序员必须要牢记的。这就可以回答地球人都知道要选择C#、JAVA个中的理由了吧。
不同的语言发展的步伐是不太一致的,越是靠近计算机底层的语言发展的越慢,但是不等同于不发展,例如,C语言就增加了大文件打开的系统函数。
程序员确实要有危机意识,要主动关注语言发展的大的趋势,如果你学的语言正好是主流的、流行的语言,那你可以减轻这方面的压力。如果你学的是非主流的,而且其编程工作呈下降趋势,则要考虑学习新的语言,否则真有一天会被淘汰。
3) 要牢记学以致用的原则
程序员选择何种语言从某种意义上来说并不取决于自己的喜好,而是为了自身的生存,由外部来决定的,其总的原则是学以致用。例如,现在外部流行B/S构架,表明市场需要这个构架下的程序员。程序员要想就业,增加就业的可能性,必须要选择C#、JAVA、PHP。否则,学会了其他语言无法致用,就业难度增大。又例如,单位需要后台和数据库方面的程序员,那程序员就必须学习C语言和Proc C语言。又例如,软件公司用的JAVA,而你又想进入这家公司,那你就必须学习JAVA。
其实,“编程语言是否有高低之分”是个伪命题,不管有何无,都无关大碍。关键是程序员要掌握一门用于生存和学以致用的语言。
学习语言有一个很漫长的过程:自然语言-〉程序设计语言-〉多种程序设计语言-〉程序设计语言存在高低之分-〉程序设计语言不存在高低之分-〉选择学以致用的程序设计语言-〉跟踪程序设计语言发展的趋势-〉领会程序设计语言的本质-〉回归自然语言。
每个程序员都可以静下心来,客观上看看自己处在这个过程哪个阶段,只有这样才能用一个发展的眼光看到自己在学习语言方面的前方道路,迫使自己向更高的阶段迈进。
分享到:
相关推荐
它的编程语言基于C/C++,但简化了许多复杂的语法,使得非计算机背景的用户也能轻松上手。本资源旨在帮助对嵌入式编程感兴趣的人了解和掌握Arduino的编程语言和语法。 1. **基础概念** - **Arduino IDE**: Arduino...
硬件编程语言ABEL-HDL ABEL-HDL 是一种硬件编程语言,主要应用于计算机硬布线课程实验设计。下面是对ABEL-HDL语言的详细介绍: 一、标识符和关键字 在ABEL-HDL语言中,标识符是一组字母数字串,用来代表器件、...
**Arduino编程语言说明** Arduino是一种基于开放源代码硬件和软件平台的微控制器系统,它使得电子制作和编程变得简单易懂。Arduino编程语言是基于C/C++,但进行了简化,以便初学者也能快速上手。在Arduino编程中,...
通达信提供了强大的指标公式编程语言,允许用户根据自己的需求编写复杂的技术指标和交易策略。 通达信指标公式源码开盘半小时高低点分时副图源码是一个功能强大且实用的技术指标,旨在帮助用户快速掌握股票市场的...
在嵌入式编程中,高低位交换是一种常见的数据处理技巧,尤其在处理二进制数据、网络协议或者硬件通信时尤为关键。C语言作为一种底层、高效的语言,是进行这种操作的理想选择。本篇文章将深入探讨如何用C语言实现高低...
根据提供的文件信息,下面是Arduino编程语言的知识点总结,这些知识涵盖了Arduino程序的结构、变量和常量、函数等方面。 一、结构(Structure) Arduino程序主要分为三大部分:结构、值(变量和常量)、函数。 1.1...
C51是为8051系列单片机设计的一种高级编程语言,它基于标准的C语言并加入了针对8051硬件特性的扩展。本实例主要探讨的是如何使用C51语言来控制12864液晶显示器(LCD)。12864是一种常见的字符型液晶模块,具有128x64...
C51语言编程基础PPT教学课件 本篇资源摘要信息是关于C51语言编程基础的PPT教学课件的知识点总结。该资源主要面向已经掌握标准C语言的读者,旨在介绍如何使用C51语言编写AT89C51单片机的应用程序。 C51语言简介 ...
3. **库函数**:许多编程语言提供了内置的字节交换函数,如C++的`std::swap`,C的`ntohl`, `ntohs`, `htonl`, `htons`等,它们可以方便地处理网络字节序转换。 在压缩包中的“20.高低字节交换SWAP演示”文件很可能...
首先,文章指出,编程语言只是计算机科学理论的具体表现形式。无论是被誉为高效的C++,还是易用的Java,它们都是“面向对象”理论的实例化。程序员们常常被新推出的编程语言和框架弄得眼花缭乱,追逐潮流成为常态。...
1. **容错处理**:良好的容错处理能力是衡量一个程序质量高低的重要指标之一。编写程序时应考虑到各种可能出错的情况,并预先准备应对策略。 2. **程序风格**:规范化的程序风格不仅能让代码易于阅读和维护,还能...
极限编程(XP)是一种以编码为中心的轻量级软件开发方法,其中结对编程是其核心实践之一。结对编程要求两个学生一组,共同完成编程任务,一人输入代码,另一人观察并提出改进建议。这种模式增强了学生的沟通与协作...
本文将深入探讨与“铁路轨道高低平顺性指标计算程序代码”相关的知识,主要关注C#编程语言在实现这一功能中的应用。 首先,轨道平顺性的计算通常涉及到多个参数,如轨距变化率、水平、高低、三角坑等。其中,高低...
SWAP指令是S7-200SMART PLC编程语言中的一个基本指令,它的作用是交换指定存储区的两个字节。这个指令适用于需要改变16位数据的字节顺序的情况。在S7-200SMART中,一个字(WORD)由两个字节组成,高位字节(MSB)和...
C语言是单片机编程中最常用的高级语言之一,其特点包括: - **十六进制表示法**:如0x5a,便于表示和操作二进制数据。 - **数据类型转换**:将16位数据赋给8位变量时,自动截断高8位。 - **自增自减运算符**:如`++...
通达信指标公式源码MACD高低点画线副图指标 通达信指标公式源码MACD高低点画线副图指标是一种基于MACD指标的技术指标,用于绘制高低点画线副图,提供了多种颜色和线条样式的选择,以便更好地观察和分析市场趋势。 ...
在IT领域,汇编语言是一种低级编程语言,它与机器指令一一对应,具有极高的效率和对硬件的直接控制能力。"汇编语言实现音乐播放"这一主题涉及到电子工程和计算机科学的交叉领域,主要关注如何利用汇编语言编写程序来...
三菱PLC的编程语言主要基于梯形图(Ladder Diagram)和结构文本(Structured Text)。在这个项目中,我们可以预期看到这两种编程方式中的一种或两者结合。梯形图直观易懂,适合电气工程师;而结构文本则更接近高级...
C语言作为一种高级编程语言,相比汇编语言更易于理解和编写,因此成为51单片机编程的常见选择。Keil C51是专为8051系列设计的C编译器,提供了丰富的库函数,使得单片机开发更为便捷。 "LED高低位交互闪烁程序"是一...
- Keil C51是一款广泛使用的51单片机编程工具,支持C语言和汇编语言编程。 - C51编译器能够将高级语言转换成适用于51单片机的机器码。 ##### 2. Easy51KitPro开发板 - **硬件配置**:Easy51KitPro是一款基于MCS-51...