为何软件IT行业重视创新而不是稳定?

embedded/2024/9/23 7:30:24/

为何软件IT行业重视创新而不是稳定?用户为此受苦:用户体验差!

彼得-蒂尔有一句名言:"竞争是失败者的事"。

  • 如果没有必要,就不要把自己置于被迫竞争的境地。

我给年轻程序员的建议是,如果你想创建自己的编程语言,那么不要试图创建 Python 的子集,或者与现有语言表面上非常接近的语言。做你自己的事情。这样,您就可以按照自己的节奏和方向发展您的系统,而不会被您的语言必须与其他实现的性能、功能集或库生态系统相匹配的期望所束缚。

这篇文章讨论了创建软件系统替代实现的挑战和动态,重点是编程语言及其即时 (JIT) 编译器。作者从优化动态类型编程语言的个人经验出发,概述了替代实现经常陷入的陷阱,并就如何避免这些陷阱提出了自己的见解。

以下是文章的要点:

  • Crystal 语言:这篇文章讨论了 Crystal 语言,这是一种类似 Ruby 的语言,它选择与 Ruby 分道扬镳,并取得了有限的成功。作者指出,Crystal 与 Ruby 的相似性让用户感到困惑,因为它看起来像 Ruby,但却有很大的差异和不兼容性。
  • TruffleRuby 和 YJIT:作者将高性能 Ruby JIT TruffleRuby 与直接集成到标准 Ruby 实现 CRuby 中的另一种 Ruby JIT YJIT 进行了对比。YJIT 决定在 CRuby 中开发,这使其与 CRuby 的功能保持了 100% 的兼容性,从而得到了更广泛的采用。
  • PyPy 和 LuaJIT:文章以 Python 的 JIT 编译器 PyPy 和 Lua 的 JIT 编译器 LuaJIT 为例,指出这两个项目尽管在性能上有显著提高,但在应用上却遇到了困难。主要问题是这些项目难以跟上各自语言不断发展的标准,Python 的标准是 CPython,Lua 的标准是默认 Lua 解释器。

替代实现的挑战:作者指出,作为主流或典型系统的替代实现往往是一个失败的命题。这是因为替代方案总是在迎头赶上,试图在功能和性能上与典型系统相媲美。

作者认为,试图创建一个比经典实现更好的替代方案是一条艰难的道路,因为替代方案受制于经典项目设定的方向。作者建议,与其竞争,不如与规范系统集成,这样可能会更有成效。

这篇帖子提出了一个更大的问题:

  • 即该行业重视创新而不是稳定,我们都因此而受苦。

不幸的是,密码学 API 别无选择,只能随着缺陷的发现和修复而不断发展。


http://www.ppmy.cn/embedded/30304.html

相关文章

【工作实践-11】关于uniapp切换账号登录失败问题

遇到问题:在使用uniapp写的程序中,第一次打开程序登录(账号密码正确),调用登录接口,没有任何问题,正常登录;退出登陆后,输入不同的账号密码(账号密码均正确),调用登录接口提示登陆失…

关于YOLO8学习(一)环境搭建,官方检测模型部署到手机

一,环境的搭建 环境 win10 python 3.11 cmake pytorch pycharm 过程 首先安装好一个pycharm,这里就不一一叙述了。 其次,选择好一个python版本,是关键所在。有些YOLO的版本,并不支持很高的python版本,博…

Apache Kafka知识点表格总结

之前的项目中用到RabbitMQ比较多,也有用到RocketMQ,,虽然项目中没有用到过Kafka,不过自己在空闲时间学习过,而且在面试中也会问到,因为还是有不少公司用到Kafka,所以做个总结,一方面是做为面试参考&#xf…

关于下载上传的sheetjs

一、背景 需要讲后端返回来的表格数据通过前端设置导出其中某些字段,而且得是xlsx格式的。 那就考虑使用控件SheetJS。如果是几年前,一般来说,保存excel的文件都是后端去处理,处理完成给前端一个接口,前端调用了打开…

(详细整理!!!!)Tensorflow与Keras、Python版本对应关系!!!

小伙伴们大家好,不知道大家有没有被tensorflow框架困扰过 今天我就给大家整理一下tensorflow和keras、python版本的对应关系 大家这些都可以在官网找到,下面我把官网的连接给大家放在这里:在 Windows 环境中从源代码构建 | TensorFlow (g…

使用protoc-jar-maven-plugin生成grpc项目

在《使用protobuf-maven-plugin生成grpc项目》中我们使用protobuf-maven-plugin完成了grpc代码的翻译。本文我们将只是替换pom.xml中的部分内容,使用protoc-jar-maven-plugin来完成相同的功能。总体来说protoc-jar-maven-plugin方案更加简便。 环境 见《使用proto…

工厂模式和策略模式区别

工厂模式和策略模式都是面向对象设计模式,但它们的目的和应用场景有所不同。 工厂模式是一种创建型设计模式,旨在通过使用一个工厂类来创建对象,而不是直接使用new关键字来创建对象。这样做可以使系统更容易扩展和维护,因为新的对…

JavaScript中的Math对象方法、Date对象方法

个人主页:学习前端的小z 个人专栏:JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 🌟Math对象方法🍄1 Math静态属性🍄2 Math…