当前位置:首页 > 公众号精选 > 嵌入式客栈
[导读]前几日,TIOBE官方最新发布了8月的编程语言榜单:  除了“常青树”C语言以外,其他语言的排名及变化同样值得关注: Java依旧流行,因为它是一种面向对象的语言,常用在Android应用程序开发,所以目前仍被许多大公司用于大量的交易应用程序的构建。但由于出现了像Kotlin这样...

前几日,TIOBE 官方最新发布了 8 月的编程语言榜单:

 

 

除了“常青树”C语言以外,其他语言的排名及变化同样值得关注: Java 依旧流行,因为它是一种面向对象的语言,常用在 Android 应用程序开发,所以目前仍被许多大公司用于大量的交易应用程序的构建。但由于出现了像 Kotlin 这样的编程语言(也适用于 Android 开发),Java 的流行度正在下降; Python 的涨势更猛,根据谷歌趋势和 PyPI 流行指数,Python 俨然成为世界上最受欢迎的编程语言之一,尽管这离不开当下数据挖掘和人工智能行业的蓬勃发展; Go 语言在 7 月排名上升至第 13 名后,本月又降至第 18 名;于去年同期相比,Swift 今年以来的市场份额一直呈下滑趋势;而 PHP 已连续 3 个月维持第 8 名的位置。 

诚然,这个排行榜只能反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。但业内关于到底什么是最好的编程语言的讨论,一直没有停过。 这大可不必!虽然现如今编程语言多到遍地开花,可每一种编程语言的兴起都离不开它所适用的技术领域,二者相辅相成。与其非要争个排名的高低,不如我们去多看看多了解,努力提升眼界和实力,或许某天你自己实现的编程语言也有机会上榜 当然,你也可以泼我冷水,认为“计算机语言已经很多了,我们会用就行,干嘛要自己去实现,吃力不讨好!”,或者觉得,“计算机语言,我学起来都挺费劲,更别提去实现它了,简直是痴人说梦!” 这些顾虑看起来都蛮有说服力,但为什么我们最好还是要自己去实现一门编程语言呢?我想从自身的体会来谈一下: 首先,实现一门自己的语言的过程,对能力的提升大到你难以想象! 据我的了解,在实现一门计算机语言的时候,我们有机会接触到编译技术、运行时技术、汇编语言、硬件架构和各种算法基本上是从顶层到底层把技术做穿。有了这些硬功夫,只要你想,拿下 80% 左右的高层次的软件开发工作根本不是问题。 另外,像计算机语言这样的领域,前景真的难以估量。 如果你有关注国内的技术发展,相信你肯定知道我们目前正奋力在补基础技术方面的课,大家都在奔着能拥有我们中国自己的优秀基础软件这个目标努力,比如鸿蒙已经开始了他们的尝试。 

但想实现大规模的突破,就需要更多具备底层编程能力的人才,同时还要能够深刻理解程序在计算机硬件和操作系统之上运行的基础机制,以及计算机语言编译和运行所需要的技术。 而学习如何实现一门计算机语言的过程,是能带来明显提升的最快方法。 说了这么多,不是想让大家头脑一热就盲目地跑去“闭门造车”,而是要给大家推荐一个人——宫文学,他是北京原点代码 CEO ,也是国内最早做 BPM(流程管理平台)和 BI 平台(大数据平台)的创业者之一,还研发过电子表单和低代码开发平台,是个经验十分丰富的研发老兵。 他尤其专注于编译技术领域,熟悉各种语言编译器的实现机制,在编译技术之路上具有丰富的实践经验。之前在极客时间的专栏《编译原理实战》和《编译原理之美》,口碑非常不错,已经超过 15,000 订阅了。 这次他带来了全新的《手把手带你写一门编程语言》专栏,希望能带大家深入到底层技术,手撸一套属于你自己的编程语言,大幅度提升个人开发水平,增加职业选择和眼界。 



早鸟 口令「Program66」立省 ¥40到手仅 ¥89,原价 ¥129
 

值得注意的是,这门课采用的技术是宫老师基于手头正在做的一门实用级语言为素材的,绝不是一门玩具级的语言,而且还会作为开源项目一直进行版本迭代,课程结束后是还能拿这个开源项目作为自己工作的基础 因为考虑到从零实现一门编程语言涉及到的细节和内容会比较多,工作量也比较大,宫老师将课程分为了三个模块,每个单独的模块又分为三个阶段,具体如下: 
  • 起步篇:主要选取少量的语言特性,带大家迅速实现从前到后的技术贯穿,这样就能对计算机语言涉及的各项技术有一个全局性的了解。而这一部分又被分成了三个阶段:
   第一个阶段:用AST解释器把TypeScript跑起来,并在这个过程中掌握业界最常用的词法分析技术、语法分析技术和语义分析技术。   第二个阶段:升级解释运行的机制,带你掌握字节码技术和栈机。   第三个阶段:让程序编译成本地代码运行! 
  • 进阶篇:增加更丰富的语言特性,比如支持更多的数据类型、支持面向对象和函数式编程特性,等等。在这一部分,大家可以拓宽自己的知识面,从而有能力解决更多的基础技术问题,尤其是内存管理这个关键技术。
 
  • 优化篇:主要介绍一下优化技术。通过比较浅显和直观的方式,让大家了解Java、JavaScript等语言所采用的前沿优化技术,洞悉它们最深处的奥秘,从而有能力去承担那些攻坚性的任务。
 

具体每节课的内容,可以来看看目录:


 除了规划好目标和路线,宫老师还会在整个学习路途中,不断带我们补充“武器”和“弹药”,贴心地备好了有上万行实验代码的代码库,从而更好地去实践整个代码的运行。 申请到了粉丝专属优惠: 早鸟优惠 口令Program66立省 ¥40到手仅¥89,即将恢复原价 ¥129

 大佬的带领能帮我们摆脱“摸着石头过河”的窘境,也期待你通过一门个人专属编程语言的实现,能体会到自己技术上的蜕变。
 点击「阅读原文」输入粉丝专享口令「Program66」以早鸟价 立省 ¥40 入手!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

与 BigCode 社区共同创建的 StarCoder2 是在 600 多种编程语言上训练而成,它将推进代码生成、透明度、治理和创新

关键字: 生成式 AI 编程语言 大语言模型

Java是一种广泛应用于软件开发的编程语言,它具有跨平台、面向对象和高度可靠性的特点。在嵌入式系统设计中,Java也有着广泛的应用方案。本文将详细介绍Java在嵌入式系统设计中的应用方案,并分析其优势和挑战。

关键字: Java 软件开发 编程语言

嵌入式开发和Java开发是两个不同的领域,它们在目标、应用场景、编程语言和开发环境等方面存在一些区别。下面我将为您简要介绍这两个领域的特点以及如何选择适合您的开发方向。

关键字: 嵌入式开发 Java开发 编程语言

Java语言是一种面向对象的编程语言,由Sun Microsystems(现在是Oracle Corporation)于1995年推出。Java具有跨平台性和可移植性的特点,广泛用于开发各种应用程序,包括嵌入式系统、移动...

关键字: Java 编程语言 互联网

嵌入式系统是一种专门设计用于特定应用领域的计算机系统,它通常由硬件和软件组成,并且被嵌入到其他设备或系统中,以实现特定的功能。在开发嵌入式系统时,除了了解和选择适合的编程语言外,还需要了解如何测量嵌入式产品的应用性能以及...

关键字: 嵌入式 计算机 编程语言

嵌入式系统设计师是一个专业领域,需要深入理解和掌握各种嵌入式技术以及相关编程语言。本文将介绍嵌入式系统设计师考试中的必备知识、笔记和总结,帮助读者在考试中取得好成绩。

关键字: 嵌入式系统 编程语言 C语言基础

另外,有时候优先级还与C语言编译器有关,同一个表达式在不同的平台上,可能表达的意义是不同的。所以,为了代码的可植移性、正确性以及可读性,振南强烈建议多用一些()。

关键字: C 语言 编程语言 赋值操作

Matlab是matrix laboratory的组合,意为矩阵实验室,软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

关键字: matlab 编程语言 数值分析

PLC梯形图编程的主要要素包括输入、输出和逻辑元件。其中,输入和输出指的是PLC系统与物理世界之间的接口,如传感器和执行器;逻辑元件则用于描述输入和输出之间的逻辑关系。

关键字: PLC 梯形图 编程语言

PLC在电气工程及其自动化技术设计中经常用到,那么作完硬件组态后,就要考虑编程了,不同的个体对于编程采用的语言是不同的,当然针对不同的工艺要求,用不同的编程语言也会有不同的效果

关键字: PLC 编程语言 梯形图
关闭
关闭