当前位置: 首页 > news >正文

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开发中最重要的语言之一,随着时间的推移,它变得更加强大和广泛使用。

相关文章:

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编译器的第一个版本被…...

Linux第一个小程序-进度条(缓冲区概念)

1.\r和\n C语言中有很多字符 a.可显字符 b.控制字符 对于回车其实有两个动作,首先换行,在将光标指向最左侧 \r :回车 \n:换行 下面举个例子: 把\n去掉会怎样 什么都没输出。为什么? 2.缓冲区概念 观察下两个…...

CentOS7环境安装tomcat

环境准备 由于是在练习,为了方便,我们可以 1.关闭防火墙 systemctl disable firewalld.service systemctl stop firewalld.service 2.关闭selinux 在/etc/selinux/config中,设置: SELINUXdisabled 3.准备jdk---》jdk-8u333-li…...

C# 中使用ValueTask优化异步方法

概要 我们在开发过程中,经常使用async的异步方法,但是有些时候,异步的方法中,可能包含一些同步的处理。本文主要介绍通过ValueTask这个struct,优化异步处理的方法性能。 代码及实现 有些时候我们会缓存一些数据在内…...

KVM创建新的虚拟机(图形化)

1.启动kvm管理器 [rootlocalhost ~]# virt-manager2.点击创建虚拟机 3.选择所需os安装镜像 4.选择合适的内存大小和CPU 5.创建所需磁盘 6.命名创建的虚拟机...

正则表达式在格式校验中的应用以及包装类的重要性

文章目录 正则表达式:做格式校验包装类:在基本数据类型与引用数据类型间的桥梁总结 在现代IT技术岗位的面试中,掌握正则表达式的应用以及理解包装类的重要性是非常有益的。这篇博客将围绕这两个主题展开,帮助读者更好地面对面试挑…...

Docker使用之java项目工程的部署

同样本文的基础建立在已在目标服务器(以linux为示例)上安装了docker,安装教程请移步度娘 若容器存在请先停止,在删除,然后删除镜像重新编译 //停止容器 sudo docker stop datatransfer//删除容器 sudo docker rm dat…...

3ds Max如何进行合成的反射光泽通道渲染

推荐: NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 准备场景 步骤 1 打开 3ds Max。smart_phone.max打开已 随教程提供。 打开 3ds Max 步骤 2 按 M 打开材质编辑器。选择空材料 槽。单击漫射通道。它将打开材质/贴图浏览器窗口。选择位图&#xff0…...

114、Spring AOP是如何实现的?它和AspectJ有什么区别?

Spring AOP是如何实现的?它和AspectJ有什么区别? 一、AOP的理解1、spring aop:动态代理实现2、spring aop 和 AspectJ的区别3、小图一、AOP的理解 其实,AOP只是一种编程思想,表示面向切面编程,如果想实现这种思想,可以使用动态代理啊,第三方的框架 AspectJ啊等等。 1…...

正则表达式速通

简介 正则表达式,我们可以看作通配符的增强版,可以帮我们匹配指定规则的字符串,在计算机中应用广泛,比如说爬虫、网站的登录表单等。 原视频:https://www.bilibili.com/video/BV1da4y1p7iZ 学习正则表达式的常用工具…...

数据可视化(5)热力图及箱型图

1.热力图 #基本热力图 #imshow(x) #x,数据 x[[1,2],[3,4],[5,6],[7,8],[9,10]] plt.imshow(x) plt.show() #使用热力图分析学生的成绩 dfpd.read_excel(学生成绩表.xlsx) #:表示行号 截取数学到英语的列数 xdf.loc[:,"数学":英语].…...

React 组件通信-全面解析

父子组件通信 // 导入 import { useState } from "react";import "./App.scss"; import { defaultTodos } from "./components/module/contentData";// 子组件 const Module ({ id, done, text, onToggle, onDelData }) > {return (<div…...

“深入理解Spring Boot:快速构建微服务架构的利器“

标题&#xff1a;深入理解Spring Boot&#xff1a;快速构建微服务架构的利器 摘要&#xff1a;Spring Boot是一种基于Spring框架的开源项目&#xff0c;它通过自动化配置和约定优于配置的原则&#xff0c;使得开发者能够快速构建微服务架构。本文将深入介绍Spring Boot的特点和…...

SpringBoot超级详解

1.父工程的父工程 在父工程的父工程中的核心依赖&#xff0c;专门用来版本管理的 版本管理。 2.父工程 资源过滤问题&#xff0c;都帮解决了&#xff0c;什么配置文件&#xff0c;都已经配置好了&#xff0c;资源过滤问题是帮助&#xff0c;过滤解决让静态资源文件能够过滤到…...

手机的python怎么运行文件,python在手机上怎么运行

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;手机上的python怎么运行程序&#xff0c;手机的python怎么运行文件&#xff0c;今天让我们一起来看看吧&#xff01; 1、python程序怎么在手机上运行 python语言应用很广泛&#xff0c;自己也很喜欢使用它&#xff0c;其…...

RBAC三级树状菜单实现(从前端到后端)未完待续

1、表格设计 RBAC 2、前端路由 根据不同的用户id显示不同的菜单。 根据路由 3、多级菜单 展示所有权限&#xff0c;并且根据当前用户id展示它所属的角色的所有菜单。 前端树状展示 思路&#xff1a; 后端&#xff1a;传给前端map&#xff0c;map里1个是所有菜单&am…...

牛客网Verilog刷题——VL41

牛客网Verilog刷题——VL41 题目答案 题目 请设计一个可以实现任意小数分频的时钟分频器&#xff0c;比如说8.7分频的时钟信号&#xff0c;注意rst为低电平复位。提示&#xff1a;其实本质上是一个简单的数学问题&#xff0c;即如何使用最小公倍数得到时钟周期的分别频比。设小…...

大整数截取解决方法(java代码)

大整数截取解决方法&#xff08;java代码&#xff09; 描述输入描述输出描述输入示例输出示例前置知识&#xff1a;代码 解题思路来自这个博客&#xff1a;简单^不简单 https://blog.csdn.net/younger_china/article/details/126376374 描述 花花有一个很珍贵的数字串&#xf…...

Spring Boot使用@Async实现异步调用:自定义线程池

一、定义线程池 第一步&#xff0c;先在Spring Boot主类中定义一个线程池&#xff0c;比如&#xff1a; SpringBootApplication public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}EnableAsyncConfigurat…...

GFS 分布式文件系统

目录 一、GlusterFS 概述 1.2&#xff0e;GlusterFS特点 1.3&#xff0e;GlusterFS 术语 1.4GlusterFS 的工作流程 二、GlusterFS的卷类型 2.1分布式卷&#xff08;Distribute volume&#xff09; 2.1.1特点 2.2条带卷&#xff08;Stripe volume&#xff09; 2.2.1条…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...