为什么开发人员从Java转到Go

原文地址 译文地址  译者:梁海舰  校对:郭蕾

使用Java来开发企业级的应用可能是一个不错的选择,但是使用Google的Go语言来开发系统软件会更有优势,一名来自PivotalJava开发者如是说,目前他已经成为Go语言的支持者。

Pivotal的一个使用Go语言开发其Cloud Foundry云平台的工程师Matt Stine说:Go语言在包、模块化和并发方面有很大优势,如果你尝试解决的问题是Go语言所擅长的领域,如大型、高性能服务器端程序,我可以说Go非常适合这样的场景。”

Stine认为Go是一个“相当无聊”的语言,而不是一个神奇的、现代的、功能丰富的语言,但是尽管如此,“你仍然可以使用它开发出一些令人兴奋的东西”。他认为Go是一个构建系统级软件的工具。开发者可以使用Go语言标准库来构建系统级软件,而不像其他语言一样需要第三方框架。

Stine提到,在处理并发时,Golang有内建的功能,这与Java不同,Java的并发的工具类是通过类库支持的。Stine说:“我认为Go语言本身的语法结构就非常适合处理并发。”另外,Go支持多返回值。

Go也提供了闭包和Map,Map可以将一种类型的值(Key)与其他类型的值关联起来,他们都是Go的内建数据结构。Stine还称赞了Go的slice。通过slice,被包装后的数组可以方便地为序列的数据提供接口。在Go中,很多与数组相关的编程都通过slice来实现。

在Go语言中,半自动资源管理是通过defer关键字来提供的。“取代创建资源、使用资源、然后在下面关闭资源的是,我可以马上告诉它,‘在该函数其余功能执行完后再执行这个函数’”,stine说。

Stine强调,Go语言在面对包和模块化的时候比Java更有优势,原因是在Go语言中它们比Java简单得多。“在Go里面,所有类型和函数必须属于一个包,但是每一个源文件必须申明它所属的包。”

Java,由Sun Microsystems公司在1995年推出,在语言流行排行榜(包括Tiobe,PyPL和RedMonk编程语言排行榜)中得分最高或者接近最高。Go语言,在RedMonk排行中正在上升,在6月的排行中来到第21位。在7月的Tiobe排行中,Go被排在30位。

时间: 2024-08-30 10:12:57

为什么开发人员从Java转到Go的相关文章

走上开放之路:Windows开发人员的Java Web支持基础(一)

本文是走上开放之路系列文章的第二部分.这个系列一共包括三部分,目的是帮助 .NET .Windows 客户机-服务器以及 ASP 开发人员快速转换到 Java 平台上.在走上开放之路系 列文章中,作者将帮助您充分利用现有的开发知识,简化您通往基于开放标准的编程之路. 对于那些使用 Visual Basic 6 或 C++,而对 Java 语言或 J2EE 技术并不熟悉,但却对在 基于 Java 和 J2EE 的 Web 应用程序中支持 Web 的 Windows 客户机-服务器的应用程序非 常感

走上开放之路:Windows开发人员的Java Web支持基础(二)

面向对象编程简介 Java 一种面向对象的编程语言.Visual Basic 有很多对象特性,但是它却不是一种严格 的面向对象的语言.在本节,我们将向您介绍如何在 Visual Basic 中构建一个类,然后再 介绍如何在 Java 语言中构建一个等价的类. 类的使用 您可以认为 类就是您要定义的一种数据类型.一个类的变量实例称为 对象.与其他变量 不同,对象具有类型.一组属性以及一组操作.对象的类型可以使用该对象实例化时所使用 的类表示.对象的属性表示该对象的值或状态.对象的操作是您为了改变对

针对Java开发人员的Dojo概念

Dojo 在基于 Web 的应用程序中越来越受到欢迎.很多开发人员是 Java 编程方面的能手,但是在 JavaScript 方面却缺乏经验.从强类型.面向对象的编译语言转向动态的.弱类型脚本语言,开发人员需要经历概念跃迁带来的困难.这种混乱使开发人员很难正确地声明 Dojo 类.本文将帮助梳理这种混乱,解释为何必须设置上下文,以及如何实现它. 简介 如果您是一名只有很少或根本没有 JavaScript 经验的开发人员,在接触 Dojo 时可能需要掌握一些必要的概念.Dojo 的一个主要问题是(

JDK 9对于开发人员而言并不像JDK 8那么有趣

Java编程语言自出现以来似乎一直是个慢性子,这次终于决定做出点改变了.Java之后的更新速度终于可以和现代编程语言相提并论了.近日,Azul Systems营销副总裁Howard Green谈论了Java 8生命的终止,OpenJDK构件和Oracle JDK二进制文件之间的区别以及开发人员应如何为下一步做准备等等.     ▲Howard Green 本月初,Oracle的Java平台组首席架构师Mark Reinhold提出,Java SE平台和JDK从历史功能驱动版本模型转变为严格的基于

面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit

ajax|google|web GWT(请参阅 参考资料)采用了一种不寻常的方式进行 Web 应用程序开发.它没有采用客户端和服务器端代码库的普通隔离,而是提供了一个 Java API,该 API 允许创建基于组件的 GUI,然后编译它们,从而在用户的 Web 浏览器上显示它们. 与一般的 Web 应用程序开发体验相比,使用 GWT 更接近于使用 Swing 或 SWT 进行开发,它还试图将 HTTP 协议和 HTML DOM 模型抽象出去.实际上,应用程序最终几乎总是会呈现在 Web 浏览器中

面向Java开发人员的Ajax:Java对象序列化(1)

ajax|java对象 本文我们讨论 Ajax 开发的基础知识,但是将侧重于许多 Java Web 开发人员最关心的问题:为客户机生成数据. 多数 Java 开发人员已经把模型-视图-控制器(MVC)模式应用在他们的 Web 应用程序上.在传统的 Web 应用程序中,视图组件由 JSP 或者其他表示技术(例如 Velocity 模板)构成. 这些表示组件动态地生成全新的 HTML 页面,替代用户以前正在查看的页面,从而更新用户界面.但是,在 Java Web 应用程序使用 Ajax UI 的情况

针对 Java 开发人员的 C# 编程语言

编程 本文讨论 Java 和 C# 之间的异同点,目的在于当迁移到 .NET 时,让 Java 开发人员掌握所涉及的一些知识.Java 和 C# 之间的主要相似点是: • Java 和 C# 都源于 C++,并且共有 C++ 的一些特征. • 两种语言都需要编译成中间代码,而不是直接编译成纯机器码.Java 编译成 Java 虚拟机 (Java Virtual Machine, JVM) 字节码,而 C# 则编译成公共中间语言 (Common Intermediate Language, CIL

Oracle开发人员 JAVA存储过程

oracle|存储过程  Oracle开发人员 JAVA存储过程 利用Java存储过程简化数据库操作 作者:Kuassi Mensah 利用Java存储过程沟通SQL.XML.Java.J2EE和Web服务. 存储过程(stored procedure)允许将运行于数据库层中的持久性逻辑与运行于中间层中的商务逻辑有效地分离开来.这种分离可以降低整个应用程序的复杂性,并提供其重用性.安全性.性能和可伸缩性. 但是,妨碍存储过程广泛采用的一个主要障碍是不同数据库厂商使用各种专有的.且依赖于数据库的实

面向Java开发人员的Ajax: Ajax的Java对象序列化

在这个系列的 第一篇文章 中,我介绍了 Ajax 的构造块: 如何用 JavaScript XMLHttpRequest 对象从 Web 页面向服务器发送异步请求. 如何用 Java servlet 处理和响应请求(向客户机返回 XML 文档). 如何在客户端用响应文档更新页面视图. 这一次,我将继续讨论 Ajax 开发的基础知识,但是将侧重于许多 Java Web 开发人员最关心的问题:为客户机生成数据. 多数 Java 开发人员已经把模型-视图-控制器(MVC)模式应用在他们的 Web 应用