学习
实践
活动
专区
工具
TVP
写文章

编程语言

第一个专题,选了一个不太想谈的话题:编程语言。

开始有一点抵触,可能和现在称呼某某语言的程序员有关系。

比如我毕业之前一直做Linux下多线程网络编程,毕业之后是C++游戏后台开发程序员,后面从事内核开发,是C程序员,在现在我只能算是一个Python程序员。这种称呼,程序员被打上了编程语言的标签,在现在司空见惯,但会招致程序员的反感。不期望叫什么工程师,起码得称呼我们,用代码来解决问题的程序员。

编程语言我学了几门,稍微熟悉的可能只剩下一两门。程序员一生,应该得学几种类型不一样的语言,才能叫做真正的软件工程师。这和编程思想有关。

首先,你得熟悉一门编译型的语言,那么学校教的C/C++/C#/Java就有了用处。

然后,你得熟悉一门脚本语言,现在的Python,以前的PHP,ASP什么的,你得接触过。

最后,你想试试函数式编程语言,那么Clojure 还是Haskell你犹豫过? 或者最近很火的Scala。

在这里还没有列平台,分工等分类,如果你还想当全栈工程师,那么你需要学的语言至少得3门以上。

最近两年我花心思学习的新语言不算多,主要是Go和Rust。

学习Go也有两年了,一直没有用Go参与过大型的项目开发。开始的时候,看了goroutine的C实现,觉得Golang这语言要火,这两年在国内确实火了。Go在服务端并发方面优势明显,特别是在微服务架构流行的今天。

关于Go的开发效率,我并没有经验,应该不算低。它语法简单,性能高,原生支持并发,而且部署也很方便依赖不多。现在很多做安全工具的同学,一般都选择用Go来开发。

2年多前,我是因为要去读docker的源码,分析docker的cve,才学的Go语言。那个时候Go给我的感觉就是语法怪异且严格。像docker这种应用,会给一门语言带来大量的使用者,因为它就是一个成功的榜样。

再说一下Rust。

直到最近,我也还在学习Rust。对于Rust的前途,我非常有信心,也推荐给了身边的很多人。我认为Rust是C++的替代者,后面会有一个爆发,也可能是统一所有端的一门语言。

记得前不久在Stack Overflow上的一个调查,Rust被评为最受程序员喜爱的语言,说明Rust有它的魅力。Rust在安全,速度和并发上都设计得非常好,现在也有了非常成功的项目——Firefox的核心引擎 Servo/Project Quantum。

今年初斯坦福开了一门操作系统的课程CS140e,使用Rust加树莓派来写操作系统,算是非常大胆的尝试。有心有时间的同学可以尝试跟一下作业。

最后,一门语言是否学习和使用,与是否喜欢不一定有强关系,希望每个程序员都找到自己喜欢的语言。

资源列表:

1.Rust官方文档 https://www.rust-lang.org/

2.Go协程实现原理笔记 https://github.com/xxg1413/go

3.CS140e: An Experimental Course on Operating Systems https://web.stanford.edu/class/cs140e/

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180403G1VL0A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券