真是看不懂现在这些技术了
本文吐槽下现在层出不穷的新技术,如果你不太想听我说这些,可以拉到最下方参与下投票哈,看看最近的疫情情况~
------
现在的技术层出不穷,尤其是互联网技术和数码产品的技术迭代。
而且还有个非常有趣的现象,越是能引起大众讨论的问题,可能真正的答案是唯一的,但大众的讨论却明显两级分化。
比如很久之前的,鸿蒙是不是安卓套壳。再比如最近的,小米迷你主机是不是 Intel NUC 套壳。
鸿蒙这个事情大家应该是知道的,小米迷你主机是前两天小米发布会的产品。
而 Intel NUC 的发布在其之前,当然,大多数人都不知道,毕竟没有小米这么亲民。
而大家最近常吐槽的套壳,大概率是因为这句与 Intel 深度合作。
其实这种东西,没有那么绝对,套壳也不是完全就做了个外壳,自研也不是完全重新造轮子。我觉得这种问题的讨论没有意义,要么你就拿出小米和 Intel 这款迷你主机里面所有软件和硬件的参数,做个对比。
比如里面的 BIOS 就完全一样,开机后的 BIOS 设置页面就是 Intel 的,毕竟是小米第一代迷你主机产品,而且也说了采用了 Intel NUC 方案,我觉得完全没有问题。
------
当然这些事情我是真的看不懂,但就是新闻里一旦有提到小米迷你主机或者华为鸿蒙的,你就看吧,评论区全是各种没完没了的争论。
不过可以肯定的一点是,较为极端的言论,大概率是外行人说的,因为但凡是在专业同学的眼中,这类问题并不是一句两句话就能说明白的。而且专业词汇一出来,大部分人也看不懂,也就不会引起广泛的争论了。
数码圈的我不太懂,技术圈的我可以说下近期我看得比较多的东西的感悟。
------
大家知道,JDK 有很多版本,有官方 OracleJDK 自己的版本,也有民间基于 OpenJDK 研发的版本,比如阿里的 Dragonwell,腾讯的 Kona,华为的 bisheng 等等。
那你说,Dragonwell 是 OpenJDK 套壳么?是也不是。
而且如果这个问题能像鸿蒙和小米主机这种讨论的广泛程度,那必然也会有人说,Dragonwell 是 OracleJDK 的套壳。这就显然不对了。
当然了,这就取决于一个宣传的度,以及引起讨论的广泛程度。
首先 JDK 领域的事情本身就比上述问题更加小众且专业,因此自然不会引起非专业人士的广泛讨论,因为他们看都看不懂,自然不感兴趣了。
这里的专业不是指这里面的技术更难哈,只是更聚焦一些,你要是 Java Coder 或者专门做 JDK 的就知道,你要不是就可能完全不知道,不存在啥人都能说上一嘴的事儿。
其次假如 Dragonwell 非得大张旗鼓地说,自己是一款改变世界的自研 JDK 产品,是咱们中国之光,那估计肯定有人说你不就是 OpenJDK 套个壳么,本来这很正常,但人们就是讨厌装 B。
但假如你深入了解这里面的细节,就会发现民间基于 OpenJDK 构建自己的 JDK 是非常正常的事情,你可以什么源码都不改直接构建出来,也可以给自己做非常多定制化的优化,甚至反哺到 OpenJDK 社区里。
你说,这两种套壳,能一样么?
------
再说个更小众的,就是协程。
这个概念在编程领域也是非常火爆,恰好最近翻看了 JDK 19 中的 Loom 源码,这是 JDK 在内部实现了一套协程。
你只需要非常小的改动,就能把之前使用线程模型写的 Java 代码改成协程模型,从而带来性能提高。
几乎不改 API 还能实现线程无缝切换成协程是咋做到的呢?其实就是在原有代码中强行插入代码来改变行为而已。
比如在 write 方法里插入如果为协程就将文件描述符设置为非阻塞。
随后的 park 方法里,又强行塞了一段 if else 区分线程和协程。如果为协程的话,IO 访问将会变成多路复用的实现,在 Linux 中就是 epoll。
如果你去 Loom 的 GitHub 上看看,会发现大量原有代码的改造,就是强行往里面插入各种 if else,之后凡是会产生阻塞行为的代码,包括大量的 IO 操作等,源码里都会变得异常恶心。
但人家宣传材料上会写这个么?不会,你从宣传材料上只能看到它想吹牛的地方,根本看不到背后恶心和劣势的地方。
当然,协程还是太小众了,不会有大规模的人来讨论协程到底能不能提升性能,到底是不是用户态线程,因为小众、因为不懂、因为无聊。
------
所以其实我一直想看懂好多事物的真相,虽然现在连我自己技术的小领域都看不透,但还是有一颗想看懂他们的心的。
想琢磨透这些事情,前提就是静下心来,别到处去争论那些是非,自己列个清单仔细研究研究,也是收获。
凡是有特别多人讨论的问题,大概率不是个好问题,更别谈专业性了。
昨天的文章发起了个投票,统计了下低并发编程读者的疫情状况,哈哈。但昨天没有区分地区,统计的数字是全国的,大概 23% 的人阳了(不过这个也不能说明情况哈,因为关注我的大概率是技术,所以分布在北上广深的可能多些,因此权重也大。
由于北京这边的疫情最严重,本次投票再次统计下北京读者的情况。当然公众号投票有个特点是不投票不能看结果,所以我友好地加入了第三个选项,非北京地区的读者想看到投票分布的,可以直接选第三个选项,以保证数据的准确性。