about future
最近又又又重复看了
star trek 星际迷航
back to the future 1/2/3
开始想象未来是什么样子的
1. 未来的开发语言
1.1【rust】 or 【golang】 or 【cpp11 => cpp 17 => cppxx】 ?
cpp11之后 STL使用已经足够简单
Strings library
basic_string
basic_string_view (C++17)
Null-terminated byte strings
Null-terminated multibyte strings
Null-terminated wide strings
Localizations library
Regular expressions library (C++11)
Atomic operations library (C++11)
Thread support library (C++11)
再到最近的cpp17的
Filesystem library (C++17)
===================================
如何看待 Rust 的应用前景?
如何评价即将发布的 Rust 1.0?
Rust Once, Run Everywhere
关于 rust 前景大家是什么样的一个态度
rust 如果作为一个系统级别的语言,没有gc 和runtime 那么的确可以做出一个性能好的程序。
(发展的好的话,文档,标准库也会跟上, 可以无缝贴合c语言),将来在硬件领域 或许是个不错的选择
但是golang 在开发效率,标准库的开发进度已经非常成熟了,
已经可以开始大量使用golang了,语言性能也只是比c、c++ 低20%而已, 但是大部门性能损耗应该在 业务+网络 上, 算法+策略上的优化,起码可以达到100倍以上。
额,中小程序(节能嵌入式,桌面软件)将来还是cpp 主导。
中,大型程序 有golang/java
看定位的话,rust除了操作系统 既要求效率和性能,又要求开发效率。
但是历史上有那么多的库,C11也已经足够好用了,
对于OS来说,他们没有必要用rust重写,完全可以用c模拟一个thread safe,lock free, goroutine(早期C Run Time 不是threadSafe 就是因为用全局static变量)
c的灵活度高到, c的历史 坑 + 包袱 完全可以重写!!我想rust性能再高,也不如用指针消耗低吧。
但是关于【开发效率】和 【软件安全问题】,让我对rust 再次有好感。
如果你要去50km外的地方,你是用腿走过去(c language),还是开汽车(rust language),还是开飞机去(c++ language)
- C 成本太高。
- rust 复杂度中等(普通人学习下就可以用)
- cpp 复杂(上手当然也可以很简单,但要理解深刻。绕过那些坑,没有大量的时间和实践是不行的 )
时间也是成本的一种,并且是最昂贵的一种!(from 星际穿越 Interstellar)
BS 也不止一次比喻C就是用腿走路了,这个比喻其实蛮恰当的
1.2 软件安全性
C语言
- 指针用的不好,容易出问题。
- 异常处理的太垃圾,
- 和cpp一样,各种依赖(编译时、运行时,头文件依赖)依赖的依赖的依赖。。。 (boost 之所以这么流行就是大部分库,只需要载入头文件,不用其他依赖)
1.3 总结
rust 几年之后可以跟进看看,如果想弄嵌入式,并且对功耗有要求的话。
golang 现在也可以跨平台,write once run everywhere(golang 的cgo 因为runtime 和c runtime 不一样,还需要改变默认 堆栈大小 )
cpp就算STL 做的再好,将来 编译环境,编译依赖,头文件依赖等等。 语言方面的优化问题,解决不了,还是会很头疼。(大型程序,开发效率会大大降低!!!!)
扩展阅读:安全问题、开发效率
航空飞船,卫星,车载 无人驾驶领域,测试的成本就太高了。用机器去写代码,总好过人写代码吧。 话说将来真的是有可能哦, 人类就写API, 机器就调用。 google
大家还记得 美国 航空飞船 发生多少次飞船升空失败了么?
SpaceX火箭发射失败后续:事故调查竟能如此精细
SpaceX 完成世界首次海上回收火箭
失败四次后,SpaceX 终于既能上天,还能海上回收了 or 海上回收火箭首获成功,民营航天发展势不可挡
SpaceX 今天首次成功在大西洋上回收火箭,这是人类史上第一次,实现海上回收第一级火箭。
猎鹰九号第一级垂直降落在大西洋中一艘名为“Of Course I Still Love You”的无人船上。
此前,SpaceX 已经尝试了四次,终于在第五次时成功。
为什么感觉美国发射火箭经常失败而中国很少失败?
中国火箭发射记录 China Launch Vehicle Flight History by Variant/Year (1970-Present) page 1/4
喜欢这个话题的小伙伴,可以在这里找到一些从业者 或学生或工作人员
中国 知乎话题:火箭发射
全球 quota,NASA等等
==============================
引用 【star terk 】中的话
未来就是能源 和 技术的 时代
这里 最后 有讲到如何利用能源
阿库别瑞(曲速)引擎的运作原理是怎样的?
is the solar system really a vortex
有空可以看看NASA 官网 或者 邮件
kernel的会在乎安全性?
Linux 之父 Linus Torvalds 在表达针对 Linux 内核安全性的问题上,总是有自己独到的见解。在最近的访问中,他解释了为什么内核漏洞并不像人们想象得那么糟糕。
一般发现一个 Linux 内核漏洞之后,进行快速的修复,但伴随而来可能还会产生其他问题,只不过一时半会儿没有被人们察觉。如果你是个程序猿,开发一段代码超过 10 年,那么这种模式应该是很容易理解的。
从我们外行人的角度来看,加强 Linux 内核的安全性应该是内核开发者的首要任务之一。然而实际让,在内部人士看来,情况可能会复杂得多。
在接受华盛顿邮报的采访时,他解释了为什么内核的安全性需要向其他因素妥协,如速度、效率等的因素,不像人们对安全性的理解那么简单。采访中,Linus 所表达的观点与那些大力喊着安全性的开发者是不一样的。
他说:“那些关心这种东西的人真是疯了。他们把黑白分得太清楚了。仅是本身的安全是没用的,还在于其他方面(Security in it self is useless. The upside is always somewhere else.)。”
他表达的想法有两个意思。其一,我们不能仅仅将安全寄托在 Linux 内核上,还有其他层实际上是应该要防止漏洞被利用的。第二,不管我们如何修复或者提升 Linux 内核,我们可能都不会看到它带来的真正好处,总会有其他的方法来达成这方面的提升。
Linux 内核社区内部,安全性始终是争论的焦点问题。我们只能希望 Linus 所表达的这些能够对开发者在安全性工作上起到指导作用。
Linux内核被指缺乏安全性
《华盛顿邮报》发表了一篇报道采访了Linux作者Linus Torvalds谈论了内核的安全
Linux统治了互联网,微软和苹果相比都要相形见绌,在此情况下Linux的安全愈来愈引起关注,而Linus本人对安全的看法则招致了非议。安全研究员Daniel Micay说,Linus没有将安全摆在更重要的位置,他和他周围的人都持有相似的安全观。Linus被认为更关注性能和可靠性。他在接受采访时承认与安全专家有不同的观点,他认为任何系统的安全都不可能完美,所以必须与其它优先事项权衡利弊。他认为那些将安全置于一切之上的人都疯了,安全本身是没有意义的,问题总是会出现在某个地方,安全从来不是需要你真正关注的东西。他举例说,想象一下恐怖分子利用Linux内核漏洞导致核电站熔毁,杀死了数百万人。但真正的安全问题不是在内核,而是如果你运行了一座能杀死数百万人的核电站,你不应该连上互联网。
世界上没有任何软件,是安全的! 开发者有编译+运行环境,解析到汇编,都可以直接改内存中 变量的值。
嵌入式Linux会议:一秒启动Linux
or 原文
视频 How to Boot Linux in One Second - Jan Altenberg
pdf演讲报告
在欧洲举行的嵌入式 Linux 会议上,德国公司 Linutronix 的 Jan Altenberg 介绍了如何一秒启动 Linux。一秒启动对于汽车等应用环境十分有用。
使用 Atmel AT91 ARM9 SoC 和 NAND flash 存储器,运行 Angstrom Linux 的标准启动时间是 11 秒,简单优化后可以降低到 8 秒,
深入广泛的修改包括内核配置修改和命令行调整,可以将启动时间减少到 656 毫秒。具体细节可浏览他的演讲报告。