携程为啥突然技术转型从 .NET 转 Java( 四 )


■网友
哈哈,这就是典型的框架程序猿面对着突然出现的改变时候的慌张和紧张
别搞错了,这点不仅仅是.net程序猿是这样,搞java的ssh/jee程序猿也有同样的问题,包括那些用惯了脚本比如只会node.js只会python的程序猿,其实都有同样的问题
现在技术思潮大爆炸,出现技术迁移是很正常的事
比如我们用vert.x,就在短时间内,从java\u0026amp;js迁移到groovy迁移到kotlin\u0026amp;scala
如果只是依赖框架,这短时间的迁移几乎不可能搞定
但是我们掌握了原理,我们不在乎语法,所以迁移得很成功
而且旧代码全部复用,且旧语言随时可以迁移切换回去,无缝的
我们使用groovy这个脚本是因为觉得java有些verbose,做胶水时候有些麻烦,groovy具有类似python一样的属性,可以很轻松滴调用系统命令,所以用了groovy
我们用kotlin是因为coroutine,能够更好滴address异步所带来的callback hell问题
我们打算用上scala是因为idea滋持了scala,同时准备上cassandra,搞大数据需要immutable和fp的特性
所以一个合格的程序猿,你不应该害怕和恐惧这些变化,相反应该主动滴推进这种改变
如果你现在还做不到这一点,你就不是一个合格的程序猿,管你用的是java还是dot net
这个时候vert.x的polyglot的优势就体现出来鸟
所以想成为一个合格的编程师吗?
搞vert.x吧
从java开始,不限于java
另外,我们当然也选择java或者说jvm,为啥?
你说呢?那些理由都很靠谱
你说鞋城能不能不转?当然可以,但是搞不搞得定,跟便宜不便宜,是两回事
资本本质是逐利的
而且木有vendor\u0026#39;s lockin的风险
从这一点出发,就是go都不用
用vert.x多好啊,我们可以马上使用现有的jvm的所有一切
同时我们也能扩展出node.js, go这些有的新特性,只不过借助不同语言罢了
为什么不?
其实认真看鞋城的这次技术转型,是很low的技术转型,还在oop里面打转转
还在什么ruby,python,这放国外都是快10年前的脚本了
用go的好一点,至少知道有协程了,其实也没啥东西,ceylon这种语言都准备出协程了
还有啥好瞎吹的,无非那么一回事,又不是只有go才能做到
还有一个,不要低估资本嗜血的本性
作为程序猿,让你做什么,你应该有能力做到
做不到就有可能被滚蛋,鞋城多好啊,还允许这些人去转,还培训养着,这种老板多nice啊
换其他公司,尤其米国netflix这种公司,直接全部赶走重新招人就是了
对了,netflix以前也是一家用dotnet的公司,可能很多人都不知道
【携程为啥突然技术转型从 .NET 转 Java】 现在netflix做到的是java行业里面最牛逼的公司,可能都不用加之一了

■网友
匿名针对说几点吧。1、“go、python、ruby也在一些非核心应用上得到使用,发布系统也提供了支持,这在.net时代是很难想象的。 ”评价:有啥难以想象的,只能说你们招了这些人,或者是有人学了这些。这个和java 和net有啥关系?我们这边也是net为主,但是这些依旧都有。上次有个老哥,做了个牛逼的系统,宣讲的时候特别耿直,说为啥使用go,因为我只会用go。然后第二次宣讲的时候,改成了go天然支持高并发,吧啦吧啦的。。。。不予置评。。。技术在发展,应该是你自己没接触这些吧,然后赶上改java,你看到了。就认为这些是net时代不可想象的。瞬间觉着你,算了,不喷了。2、“代码重构。刚才说了,老代码的质量很差,转java是一个非常非常好的机会去进行重构。我现在除了写需求,就是在考虑重构的问题,特别开心。毕竟作为有技术追求的人来说,只写需求太痛苦了。重构不仅仅是代码的重构哦,还有很多架构上的改变,具体就太多了,不详细谈了。 ”评价:用java重写并不能改变代码烂的事实,这事主要看管理和个人。 原因:原来有个项目,用NET写的,很烂。后来内部也是推改java,又用java写了一遍,依旧烂。为啥这样说呢。因为有次出bug了,一直解决不掉(上午半天时间)。让我看眼(本人几乎等于不会java,只是平时懂得比较多,有啥都来问我。),根据断点和调试信息,顺利解决,真不是我牛逼,错误提示真的很明显(或者说看不懂??)。。。。。毫不客气的说,大部分业务开发人员(当然还有一部分有想法,有态度,有能力的人)只会增删改查,写业务逻辑,只会随意new,只会for循环,linq是什么,写不来,null判断,会写好几行,?不会用。异步不会写。。。等等等。靠着有经验,知道业务逻辑。就这样干着,对于net还是java,对于他们没啥区别。这点楼主承不承认?所以技术的问题,永远是领导和核心技术研发的带领。再问一句,你为啥不早点去重构?忙,转java之后你也会很忙。。。3、“整个技术环境的改变。在转java的过程中,不仅仅是把.net代码转成java,而是加入了很多新的概念、技术。sonar代码质量检查、大规模的自动化测试、以docker为代表的运维的升级等等。可以说,转java是携程从业务驱动向技术驱动的一次转变。”评价:代码检查这种东西,是你们自己不用吧!明显管理的问题。大规模自动测试,这他妈又和net有啥关系?docker相关。net就不可以用了?你有在一直学习么?你会用docker么?脚本你会写么?dockerfile你知道么????linux你会用么。。。。或者说,,,你win10用过没。。。。呵呵。。。所以,从楼主的表述来说,充分证明楼主原来是个井底之蛙,知道的很少。然后趁着这波带动,一下子接触到了很多你不知道的东西,瞬间就觉着java屌炸天。最后,不想去过多的进行语言之争。java环境(不包含java语言)是很完善,也很棒。但是如果你认为NET很垃圾,什么都没有,我只能说你是一个不会去学习技术的,即使转了java,几年后,你依然会变成井底之蛙一个。手机编写,排版轻喷。


推荐阅读