(我写的这个回复真是长长长...啊)
我觉得新的语言值得学习,所谓的“完美”也是源于它们是新语言,能站在历史语言的肩膀上进行设计,是为了填过去各种语言出生时的不合理设计坑,有这些特点:
1.开始是为提高某个平台的高效率开发而发明。
2.抛弃一些旧语言为了兼容源码而做的各种升级、补丁。
举我自己学习语言的例子,说说旧语言讨厌的地方(只讨论语言语法设计方面的问题,这段在乱扯):
① C 语言是多么简单,语言简单但是开发时好繁琐啊,竟然还有什么用结构体去模拟 C++ 类的做法,基于对象的编程但是它确是 Linux 内核开发、嵌入式开发的不二选择;
② C++ 语言这是一门从入门到放弃的语言。不过当年读大学时只研究它,发现熟悉 C++ 之后,再去学习 C#、Java 等语言时,从 C++ 那里学习到的面向对象、模板的概念对理解 C#、Java 语言有很大的帮助。但是 C++ 没有让人觉得甜的语法糖。
举个例子,从网上复制的一个 C++遍历用法:
C++ :
for_each(iv.begin(), iv.end(), [b](int &x){cout<<(x + b)<<endl;}); // (1)
遍历就遍历嘛,干嘛要详细说明从数组的 iv.begin() 到 iv.end() ,婆婆妈妈,数据结构遍历可是日常代码里面要写的。
看看人家 Kotlin:
http://kotlinlang.org/docs/reference/control-flow.html#for-loops```
for (item: Int in ints) {
// ...
}
```
看看人家 Swift:
http://wiki.jikexueyuan.com/project/swift/chapter2/05_Control_Flow.html#for_in_loops```
let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
print("Hello, \(name)!")
}
```
每天有这种语法糖吃,真是甜蜜又高效还幸福...
现实的情况是,每种语言都有它合适的位置,不过我想问的是,我有生之年还能看到某个领域的开发,被一种全新的更好的语言全部代替吗?历史是在演进的,用机器码,用汇编,用 C,用 C++ ... 那么写操作系统这个事情,能用一种全新的语言来重写吗?语言能变得高级,肯定也是因为编译器是一个智能的翻译员。
3.解决某个平台上流行语言开发低效的历史问题。Kotlin 誓要在 Android 上替代 Java,Swift 誓要替代 Objective-C。
4.跨平台。
5.学了不吃亏,兴许以后也能因此找到工作呢。
6.语法糖好吃,嗯,好吃 ...
7.热度上升,得到好评。
所以,我推荐学 Kotlin 或 Swift。
# Kotlin 语言
http://kotlinlang.org/docs/reference/basic-syntax.html有 Jetbrains 和 Google 两个牛逼公司支撑。 支持著名的 JVM,for Android、for Server Side、for JavaScript、for Native,学了根本不吃亏。
# Swift 语言
https://swift.org/documentation/#api-design-guidelines有 Apple 公司支撑。能开发 iOS app、macOS app、Server Side 程序。