Linus:没有比 C 更好的编程语言【Linux 创始人亲述】

作者: 鱼C-小甲鱼分类: 野生技能协会 发布时间: 2020-10-30 13:13:30 浏览:315488 次

Linus:没有比 C 更好的编程语言【Linux 创始人亲述】

还是永远的贝贝:
读到C就知道汇编什么样了,我裂开了,nbnb[热词系列_害怕]

【回复】这里我的理解是,他并不是想表现自己多厉害,而是想说C对机器语言的抽象恰到好处,能直译为汇编,又不乏表现力
【回复】🐒是真的,编写操作系统需要非常确定每个指令和每个值,不然程序会跑飞,然后给你蓝屏。 他们还会警告编译器:不要瞎集八优化我的代码,我告诉你,int类型两个字节就给我两个字节,编译出4个字节我就打你屁屁。输出不到我想要的目标代码,我就炒你鱿鱼,不要试图糊弄我,别说汇编,机器码我都认识。
【回复】回复 @zy01010101 :我记得有个笑话。C语言速度就像火箭车,每50KM抛锚一次。C++速度就像高级跑车,每100KM抛锚一次,但没人知道c++为啥抛锚。
一勺鱼子酱:
如果了解计算机原理并想要精确操控它,C是最好的选择 如果不了解计算机,只了解人类,Python是不错的选择

【回复】不会用python作为主语言的,用起来太假、一个功能py两分钟搞定,总感觉很不舒坦、看不到二维数组,看不到指针,看不到一切[doge]
【回复】回复 @NAC铃 :其实这不是说大佬才会的呀[喜极而泣]... python官方文档都清清楚楚地写明白与C或者C++交互的多种方式 ctypes是python标准库里面就有的,调用动态链接库函数最原始的办法,可以直接嵌入到python源码当中。代码写起来可能会有点冗长,不过总体上还是很方便的。 除此之外,还有cython――python的一个第三方库,你可以理解为一个特殊的编译器,或者一门C/C++和python混血的编程语言(兼容纯python语法,可以轻松嵌入C++,包括模板类等C++独有的),源码写在.pyx文件当中,编译出来是可以供python脚本直接import的动态链接库(.pyd文件)。但是――cython环境的配置有点麻烦,一般都要弄一个Visual Studio,不然后边会有很多麻烦事。 同理,也有一个叫"Jython"的东东,我不用java没有仔细了解过,不过看这个名字应该就是那个意思了[滑稽] 还有numba(@jit)也是加速python的一种方式,而且不需要会C/C++之类的。直接在函数上边加一个@jit就可以快不少了[妙啊] 对了,除上面这些以外,还有两种python与C/C++交互的方式的,好像一个叫swing,另外一个忘记名字了(尚未成熟),我对这两种都不熟悉,就不说了。 总之,python可是编程语言界的水豚来的[滑稽] 小白可以很轻松地用别人写好的轮子,大佬也可以很轻松地用C/C++甚至是Fortran来扩展造轮子。至于速度嘛... python本身的话是慢一点,不过核心的大运算量的,其实往往已经用更快的编程语言编译成工具库了,python脚本当中要做的往往只是做一层包装或者调用工具而已。
【回复】回复 @NAC铃 :Python 就是c写的呀。。 它完全支持嵌入c语言的。。 ctypes模块提供了跟c的交互
神楽坂ミノリ:
Linus 的这场演讲谁还记得 C 语言,只记得 NVIDIA, ...

小小小新锐:
当我发现“小甲鱼是的”,我就发现问题不简单

【回复】我也看过小甲鱼的作品,感觉非常好。 也从中受益不少,再次感谢小甲鱼。
52赫zi:
凡是能用JavaScript实现的,最终都会以JavaScript实现[滑稽]

【回复】回复 @唯有清风与长剑 :ts本质上就是js,只是多了一些语法上的约束和难度,最终执行的还是js
【回复】回复 @52赫zi :“unity从js转c#有他的考量,并不就是JS不行” 你要搞清楚,unity不用JS就是因为JS不行
海绵宝宝神乐兔:
C++舒适不行,到现在连自己的包管理都没有,弄了半天还是和C一样野生,可人家C语言本来就是野路子,你C++还野不很奇怪吗

【回复】来学rust吧 现在来你就是基本库创始人 各种重新造轮子[doge]
【回复】个人觉得c++语言不必c语言差,性能不会差多少。 c语言裸写代码,库很少,还是写的很费力的。 很多api不一定安全,还是需要自己写,像传统的strcpy等。
【回复】c++本来就是野生,这点没办法,c++诞生的时候没有标准委员会,每一个平台因为各种原因,实现不同,甚至里面加了很多料,当做几个不同c++来用,标准出来后好了一些,但是哪怕是2020年,c++依然还是高度耦合编译器,操作系统,没法做到java直接代码copy直接用,用预编译指令写好代码的当我没说
叔弘:
特就是一个写操作系统的,懂什么编程.php天下第一[tv_doge]

【回复】什么 HTML不是最好的编程语言嘛[doge][doge][doge][doge][doge][doge][doge][doge][doge][滑稽][滑稽][滑稽][滑稽][滑稽][滑稽][滑稽][滑稽]
【回复】回复 @残花香终雪夜 :哦 老伙计。真该死!我竟然忘记了还有HTML
【回复】回复 @凌末淡花 :在下降99%的C程序员也比不了他[doge]
青龙幻影大号被封:
C是一切语言的基础,用武侠小说就是入门功法。你当然可以练入门功法,武当长拳啊,太祖长拳啊,罗汉拳啊练到出神入化。而且一通百通,你把基础功法练到出神入化练其他武功事半功倍。但是毕竟不可能谁都从入门功法开始练,先练个20年太祖长拳,再练个20年空明拳,你四十年把空明拳练到无人可敌,出来一看大家打架已经用飞机导弹了

【回复】准确说他是物理规则,工具再强,底层基本是与c相关或者就是c实习的,当然,工具好用高效,有起重机的时候,没有人会徒手搬砖上32楼。
【回复】C学的好进intel,nvidia,amd,或者进德州仪器这些芯片厂商,出路还是很好的。只不过c的门槛高一些,很多人学了几年可能也没入门。
【回复】c是九阳真经 内功 , c++ java九阴真经 招式
Winnie酱:
当初我学java是为了找对象,最后发现这个对象可以是抽象的[尴尬]

【回复】java中处处是对象,二次元到处是老婆
【回复】所以拥有了熟料二次元老婆
【回复】回复 @瘟浮菌 :熟料啥意思啊请问
夫人萌萌哒:
语言还是挑合适的,做操作系统或者更定制化一点的裸机开发之类的就是汇编和c更合适,但你想整一些方便部署服务的小工具,用c就不如用Python或者写bash脚本,还是挑合适,合适才是最重要的。

【回复】但是访问内存遍历节点钩子和函数调用都要学C++或者C,我也不想啊,但是不学玩不了这些,遍历节点倒是连cs都可以做但是嘛…
anonymoua:
现在的大学教育毁了c语言在国内的地位,拿着谭浩强几十年前的古董教材念ppt,在打下基础的黄金阶段很多学生皮毛都没学到,学生认为这个语言不重要,面向就业还得java,实际上除了hello world和书本上的课后作业一个c程序都没写过,毕业后重新找java培训机构培训几个月去找工作,c可比很多语言难多了与硬件交互也更强,大学计算机专业讲操作系统的时候应该开设linux内核课程顺便结合c语言解读内核源码,这样不仅对操作系统有深入理解还对学生还开辟了一个新天地,感兴趣的学生如果好好学了可以说打下了非常扎实的计算机科学基础,在这基础上学啥都快。

【回复】书里面用来举例的垃圾代码连静态检查都过不了的垃圾玩意,我建议直接拿航空航天行业的代码用于教学,告诉学生不注重编码规范与系统安全,是要出人命的[滑稽]
【回复】没关系,想学的都毕业于哔哩哩哔大学,不想学的已经转行了,这东西蛮靠主动性的,计算机专业不仅仅是一个c的问题,是一个体系的问题,还真不如哔哩哔哩和网课,我就是看完哔哩哔哩的觉得这东西原来可以这样搞,学校教的p狗屎,PPT看的就想睡,还用vc6.0演示,真的要靠自学能力,,计算机专业,如果真的努力,两年就可以学完4年的课
【回复】所以说什么科班计算机,唬人的,一般的工作高中就能干,除了算法要用高数,这东西就是看勤奋,多敲,勤思,多敲,多敲,多敲,大学4万行代码量毕业应该找个工作不成问题。其实很多人一定程度上也是被学校带坏了,教学模式到教材全面的脱节!!这行一定要具备自学能力
Rose是最好的:
C#:他们都在讨论C和C++ 感觉我被注释了[酸了][酸了][酸了][酸了][酸了]

【回复】我想起比尔盖茨那个亏掉400亿的视频了
【回复】说真的c#写东西真的享受,如果哪天他能支持嵌入native代码,真的就是无缺点总司令了
_ZR_莫奈_:
任何一种比C语言低级的语言都不能描述一个完整的计算机系统,任何一种比C语言高级的语言都可以用C实现[歪嘴]

【回复】回复 @8级泥瓦匠 :你是说69年写了,71年又用c重写的那玩意?而且那个用汇编写的unix写的也不理想啊,后来又用fortran重写,又没写好,然后又用B写,用B写没多久就有C了,就是那短短两年的事。
【回复】回复 @_LzoRn :丹尼斯里奇发明c语言的目的就是用来重写unix
【回复】这不至于吧,通用编程语言都是图灵完备的,以前c没有的时候,也有不少操作系统的[喜极而泣] 以前的人汇编写操作系统都有。 描述都可以描述,但是要考虑到性能,学习成本,移植性等等。毕竟是搞工程,不能纯理论。
qliqww:
C语言的运行效率高,但开发效率低。用C语言开发软件,就象用纯手工来做一件东西。只有技艺高超的人,才可以做得很好。就象擅长书法的,用一支普通的笔就能写出一手好字。但一般人就不行了,一般的程序员写不出好的C程序。Linus用他的实际成就证明了他在C语言编程方面的造诣,才有资格说这样的话。

【回复】其实c也是有框架和库的,抽象起来可以模仿任何语言的风格,等实现变得完美时,你发现,自己创建了一门新的语言[喜极而泣]
【回复】并不是,用c可以设计出来很牛逼的数据结构,这方面相反的例子就是java,java的数据结构及其笨重,就因为数据结构好所以你写代码一点都不费劲,反而那个数据结构设计出来比较难
【回复】c代码并不难,主要是对设计考量比较高,就coding实现来说,一点都不难,而且c没有心智包袱,也没有花里胡哨的东西,cpp也是真的开发效率低,心智包袱太重了,特别是用他做核心模块,花里胡哨的
凌·绝觞:
虽然我挺佩服他的,但我认为他是个老顽固,就像科技进步是为了带来便利一样,编程语言的进步也是因为各种需求。。。。。虽然我本来就是用c和c++的

【回复】这是因为他和你的高度不一样,视角不一样,你可能是欧阳锋,对九阴真经爱不释手,他是独孤求败,切,九阴真经,什么玩意啊。
【回复】写系统就没有比c更合适的,c的语法简洁,极其灵活自由度高,性能高,别人作为linux项目领头羊全盘考虑,全世界起码一半以上的it公司都要吃他这里的饭,一个严重的内核问题导致的损失是不可估量的。现在的linux就是追求稳定、性能、安全,由于历史原因 现在的rust也不能替代c来参与linux项目
【回复】他在Linux内核用C不用C++也是他的质量管理需求。他尝试允许rust也是为了接班。毕竟不能要求每个开发者都比他厉害。
Se_raph:
搬运投自制+机翻+标题夸大描述,🐟总你真能赚哦

【回复】不过很可惜,有个翻译确实可以投自制,就算你把两个视频缝合在一起不做剪辑的低创也可以说是自制
【回复】你去问任何一个科班程序员,只要他不傻,都会告诉你,学c
【回复】发个群号,有钱一起赚[偷笑]

程序员 C语言 操作系统 编程 小甲鱼 汇编语言 计算机科学 Linus Linux

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!