C++、Ruby和JavaScript

news/2024/10/6 18:27:13 标签: c++, javascript, java, ruby, python, c, 开发语言
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

C++

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

C++的历史

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

C++的负面讯息

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

C++的发展

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

C++的强大

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

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

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

Ruby

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

极致的面向对象设计

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

不同平台的Ruby

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

JavaScript

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

不同的JS

  • 微软的“JavaScript”称为JScript.

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

  • React和Vue框架是JavaScript类库࿰c;用于前端。

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

Node.js

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

  • Node.js是C++编写。

JavaScript引擎

  • WebKit JavaScriptCore: C++编写.

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

  • SpiderMonkey: C/C++编写.

  • ChakraCore: C++编写.

JavaScript内嵌于HTML

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


c26">若文章对您有帮助࿰c;欢迎关注。助您在编程路上越走越好!

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

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

class="blog-extension-box">

http://www.niftyadmin.cn/n/5691987.html

相关文章

计算机网络:物理层 —— 物理层下的传输媒体

文章目录 传输媒体导向性媒体同轴电缆双绞线光纤光纤分类中心波长光纤规格光纤的优缺点 非导向性媒体ISM 频段无线电波微波激光红外线可见光 传输媒体 传输媒体是计算机网络设备之间的物理通路&#xff0c;也称为传输介质或传输媒介&#xff0c;并不包含在计算机网络体系结构中…

计算机找不到vcomp140.dll,无法继续执行代码如何解决,有什么好的修复方法

1. vcomp140.dll 简介 1.1 定义 vcomp140.dll 是一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;它属于 Microsoft Visual C 2015 Redistributable Package 的一部分。该文件为应用程序提供了 OpenMP 并行框架所需的运行时支持&#xff0c;允许开发者编写并发和多…

Python知识点:如何使用SpaCy进行文本预处理与分析

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用SpaCy进行文本预处理与分析 在自然语言处理&#xff08;NLP&#xff09…

阿里巴巴开源的FastJson 1反序列化漏洞复现攻击保姆级教程

免责申明 本文仅是用于学习检测自己搭建的靶场环境有关FastJson1反序列化漏洞的原理和攻击实验,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在…

自闭症寄宿学校陕西:提供综合发展的教育环境

在陕西这片古老而充满希望的土地上&#xff0c;有一所特殊的学校——星贝育园康复中心&#xff0c;它如同一座灯塔&#xff0c;照亮了无数自闭症儿童及其家庭前行的道路。这所全国规模较大的广泛性发育障碍全托寄宿制儿童康复训练机构&#xff0c;不仅以其专业的康复训练和独特…

swift使用代码结构解析

多模态模型的训练llamafactory也可以训练&#xff0c;但是总的来说&#xff0c;llamafactory对多模态模型的支持还是不太多&#xff0c;ms-swift支持的多模态模型更多&#xff0c;因此有时候去找框架是否够支持相应的模型时会有所困难&#xff0c;所以对这些框架的代码也要稍微…

计算机网络——ftp

在网络通信中&#xff0c;控制连接和数据连接是两种不同类型的连接&#xff0c;它们各自具有特定的功能和用途。 一、控制连接 定义与功能&#xff1a; 控制连接主要用于在通信双方之间传输控制信息&#xff0c;以建立、维护和终止数据连接。它负责协调和管理数据传输的过程&am…

【数据结构】双向链表(Doubly Linked List)

双向链表&#xff08;Doubly Linked List&#xff09;是一种链式数据结构&#xff0c;它的每个节点都包含三个部分&#xff1a;数据、指向前一个节点的指针&#xff08;prev&#xff09;&#xff0c;以及指向下一个节点的指针&#xff08;next&#xff09;。与单向链表不同&…