Bowery为什么放弃Node.js,转向Go语言

Python013

Bowery为什么放弃Node.js,转向Go语言,第1张

强大的跨平台编程能力

Bowery团队指出Go能很方便地在不同系统里进行程序编译,这是他们转入Go的重要原因之一。

作为开发平台,对Linux,Windows,OSX等常见操作系统提供支援是能否吸引开发者的基本要素。在Go中,开发者可以针对不同操作系统定义不同的文件来实现相同的功能函数。Bowery团队成员Larz在创建Prompt应用(命令行输入)时,就是借助Go而轻松实现了跨平台编译。而开发者要做的,就是设置好不同的环境变量。

快速部署

在Go平台中,从测试环境到真实环境的切换是非常便捷的,因为它无需额外的系统依赖。特别是对于Bowery提供给用户的命令行工具来说,用户无需安装Java,RVM或者NPM等工具便可正常运行。

并发处理

Node.js在并发处理方面处于劣势,仅有I/O程序或计时器运行在并发模式。因此如果希望打造一个快速响应的跨程序通讯系统,Go无疑是更好的选择。Go提供了低级别的并发处理基元,例如mutexes、wait groups等等。

整合测试框架

如果希望找到一个标准化的整合测试框架,不妨进入Go来体验一番,它内建了完整的测试包,免去了四处寻找的麻烦。如果想编写一个新的测试套件,只要把_test.go文件添加到相同的包里就可以了。有关Go测试的更多信息,请点击这里进行访问。

标准库

Go提供了标准库,标准库的好处是无需包含其他扩展库,从而能节省开发时间并且还提高了健壮性。

强大的开发者工作流工具

Go的工作区界面能帮助建立标准化的工作流,虽然这或许会压缩了开发的自由度,但得到的是一个结构化的有条理的工作区:该区有三个根目录,src用于放置源码包,pkg用于放置编译包,bin放置的是执行文件。把源码和依赖文件集中存储的好处是使团队成员都有一个相同的文档结构,而不会出现杂乱的文档情况。此外gofmt能以相同风格对代码进行格式化,这是一个非常实用的功能。所以一旦需要进行调试,只需集中精力解决当前问题而无需分心处理结构或风格等琐碎问题

Java好,生态完善,比较稳定

PHP合适做网站,应用面比较窄,

go语言还没有发展起来,

下面来说一下Java的优势,

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

简单

我们都知道Java是目前使用最为广泛的网络编程语言之一。他容易学而且很好用,如果你学习过C++语言,你会觉得C++和Java很像,因为Java中许多基本语句的语法和C++一样,像常用的循环语句,控制语句等和C++几乎一样,其实Java和C++是两种完全不同的语言,Java只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。

安全性

由于Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用“特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。因此不必担心病毒的感染和恶意的企图。

多线程

多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易实现网络上的实时交互行为。

动态性

Java 程序的基本组成单元就是类,而类又是运行时动态装载的,这就使得Java可以在分布环境中动态地维护程序及类库,Java在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。

可移植性

Java提供了一种最简单同时也是人们最熟悉的可移植性–源代码移植。这意味着任意一个Java程序,不论它运行在何种CPU、操作系统或Java编译器上,都将产生同样的结果。

Java在可移植性方面的特点使它在Internet上具有广泛的应用前景。同时它本身具有的防病毒的能力也使它在需要高可靠性的应用中占有一席之地。

最为关键的优势是生态完整,全球有几百万人在Java这个平台上面做开发,形成了完整的生态,这是其他所有语言都不具备的优势。所以建议学Java。