javaweb和pythonweb(两者区别对比)
个人认为Java属于高大上的编程语言,虽然语言在泛型方面不够完整,但是却比较靠谱,企业级应用也最为广泛。python属于小而美,适合做一些内聚性很强的工具。两种编程语言各有优势,下面我按照自己的理解简单说下Java web开发和Python web开发的区别:
Python的好处是开发、部署都很快,变更起来很容易,代码量小所以抛弃起来也很容易,不容易背上历史负担;如果你是稳扎稳打写了几百个Java类,那你肯定很难下决心把几百上千行的代码都抛弃掉。Python的缺点是运行起来相对Java来说慢得多,性能有瓶颈的时候Java和Go这样的编译语言的优势就体现出来了,不过大部分公司如果不够快的话,是撑不到性能有瓶颈的时候的。
按照JavaEE的规范,servlet都需要直接或间接的实现Servlet接口,即javax.servlet.Servlet,这个接口里面只定义了5个方法,但是因为servlet是协议无关的,要直接实现还是很困难的,所以,曾经的sun给除了实现Servlet接口的类,是
javax.servlet.GenericServlet类。而到了Python栈,情况会略有一些变化。简单来说,如果不使用任何web框架,我们可以完全使用socket的方式来实现,这也就是Python web应用的本质了。
Python的web开发使得我们更专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以需要一个统一的接口让我们专心用Python编写Web业务,这个接口就是WSGI,感觉和servlet有异曲同工之妙。和Java中servlet中service()不同的是,WSGI接口定义非常简单,只要求Web开发者实现一个函数,就可以响应HTTP请求。
而从架构模式的角度来说,Java中更侧重提到MVC,而在Python中则是MTV。简单来说,MVC和MTV是类似的,只是归属于不同的开发目录。都是在已有的实现上解耦合,通过配置和扩展来实现复杂的需求。
最终选择什么编程语言做web开发必须要考虑哪个语言更适合后端业务流程。如果是个相对计算密集型的、需要多线程的,那么就应该慎用Python,或者提前将计算密集的部分拆出去单独组成服务。如果是业务本身比较繁杂、变更比较频繁的,Python和PHP这样的脚本语言就比较合适。当然跟程序员的个人喜好也有很大关系。比如有些人死都不会去用Java和PHP,但是也有很多人视Java为信仰,所以开发人员的主观能动性也是很重要的。