我的Go+语言初体验——环境搭建篇(直男程序员的真实体验)

简介: 我的Go+语言初体验——环境搭建篇(直男程序员的真实体验)

前言

当我第一眼看到这个活动的时候,吸引我的不是所谓的奖励,而是活动文章中的“填补了国人开发者在数据科学领域的空白”,很有志气的一句话,我喜欢。我是个直男,也有代码洁癖,所以我会按照本心写真实体验,如果本文的语言太锋利伤害到了他人的话,只能说句抱歉,但是没打算改。


先说一下我对编程语言的看法,随着工作年限的增长,越来越觉着每个语言都有着其内核特点。目前最火的语言无不将自己的内核特点发挥到极致,就不一一举例了。其次不同的语言适用的场景也不同,有的适用于算法、有的适用于通讯、有的适用于工程。越火的语言,越是在自己擅长的场景中,有着自己庞大的生态圈、社交圈。你可以在各类网站上找到解决问题的办法,前人栽树后人乘凉。所以编程语言在我看来,总是带有着时代性,时代需要什么场景,什么语言自然会火起来。


初看到Go+语言的时候,我首先是有点失望的。因为顾名思义,Go+的内核还是go语言。go语言的强大自不必说,所以我上面说的内核特点一下子让我少了很多期待。凡事不能看表面,按照自己的习惯正式开始Go+语言的初体验。


官网体验

发一下Go+的官网地址:GoPlus - The Go+ language for engineering, STEM education, and data science


image.png


我找了一圈没有找到中文切换的按钮,后来我征询了一下微信群,貌似就没有中文官网。这里我提前吐槽一句,既然是国人的语言,为什么官网不先做中文的呢?


Go+语言项目github地址:https://github.com/goplus/gop


image.png


还是英文的,官方给出了Go+的定位 ,静态类型的语言、完全兼容go语言、更好的可读性。


在安装Go+之前,还是要点出Go+官网的功能点,可以在线编译语言,点击Try Go+,会弹出在线调试窗口。


image.png


环境搭建

首先需要安装Go语言,这个是前提条件,怎么装Go就不多说了。下面直接装Go+。


官方给出的安装步骤只有短短3句,花了我不少时间找其他资料和微信群沟通,官方资料如下:


image.png


1、按照这个流程安装下来,不出意外你会碰到和我下面一样报错。


image.png


解决方法在cmd中执行下面两行命令:


go env -w GO111MODULE=on

go env -w GOPROXY=https://goproxy.io,direct

安装成功后执行gop命令验证一下:


image.png


2、创建workspace后,开始第一个项目。我创建了一个test项目文件夹,在里面创建了一个test.gop文件。编写代码如下:


package main

import "fmt"

func main()  {

fmt.Println("hello world!")

}

使用命令:gop run test.gop,会发现如下报错:

image.png



经过多方求证,由于我是使用独立的workspace需要初始化一些必要的文件,需要在文件夹test下执行如下命令:


gop mod init test

go get github.com/goplus/gop/builtin

OK执行好了


image.png


3、vscodeIDE集成,需要安装goplus扩展插件。


image.png


打开项目后,在运行和调试中添加Node.js的配置,配置文件与项目结构如下。


image.png


launch.json文件内容如下:


// .vscode\launch.json
{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "gop run",
      "type": "node",
      "request": "launch",
      "runtimeExecutable": "gop",
      "cwd": "${workspaceFolder}",
      "program": "${file}",
      "runtimeArgs": [
        "run"
      ],
      "environment": [],
      "console": "integratedTerminal",
    }
  ]
}

执行下来没什么问题。


总结

目前我只是初体验了安装环境以及代码初步调试,还未对代码内容进行调试,下一篇会开始对go+语言部分进行调试。所以对目前已经体验的部分做一个总结。


缺点:


1)官网以及github项目均没有对中文进行支持,不太理解Go+对国人这两个字的理解,这点我要第一个说出来,希望后期团队可以支持中文支持。


2)安装Go+语言必须安装Go语言,这点我不太理解。一般来说衍生语言都会对应固定的版本号,不然假设我的go语言升级了版本,部分语法做了调整,而go+语言还未对该版本的语法支持,是不是我的Go+语言项目就无法运行了?所以我建议Go+可以将固定版本的Go语言一并打在安装包中,可以让使用者直接安装一个安装包即可进行编程,以后语言的版本升级也可以将Go语言同步升级,无需依赖外部的go语言环境。


3)初始化项目的命令可以在vscode的扩展插件进行支持,在编译运行过程中帮用户自动生成,减轻编译的复杂性。


4)官网很多语法的demo还未完善,建议逐步完善。现有在线调试案例过于简单,且不具备代表性。


优点:


1)官网具备在线调试功能,还是很友好的,虽然有点卡。


如果本文对你有用的话,点个赞吧,谢谢!


相关文章
|
1天前
|
安全 网络协议 Go
Go语言网络编程
【10月更文挑战第28天】Go语言网络编程
88 65
|
1天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
20 13
|
1天前
|
网络协议 安全 Go
Go语言的网络编程基础
【10月更文挑战第28天】Go语言的网络编程基础
16 8
|
1天前
|
安全 Go 开发者
代码之美:Go语言并发编程的优雅实现与案例分析
【10月更文挑战第28天】Go语言自2009年发布以来,凭借简洁的语法、高效的性能和原生的并发支持,赢得了众多开发者的青睐。本文通过两个案例,分别展示了如何使用goroutine和channel实现并发下载网页和构建并发Web服务器,深入探讨了Go语言并发编程的优雅实现。
8 2
|
1天前
|
Go
go语言常量的类型
【10月更文挑战第20天】
7 2
|
6月前
|
开发框架 安全 中间件
Go语言开发小技巧&易错点100例(十二)
Go语言开发小技巧&易错点100例(十二)
74 1
|
3天前
|
Go 数据安全/隐私保护 开发者
Go语言开发
【10月更文挑战第26天】Go语言开发
15 3
|
4天前
|
Java 程序员 Go
Go语言的开发
【10月更文挑战第25天】Go语言的开发
13 3
|
3月前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
122 1
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
3月前
|
算法 NoSQL 中间件
go语言后端开发学习(六) ——基于雪花算法生成用户ID
本文介绍了分布式ID生成中的Snowflake(雪花)算法。为解决用户ID安全性与唯一性问题,Snowflake算法生成的ID具备全局唯一性、递增性、高可用性和高性能性等特点。64位ID由符号位(固定为0)、41位时间戳、10位标识位(含数据中心与机器ID)及12位序列号组成。面对ID重复风险,可通过预分配、动态或统一分配标识位解决。Go语言实现示例展示了如何使用第三方包`sonyflake`生成ID,确保不同节点产生的ID始终唯一。
go语言后端开发学习(六) ——基于雪花算法生成用户ID