对程序语言的认识

来源:互联网 发布:天津大学软件培训 编辑:程序博客网 时间:2024/04/29 07:10

声明:我仍菜鸟一名,这篇文章只是为了总结一下自己的经验与感受,并不是什么老牛作品。有不对的地方,请指正。

昨天,领导忽然问我会不会asp.net。听到我说会以后,又问我会不会java,又看到我点头,似乎不太相信。VC++呢?。。。部门经理忽然风趣的插一句:“你应该问他,还有哪种不会的?”。。。汗。。

从进入大学,到出来工作。虽然仍然很菜,但也接触过不少程序语言(当然,和一些牛人比起来,这就微不足道了。在网上,我甚至看到有人写出用过超过100多种的程序语言!汗)。如 汇编语言、 Basic、VB、C、C++、asp、C#、java、php、javascrip、lua等等。代码也写过不少。这几天,想了一下。其实,这些所谓的语言,都是有规律的。要都掌握它们也不是没可能。

一、语法与语义

     所有的程序语言(包括汇编)都有语法,只是它们的语法不同而已:
           如C语言的条件判断语法是:
                   if( 条件 )
                   {
                           //条件成立执行以下程序段
                           ...
                    }
                   else
                    {
                           //条件不成立执行以下程序                            
                           ...
                    }//判断结束
          而VB的条件判断却是:
                   if 条件 then
                         //条件成立执行以下程序段
                           ...
                  else
                       //条件不成立执行以下程序                            
                           ...  
                  end if '判断结束   

         什么?这里看不出有太大的差别?那看一下汇编( Intel 80x86 )的条件判断之一(有几个类似的指令):
                ;比较x与y的值
                 Cmp x,y
                 ;结果大于时跳转到TrueCase
                 JG TrueCase 
                 ;结果小于时跳转到SkipTrueCase
                 Jmp SkipTrueCase
                  
   从以上例子可以看出,虽然各种程序语言的语法千奇百怪,但大体上也都是为了实现以下功能:

     1.定义变量。

     2.变量或表达式运算,如两数相加、减等

     3.循环

     4.跳转

     5.条件逻辑

   既然都是提供差不多的功能,为什么人们还要创造这么多的语言呢?(我想)第一,是并不是每个人都喜欢一种语言的语法的。显然,有人喜欢C的简洁与方便,但也有人喜欢VB的类似于自然语然的表达。第二, 这也是最根本是原因:

2.程序语言提供的各种功能支持不同。

   只有语法没有功能的程序语言是无意义的。不同的语言是针对不同的需求而设计的。电脑的应用如此的广泛,以致于根本无法用一种语言去实现所有的要求。例如:如果你非常的牛,那你可以用汇编编写窗口应用程序。因为在理论上来说,能用高级语言实现的功能,也能用汇编实现。但问题是,你真的能用汇编实现像样点的应用系统吗?答案是显而易见的,没有 人能接受得了如此巨大的工作量。于是,就出现了VC++、Java等一批高级语言来适应这一需求。它们都对底层的操作进行了封装,并提供了方便快捷的 接口 给使用者调用。令使人者可以将精力摆到应该摆的地方(或者也可以叫业务需求上),而不必关心于各种底层工作应该怎样实现。而VC++、Java等提供的功能的侧重点也不同。正如在同一条街上,可能存在多间饭馆,他们都是为人们提供饭菜。但是每间饭馆除了能提供基本的饭菜外,还各自拥有自己的“招牌菜”。

既然知道各种程序语言产生的原因。那么也应该知道,怎样去对待它们了:

一、学习新语言很难吗?
      答案是否定的, 当然了,这要排除那些故意把语法弄得“难以下咽”的语言。从上面,我们可以看出,其实,基本上掌握了一门语言的基本语法就能用它来进行相应的代码编写了。但也许有人会问,既然是这样,为什么我学完Java语言的基本语法后,还是不会用它呢?其实这也是上面所提到的,高级语言本身提供了对各种底层操作的封装,越是高级的语言封装性就越高,以致于你学会它的基本语法后,如果不对它提供的大量接口和说明进行学习,根本就没办法着手写出能用的东西来。就像我学会了VC的基本语法后,根本就不知道应该如何编写一个窗口应用程序。于是,只能对每天在MSDN上翻查它所提供的接口和相关说明。

二、如何学习一门新语言呢?
     由上述,我们可以知道,学习一门新语言可以分为两步:
             1.对它的基本语法进行学习
             2.对它所提供接口进行学习(最主要的,也最花你时间)
     当然,这里隐藏了一个步骤就是:你要学会如何去为使用这种语言配置运行环境。最简单的,你要为它们提供一个操作系统。其次,下载该语言的使用或安装程序。 例如,你要使用php进行网页开发。你掌握了它的基本语法,也对常用的接口有了一定的了解。但没有安装它或安装好了却不为它提供web服务(IIS、Apche等),你又如何进行开发呢?这里还有一点要注意的是:对初学者来说,很容易对语言和这种语言的开发工具混淆的情况。就像我以前刚学C语言时,认为TC就是C语言。汗。。后来才知道,原来TC只不过是是C语言的一个开发工具,除了TC,MS所提供的VS集成开发环境也可以编译C的。

三、我尽量多的学习新出的语言吗?
      我觉得没这个必要,因为现在实在太多程序语言了。一个人根本就没那么多精力都去弄懂它们。如果一味的追求多,反而会造成多而不精的情况。倒不如精通几种对自己工作有利的或自己喜欢的语言。当然,如果是对你工作有利的,能为你的工作提供新突破的语言,还是应该去了解和掌握。就拿我现在来说,我是做网页开发的,所以对asp、asp.net、Jsp、php和Ruby、python、javascrip等都是应该去学习的。

四、语言、开发方法、设计模式有什么关系?
    综上所述,我们应该正确认识和对待现在令人眼花瞭乱的程序语言。不必惊恐于学习某种新的语言,也不必贪新厌旧。要明白,其实,语言是为了适应开发需求而产生的,它们有一定的适用范围。面对这些语言的根本策略就是--掌握开发的思想。而掌握开发思想的最有效方法就是:实践!(完)

 
原创粉丝点击