题目要求:从市场、技术、设计、优劣势等等等方面分析这几门程序语言与Java的异同
我主要选取的是python,javascript,lisp这些个或多或少自己学过或者听别人讲过的语言
流行度排名(2020年2月) | 语言特点 | 优势 | 劣势 | 主要适用场景 | |
---|---|---|---|---|---|
Java | 1 | 1. 完全面向对象 2. 强类型 3. 解释性语言 4. 分布式 | 1.可移植性强 2.效率相比其他解释性语言高很多 3.GC 4.社区强大 | 1. 解释性语言的通病:效率不高 2. “庞然大物” 3. 图形库弱 | 1. 嵌入式 2. web开发 3. 移动开发 4. 大数据 |
Python | 3 | 1. 可面向对象、面向过程、面向函数(创始人说不是面向函数) 2. 强类型、动态语言 3. 解释性语言 | 1. 语法简单,用法灵活 2. 丰富的第三方库 3. 胶水语言 4. 闭包 5. 可移植性强 6. GC | 1. 只能调用单核 2.没有尾递归优化 3. 大型项目难以维护 4. 效率低下 5. 语言版本不向下兼容 | 1. 嵌入式 2. web开发 3. 大数据 4. 机器学习 |
JavaScript | 7 | 1. 可面向对象、面向过程、面向函数 2. 弱类型、动态语言 3. 解释性语言 | 1. 语法简单 2. 闭包 3. 难以替代 4. GC | 1. 应用场景单一 2. 仍保留语法层级的设计问题 | 1. web开发 |
Lisp | 32 | 1. 面向函数 2. 动态语言 | 1. 函数作为一种数据类型 2. 强大的宏 3. 代码使用符号和常量组成的树形表示法 4. GC 5. 不区分编译期和运行期 6. 效率较python高 | 1. 作为上帝语言,难以理解 2. 没有GUI、Web库 3. 社区资源少 | 1. 机器学习 |
除了python是和java有应用方面的冲突,其他并无,但我仍然选取了js和Lisp,前者是因为我现在在学,后者是因为高中同学把它吹成上了天[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3MaHXB7w-1586708442135)(C:\Users\郑靓\AppData\Roaming\Typora\typora-user-images\image-20200405220701726.png)]
不适用场景
- java因为效率,所以在游戏应用的方面不如c/c++
- 因为python丰富的库和较为完善的爬虫框架,所以java在爬虫方面不如python
- java在桌面应用上比较弱
数据参考:https://www.tiobe.com/tiobe-index/
文献参考:http://www.ruanyifeng.com/blog/2010/10/why_lisp_is_superior.html