c语言可以做网站吗 谁叫你不幸生在中国了?——何祚庥
2021-06-13
谁让你不幸出生在中国? ——何作秀(中国科学院院士)
这是一本面向非计算机专业的大学生的C语言书籍。 “我不是计算机系学生,为什么要学C语言?”这个问题在中国大陆每年被问上百万次。
提问的对象可能是老师,也可能是哥哥姐姐。师兄师姐经常用装腔作势的语气,重复着他们依稀记得的老师的话。这些话大多是有远见的,比如“以后可能会用到”、“锻炼编程思维是好的”、“C语言是学习编程的基础”等等。
这些话没有错。所谓“一技之长”,多学绝对比不学好。但问题是,如果把学习C语言的精力用来学习其他与专业更相关的东西,会不会更好?既然如此,你为什么还要学C语言?
最实在的答案来自何作秀院士:“谁让你不幸出生在中国?”
大学除了拿到“毕业证”和“学位证”外,还必须通过“四级”和“二级”,否则可能会被减免两证,或者被阻止找工作,而且很难“安定下来”。等待。这里的二级是指“全国计算机等级考试二级”,是针对“程序员”的考试,“考核计算机基础知识和使用高级计算机语言编写程序和计算机调试的基本技能”。
虽然社会只需要少数人就能编程,但令人费解的是,几乎所有大学生都希望(或被要求)通过二级,这使得编程课程成为必修课。
2 考试可用的语言包括 C、C++、Java、、、和。为什么要学最老的C?这里的原因复杂多样,每个学校都有自己的解释,我就不一一列举了。总之,中国一定是世界上“懂”C语言最多的国家,二级考试是必须的。
总之,这门课既然开了,不学是不可能学的,精力都被占用了,那我们就来仔细看看C语言吧。虽然有点无奈,但好在C语言确实是个有趣的家伙,越了解越觉得有趣。不信请往下看...
游戏、黑客和 C 语言
1969 年的美国贝尔实验室是当时科技界的梦工厂。它聚集了世界上最具创造力的科学家和工程师,其中包括几位诺贝尔奖获得者。他们一起创造了无数的发明。比如数码相机的核心CCD,当年在贝尔实验室诞生。
这些家伙的成就看似遥不可及,但其实都是凡人,在某些方面和我们非常相似。例如,当他们看到一台功能强大的计算机时,他们首先想到的就是用它来玩游戏。在那个时候,电脑是一种奢侈品,只有大型组织才能拥有,在电脑上玩游戏是一件很可怕的事情。不过谁在乎呢,追求快乐才是最重要的,所以他们不会为了玩游戏开心而动脑筋。
那个时候还没有商业游戏,所以要玩游戏,首先要发挥自己的DIY精神,自己动手制作。自己编的游戏被人喜欢了,这在当时是最值得尊敬的。
有一个工程师叫(以下简称ken)。他今年26岁,很闲。他看到阿波罗11号载人登月,觉得很酷。我想尝试一下,所以我设计了一个“”游戏。在游戏中,玩家驾驶宇宙飞船,穿梭于虚拟太阳系,欣赏美景,还可以降落在各种行星和卫星的表面。这个游戏先写在系统上,后来改写在系统上。
能运行这两个系统的机器都是笨重的大型机。虽然它们具有出色的计算能力,但它们的显示效果很差,机器时间成本非常高。该公司必须为一款游戏支付 75 美元(当时美国的平均月收入约为 200 美元)。这要是被老板发现了,可不是开玩笑的。于是他与他 28 岁的同事 M.(以下简称 dmr)合作,在大楼里到处寻找免费的“游戏机”。努力得到了回报,他们真的找到了。
DEC 制造的 PDP-7 小型机具有当时最先进的图形处理能力。那个时候电脑主要是用来处理数据的,图形能力不是很重要,所以PDP-7更经常安静地躺着,很少使用,直到ken和dmr的铁杆玩家发现了它。 .
比赛开始了。但是,游戏的运行需要操作系统的支持。 PDP-7在当时还是一个“裸机”,没有可以在其上运行的操作系统。伟大的DIY精神再次发挥作用。他们挽起袖子开始为 PDP-7 编写操作系统,并给这个系统起了个名字——Unix。
直到今天,Unix 仍然是最受信任的操作系统。它不仅支持军队、政府、电力、电信、银行等大型组织的重点业务,也是苹果Mac系列电脑,甚至iPod的魅力之源,部分归功于它。
Unix 最初是用汇编语言编写的,这是一种更接近机器而不是人的语言。计算机可以直接理解的语言称为机器语言。它的所有句子都是由两个数字“0”和“1”组成的,根本不适合人类。
当最后一个机器语言程序员发疯时,人们终于开始思考如何让计算机识别人类语言。基本思想是制作一个翻译程序,将人类语言直接翻译成机器语言。这个翻译程序被命名为“编译器”。
但是直接理解人类语言太难了,直到现在还没有实现,所以我做了一个妥协,设计了一种尽可能接近人类语言并且可以准确翻译成机器语言的语言。这种语言就是我们常说的编程语言。学习编程的过程,其实就是学习向编译器说一门编程语言的过程。
第一种编程语言绝对是最接近机器,远离人类的。它是汇编语言。虽然它看起来有点像人类语言,比如加法叫做“ADD”,减法叫做“SUB”,但它的语法完全是机器化的,每一行语句都严格对应一条机器指令。这个特性使它适用于一种计算机编译后的汇编程序不能在另一台计算机上使用,因为两台计算机的机器语言不同。
从技术角度来说,汇编语言缺乏“可移植性”。
Unix 的优雅和 Unix 的吸引力,让很多人希望在自己的电脑上安装 Unix 来获得乐趣。因此 ken 和 dmr 决定用高级语言编写 Unix,以便它可以在更多类型的机器上运行。
高级语言是除机器语言和汇编语言外几乎所有编程语言的统称。它的特点是更接近人类语言,与机器语言基本无关。不同的高级语言编译器可以将相同的代码翻译成适应不同机器的指令,所以大多数高级语言都具有很好的可移植性。
故事到此结束,本书的主角C语言出现了。在决定使用高级语言后,ken和dmr在语言选择上遇到了麻烦。
当时有很多高级语言可供选择,包括那些直到现在还在使用的语言,但没有一个被认真对待。 DIY基因再次发挥作用,他们决定设计一种易于使用的高级语言来重写Unix。
那是 1972 年。Ken 继续改进 Unix。基于Ken早年设计的B语言,dmr开始设计新的语言。两人共同开发了一个编译器。这种新语言被随意命名为-C 语言。
1983 年,由于 Unix 和 C 的巨大成功,ken 和 dmr 获得了计算机行业最高奖项图灵奖。玩到这种程度的游戏,古今只有这两种人。
Unix 和 C,如果你有其中之一,你就可以在敌国发财。但是,他们从一开始就没有考虑申请专利、商标、软件著作权等法律保护。相反,他们将所有内容(包括源代码)传播到他们想要的任何地方。
对他们来说,使用自己的程序是最大的幸福和最大的财富。正因为如此,许多组织和个人可以自由地为 Unix 和 C 做出贡献,极大地促进了它们的发展。
从上面的故事中,我们可以看出他们的很多可爱之处:以兴趣为出发点做事,不计较未来;很有研究精神,信奉“自己动手,丰衣足食”;乐于分享,不求回报。
他们的这些特点,是正宗“黑客精神”的集中体现。他们也被视为黑客界的英雄,甚至是山岳的缔造者。每个人都恭敬地称他们为 ken 和 dmr(必须是小写)。几十年过去了,黑客圈里没有第二个人敢叫“ken”这个英文圈里很常见的名字。
Unix 和 C 仍然是年轻黑客在被圈子接受之前必须努力练习的三项技能中的一项和两项(第三项是任何脚本语言)。由黑客设计,为黑客所推崇,C语言本身处处闪耀着黑客精神。这种光让它永远年轻。
其实作为一个开发者,有一个学习氛围和一个交流圈是很重要的。这里推荐一个C语言C++交流群。无论您是新手还是转行,欢迎入驻,大家共同交流,共同成长。
C语言,一个不老的传奇
最流行的歌曲一定是最常听到的,最流行的语言一定是最常用的。 C语言现在用的多吗?业界普遍的回答是:如果一件事可以用X语言来做,就一定不能用C语言来做。
这里的 X 可以指任何语言。天啊,这好像是在说“能听X的歌,就不能听周杰伦的歌”。这是在评价周杰伦还是曾轶可?
哪种编程语言最受欢迎?每个人都会有自己的主观看法。让我们用客观数据说话。
2016 年 8 月公布的编程语言流行趋势图(最新统计数据请访问上方网站)。可以看出,C语言一直位居前二,最近又有重新夺回第一的势头。
如果你不需要它,你不需要它,它如此受欢迎,这有点令人费解。 dmr 曾经说过:“C 很奇怪很奇怪,它有很多缺陷,并且取得了巨大的成功。”因为它古怪且有缺陷,所以会尽量避免,取而代之的是一种弥补这些缺陷的语言;因为它确实取得了巨大的成功。 ,所以今天还是很流行的。
一个成功的例子是图 xx 中列出的 10 种最流行的语言。除C语言外,其余9种语言中有7种是直接使用、间接引用或部分借用C语言的。语法(比如语句末尾必须有“;”),只是语法找不到C的影子。 以这个世界第一的影响力,受到欢迎是合情合理的,即使它爱恨交织。
C语言的爱与恨
C 语言设计的第一原则是:“信任程序员”。对编程语言不太了解的人不会想到这句话。但是对于真正的程序员来说,这句话足以让C语言爱一辈子,爱到死。
在C语言当道的时代,电脑相当昂贵c语言可以做网站吗,但速度不如现在的手机快,内存以KB计算。因此,当时对程序最基本的要求就是效率。
C 语言完全满足了人们对效率的需求。精心设计的代码可以大大节省计算机资源,而且不像汇编语言那样难用,所以很受程序员欢迎。
后来硬件越来越便宜,性能越来越高。计划的效率不再是追求的主要目标。安全性、稳定性和易维护性变得重要,C 语言的缺点也变得明显。 .
C 语言给了程序员最大的发挥空间,让他们在代码中自由发挥自己的热情和创造力,从不质疑代码是否会带来危害,因为它“信任程序员”,相信程序员的决定一定是正确的,即使有错误,也必须自己改正。
无限的自由,在一些人手中是创造力的源泉,在另一些人手中,它可能是混乱的源泉。随着软件系统规模的扩大,需要的程序员越来越多,综合水平越来越低,出错的概率越来越高,每一个低级的错误都可能造成灾难。
很多人把造成这种混乱的原因归咎于 C,开始怀疑它,甚至讨厌它,但从来没有反思过他们糟糕的编码能力。
所以有人说c语言可以做网站吗,给这匹野马放缰绳,不要让它狂奔。但是C拒绝了锁链,这么多语言披上了C的外衣,挂上了锁链,站了起来。因为长得很像C,所以大家很容易接受;因为他们被锁住了,他们不再信任程序员,而是告诉程序员如何做这件事,如何做那件事。
如果程序员不听他们的,他们就会拒绝工作。这样,混乱得到解决,开发速度加快,多人合作更容易,错误减少,对程序员能力的需求减少,工资也减少,老板高兴,行业繁荣。
平心而论,“一件事可以用X语言做,你一定不能用C语言做”确实是一个很好的策略。程序员虽然会失去一些自由,但在合法范围内还是有一定的空间的。可以有创意,而这些创意很少会产生负面影响,结合起来让老板、程序员和用户开心。但是程序员,尤其是受人尊敬的程序员,他们的血液里天生就有躁动,向往自由的黑客生活。
所以在抚摸他们身上的伤口的同时,他们会怀念那个肆无忌惮却无敌的老将军,怀念他手下的无拘无束的日子,怀念他激发出的层层潜力。这位老将军是程序员心中永远的战神。
C 语言教会了我们什么
现在,还需要用到C语言的地方大概仅限于以下三个方面:
C 语言仍然是编写操作系统的最佳选择。它为操作系统而生,可以更直接地处理电脑底层,精致、灵活、高效。最重要的是,操作系统的开发者是顶尖的程序员,他们有足够的能力和经验来驾驭C语言。
在程序运行效率要求较高的地方,比如嵌入式领域,C语言也是首选。但是,目前嵌入式系统的硬件性能已经足够强大,功能要求越来越高,C语言的生存空间正在缩小。
在需要继承或维护现有 C 代码的地方,还需要 C 语言。有许多影响深远的软件和程序库最初是用 C 开发的,因此 C 将继续使用。然而,其中许多已经用其他语言重写了,这些 C 代码总有一天会被抛弃。
应用这么窄,学起来有多大用处?
从“不可用”的角度得出“学习C语言没用”的结论是不公平的。即使是计算机及相关专业,C语言的“用处”也不是很大。学习C语言的意义在于它为我们打开了一扇了解计算机的窗口。在几乎所有东西都离不开电脑的今天,越了解电脑,就越能用好电脑。
卡内基梅隆大学计算机系原系主任周以真教授2006年发表著名文章——《计算思维》。 “像计算机科学家一样思考”适用于大学新生。它针对的是非专业人士,而不仅仅是计算机科学专业的学生。这是因为“机器学习统计已更改。
计算生物学正在改变生物学家的思维方式。同样,计算博弈论正在改变经济学家的思维方式,纳米计算正在改变化学家的思维方式,量子计算正在改变物理学家的思维方式。”因此,“计算思维代表了一种普遍的理解和一种这样普遍的技能,每个人,而不仅仅是计算机科学家,应该对它的学习和应用充满热情”。
不幸的是,我们仍然很少有学校提供此类课程。因此,编程课程在一定程度上肩负着传播计算思维的责任。这对于不需要使用C语言的同学来说,也是最大的意义。
总之,学不学C,学C适合不适合自己,既然这门课已经开并且有好老师带领,那就趁着这个机会不要浪费时间了。也许一个学期后,你会发现自己在编程方面的天赋,然后在这方面努力,最后成为受人尊敬的程序员。
————————
看到这里,是不是对编程语言和C语言有了新的认识~
如果你喜欢这篇文章,动动小指点赞然后去吧~