{eval=Array;=+count(Array);}
大型互联网平台的后端实现往往是一个比较复杂的过程,很多平台会综合使用多种不同的编程语言,以便于为用户提供速度更快,安全程度和稳定程度更高的使用体验。
从技术实现的层面来看,目前的互联网平台更多是基于三大块技术打造的,其一是分布式计算;其二是分布式存储;其三是资源调度管理,这三块技术其实也是目前大数据和云计算技术的基础。
如果从技术方案的稳定性和扩展性两方面来考虑,更多的互联网平台会选择采用Java语言来实现,一方面原因是Java语言的自身性能比较稳定,另一方面原因是Java的生态体系比较健全,而且Java语言目前的成功案例也比较多,开发风险会大大降低。相对于具体应用层的实现来说,在平台(容器)搭建的过程中,更看重性能和扩展性,而不会特别注重开发周期的长短和调整的便利性,因此Java语言无疑是比较适合的选择。当然,平台搭建的过程中也会调用由C语言或C++语言构建的资源管理模块。
除了Java语言之外,PHP和Python也是比较常见的选择。采用PHP进行平台开发往往会有更快的开发速度,但是后期的拓展,尤其是性能的提升要更多依赖于云计算平台的支撑,但是由于PHP具有天然热部署的属性,所以PHP在后端开发领域广受欢迎。另外,Python也是后端开发比较常见的编程语言,虽然在性能上相比Java会有一定的差距,但是Python语言自身的资源管理能力和扩展能力还是比较强的。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言!
目前一般公司的后台用的开发语言大概有以下几种:java,python,php,asp.net,c++,rubyon rails 等等。
java优点:性能好,适合大中项目,跨平台,安全性高,稳定可靠,运行效率高(尤其是JIT的出现之后差距更大了),不容易犯错(强类型、预编译、必须拦截异常等等),能有效的提高复用度,提升性能和吞吐能力,能规避安全问题。
缺点:开发复杂,开发和发布的效率相对较低,维护成本高,开发人员费用高
python优点:简单易学,开发快,语言简洁,易于维护,开源,可移植,可扩展
缺点: 速度慢,格式强制,容易犯错
php:优点:灵活,上手快,易修改,发布快捷,环境好部署
缺点:容易犯错,行效率不高,缺乏全局缓存
ruby on rails优点:快速开发,使用者多,开发控件非常丰富
缺点:性能差,第三方包少asp.net
优点:跨语言, 中小型项目上性能好,开发快,适合windows平台,维护成本低
缺点:代码逻辑混乱,难于管理,代码的可重用性差
国内的大公司偏业务的一般都用 Java 做后台开发比如淘宝,网易,美团等. Python国内一般是一些体量不是这么大的公司使用,例如豆瓣,知乎等。其实,各种语言都有优缺点,没有哪一种是绝对好的。各公司也不是单单只使用一种后台语言,都是结合起来开发的。
上述的各种语言的优缺点也是相对的,并不是说明哪种语言多么好多么不好,而且,技术是发展的。不同公司用不同后台开发语言也有各自的原因。比如,要看需求是重展现还是重业务逻辑,重展现就用php等,重业务逻辑就用python等,也有原因是由于技术积累,比如ucloud一直用c++。
看什么应用了,比如我做游戏行业原来用的最多的就是c,c++,lua。现在也有用go,nodejs,python的,如果是网站之类的基本就是php,java,c#。
大型平台混合语言开发的几率很高;比如Java, Python这些是机率比较高的,尤其是中国大陆的企业使用Java开发是特别高的,如果国外的,比如美国公司使用Python的机率是比较高的。比较大型的当然要考虑高可用性高并发灰度发布,现在大多数的话都是用Java开发的。再比如说要用到的一些消息队列啊,解决的方案,其实多数都是采用Java或者是混合开发平台;C#的也有,但是不多。比如还有PHP用的也比较多,但是PHP的话针对的通常都是想快速上马。近年的go也相当不错,用的公司不少。
另外,技术选型的生态必须得考虑,哪个生态比较相对来说比较完整,这个就是做一个开发企业的话,必须得考虑了,因为后期会有很多接踵而来的事情要去处理,比如Java的生态相对来是非常完整的,Python也是非常完整的。 因为这两种语言的开源力度都非常大,比如在github上就比较给力,哪怕是遇到困难或者问题,也会很容易找到相对应的解决方案。
本人理工男爱金融爱生活! 从事软件(互联网)开发10多年,希望可以和大家分享自己的职业经历!喜欢这一方面的话请关注我,会有不错的收获了哦!
9
回答10
回答5
回答6
回答10
回答2
回答0
回答10
回答10
回答0
回答