1
privil 2018-01-23 23:35:30 +08:00
我觉得还是不对的,可能还是在部分大公司会有更多的底层工作,业务性小公司当然只能捡点边角料了,基础设施的需求还在存在的,进步还会有,举个例子,dcoker 等容器化技术带来的对网络及文件系统方面的需求带来了进步,高频交易等创造了对网络硬件设备的颠覆。
|
2
CatCode 2018-01-23 23:37:18 +08:00
不敢说这种是好是坏。
但个人感觉:大家都说不要自己造轮子,可是有些时候,自己为了实现一个特定的功能,导入了一个巨大的包,整个程序看起来就臃肿了。但自己实现,要耗费太多精力、安全性可用性又是否能保障,很困扰 |
3
linux40 2018-01-24 00:17:22 +08:00 via Android
不要一杆子打死,我就想投入底层。要是 2 月初出考研成绩,我考得不错就好了。不然的话,出来工作,底层的机会确实不多,现实如此。。。
|
4
begeekmyfriend OP @linux40 做一个守护者很不容易,建议你先仔细考虑一下自己的衣食住行。
|
5
flyingheart 2018-01-24 00:40:30 +08:00
当旧的基础设施无法满足新时代的需求时候,才会有人去建造新的基础设施,既然 Linux 已经能够满足目前的需求,那么盲目去造一个新的轮子真的能带来什么好处吗?
IRIS GL 移植性很差,为了解决这个问题,OpenGL 出现了 用显卡可以加速科学计算程序,但是调用图形 API 来计算太不方便了,于是 CUDA 出现了 就连 C 语言也是 Ken Thompson 与 Dennis Ritchie 为了开发 Unix V3 而发明的 |
6
mason961125 2018-01-24 00:45:50 +08:00
我非常同意你说的。举个目前很现实的例子吧,由于现在竞争这么激烈,市场对产品的研发和迭代周期要求越来越短,也就出现了各种各样方便开发的技术,以 Electron 为例,确实可以对不同平台编写同样的代码达到同样的效果,即使是不同平台的特定功能,也只需要少量额外的特定代码就可以实现。诚然,时间上的花费确实少了很多,但是在使用体验上或者说性能上,就比不上用每个平台的原生 API 开发出来的了。从 Atom 到 Slack,性能问题备受诟病也不是一天两天了。要知道,在没有装配固态硬盘和高主频 CPU 的电脑上,大量的加载文件以及启动 Chromium,都是十分缓慢的,内存占用也会相当的高。但是又能怎么办呢?市场要求你如此,你要赚钱养着家里的人,有的时候不得不妥协。我认为比较理想的状态是,在研发初期,用这种类似“万金油”的技术也不是不可取,毕竟缩短了时间;但是考虑到后期的用户体验以及性能,还是要沉下心来,好好的用最好的技术,来完成整个产品。
|
7
HangoX 2018-01-24 00:45:59 +08:00 via Android
你说的 fuchsia 已经可以装到 chromebook 上了
|
8
mason961125 2018-01-24 00:49:10 +08:00
可能我以上说的还是不太够底层,但是现在写 Windows 程序的人里面,越来越少直接使用 Win32 API 的了,毕竟没有.NET 或者 Web 那一套来得快。想想当年初中啃 Win32 API 的时候,确实十分的煎熬,每个 HWND 都要通过 WndProc 来处理,那个 switch 写的人生不如死。那么再更深一步,到了操作系统级的开发,能够沉下心做的人真的更少了。但是这也是市场决定的,毕竟现在大方向是互联网,并不需要那么多人能够开发操作系统相关的,比如驱动之类的开发。
|
9
twor 2018-01-24 00:50:16 +08:00
没有人了会提高市场价格,自然再会人多
|
10
Andiry 2018-01-24 01:17:43 +08:00 via Android
底层也没有什么高大上的,比方说驱动开发除了 debug 比较麻烦以外,难度比应用程序低得多
|
11
jccg90 2018-01-24 01:32:49 +08:00
低风险低收益,在这里是说的通的。。。底层开发技术稳定风险低,一个方向可以搞很多年,都有稳定的收入。。。
上层应用开发的风险就大很多,虽然短期收入高,但是随时可能会被新人新技术替代,被替代之后收入会很不稳定 |
12
noli 2018-01-24 01:34:11 +08:00
如果你认为底层开发就是 C 语言、汇编这样的工具,那当然性价比低。
拿着铁镐铁锤建摩天大厦,那确实很难。 |
13
tyrealgray 2018-01-24 01:38:19 +08:00 via Android
很明显是需求决定将来,架子搭好了就开始用了。如果架子不够好才需要重新起一锅
|
14
rogwan 2018-01-24 07:59:57 +08:00 via Android
想想塞班系统,如果跟不上变化,分分钟被历史抛弃。当然这种变革不常发生,就像发明了火车需要铺铁轨一样,该铺的时候全世界都会发力去铺的,Linux 这些基础设施是不完善,只是目前看起来还没有那么不堪,真到了全世界都唾弃的时候,新生力量自然会选择新的轨道。对于个人而言,确实会出现付出短期看不到回报的情况,历史上这样的伟大科学家也不少,只能靠情怀和天才支撑了
|
15
seers 2018-01-24 08:29:50 +08:00
现在已经过了 30 年前野蛮发展时代了,越到后期对底层维护的人会转变成各种巨头而不是个人。
|
16
tktk 2018-01-24 08:47:48 +08:00
我觉得并不会。
|
17
DiamondY 2018-01-24 08:53:58 +08:00
虽然有理有据,但这种想法倒还是悲观了些许。只要人类不灭,技术就不会止步,至于方向往哪边走就难以预料了
|
18
scipio 2018-01-24 08:56:48 +08:00
我倒是觉得: 商用基础软件将无利可图,最终基础软件都将走向开源社区化运营的模式。
|
19
rogerchen 2018-01-24 09:00:29 +08:00 3
这是历史发展的必然啊。
学术界和工业界的重心早就不在操作系统上了,这一块已经没有什么大鱼可以钓了,还用那么多人力去搞就是浪费。这么多年大家已经把各类 tradeoff 想得很清楚了,很多问题也就是内核编译的一个开关。做 OS 的热点早就已经迁移到分布式系统上了。以前单机硬件性能一路提升,业务量也就那样,没钱上小型机,有钱上大型机。现在单机硬件性能发展平稳,互联网业务又那么大,能线性扩展的分布式系统明显是符合历史进程的产物。 话说回来,哪个大公司没有搞内核,TCP 栈的团队,几十万台机器上提 5% 的性能能省多少钱人家算得很清楚,每年四大毕业那么多博士难道都回家待业。楼主也就知道 Linus, Jeff Dean。Robert Love 不是年轻人么?不在这个圈子里就随意臧否人物,小视天下英雄,还是算了吧。 |
20
zjsxwc 2018-01-24 09:06:43 +08:00
难道不是因为需求越来越少、底层开发提供的岗位稀少吗?应届生找不到底层相关工作还能怎样,这个行业就是这样。
越往上业务需求越多,岗位也越多 |
21
chenhui7373 2018-01-24 09:13:57 +08:00 via iPhone
底层可能还有物理
|
22
nicevar 2018-01-24 09:20:50 +08:00
历史发展就这样,有进步有所失,计算机技术的东西实在分布太广,隔几代很多东西传承不下去,老一辈退下之后,有些技术就渐渐被人遗忘了,然后后辈们重复的造轮子,这一点在最近几年的 js 上挺明显的,一些人写的新奇东西其实以前早就有了,只不过后来的人学习过程中接触不到认为很独特
现在的软件确实炫酷多了,不过性能和内存泄露问题就比较常见了,与十年前相比,在主流硬件配置上,现在的软件虽然易用并且设计合理,但运行体验普遍要差,因为现在软件开发普遍采用内存自动回收机制,早期的时候打 Java 口水战,内存方面一直都是喷点,后来 windows 开发也转向了 c#,mac 开始用 arc,好处就是开发速度快,问题就是运行缓慢内存泄漏严重,win vista 和 mac 10.5.7 就是分割点,进入靠硬件弥补性能的时代,特别是 mac,近几年软件内存泄漏已经不像话了,不泄个 10 来 G 内存都没人管的,所以在现在硬件条件支撑下是允许底层变差的,你看 google 自己的各种库内存泄露都不是什么大不了的事,别说第三方的应用软件了,所以 android 系统跑一段时间就跑不动了大家也习惯了,好几个 G 的内存呢,随便漏!这要是以前硬件资源有限的年代,分分钟就把系统搞趴下了,一个 xp 也就占用 100M 内存 |
23
qiukong 2018-01-24 09:20:59 +08:00
这年头确实没啥公司注重底层,像您那几千万条数据,一般起步公司也达不到,所以从来不注重效率优化问题。
|
24
begeekmyfriend OP @nicevar 由俭入奢易,由奢入俭难啊
|
25
begeekmyfriend OP @rogerchen 我没有小视任何人啊,包括年轻人,我的意思是说,当年轻人对这些基础软件没有归属感的时候,你如何期望他们兢兢业业打好补丁?老家伙是不一样的,这些软件是他们亲手打造,自然愿意用生命来守护啊
|
26
kyotrue 2018-01-24 09:46:25 +08:00 via Android
因为已经够用了,多的那点特性也可以其他方式解决,一点点性能损失问题并不大。
你要知道这是个生态系统,不是你想动就随便大动的,那么多业务在跑、那么多从业人员的培训。 就拿大家熟悉点的 Java 来说,虽然性能令人诟病,但是用得太多了,就算有个更好用性能很好的语言也不可能在很长一段时间内替换它了,所以 CPU 直接为 Java 做优化,就是这个道理 |
27
berretta 2018-01-24 09:47:25 +08:00
你在这里说没有用,这里很多互联网行业的受益者,屁股决定脑袋
|
28
junwuhui 2018-01-24 09:51:01 +08:00 via Android
只不过是这个时代的底层变了,现在的底层可能主要是一些云平台
|
29
402124773 2018-01-24 09:57:36 +08:00
我个人的观点是由于经济原因决定的。
底层工作工作机会比较少,很难去量化工作量,去展现工作上的贡献,自然会被忽视。 工作机会少,工资不如意,已有的人才也会转向其他方向,新手不会入坑。导致恶性循环。 毕竟国内很多年轻人都在为了房贷而奋斗。面向工资编程。 |
30
KgM4gLtF0shViDH3 2018-01-24 10:11:55 +08:00 1
内容不说,感觉你的文笔太好了。
|
31
wizardoz 2018-01-24 11:27:17 +08:00
多虑了,市场决定一切。
要是软件的质量不够用了,自然有人出钱买质量够用的软件。有人出钱就有人去搞。高质量的软件就出来了。 |
32
rustkeyboard 2018-01-24 11:48:37 +08:00
LZ 有点悲观了,要涉及到底层开发,必须是当业内目前成熟的架构已经满足不了需求的情况下才会去考虑的。比如淘宝每年的双十一高峰期,巨大的用户流量和订单需求对系统的稳定性和安全性提出的超高的要求。淘宝团队因此而对架构做出的一系列变革和创新,从"两地三中心"到"同城双活",再到最终的"异地多活"。这些过程中,绝对有对底层的深入研究、再造和创新。
|
33
ryd994 2018-01-24 11:59:34 +08:00 via Android
底层本就很冷门,很少人学,很少岗位。但是只有基础知识最扎实的开发者才能做。硬件、算法、操作系统,都要非常了解,才敢动手。
如果你没读过 linux 源码,那你说这话不合适。 |
34
zhujiulin 2018-01-24 12:02:23 +08:00
底层并不少, 国内不知道, 反正国外年轻人基础扎实的很多
|
35
janus77 2018-01-24 12:24:36 +08:00 via Android
个人观点,做项目本来就是个工程化的东西,很多时候是需要考虑成本收益得失的,而不只是单一的做到极致。如果说单目标那是学术界的事,一旦大规模应用于工程界,必须考虑多种因素,甚至于为劣币妥协。这才是现实社会,不是纯粹理想的乌托邦
|
36
co3site 2018-01-24 12:45:24 +08:00 via Android
长远的眼光来看,这应该是个旋回。十年河东,十年河西
|
37
ae86 2018-01-24 12:47:16 +08:00
文笔不错!
|
38
htfy96 2018-01-24 12:48:37 +08:00
infra 不好做 学了那么多东西,校招按 R&D 招和 CRUD 一个价,整体比算法低了一档,还不如速成一下 ML 当调参侠
|
39
jejer 2018-01-24 13:02:00 +08:00
有趣, 想想好像的确如此
|
40
pezy 2018-01-24 13:10:36 +08:00
杞人忧天,据我所知,那些真正奋斗在一线做底层工作的年轻人,基本和老人们保留了同样的习惯:不在互联网上瞎咋呼,基本是透明人。(但不代表他们不存在啊。。。)
|
41
winglight2016 2018-01-24 13:26:53 +08:00
歪个楼:破窗效应并不是定论,甚至并没有可靠的实验论证,类似恐怖谷理论这种都“仅仅”是一种理论
|
42
fortitudeZDY 2018-01-24 13:31:47 +08:00
部分认同观点,最近在所在的领域也看到了类似的势头,比如数据中心交换机操作系统,公有云、大规模互联网公司那帮人可以自己从头写一个,过程中又不断发现需求改造,甚至可以不用 c 语言;而传统设备商则慢慢退到普通的组网需求,这样我想对那些搞传统设备研发和维护的老人,随着营收的变化以及市场的变化,应该会面临选择,我想这并非说他们不想专注,而是很可能要面临生存问题。
|
43
firefox12 2018-01-24 13:45:52 +08:00 via iPhone
4 个字总结 工匠精神
但是工匠要吃饭,所以要先活命。活糙点就糙点吧 |
44
wizardforcel 2018-01-24 14:00:30 +08:00 via Android
老家伙们一生只钻研一个领域的做法,明显不适合这个行业了。
既然需求决定市场,等需求多了,搞的人自然会多。 另外底层并不难,只是搞的人少略显神秘。底层已经高度固化,几十年没发展了。一个人如果想搞,只需要复现前人的设计。只要他不笨,花一些时间总能学会。 |
45
simpx 2018-01-24 14:26:48 +08:00 1
底层开发在大公司里还是非常重要的,决定核心价值
如果对系统底层技术有兴趣,可以来阿里云,我们不仅要求 bugfree,性能上也需要指令级优化 可以内推,lingjun.zlj@alibaba-inc.com |
46
standin000 2018-01-24 16:09:15 +08:00
参考 cobra 的维护了
|
47
shapimai 2018-01-24 16:15:59 +08:00
在国内做架构性的 原创性的东西的人毕竟还是少 绝大部分都是拿来主义而已 体会不到
|
48
v2lf 2018-01-24 16:36:08 +08:00
我怎么老好见到作者疑似,很是嘲讽 linus··· 每次有他的事件出现,我就看到你··· 在下面嘲讽他,骂人,脾气暴躁···看不懂···
|
49
zhoubug 2018-01-24 16:44:51 +08:00
老板忙着裁老码农,新码农忙着嘲笑老码农。搞基础开发只存在自己的 side project 啦~兴趣吧。 自己无法做主的项目就快进快出吧。一半生存一半生活~
|
50
begeekmyfriend OP @v2lf 你认错人了吧?我可是一度吹捧 Linus 的
|
51
yagnqionggo 2018-01-24 17:17:35 +08:00
万一之后量子计算机成熟了,底层的是不是要全新造一遍
|
52
MiguelValentine 2018-01-24 17:22:11 +08:00
非常同意,我有一阶段只写汇编,非工作基本是 C,三方库能不用就不用,=w =。
|
53
ryd994 2018-01-24 21:49:02 +08:00 via Android
@pezy 并不是说底层的人透明,而是他们多少斤两,外人根本看不懂。楼主说的不赚钱,是以区区三五年的积累而言,做底层肯定没做热点技术赚。
要看到的是,在 ml 没热之前,也有做 ml 的人,他们那时的收入,也没多夸张。 十几年乃至几十年的老工程师,无论任何领域都很值钱。 恕我直言,今天初学 ml 的人,做的以低端工作为主,不出几年就会被淘汰。事实上,美国今年的应届校招,已经有这样迹象了。拿到好 offer 的人,终究还是基础扎实,坚持学习的人。底层能力强的人,就算底层不赚,转其他方向也是十拿九稳。 |
54
yqrm 2018-01-24 23:13:46 +08:00
文笔不错,但真到那时候时候会有新的“路”造出来的,就像很多高速公路都是在原来的省道旁新建的
|
55
scriptB0y 2018-01-25 00:08:35 +08:00
这个情况阿西莫夫的《银河帝国》里面就有,里面讲整个宇宙实现了大部分统一,非常繁荣,成为一个大帝国。但是这繁荣之后有潜在的危机,却很少有人看出来。
新科技是建立在以前的科技上的,科技越来越复杂,以至于没有人完全懂得其中的原理。帝国的机器已经无法维修,如果坏了只好重新生产一个新的。 |
56
fengdra 2018-01-25 08:56:44 +08:00 via Android
每个时代都会产生新的底层,现在连 tensorflow 都被各种封装呢
|
57
suspended 2018-01-25 14:33:40 +08:00
@mason961125 不至于,裸写 WinProc 需要处理的窗口消息也没多少。再说要是看不上 MFC 的话干嘛不用 WTL 这种轻量框架?没啥性能损失。
|
59
ptrees 2018-01-25 17:09:05 +08:00
说点我的看法,我觉得楼盖好了是要住人的,路铺好了还得有车来跑,不可能永远在造楼,铺路,IT 可能也是一样的道理吧.基础设施建好了,性能差不多够用了以后,就要关注内容的东西了.至于基础设施当然还是要有人来维护的,但可能不需要那么多人了
|