编译原理之美
宫文学
北京原点代码 CEO
46197 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 45 讲
开篇词 (1讲)
编译原理 · 期中考试周 (1讲)
编译原理之美
15
15
1.0x
00:00/00:00
登录|注册

37 | 云编程:云计算会如何改变编程模式?

一课一思
课程小结
对云原生编程平台的需求
如何编写云应用
实现云上编程
云编程
云编程与云计算技术

该思维导图由 AI 生成,仅供参考

上一讲中,我分享了当前 3 个技术发展趋势,以及其对编译技术的影响。今天我们把其中的云计算和编程模式、编译技术的之间的关系、前景再展开探讨一下。
总的来说,现在编写程序是越来越云化了,所以,我们简单地称作云编程就好了。
关于云编程,有很多有趣的问题:
1. 编程本身是否也能上云?在云上编程会跟本地开发有什么不同?
2. 如何编写云应用,来充分发挥云平台的能力?分为哪些不同的模式?
3. 为什么编写云应用那么复杂?如何降低这些复杂度?云原生应用的开发平台,能否解决这些问题?
本节课,我就带你深入讨论这些问题,希望借此帮助你对编程和云计算技术的关系做一个梳理,促使你更好地利用云计算技术。
首先,来看看如何实现云上编程。

实现云上编程

90 年代初,我在大学学习编程,宿舍几个人合买了一台 386 电脑。那个时候,我记得自己不太喜欢微软提供的 MFC 编程框架,这和 386 电脑没有浮点运算器,编译起来比较慢有关,编译一次使用 MFC 框架的,C++ 程序的时间,足够我看一页报纸的了。
喜欢编程的人,为了获得流畅的性能,电脑配置总是很高,虽然这足以满足 C/C++ 时代的编程需要,但进入 Java 时代后,因为应用结构越来越复杂,工程师们有时需要在笔记本或桌面电脑上,安装各种复杂的中间件,甚至还要安装数据库软件,这时,电脑的配置即便再高,也很难安装和配置好这么复杂的环境。那么到了云计算时代,挑战就更大了,比如,你能想象在电脑上安装 Hadoop 等软件,来做大数据功能的开发吗?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

云计算技术对编程模式的影响及其与编译技术的关系是本文的主要讨论内容。作者指出,云编程将带来许多优势,包括易于管理的编程环境、支持跨平台编程、更强的计算能力、有利于开发过程的管理以及更好的团队协作。文章通过讨论云上编程的实现方式和优势,为读者提供了对云计算技术的全面认知。从编程抽象层次的演变到云计算的发展历程,文章以编译技术为线索,阐述了云计算服务商们希望通过层层的抽象来屏蔽底层的复杂性,让云计算变得更易用。文章最后提出了进一步抽象并简化云应用开发的问题,引发了对针对云原生应用的编程平台的思考。通过对云编程的发展历程和未来趋势的探讨,为读者呈现了云计算技术的前沿动态和发展方向。文章深入探讨了云计算中的附属复杂性问题,并提出了对云原生编程平台的需求,以解决云应用的复杂性。文章以此引发读者对云计算复杂性问题的思考,并探讨了云原生编程平台的潜在解决方案。文章内容丰富,深入浅出,对云计算技术的发展趋势和应用前景进行了全面而深入的阐述。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《编译原理之美》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • 拉欧
    对云原生感情复杂,一方面拥抱变化,这是未来的大趋势,不可避免;另一方面,作为程序员,总希望所有的技术架构尽在掌握,比如用到的框架,我会尽量了解其原理及实现,而不只是业务代码,云原生意味着对环境依赖失去控制,这点总觉得不舒服

    作者回复: 这种情况在各个领域总是在发生。 一方面,一些成熟的技术会成为基础设施,从而对大多数人来说不需要了解细节,转而关注在此之上的创新。这些创新在未来又有可能变成新的基础设施。人类文明就在这样层层叠叠积累的基础设施上发展。比如,对我们大部分人来说,不太需要去了解CPU的生产工艺。我们只是使用它。 另一方面,我们总是需要少量的人,能够实现从上到下多个层面的贯通,发明新的基础设施。就算是操作系统这样的基础设施,也仍然在不断地创新、变化。华为在推鸿蒙,facebook听说也在开发自己的一个操作系统用于VR,避免被别的公司掐住脖子。 在中国,未来10年会很重视基础创新。所以操作系统、编译器、云平台这些领域,都大有用武之地。

    2019-12-13
    2
    9
  • 刘強
    有赞有一套自己的电商开发平台,用户可以通过拖拽功能块来实现自己的业务功能。我觉得这种开发方式好像一定程度的实现了您说的云原生编程平台,只不过还是属于特定领域的,有一定局限的。不知道理解对不对? 编程语言的最高抽象层次是自然语言,云平台开发的最高抽象层次我觉得是“搭积木”,由此,我“瞎猜”一下,将来的软件开发就好像现在的UI设计一样,需要什么功能我拿过来拼接一下,当然,既然是云,上面有各种各样的“原生”功能模块,就好像编程语言一样,通过组合这些功能就能开发出各种应用。更进一步,我设计好我的架构图,业务功能模块,然后一键部署,你都不知道背后发生了什么,哈哈。

    作者回复: 嗯,你的分析很好,总结起来是领域化、可视化、抽象化。 我最关注的,是复杂度问题。上周在华为的aicon上,跟华为、阿里云的专家探讨过。我提出,现在云计算在解决复杂性上,仍然没有达到当初的承诺:只需要加机器就行了。实际上,按照目前的技术,当应用功能边复杂的时候,系统的复杂度急剧上升。我认为这是仍然需要解决的问题。目前的云原生,只是用用docker,还不够。

    2019-11-18
    5
  • 骨汤鸡蛋面
    几年前我最开始看FaaS这个词的时候,脑子里的第一个想法是,以java为例,如果浏览器里只写一个函数(调用了数据库之类的),如何自动将其“扩充为”一个jar 并执行,结合编译原理,老师可以简单说下思路嘛

    作者回复: 不是太明白你的问题,所以我只能猜测一下: 1.首先你需要定义一个自己的语言,比如是针对某个特定领域的DSL。 2.你的意思是,你要把用户输入的这个DSL,翻译成另一种语言,比如java,这样就可以生成可执行的jar。 实现这个有三个方法: 1.解析源语言,输出Java源代码,然后再编译。 2.解析源语言,形成AST后,调用Java编译器的某些内部接口,直接生成Java的AST,然后完成编译过程。这会比第一种方法性能高一些。 3.解析源语言,形成AST后,再做必要的语义分析,之后直接生成字节码。很多基于JVM的语言都是这么做的。 其中第二种思路,我在第二季有几讲介绍Java编译器的实现,你到时可以看看是否有帮助。

    2020-03-10
    2
    1
  • xiaobang
    一直没能理解云原生的意思,云是指云上的资源,在远程机器的,原生是本地的资源,这两个放一起不知道怎么理解,老师能解释下吗?

    作者回复: 云原生有比较清晰的定义,建议阅读以下这篇文章: https://www.infoq.cn/article/fA42rfjV*dYGAvRANFqE

    2019-12-08
    1
  • 诸葛子房
    阿里云的datawork基本上就是云开发工具了,不用安装idea这种类似编辑工具
    2022-01-29
    1
  • 小林枫
    全上去就怕断网就完犊子了
    2022-09-11归属地:江苏
  • ifelse
    大数据,分布式我还没接触到
    2021-10-28
  • 维李设论
    试过faas,腾讯云也在推,所有云厂商都在做,今年阿里云栖大会也推出了无影,我非常看好云技术发展
    2020-09-19
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部