本人程渣一个,5+年开发经验,正儿八经做过的项目有 PHP 前后端、Java 后端、网游服务端、iOS 和 Mac App。
现在能熟练使用的语言有 PHP、Java、C、Objective-C,不熟练使用的多了。其中作为主力语言的是“最好的语言 PHP ”,真的不开玩笑,各种内置函数超级方便。我平时开发中碰到的需要重复操作的东西我基本上统统写成各种小工具来对付,其中大部分都是 PHP 写的,真的好用。
最近在玩逆向中碰到的一个问题是:PHP 对二进制操作实在是不方便,写小工具很麻烦,用 C、Objective-C 写的话每次修改后都要重新编译,更麻烦,同时也不方便跨平台。所以有想换一个主力语言的想法。大致要求如下:
硬性要求:
加分项:
轻微加分项:
目前知道的备选语言有:
要求好像很苛刻,我也不知道存不存在满足我的要求的语言,欢迎大家提出自己意见和建议。
![]() | 1 shanechiu 2017-11-29 13:45:22 +08:00 golang 语法怎么了? |
![]() | 2 wspsxing 2017-11-29 13:48:28 +08:00 Crystal? 还有 fb 的那个 php 备胎. |
3 alinwu05 2017-11-29 13:49:32 +08:00 有句话怎么说的,就是没有银蛋!每个语言都有其擅长的地方 |
![]() | 4 afeicool 2017-11-29 13:53:04 +08:00 ![]() 看到楼主的需求,我情不自禁的掏出了我的大蟒蛇,楼主,啃它吧! |
9 zn OP @afeicool 骚年,偏见是一种事实存在并且无法避免的缺陷,接受它的存在吧。就像你只会喜欢美女一样,你无法强迫自己喜欢一个哔哔哔哔的女人。 |
![]() | 10 Gonejack 2017-11-29 13:58:42 +08:00 via iPhone 除了 Kotlin 和 Swift 还有什么有出息 |
![]() | 12 mcfog 2017-11-29 14:13:48 +08:00 你的硬性要求里根本没有语法帅气这一条啊,go 的语法不同人的感受不一样,但至少不影响干活嘛 顺便,我倒是觉得 php 对二进制和字符编码这块的处理挺好的啊,不如说我觉得对比其他家的 string / buffer / byte[] / unicode 等等嗦嗦一堆,php 抛开一切直接把 byte[]叫做 string 的作法用起来特别舒服啊。 嘛,说到跨平台、静态编译,或者是大量二进制操作的性能的话确实出局了就是 楼主既然是 C 选手的话,不如考虑 Lua ? |
14 90safe 2017-11-29 14:16:48 +08:00 看了要求,第一反应就是 Go 了 |
![]() | 15 gouchaoer 2017-11-29 14:20:37 +08:00 c 咯 |
16 johnny23 2017-11-29 14:22:34 +08:00 via iPhone 只能是 golang 了 虽然我是 c#爱好者 |
![]() | 17 simo 2017-11-29 14:23:06 +08:00 抛弃偏见,go 满足你 |
18 tonymitcher 2017-11-29 14:24:47 +08:00 Typescript |
![]() | 19 gouchaoer 2017-11-29 14:30:32 +08:00 我也不喜欢 go 的语法,另外 java 语法那么完美为什么还嫌弃 |
![]() | 20 askfilm 2017-11-29 14:36:43 +08:00 对楼主 呵呵 |
![]() | 21 whypool 2017-11-29 14:41:17 +08:00 ruby ? |
22 huclengyue 2017-11-29 14:43:16 +08:00 python 感觉不错 |
24 zn OP @mcfog PHP 处理二进制数组还是很麻烦的,自己计算长度 unpack,有时候还要自己 ord(char) 然后再 chr(num) 转换回去,挺麻烦的,这方面还是 C 家族的指针好用 |
![]() | 26 crabRunning 2017-11-29 14:49:49 +08:00 比第一语言还好的语言,少年不存在的。 |
27 SuperMild 2017-11-29 15:00:08 +08:00 via iPhone Java 在 ide 的加持下,嗦完全不是问题啊! |
![]() | 29 master13 2017-11-29 15:06:32 +08:00 ![]() 人人为我,额下一句怎么说来着? |
![]() | 30 Kilerd 2017-11-29 15:10:11 +08:00 ![]() 如果你是嫌弃 Python 的缩进问题,那么只能证明你在写其他语言的时候都没有正确或者良好的缩进习惯。 |
31 pluschen 2017-11-29 15:11:42 +08:00 我一条条要求对比下来,没发现 C 语言不符合的条目呢。 |
![]() | 32 acgnsstech 2017-11-29 15:12:24 +08:00 我正在开发类似于楼主需求的这种编程语言。。。 但是 进展太慢。。。 楼主再等等 大概 3 年后再见~~ |
![]() | 34 thankuu 2017-11-29 15:13:21 +08:00 觉得 java 嗦不妨试试全宇宙最复杂语言 Scala ? |
![]() | 36 fhy1994 2017-11-29 15:14:13 +08:00 Golang Python |
37 zn OP @acgnsstech 哈哈哈,骚年,我信你,我等你。 |
![]() | 38 zhengxiaowai 2017-11-29 15:14:41 +08:00 这世界上哪有银弹 |
41 zn OP @zhengxiaowai 语言并不是银弹,语言只是工具。然而工具有趁手的和不趁手的。而一个人的认知范围是有限的,大家的认知范围加起来就很广。也许碰巧有位朋友介绍了一种我之前并不知道的语言,而这种语言恰恰满足我的大部分要求,我想要的就是这种碰巧,至于有没有运气碰上,那就不知道了。that's all. |
43 keenwon 2017-11-29 15:25:32 +08:00 php 语法都能忍,忍不了 go ? |
![]() | 44 robertlyc 2017-11-29 15:26:10 +08:00 ruby |
![]() | 45 skadi 2017-11-29 15:26:26 +08:00 可以试试 nim |
![]() | 46 natforum 2017-11-29 15:27:19 +08:00 c plus |
47 SuperMild 2017-11-29 15:34:27 +08:00 via iPhone 我觉得,楼主你对各种语言都有了解,如果有人说出一种你没想到的语言,那要么是小众语言,不符合你要轮子丰富的要求,要么就是有特色的语言,不符合你的语法审美。 |
![]() | 48 iiusky 2017-11-29 15:46:53 +08:00 学汇编吧 |
![]() | 49 owenliang 2017-11-29 15:55:11 +08:00 golang 倒是真的和 C"混编"。 |
![]() | 51 roricon 2017-11-29 16:10:02 +08:00 elixir 名字先拼对了可以吗? |
![]() | 54 LokiSharp 2017-11-29 16:18:49 +08:00 朋友,你听说过 Python 嘛? |
55 mooncakejs 2017-11-29 16:27:24 +08:00 Javascript 或者 typescript |
56 zztt168 2017-11-29 16:52:05 +08:00 我是来凑热闹的,我只会 python,就推荐 python 吧,对缩进有意见用 pycharm 就好。 |
![]() | 57 overflowHidden 2017-11-29 16:52:36 +08:00 @afeicool anaconda ? |
![]() | 58 linuxfans 2017-11-29 17:01:59 +08:00 via Android 居然没人推荐 forth,简直条条都中 |
![]() | 59 vescape920 2017-11-29 17:14:45 +08:00 PHP 是世界上最好的语言 你还想找比 PHP 还好的语言??? |
60 parkcg 2017-11-29 17:17:52 +08:00 via Android 技术栈跟我有点像啊,我目前也是做 php,移动端也都做过。曾经学习过 Elixir Erlang, 因为精力有限放弃了。 |
![]() | 61 xvx 2017-11-29 17:24:24 +08:00 推一把蟒蛇( Python )。 因为我最熟悉也最喜欢的就这个。 |
![]() | 62 joeke 2017-11-29 17:36:06 +08:00 学 go 吧 |
63 zn OP @vescape920 没有最好,只有更好,哈哈哈哈 |
![]() | 65 x8 2017-11-29 17:48:27 +08:00 Go,语法这种问题都是小问题,能适应 我深恶痛绝 Go 的花括号的换行,现在也觉得难看 但是 Go 带给我的便利远远超过语法带来的不适应 |
![]() | 66 des 2017-11-29 17:50:09 +08:00 via Android 还是推荐 Python,不然就是要么吐槽一堆,要么没人用 |
![]() | 68 8355 2017-11-29 17:58:58 +08:00 感觉只有 Golang |
![]() | 69 linuxfans 2017-11-29 18:09:19 +08:00 @zn 因为很多地方偷偷用都不愿意让人知道,比如 NASA、SUN、IBM 等等… 如果 C 语言让你觉得它是世界上最好的语言(好吧,你们说 PHP 我也不反对,反正有这话的时候 PHP 可能还没出生呢) 那么 Forth 会让你觉得自己是世界上最好的程序员 |
![]() | 70 beginor 2017-11-29 18:18:02 +08:00 via Android 玩逆向肯定少不了 IDA,IDA 支持 Python 脚本, 所以还是推荐 Python。 |
72 wenxiuzh 2017-11-29 18:30:48 +08:00 没有人推荐 hh 哦,支持 hvvm 的,兼容 PHP,php 代码可以转成 hh,hh 有一些 php 没有的特性 |
![]() | 73 cuebyte 2017-11-29 18:33:39 +08:00 ![]() 笑看楼上一群 go 粉,go 语法就是烂,还说不得了?作为一个 2000 年后的语言向下比 PHP 有意思? |
![]() | 75 qq976739120 2017-11-29 19:21:57 +08:00 ![]() python 的缩进很舒服啊....大括号看起来才眼花呢 |
76 zn OP @qq976739120 这是宗教信仰,哈哈哈 |
![]() | 77 respawn 2017-11-29 19:45:31 +08:00 Cython,注意不是 CPython,前提是"会用 Python",所以还是推荐 Python. |
![]() | 78 zjsxwc 2017-11-29 19:49:02 +08:00 偏个题,楼主, php 二进制操作推荐用哪个库? 这个好用吗? https://packagist.org/packages/TrafficCophp/ByteBuffer |
![]() | 79 zjsxwc 2017-11-29 19:50:58 +08:00 #78 还是这个好。。。 https://packagist.org/packages/bitwasp/buffertools |
![]() | 82 codecrash 2017-11-29 19:54:07 +08:00 via Android 少年来学 Lisp 吧 |
![]() | 84 codecrash 2017-11-29 20:05:13 +08:00 @zn #83 1,跨平台.手机差那么点意思 2,活的那是相当得长久了 3 能方便地和 C 混编 有 ffi 呀 4 能像 Exlixir 那样可以编译运行,也可以脚本方式运行(大大加分) 5 语法你要是没接触过,那绝对新奇 6 IDE 没什么好用的,emacs 算一个吧 7 性能看你选的是哪种 lisp 实现,不差 8,强大的宏 缺点: 小众,不太适合用来找工作,作为兴趣学学还不错 |
85 betwinyou 2017-11-29 20:09:47 +08:00 装的一手好 B |
![]() | 87 kran 2017-11-29 20:44:42 +08:00 |
![]() | 88 littleshy 2017-11-29 20:44:44 +08:00 swift 就语言上还是挺好的,希望快速发展了。 |
![]() | 89 winglight2016 2017-11-29 20:53:05 +08:00 我来推荐 js 吧,js 才是真正的万能语言啊,从后台到 APP,从平台到智能硬件,有啥活做不了的? |
![]() | 90 k9982874 2017-11-29 20:53:57 +08:00 php 用 pack/unpack 到 16 进制也没什么不方便 |
91 IllBeBack 2017-11-29 20:54:35 +08:00 http://www.pilotlogic.com/sitejoom/index.php/codetyphon FP (free pascal),几乎满足你所有条件 唯一不足:不能以脚本方式运行。但编译速度绝对一流 中国最近出了个 FP 吹,已经在沪江跨平台用上了: http://rarnu.com |
![]() | 93 pezy 2017-11-29 21:00:57 +08:00 via iPhone 非常符合 C++ |
![]() | 94 0w0b 2017-11-29 21:09:34 +08:00 |
95 IllBeBack 2017-11-29 21:25:22 +08:00 |
![]() | 98 jobtesting 2017-11-29 21:57:40 +08:00 via iPhone html |
100 bigknife 2017-11-29 22:20:57 +08:00 Scala Or Haskell |