如何选择编程语言(三)

如何选择编程语言(三)
0

1、对 null 的处理

1.1、区分不可为 null 的对象和可为 null(nullable)的对象

Kotlin

1.2、以一个辅助类处理可为 null 对象到不可为 null 对象的转换

Java 1.8 及以上版本用 Optional 类,C# 用 Nullable 类

1.3、没有不可为 null 对象

JavaScript

1.4、不可为 null 对象的优缺点

1.4.1、优点

可以更好地避免空指针可能引起的问题,可以定义更加明确和不易出错的接口(明确某些输入或输出不能为 null)

1.4.2、缺点

有些地方需要将可为 null 变量转换为不可为 null 变量,稍微增加了代码的复杂性

2、官方 API 库

2.1、字符串拼接、子串匹配、子串替换等操作

C:stdlib 库,但功能较弱
C++:cstdlib、string 库
Java:有较完善的官方 API
Kotlin:有较完善的官方 API
JavaScript:有较完善的官方 API
Python:有较完善的官方 API
PHP:有较完善的官方 API

2.2、数组排序以及链表、哈希表、自平衡二叉树等数据结构

C:无官方 API 提供这些功能
C++:STL 库
Java:Java Collection API
C#:与 Java 类似的 API
Kotlin:与 Java 类似的 API
Python:有官方库提供
JavaScript:有数组排序,对象本身是一个哈希表,无提供其他复杂数据结构的官方 API
PHP:有数组排序,对象本身是一个哈希表,无提供其他复杂数据结构的官方 API

2.3、日期、时间、时区 API

C:没有时区以及日期时间与字符串相互转换、日期时间计算等功能的官方 API
Java 1.7 及以下版本:有时区以及日期时间与字符串相互转换的官方 API
Java 1.8 及以上版本:有时区、日期时间与字符串相互转换、日期时间计算等功能的官方 API
Kotlin:没有时区以及日期时间与字符串相互转换、日期时间计算等功能的官方 API
JavaScript:有时区相关的官方 API,但无完善的日期时间与字符串相互转换、日期时间计算等功能的官方 API

2.4、JSON

C:无序列化、反序列化 JSON 的官方 API
Java:无序列化、反序列化 JSON 的官方 API
Kotlin:无序列化、反序列化 JSON 的官方 API
JavaScript:有序列化、反序列化 JSON 的官方 API
PHP:有序列化、反序列化 JSON 的官方 API

2.5、正则表达式

C:无处理正则表达式的官方 API
Java:有序列化、反序列化 JSON 的官方 API
Kotlin:有序列化、反序列化 JSON 的官方 API
JavaScript:有序列化、反序列化 JSON 的官方 API

2.6、访问关系式数据库

C:无访问关系式数据库的官方 API
Java:有访问关系式数据库的官方 API
Kotlin:无访问关系式数据库的官方 API
JavaScript:无访问关系式数据库的官方 API
PHP:有访问关系式数据库的官方 API

3、第三方库生态

3.1、包管理工具

Java:Maven、Gradle
JavaScript:npm、yarn
Python:pip

3.2、服务器端框架

Java:Spring MVC、Struts等
Python:Django、Flask等
PHP:Laravel、Yii、Phalcon、ThinkPHP等
JavaScript:Express、Koa.js、Meteor等
Ruby:Ruby on Rails等

3.3、ORM 框架

Java:Hibernate、MyBatis
PHP:Phalcon

3.4、IoC(控制反转)、依赖注入框架

Java:Spring Framework

待补充……