当前位置: 首页 > 科技观察

编程语言淘汰:选错语言毁人生

时间:2023-03-19 12:38:33 科技观察

我现在的项目中,其中一个子系统使用了Groovy中的Gradle插件。作为运行在JVM上的脚本语言,Groovy本质上是胶水状的。此外,它还支持DSL及其程序的简洁语法。好吧,如果不考虑性能问题,它真的不是一门好语言。真的是这样吗?在开始之前,让我再次警告FBI:关于编程语言的讨论都是不真实的,或多或少有个人喜好因素。因此,本文的某些观点可能有些偏颇。如果说的不对或者出入比较大,还望大家指正。这里的场景主要是基于团队协作场景来讨论的,而不是个人项目或者小项目。也就是说,只有团队一起工作,才会有问题,才会有各种讨论。说到这里,我也有个人喜好。比如我业余开发选择各种语言,而真正做项目的时候,我选择的语言是Java;业余开发用React和Stencil.js,在公司做项目的时候用Angular大法不错。简介一:我们都知道编程语言的读写。编程语言是写出来供人阅读的代码,是供机器运行的机器代码。所以,对于编程语言,我们会有一个简单的标准,就是它的读写能力。从用户体验的角度,我们可以将其分为四类:易读易写、易读难写、易写难读、难写难读。为了契合文章主题,我大概对自己在项目中使用过的JVM语言做了一个分类。(PS:在真实案例中,差别并没有那么大。)同时,由于每种语言的使用场景不同,我们不考虑性能等问题。难度易写难写易读JavaGroovy难读KotlinScala简单解释一下(笑,我们不讨论它们的优点。示例中的Kotlin不适合,但我没有使用过其他JVM语言)暂且做项目,可能JRuby不太好读):Java语言,大家都懂,又好读好写,所以Java程序员便宜。编写Groovy(Gradle使用的DSL语言)的难点在于缺乏文档和语法糖导致IDE支持不佳(相对而言)。其实也不是那么容易理解的。在IDE支持的情况下,需要使用碳基大脑来做类型推断。Kotlin,如果你已经熟悉Java或其他语言,编写Kotlin并不是一件难事。这个东西的难点在于阅读别人的Kotlin代码可能会有点吃力,除非你有很好的IDE支持——它的真正的父亲可能是Jetbrains。离开IDEA后,找个extension花了很长时间。所以难度总体来说不难,但是阅读起来还是比较难的——因为有句法糖。Scala,一个早期的项目,几个月后看不懂几个月前写的代码。如上所述,每个人都有对语言的偏好。所以,这里还是说说我个人的一些看法。我不是这方面的专家,仅从我阅读开源代码和编写相关代码的个人经验来看。引言二:适用领域和热门应用说到编程语言,我们要讨论另一个特点:适用领域。众所周知:Golang背靠云原生,GooglePython是科学家的偏爱,毕竟不是以写代码为生。JavaScript改变了交互方式。Ruby是Rails框架,因此流行起来。Java用于企业编程是因为程序员便宜,像Rust这样的小型语言还没有正式出现欣欣向荣的景象。入门3:编程的乐趣,先写好有一些语言,可以让你捡到编程的乐趣,比如Ruby,也让你不想维护代码——方法缺失,让人爱与恨,能让你开始元编程。也能让你分分钟看不懂别人写的代码。如果没有文档,那么我认为您不会再阅读它。再比如,运算符重载也是人们编写的更直观的代码。好吧,再次重载赋值运算符不是很酷吗?为了幸福,可维护性是以后要考虑的问题。过时的编程语言在项目上经历了用Groovy开发大型项目的惨痛经历后,我和同事一致认为这是一门可能被淘汰的语言。有几个主要原因:失去可维护性缺乏更好的IDE支持(与Java等相比)。说白了就是开发者写的不舒服。在最广泛的场景中,出现了一种可移植的语言(例如KotlinScript)。如果你还想考虑编程语言的一些缺点,那也是可以的。可维护性的丧失不是语言本身的问题,而是语言在处理大型项目时会遇到的挑战。对于大型项目,自由灵活的语法糖会带来很多问题。随着项目的进一步扩大,保持同一套代码风格很容易,但使用同一套语法却越来越难。如果也是声明类型,有的使用特定类型,有的使用def或var。缺乏更好的IDE支持好吧,如果你习惯使用IDEA来快速重构Java代码。同时,您不能以类似的方式重构Groovy代码。你会慢慢陷入一个循环,既然有更好的语言,为什么不用呢。其次是使用IDEA的高级功能,例如重构。我们首先将代码中的def转换为具体类型。可迁移语言的出现,其实以上两个问题并不是该语言的主要问题。毕竟IDE和可维护性支持对于小项目来说都不是问题。以前我们都是根据Gradle官方文档,使用Groovy编写Gradle插件。而有一天,官方的Gradle文档也提供了对KotlinScript的支持。这相当于上帝真的向你抛出了橄榄枝。您可以同时拥有更好的IDE支持和更好的可维护性。同时也可以快速迁移过去。为什么不?另一个类似的例子是JavaScript和TypeScript,但浏览器运行JavaScript。因此,JavaScript不能那么容易被取代。结论是否可能有一种与所有语言兼容的语言?本文转载自微信公众号「Phodal」,可通过以下二维码关注。转载本文请联系Phodal公众号。