我说过无数遍了:从来没有一种技术是为灵活组合这个目标而设计的

(1)开发语言

一、面向函数

函数的发明不是为了灵活组合,而是为了代码有可读性,这样,人好维护。

你可以试着不写函数,功能有多复杂、代码就有多长,你看看你的代码具有可读性不?你看看这样的代码具有维护性不?

二、面向对象

面向对象的发明不是为了灵活组合,而是为了函数的安全性。面向对象,把函数分了安全级别,有的是自己私自可调用的,有的是自己的孩子可调用的,有的是所有人都能调用的。

三、面向组件

面向组件,这个事有点复杂。因为面向组件,需要编程语言和中间件一起配合才能搞定的。

面向组件的发明也不是为了灵活组合,而是为了两个目的:

1、为了更好的编程表达。因为面向函数、面向对象,只能表达方法(function)。而组件能表达的更加丰富,可以表达:Property、Method、Event。很显然,这也不是为了灵活组合这个目标而设计的。

2、为了烂程序员不用自己操心内存管理。而是由组件容器中间件负责管理组件实例的创立、实例的计数、实例的池化、实例的挂起、实例的摧毁以及相关联的内存的回收。

(2)中间件

上述说到面向组件的时候牵扯到了中间件,我给大家把中间件的来龙去脉讲讲。

中间件出现在1984-1987年之间,现在各种中间件,其实都是40年前的中间件的细分和延伸。无数代程序员前赴后继地重新发明轮子,用新技术一代代地重写过去。

但是大家一定要牢记一句话:中间件,目标都是为了解决分布式计算中出现的各种问题而设计的。根本不是为了灵活组合这个目标而设计的。

1984年,Sun公司在自己的Unix服务器软件中实现了一个功能,那就是跨服务器调用。采取Proxy/Stub这种生产者消费者架构思想,采取TCP/IP网络协议、监听某个端口、传输二进制数据,以便达到跨服务器调用。

1986年,IBM发明了消息中间件。也就是说,你可以不用搞跨服务器函数调用,你在服务器之间来回传输数据即可,消息中间件来保证消息的传输是质量保证的,不会丢数据、不会数据顺序不对。

1986年,Bell实验室也对外发布了一个中间件,那就是事务中间件tuxedo。在一个服务器上保证所有逻辑在一个transaction中比较容易,但是跨服务器逻辑如何在一个transacation,这必须需要事务中间件。

1990年,IBM、Sun一堆厂商组了个委员会,发布了CORBA中间件技术标准。后来Sun公司制定的J2EE中间件技术标准,其实就是从CORBA借鉴而来的。

CORBA中间件和具体的Unix操作系统无关了,和具体的开发语言也无关了。虽然还是以来TCP/IP网络协议,也是传输的二进制数据,但是有了自己专门的应用级协议了,这就是IIOP。而且也摆脱了监听某个端口这样的套路,而是专门独立出注册与发现服务,这就是后来注册中心、API网关的雏形。

1995年,微软随着Windows95的发布,还发布了DCOM。DCOM是微软的面向组件的技术标准,微软在Windows95和WindowsNT中都内嵌了组件中间件。而且,微软还在操作系统中内嵌了事务中间件。微软的事务中间件叫MTS(Microsoft Transaction Server)。这就是IT产业界第一次面向组件和中间件的结合。Sun发明的RPC和IBM领导的CORBA,还都是针对面向对象设计的。

后来,微软沿着DCOM,在1998年又改进成COM+。2001年,微软又融合了WebService技术,改进成.Net组件。

微软的DCOM组件和组件中间件只能运行在微软操作系统之上。所以Sun公司在1997年借鉴CORBA,发布了与操作系统无关的J2EE组件技术标准和中间件。Sun公司也定义了自己的应用级协议:RMI。

1998年,W3C借鉴了SGML和HTML技术发布了XML标准。2000年,W3C又借鉴CORBA发布了WebService标准:

  • 服务注册与发现中心:UDDI
  • 接口描述语言:WSDL
  • 应用调用协议:SOAP
  • 数据传输格式:XML
  • 传输协议:HTTP

IBM在2004年又领导发起SOA(毕竟风靡的J2EE是Sun公司领导的)。IBM设计的SOA标准体系涵盖以下主要方面:

  • 组件规范:SCA
  • 数据传输格式:SDO
  • 业务流程编排与执行:BEPL

其实IBM领导的SOA这场运动是彻底失败的。我怀疑大家都根本不知道这三个技术。但是SOA面向服务这个词却流行了。

其实大家流行用的SOA,实际上是另外两个东西:

  • 服务注册与发现中心:API网关
  • 用WebService技术包装的RPC中间件

到了2009年,VMWare公司通过资本并购一顿猛整,把Spring、Cloud Foundry、Pivotal这三家公司一顿整合。于是,Pivotal的技术布道师在2013年又发明了一个特别流行的词:云原生。说云原生包含四个东西:微服务、容器、CI/CD、DevOps。其实CI/CD、Devops是敏捷软件工程的东西,和云原生没毛关系,早在他发明这个概念时已经存在很久了也流行很久了。

其实微服务和SOA(面向服务架构)也没毛关系。本来大家过去写程序,和开发语言无关、和中间件无关、和框架也无关。现在Spring、Cloud Foundry、Pivotal,让大家和开发语言绑定、和框架绑定、和中间件绑定。这太她妈狗屎了。

所以,2015年,Google又领导了一帮人搞了一个CNCF组织。CNCF全称就是Cloud Native Computing Foundation(云原生计算基金会)。这下VMWare Pivotal公司的云原生喊不下去了。现在,VMWare Pivotal公司的技术路线,也顺着CNCF技术路线走了。

唉,一代又一代聪明才智的程序员,如今又重写了分布式的消息中间件如Pulsar、分布式的事务中间件如Seata、分布式RPC中间件如gRPC。这世界,40年来也没啥变化。所以我特别困惑,你们都说新技术革命、新技术层出不穷,但我咋觉得技术这40年来都没啥大变化呢?都是换姿势而已。

有闲心的时候,我另外再给大家写篇文章,说说如今的人工智能,也是换姿势,和我在90年代学的东西没啥大改变,很多现在人工智能的东西,在90年代其实就都有了。

文章转自,原创 吕建伟 阿朱说 2022-07-30 17:05 发表于北京

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年8月1日
下一篇 2022年8月1日

相关推荐

  • 氢能源汽车发展瓶颈在哪?

    关于氢能源汽车的瓶颈,需要从氢能源汽车的产业链和政府角度来分析 政府推动氢能源产业的力度小 氢能具备了清洁性、 高效、安全三个特点,发展氢能能够实现能源生产和能源消费的彻底变革,不…

    2022年7月15日
  • 分享7个打造网上团队的方法(如何打造一个微商推广团队)

    很多微商从开始的一个人到现在一个团队在运作,有的上百人团队,多的上千人,一时间涌现出一批微商明星团队。而做微商,真正能够赚钱的人,都是拥有一批非常强悍的团队,因为一个人是无法做大的…

    2022年11月5日
  • 军民一体总装龙头,中国船舶:戴维斯双击,整合加速+景气上行

    (报告出品方/分析师:山西证券 李孔逸) 1. 整合加速,造船龙头扬帆起航 1.1 不断资产整合构筑军民一体总装龙头 “聚焦主业+开发特新”,打造军民总装龙头。 1998年,公司的…

    2022年8月4日
  • 高新发展:业绩承压,跨界押宝半导体,科技赛道再添新锐

    这两年谋求转型半导体的公司不多,但是只要是向这方面转型,后期基本都得到了资本的追捧。去年上半年,东方银星收购敏声光学股权,股价最终被爆炒200%,从14最高到46元。 去年下半年,…

    2022年7月3日
  • 为什么有些网页打不开如何解决(为什么有些网址加载不出来)

    随着互联网的飞速发展,企业建网站已经从最开始的可有可无,演变成为今天的不可或缺。不少的企业,都会遇到网站打不开的问题,究竟是什么原因导致网站打不开?郑州网站设计小编来为大家总结一下…

    2022年4月21日
  • 2K拿下骁龙888旗舰,还要啥自行车

    骁龙888作为高通的旗舰级SoC,即使放到现在仍然是很不错的手机移动平台,如今两千元就能买到骁龙888手机的话,那还要什么自行车。 一加9RT 一加曾透露过不会做游戏手机,但一加9…

    2022年7月18日
  • 值得入手的两款手机!荣耀、小米各一款

    荣耀Magic4 Pro 荣耀Magic4 Pro这款机型是今年荣耀发布的新机型,在外形设计方面,依旧能看到荣耀Magic系列的身影,“缪斯之眼”的背部设计方案让其高级感加倍,高端…

    2022年6月16日
  • 网工行业发展的趋势及弊端

    很多朋友一直在我们后台留言,问到网络工程师前景怎么样?网络工程师、弱电与通信行业重要组成部分,通常情况下,网络工程师分为售前工程师、实施工程师、售后工程师和维护工程师,当然还有一部…

    2022年7月9日
  • 华为Mate50 X版概念图曝光:512GB+屏下摄像头技术,华为要崛起了

    华为手机一直都是国人心目中的骄傲,虽然目前华为在手机业务方面面临着一些问题,但是华为也在稳中向好的发展,从销量上看就可以看出,在6月份的手机销售排行榜中,华为P50系列名列前茅,虽…

    2022年6月27日
  • 聚焦数字健康|资本密集入局,如何加速医疗人工智能商业化落地?

    21世纪经济报道记者季媛媛 上海报道 医学AI被认为是人工智能应用中最有可能率先实现商业化的细分领域。在“政产学研用”的多方努力下,智能时代正加速到来,以人工智能为代表的新兴技术正…

    2022年8月22日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息