Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/goplus/gop
The Go+ programming language is designed for engineering, STEM education, and data science
https://github.com/goplus/gop
data-science engineering golang gop goplus low-code programming-language scientific-computing stem stem-education
Last synced: about 1 month ago
JSON representation
The Go+ programming language is designed for engineering, STEM education, and data science
- Host: GitHub
- URL: https://github.com/goplus/gop
- Owner: goplus
- License: apache-2.0
- Created: 2015-12-12T01:21:39.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2024-04-18T22:27:21.000Z (about 2 months ago)
- Last Synced: 2024-04-20T09:16:03.212Z (about 2 months ago)
- Topics: data-science, engineering, golang, gop, goplus, low-code, programming-language, scientific-computing, stem, stem-education
- Language: Go
- Homepage: https://goplus.org
- Size: 22.6 MB
- Stars: 8,776
- Watchers: 186
- Forks: 545
- Open Issues: 37
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Lists
- awesome-list - gop - The Go+ language for data science | goplus | 5163 | (Go)
- awesome-stars - gop
- awesome-stars - goplus/gop
- go-awesome - Go+ - 七牛云开源面向数据科学的语言,完全兼容Go语言 (开源类库 / 编译器)
- awesome-stars - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science (Go)
- awesome-stars - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science. (Go)
- awesome-stars - goplus/gop - GoPlus - The Go+ language for engineering, STEM education, and data science (Go)
- awesome-stars - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science. (Go)
- my-awesome-stars - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science. (Go)
- awesome-stars - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science. (Go)
- awesome-starts - goplus/gop - GoPlus - The Go+ language for data science (Go)
- awesome-ccamel - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science (Go)
- awesome-stars - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science (Go)
- artsz-awesome - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science. (Go)
- awesome-starts - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science. (Go)
- stars - goplus/gop
- awesome - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science (Go)
- awesome-stars - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science (Go)
- awesome-stars - gop - GoPlus - The Go+ language for data science (Go)
- my-awesome-stars - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science (Go)
- awesome-stars - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science (Go)
- awesome-go - goplus/gop
- awesome-repositories - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science (Go)
- awesome-stars - goplus/gop - `★8847` The Go+ programming language is designed for engineering, STEM education, and data science (Go)
- awesome-programming-languages - Go+ - The Go+ programming language is designed for engineering, STEM education, and data science. (Uncategorized / Uncategorized)
- awesome-stars - goplus/gop - The Go+ programming language is designed for engineering, STEM education, and data science (Go)
- go-awesome - Go+ - Qiniu Cloud open source data science oriented language, fully compatible with Go language (Open source library / Translator)
- my-awesome - goplus/gop - science,engineering,golang,gop,goplus,low-code,programming-language,scientific-computing,stem,stem-education pushed_at:2024-05 star:8.8k fork:0.5k The Go+ programming language is designed for engineering, STEM education, and data science (Go)
README
![]()
The Go+ Programming Language
[goplus.org](https://goplus.org) | [Docs](doc/docs.md) | [Go+ vs. Go](doc/goplus-vs-go.md) | [Tutorials](https://tutorial.goplus.org/) | [Playground](https://play.goplus.org) | [iGo+ Playground](https://repl.goplus.org/) | [Contributing & compiler design](doc/contributing.md)
[![Build Status](https://github.com/goplus/gop/actions/workflows/go.yml/badge.svg)](https://github.com/goplus/gop/actions/workflows/go.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/goplus/gop)](https://goreportcard.com/report/github.com/goplus/gop)
[![Coverage Status](https://codecov.io/gh/goplus/gop/branch/main/graph/badge.svg)](https://codecov.io/gh/goplus/gop)
[![GitHub release](https://img.shields.io/github/v/tag/goplus/gop.svg?label=release)](https://github.com/goplus/gop/releases)
[![Discord](https://img.shields.io/badge/Discord-online-success.svg?logo=discord&logoColor=white)](https://discord.com/invite/mYjWCJDcAr)Our vision is to **enable everyone to create production-level applications**.
#### Easy to learn
* Simple and easy to understand
* Smaller syntax set than Python in best practices#### Ready for large projects
* Derived from Go and easy to build large projects from its good engineering foundation
The Go+ programming language is designed for engineering, STEM education, and data science.
* **For engineering**: working in the simplest language that can be mastered by children.
* **For STEM education**: studying an engineering language that can be used for work in the future.
* **For data science**: communicating with engineers in the same language.For more details, see [Quick Start](doc/docs.md).
## Go+ Classfiles
Rob Pike once said that if he could only introduce one feature to Go, he would choose `interface` instead of `goroutine`. `classfile` is as important to Go+ as `interface` is to Go.
In the design philosophy of Go+, we do not recommend `DSL` (Domain Specific Language). But `SDF` (Specific Domain Friendliness) is very important. The Go+ philosophy about `SDF` is:
```
Don't define a language for specific domain.
Abstract domain knowledge for it.
```Go+ introduces `classfile` to abstract domain knowledge. See [Go+ Classfiles](doc/classfile.md).
## Key Features of Go+
* A static typed language.
* The simplest engineering language that can be mastered by children (script-like style).
* Performance: as fast as Go (Go+'s main backend compiles to human-readable Go).
* Fully compatible with [Go](https://github.com/golang/go) and can mix Go/Go+ code in the same package (see [Go/Go+ hybrid programming](doc/docs.md#gogo-hybrid-programming)).
* No DSL (Domain Specific Language) support, but SDF ([Specific Domain Friendliness](doc/classfile.md)).
* Support Go code generation (main backend) and [bytecode backend](https://github.com/goplus/igop) (REPL: see [iGo+](https://repl.goplus.org/)).
* [Simplest way to interaction with C](doc/docs.md#calling-c-from-go) (cgo is supported but not recommended).
* [Powerful built-in data processing capabilities](doc/docs.md#data-processing).## How to install
### on Windows
```sh
winget install goplus.gop
```### on Debian/Ubuntu
```sh
sudo bash -c ' echo "deb [trusted=yes] https://pkgs.goplus.org/apt/ /" > /etc/apt/sources.list.d/goplus.list'
sudo apt update
sudo apt install gop
```### on RedHat/CentOS/Fedora
```sh
sudo bash -c 'echo -e "[goplus]\nname=Go+ Repo\nbaseurl=https://pkgs.goplus.org/yum/\nenabled=1\ngpgcheck=0" > /etc/yum.repos.d/goplus.repo'
sudo yum install gop
```### on macOS/Linux (Homebrew)
Install via [brew](https://brew.sh/)
```sh
$ brew install goplus
```### from source code
For now, we suggest you install Go+ from source code.
Note: Requires go1.18 or later
```bash
git clone https://github.com/goplus/gop.git
cd gop# On mac/linux run:
./all.bash
# On Windows run:
all.bat
```## Go+ Applications
### 2D Games powered by Go+
* [A Go+ 2D Game Engine for STEM education](https://github.com/goplus/spx)
* [Aircraft War](https://github.com/goplus/AircraftWar)
* [Flappy Bird](https://github.com/goplus/FlappyCalf)
* [Maze Play](https://github.com/goplus/MazePlay)
* [BetaGo](https://github.com/xushiwei/BetaGo)
* [Gobang](https://github.com/xushiwei/Gobang)
* [Dinosaur](https://github.com/xushiwei/Dinosaur)### HTTP Web Framework
* [yap: Yet Another Go/Go+ HTTP Web Framework](https://github.com/goplus/yap)
### HTTP Test
* [yaptest: HTTP Test Framework](https://github.com/goplus/yap/tree/main/ytest)
### DevOps tools
* [Go+ DevOps Tools](https://github.com/goplus/gop/blob/main/doc/dsl-vs-sdf.md#demo-go-devops-tools)
### Data processing
* [HTML DOM Query Language for Go+](https://github.com/goplus/hdq)
## IDE Plugins
* vscode: https://github.com/goplus/vscode-gop
## Contributing
The Go+ project welcomes all contributors. We appreciate your help!
For more details, see [Contributing & compiler design](doc/contributing.md).
## Give a Star! ⭐
If you like or are using Go+ to learn or start your projects, please give it a star. Thanks!