c++ / python / java / PHP / SQL / Ruby / Objective-C / JavaScript 发展史

c++发展史

        C++是由丹尼斯·里奇和肯·汤普森在1970年代早期开发的C语言的扩展。C++最初被称为“C with Classes”,是在1980年代初期由比雅尼·斯特劳斯特鲁普开发的。

        1983年,斯特劳斯特鲁普将C with Classes重新命名为C++。在1985年,C++编译器的第一个版本被发布。 随着时间的推移,C++得到了广泛应用,在计算机科学和工程领域中成为了一种重要的编程语言。

        在1990年代,C++得到了更广泛的应用,包括游戏开发和操作系统开发。C++的特性和效率使其成为高性能和实时应用程序的理想选择。随着计算机处理能力的提高,C++仍然保持着其在程序设计中的重要地位。

        在21世纪,C++继续发展。现在,C++已经成为了一种跨平台的编程语言,支持各种各样的应用程序,包括嵌入式系统、桌面应用程序、移动应用程序等。C++标准不断更新,新特性和改进的内存管理技术使得C++依然是一个流行的编程语言。

python发展史

        Python是一种高级编程语言,最初由Guido van Rossum于1989年在荷兰国家数学和计算机科学研究所开始开发。Python的设计目的是创建一种易于阅读、易于理解、易于学习和易于使用的语言。

Python的发展经历了以下几个阶段:

1. Python的第一个版本(0.9.0)于1991年发布。这个版本只有一些基本的语言特性,例如整数、浮点数、字符串和列表等。

2. Python 1.0于1994年发布,这个版本增加了模块系统、异常处理和函数式编程工具等特性。

3. Python 2.0于2000年发布,这个版本包含了自动垃圾回收机制和列表推导式等新特性。

4. Python 3.0于2008年发布,这个版本引入了一些不兼容的新特性并移除了一些旧特性,例如print语句被替换为print函数。

5. 目前最新的版本是Python 3.10。Python 3.x版本的发展主要集中在提高性能和改进语言特性。

Python的成功得益于它的易用性、可移植性和广泛的应用领域,例如Web开发、数据科学、人工智能和机器学习等。

java发展史

Java发展史可以追溯到20世纪90年代初期。以下是Java发展的重要里程碑:

1991年:Sun Microsystems的工程师James Gosling和他的团队开始开发Java语言。

1995年:Java 1.0正式发布,成为第一款跨平台的面向对象语言。

1996年:Java 1.1发布,增加了内部类、反射、JAR文件等功能。

1998年:Java 2发布,将Java分为标准版、企业版和移动版,提供了更多的API和库,如Swing、JDBC、JavaBeans等。同时也发布了Java虚拟机(JVM)的规范。

2004年:Java 5发布,增加了自动装箱拆箱、枚举、注解、泛型等特性。同时,发布了Java平台的SE、EE和ME三个版本。

2006年:Sun Microsystems发布了开源Java的实现——OpenJDK。

2009年:Oracle公司收购了Sun Microsystems,成为Java的所有者。

2011年:Java 7发布,增加了小数点数值、字符串开头条件判断、try-with-resources等特性。

2014年:Java 8发布,引入了Lambda表达式、Stream API、函数式接口等特性。

2017年:Java 9发布,引入了模块化系统和增强的JShell交互式编程工具。

2020年:Java 14发布,增加了Switch表达式、Records等特性。

Java一直在发展中,不断更新和完善。开发者和用户可以期待Java在未来的发展中,继续为应用程序开发提供更多的功能和便利。

PHP简介(双语版)

        PHP代表超文本预处理器,是web开发中常用的编程语言。它是一种服务器端脚本语言,意味着它在web服务器上运行,并处理发送到用户浏览器的数据。PHP通常与HTML、CSS和JavaScript结合使用,以创建动态网页和web应用程序。它是开源的,拥有庞大的开发人员社区,这使它成为网络开发的热门选择。

        PHP, which stands for Hypertext Preprocessor, is a commonly used programming language for web development. It is a server-side scripting language, meaning that it runs on the web server and processes data to be sent to the user's browser. PHP is often used in conjunction with HTML, CSS, and JavaScript to create dynamic web pages and web applications. It is open-source and has a large community of developers, making it a popular choice for web development.

SQL发展史

SQL发展史可以分为以下几个阶段:

1. 早期阶段:20世纪70年代,IBM的工程师Donald Chamberlin和Raymond Boyce发明了结构化查询语言(SQL)。

2. 标准化阶段:1986年美国国家标准学会(ANSI)定义了SQL标准,并命名为“SQL-86”,它成为了第一个SQL标准。

3. 扩展阶段:在SQL-86的基础上,ANSI在1989年发布了SQL-89,其中增加了一些功能,如外关联和嵌套查询。

4. 增强阶段:1992年,ANSI发布了SQL-92,这个标准包括了更多的功能,如存储过程、触发器、游标和完整性约束等。

5. 发展阶段:自此以后,SQL继续不断的发展,出现了一些商业数据库厂商开发各自的扩展功能,如Oracle的PL/SQL和Microsoft的T-SQL等。

6. 云计算阶段:随着互联网和云计算的发展,新的SQL版本和衍生版本不断涌现,如MySQL、PostgreSQL、SQLite、MariaDB等,这些数据库既可以在本地安装,也可以在云中运行。

总的来说,SQL在不断的演变和发展中,成为了关系型数据库的标准查询语言,广泛应用于各种领域,包括金融、医疗、教育、企业等。

Ruby发展史

        Ruby 是一种动态的面向对象编程语言。Ruby 的创始人是日本人松本行弘(Yukihiro "Matz" Matsumoto),他在 1993 年开始设计 Ruby 语言,并于 1995 年首次公开发布了该语言。以下是 Ruby 发展历程的一些重要事件:

- 1995 年 - Ruby 0.95 发布,这是首个公开的 Ruby 版本。
- 1996 年 - Ruby 1.0 发布,官方稳定版本。
- 2000 年 - RubyConf 2000 在美国召开,为 Ruby 社区的发展打下了基础。
- 2003 年 - Ruby on Rails 框架发布,极大地提升了 Ruby 的流行度和应用范围。
- 2005 年 - Ruby 1.8.3 发布,新增了很多功能和改进,成为 Ruby 1.8 系列的最后一个版本。
- 2007 年 - Ruby 1.9.0 发布,新增了一些重要的特性,比如编码支持、块结构改进、正则表达式、并行能力等。
- 2013 年 - Ruby 2.0.0 发布,引入了新的 GC 算法和语言特性,比如引入了命名参数和可变参数等。
- 2015 年 - Ruby 2.3.0 发布,引入了冻结字符串和 Safe Navigation Operator 等新特性。
- 2019 年 - Ruby 2.7.0 发布,增强了模式匹配和了解枚举等特性。

目前,Ruby 已经成为一种流行的编程语言,被广泛应用于 Web 开发、桌面应用、游戏开发、数据处理等领域。

Objective-C发展史

        Objective-C是一种基于C语言的面向对象编程语言,由Brad Cox和Tom Love在20世纪80年代开发。它最初被用于下一代操作系统NeXTSTEP的开发,后来被Apple公司收购并成为Mac OS X和iOS开发的主要语言之一。

以下是Objective-C的发展史:

- 1983年,Brad Cox开发出第一个版本的Objective-C,并在ACM OOPSLA会议上发布了一篇论文,推广了这种语言。

- 1984年,Brad Cox和Tom Love共同开发了第二个版本的Objective-C。这个版本已经具备了现代Objective-C的许多特性,如消息传递机制和动态绑定。

- 1986年,NeXT公司成立并开始开发NeXTSTEP操作系统。Objective-C成为了NeXTSTEP的主要编程语言。

- 1992年,Objective-C的第一个标准化版本发布,称为“Objective-C 1.0”。

- 1997年,苹果公司收购了NeXT公司,并从NeXTSTEP操作系统中取得了Objective-C。苹果公司开始在Mac OS X和iOS上使用Objective-C。

- 2007年,苹果公司发布了第一代iPhone,并在iOS上使用Objective-C进行应用程序的开发。Objective-C也成了iOS应用程序开发的主要语言之一。

- 2011年,苹果公司发布了Swift编程语言,作为Objective-C的替代品。Swift被设计为更现代、更安全、更易学的语言。

- 目前,Objective-C仍然被广泛使用,特别是在老的iOS应用程序中。然而,随着Swift的流行,Objective-C逐渐被Swift所取代。

JavaScript发展史

        JavaScript是一种脚本语言,最初是由网景公司开发和推广的。下面是JavaScript发展的主要阶段:

1. 1995年,Brendan Eich在10天内开发了JavaScript,并在网景公司Navigator 2浏览器中发布。这是JavaScript第一个版本。

2. 1996年,微软推出了JScript,这是他们自己的JavaScript实现。

3. 1997年,欧洲计算机制造商协会(ECMA)发布了ECMAScript标准,这是JavaScript的基础。

4. 自1997年以来,JavaScript经历了多个版本和更新,包括ECMAScript 2、3、4、5、6、7、8和9。其中,ECMAScript 6(也称为ES6或ECMAScript2015)是一个重要的版本,增加了许多新的特性和语言构造。

5. 在2010年代,JavaScript的重要性越来越高。由于移动设备和Web应用的普及,JavaScript成为了广泛使用的编程语言之一。

6. 在2016年,TypeScript被推出。它是JavaScript的超集,提供了更好的类型系统和语言构造支持。

总之,JavaScript是Web开发中最重要的语言之一,随着时间的推移,它变得更加强大和广泛使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/19578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】常用的基本指令

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 如果文章对…

C# Microsoft消息队列服务器的使用 MSMQ

先安装消息队列服务器 private static readonly string path ".\\Private$\\myQueue";private void Create(){if (!MessageQueue.Exists(path)){MessageQueue.Create(path);}}private void Send(){Stopwatch stopwatch new Stopwatch();stopwatch.Start();Message…

RxJava 复刻简版之二,调用流程分析之案例实现

接上篇:https://blog.csdn.net/da_ma_dai/article/details/131878516 代码节点:https://gitee.com/bobidali/lite-rx-java/commit/05199792ce75a80147c822336b46837f09229e46 java 类型转换 kt 类型: Any Object泛型: 协变: …

web基础与http

一,dns与域名 网络基于tcp/ip协议进行通信和连接的,其中主机以ip地址做固定的地址标识,用以区分用户和计算机。ip地址是由32位二进制数组成,不方便记忆。为了方便记忆,采用了域名。但是网络通信的唯一标识是ip地址&…

K8s的详细介绍

1.编写yaml文件的方式 2.yaml里面的内容介绍 Pod实现机制:(1)共享网络(2)共享存储 共享网络:通过Pause容器,把其他业务容器加入到Pause容器里面,让所有业务容器在同一个名称空间中,…

【Spring Cloud 三】Eureka服务注册与服务发现

系列文章目录 【Spring Cloud一】微服务基本知识 Eureka服务注册与服务发现 系列文章目录前言一、什么是Eureka?二、为什么要有服务注册发现中心?三、Eureka的特性四、搭建Eureka单机版4.1Eureka服务端项目代码pom文件配置文件启动类启动项目查看效果 E…

海量小文件传输慢的原因以及对应的优化方案

在日常工作中,我们经常遇到需要传输一些小文件的情况,但是当小文件的数量很多的时候,为什么小文件传输的速度就会变得很慢呢?为什么复制许多较小的文件时,小文件传输效率就会降低呢?针对这些问题&#xff0…

Mybatis插件

文章目录 1. 如何自定义插件1.1 创建接口Interceptor的实现类1.2 配置拦截器1.3 运行程序 2. 插件原理2.1 解析过程2.2 创建代理对象2.2.1 Executor2.2.2 StatementHandler2.2. 3ParameterHandler2.2.4 ResultSetHandler 2.3 执行流程2.4 多拦截器的执行顺序 3. PageHelper3.1 …

聊天系统登录后端实现

定义返回的数据格式 # Restful API from flask import jsonifyclass HttpCode(object):# 响应正常ok 200# 没有登陆错误unloginerror 401# 没有权限错误permissionerror 403# 客户端参数错误paramserror 400# 服务器错误servererror 500def _restful_result(code, messa…

Matlab Optimization Toolbox中的遗传算法工具包(GA)

matlab optimization 中使用了GA求解器 默认的是小于等于 找到GA 工具包 找到 APP选择 Optimization Tool 选择Solver ga - Genetic Algorithm 应用GA solver 定义适应度函数(Fitness function)与问题约束(Constraints) example one 优化函数 sin(x) 2 * cos(x)极其重要的…

windows10 设置代理

场景:同一个办公室,只有A的电脑有权限访问网站 http://10.129.129.129:5601, 那办公室其他B,C同学想访问 http://10.129.129.129:5601,需要怎么处理? A 同学电脑安装代理软件: 1. 下载wproxy IMFirewall, …

iMX6ULL驱动开发 | 让imx6ull开发板支持usb接口FC游戏手柄

手边有一闲置的linux开发板iMX6ULL一直在吃灰,不用来搞点事情,总觉得对不住它。业余打发时间就玩起来吧,总比刷某音强。从某多多上8块儿大洋买来一个usb接口的游戏手柄,让开发板支持以下它,后续就可以接着在上面玩童年…

信息学奥赛一本通——1258:【例9.2】数字金字塔

文章目录 题目【题目描述】【输入】【输出】【输入样例】【输出样例】 AC代码 题目 【题目描述】 观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。 在上面…

VS2019编译安装OpenMesh8.0

文章目录 一、简介二、相关准备三、编译安装四、举个栗子参考资料一、简介 多边形网格一直以来就是交互式3D图形应用程序中最合适的几何表示,它们足够灵活,可以近似任意形状,并且可以通过当前的图形硬件有效地处理,即使在今天的低成本电脑上也是如此。OpenMesh便是其中一种…

Java-很深我只知其一-泛型

Java-很深我只知其一-泛型 目录 泛型历史 泛型类/泛型接口 泛型方法 泛型属性 泛型约束 泛型历史 JAVA 泛型(generics)是 JDK 5 中引入的一个新特性, 允许程序员在编程时指定类型参数,使编译器可以在编译代码时检测到非法的类型。泛型的…

相交链表 LeetCode热题100

题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 题目数据 保证 整个链式结构中不存在环。 思路 使用两个指针x,y同时遍历两个链表A和B。 当两个链表有相交节点时&am…

小研究 - 主动式微服务细粒度弹性缩放算法研究(四)

微服务架构已成为云数据中心的基本服务架构。但目前关于微服务系统弹性缩放的研究大多是基于服务或实例级别的水平缩放,忽略了能够充分利用单台服务器资源的细粒度垂直缩放,从而导致资源浪费。为此,本文设计了主动式微服务细粒度弹性缩放算法…

Centos安装libwebcam库运行 uvcdynctrl 命令

Centos 软件包仓库中没有 libwebcam 库,因此需要下载源文件手动编译 源文件地址:https://github.com/lucasrangit/libwebcam 解压后进入项目文件夹 mkdir build cd build cmake .. make make install 如果使用uvcdynctrl提示找不到库,则 vi…

k8s apiserver如何支持http访问?

原本是可以通过设置api-server的--insecure-port来实现,但是这个参数已经被废弃了,更好的方法则是使用proxy来实现: 在集群任意一个节点上起一个proxy服务,并设置允许所有host访问: kubectl proxy --address0.0.0.0 …

Java 版 spring cloud + spring boot 工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单

工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…