类C语言起源、历史
C语言、C语言的起源以及类似C语言的编程语言的历史简直不要太漫长,我简单总结列表如下:
CPL(Combined Programming Language) - 1963
CPL是1963年剑桥大学发明的
BCPL(Base Combined Programming Language) - 1967
剑桥的Matin Richards 对CPL做了简化,推出了BCPL
B(B Programming Language) - 1969
贝尔实验室的Ken Thompson(肯·汤普森) 对BCPL又做了改进,设计出了简单的且接近硬件的B语言,并用B语言写了第一个UNIX OS
C(C Programming Language) - 1972
贝尔实验室的另外一个人Dennis MacAlistair Ritchie(D.M.Ritchie - DM里奇)在B的基础上设计出了C语言。C 保持了B的优点(精炼、接近硬件),又克服了他的缺点(过于简单,数据无类型)
C++(C plus plus Programming Language) - 1983
还是贝尔实验室的人,Bjarne Stroustrup(本贾尼·斯特劳斯特卢普) 在C语言的基础上推出了C++,它扩充和完善了C语言,特别是在面向对象编程方面。一定程度上克服了C语言编写大型程序时的不足。
Java(Java Programming Language) - 1995
Sun公司的Patrick Naughton的工作小组研发了Java语言,主要成员是James Gosling(詹姆斯·高斯林)
C#(C Sharp Programming Language) - 2000
Microsoft公司的Anders Hejlsberg(安德斯·海尔斯伯格)发明了C#,他也是Delphi语言之父。
最近看到一篇关于“电脑维修转行”的文章。
分析的原因头头是道,简而言之就是:新电脑配置越来越高、价格越来越透明,也越来越便宜、性能越来越好,十年不坏的核心零件越来越多。坏了直接换新的,换更好的,更甚至直接用手机,平板代替了日常生活中的电脑,有的人家里的电脑几乎快成了摆设。
这样自然会让很多只靠电脑维修支撑的店铺面临关门的危险,很多开“电脑维修店”的人开始转行,转到手机维修,转到编程行业,因此越来越多的“大龄人士”逐渐进入编程行业。那么,这不禁让我想到:编程会不会也会没落?
答案是否定的,随便给你个理由:
未来的科技,很大成分是智能这个因素。智能的物理介质是硬件,而精神则是软件,软件就靠编程。因此,编程就是创造智能的根源。
一台硬件系统如果没有编程(哪怕是硬件编程也是编程,写汇编程序也是编程、写PLC也是编程,写上位机也是编程…)就如同没有思想和活力的行尸走肉,那这样的机器有什么用?和你家里已经上灰的烂电脑没什么区别。
未来是科技社会,科技会越来越加强,那也就意味着编程不但不会没落,反而会更加的强大。落后就要挨打,谁也不希望落后。但是编程领域会是这样的趋势:更高的要求、需要更强大的实力和基础实力支撑,集成度会更高,意味着以前几个人做的功能,现在要一个人来做。
那么没落的是在编程门口徘徊的边缘人,是那种走进编程行业但是又不得道的“技术人才”。
就像工业革命时期,工厂不再需要更多的工人,那么没落的是工人,而不是工厂,工厂会越来越强大,需要越来越有实力的人才,其他的人才就会下岗。所以:没落的是没有实力或者实力不强大的“编程人员”,而不是编程行业。
另外,某种上层编程语言可能会没落,就像移动互联网领域,PHP 就比 .net 更受欢迎,相比之下 .net 开始没落,但移动互联网的编程领域并没有没落啊。
峰回路转,只要编程行业不会没落,那么C语言就不会没落,因为:编程的基础就是C语言。它一直会是编程领域的核心语言。所以,只要是想走编程领域,涉及到编程领域,必学C语言是很有理由的。这就是为什么所有大学的理工科都必学C语言的原因。
只是当时在学的时候,由于你的见识面有限,并没看到C语言的重要性。不过当你在编程领域混了几年遇到瓶颈的时候,你就会发现C语言的重要性了。不懂C语言,说自己懂数据结构和算法几乎是瞎扯,说精通数据库是瞎扯,说精通linux,unix几乎是瞎扯。
而随便一个行业的背后深入支持的就是数据结构、算法、数据库、大数据、linux。
比如移动互联网也就是这样,当网站访问量达到亿级,用户量达到百万级别,面临的就是莫名其妙的网站变慢、甚至卡死,此时就是负载均衡和集群,是数据库的负载均衡和集群+web服务器的负载均衡和集群,这些都要从数据库、linux去入手(windows服务器的就不是个级别,不用说了)。
而你不懂C语言,连指针都不知道是什么,为什么的时候。学精通Linux也太累了,它内容太多,所以你学不好。
Java语言是从C语言演变过来的,它继承了C的优点,同时摒弃C的缺点。JAVA还有一个最大的特点,那就是跨平台。通过JAVA虚拟机的解析,可以使在Windows或UNIX上面写的程序在其他系统下也能运行,而C语言是绝对不行的。
所以大学里开设C语言和Java语言是很有必要的,感觉没必要,只是你看不到。但当你工作了几年你会发现C语言和Java语言如果学不好,会成为你在编程领域晋级的严重隐患,不是你不想提升,而是你无法提升。这也就是为什么你看到工作了多年的编程高手却还在回头弄C语言或Java语言的原因。
另外,某个工具也可能会没落,就像Turbo C会越来越少用一样。
总之:编程行业不会没落,只会加强,需求的人才也是实力更强的人才,所以未来是有实力人才的机遇,也是没实力的人瓶颈。
最后:
学好编程,其实和是不是学计算机专业没多少关系,和学历高低没多少关系,和年龄没多少关系,但是和动手能力、实际操作能力息息相关。
所以其实你不用问这些问题:
我是文科生能学好编程吗?
我是大专生,甚至中专生能学好编程吗?
我28岁了,才开始学,能学好编程吗?
你就问你,你愿意动手吗?如果愿意,那就OK。
哪怕你是文科生,哪怕30岁才开始学,哪怕是小学毕业的也学的会,甚至可能成为编程的高手。
反之,如果不注重动手能力,哪怕你是重点大学的计算机专业的研究生,你也是学不会编程的。