首页 文章

哪种编程语言适用于 Cloud 计算? [关闭]

提问于
浏览
31

现在新的 Cloud 计算时代即将来临,我将学习编程,我不知道 Cloud 支持哪种编程语言 .

我认为什么支持Java,ASP.NET,PHP,Python,Ruby,Perl等而不是低端语言,如C,C等......或者我错了?如果是这样,软件公司将不得不重新开发他们的软件 . 这是你开始一个项目的时候,你没有大型软件公司作为竞争对手吗?

我想知道我应该关注哪种语言学习,以便我可以为 Cloud 开发 .

8 回答

  • 4

    取决于您想要使用哪种“ Cloud ” . 如果是Google App Engine,您可以使用Java或Python . Google App Engine支持Groovy,它运行在jvm上 . 如果您要使用亚马逊,您可以在任何应用程序服务器上安装任何操作系统(亚马逊机器映像)并使用任何语言,具体取决于应用程序服务器对该语言的支持 . 但是做这样的事情意味着对可伸缩性概念的大量技术理解 . 有些服务可能是现成的,如数据库服务,存储等 . 我听说过ruby和Heroku(另一个 Cloud 应用程序平台) . 但没有经验 .

    就个人而言,由于可用的库和工具庞大,我更喜欢Java / Groovy .

  • 35

    你的问题实际上是在考虑做什么 . “ Cloud 计算”几乎可以说是任何东西 . 如果您正在寻找具有特定 Cloud 计算优势的语言,那么Java有几种,因为它是一种编译语言,可编译为独立于操作系统的字节代码 .

    我还和其他人一起讨论C语言是一种低级语言 . 是的 . 但是你总是要拥有的不仅仅是C语言 . 如果将Java和C与它们附带的类分开,Java和C就非常相似 . 你必须采用一些严格的标准,如“指针=低级别,垃圾收集=高级别”,以使区别坚持 . (当然,你可以在C中使指针变得聪明且不可见,如果你愿意,也可以在C中使用垃圾收集 . )

  • 9

    至于什么编程语言,可能会使用任何基于浏览器或基于服务器的语言 . Javascript,PHP,ASP,AJAX,Perl,Java,SQL .

    假设你需要实现一种新的编程语言和专为在 Cloud 中运行而设计的BCL(它不会在客户端机器上使用) . 它应针对 Cloud 计算进行优化;易学,快速,高效,强大,现代 .

    我见过 Cloud 托管产品的最大方式是帮助开发人员能够启动和增加服务器的大小,而不会有任何延迟 . 开发人员能够在完全自定义的环境中创建应用程序,然后将其扩展为具有重大麻烦的 生产环境 计算机 . 如果事情不按预期工作,他们可以相对轻松地销毁该机器 .

    大多数Cloud Computing Providers使用JAVA和C-Sharp来制作 Cloud 服务器 .

  • 9

    这是一个非常有趣的问题 .

    在Lang.Next Session 上有一个very interesting discussion about this topic, in which authors of several programming languages participate (Scala, Dart, C#).最后没有明确的共识,但从我的观点来看,有一条信息:

    这个“ Cloud 时代”的理想语言应该是面向对象的(因为这是我们理解并能够模拟世界的方式)并且还包含函数式编程 .

    “ Cloud 时代”中的代码几乎总是分布式的:在多个核心/机器上运行(在 Cloud 中心)或仅仅是客户端/服务器分离 . 它也是异步的 . 我们在等待WS响应时不会阻塞代码 . 回调随时出现 .

    使用标准命令式编程语言时,处理异步和分发确实很复杂 . 你必须始终关注“当前状态”,当回调进入时,你必须根据这种状态决定做什么 .

    功能编程有助于消除“状态”,更适合这种新情况 .

    所以我要说:在 Cloud 计算中,代码是分布式的,无状态的,异步的 . 函数式编程可以帮助您 . 面向对象几乎是必须能够模拟世界 .

    如果你有兴趣,我写了blog post about it . 我喜欢C#,但实际上我会说Scala,Clojure,F#可能更合适 .

    另一方面,C将永远存在,最近正在进行现代化并获得更多关注 .

  • 4

    “ Cloud 计算”更像是一种操作系统级概念而非语言概念 .

    假设您要在Amazon's EC2 cloud computing service上托管一个应用程序 - 您可以在EC2支持的任何操作系统(几种Linux,Solaris和Windows)上以您喜欢的任何语言开发它,然后在其中安装并运行"in the cloud"或者更多虚拟机,就像在专用物理服务器上一样 .

  • 3

    显然有没有“更好” - 或更值得学习 - 语言 . 您使用的语言只是您喜欢的内容和服务器支持的内容 . 您不应该学习任何服务器都不支持的语言,或者据说在不久的将来会死亡 . 另一方面,显而易见的是,将来会有更好的语言,而且这些语言会更有用 . 所以学习一个快速,方便,你喜欢的学习和学习它的地方不会太大,因为如上所述,你可能会在不到3年的时间内改变 .

    我个人会考虑一个“开源”(非专有),因为网络向所有人开放,开源更有可能得到每个人的支持 . (在这种情况下,这意味着PHP)

  • 11

    这总是令人着迷 . 我不是 Cloud 开发人员,但根据我的研究,与我们许多人几十年来一直在做的事情没有什么显着不同 . 服务器是特定于平台的 . 如果您想为您的服务器编写平台无关的代码,那么很好,但根据您的 Cloud 服务器提供商是谁,这是不必要的 . 我认为到目前为止我看到的最大的不同是为前端客户端提供大量服务的概念 . 前端,我假设主要是web或web应用程序开发 . 由于大多数浏览器可以很好地处理LAMP与Microsoft堆栈,因此您仍然可以回到本月的任何风格 . 我在20年前在高度分散的网络环境中所做的唯一区别是更高级别的协议(HTTP与TCP / UDP) . 也许我错了,并欢迎接受教育,但是我已经做了很长时间了,仍然没有看到任何我认为具有革命性或显着差异的东西,尽管Java,C#,Python,Ruby等语言都很重要更简单的程序,其中一个混合包,因为酒吧降低,因为他们不熟悉编写优化的代码 . PAAS和SAAS对我来说似乎是新技术中的一些关键,但是已经做了一些这样的事情已经持续了20年:)

  • 2

    在你提到Java,PHP,Python,Ruby,Perl的语言当然比C / C(和ASP.NET)更加独立于平台 .

    许多特定于平台的差异也来自于给定平台可用的库 .

    然而,在实践中,我认为您将始终在 same 或至少非常类似的平台(操作系统风格)上开发,就像运行代码的系统一样,即 Cloud 在运行之前不会获取源代码并为您编译 .

    我个人会选择Java或Python(可能还有Ruby),因为他们有大量的库可用于各种任务,并且非常独立于平台 .

相关问题