感觉新的编程语言噱头大于改进

查看 71|回复 4
作者:gav1nvv   
本人工作是 Go ,也会 Java 和 C++和前端 TS+React ,最开始做的 Java 后转的 Go ( Java 比 Go 熟),最近接触了 Rust 。
以下只是个人观点:
下面的代码实现相同的功能,只是语法不同,学过编译原理感觉只是语法分析的差异,为什么感觉越新的语言,实际的新功能或改进越来越少,往往是效率和安全性方面。
更多的是噱头和为了标新立异而标新立异( fn func function )以及添加一堆语法糖(虽然语法糖很好,但过多的语法糖本身也是学习成本),增加每个语言之间的壁垒,徒增开发者学习成本。
当然以下这里不包括 ts ,只是拿来举例,在我看来 ts 确实较 js 有大幅优化,减少大量编译错误,虽然需要建立 interface ,但有利有弊吧
// C++
#include [i]
#include
std::string getExample() {
    std::string a = "example";
    return a;
}
// Java
public String getExample() {
        String a = "example";
        return a;
    }
// Go
func getExample() string {
    a := "example"
    return a
}
// Rust
fn get_example() -> String {
    let a = String::from("example");
    return a;
}
/**
* ts
*/
function getExample(): string {
  const a: string = "example";
  return a;
}

string, return, example, getexample

keepRun   
感觉学了 java 、c/c++后,对于其它语言语法捡起来很快,我现在主要看语言对应的生态以及我可以用它做啥了,其实实战业务逻辑换语言相差也不会太大,关键是设计思想以及语言的生态
fregie   
编程语言有新功能可不一定是什么好事,c++功能够多了吧,大型 c++工程不做很多编码规范的限制的话就是灾难
不同语言有不同特性,适用于不同场景
比如 go,语法很少,有统一的编码风格,有优秀的 interface 设计,就适合用作在大型基础设施工程,但是由于不面向对象,对于业务代码编写其实效率是偏低的
python 这种就相反,弱类型加面向对象,写什么都很快,但是当工程足够大后就会不好维护
ts 和 js 同理
站在一个 developer 的角度看其实各种语言区别不大,但是站在 engineer 的角度看就不同了
idealhs   
你的例子只是返回一个 string 恐怕没有任何说服力,你这里面的语言就已经包括了原生编译语言,运行时语言以及脚本语言,他们根本的原理都不同,在处理线程,异步等等情况的表现都不同。语法分析完了以后大家都是怎么运行的呢?
ShuWei   
在合适的场合,用一门合适的语言就行,你喜欢啥就用啥
从我个人想法出发,我倒是乐于见到一些新的语言冒出来的,虽然确实有滥竽充数的,但目前来看,总体还是向好,基本上新的语言都会带来一些新的思想,以前老的语言也可以在更新中吸收一些好的更现代的设计思想进去,你好我好大家好,比如 java 最近很火的协程,应该是没少借鉴一些比它新的语言,大家共同进步,不是挺好么,骨折式创新不常有,珍惜这些正在默默发生的改进吧
您需要登录后才可以回帖 登录 | 立即注册

返回顶部