好多人为了一点点语法差异就要重新发明一门编程语言,但是一门语言要达到工业强度没个五年不太可能,人的一生的 1/12 就没有了...
那为什么不把语法的实现模块化,比如 ruby 现在的模式匹配比较弱,那用户直接换个更强大的模式匹配模块就可以了。也就是语法和语意分离,ruby 的语意核心就是对象模型这些,但是语法可以随便弄,只要能编译成 ast。
其实 babel-plugin 是有点这种感觉的,js 没有运算符重载,但是用 babel 是完全可以做个 plugin 支持运算符重载,虽然还需要一点 polyfill。这样根本不用等什么标准,就可以以自己喜欢的方式使用语言了。
#2 楼 @mizuhashi Lisp 就可以,不过会导致一个项目的代码风格完全是另一种语言了,不利于维护。 ruby 虽然注重灵活,但还是考虑到 project 的问题。
顺着你的思路考虑一下,我在使用 Java,但是一段难以表达的业务逻辑,我希望使用 Ruby 完成
Ruby 支持 keyword arguments, 比如 我可以写 sign_in(email: email, password: password)
,但 Java 不支持的,这时候要怎么去调用呢?会不会增加额外的成本?
#5 楼 @jicheng1014
还别说。。。
我们的登录接口有三个参数 email、phone_number、password 前两者二选一,封装的时候可就愁了...
signIn(String email, String password)
和 signIn(String phoneNumber, String password)
是不行的 必须signInByEmail
, signInByPhoneNumber