C++、Ruby和JavaScript

C++

C++最初被称为带类的C, 兼容C的语法,此既是C++得以流行的前提,也是C++某些语法被捆绑的根源。C++的++来源于C语言的递增运算符,代表增加,意义为扩展。

C++的历史

  • C++类的设计思想来源于Simula. Simula为模拟的意思,被称为最早的面向对象语言。对包括C++在内的所有面向对象设计都有非常重要的指导意义,如Java、C#等。

C++的负面讯息

  • 多重继承
    • C++引入了多重继承,在某些时候极其强大,也在某些时候产生负面影响。Java/C#纷纷抛弃,利用接口实现"多重"继承,事实上算单继承,接口是形式意义。

C++的发展

  • C++11让所有人对C++刮目相待,从来没有想到一门编译型编程语言可以变得如此时髦,另外一种声音是"怪兽"或者"缝合怪"。更时髦总有人认为那是臭美,笔者既不崇拜C++,也不贬低C++,学习C++的精华感受到编程语言的魅力就足够了。

C++的强大

  • 学过C++都能感受到它的强大,一则兼容大部分C语法,可以内嵌汇编,二则支持OOP, 可实现当今流行的Java/Python等面向对象语法和类库(C++是简洁的类库设计,不是为了应有尽有),只要想实现没有实现不了的,而且C++是设计为编译型语言,执行效率比Java/Python高。

  • 2023年了,有太多脚本语言得益于强大的硬件性能变得更流行,C++这种语言似乎越来越不流行。越是这样,越感觉到,C++注定称为几十年后一代瑰宝,程序员会永远记得曾经有一种可以直接编译成机器语言且支持OOP、泛型的编程语言,可以在解释型语言无法解决问题的时候提供一种可能。

  • 魔兽世界Wow作为一款曾经流行于2004年到2013年的大型多人在线角色扮演游戏,宏美的故事情节和绚丽的画面让不知多少人为之折腰。单机版Wow服务端可以采用C++编写的TrinityCore、MaNGOS等,可以自己修改源代码改成想要的服务器(仅仅为学习)。顺便提一下,Lua是Wow官方脚本,可以自定义UI界面和战斗脚本。

Ruby

1995年一个日本人发布了Ruby,它是一种简单快捷的面向对象脚本语言,类似于Perl和Python. Ruby on Rails名声大噪,后来又沉寂了。

极致的面向对象设计

  • Ruby将面向对象设计到了极限,任何数值都是对象。如下计算-10的绝对值。
    • c = -10.abs

不同平台的Ruby

  • JRuby和IronRuby是Ruby在Java和.NET平台的产物。JRuby用Java语言实现的Ruby解释器。

JavaScript

1995年,JavaScript诞生了。不得不提到它的标准ECMAScript, 它是一个语言标准,而非具体的语言。JavaScript除了名字有"Java", 其它和Java没任何关系。Netscape为推广自家的LiveScript,命名中包含当时最流行的编程语言Java来蹭蹭热度。

不同的JS

  • 微软的"JavaScript"称为JScript.

  • ActionScript(1996年)是Adobe公司ECMAScript的实现语言,用来编写Adobe电影和应用程序。

  • React和Vue框架是JavaScript类库,用于前端。

  • TypeScript是JavaScript的超集,是C#的发明者又一力作,发布于2012年。它添加了静态语言类型,提高了可靠性。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可以在任何浏览器和任何操作系统上运行。TypeScript支持一些JavaScript无法处理的高级概念,如联合类型、交叉类型、泛型等。

Node.js

  • JavaScript最早作为客户端浏览器脚本。Node.js不是编程语言,是JavaScript解释器环境,为了让服务器端也可解释JavaScript,Node.js诞生之后,前后端都可以用JavaScript, 引爆前后端,包和类库越来越多,npm包管理器应运而生。

  • Node.js是C++编写。

JavaScript引擎

  • WebKit JavaScriptCore: C++编写.

  • Google V8引擎: C++编写.

  • SpiderMonkey: C/C++编写.

  • ChakraCore: C++编写.

JavaScript内嵌于HTML

  • 执行时机
    • 网页HTML中内嵌JS代码,形如<script type="text/javascript"> ... </script>. 解释引擎何时才会执行JS代码呢?根据JS代码所处的位置不同,调用时机不同。在HTML body体的JS代码是网页读取到该语句就执行,在head里面的JS代码被调用时才会执行。

若文章对您有帮助,欢迎关注。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

相关推荐
有梦想的刺儿15 分钟前
webWorker基本用法
前端·javascript·vue.js
P.H. Infinity19 分钟前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天23 分钟前
java的threadlocal为何内存泄漏
java
霁月风27 分钟前
设计模式——适配器模式
c++·适配器模式
caridle35 分钟前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
萧鼎38 分钟前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
学地理的小胖砸39 分钟前
【一些关于Python的信息和帮助】
开发语言·python
疯一样的码农39 分钟前
Python 继承、多态、封装、抽象
开发语言·python
^velpro^40 分钟前
数据库连接池的创建
java·开发语言·数据库
苹果醋344 分钟前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx