V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  secondwtq  ›  全部回复第 86 页 / 共 121 页
回复总数  2420
1 ... 82  83  84  85  86  87  88  89  90  91 ... 121  
2019-07-12 20:37:01 +08:00
回复了 s1aaas 创建的主题 配件 问问大家人均有线耳塞寿命如何(经历无数次一只耳有感)
配塞坏过好几个,包括 EarPods,不过不贵又买了一个继续用
大学时候的 mx985 用了两年丢了,快毕业的时候找出来了,线皮开了,不过没断,这货现在好像绝版了
前年买的 k3k3,这货的线其实并不耐艹,比较逗的是我经常出去的时候放衣服里,回来的时候衣服直接脱下来扔一边,然后就进了两次洗衣机… 到现在暂时没事

结论:买可换线的
2019-07-12 18:34:30 +08:00
回复了 MrWhite 创建的主题 程序员 想问一下哪一门编程语言入门就很难学呢?
Coq,Agda 之类的应该比 Haskell 难学
正则不行,正则虽然看上去蛋疼,只是规则复杂,理论是很简单的(当然你可以讲如何高效实现正则,这个可以搞很难)
最重要的是,正则真的很有用←_← 甚至到了极其容易被滥用的程度,确实有用的东西是对人的学习积极性有很大加成的,就好像钱难赚但是大家还是都在赚钱
所以标准不能仅仅是”难”, 还应该”没用”,然后在他问学这些有什么用的时候告诉他学校就是这么学的,这是必要的前提←_←
Coq,Agda 完美符合
2019-07-11 22:17:26 +08:00
回复了 douglas1997 创建的主题 问与答 iPad 上代码编辑器?
Vim 的话有个 app 就叫 iVim

不过我买了官方键盘,发现最大的问题是没有 Esc ...
anki
2019-07-07 00:42:16 +08:00
回复了 kawowa 创建的主题 Linux 新鲜的 Debian 10 即将出炉
说来公司最近有几台服务器升级到了 RHEL8,我想编译软件但是没 root 不好装各种 devel 包,就想着搞一台 CentOS 8 的 VPS 用两天,结果发现没一家有的,一查发现 CentOS 8 还是 WIP
没有建议,只是很纳闷为什么想不开要去做游戏
不过根据我的经验,人是很善变的,这个还是得想好了
楼主这个主题我觉得有一点点奇怪

开头说学英语是想学新技术,但是后面举出的方案好像又没什么关系
我英语没好到流利日常对话的程度,但是学技术还是没问题的。如果只是为了学技术的话,我觉得楼主说的用 app,找人辅导,读小说之类的有点南辕北辙(除非楼主想一步到位)
人们在各种渠道花这么多钱学英语其实是想买个合适的环境,这个环境(广义上)在国内是不大好获得的,但是如果特定在技术范围内,那只要你能科学的访问互联网,其实是可以零成本获取并且长期保持的(不像你去上课,下课了就没环境了,不给钱了就没环境了),也并不需要每天留出专门的时间,干活的时候就可以顺便学了

一般的文档、文章、专业书籍和 paper 里面出现的词汇就只有常用词汇和专业词汇。我记得看到过相关调查,说就英语来说 3k 常用词汇占了用量的 80-85%,7k 词汇(差不多我现在的水平)占 90-95%(具体数字不同调查有差异,但是大体规律是这样)。而 native speaker 的词汇量一般在 15k 以上,注意词汇量分 active vocabulary (你写作的时候能想起来用的),和 passive vocabulary (平常想不到但是阅读时候看到是知道是什么意思的),有些调查说 native speaker 有多大的 vocabulary,但是没说是 active 还是 passive,所以这个数字参考价值有限。针对楼主的目的来说,passive vocabulary 重要性远超过 active vocabulary ——学习技术主要是输入的过程,输出的主要是代码,这个是有编译器帮你解决的。如果你要用英语在线进行技术交流,就算语法有错误,也是能达到目的的,用不用高级词汇根本不是问题。

当然这不是说语法错误就可以不在意,它仍然会让你看上去有些奇怪。不过就我个人感受而言,整体态度给人的印象重要性远超语言细节。这第一是指和语言无关的,比如不要叫人帮你写作业,尝试自己提炼出 minimal reproducer 不要上来就 copy 一大段代码发上去让人看,尽量不要提重复问题,提问题之前先 RTFM 之类的,还有语言相关的,比如大小写要用对,英文帖子不要用中文标点(不专业,有些机器可能是小方块),标点后要加空格,写 Email 要写问候语和落款,标题要把内容概括不要光写 a linux problem 之类的,如果自己没在 troll 的话就不要连打一堆的问号和叹号之类的,这类问题我觉得比语法错误更严重,我见过若干次 native speaker 出语法错误,但是不仔细看的话,人家写得就是正常英语,不会句点后漏空格。很多博客排版很乱写得很随意(应该是 CSDN 的缘故←_←)这种我一般不怎么看的,也有很多站连 CSS 都没有(一般是上了年纪的人),但是内容组织性很好,不会犯不该犯的错误。

貌似有些 off topic 了。计算机领域的专业词汇其实界限是比较明显的,你在学一门技术的过程中会逐渐了解到其中的名词概念,如果你一直看的都是英文资料的话是不会有生词的——因为你在(按顺序)看第 n+1 篇文档的时候,其中涉及到的概念已经在之前的 [0, n] 文档中有过定义了。须知计算机的专业术语大多数都是从英语里面借过来的,但是理解原词并不是理解专业术语的必要条件,举几个例子:

* 比如常见的 class 这个词,程序员的理解就是把数据和操作放在一起,可以继承,有多态行为(关于 class 和 OOP 相关定义的争议很大,此处仅作举例不展开),但是 class 还有阶级、班级的意思,不知道这些意思并不影响你学 class 怎么用。

* 同理,object 除了对象 /物件之外,在一般语境里面有反对、目标和宾语的意思。

* OOP 的一个段子: A boy and a girl were sitting in a Java programming class together. He reached over and grabbed her breast. She said "Hey, that's private". He looked confused and said "I thought we were in the same class"

* bus driver,有“公交车司机”和“总线驱动”两个意思

* graph,一般指图表,但是离散数学里面就是一堆点和一堆边,计算机里面就是一个数据结构。

* atomic,在新闻中看到一般与核武器有关,但是毕竟搞这方面的程序员是少数,所以技术资料中一般取“不可分”的意思,并且一般是指“原子操作”这个特定的意思(此外 LISP 中 atom 指一种数据)。虽然原来该词物理上“原子”的意思其实也来源自“不可分”的本意,但是确实在非技术的上下文中“原子”的意思占大多数。当然这个也是有段子的,Herb Sutter 有一个讲原子操作与内存序的非常好的 technical talk 起名叫 Atomic Weapons,我个人觉得传达了这东西一般人碰不得的意思。

* web,这词在用来指代计算机网络之前是用来指代蜘蛛网的(当然就把你捆住隔你韭菜这点上来说精神上是相通的 xD )

当然要是问理解原词对理解术语有意义么?当然有,不过我觉得八卦意义大于实际意义——比如说 Opera 那帮人把自己的浏览器叫 Opera,引擎叫 Presto,后来又做了一个浏览器叫 Vivaldi,这绝对是对古典音乐爱得深沉。学技术更重要的是把特定语境里面某个词具体指的是什么的定义搞清楚。

从这个角度上看我认为所谓背单词的方法对专业术语的作用是有限的,因为首先这些术语的组成和拼写并不复杂,其次背单词并不能帮你理解它的定义,也就是你看文档看到这个词仍然不知道什么意思——甚至更严重的是用其他上下文中的意思硬套到别的地方去导致报道,哦不理解出了偏差——我之前有个帖子举了个例子,说 ObjC 和 Java 里面的 interface 关键字的意思完全不一样,同理,C++ 和 Web 开发中的 template 的意思完全不一样,C++ 和 Java 中 volatile 的意思完全不一样,你看就连同是计算机领域中都不能直接套,如果你认识这些词的话你会发现在这些上下文中这些词都一定程度上反映了平常的意思,但是区别却又很大。

总之我的感受是背来的单词在技术学习中碰到都要重新了解一遍是什么意思,但是在技术学习中学到,练习过的词就天然不用背了——我能从其在专业领域中的意思反推出日常中的意思,反之则经常会出错误。

这是阅读,还有一个是听力。这个问题很尴尬——因为如果你直接去听技术演讲,会发现人家多半不是 native speaker,印度口音,俄罗斯口音,欧洲各地的口音满天飞,另外可以去听新闻广播,这时你会发现虽然一般口音比较“标准”,但是词又都不认识(我的感受是别的词还好,但是很多人名、地名认不出来,会严重影响对内容的理解)。所以可以从 native speaker 的演讲入门,开着字幕也没有关系——其实我认为是应该开字幕的,因为准确理解技术细节比追求“我就是要无字幕听懂”更重要。

当然如果是 YouTube 自动生成的字幕,可能也没有那么的准确。这涉及到另外一个问题,就是学习过程中对很多词基本的读音的认识是不准的,大多数语言的读音和书写是关联的,读不准就写不准(甚至认不准)。YouTube 起码在这方面是基本正确的。你听到一个词,如果听不懂可以去参考字幕是怎么写的,如果听得懂则应该过一遍这个词自己记忆中的读音和演讲者的读音是不是一致的。注意不一致不代表自己错了——有些词在不同口音中的习惯读法本来就不一样,何况有些词(如 Linux )本来就是生造出来 /拼出来没有固定读音的。不过我认为多听演讲对于矫正读音是很有帮助的。当然这个前提是你有这个意识去做这个事情,不是只听个内容就完事了。

总之我的建议是楼主的情况不需要专门的时间,也不需要其他类型的材料,我好像也没见过有专门针对技术类英语的收费培训。主要是日常习惯用英文工作。非要的话那就每天读 20 页英文技术书或者两天一张 paper,每天听半小时英文 talk 就足够了。
2019-06-30 15:24:53 +08:00
回复了 WhoCanBeRich 创建的主题 问与答 问一下关于 iOS 的问题呀,性能重写方面的
Person 是你软件中的一个组件,所谓类 /方法是编程语言提供给你的实现组件的方式。软件的高层设计其实和具体语言的关系并不大。编程语言会灌输给你各种奇怪的名词概念,比如同一样东西,iOS 叫 protocol,Java 叫 interface (而 ObjC 的 interface 则更像是 C++ 的 class declaration ),虽然细节有区别,但是大体意思是一样的,这就是所谓的不同编程语言间通用的东西。比如你在学 protocol 的用法,其实在了解了基本语法之后,可以顺便看看 Java 的 interface 是怎么用的,Scala 的 trait 是怎么用的。

所谓的类和方法某种程度上也算是编程语言给你灌进去的东西——虽然严格上来说并不是,但是我觉得一个程序员应该掌握脱离类等概念进行软件设计的能力。iOS 相关的资料自然会鼓励你用他推荐的语言和工具,让你习惯于他自己的那套玩法,所以楼主发现自己需要学习相关知识时,居然是由于“性能”的缘故,而我觉得这方面能力的意义并不仅仅在性能上。

楼主所提到的这个过程应该属于所谓的 modular design。通俗的说,假设我们现在不是在重写 ObjC 的 Person 类,而是用 C 写一个哈希表。那你会先考虑用什么算法,需要哪些操作,这些操作的接口是怎样的。比如 C 不会给你构造函数或者 init 函数,你得自己实现一个 hash_table_create 函数,还有对应的 hash_table_free 函数,没有类和方法,那你就不能定义 size() 方法,而是定义 hash_table_size 函数。C 不能像 C++ 或者 Python 一样做 [] 运算符的重载,那你得实现一个 hash_table_get 函数,你会发现虽然没有高级语言的工具,程序还是能照常写,这是最基本的要求。

再深一点你会考虑如果我实现一个红黑树会是什么样的接口,红黑树的接口和哈希表的接口有什么区别,哈希表要不要暴露出 bucket 数目、允许用户自行 rehash 之类的细节,甚至“使用同一个哈希表 /红黑树的实现来实现集合和关联数组两种模块该如何设计”之类的奇怪问题。

这类入门书建议看 C Interfaces and Implementations (简单了解没必要看书,看看公开的示例代码就行),休闲可以看 A Philosophy of Software Design 之类的

Swift 具体实现不了解,查了一下,按照 https://allegro.tech/2014/12/swift-method-dispatching.html 这篇文章的说法,Swift 方法调用经过编译器优化后实际是与 C 实现等价的。
2019-06-30 14:18:17 +08:00
回复了 noli 创建的主题 Python [可能引战] 用过 Python 也没法理解为什么 Python 是个好语言
@noli numpy 是一个软件,GPU 是一种硬件,你既然写过虚拟机应该知道这俩是没法拿来比的

我的理解一般把 Python 当成“好语言”的人,并不会对自己所使用的语言特别认真,也就是说换成 PHP 他们也会说“好语言”,此类群体一般会持类似“能解决问题的语言就是好语言”“语言最重要的是生态和背后的爹”之类观点

之所以现在吹 Python 的比吹 PHP、Ruby 之类的多,因为 Python 的适用范围比 PHP 广,智商兼容性比 Ruby 高
2019-06-30 02:06:52 +08:00
回复了 vsitebon 创建的主题 分享发现 一个学习的秘密,不要用笔记本电脑做笔记
补充:仔细看了一下,我开始把主楼“作为一个一直在写相关的学习方法之类的博主”看成了“原文作者一直在写学习方法之类的博客”。如果我没有犯这个错误应该不会有 #47 的回复。
2019-06-30 01:54:42 +08:00
回复了 vsitebon 创建的主题 分享发现 一个学习的秘密,不要用笔记本电脑做笔记
@vsitebon 我这个评论和这个特定的文章本身并没有直接的关系,因为我看了不少同类的文章,我这个评论是针对这一大类的文章的,并不是针对特定的这一个

我知道这是个学问,但是我看了这些文章下来的感受是:有这么一群人,天天就写这些文章,录视频,到处演讲,但是这群人除了干这个之外就没有别的产出了,这对我来说是缺乏说服力的

举个正面例子,前段时间看到这么一篇文章: https://zhuanlan.zhihu.com/p/55804099,虽然对于所谓学习科学来说应该完全是外行人,但是这个作者平常有不少干货产出,技术上的品味我觉得也不错,所以这篇文章我来回消化了不少遍(我关注他并不是因为好奇他如何学习,这篇文章属于意外收获)

另一个感受是,部分此类文章会以某些学霸作为例证,但是我认为学霸本身就属于特殊情况,以特殊情况来举例是不科学的,并且同一套方法在不同人上的适用度可能是天差地别的。况且养成学霸的因素并不仅仅是所谓方法与技巧,我学到了方法也并不一定能成为学霸——正如一个富人告诉你他如何赚钱,而你并不一定能复制(其实该富人更大可能会说“勤奋努力”之类的鸡汤,然而这只是非常普通的一个必要条件,并不一定是最重要的条件),我其实倾向于认为相当一部分所谓学霸主要是自身天赋,一般人很难学来

最后我的大体感觉就是我觉得所谓学习科学离普通人还是挺远的。它能总结出一些通用的原则和规律(比如本主题说的“初次学习时更多的思考能有更好的效果”),但是(此处 assume 上文的条件)既然方法并不是学习好的最重要原因,它作为一门学科本身又自然地有数不清的流派和观点(就比如本主题标题的观点就尚不能得到大多数人的共识),最重要的是您也强调了“实际对方法或工具对效率上的提升进行测试非常重要”(我个人持相同观点),那么对一个没有专业指导的普通人来说,相比于实际练习,在这类文章上花费更多时间的意义非常有限。(注意我并未将此类文章等同为学习科学本身,我的观点是靠科普文章是无法真正入门一个学科的,而更深入地了解一个学科本身就需要更多的时间,每个学科的 advocate 同样每天都在鼓吹我们多重要我们是什么什么元学科,我为什么放着其他同样有用或者有趣的学科不学把时间花在这个学科上面呢?)
2019-06-30 01:00:01 +08:00
回复了 yongzhong 创建的主题 天黑以后 20190630 午夜俱乐部
@vtea 看你干什么,我的看法是任何开发板(哪怕强如树莓派 4 )主要面向的是 hardware hacker。如果要做任何对性能有高要求的任务,我自己的调查结果是从每 FLOPS 的性价比看最好的是 GPU (能耗上可能也是),对通用性有要求的话则是捡 x86 的垃圾
2019-06-30 00:39:20 +08:00
回复了 vsitebon 创建的主题 分享发现 一个学习的秘密,不要用笔记本电脑做笔记
太长没来得及看,我其实挺纳闷这些”天天写学习方法“的人,天天除了”写学习方法“之外,都学了什么学了多少
2019-06-30 00:35:39 +08:00
回复了 keith1126 创建的主题 问与答 迫于没有钱,在哪里买计算机技术书籍性价比高?
另外不知道楼主要买啥书,看书最好挑一挑

比如有个梗是程序员喜欢动物书,但是我发现动物书可能不是很适合学生,他们家书我现在只留了 RWH,RWO,DDIA 和 Effective Modern C++ 四本,想买的书里面优先级比较高的一般也是 Addison-Wesley、MIT Press、Cambridge University Press、Morgan Kaufmann 之类的
2019-06-30 00:22:08 +08:00
回复了 keith1126 创建的主题 问与答 迫于没有钱,在哪里买计算机技术书籍性价比高?
孔夫子旧书网 可以看一下,能不能找的到,价格都是随缘

我们学校做项目可以报销一点钱,买两本书是够了
另外实验室也有书(虽然一大半是我自己买的 ...

其实这问题无解,全世界范围内无解
国内出版社只引进流行的书,大多数翻译版,少部分影印版,稍微深一点、偏一点或者小众一点的国内就找不到了
大爆款如果没有其他原因的话,一般是有引进的,但是选择非常受限,价格也不一定能优惠
另外国内计算机书籍貌似本来就偏贵
同类书籍到国外也是偏贵,而且国外只有贵的书卖,但是一堆人上学都还贷款呢,所以这也成了问题了
买一本不那么水的稍小众的未引进的书,同样的价格在国内一般可以买 4-7 本书,我的渠道还没有运费和税,所以其实我觉得对于学生来说这方面算是占便宜了
2019-06-29 23:36:22 +08:00
回复了 evilbinary 创建的主题 Lisp 一款 lisp 写的基于 GPU 渲染的编辑器
好像在哪见到过

不过就标题提一点,我不认为一个编辑器应该以“ GPU 渲染“作为卖点,GPU 渲染会让实现更复杂,灵活性受限,唯一的优势是在性能上。然而就现在大家 IntelliJ 用得这么欢乐的状况,我不认为多少人会在意这个性能

另外其实 neovim 和 vscode-remote 之类的出来之后,我觉得编辑器做成 C-S 架构的可能是趋势,在 server 上起一个服务,然后在桌面、Terminal、Web 和移动设备上都能连。Vim 和 Emacs 其实在这方面比 VSCode 之类的友好—— Vim 和 Emacs 都能直接利用 X11 Forwarding,网络稍微差点都没关系,VSCode 就怎么都必须起一个 chrome,而且效果还没那么完美

另外 GPU 渲染 2D 内容很 tricky,优化不好的话性能难说,我上次试了某个 GPU 加速的 terminal emulator,在核显上东西一多会感觉到卡顿,虽然有可能是 CPU 的内容处理没做好,但是貌似换了独显就好了
2019-06-27 22:08:37 +08:00
回复了 abmin521 创建的主题 Apple apple 似乎没有什么开源的东西?
补一句忘说了… 对标另一个做基础平台的最近疯狂搞开源的公司,开源世界的爹 MSFT:
dotnet 可以对标 LLVM+Clang+Swift+一堆库(如果你不用 Win 也不用 macOS 的话其实你大概不会用 .net 或 swift,但是 LLVM 和 Clang 八成绕不过去。coreclr 是 JIT+GC,LLVM 偏向于静态编译(并且 C,C++,Obj-C 和 Swift、Rust 都是没有 tracing GC 的))
TypeScript 我个人认为是 C# 在前端圈,或者所谓大前端的延伸,因为 C# 一大半还是在做 server 做工具,Apple 基本是专注于自己的用户端(估计没几个知道 Mac OS X Server 和 XServe 的,连 Airport 都停了),所以其实还是对标 Swift
XNU 可以对标 WRK (两者在“对大多数人没啥用”这点上是完美 align 的——要是学 OS 你八成还是会去用某个教学 kernel 去走一遍某个公开课,然后去读 BSD 或者 Linux kernel 源码)(顺便 MSFT 还开源了 MS-DOS ...)
Security 可以对标 SymCrypt ( MSFT 前段时间刚开源的 Windows 加密库)
MSFT 的 VSCode+LSP 无敌,就连 Apple 都在自己 org 底下默默放了一个 sourcekit-lsp 仓库
但是别笑,Apple 的孙子 Blink 前段时间刚吃了微软亲儿子 MSHTML ...
(所以现在的局面是,MSFT 的 ChakraCore 和 Apple 的 JavaScriptCore 都在 V8 的淫威下瑟瑟发抖( SpiderMonkey 不配拥有名字么?)
MSFT 开源了 PowerShellCore 以及这两天 trending 的 Windows Terminal,Apple 表示不慌,咱先把 macOS 的默认 shell 改成 zsh ...

MSFT 开源了 WTF,哦不 WTF 是 WebKit 的,是 WPF,Apple ... 你敢开源 AppKit 么?或者开源个 SwiftUI 也行啊
(虽然 WPF 开源了但是还是不能直接移植 Windows GUI 程序,不过我个人觉得 WPF 是 Flutter 和 SwiftUI 的先声,只是时运不济 ... 好了我去看 Pro WPF in C# 2012 了)

这么一看 Apple 的 open source portfolio 其实并不弱。当然和 MSFT 的体量还是没法比:Apple 的黑科技一半在硬件上(可惜开源硬件刚烧起小火苗),并且 MSFT 现在是把开源当成重要战略在做,你看看 Apple 现在是什么战略,吃老本+薅羊毛?

就不说 MSFT 在 AI 等方面是 Apple 没法比的,这个 Apple 也有借口:” The ‘ s ’ in Artificial Intelligence stands for ‘ security ’, and the ‘ p ’ in Artificial Intelligence stands for ‘ privacy ’”。在我看来 MSFT 真正的杀手锏是 Microsoft Research:Z3,GraphEngine,Koka 等项目对于 Apple 来说完全超纲了,更别说那一堆 paper
2019-06-27 21:30:44 +08:00
回复了 abmin521 创建的主题 Apple apple 似乎没有什么开源的东西?
如果你只做互联网,那对你来说就只有 Swift,如果你只做互联网,并且对其他领域毫无兴趣,那么一辈子你都只知道 Swift


Apple 开源的东西不少,不过有个特点,很多项目都是买过来之后开源的(或者说不是完全原创的)
Swift 所依赖的 LLVM 是买 UIUC 的,但是 Apple 前期的支持对 LLVM 的成长起了非常重要的作用,现在 LLVM 社区已经是典型的大公司支配的开源社区,Apple 的主导权被 Google 分了一半了
另外 LLVM 不是单独一个项目,还有 Clang 前端、libc++ 标准库、LLDB 调试器、lld 链接器等子项目,当然 Apple 应该不是在所有子项目中都活跃的。Swift 和 LLVM/Clang 同出 Chris Lattner 之手,翻一下会发现这些项目的代码风格是非常相似的
除了 Swift 之外,LLVM 还是 Rust、Julia 等语言的基础,AMD 的 AOCC 以及 GPU 驱动也是基于 LLVM 的
Swift 所依赖的基础库 Foundation 也是一块开源的,但是 Objective-C 版本的 Foundation 貌似并没有开源,虽然如此,这俩库共同依赖的 C 库 CoreFoundation 却是开源的
为 Swift 提供智能提示功能的 SourceKit 是开源的,我没看过源码,猜测这个应该是严重依赖于 Swift 编译器本身的
Apple 为 Swift 和 OC 钦定的并行解决方案 libdispatch 是开源且跨平台的
WebKit 是当年 OS X 需要一个浏览器,于是就 fork 了 KDE 的 KHTML 和 KJS,由于 KHTML 当时貌似是 LGPL 协议,所以 WebKit 原则上是必须开源的。后来乱拳打死老师傅,现在没人知道 KHTML 了。之后历史又重复了自身,WebKit 被 Google fork 出的 Blink 乱拳打死老师傅
需要注意的是 WebKit 也是个巨型项目,内部包含 WTF、WebCore、WebKit、JavaScriptCore 和 WebInspector 等多个子项目

UNIX 系统标准的打印机管理系统 CUPS 是 Apple 买过来的,现在是开源的,之前是不是不知道
Apple 还买了个数据库软件 FoundationDB 开源在 github 上
此外 Apple 平台的 OS 内核 XNU 一直都是开源的,这个也是拼的 BSD 和 Mach,需要注意的是虽然 kernel 开源,但是在换到 x86 之后就没有完整的开源驱动栈了,Apple 官方关于驱动的资料也非常稀有(尤其是非桌面平台),间接导致 XNU 内核的开源系统失去了意义。XNU 源码树里面还包含 Apple 的驱动框架 IOKit,号称可以写跨平台驱动,然而实际只能写 XNU。总之摆明了就是跑 Apple 系统只能用 Apple 硬件。所以这个应该算是 Apple 最没用的开源项目 ...
此外还有一些底层组件如 dyld、Security、Objective-C 和 Swift 的 Runtime 等是开源的,不过这些东西如果不是 hack Apple 平台的话貌似没人关注

除此之外 Apple 还合作参与了若干技术标准和开源项目,比如和微软合作的 TrueType,Apple 自己还提出了 OpenCL (可以看下 OpenCL 的 Logo,很明显的 Apple 风,和 Khronos 其他标准都不一样)。Apple 在 W3C 也有很强的存在感,不过这个不好统计具体有哪些工作。
不过 Apple 对技术标准的态度让人很纠结,比如对 OpenType 的支持不是很好,为了推 Metal 直接 deprecate 了 OpenGL 和 OpenCL,并且一直没有 Vulkan 的官方实现之类的奇葩事情

Apple 曾经试图把最好的文件系统 ZFS 集成到自己平台上,不过最后项目死了,直到最近几年才换到了 APFS。Apple 也集成了最好的动态跟踪工具 DTrace,现在的 Instruments 就是基于这玩意的。这俩东西一开始都是 Sun 开发的,不知道 Apple 参与了多少。现在 Linux 上面的支持貌似还不是很成熟,想用的话欢迎入 FreeBSD。

有一点需要注意的是 Apple 技术上的核心竞争优势之一:桌面环境和 GUI 框架( AppKit 和 UIKit )一直没有开源,很多周边的核心框架( CoreGraphics 等)也没有开源,不过我个人倒是觉得对于学习目的来说,这类项目的 API 设计重要性远超实现,倒是 LLVM、JavaScriptCore、Security、RTS 和 libdispatch 这些库的实现、优化细节都是非常重要的。

哦对了还有最重要的:Apple 最大的优势其实还是钱,Apple 的母公司曾经向 OpenSSL、OpenBSD 等开源项目捐赠数百万元
2019-06-26 02:38:11 +08:00
回复了 xinyu391 创建的主题 问与答 国外大神新出了个 Vlang
@msg7086 https://en.m.wikipedia.org/wiki/Assignment_(computer_science) 看起来是 ALGOL 开始的,C 系用 = 反而像是例外
2019-06-25 20:28:37 +08:00
回复了 Aresxue 创建的主题 程序员 编程浅谈-以一个初出茅庐的 Java 程序员视角
again,这说的是互联网技术,不是编程
1 ... 82  83  84  85  86  87  88  89  90  91 ... 121  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2426 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 47ms · UTC 12:54 · PVG 20:54 · LAX 05:54 · JFK 08:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.