巴西都发明两门流行的编程语言了!

C语言后记-7 C语言标准的变迁总结 1.首先就是官网(最好的介绍) http://www.lua.org/ 2.我经常去的易百教程 https://www.yiibai.com/lua/ 3.经常去的菜鸟教程 http://www.runoob.com/lua/lua-basic-syntax.html 4.GitHub,最好的深入方法还是看源码 https://github.com/lua/lua ... 阅读详情

1993年,巴西里约热内卢天主教大学的三个老师发明了Lua。

05a450b7b7a5157d9335edaf05f02d1b.png

Lua以其简单性、小尺寸和可移植性,成为嵌入式编程语言之王。

除了游戏这个主战场之外,Luah还入侵了各种软件(TeX排版,Neovim,Nginx......),各种硬件(三星的电视、思科的路由器、TI的计算器,罗技的键盘......)

Lua的故事可以移步我这篇文章《巴西的编程语言都占领全世界了,中国怎么就不行呢?》

20年后,巴西人José Valim又发明了一个编程语言Elixir。

857514ac98148886a1835e233f61b59b.png

这个编程语言知道的人不太多,但是很多著名公司都在使用它。

5add95f7d0de1d48a9635f0a4b127a64.png

Elixir特别适合开发分布式、可扩展的、高并发的应用程序。

Discord的CTO在2017年的一篇文章中说道:

Discord 就是 Elixir 的早期采用者, Erlang VM 是我们想要构建的高并发实时系统的完美候选者,过去两年,系统中的并发用户数已达到近 500 万,每秒有数百万个事件...... 

如果让我从头再选择一次的话,我还会选择Elixir。

在Stackoverflow 2021年的报告中,在38种编程语言中,Elixir是收入排行第三的编程语言。

1

Elixir的作者是José Valim(下文简称何塞),本科在巴西圣保罗大学读电气工程,后来在意大利都灵理工大学拿到硕士学位。

61294f6130b9115e6ff2d6fc2dfba314.png

在意大利时他遇到了现在的波兰妻子,然后搬到了波兰。

在发明Elixir之前,何塞已经是著名Web框架Ruby on Rails团队的核心成员。

bd0ffefc21817b75836adfb670ef0e35.png

可惜的是Ruby语言在并发,多核的表现不咋滴,没有解决并发问题的适当工具。

这让何塞有点沮丧,他不断研究其他解决方案,直到有一天,它发现了Erlang虚拟机。

Erlang虚拟机已经解决了高并发和分布式的问题,为什么不把Ruby移植上去呢?

但是Ruby的思想和概念和Erlang格格不入,没法子的何塞最终决定:发明一门新的编程语言Elixir。

在设计上,何塞借鉴了Erlang,Clojure和Ruby的思想。

Erlang :函数式思想、基础设施

Ruby:优雅的语法、标准库、命名方式

Clojure :基于协议的多态实现

大家可能觉得一个大牛发明一门新语言是很容易的,其实并非如此。

何塞并不是科班出身,也缺乏编译器的知识,也得从头学词法分析,语法分析......

他看了几本经典编译书籍如龙书,更关键的是阅读了Erlang、Ruby、JavaScript等语言的解析器源代码,然后才开始动手。

即使如此,何塞依然步履维艰,他的第一个Elixir原型非常糟糕,就像迷失在了山洞中的原始人,到处探索。

等到第一个版本发布,已经是两年以后了。

一门新语言出现以后,如果获得众人关注是最难的一步。

在这一点上,何塞充分学习了Rails创始人DHH的营销能力。

何塞开始走出去,在各种活动上宣传Elixir,接受各种采访介绍Elixir,写各种文章为Elixir造势。

提到Elixir,就不能不提Web框架Phoenix。

他们像当年的Rails一样,录制了一个视频:在15分钟内克隆一个Twitter。

fce34741a1baa7b095f240cdf752ed70.gif

这个视频引发了不小的关注度,成功地引发了对Elixir和Phoenix的讨论,吸引了更多人来使用Elixir。

2

说到这里,可能大家会问:这个Elixir到底有什么神奇之处呢?

一般来说,我们要开发一个交互很强的Web应用,通常会这么来构建:

4282bfafc11e0e0e0bed91073678218a.png

在前端有各种框架和类库,如React,Vue等,在浏览器端处理:

1.数据模型,2.控制逻辑,3.视图模板 

后端主要提供数据接口,前端的JavaScript负责展示和逻辑。

让人吃惊的是:使用Phoenix的LiveView,这三个东西都被放到了服务器端,实现了服务器端的渲染。

ac5d323320290ab0ccd4731e5ae3c156.png

猛一看,这很难理解,举个简单的例子,我们现在需要实现一个计数器应用:

c9f0c6421b990cec724b4776667a6ebd.png

在服务器端:

数据模型:就是那个Count数字。

客户逻辑:就是一些函数,来处理事件,事件是“增加按钮被点击”(increment event)或者“减少按钮被点击” (decrement event)

视图模板:用来渲染这个简单的界面

当用户点击“增加”按钮时,一个事件(increment event)通过websocket发给服务器端。

53b166b93e278ee6b211df41fa52ded9.png

服务器端收到后,调用服务器端的相关函数,修改数据模型,给count加一,然后渲染新视图,再发给浏览器。

浏览器收到新数据,就会展示出来:

178c071e7f9945b4f4f6f4c84767069d.png

当然,服务器肯定不会把所有的视图都发回给浏览器,它会做优化,使用状态跟踪,diff算法,从而发送最少的数据。

在这个例子中,只需要告诉浏览器,那个count的值变了,仅仅更新这个值就可以了。

你可能觉得这种处理方式非常疯狂:对每个用户都保存这么多信息,用户多了该怎么办啊?怎么扩展啊?

5ec1b130a6338c4f0b3da1c32db63db5.png

这就要涉及到Elixir的关键了,和其他编程语言不同,Elixir的process(如图中的Live View Process)并不是操作系统的进程(Process)或者线程(Thread)!

Elixir的process是非常轻量级的,在单台服务器上可以几十万,甚至上百万个process。

这也正是Erlang平台的优势所在!

使用Phoenix的LiveView,在代码复杂度不高的情况下,就实现了媲美单页应用良好的用户体验,可以说是非常漂亮。

373e0fba3215b1e1815014d5839df86a.png

所以发明人何塞说:Elixir非常适合开发一切运行在socket上应用!

3

上世纪90年代,你写一段代码,放在那里什么也不做,两年以后,新的硬件就会让它的性能提升一倍。

现在摩尔定律失效了,CPU走向了多核,系统走向了分布式。

多核和分布式让编程变得非常麻烦,但是Elixir用函数式编程的不变性和Erlang平台正好解决了这两个问题。

如果你也有类似的需求,强烈建议关注下这门独特的编程语言,它也许就是帮助你击败竞争对手的秘密武器。

全文完,觉得不错的话点个赞或者在看吧!

参考资料:

https://www.youtube.com/watch?v=U_Pe8Ru06fM(本文中LiveView例子的来源)
https://www.youtube.com/watch?v=lxYFOM3UJzo

https://www.youtube.com/watch?v=IZvpKhA6t8A

近期精彩:

巴西的编程语言都占领全世界了,中国怎么就不行呢?

继Linus之后,又一个动辄就“F**k You”的技术天才和营销大师出现了!

世界最强计算机,极少人见过,让程序员高薪工作一辈子!

这个波斯人的名字,成了无数程序员的梦魇!

四次刮骨疗毒,苹果是无可争议的卷王!

lua:Lua很棒,Lua是巴西人发明的,这些都令我不爽,但是还不至于脸红,最多眼红。让我脸红的是Lua的源代码,百分之一百的ANSI C,一点都不取代。在任何支持ANSI C编译器的平台上都可以轻松编译通过。我试过,真是一点废话都没有。 1W行。下载地址:http 立即下载

相关推荐

红米12C刷机避坑指南:NV数据损坏的修复与系统版本选择

本文提供了红米12C刷机过程中避免NV数据损坏的详细指南,涵盖系统版本选择、SP刷机工具使用和fastboot命令修复。重点分析了NV数据损坏的原因与表现,并给出通过工程固件和深度修复技巧解决基带未知、IMEI丢失等问题的实操方案,帮助用户安全完成刷机。

cuda7parallel的博客 1075

Lua让我脸红

Python是荷兰人写的,Ruby是日本人写的,Lua是巴西人写的,我这个中国人只能在这里脸红。   Lua是所有动态语言中间平均效率最高的一个。它最初是以Library的形式存在,纯粹只是用作C/C++的一个扩展。现在不仅发展出了解释器,还发展出了编译器。游戏开发里Lua是使用最广泛的脚本语言。当世界上第一本Lua图书上市销售的时候,一位读者评价道:“Lua is a real gem.”

孟岩 3万+

RoboMaster新手必看:用STM32 HAL库搞定大疆M3508电机正反转(附完整代码)

本文详细介绍了如何使用STM32 HAL库驱动大疆M3508电机实现正反转控制,包括硬件准备、PWM配置、电机校准及完整代码实现。特别针对RoboMaster新手常见问题提供了解决方案,如电机抖动、不转等故障排查,并分享了缓启动、DMA更新等进阶技巧,帮助开发者快速掌握电机控制核心技术。

weixin_42519985的博客 226

转载和积累系列 - Lua常用

Lua简介:  Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序

自娱自乐的代码人 4406

汽车零部件智能装配:C#+YOLOv8实现螺栓漏装检测与齿轮错位识别(附PLC通信与机械臂控制)

YOLOv8:小目标检测的最优解相比YOLOv7,YOLOv8的C2f特征融合网络对小目标(5-10mm螺栓)检测精度提升12%,且推理速度快8%;支持大输入尺寸(不显著增加耗时),可放大螺栓细节;官方提供yolov8n.pt(nano版),在边缘计算盒上能跑40+FPS,满足实时性。C#:工业软件的“兼容性核心”主流PLC(西门子S7-1200/1500)、机械臂(ABB、KUKA)的SDK多基于.NET开发,C#可直接调用,避免跨语言通信延迟;多线程管理成熟(Task。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1146

毕业设计——基于卷积神经网络的高速公路团雾智能识别系统设计与实现(数据集+源码+可视化+综述)

同时,也可以结合其他技术,如雷达、红外传感器等,实现多源信息的融合与协同处理,提高系统的可靠性和稳定性。实验结果表明,该系统能够实现对高速公路团雾的准确、快速识别,为高速公路的安全运行提供了有力保障。团雾作为一种常见的气象现象,具有突发性、局地性和消散迅速的特点,对高速公路的行车安全构成严重威胁。通过设计合适的网络结构,如增加卷积层、池化层等,实现对图像中团雾特征的自动学习和提取。预处理:对采集到的图像进行去噪、增强等预处理操作,以提高图像质量,降低后续处理的难度。读取数据,随机分为训练集和验证集。

abackcab的博客 665

为什么中国没有诞生世界流行的编程语言?

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

码农翻身 8199

YOLOv11多模态融合实战:基于YOLOFuse的RGB与红外线(IR)协同检测技术解析

本文深入解析了YOLOv11多模态融合技术,重点介绍基于YOLOFuse框架的RGB与红外线(IR)协同检测方法。通过动态权重分配、跨模态特征对齐等创新设计,实现在低光照等复杂环境下的高精度目标检测,mAP提升高达37%。文章包含实战案例、训练技巧和部署方案,为计算机视觉开发者提供完整的多模态融合解决方案。

weixin_29038345的博客 290

python谁发明的1003python谁发明的_编程语言简史:有人不喜欢花括号,于是他发明了 Python...

编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer为我们进行了整理。(本文节选)1957年约翰·巴克斯(John Backus)创建全世界第一套高阶语言FORTRAN,这是程序员真正意义上使用的第一种语言。1959年葛丽丝·穆雷·霍普(Grace Hopper)发明了第一个面向企业的面向业务的编程语言,为“面向商业的通用语言”...

weixin_33597080的博客 154

【推荐100个unity插件之24】实现2d交互式草树叶和随风飘动的效果——pixelgraphics插件

【推荐100个unity插件之23】实现2d交互式草树叶和随风飘动的效果——pixelgraphics插件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1682

AI在生物学领域的应用:基因序列分析和人工智能生物学

好的,非常感谢您提供的这个精彩的主题和详细的要求。我会全力以赴,遵循您的要求写一篇内容丰富、结构清晰、论述深入的专业技术文章。现在,就让我们开始这篇关于"AI在生物学领域的应用:基因序列分析和人工智能生物学"的博客文章吧! 1. 背景介绍 1.1 生物信息学的兴起

AI天才研究院 1413

python谁发明的1003python谁发明的_编程语言简史:有人讨厌花括号,于是他发明了Python...

编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer 为我们进行了整理。1800年Joseph Marie Jacquard 教会了一台织布机读穿孔卡片,制造出了第一个高度多线程的处理单元。他的发明受到了预见天网(Skynet)诞生的纺织工人的强烈反对。1842年Ada Lovelace(英国诗人拜伦之女)为计算程序拟定“算法”...

weixin_39557402的博客 157

30天入门 SAP BTP 开发系列之八:动手在 SAP BTP 上开发第一个 ABAP 透明表

ABAP Cloud 环境下创建透明表的方法与数据迁移实践 本文介绍了在 SAP BTP ABAP 环境中创建透明表并迁移数据的完整流程。与传统的 SE11 事务码不同,ABAP Cloud 需通过 ABAP Development Tool 创建数据库表,使用代码定义表结构。作者详细演示了如何: 在开发包中创建名为 Z优快云_TRAVEL 的透明表 使用 ABAP 代码定义表字段和约束 通过 ABAP 类实现数据从标准表/DMO/TRAVEL 到新建表的迁移 验证数据迁移结果 文中还提供了相关技术概念的

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1782

python语言是谁发明的咋读-Python的发明,竟然是因为他不喜欢花括号。

原标题:Python的发明,竟然是因为他不喜欢花括号。 编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?今天来和达妹一起看下吧! 编程语简史 11800年Joseph Marie Jacquard教会了一台织布机读穿孔卡片,制造出了第一个高度多线程的处理单元。他的发明受到了预见天网(Skynet)诞生的纺织工人的强烈反对。21842年Ada Lo...

weixin_37988176的博客 281

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

编程语言简史:有人不喜欢花括号,于是他发明了 Python

编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer为我们进行了整理。(本文节选)海风教育投诉 https://www.hfjy.com/feedback 海风教育在线辅导0元一对一试听课等你来领取,领取课程方法: 1、私信留下您的手机号和姓名,需要补习的科目。 2、也可以在海风教育官网留下您的手机号领取 http...

weixin_43932460的博客 171

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

漫画 | 30年后,中国就会有自己的编程语言!

张大胖刚学编程,有一天,他对流行的编程语言做了一个统计。他吃惊地发现,没有一个编程语言是中国发明的。他决定去找上帝问问,这到底是怎么回事。比如现在非常流行的PythonJavaScript...

码农翻身 1536

python的发明者会几种编程语言_编程语言简史: 有人不喜欢花括号, 于是他发明了 Python...

编程语言简史: 有人不喜欢花括号, 于是他发明了 Python编程语言有上千种, 但是流行的不过 10 来种, 那些我们经常使用的编程语言都是谁在什么时候创造出来的呢? Casper Beyer 为我们进行了整理.(本文节选)1957 年约翰. 巴克斯 (John Backus) 创建全世界第一套高阶语言 FORTRAN, 这是程序员真正意义上使用的第一种语言.1959 年葛丽丝. 穆雷. 霍普 ...

weixin_39932458的博客 285

pythonpython语言是谁发明的_编程语言简史:有人不喜欢花括号,于是他发明了 Python...

编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer为我们进行了整理。(本文节选)1957年约翰·巴克斯(John Backus)创建全世界第一套高阶语言FORTRAN,这是程序员真正意义上使用的第一种语言。1959年葛丽丝·穆雷·霍普(Grace Hopper)发明了第一个面向企业的面向业务的编程语言,为“面向商业的通用语言”...

weixin_39542936的博客 563

编程语言简史

编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer 为我们进行了整理。1800年Joseph Ma...

爱编程 305

编程语言简史:有人讨厌花括号,于是他发明了Python

关注「实验楼」,每天分享一个项目教程   编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer 为我们进行了整理。1800年Joseph Marie Jacquard 教会了一台织布机读穿孔卡片,制造出了第一个高度多线程的处理单元。他的发明受到了预见天网(Skynet)诞生的纺织工人的强烈反对。1842年Ada Lovelace

实验楼 633

编程fi什么意思_编程语言简史:有人不喜欢花括号,于是他发明了 Python

编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer为我们进行了整理。(本文节选)1957年约翰·巴克斯(John Backus)创建全世界第一套高阶语言FORTRAN,这是程序员真正意义上使用的第一种语言。1959年葛丽丝·穆雷·霍普(Grace Hopper)发明了第一个面向企业的面向业务的编程语言,为“面向商业的通用语言”...

weixin_39960116的博客 395
上一篇: 漫画 | 20年了,走投无路的CPU终于躺平了!
下一篇: 卧槽!!96W薪资!直接封神!!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值