一、计算机发展史
二、Java发展史
Java 诞生于 上个世纪 90 年代(C 语言 197x,C++ 198x),Java 诞生的时候,C/C++ 是业界最流行的语言。
詹姆斯高斯林(Java之父)最初他们公司要搞“智能面包机”这样的产品出来,首选的语言 C++ 。但是当时他们团队,大家都是新人,高斯林大佬就觉得,是不是大家搞不定 C++。就自己搞了一个新的语言----Oak(橡树),因为他们的工位窗外有一棵橡树。但是最后项目流产了,整个团队要被裁员了。但是语言挺好的,于是保留了下来,注册的时候,Oak 商标没了,改了个名字叫 Java。
Java 最早开始起飞,用来开发网页前端的程序,Java 搭载 applet 技术,实现网页端和用户的交互效果,借了东风,成了最主流的编程语言之一。
好景不长,Java 被微软全面封杀了,当时所有的主流浏览器,都搭载了 JVM。当时 Sun 公司 和 微软谈合作,谈崩了,微软是当时最牛的操作系统,IE 浏览器也是最牛的浏览器.微软直接封Java,lE 不再支持 Java 了.微软转而扶植自己搞的编程语言J++。
微软自己搞的 J++ 也没成,后来微软扶持 C# 也都表现一般。反而是 JavaScript 继承 Java 的遗志成为前端开发的一哥。
直到 2024 年的今天微软的 Typescript才逐渐占据上风,找回 30 年前的场子。
Java 兵分两路。
- 1.后端开发/服务器开发
最初服务器后端使用 C/C++ 开发的。后来 2000 年之后,PHP 异军突起,一下就成了后端开发最主流的语言。
当年只要谈到开发网站,就会说到LAMP 技术体系。
L: Linux
A: Apache (HTTP 服务器)
M: MySQL
P: PHP
Java 搞了一套 JSP 技术体系(很多学校课设用这个搞),JSP 虽然干不过 PHP, 也有一席之地
微软也很眼红, 微软搞了个 ASP (比较惨, 基本没啥人用)
- 2.手机端开发:(2000 年左右的那种 功能机)
诺基亚,摩托罗拉机用的
Java 推出 J2ME
J2SE (JavaSE)
J2EE (JavaEE) => JSP 这一套
J2ME =>针对手机端
打开一些应用程序,尤其是游戏加载界面都是Java logo。
Java 凭借上述两个方面,不光站住了脚跟,同时也成为了业界最主流的编程语言之一。
好景又不长,新的危机又出现了~~
- 1.后台开发这个方面
PHP 这一套开发方式,针对简单网站,绰绰有余, 网站越来越大, 越来越复杂了。
PHP 难以应对了,JSP 也面临同样的问题
- 2.手机开发这里,
2007 是一个惊天动地的一年,乔布斯发布了苹果手机 (移动互联网时代,智能手机登场)
传统的功能机,一夜暴死。J2ME 这块市场也没了。
苹果 IOS 系统开始崛起,Android 系统开始崛起。
Java 再次面临危机. 网上又有很多 Java 要嘎了 这样的言论。
- 1. 后端开发这边。
既然 JSP 这一套不行,就想新的办法.
Spring 开始崛起.(Spring 在 JSP 时代就有),以 Spring 为首的一系列框架开启了服务器开发新的纪元,为了支持更复杂的后端系统,针对分布式系统有更好的支持。
PHP 来不及做这样的调整,只能眼看着市场份额被 Java 反超。
反超成功!!Java成为了后端开发最强语言
- 2.移动端这边.
功能机没了.智能机兴起了。
IOS 系统使用的语言 Objective-C(介于C-C++ 之间的语言)
Android (谷歌),谷歌最早考虑的是使用 Python 作为开发安卓的语言。Python 作者本来是谷歌的员工,这段时间闹着要离职。Python 错失了这次机会,Java 立即抓住了机会。
之前那一波做手机开发的,就是 Java 程序员,就使得android 快速的发展起来了。
系统要发展 =>有很多好的应用程序 =>优秀的开发者 =>吸引到更多的用户。
安卓很快超过了 IOS 称为 智能手机端 最强系统。
上述两拔操作,Java 一跃成为 编程语言排行榜,榜一大哥。 一直垄断多年 (直到最近两年才被其他语言反超)
谷歌选择了 Java, 也埋下祸根。
Oracle (收购了 Java),把谷歌给告了---你用 Java 你得给我交钱,授权费 (天价)
多年拉扯下来,谷歌败诉!!! 割地赔款
谷歌也在想办法开发下一代移动端系统,搭载了谷歌自研的编程语言 (Dart)。
功能机巨头诺基亚,临死反扑了一波。联合微软,推出了另外一个生态的智能手机 Windows Phone,很快 Windows Phone 就凉了。
手机很好,但是缺少生态,缺少配套的软件。水果忍者, 愤怒的小鸟, 神庙逃亡.….. 一个都玩不了。应用商店游戏三瓜两枣,还收费。
Q:微信小程序使用的语言是什么?
A:等同于网页前端HTML+CSS+JS(只不过不是标准的HTML+CSS+JS,而是腾讯改过的)
Java 已经是 榜一大哥,但是 Java 这几年也遇到了一些新的挑战。
- 1.后台开发
Java 最大的挑战者,Golang。(Java 追求呆板的语言)框架套框架, 模式套模式,比较麻烦。
- 2.移动端
Java /安卓开发,最大的挑战者,是前端。
IOS 是是一个语言,安卓是一个语言。能否一套代码,写的程序同时支持多个平台呢??安卓, IOS, PC