首页
学习
活动
专区
圈层
工具
发布

Erlang之父给程序员的两点忠告 | 缅怀

在念本科时,Armstrong有件趣事:他那时已特别喜欢编程和善于调试程序。如果别人程序出了问题,他就会以一杯、两杯、三杯啤酒的“收费”去帮助同学调试程序。 为什么他的贡献如此重要?...Armstrong发明的Erlang在全球范围内是个小众语言,根据TIOBE发布的最新语言排行榜,Erlang排名第47位,市场份额占有仅为0.177%。...老码农的两条忠告 Armstrong在SDCC 2016中国软件开发者大会 Armstrong曾在CSDN主办的“SDCC 2016中国软件开发者大会”上,幽默地分享了他编程20年来对软件开发的一些思考...为什么他会这么说呢? Armstrong曾在《编程人生》中分享过他在编程习惯上有了两个改变,值得我们开发者借鉴。 第一:先思考再编程。...他在编程的20年都犯着一个错:在年轻的时候,会不停地写程序,直到完成。 等写完后他会突然发现:“啊!搞错了!”等到重新编写程序,会再次发现:“噢,程序是错的。”于是又重新编写。

83130

Erlang入门路线

Erlang环境 主要是Erlang环境搭建和Erlang shell的使用 环境搭建 在Erlang官网下载Erlang源码包或者二进制包进行安装,因项目需要选择OTP18/erl7.3。...从源码安装Erlang/OTP的方法参见github仓库 windows安装完成之后需要配置环境变量,最终以在命令行输入erl能进入erlang shell为准 Erlang shell 开始第一个程序...基本语法 学习语法 推荐阅读Erlang之父Joe Armstrong编写的Erlang程序设计这本书,网上有pdf版本。也可参见Erlang学习笔记1。...集成开发环境 分为使用rebar从零构建Erlang项目和调试打包发布这2块。...参考: erlang工作前新手学习指引路线 Erlang 中的并发 – Actor 模型 云栖社区-Erlang入门(二)—并发编程 为什么我们放弃了Erlang技术栈

2.4K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    02.RabbitMQ简介

    因此,在20世纪80年代后期,IBM开始研究开发自己的消息队列软件,实际开发工作始于1990年,三年后,消息队列服务器软件IBM MQ产品系列面世。...从技术上讲,Java应用程序只需针对JMS API编程,选择合适的MQ驱动即可。JMS会打理好其他部分。 问题是你在尝试使用单独标准化接口来胶合众多不同的接口。...此处简短介绍下ErLang,Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,因此非常适合于构建分布式,实时软并行计算系统。...Erlang语言创始人Joe Armstrong当年在爱立信做电话网络方面的开发,他使用Smalltalk,可惜那个时候Smalltalk太慢,不能满足电话网络的高性能要求。...Linux(Ubuntu)下安装 1.安装Erlang sudo apt-get install erlang 2.安装RabbitMQ sudo apt install rabbitmq-server

    1.3K20

    C 语言荣获 2019 年度最佳编程语言称号

    每个人都以为,Python 将会连续第二次获得 TIOBE 的年度编程语言的称号。但这一次偏偏是优秀的老牌编程语言 C ,它凭藉 2.4% 的年增长率荣登榜首获得了这个称号。...这个指数可以用来检查你的编程技能是否仍然能够跟上趋势,或者在开始构建新软件系统时,就应该采用哪种编程语言做出战略性的决策。...51 名到第 100 名的编程语言 下面的编程语言列表是第 51 名到第 100 名的编程语言。...CoffeeScript、Common Lisp、Crystal、cT、Elixir、Emacs Lisp、Erlang、Forth、Hack、Icon、Inform、Io、Korn shell、Ladder...目前,Raku 在 TIOBE 指数中排名第 98 名。 还有很多邮件需要处理。只要有空,你的邮件就会得到回复,请耐心等待。

    79410

    Erlang 入坑指南

    之前程序君写过一篇 Erlang 文章,我用谷歌翻译出来给 Joe Armstrong 老爷子看,老爷子看后大加赞赏,说这家伙搞懂 Erlang 了,我要和他约一组,于是就有了程序君与Joe老爷子对话这篇文章...这篇入坑指南很短,尝试从另一个角度认识 Erlang 。 Erlang 难吗? 难,也不难。 大部分人学习编程是从面向对象过来的。 Erlang 是一门函数式编程语言。...当我们花了很多时间熟悉函数式编程,看懂 Erlang 语法并且明白其并发模型后,一个词总是不停跳出来—— OTP。不论什么语言,总有其一套管用写法来写码。而 Erlang 的惯用写法就是OTP。...Erlang 里用惊叹号 ! 发消息。好了,以上就是异步消息发送。这也是 Erlang 中两个进程之间交流的唯一手段。 ---- 当消息被发给某进程后,该进程如何收消息呢?.... 2> Pid ! hello. Got hello message hello 用 receive 来收消息。你可以在这里用模式匹配来匹配你想要接收的信息,忽略其他的消息。

    2.5K10

    Go 语言并发编程初体验:简洁高效

    前言Go语言是谷歌推出的一种的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。...以下是为什么开发Go的原因:计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。...Erlang 之父 Joe Armstrong 用一张5岁小孩都能看懂的图解释了并发与并行的区别。...goroutine 如何通信在 Go 语言中,channel(通道) 用于在 goroutine 之间进行通信,类似于其他编程语言中的队列或管道。...ch 接收数据。

    18510

    TIOBE 3 月编程语言排行榜

    这也是为什么在 Java、C、C++、Visual Basic .NET 等一众编程语言使用率增幅放缓的情况下,Python 仍能以 2.39% 的增率保持强劲的增长势头。 ?...同时,也有不少技术人表示,C++ 正变得越来越易用,不过这门语言该瘦身了,哪本 C++ 教程不是一千页以上的?!...其他编程语言排名 除此之外,在 TIOBE 榜单的 Top 10 中,C# 自从去年 7 月被 Visual Basic .NET 反超后,市场份额持续下滑,如今 Visual Basic .NET(...在本月编程语言排行榜中,还值得注意的是,PowerShell 进入了 TIOBE 排行榜的前 50 名,位于第 45 名。...TIOBE 编程语言排行榜第 21-50 名 第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序): 4th Dimension/4D, ABC, ActionScript

    1.4K40

    回顾Erlang简要

    Erlang的并发程序是由互相通信的多组顺序进程组成,一个进程就是一个轻量级的虚拟机,可以执行单个的Erlang函数,只能通过发送和接收消息来与其他进程通信。...在捕捉到一个异常后,可以调erlang:get_stacktrace()来找到最近的栈信息。 把二进制型,位串,和位级模式匹配引入Erlang是为了简化网络编程。...在Erlang里,最小的寻址单元是1位,位串里的位序列可直接访问。 运行 运行Erlang程序的方式: 在Erlang shell 中编译执行 Shell 脚本执行,例 #!...Erlang并发程序的错误处理建立在远程监测和处理错误的基础上,重点在补救而不是预防,几乎没有防御性代码,只有在错误后清理系统的代码,即让其他进程修复错误和任其崩溃。...统一化的erlang消息: 1) 抽象了不同线路协议之间的区别 2) Erlang消息无需解析,接收进程不必先解析消息再处理,而http服务器就必须解析就收到的所有消息 3) Erlang消息可以包含任意复杂度的数据类型

    1.6K40

    亿级万物互联新时代的物联网消息中间件 EMQX 调研

    QoS 2 :通过发送方和接收方的多次交互,保证消息有且只有一次。 MQTT 轻量级的发布/订阅传输机制,非常适合为远程连接设备提供可靠的消息通信服务。...node2 t/#client3 node3 t/+/x, t/a 复制代码 当所有的订阅完成后,EMQX 会维护以下主题树和路由表。...安装与部署服务 Erlang 简介 安装部署之前可以简单了解下 EMQX 实现的编程语言 Erlang,这个适用于消息与即时通讯领域的小众语言应该很多人都没听说过,下面可以看下这个语言的特性: Erlang...爱立信工程师 Joe Armstrong 在设计这门语言时充分考虑了电信领域的通讯需求:同时有百万用户并行通讯,对故障事件几乎是零容忍。这也使得 Erlang 在并行通讯能力上远胜其它语言。...如果不对 EMQX 进行二次开发可以简单了解下 Erlang 即可,如果要二次开发或者深入优化可以研究下这个并行通讯的编程语言。

    1.2K00

    基于Erlang语言的视频相似推荐系统 | 深度

    具体产品形态见下图1和图2: ? 图1:电视猫电影详情页的相似影片 ?...为什么要用Erlang语言开发 Erlang语言简介 Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发事件的编程语言和运行环境...Erlang语言的特性 Erlang语言虽然开发于上世纪80年代,但是很多思想是非常超前的,在当前云计算时代具有非常实用的价值,算是在多如牛毛的编程语言大军中独树一帜。...(2) 并发模型 Erlang是一个高并发语言,天生支持高并发,Erlang基于Actor的并发编程模型,进程间通信通过消息传递进行,高效自然可靠。...对Erlang语言有兴趣的读者可以看参考文献2,Erlang的作者写的一本全面介绍Erlang编程的书,非常值得一读。

    1.2K30

    golang五周岁

    去年我在为别人做的一个兼职项目中,无意中发现了go1.2的编译器对全局变量处理不当(未使用bss段)导致的可执行文件过大的问题 [2]。...所以在golang里你见到的是channel,erlang里你见到的是process(actor);golang里的goroutine是匿名的,erlang里的process是有pid的;golang里消息的发送是同步的...erlang之父Joe Armstrong在其 "Programming Erlang" 中写到: We don’t have shared memory. I have my memory....自然是主线程,这是其它编程语言的做法。然而,主线程是否是最佳的选择?不一定。...衷心希望golang在下一个五年能够大放光彩,也希望那些和程序君一样的还在和C语言一起奋斗的一部分可怜人 [10] 可以早日转战在golang的竞技场。神马,程序君为什么不能用golang写代码呢?

    95460

    我终于逃离了 Node

    34,000 个请求,最大延迟在 2 到 300 毫秒之间。...不,Elixir 可以避免这种情况,因为它是建立在 Erlang/OTP 之上的,而 Erlang/OTP 具有很好的并发性。 从一开始,并发及支持它的流程就已经成为 OTP 的一部分。...在本地级别,Elixir/Erlang 程序员一直都在考虑同步、功能简化。在向其他进程发送和接收消息时也是一样。(而且完全用不着红色 / 蓝色函数二分法。)...我认为这就是为什么这么多的人将这些语言描述为“乐在并发中”的原因所在。这就是当你在数据结构方面取得突破,干掉 400 行的复杂逻辑时获得的那种喜悦。...创造 vs 进化 思考一下 Elixir 的历史:首先是由 Joe Armstrong 和他的团队发明的 Erlang,旨在解决电信行业带来的巨大并发挑战。

    66830

    Erlang Concurrent 并发进阶

    进程 使用Erlang而不是其他函数式编程语言的主要原因之一就是Erlang的并发处理能力和分布式编程。并发意味着程序可以在同一时刻执行多个线程。...系统上home目录可以由环境变量$HOME指定——你可能需要自行设置一下 Linux或UNIX可以忽略,只需要在你启动shell并执行cd(不附带任何参数)命令后所显示的目录下创建一个.erlang.cookie...举个例子,在Linux或UNIX系统shell中 $ cd $ cat > .erlang.cookie this_is_very_secret $ chmod 400 .erlang.cookie chmod...在钱的例子中,‘’ping”和“pong”由两个独立的Erlang节点的shell中启动,也就是说spawn可以在不同的节点上启动进程。...在lists模块有很多有用的函数。 一个Erlang进程(概念上的)会一直运行直到它执行receive结构,直到遍历消息队列后没有发现和receive结构中的模式相匹配的消息。

    2.8K40

    面试总结-操作系统

    在页式存储管理方式中地址结构由两部构成,前一部分是页号,后一部分为页内地址w(位移量)。...页长与程序的逻辑大小不相关。不利于编程时的独立性,并给换入换出处理、存储保护和存储共享等操作造成麻烦。...写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。分为普通管道、流管道、命名管道。...命令管道在文件系统中有对应的文件名,命名管道通过命令mkfifo或系统调用mkfifo来创建。 (3)信号:信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。...->加载开机启动程序->用户登录->进入 login shell->打开 non-login shell ? Linux 的启动流程-阮一峰

    1K30

    疯了!C++ 即将超越 Java。。

    后来在 2021 年,Python 也变得势不可挡,超越了 Java。 现在看起来,C++ 则将是下一个超越 Java 的语言。“具有高性能的高级编程是 C++ 表现出色的关键原因。...TOP 10 编程语言 TIOBE 指数走势(2002-2022) 第 21-50 名编程语言排行 第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序): ABC,...值得注意的是,TIOBE 指数并不代表编程语言的好坏或编写代码的多少。 该指数可以用来检查你的编程技能是否还能跟上时代的步伐,或者在开始建立一个新的软件系统时,基于指数对采用何种编程语言做出决策。...TIOBE 指数的定义方式,以及详细榜单信息均可查看官网:https://www.tiobe.com/tiobe-index/ Spring Boot 定时任务开启后,怎么自动停止?...阿里为什么推荐使用 LongAdder? 新来一个技术总监:禁止戴耳机写代码。。 重磅!Spring Boot 2.7 正式发布 Java 18 正式发布,finalize 被弃用。。

    70620

    8 月编程语言排行榜:没有一门语言能比得上 Python

    ◆ 达到历史新高度的 Python 在众多编程语言中,似乎已经没有什么能够阻挡 Python 的步伐。...当然,这也是为什么性能优异的 C、C++ 目前越来越受欢迎的主要原因。” 除此之外,在 Top 10 榜单中,PHP 上升一位,进入 Top 10。...在此广泛应用的趋势下,Rust 在 TIOBE 榜单也接近 Top 20,当前排在第 22 位; Kotlin 回归 Top 30 的榜单,排在第 29 位。...其他编程语言排名 第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序): Agilent VEE, Alice, Arc, ATLAS, BlitzMax, C shell...这个排行榜可以用来考察你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。

    60420

    PHP 是最好的语言吗?

    《现代汉语词典(第5版)》第1823页对“最好“一词给出的解释如下: 最:(1)程度副词,表示某种属性超过所有同类的人或事物 (2)指(在同类事物中)居首位的,没有能比得上的。 最好:最为适当。...shell 编程 直接系统调用 性能很高呀? 不用Objective-C 又如何在 iOS上写出高性能的程序呢? …… ?...Erlang是一门美丽的函数式语言,可以写出很精致程序,以一种精确的方式进行通信,为什么开发一个简单的WEB服务需要费这么大的工夫?...为什么缺陷会被如此的放大呢? 广泛使用 作为最好的编程语言,是否应该是被大众广泛接受并使用的呢?可以求助一下编程语言的使用排行榜。 ? 这是TIOBE 在2016年12月的排行榜。...Packt公布2016年编程语言收入统计排名 http://news.yesky.com/469/105843969.shtml 2.

    3.1K20

    OpenHarmony内核源码分析(进程通讯篇) | 九种进程间通讯方式速揽

    详细看 SysPipe 函数.2.信号(los_signal.c)信号思想来自Unix,在发展了50年之后,许多方面都没有发生太大的变化.信号可以由内核产生,也可以由用户进程产生,并由内核传送给特定的进程或线程...长这样:#define SIGHUP 1//终端挂起或者控制进程终止#define SIGINT 2//键盘中断(如break键被按下)#define SIGQUIT 3//键盘的退出键被按下...共享内存允许两个或更多进程访问同一块物理内存,每个进程都要单独对这块物理内存进行映射.当一个进程改变了这块地址中的内容的时候,该物理页框将被标记为脏页,如此其它进程都会知道内容发生了更改。...对信号量有个形象的比喻 停车场的停车位, 进停车场前看下屏幕上实时显示剩余车位,0表示不能进,只有大于0才能进入,进入后自动减1,出口处也加了监测,出去后剩余车位增加1个.使用场景在多任务系统中,信号量是一种非常灵活的同步方式...事件可应用于多种任务同步场景,在某些同步场景下可替代信号量。使用场景队列用于任务间通信,可以实现消息的异步处理。同时消息的发送方和接收方不需要彼此联系,两者间是解耦的。

    21420
    领券