我的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)官网具备在线调试功能,还是很友好的,虽然有点卡。


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


相关文章
|
6天前
|
存储 JSON 监控
Viper,一个Go语言配置管理神器!
Viper 是一个功能强大的 Go 语言配置管理库,支持从多种来源读取配置,包括文件、环境变量、远程配置中心等。本文详细介绍了 Viper 的核心特性和使用方法,包括从本地 YAML 文件和 Consul 远程配置中心读取配置的示例。Viper 的多来源配置、动态配置和轻松集成特性使其成为管理复杂应用配置的理想选择。
23 2
|
4天前
|
Go 索引
go语言中的循环语句
【11月更文挑战第4天】
13 2
|
4天前
|
Go C++
go语言中的条件语句
【11月更文挑战第4天】
16 2
|
4天前
|
Go
go语言中的 跳转语句
【11月更文挑战第4天】
12 4
|
4天前
|
JSON 安全 Go
Go语言中使用JWT鉴权、Token刷新完整示例,拿去直接用!
本文介绍了如何在 Go 语言中使用 Gin 框架实现 JWT 用户认证和安全保护。JWT(JSON Web Token)是一种轻量、高效的认证与授权解决方案,特别适合微服务架构。文章详细讲解了 JWT 的基本概念、结构以及如何在 Gin 中生成、解析和刷新 JWT。通过示例代码,展示了如何在实际项目中应用 JWT,确保用户身份验证和数据安全。完整代码可在 GitHub 仓库中查看。
17 1
|
6月前
|
开发框架 安全 中间件
Go语言开发小技巧&易错点100例(十二)
Go语言开发小技巧&易错点100例(十二)
74 1
|
17天前
|
Go 数据安全/隐私保护 开发者
Go语言开发
【10月更文挑战第26天】Go语言开发
32 3
|
18天前
|
Java 程序员 Go
Go语言的开发
【10月更文挑战第25天】Go语言的开发
26 3
|
3月前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
130 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