这些年用过的语言

这两年接触了不少语言, 感触最深的是每个语言都有它独特的运用场景。

而且未来的开发趋势不是只是用一种语言, 而是基于多语言的开发,这样可以充分利用每个语言的特性开发不同的任务。

接下来, 我想谈谈我使用过的语言和我对这些语言的看法。

最先接触的一门语言是C。 那是在进入大学之后,大一上学期就会教的一门语言。 C 语言学起来一点都不简单。 C 语言最难的一部分就是对指针的理解, 我想说这是C语言的精华之一。 因为要充分理解指针,我们就得理解计算机系统的内存结构, 如 栈 和 堆, 所以学习指针, 我们必须得更深入的了解计算机系统。 而且指针也是数据结构的基础, 数据结构中的链表和树都是基于指针来实现的。 C语言的特点是高性能 和 可移植性高, 所以C语言通常是系统开发的首选语言, 如 redis, nginx, lua。 但是C语言的缺点是需要手动分配和回收内存, 并且对复杂数据类型的封装比较少, 如 C语言中没有string类型, 所以基于C语言的开发效率会比较低。

既然学过了C, C++当然是少不了了。 C++ 是在大二学的, 当时觉得C++是个非常难的一门语言, 可能当时是第一次接触面向对象, 很多概念都不理解。对C++最大的印象就是 STL 库, 封装了很多复杂的数据类型和算法, 可以快速提升开发效率。

紧接着, 在大二也开始学习java了,java也是我后面工作的主要语言。 java最大的特点就是面向对象。 所以对一些大型的复杂项目, 面向对象可以对业务完成很好的封装。 如果要说面向对象最好用的一个特性, 我会选择多态。 多态在业务开发中占据了重要的角色, 并且可以提供非常好的扩展性。 面向对象最难用的特性, 我会选择继承,因为如果一个父类被很多子类继承, 修改父类的代码可能会牵一发而动全身。

Python 是最近两年才开始学习的语言, 不得不说我真的很落伍,这么火的语言, 我居然学习的那么晚,得自我反省一下了。 我用Python的初衷是刷算法题。 以前我是用java刷, 但是发现java刷题太费劲了。 用了python刷题以后,我发现刷题的速度快了一半。 所以选择正确的语言干正确的事情是多么重要啊。 后面去公司实习, 主要是负责devops, 都是用python写一些自动化的脚本。 也用python 开发过一些自然语言, machine learning 和 deep learning 的 项目。 python 的学习给我打开了一个语言的新世界, 后续我就不断的学习一些新的语言去解决不同的问题。 python我最欣赏的一个特性就是让高级数据类型符号化(当然这也是脚本语言的标志之一)。 其次就是python提供了很多语法糖,很多复杂的代码一行就可以搞定。 另外python也支持函数式编程,一行代码不是梦。总之, python是一门特别好的语言, 可以用它做web, 如有flask 和 Django 两大web 框架, 也可以做devops去写自动化的脚本, 当然现在最火的一个方向就是数据分析和人工智能,python 有很多优秀的库。

Javascript 是最近学习的一门语言。 上了一门web system的课,  主要是学习前端开发。 随着web的爆炸式增长, javascript 已经成为了一门不可替代的语言。 javascript最值得学习的特性就是异步编程, javascript就是为异步而生的语言, web的交互性注定了javascript要通过异步来提升性能。 javascript 的另外一个特点就是面向原型(prototype),理解javascript就必须得好好的理解原型。javascript 需要掌握的一个数据类型就是 obeject, 这也是javascript的核心之一。 另外就是得理解javascript的闭包 以及函数的context, 这些不理解的话, 开发会踩很多坑。

接下来我想聊一下linux底下的小众语言 sed 和 awk。 这两门语言在处理字符串方面是非常强大的, 如果涉及到字符串的自动化工作, sed 和 awk 是很好的选择。 sed 可以实现字符串增删改查的自动化, 并且支持强大的正则表达式 , 通常会和 awk, grep一起使用, 可以实现oneline 编程。 awk 也是处理字符串, 但是偏向于 csv格式的数据, 可以进行数据的提取,统计, 聚类等操作。 在实现期间, 我曾经用这两门语言 很简单的完成了一些自动化的脚本, 通常一行代码可以完成很复杂的功能。 所以如果做一些devops的工作, 需要好好的去学习者两门语言。

讲了sed 和 awk, 当然要讲perl。 perl我基本没用过。 但是 perl 在处理字符串方面是最最最强大的。 sed, awk支持的功能, perl 统统支持。 并且sed, awk,grep 的正则表达式语法有些不兼容, 但是直接使用perl就没有这个问题了,并且perl的正则表达式是所有语言中最强大的, perl的正则表达式语法也是语言界的标准。 所以如果要涉及文本自动化工作,perl是个不二选择, 当然perl的学习需要费点心思, 因为perl会用到很多反人类的字符@_$_!@$#

接下来, 我要讲一下我非常喜欢的一门语言, 那就是 ruby。 ruby是一门纯粹的面向对象的语言, 但是我更喜欢ruby的函数式编程。因为用ruby去刷算法题, 很多情况下一行就可以搞定。 当然ruby也是因为ruby on rails 这个web 框架而开始流行的,有不少著名的项目是基于ruby开发的, 如github 。 在web开发方向,  ruby 也是一个不错的选择。

现在,我要谈到一门上古语言了, lisp 要登场了。我是在学习人工智能课程中了解了listp。  lisp 是一门纯粹的函数式编程语言,如果要学习函数式编程 和理解函数式思想, 一定要学习一下lisp。 在lisp, 一切皆函数。 当然lisp中无数的括号(), 可能会把人折磨疯了, 并且要写一个嵌套的for 循环, 在lisp也不是那么简单啦。 Lisp是一门学术性语言, 偏向于人工智能, 如果要说现在lisp 现在的用途, 可能就是编写emac的插件了。

除了Lisp, 我还学习了另外一门非常有意思的语言,prolog。 prolog这个语言算是领域专用语言了, 可以用于逻辑推理。 也就是prolog可以定义一个推理规则, 可以基于规则, 进行事实的推理。

语言有面向对象, 有函数式, 有面向过程,有混合式, 也有领域专用, 没有一个语言可以解决所有问题。 所以开发的趋势是多语言的开发,在架构设计,系统维护和业务建模, 要充分的利用不同语言的特性。 语言是工具, 开发效率才是王道。 所以我个人永远不会在乎语言排行榜, 也不会去争论, 只要好用就好。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容