本人程渣一个,5+年开发经验,正儿八经做过的项目有 PHP 前后端、Java 后端、网游服务端、iOS 和 Mac App。
现在能熟练使用的语言有 PHP、Java、C、Objective-C,不熟练使用的多了。其中作为主力语言的是“最好的语言 PHP ”,真的不开玩笑,各种内置函数超级方便。我平时开发中碰到的需要重复操作的东西我基本上统统写成各种小工具来对付,其中大部分都是 PHP 写的,真的好用。
最近在玩逆向中碰到的一个问题是:PHP 对二进制操作实在是不方便,写小工具很麻烦,用 C、Objective-C 写的话每次修改后都要重新编译,更麻烦,同时也不方便跨平台。所以有想换一个主力语言的想法。大致要求如下:
硬性要求:
- 可以跨平台交叉编译,要支持 Mac、Linux,最好能支持 iOS、Android 移动平台
- 原生支持二进制操作、二进制数组操作,能方便地对二进制协议数据拆包、打包
- 比较成熟,有长期存活潜力,不能用了一两年后就 discontinued 了。
加分项:
- 能方便地和 C 混编
- 能像 Exlixir 那样可以编译运行,也可以脚本方式运行(大大加分)
- 能像 Go 那样静态编译( Go 语法是在太古老,无爱,但是 Go 真的是好东西啊)
- 有比较好用的开发环境,有 JetBrains 家族 IDE 支持更好
轻微加分项:
- 语法简洁,不要像 Java 那样啰嗦
- 性能不太差
目前知道的备选语言有:
- Rust (感觉过于重量级了)
- Kotlin Native (缺点是还处于 beta 状态)
- Go (就语法无爱,别的都很满意)
- Exlixir (缺点是无法和其他语言混编,也不知道能活多久)
要求好像很苛刻,我也不知道存不存在满足我的要求的语言,欢迎大家提出自己意见和建议。