背景:
LStack平台多租系统采用的是Openstack-Keystone开源项目。在进行Keystone源码分析过程中发现其采用的是Flask框架,而我们自研的一些微服务采用的是SpringBoot框架。所以产生了进行两大主流语言框架横向对比的想法,并整理此篇文章分享给大家。
语言对比:
语言 |
Java |
Python |
声明变量 |
显式声明变量名 |
不需要声明变量 |
类库 |
较丰富 |
丰富 |
动静态 |
静态型 |
动态型 |
可读性 |
良好 |
良好 |
性能 |
编译型+解释型。相对较快,预编译完由虚拟机执行 |
解释型,相对较慢,需要一行行解释执行 |
版本 |
版本稳定 |
python2/3不兼容(推荐学习3版本的) |
核心 |
虚拟机强,java虚拟机是java的核心 |
核心是可以很方便地使用c语言函数或c++库 |
开发实践 |
服务器开发,web开发和安卓开发 |
游戏开发、搜索引擎、图形图像处理、脚本开发 |
Java 主流框架
类型 |
框架 |
基础核心框架 |
Spring 、SpringMVC |
数据库框架 |
Mybatis或Mybatis Plus、JPA、 Hibernate… |
微服务开发 |
SpringCloud |
开发便利框架 |
SpringBoot |
Python 主流框架
类型 |
框架 |
Web应用开发框架 |
Django 、Flask、Tornado、Web2py |
微型Python Web框架 |
Bottle |
爬虫框架 |
Scrapy |
以上是相关语言的对比,以及部分主流框架的整理,欢迎大家补充或留言,我将持续不断的完善和更新此篇文章。
下面是针对跨语言的SpringBoot与Flask框架的对比
框架 |
SpringBoot |
Flask |
配置 |
配置较为灵活:yml 、conf |
配置很灵活,有多种方法配置 |
对语言要求 |
相对较低,开箱即用的开发方式 |
相对较高,正因为太轻量级,需要开发人员拥有较为丰富的开发经验进行第三方类库的整合调用 |
框架轻重 |
java中相对轻量级框架 |
轻量级,一切从简,能省则省 |
开发速度 |
便捷快速 |
小型服务较快,大型服务需要类库搭配 |
社区 |
社区非常丰富,常见bug容易解决 |
起步晚,社区相对不太活跃 |