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 毫秒。具体细节可浏览他的演讲报告。
about future的更多相关文章
- 面向未来的友好设计:Future Friendly
一年前翻译了本文的一部分,最近终于翻译完成.虽然此设计思想的提出已经好几年了,但是还是觉得应该在国内推广一下,让大家知道“内容策略”,“移动优先”,“响应式设计”,“原子设计”等设计思想和技术的根源. ...
- 线程笔记:Future模式
线程技术可以让我们的程序同时做多件事情,线程的工作模式有很多,常见的一种模式就是处理网站的并发,今天我来说说线程另一种很常见的模式,这个模式和前端里的ajax类似:浏览器一个主线程执行javascri ...
- 第二篇 Entity Framework Plus 之 Query Future
从性能的角度出发,能够减少 增,删,改,查,跟数据库打交道次数,肯定是对性能会有所提升的(这里单纯是数据库部分). 今天主要怎样减少Entity Framework查询跟数据库打交道的次数,来提高查询 ...
- Eclipse调试Android App若选择“Use same device for future launches”就再也无法选择其他设备的问题
在狂批了某供应商的多媒体控制App有多烂后,夸下海口自己要做一个也是分分钟的事.当然要做好不容易,要超过他们的烂软件还是有信心的.过程中遇到各种坑,其中之一如下 刚开始只使用一个平板进行调试,老是弹出 ...
- java Future 接口介绍
(转自:http://blog.csdn.net/yangyan19870319/article/details/6093481) 在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java ...
- java多线程系类:JUC线程池:06之Callable和Future(转)
概要 本章介绍线程池中的Callable和Future.Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40) 转载请注明出处:http://www.cnblogs.co ...
- 架构师养成记--9.future模式讲解
什么是future模式呢?解释这个概念之前我们先来了解一个场景吧,财务系统的结账功能,这个功能可能是每个月用一次,在这一个月中相关的数据量已经积累得非常大,这一个功能需要调用好几个存储过程来完成.假如 ...
- Future和Promise
Future用于获取异步操作的结果,而Promise则比较抽象,无法直接猜测出其功能. Future Future最早来源于JDK的java.util.concurrent.Future,它用于代表异 ...
- Java--Callable与返回值future
package com; import java.util.concurrent.*; /** * Created by yangyu on 16/11/28. */ /** * Callable a ...
- Java多线程系列--“JUC线程池”06之 Callable和Future
概要 本章介绍线程池中的Callable和Future.Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40) 转载请注明出处:http://www.cnblogs.co ...
随机推荐
- 37、pendingIntent 点击通知栏进入页面
转载: http://blog.csdn.net/yuzhiboyi/article/details/8484771 https://my.oschina.net/youranhongcha/blog ...
- JS之字符串与JSON转换
JS之字符串转换JSON 1.eval 古老的方式 function strToJson(str){ var json = eval('(' + str + ')'); return json; ...
- CSS浏览器兼容性问题解决方法总结
CSS浏览器兼容解决总结如下: 1. CSS中几种浏览器对不同关键字的支持,可进行浏览器兼容性重复定义 !important 可被FireFox和IE7识别 * 可被IE6.IE7识别 _ 可被IE6 ...
- SQL2005数据库放在C盘,结果C盘满了,怎么搞到D盘
首先,你需要将自己所建立的数据库从SQL2005中分离出来,然后按照自己的存储路径找到自己所建数据库存储的位置,把它剪切到D盘就可以了.(mdf,ldf都应该考过去,自己建立路径存储就可以,再次打开的 ...
- ALV TREE 实例
ALV TREE 实例 REPORT ZRPT_PS_PS021TREE . TABLES: PROJ, "项目定义数据 PRPS, "WBS元素数据 ZCJ30, "A ...
- 安装pymysqlpool并使用(待补充)
pip3 install PyMysqlPool 第一个错,提示没有装c++ 14.0,下载安装报下一个错 error: Setup script exited with error: Microso ...
- 【转载】帧缓冲驱动程序分析及其在BSP上的添加
原文地址:(四)帧缓冲驱动程序分析及其在BSP上的添加 作者:gfvvz 一.BSP修改及其分析 1. BSP中直接配置的四个寄存器 S3C6410数据手册的第14.5部分是显示控制器的编程模型部 ...
- 学习html第一天
网站本身就是软件,软件:一种具有特定功能的程序指令的集合 C/S:C客户端-->S服务器 由程序员开发 客户去下载升级安装,比如魔兽世界 B/S:B浏览器-->S服务器 由程序员开发 ...
- js动态插入标签代码(insertAdjacentHTML)
做网页时通过ajax请求获取到数据后,有的需要把数据拼接到带有各种标签的字符串中,拼接完字符串就需要把字符串动态添加到网页上的某个位置,举个
- glViewport()函数和glOrtho()函数的理解(转)
转:http://www.cnblogs.com/yxnchinahlj/archive/2010/10/30/1865298.html 摘要:glOrtho相当指定图框的大小,由此会使得图框里的图形 ...