阅读更多

22顶
6踩

编程语言

转载新闻 Linux之父Linus Torvalds:讨厌C++

2010-06-13 10:24 by 见习记者 kangsoft 评论(24) 有16370人浏览

"Linux内核的创始人Linus Torvalds最近在一封邮件中说明了内核开发需要使用C语言而非C++的理由。在庞大的项目中,人们对不是自己开发的模块并不了解,能快速理解其他模块中函数的 确切含义才能提高开发效率,而C++引入的各种抽象则使代码变得晦涩难读。 另外Linus还认为C++的内存管理方式很弱智(that idiotic "new" keyword in C++)。邮件最后的总结是:很显然C并不适合所有项目,不过C++?还是算了吧。垃圾回收和并发等等,这些才是真正重要的特性。 那么他所期待的C++替代会是什么呢?是方兴未艾的Go语言?还是即将迎来2.0的D语言?或是用 Java, .net这些基于虚拟机的语言去代替?"

来自: solidot
22
6
评论 共 24 条 请登录后发表评论
4 楼 RednaxelaFX 2010-06-13 13:57
night_stalker 写道
2. 对底层访问友好,稳定,小,在资源受限(譬如内存只有 640k)的机器上也能跑。所以大部分虚拟机语言都不符合要求。

其实在资源受限的地方跑正是“虚拟机语言”擅长的。为了省空间可以把虚拟机做得非常小,即便牺牲一点速度。如果有为访问底层资源而特化的话,虚拟机语言照样能为访问底层提供良好支持——虚拟机跟GC啊不让用指针啊啥的没任何必然联系。
3 楼 chon81 2010-06-13 12:35
对C++的指责基本上来自两个前两名的编程语言阵营: C和JAVA
C阵营说: C++会自己加入一些代码, 还有虚函数, 让调试(汇编调试)很困难
JAVA阵营说: C++没有垃圾回收, 给开发上造成难度.
为什么他们不攻击汇编, VB, C#等等.
我觉得是因为, C++能做他们能做的事.
其实很多问题都是可以解决的, 主要是C++是个强大的东西, 因为强大容易被烂用.
2 楼 night_stalker 2010-06-13 11:28
如果你读了原文,就知道 L 童鞋对内核编程语言的要求:

1. 用 grep 就能找到方法定义,不需要太多上下文就能明白代码是做什么的。
所以基本上 OOP 语言都不符合要求(grep toString 看看?)。需要 IDE 才能干活的语言都不符合要求。试试不用 IDE 写个大一点的 Java 工程? 包名和依赖就能搞死你。

2. 对底层访问友好,稳定,小,在资源受限(譬如内存只有 640k)的机器上也能跑。所以大部分虚拟机语言都不符合要求。

在 L 童鞋的眼中,C 已经几乎完美了。做内核不是做应用,在培训班上了几天课的小屁孩天天嚷着用 C++ Java D Go,肯定会烦的。
1 楼 易卡螺丝君 2010-06-13 10:58
下次从solidot搬运的时候麻烦快点 转贴还要有一天的延迟

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 分享Java常用几种加密算法(四种)

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。本文给大家分享java常用的几种加密算法,需要的朋友可以参考下

  • 密码学之常见加密方式(05)

    常见加密方式 文章目录常见加密方式前言一、对称加密二、DES加密三、DES解密Base64 算法简介Base64 算法原理Base64 构成原则四、base64补等号测试五、AES加密解密六、toString()与new String ()用法区别哪一个是正确的?为什么?toString()与new String ()用法区别什么时候用什么方法呢? 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器

  • MD5加密原理

    简单字符串MD5加密 1.MessageDigest.getInstance("MD5").digest("需要加密的字符".getBytes()) 计算出来的结果返回的byte[]长度始终为16位。 2.要记住我们计算出来的md5(32位)最后都都是固定长度32的字符串 * byte有8位,假如全部都是 11111111 那么对应的int(10进制)类型就是 255 * 虽然255(...

  • MD5算法原理

    什么是MD5算法 MD5讯息摘要演算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值(hash value),用于确保信息传输完整一致。 MD5功能 输入任意长度的信息,经过处理,输出为128位的信息(数字指纹); 不同的输入得到的不同的结果(唯一性); MD5属不属于加密算法 认为不属于的...

  • MD5科普(二):MD5算法详解/如何改进MD5算法?

    原文链接:https://www.6zou.net/tech/md5_how_to_do.html 一、MD5算法的实现 MD5算法简述: MD5是输入不定長度信息,输出固定長度128-bits的演算法。 经过程序流程,生成四个32位数据,最后联合起来成为一个128-bits散列。 基本方式为,求余、取余、调整长度、与链接变量进行循环运算。 MD5相对MD4所作

  • 深入理解MD5哈希算法

    当谈及MD5哈希算法时,我们进入了计算机科学与信息安全的领域。MD5,即Message Digest Algorithm 5,是一种哈希函数,旨在将任意长度的输入转换为固定长度的输出,通常是128位的散列值。这种算法在数据完整性验证、密码存储等方面曾经被广泛应用,但近年来由于其存在的漏洞和安全性问题,逐渐被弃用。接下来,我们将深入探讨MD5的工作原理及其存在的问题。

  • MD5算法详解

    md5算法

  • MD5算法原理的说明

    测试: zhong7758521 : 50945d41c5b4f365296a68ea416dc2c7 UJRdQcW082UpamjqQW3Cxw== 博文链接:https://graduate.iteye.com/blog/239817

  • md5 常用的加密值

    先放这里,好以后查阅。要的时候总找不到。7a57a5a743894a0e admin(16位MD5小写加密)972130B75066C825 ADMIN(16位MD5大写加密)21232f297a57a5a743894a0e4a801fc3 admin(32位MD5小写加密)73ACD9A5972130B7

  • MD5算法底层原理

    MD5算法的过程分为四步:处理原文,设置初始值,循环加工,拼接结果。 第一步:处理原文     首先,我们计算出原文长度(bit)对512求余的结果,如果不等于448,就需要填充原文使得原文对512求余的结果等于448。填充的方法是第一位填充1,其余位填充0。填充完后,信息的长度就是512*N+448。     ...

  • 常用的加密算法

    加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密。

  • 常见的加密解密算法

    最常用的加解密算法有什么?

  • MD5算法(一)

    <br />MD5算法说明 <br /><br />一、补位 <br />二、补数据长度 <br />三、初始化MD5参数 <br />四、处理位操作函数 <br />五、主要变换过程 <br />六、输出结果 <br /><br /><br />1 补位:<br />    MD5算法先对输入的数据进行补位,使得数据位长度LEN对512求余的结果是448。即数据扩展至K*512+448位。即K*64+56个字节,K为整数。<br />    具体补位操作:补一个1,然后补0至满足上述要求。 <br />2

  • MD5加密原理.doc

    MD5加密,C#,MD5加密原理.doc,

  • 常见加密算法

    3DES(双倍)密钥长度的为16节长 DEST是最终得到的密文。具体过程简述如下: 1)使用密钥的前8字节,对数据DATA进行加密,得到加密的结果TMP1; 2)使用密钥的后8字节,对第一的计算结果TMP1,进行解密,得到解密的结果TMP2; 3)再次使用密钥的前8字节,对第二次的计算结果TMP2,进行加密,得到加密的结果DEST。DEST就为最终的结果。 3DES(双倍)缺点 如果前8个字节和...

  • MD5加密算法原理及实现

    全称:message-digest algorithm 5&nbsp; 翻译过来就是:信息 摘要 算法 5 1.特点 1.长度固定: 不管多长的字符串,加密后长度都是一样长&nbsp;作用:方便平时信息的统计和管理 2.易计算: 字符串和文件加密的过程是容易的.&nbsp;作用:&nbsp;开发者很容易理解和做出加密工具 3.细微性 一个文件,不管多大,小到几k,大到几G,你只要改变里面某个字符,那么都会...

  • MD5原理

    v/:* {behavior:url(#default#VML);} o/:* {behavior:url(#default#VML);} w/:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} Normal 0 7.8 磅 0 2 false false false

  • MD5算法原理及Go语言运用与实现

    一、MD5 算法特性 MD5 属于 Hash 算法中的一种,它具有以下特性: 输入任意长度的信息,经过处理,输出为 128 位的信息(数字指纹)。 不同的输入得到的不同的结果(唯一性)。 根据 128 位的输出结果不可能反推出输入的信息(不可逆)。 可见继承了 Hash 算法的优良特点,用处很多,如登录密码、数字签名等。 二、Go语言使用MD5算法 func digest(data []byt...

  • md5的特点以及加密原理

    md5的特点以及加密原理

  • MD5加密是什么?为什么不可解密?

    MD5消息摘要算法(MD5 Message-DigestAlgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

Global site tag (gtag.js) - Google Analytics