本人程渣一个,5+年开发经验,正儿八经做过的项目有 PHP 前后端、Java 后端、网游服务端、iOS 和 Mac App。
现在能熟练使用的语言有 PHP、Java、C、Objective-C,不熟练使用的多了。其中作为主力语言的是“最好的语言 PHP ”,真的不开玩笑,各种内置函数超级方便。我平时开发中碰到的需要重复操作的东西我基本上统统写成各种小工具来对付,其中大部分都是 PHP 写的,真的好用。
最近在玩逆向中碰到的一个问题是:PHP 对二进制操作实在是不方便,写小工具很麻烦,用 C、Objective-C 写的话每次修改后都要重新编译,更麻烦,同时也不方便跨平台。所以有想换一个主力语言的想法。大致要求如下:
硬性要求:
加分项:
轻微加分项:
目前知道的备选语言有:
要求好像很苛刻,我也不知道存不存在满足我的要求的语言,欢迎大家提出自己意见和建议。
101
blless 2017-11-29 22:25:38 +08:00 via Android 2
朋友,你听过 nim 吗
|
102
pynix 2017-11-29 22:35:35 +08:00
朋友,听说过 crystal 吗?
|
103
wekw 2017-11-30 00:40:33 +08:00
跨平台 + 操作二进制 === GoLang (去浪)
|
104
lrxiao 2017-11-30 03:59:31 +08:00
西加加 锈
搞逆向不用 Py 写 POC ? |
105
ericgui 2017-11-30 04:35:42 +08:00 via Android
啥叫 php 前后端啊? php 前端是啥?
|
106
vegito2002 2017-11-30 05:47:45 +08:00
认识的一个超级大神对 swift 笃信不疑, 所以我现在也是 swift 的脑残粉了, 虽然还没有特别上手.
|
107
Mutoo 2017-11-30 06:22:18 +08:00
Luajit 完全满足
硬性要求: [*] 可以跨平台交叉编译,要支持 Mac、Linux,最好能支持 iOS、Android 移动平台 [*] 原生支持二进制操作、二进制数组操作,能方便地对二进制协议数据拆包、打包 [*] 比较成熟,有长期存活潜力,不能用了一两年后就 discontinued 了。 加分项: [*] 能方便地和 C 混编 [*] 能像 Exlixir 那样可以编译运行,也可以脚本方式运行(大大加分) [*] 能像 Go 那样静态编译( Go 语法是在太古老,无爱,但是 Go 真的是好东西啊) [*] 有比较好用的开发环境,有 JetBrains 家族 IDE 支持更好 轻微加分项: [*] 语法简洁,不要像 Java 那样啰嗦 [*] 性能不太差 |
108
clino 2017-11-30 07:09:19 +08:00 via Android
|
109
royceyong 2017-11-30 08:27:31 +08:00
拍黄片就好好的拍黄片,不要东想西想的。
|
110
hnbcinfo 2017-11-30 08:36:42 +08:00
.net core 平台下的 C#
|
111
huage 2017-11-30 09:05:53 +08:00
朋友,你听说过安利吗?
|
112
forbreak 2017-11-30 09:11:23 +08:00
php 这么好,为啥还要找其他语言?
|
114
ioth 2017-11-30 10:01:51 +08:00
delphi 6
|
115
ioth 2017-11-30 10:02:15 +08:00
还有他儿子:c#
|
116
coolcoffee 2017-11-30 10:03:41 +08:00
不用找了,PHP 已经是最好的语言了
|
117
eliteYang 2017-11-30 10:09:38 +08:00
朋友,kotlin 1.2
|
118
pming1 2017-11-30 10:15:37 +08:00
.net core 平台下的 C#
|
119
alber1986 2017-11-30 10:19:54 +08:00
萝卜青菜,各有所爱
|
120
zzf2017 2017-11-30 10:26:29 +08:00
我来引波战:java 才是世界上最好的语言
|
122
xifengzhu 2017-11-30 10:40:33 +08:00
ruby
|
123
srlp 2017-11-30 12:49:58 +08:00 via iPhone
scala, the better java
|
124
noli 2017-11-30 13:01:27 +08:00
@hackxing #121
@pming1 #118 @Clarencep #113 @hnbcinfo #110 同以上这几位推荐 C#. 理由: 硬性要求: [x] 可以跨平台交叉编译,要支持 Mac、Linux,最好能支持 iOS、Android 移动平台 不光以上这些,还可以支持 Unity3d, Xenko 等等游戏平台。并且 github 上有库可以把 CIL 的 DLL 编译成 C 语言等可用的库。 [x] 原生支持二进制操作、二进制数组操作,能方便地对二进制协议数据拆包、打包 Protobuffer, MessagePack, Bson, Thrift 各种协议欢迎你,都有支持 .net 和 .net core 上的库,多数是用原生 C# 写的,意味者实际上可以移植到任何支持 C# 的环境。 [x] 比较成熟,有长期存活潜力,不能用了一两年后就 discontinued 了。 C# 编译器、.net core 整个平台(底层 + 库) 都是开源的,生态庞大、体量惊人 加分项: [x] 能方便地和 C 混编 C# 里面可以直接写 unsafe 代码操作指针,也可以不需要任何第三方工具直接调用 C 库导出的函数。 [x] 能像 Exlixir 那样可以编译运行,也可以脚本方式运行(大大加分) 编译运行不用说,visual studio 有 C# REPL,mono 在其他没有 visual studio 的地方也提供了 REPL。 [x] 能像 Go 那样静态编译( Go 语法是在太古老,无爱,但是 Go 真的是好东西啊) C# 的类型比 Go 严格多了,有比 Java 好用得多的泛型、协变、Delegate, 也有像 go 那样方便地支持 异步高性能 (async await ) [x] 有比较好用的开发环境,有 JetBrains 家族 IDE 支持更好 只说免费的,Windows 下有 Visual Studio Community, Linux 和 Mac 下有 MonoDevelop(或者其衍生版 Xamarin Studio, Visual Studio for Mac) ,不喜欢太重量级的还有 Visual Studio Code 同样跨多平台开源。 JetBrains 有 Rider , 付费的,没用过,但可以以开源作者的身份申请一个免费使用的期限。 轻微加分项: [*] 语法简洁,不要像 Java 那样啰嗦 和 Java 比看上去差不多,但是有超多有用的语法糖,例如 lambda Delegate 等等 Java 8 Java 9 才加入的特性。你若愿意,你可以全程 Linq 和函数式 编程完成全部功能。没有 checked exception (是好是坏可以保留意见),所以代码自由度很高。 [*] 性能不太差 比起纯 C 语言的运行速度,差距在一个量级以内的,在某些高并发项目上比 go 慢 2-3 倍——但是,你始终可以用 C 或者 unsafe 代码来拉近这些距离。 |
125
noli 2017-11-30 13:15:35 +08:00
@noli #124
关于 C# 跨平台我补充一个我觉得最颠覆世界观的,C# 可以编译成对应的 js,支持 WebGL 等等技术,在浏览器内玩 C# 写的 游戏,详见 JSIL。 现在还可以编译成 webassembly …… |
126
superkeke 2017-11-30 13:24:45 +08:00 via iPhone
C/C++全满足吧
|
127
mmdsun 2017-11-30 13:26:42 +08:00 via Android
.NET Core 平台 C#满足你要求。iOS,Android,服务器都吃。支持 Linux
|
128
qfdk 2017-11-30 15:03:39 +08:00 via iPhone
你需要自己定义一门语言 用 xtext 弄个 ide 出来 自动补全都有 编译看自己喜好
|
129
chenxytw 2017-11-30 15:06:48 +08:00
各种内置函数超级方便的 PHP 不支持二进制操作 0 0 笑死我了
就凭这点,我觉得 Python 就足以打破你对 PHP 的印象 |
130
anmaz 2017-11-30 15:11:51 +08:00 via Android
你觉得你的主力开发语言 php 好处居然是函数,那我还推荐你学啥。
|
131
shuizhengqi 2017-11-30 15:12:42 +08:00
vhdl
|
133
justyy 2017-11-30 22:16:24 +08:00
PHP 是最好的语言
|
134
inflationaaron 2017-12-01 04:19:51 +08:00
C++
[x] 可以跨平台交叉编译,要支持 Mac、Linux,最好能支持 iOS、Android 移动平台 --- 有 C 的地方就可以有 C++ [x] 原生支持二进制操作、二进制数组操作,能方便地对二进制协议数据拆包、打包 --- 非常底层 [x] 比较成熟,有长期存活潜力,不能用了一两年后就 discontinued 了。--- C++17 已经算是新语言了 加分项: [x] 能方便地和 C 混编 --- 简单 [ ] 能像 Exlixir 那样可以编译运行,也可以脚本方式运行(大大加分)--- Elixir? 基于 Erlang 的都有虚拟机啊,没法直接编译成二进制 [x] 能像 Go 那样静态编译( Go 语法是在太古老,无爱,但是 Go 真的是好东西啊)--- C++17 语法新颖过头了( [x] 有比较好用的开发环境,有 JetBrains 家族 IDE 支持更好 --- CLion 欢迎你 轻微加分项: [?] 语法简洁,不要像 Java 那样啰嗦 --- 额,看你习惯了 性能不太差 |
135
php01 2017-12-01 09:01:47 +08:00
对不起,没有比 php 还要好的语言。世界上最好的语言这个名头,不是轻轻松松捡来的。
|
136
zn OP @noli 感谢回复! C#确实是个非常好的语言,我蛮喜欢的。但是目前我主要工作环境在 Mac、Linux 下,这些环境下 C# 成熟项目貌似太少了。
|