技术的变化根本没那么快

2019-07-08 16:41:19 +08:00
 keelii

不知道为什么周围的人似乎都在抱怨一个问题:技术的变更迭代太快,如果不学习就跟不上潮流。

最近在看到一篇 2003 年的关于 AOP 的 文章 时突然有所感悟。

时至今日( 2019 年),将近 20 年后我们再看这此文时,关于软件构架与设计方面涉及到的问题、面临的困境、解决的办法似乎根本没有变化过。

这就不禁让人产生疑问:到底是技术变化太快还是我们理解技术的的深度不够。

15273 次点击
所在节点    程序员
109 条回复
leegoo
2019-07-09 09:15:30 +08:00
其实我觉得像这些语言特性,中间件等技术无非是把底层很麻烦的代码通过简单的方式去实现
当然作为程序员你当然也想通过简单的功能函数去实现某个功能,总不至于查用个系统的 IP 地址还得写个几千行底层代码吧 那样开发的效率多底啊 软件更新的速度和维护那简直是令人发指的
spring 配置太麻烦-->spring boot 简单配置
jQuery 维护太麻烦-->vue 框架解决
arthas2234
2019-07-09 09:27:57 +08:00
新瓶装旧酒,现在出的一堆的技术,框架,都是基础语法+语法糖
q397064399
2019-07-09 09:28:14 +08:00
另外补充一点:
这些年我没见过有什么突破性的思想跟革命性的技术更新,
类似于发明晶体管跟计算机这种革命性的突破,绝大部分的技术都是在原有的基础上进行改进,
人工智能相关我不太理解,不做讨论。

那些说前端发展快的,那是编程语言跟工具被时代驱动的,倒退 20 年 有谁知道今天的 web 会秒天秒地秒空气?
当年 Delphi MFC QT Silverlight 以及各种桌面库 跨平台技术 可是百家争鸣。
再倒退 30 年,你觉得网景那帮人会知道他们搞的那个半瘸的 script 跟在 Sun 公司屁股后面 顶着当年如日中天的 Java 名头 能占领每一个普通用户的桌面?
现在很多前端里面的东西,很多在 20 年前乃至更早的时间就在别的系统开发实践中就已经被奉爲圭臬了,
只是稍微年轻一代的计算开发者不再像他们年长的一辈那样磨炼自己的技艺,
以至于以为很多东西都是 Javascript 以及前端这个领域搞出来的。
doublechenpaul
2019-07-09 09:30:45 +08:00
1972 年的 c 跟现在的 c
senghoo
2019-07-09 09:30:49 +08:00
其实是东西还是那些东西。只是一种语法糖,切换到了另一种语法糖。
FrankHB
2019-07-09 09:54:21 +08:00
太浮躁了。
combinator 是 20 年代的事情。
lambda/Petri net 是 30 年代的事情。
binary rep/symbolic computation 是 40 年代的事情。
recursive call/coroutine/GC/refcounting 是 50 年代的事情。
lexical scoping/FEXPR/J operator 是 60 年代的事情。
actor model 是 70 年代的事情。
delimited continuation 是 80 年代的事情。
……
还想跟得上多少“技术”?
@doublechenpaul 说起来丢人,C 在出生时就够后进了。(比如说,funargs 彻底缩卵了。)
@senghoo 搞清楚啥叫“语法”和“糖”了么。
wly19960911
2019-07-09 09:54:34 +08:00
现在框架不是为了简化开发方案的吗?并没有说解决了什么吧。
wly19960911
2019-07-09 09:55:27 +08:00
@wly19960911 #67 应该说从编程理论上做了一个完全的创新
senghoo
2019-07-09 10:01:32 +08:00
@FrankHB 吐槽很多现在很多所谓的“新技术”而已。 莫较真。
66beta
2019-07-09 10:05:12 +08:00
所以前端都劝新人学 JAVA,相对来说,不用担心不持续学习而被淘汰
keelii
2019-07-09 10:07:46 +08:00
软件的开发是从机器(底层)到各端(高层)的某种链路,在这条链路中越接近高层、越接近终端(产品 /用户),需求的复杂性 /个性化程度会越高。

底层的是理性的基于逻辑关系构建的,高层则相对感性地基于自身需求喜好来构建。
Cloutain
2019-07-09 10:12:00 +08:00
X86 体系建立以来,还是能看到阶段性的显著变化,尤其是 16 位到 32 位的变化是刻骨铭心的。32 位到 64 位变化反而由繁化简,真是世事无常啊
FrankHB
2019-07-09 10:15:37 +08:00
@q397064399 总结?很多不会过时的说法没问题,但是麻烦先把不切实际的误导性前提给扔了。
TM is overselled.
别瞎认祖宗了,不说 formalism (图灵机要求纸带无限,谁给搞个内存无限的实现试试),现在的机器就没几个接近 UTM,当作土嗨编程模型用的撑死也就像个 PRAM (“一坨大数组”)。
也别给冯诺依曼栽赃。现在大部分码农眼前也没多少正儿八经冯诺依曼机器。虽然通用处理器(不算一些单片机) ISA 角度上基本算是(然而微架构上通常不是,搞得设计 CPU 时还是要承受 SMC/CMC 之类的冗余,什么 victim cache 乱七八糟的),但白瞎的是上面几乎把这坨硬件能力全给阉完了(想想 60 年代以后几个有语言允许原生 shellcode )。
smallpython
2019-07-09 10:16:17 +08:00
理论变化的不快,工具变化的快,或者说招聘的要求变化的快
PatrickDingDing
2019-07-09 10:21:23 +08:00
关于“人工智能”的“革新”可以参考 yin 喷子的文章,其中会提到侯世达这个人,然后稍微读一下此君的书,就知道“人工智能”所谓的“革新”是啥了。
darknoll
2019-07-09 10:23:43 +08:00
但是绝大部分人是用框架
hst001
2019-07-09 10:25:17 +08:00
理论基础还是几十年前大佬们留下来的,但是由于互联网发展的需要,很多事情不得不改变思维来重新对待,于是就有了今天看到的层出不穷的"技术"。
FrankHB
2019-07-09 10:29:43 +08:00
@starsriver 编译器到机器码?我有撸过编译到微码的,算不算机器码?反正肯定不是汇编。
累加器?糊 ALU RTL 的估计能把你打死……
民科 model 自己造乐子可以,别给造 CPU 的添乱,谢谢。
q397064399
2019-07-09 10:45:25 +08:00
@FrankHB #73 你这样说一通有是想讲什么?
现在通用的计算机虽然有分支预测 跟指令冒险,
但是抽象出来的模型 一直都没变啊,每次 取指令 读数据 写数据 ,
这个抽象模型一直都没变啊,CPU 以上一直都是这样 CPU 以下跟软件技术已经没什么太大的联系了
Felldeadbird
2019-07-09 10:54:39 +08:00
技术的核心是没变化,主要是用到的工具日新月异。 去年,你还在写原生语法, 今年你可能得用框架,再后来,你就需要告诉 AI 怎样写代码。最后,你发现自己失业了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/581054

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX