精华内容
下载资源
问答
  • 2019-02-23 11:51:38

    新的一年开始了,先祝大家猪年诸事顺利。过年期间文章停更几周,今天正式回归。今天的文章可能是一个老生常谈的问题,软件工程师到底是否需要掌握多种编程语言?

    如果一直看我博文的人应该了解,我掌握的编程语言就不少,系统编程的C/C++,Web开发的Java和JavaScript,脚本语言Python和Shell,最近非常喜爱的全能语言Golang,迫于Android开发使用的Kotlin,iOS开发的OC和Swift等等。这么多语言中,比较熟悉的是C,Java,Python以及Golang。C语言更加擅长于底层开发,对于性能要求较高的程序,C语言是不二之选;Java则非常适合组装业务系统,Java框架和包丰富,开发成本较低;Python语言简洁,编写代码可读性强,方便使用;Golang则很中庸,语法简洁,既可以用于系统编程,也可以做Web开发。

    可以看到,每一种编程语言都有自己的特点。就好比拧不同的螺丝需要不同的螺丝刀,没有最好的编程语言,只有最适用的编程语言,针对不同的开发,选择不同的编程语言,可以很方便地解决各类问题。有人说,掌握一门编程语言,我也能做各种程序。如果这么想,可以尝试用Java进行系统编程,你会发现无论在代码的简洁程度以及程序的性能方面,都无法达到期望结果,甚至于有些时候,Java根本没有系统级的接口可以使用。

    那么,多种编程语言该怎么学呢?很多人采用简单粗暴的方式,学习各种语言的语法,这样的学习方式会导致一个结果,当语言越学越多的时候,突然发现,貌似语法搞混了,或者说学完一个忘记一个,不可否认,我也经历过这个过程,之前主要是用C/C++,但是当我学习Python的时候,突然发现,我根本记不住Python,甚至于后来学习Java的时候,也经常和C++搞混。这个时候,可能一些人会认为学习多种编程语言不可行,但是我认为还是方法不对。

    那么,当我们学习多种编程语言时,应该遵循怎样的方法呢?我们可以从几个角度考虑这个问题。

    首先,编程语言各式各样,利用这些语言,语言的发明者希望达到什么效果呢?概括下来,主要是代码的可读性好,语言的陷阱较少,写出的代码缺陷较少,能够让编程人员尽可能少犯错误,简化开发等等,以前常说,代码是写给人看的,而编程语言则是交给人用的。

    其次,现在主流的编程语言都会追求一些编程思想,比如面向对象,闭包,函数式编程,协程,并发编程等,如果我们了解了这些编程思想在软件开发中的作用,再去学习编程语言,你会发现,所有语言都提供了一些语法,帮助我们更快速的实现上面的编程思想。

    另外,编程语言都在追求跨平台的特性,为了实现这个特性,各种语言都会采取一些办法,比如Java的虚拟机,C交叉编译,Golang的跨平台编译等。

    既然编程语言具有共通性,学习编程语言的步骤就变成了先基于某种编程语言学习思想,然后拿着思想去对照着其他编程语言学习,看看他们提供了哪些语法,便于我们达成自己的目的,而语言越学越多,你对这些思想的理解也会越来越深刻,看到自己对这些思想理解的不足之处。

    哪些人应该学习多种编程语言呢?很简单,如果你确定你要搞技术,在软件行业深耕,多种编程语言的学习一定会让你在成长的路上披荆斩棘。好的工程师,应该能够解决工程中遇到的各种问题,而不应该让编程语言限制了你解决问题的能力;如果你希望做架构师,不掌握多种编程语言,很难协调系统相关开发人员的工作;项目经理和产品经理不了解多种编程语言,会限制项目管理能力和产品的想象力。

    所以,没有必要怀疑学习多种编程语言的必要性,怀疑的时间,不如去尝试,你会发现,随着编程语言越学越多,你的代码质量也在逐步提高,你开始思考,用C如何实现Java中的机制,改善自己的C代码质量;如何用Golang替代C来更快更高效的完成系统编程;如何用不同的语言协同开发,构建复杂的系统。

     

    更多相关内容
  • 副标题: 谁发明了那些经典的编程语言 原作名: Go to: the story of the math majors, bridge players, engineers, chess wizards, maverick scientists and iconoclasts : the programmers who created the software...
  • 中国为什么没有自己的编程语言?不是不需要,而是缺乏哲学、数学、语言学和编译原理方面的理论和实践,看明白才知道差距不小。 中国为什么没有编程语言 中国都是应用编程语言,很少有自己开发语言的。应用制造...

    中国为什么没有自己的编程语言?不是不需要,而是缺乏哲学、数学、语言学和编译原理方面的理论和实践,看明白才知道差距不小。

    中国为什么没有自己的编程语言?看懂方知差距大

    中国为什么没有编程语言

    中国都是应用编程语言,很少有自己开发语言的人。应用制造是两码事。所以你问这个问题,就像问一个乘坐火箭到太空旅游的人,火箭是怎么造出来的?很难得到你想要的答案。

    中国为什么没有自己的编程语言?看懂方知差距大

    他们多半不清楚火箭是怎么造出来的

    要形成一门编程语言并不是一件容易的事。计算机和软件程序的创始发明应该属于冯诺依曼(John von Neumann)和图灵(Alan Mathison Turing)。冯诺依曼规定了二进制和计算机的体系架构;图灵从数学上阐明了图灵计算机的逻辑学和数学判定原理。他们规定的基础法则今天仍在应用。

    中国为什么没有自己的编程语言?看懂方知差距大

    冯诺依曼(计算逻辑理论和计算体系架构)和图灵(图灵机)

    最早的编程都是用机器代码的,后来有了汇编语言,但效率都很低。计算机语言开创性工作得算LISP和FORTRAN。LISP是由麦肯锡(John McCarthy)发明的,对语言的主要贡献在逻辑推理,麦肯锡也是人工智能的创始人;FORTRAN是由巴克斯(John Warner Backus )发明的,解决了语法范式、高效编译的问题。

    中国为什么没有自己的编程语言?看懂方知差距大

    麦肯锡(人工智能创始人)和巴克斯(Fortran 语言之父)

    大师做的是原始创新和开创性的工作。这些人都是数学家和逻辑学家,在哲学和语言学方面有很深的造诣,然后才发明计算机和语言。

    大师们多处于战争年代,扎堆来一起走。随着大师相继离世,现在编程语言例如Java和Python,都变得越来越工具化,数学和智能水平都降低了,语言内在逻辑的严谨性也渐渐地消失了。(LISP和后来的Prolog是能进行逻辑推理的语言,现在语言推理只能靠人脑)

    总结下来,发明一门语言要有几个方面的基础:

    哲学基础:语言是反应思想的,那么思想的本质描述能力就依赖于你的世界观,你认为世界到底是一个什么样子的?是面向本体对象的,还是面向过程的?思想怎么表述?事实怎么表述?这些需要你对哲学有一定的研究,才能把世界描述得清楚,否则你的语言反映思想的能力会很差。

    现在的计算机语言基本上都是按照分析哲学的模式来设计的,有兴趣的同学可以看看维特根斯坦的《逻辑哲学论》,你会发现是一本学习面向对象编程语言语言的好书。

    中国为什么没有自己的编程语言?看懂方知差距大

    维特根斯坦和逻辑哲学论

    数学基础:编程语言对数学的要求也是比较高的,这里主要是离散数学和数理逻辑。你要清楚反映我们思想的命题的表达方式,到底需要什么样的数学基础?我们是命题逻辑,描述逻辑还是一阶逻辑?怎么对我们所写的代码进行推理和判断,更好地找出其中会引起错误或者冲突的部分。

    中国为什么没有自己的编程语言?看懂方知差距大

    离散数学和数理逻辑是基础

    语言基础:你还要精通语言学的内容,英语和汉语都是反映人类思想的,编程语言作为一门语言,也要符合语言学的基本规律。由于哲学基础的差异,汉语的表达和这些编程语言多少是有些出入的。

    比如我们说今天很热,我们翻译过来肯定是想说Today is hot。但是这里我们就错误地把今天作为主语了,其实今天应该是时间副词。英语会翻译成It is hot today这里的It指的是天气,也就是热的主体。

    这种语言上的差异反映了我们语言其实缺乏本体论,所以我们古代虽然政治经济发达,但也没有产生科学。西方语言和逻辑则很好地继承了古希腊的语言传统。

    中国为什么没有自己的编程语言?看懂方知差距大

    中西方差距可不小

    技术基础:要想高效率地把语言转换成机器的代码,那么我们还要精通编译原理和底层机器语言。当然你也可以拿Java和C来构建,但是这样两层翻译以后,你的执行效率就会打了些折扣。从这一点上来看,程序的本质是思想翻译,程序员的工作也不过是把思想翻译成高级语言,然后再转译成机器代码。

    中国为什么没有自己的编程语言?看懂方知差距大

    程序员原来是翻译?

    我们当前的很多科技进步还都是表面性质的,因为我们现在技术赶上了,整体的科学素质跟西方比还是差距挺大的。向大师们致敬!革命尚未成功,我辈仍需努力。

    感兴趣请加关注,以后常联系。我以前的文章。

    展开全文
  • 人工智能之父与Lisp编程语言发明人麦卡锡去世网易科技讯 10月25日消息,据国外媒体报道,Lisp语音发明者,人工智能之父约翰·麦卡锡(John McCarthy)于昨天晚上去世,享年84岁。约翰·麦卡锡于1927年出生在波士顿。他...

    cd12d0fe80ef7d6fafd5da11d2c114ca.jpg

    人工智能之父与Lisp编程语言发明人麦卡锡去世

    网易科技讯 10月25日消息,据国外媒体报道,Lisp语音发明者,人工智能之父约翰·麦卡锡(John McCarthy)于昨天晚上去世,享年84岁。

    约翰·麦卡锡于1927年出生在波士顿。他通过加州理工学院的教材自学了高等数学。后来于1951年得到了普林斯顿大学的博士学位。约翰·麦卡锡曾在普林斯顿大学向著名的约翰·纳什(John Nash)学习数学。他在美国和苏联的科学家中首次举办了“电脑象棋”比赛,并通过信号机传送指令和移动棋子。

    约翰·麦卡锡认为,人工智能应该是交互式的,他在1972年获得了计算机界的最高奖项图灵奖,并于1991年获得美国国家科学奖。

    根据他自己的文章显示,他发明Lisp是为了在有限的运算环境中,通过他自己的处理而创造出计算机模组。

    约翰·麦卡锡的工作成果已经保留在了许多用户能看到,以及未曾看到的系统里面,并控制着他们与电脑和互联网互动的方式。

    据悉,约翰·麦卡锡离世的消息首先是由他的女儿通过非正规的渠道发布的,同时,这一消息已经得到了斯坦福大学的确认。(霍珊)

    9c8ace2cef9d0c4a4b408850659e4d14.png

    展开全文
  • 正如现在 90% C/C++渣程序员依然美好地相信C/C++就是上帝, 过去就是汇编程序员鄙视高级语言使用者(当时Fortran, C) 实用主义和面向友好的技术(如鼠标, GUI)发展下来, 而如今七牛云存储坚持CLI风格,文档不对人类...
  • 为什么中国没有诞生世界流行的编程语言

    千次阅读 多人点赞 2019-04-03 08:38:00
    Java, C, C++, Go, JavaScript ...... 这些著名的编程语言都是美帝搞出来的,Python是荷兰人发明的,Ruby 是日本人发明的,Lua...

    Java, C, C++, Go,  JavaScript ...... 这些著名的编程语言都是美帝搞出来的,Python是荷兰人发明的,Ruby 是日本人发明的,Lua 是巴西人发明的。

    到目前为止,还没有一个诞生于中国的、世界流行的编程语言。

    我觉得原因很简单,国内还没有诞生优秀编程语言的土壤。

    编程语言的一般产生于三个地方,大学/研究所,IT公司,有兴趣的个人。 

    美帝的IT行业雄霸全球,引领世界潮流,基础软件像操作系统,数据库,编译器,网络协议栈都是他们搞出来,技术实力超强,他们是新技术的发源地,编程语言层出不穷也很正常。  

    我们的计算机行业发展历史很短暂,人才尤其是顶级人才的储备远不如美国,再加上体制的原因,我对国内的大学和研究所不抱希望。

    中国虽然有很多体量很大的互联网公司, 但主要还是在应用层折腾,使用别人的语言来实现业务。 

    国内的互联网创新大多停留在业务模式,商业模式的创新上面,当实现业务,抢占市场和用户是第一需求的时候,发明新的编程语言根本就不在日程之上。  

    于是发明新的语言只能依赖个人的兴趣,但是编程语言不像框架和类库,只要你开发出来一个好用的/性能高的,自然就会有人去使用,去star, 去传播。

    编程语言不仅仅是语言,它是一个生态系统,光有语法还不行,得有配套的类库,框架,平台。 这一套想搞起来,需要投入大量时间和精力去维护、改进、推广,个人力量是搞不定的,必须得有一个社区。 

    即使如此,也不一定能等到爆发的那一刻, 因为编程语言的流行也有很大的运气成分和偶然性。 

    Java 最初的设计目标是消费类电子产品,经过了初期的失败,走过了很多弯路,不得已才转战互联网,踏上了时代的浪潮,迅猛发展。 

    Python的作者 Guido Van Rossum想用Shell在Amoeba这个操作系统上做点儿系统管理的工作,但是没法调用Amoeba独有的系统API, 用C的话又太重,所以就发明了Python。 他当年绝对想不到Python发展了多年以后居然会随着云计算,人工智能等火爆起来。

    Ruby也是类似,如果没有Ruby on Rails这个框架找到了一个适用场景: 快速、干净地开发Web2.0程序, 估计它还是默默无闻。不过Ruby在移动计算,大数据,AI这些领域就没有什么声音。

    Lua原来一直在游戏领域做脚本语言,这些年才随着OpenResty,Redis 开始进入大众的视野。

    国内的程序员动辄996,被三座大山压迫着,谁有时间和精力愿意去做一个看不到尽头的东西呢? 

    还有,有多少跃跃欲试的人是被《编译原理》给吓回去了呢? ^_^

    不过中国互联网行业发展得很快,二十年前国内能拿得出手的开源软件都很少,也就是LIDS, LVS, MingGUI等寥寥几个,现在仅仅是阿里巴巴就有一大批了, 从Linux内核,JVM,到分布式文件系统,微服务框架,消息队列,有一些产生了世界级的影响力。 

    随着时间的推移,中国的IT业早晚会发展到一个阶段,和美帝并驾齐驱,在这个阶段遇到的问题是现有语言搞不定的, 肯定会有某些公司或者个人站出来,发明新的编程语言,然后推广到全世界。

    互动一下吧,你觉得哪些公司,机构,个人会率先取得突破,做出一个世界流行的编程语言呢?

    你可能会喜欢

    千万别用设计模式?

    我是一个线程

    我是一个Java Class

    CPU阿甘

    面向对象圣经

    TCP/IP之大明邮差

    CPU阿甘

    负载均衡的原理

    一个故事讲完HTTPs

    编程语言的巅峰

    Java:一个帝国的诞生

    JavaScript:一个屌丝的逆袭

    C语言:春节回家,我发现只有我没有对象

    《深入理解计算机系统》这本神书到底好在哪儿?

    640?wx_fmt=jpeg

    展开全文
  • 当我刚开始学习编程时,我在想,如果有一天,中文的编程语言有多好,那么那些英语就不好了. 人们不需要记住单词. 我以为如果用外国必须首先学习汉语才能学习编程. 程序员的第一个程序不是“ hello world”,应该是...
  • 3其实国内是有用中文编程的语言的,那就是...一般都是先入为主,已经会C语言了,你的编程语言没有什么优势为什么别人要采用你的编程语言呢?比如操作系统采用了C语言,至今操作系统都是采用C/C++来实现的。除了...
  • 饮水思源,向每一位编程语言创始致敬。 1.C语言创始 丹尼斯·里奇,C语言之父,UNIX之父。曾担任朗讯科技公司贝尔实验室下属的计算机科学研究中 心系统软件研究部的主任一职。1978年与布莱恩·科尔尼干(Brian ...
  • 之所以有那么多种不同的编程语言存在的原因是,编写程序的初衷其实也各不相同;新手与老手之间技术的差距非常大,而有许多语言并对新手来说太难学;还有,不同程序之间的运行成本(runtime cost)各不相同。 有许多...
  • python是什么类型的编程语言

    千次阅读 2021-02-10 15:42:09
    python是什么类型的编程语言发布时间:2020-04-23 09:53:23来源:亿速云阅读:654作者:小新今天小编给大家分享的是python是什么类型的编程语言,相信很多都不太了解,为了让大家更加了解python,所以给大家总结了...
  • 关注公众号,发现CV技术之美国开发的编程语言?兼容 Go 语言?数据科学而生?以 Python 之形结合 Go 之心?10 月 15 日·上海,这场名「Go+ Together!Go...
  • 四大编程语言之父

    2021-07-19 00:47:41
    其实就在最近,Python 创始 Guido van Rossum、Java 创始James Gosling、C# 创始Anders Hejlsberg、Perl创始Larry Wall四位技术大拿相聚西雅图,共同探讨编程语言的设计与未来发展。4月初,在Puget Sound ...
  • 由于 Lisp 语言的 “过于灵活而神秘存在” 的特性使得 Lisp 成了世界上最受争议的编程语言,实际上独树一帜的 Lisp 也在(针对不同的产品,总有热衷「语言比较」的人们引发语言优势性的争论)类的问题得到庇护,因为...
  • 新手入门该学什么编程语言

    千次阅读 2020-05-14 12:48:38
    热爱的不迷茫 无论这个文章给出任何的建议,其实都不如你真正的热爱,如果你就是热爱硬件,那么去学习汇编是顺其自然的事情。 千金难买我乐意。 当然,如果你清楚的知道自己热爱什么,那么也不会纠结到来看这个...
  • 最近十年诞生的6种新编程语言

    千次阅读 2020-05-11 19:02:58
    在许多用例中,正是新的编程语言推动了创新,帮助构建了真正令惊叹的软件。让我们来看看过去十年中最有前途的那些。 什么是RUST? RUST是一种系统编程语言,由Mozilla创建,于2010年发布。RUST被定位一种令...
  • 编程语言的发展史

    千次阅读 2020-12-30 14:28:19
    编程语言 自从1946年世界上第一台电子计算机问世,人类和机器的交流方式和语言就成为了软件工程师和计算机从业者的主要研究方向,更有效更简便的编程语言成为了软件工程师的新宠儿,伴随着计算机的飞速发展,计算机...
  • 编程语言发展简史

    千次阅读 2022-03-01 21:19:14
    编程最早可以追溯到提花机的使用,那时我国古代为了在衣服上设计出绚丽多彩的图案,研制出了花本提花机。
  • 每个都不同意什么是“最好的编程语言”,语言首先学习,即使这是最现实的答案,因为它取决于您要开发的应用程序类型以及您正在使用的系统。机器人十大流行编程语言世界上有超过1500种编程语言,这是目前机器人技术...
  • 老实说,空谈这个“假如”并没有什么意义,毕竟事实就是歪果仁首先发明编程语言,然后现在的主流编程语言就是以英语作为载体,注意,是以英文作为载体。 事实上,这个问题也问错了,“如果计算机由中国人发明”,...
  • 本文经AI新媒体量子位(ID:QbitAI)授权转载,转载请联系出处萧箫 发自 凹非寺近日,华为要自主研发编程语言的消息忽然在网上火了。据微博博主@IT工程师 称,华为正在研发新的自主编...
  • 原标题:究竟有多少种编程语言?看这个你就知道了! 计算机编程语言可用于将指令传达给计算机。它们基于某些句法和语义规则,定义了编程语言中每种结构的含义。 现在我得到了一个凡是可以找得到的每种编程语言的...
  • 编程与编程语言

    2018-09-17 10:35:38
    相应的语言叫做汇编语言,而这个层次上的编程叫做汇编语言编程。 不同处理器的汇编语言只能用于该处理器编写程序。汇编语言通常都与CPU的指令一一对应,能够以特定方式将指令编码二进制格式,也知道信息在...
  • 计算机编程语言可用于将指令传达给计算机。它们基于某些句法和语义规则,定义了编程语言中每种结构的含义。 现在我得到了一个凡是可以找得到的每种编程语言的列表。我将它们分为以下几类: ● 解释型编程语言 ● ...
  • 机器人学中最流行的10种编程语言

    千次阅读 2021-02-05 13:43:19
    我把C#/.NET放在这里,主要是因为微软3、Java作为一位电子工程师,我总是对一些计算机科学学位课程将Java作为第一种编程语言让学生们学习感到惊讶。Java对程序员隐藏了底层存储功能,这让它比起一些语言(如C语言)来...
  • 编程语言的历史

    2020-03-09 09:31:08
    我是昨天在梳理生态应用开发、低代码开发工具到底需要啥样的开发语言而有感整理的。计算机硬件、操作系统、编程语言,这是计算机工业的三大基础件。咱们今天主要说编程语言。(1)开启1946年,世...
  • 为什么会有这么多的编程语言?不同的cpu有着不同的指令集,这些指令集都是二进制的0和1;后来有了汇编语言,可以认为是二进制指令的助记符表示;再后来有了高级编程语言,它们通过编译器又变回了汇编语言或者机器...
  • 编程语言

    2020-02-10 19:50:24
    编程语言 文章目录编程语言概述分类机器语言汇编语言高级语言编译型语言解释型语言常见编程语言C语言C++语言Java语言...编程语言(programming language)可以简单的理解一种计算机和都能识别的语言。一种计算...
  • 说到编程语言,其实大致可以分成两种,一种是计算机编译器语言,比方说C,C++,优点在于基于计算机硬件特点编写,可以使代码有效高速的运行,特别适合大规模复杂的计算。日常用到的程序有很多,比方说其中之一就是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,557
精华内容 24,222
关键字:

为什么发明编程语言的人却