Go 语言如果按这样改进,能不能火过 Java?

据 InfoWorld 消息,为改进 Go 语言的开发工具,Go 可能会获得自己的语言服务器,类似于 Microsoft 和 Red Hat 的语言服务器协议。

消息是从 Go 语言开发者的讨论组中流出,所以这不是最终的改进列表。

改进计划如下:

  • 采用语言服务器 IDE 等工具,索引并显示有关代码和包的信息。一位与会者表示:微软的语言服务器协议由于在编辑器和 IDE 中的广泛支持,被认为是一个很好的起点。该协议被设计为跨代码编辑器和 IDE 集成的多种语言。
  • 建立一个可以报告统计数据的标准“计数器” API 。
  • 重写部分 Go 的汇编代码。
  • 为弥补汇编和 Go 之间的差距,考虑重写 Go 的加密代码。出于性能考虑,语言中的加密代码往往是用汇编语言编写,但汇编代码难以调试、维护和读取。一位与会者表示:改用 Go 重写加密代码会使维护更加容易,且能提高 Go 的加密性能。
  • 扩展 Go1.9 中的 math/bits 包,以适应重写。math/bits 包对位操作进行优化。
  • 重构在编译器和运行时的垃圾收集和相关工具,以减少核心工具和 IDE 的负载。
  • 将编译器嵌入到 IDE 中以进行快速语法检查。
  • 编译内存代码,有利于修复缺少系统文件的环境,程序员还可以进行持续的运行测试。

讨论组还提出了包括依赖关系管理和接口问题的调整。建议者指出,对标准库中的软件包进行关键修复往往需要等待 6 个月的新版本发布时间,更好的依赖关系管理可能有助于将一些软件包从标准库迁移到自己的项目中。

此外,标准库接口的使用难度和一些其他问题也有被拎出来,并提了相关建议。详情可查阅原文

http://www.oschina.net/news/87743/how-googles-go-language-could-be-improved

时间: 2024-10-06 14:43:12

Go 语言如果按这样改进,能不能火过 Java?的相关文章

51系列小型操作系统精髓 简单实现8 C语言版待改进

使用keil4  ,代码Code Optimization:0   运行OK 可运行8个任务 Program Size: data=21.0 xdata=0 code=401  (包括2个示例变量,未优化) 任务从中断处切换,在定时时间到后从定时中断中切换回来. 待改进地方 1.手动优化汇编程序 2. 重入问题 3.参数进函数和时中断的保护问题 #include "STC12C5A.H" #define TIMER_RELOAD()  {TL0=0x00;TH0=0xC4;}//使能T

51系列小型操作系统精髓 简单实现7 C语言版待改进

#include "STC12C5A.H" #define TIMER_RELOAD()  {TL0=0x00;TH0=0xC4;}//使能T/C  初始10ms #define MAX_TASKS 2 //任务槽最大个数. unsigned char idata task_stack[MAX_TASKS][2];//任务堆栈.  PC指针为16位,需2个字节task_stack[][0]L  task_stack[][1]H. unsigned char idata task_tim

C# 3.0新语言特性和改进(一)

引言 关于C#3.0的特性,园子里已经有了一大把,可能大家都很熟悉了,虽然本人开发中使用过,但自己还是需要记录一下,总结一下.同时也是后面写Linq知识的基础.希望有兴趣的朋友,可以看看. C# 3.0新语言特性和改进包括: 自动属性 隐含类型局部变量 匿名类型 对象与集合初始化器 扩展方法 Lambda表达式和Lambda表达式树 1. 自动属性 自动属性可以避免我们编写实体类时声明私有变量和get/set的逻辑,取而代之的是,编译器会自动为你生成一个私有变量和默认的get/set 操作. 在

51系列小型操作系统精髓 简单实现6 C语言版待改进

#include "STC12C5A.H" #define TIMER_RELOAD()  {TL0=0x00;TH0=0xC4;}//使能T/C  初始10ms #define MAX_TASKS 8 //任务槽最大个数. unsigned char idata task_stack[MAX_TASKS][2];//任务堆栈.  PC指针为16位,需2个字节. unsigned char idata task_time[MAX_TASKS]; //定时时间 unsigned char

六种流行的语言大餐---C、C++、python、Java、php、C#你更喜欢哪一个呢?

http://www.cnblogs.com/zuoxiaolong/p/java1.html 不同语言的区别 PHP      最近很火,小型网站,搭建个BBS,个人博客之类的.做微信公众号的也不少:LAMP,很搭的 项目:Facebook.百度.yaHoo.淘宝前端.天猫前端 JavaScript NodeJs,原生异步,适合做高并发,低计算的项目 C# 不多说,大家都在用.优点是全平台,从手机到平板到再到PC:从操作系统.数据库.Framework平台.开发言语言.开发工具.IIS,到现在

(转)使用Thrift0.9.1实现跨语言调用Golang、Php、Python、Java

问题导读:什么是Thrift?Thrift的官方网站在哪里?Golang.Java.Python.PHP之间如何通过Thrift实现跨语言调用? 一.什么是Thrift Thrift是一种可伸缩的跨语言服务的发展软件框架.它结合了功能强大的软件堆栈的代码生成引擎,以建设服务. Thrift是facebook开发的,07年4月开放源代码,08年5月进入apache孵化器.创造Thrift是为了解决facebook系统中各系统间大数据量的传 输通信以及系统之间语言环境不同需要跨平台的特性.所以thr

改进的起泡排序算法--java

一.基本思路: 冒泡排序是一种简单的交换类排序.其基本思路是从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移.每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列. 一般地,对n个元素进行冒泡排序,总共需要进行n-1趟.第1趟需要比较n-1次,第2趟需要比较n-2次,......第i趟需要比较n-i次. 二.算法 2.1原始起泡排序算法 public static int[] bubb

go语言笔记——包的概念本质上和java是一样的,通过大小写来区分private

示例 4.1 hello_world.go package main import "fmt" func main() { fmt.Println("hello, world") } 4.2.1 包的概念.导入与可见性 包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容. 如同其它一些编程语言中的类库或命名空间的概念,每个 Go 文件都属于且仅属于一个包.一个包可以由许多以 .go 为扩展名的源文件组成,

用什么样的语言就有什么样的公司【转载】

原文地址 暂且不论编程语言,想想世界上各个民族的语言,比如,中文.日语.韩语.英语等等,语言对一个民族的思维方式有很大影响,东.西方人的思维方式差异很大,如果你看过<丑陋的日本人><丑陋的韩国人><丑陋的中国人>,即便是亚洲的中日韩三国,那差异也是非常巨大的,而它们的共同点,都无一例外受中国唐朝的影响.韩国曾经是飞机事故多发的国家,因为韩国的敬语很多(日本更多),等级观念也很重(日本更重),所以一个飞机员对空管员很客气的说:我飞机出问题了,空管员可能完全没意识到问题的严