Pages

Sunday, 29 October 2017

初学者如何选择你的第一个编程语言


“我想学编程,我该学什么语言?”很多人问我这个问题,我一般这样回答:
如果你主要写Windows程序,学VB.Net
如果你还想写Android或iOS程序,学C#
1)C语言到哪里去了
       很多人(包括教你C语言的老师)都说C语言是很适合初学者学习的编程语言。说它代码有多简洁,多么好的移植性之类。对于C语言,我只想说:“It sucks.” 为什么这么差评C语言,原因有三。
        1. 超少的功能。你学了C语言,你会发现你写不出来带有窗体,按钮,文本框的程序,你只能写出没有图形界面,在命令提示符里运行的输出纯文本的程序。想要有窗体功能?学C++去吧。然后你会发现你想输出一段文字,对不起,C语言没有字符串变量,但C++有。接着你会发现switch语句里case后面跟着个“10<a<20”这样可以充当条件的语句都不行,(但C++有)你还想学么?这种语言简直不符合人类的思维逻辑。
        2.一大坨符号。C语言里充斥着大量符号,比如:
if(a%4!=0||b%7!=0) {
a>b?c=a:c=b;
}
          这玩意初学者想读么?只会让初学者觉得“天哪,编程好难,看不懂”。 符号会让代码更简洁,但会对初学者产生恐惧。
        3.从同学反馈来看,C语言基本“听不懂”
2)那JAVA呢? JAVA相对好很多。但是相比JAVA和C#,我更推荐C#。原因有:
        1.JAVA和C#的语法几乎一模一样,但是C#对Windows的支持更好,不需要再另行安装其他的插件包。但JAVA程序必须再另外安装JAVA运行时才能在Windows下运行。
        2.你可能觉得JAVA可以写安卓程序,但是微软推出了Visual Studio 2015。这个世界上最好用的开发程序(没有之一)现在支持C#给Android写程序,甚至可以用C#给iOS写程序。同时,微软开源了.Net框架,这意味着基于.Net的编程语言–C#和VB.Net 能运行在Windows,OS X和Linux上。所以,对于C#语言来说,只要编写一次,你的程序就可以在WP,Windows,Android,iOS,OS X,Linux 全平台上运行!
         3.JAVA的函数库有些混乱。比如你想获取当前系统的时间,对于C#和VB.Net来说直接使用Date类下的Now()就可以,这和人的思维是一样的,要当前时间,去找日期或时间模块下的现在时间就行了。但是,JAVA竟然给你放到了Calender类里,又是一个反人类思维逻辑的语言
          4.从帮助文档来说,C#和VB.Net的每个函数,微软都给出了官方的中文帮助页面还配有实例与讲解。但JAVA,你可以去甲骨文官网看看,基本没有。
3)VB.Net 和 C#改选那个?
1.VB.Net 的优势是语法接近真实语言。比如我要定义一个整数变量intA,C#是这样写:
int intA
整数 intA
        VB.Net是这样写的:
Dim intA As Integer
定义 intA 作为 整数
        当然,这就带来了VB.Net的一个显著问题:代码过长。VB.Net固然很好理解,但是代码会比C#长。但是,Visual Studio 解决了这个问题。Visual Studio强大的智能感知(Intellisence)可以帮你自动完成一个单词。比如Integer,你通常只需打出In两个字母,后面的回自动完成。
      2.VB.Net的另一个优点是它可以即时编译。调试时发现错误,程序会停下来,你直接可以修改源代码来改正错误,然后继续执行就行了。并不需要中断调试。代价就是你选择Debug模式生成程序时,程序执行效率不如C#。如果换做Release模式生成,二者的效率部分上下。原因是他俩都是.Net语言。基于.Net框架的语言虽然用不同的语言书写,但编译时都会被转换为同样的IL语言,再由IL编译成可执行文件。所以.Net语言的执行效率取决于IL语言的执行效率,语言间并没有差别。
     3.C#的优势在于移植和多平台。Visual Studio 好像并不支持VB.Net给Android 和 iOS开发,但是C#可以。再者,C#可以很方便地移植C语言、JAVA语言的程序代码,但VB.Net却不行.

No comments:

Post a Comment