编程语言漫谈

  • 编程语言的发展

语言的发展方向:功能更强、性能更高、更易于使用。

 

  • 当前主流语言简析

2021年2月份  TIOBE 编程语言排行榜

 

基本对比

语言 优势 不足 主要平台
C 贴近硬件、历史悠久、支持广泛 易出错,开发效率较低  设备
Java 生态好,简单,跨平台 需要虚拟机, 语法不够简洁, 发展较慢 服务端、安卓
Python 生态好, 简单,跨平台 性能偏低 服务端、运维工具
C++ 功能强大 易出错, 开发效率低 系统语言
C# 语法简洁,易读性好,跨平台,支持广泛,迭代快 需要虚拟机 服务端、PC、安卓、iOS
Javascript 语法简单,前端必备,NodeJS生态 有历史包袱,单线程 浏览器、服务端
Go 简洁高效 需要虚拟机 服务端
Kotlin 语法优美,完美替代Java。安卓开发首选语言 需要虚拟机 安卓、服务端
Rust 提供无虚拟机的内存安全 年轻 发展中

 

开发语言选择

公司选择开发语言:

功能强,人才多,成本低,开发效率高,运行效率高

个人选择开发语言:

符合公司需要,开发效率高,少加班

 

 

学校与公司的差异

学校:  一个c语言的例子:

i++;
++i;

两者有什么区别?

公司: 禁止使用 ++i !

原因: 容易混淆的语法,尽量不用。 不要纠结于几个CPU时钟周期的差异,降低程序员的脑力负担,专注解决实际问题, 而不是调试各种语法陷阱。

语言的发展又一趋势: 减少语法陷阱!

 

 

进程、线程、协程

谁能讲一下?

进程的内存占用在 MB级别, 新建进程和切换进程,消耗巨大。

线程的内存占用在 KB级别,  新建进程和切换线程,消耗比进程要小很多很多, 但是当并发量巨大时, 也会成为系统的一个重要负担。

进程和线程,都是操作系统级别的。

协程是语言级别的,协程比线程轻量的多, 是现代语言处理高并发场景的非常好的选项。

是否支持协程, 是衡量现代语言的重要指标。

对协程支持的比较好的主流语言: C# 、Kotlin

 

 

虚拟机简单讨论

谁能讲一下?

虚拟机主要作用:屏蔽平台差异, 管理内存。

程序员可以通过程序控制虚拟机。

Java/C#  字符串拼接, StringBuilder, StringBuffer的差异?

 

C#各版本的主要特性

1.0 - Java的基本功能 + 事件  2002年

2.0  -  泛型。  Java很晚才支持泛型,而且支持的不彻底(类型擦除)  2005年

3.0 - Lambda (高级函数)  2008年

4.0 - 动态类型,命名和可选参数  2010年

5.0 - 异步方法(协程) 2012年

6.0 -  Roslyn ,nameof, 自动属性初始化      2015年,   .net core 1.0

7.0 - 模式匹配, 元组, 局部函数,default   2017年

8.0 - 默认接口成员, 模式增强, 索引和范围 , 2019年

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章