饿了么java面试题招聘 java

如何看待知乎、饿了么后端的招聘纷纷由 Python 渐渐转向 Java? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。<strong class="NumberBoard-itemValue" title="被浏览<strong class="NumberBoard-itemValue" title=",610,287分享邀请回答14020 条评论分享收藏感谢收起如何看待知乎、饿了么后端的招聘纷纷由 Python 渐渐转向 Java?
当初年轻,写Python真的是觉得很爽,看到垠神在博客疯狂diss Python的时候,我是很不服的,后来吃了苦头才知道错。
性能是一方面,但根本不是最重要的,最重要的是动态语言带来的先天缺陷。
很多人都不明白人在写代码方面往往只比猴子高级那么一点点,这也就是为什么编程语言的发展总是在加大约束(缩小错误范围)的条件下,再研究各种各样在这种强约束下的高表达力特性,典型的例子就是在写类型无关的接口的时候习惯了动态语言,也许会觉得duck typing用的要多爽有多爽,搞不懂为什么静态语言要花各种功夫去研究各种泛型特性(HKT、rank-n等等),可是不管是工程还是理论上,泛型带来的好处远远都比duck typing多的多,更利于保证程序的正确性,把某些猴子行为(名字写错、未定义使用、类型乱用等)停留在编译期,比如像go那样的垃圾语言,垠神虽然很多话都有槽点,但不影响这句话是非常客观的:go是自大狂和民科造出来的产品,奇葩得不行。
回到题目上,说实话Python真的不是特别适合做大型项目,不是说它做不了,而是不适合,大型项目都会涉及到人这个问题上,而人都是不可靠的,这方面Java要做的好一些。
集中同一回复几个争议的地方:
自大狂,说go爹自大狂也许激怒大家了,我对此感到非常抱歉。
go的语法,go的语法并不优美,当然,拿语法来喷一门语言是不具有说服力的,所以我从头到尾都没提过这个。
go的类型,它的类型系统真的很烂,连泛型都没有啊,作为一门现代静态语言没有泛型,很多东西表现起来是很蛋疼的,有些人还觉得用interface{}+动态反射一样把类型处理得很好,那是完全不一样的,这种方式根本就没办法在静态期处理掉一些不安全的错误。
go和分布式,说实在话,把分布式和go强扯到一起有点牵强啊,写分布式系统最重要的难道不是要求苛刻正确性的领域吗,大家都在研究分布式系统中如何保证一致性或者提高可用性,不多看看论文,到处听别人吹逼就觉得自己也会分布式了?
没有垃圾的编程语言,只有弱鸡的人,这可能是我每次在谈论编程语言最厌倦看到的话了,不要假设人这个东西有多强,人在犯错方面的天赋是无与伦比的,有点经验的程序员都会对不确定的情况充满敬畏,而糟糕的语言浑身都是不确定性,所以不要低估语言一贯的坑爹水平。
在编程语言方面,抱歉,有类型,真的可以为所欲为。
我好像被误以为是Java程序员了,其实不是,只是学的语言有杂而已,这里再多说其他语言好了。
Java,总的来说,Java整体是个不错的语言,特别是对于大规模的工程来说,语法罗嗦的问题其实没太大问题,IDE可以很方便做好,Java的优点也是缺点是,太中规中矩了,所以干一些特殊需求(炫技)的代码有点绊手绊脚。
C++,人类补丁精华啊,C++17大家都对这货有很好的期盼,concept、module、network、coroutine等诸多特性还是没能正式加入,后面20继续补丁吧,也加了一些有实际用途的constexpr if,这货在写模板代码的时候还是很有用的,C++缺点太明显了,继承自C的一些鬼畜类型,比如设计糟糕的隐式类型转换,由于补丁的问题,整体太复杂了。这里再讨论一下语言和能力的问题,能力再强的人写C++模板的时候都会为了屎一样的错误信息抓狂,不要以为他们多有高级,别问我为什么知道的:)
rust,和go一样,都是看到了C++的问题而做的改进,go觉得C++太复杂了,所以尽量设计的简单,结果太简单了,该有的东西没有。rust则要激进的多,长期写C++并且相对激进那帮人看到rust还是蛮兴奋的,后来他们就开始拿rust造轮子,比如链表。。。rust的很多设计都非常棒,而内存管理,我一直觉得lifetime设计是不是过于严格了,导致新手写rust的时候基本都被rustc弄到心态崩溃才能熟练对待,后期可能会有所改进吧。
lisp方言,就个人而言,我是非常非常喜欢s-exp的这,这才是真正简单而具有强大的表现力的语法,如果我要给自己平时写的轮子加上脚本语言,我一定首要考虑lisp。lisp方言很多,比如racket,前身plt scheme,自己写解释器学习的时候是个不错的工具,elisp,嗯,作为一门操作系统的脚本语言还是可以用的,比起辣鸡vim要强很多,vim党表示心痛。
haskell,我强烈推荐还没意识到类型系统重要性的好好学学haskell,当然,我的haskell水平十分业余,因为我老是被拐去学数学。。。
Java/PHP,比Python还垃圾。。。
Ruby,总的来说写过一段时间的Ruby,也见识到了传说中的强大元编程能力,但是说实话我并不是很喜欢,有时候对语言本身的魔改是需要非常的谨慎的,如果是你一个人读代码那没有问题,但还是人一多就会造成各自理解的问题。
欢迎来喷,希望大家都能喷到点上。
1.我最近整合了java相关一部分学习视频、电子书、和项目资料,涵盖34个领域,143家公司的面试真题,以及常见互联网技术领悟经典书和面试书和知名互联网公司校招薪资汇总表。
获取方式:关注“java进阶技术”公众号,回复“电子书”或“项目”“java基础”“java架构”“面试资料”。
2..直接加QQ群:.群文件下载。
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点BOSS直聘验证码
为了您的账号安全,我们需要在执行操作之前验证您的身份,请输入验证码。

我要回帖

更多关于 java单例模式 饿汉式 的文章

 

随机推荐