編程語言漫談

  • 編程語言的發展

語言的發展方向:功能更強、性能更高、更易於使用。

 

  • 當前主流語言簡析

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年

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