Go 1.18 Beta1 Adds Generics & New Tools, and Meet the Neo Web Framework
The Go 1.18 Beta1 release introduces generics support, workspace mode, fuzz testing, and performance improvements, while the newly announced Neo framework offers a lightweight, MIT‑licensed solution for building Go web applications with simple installation and example code.
Go team leader Russ Cox announced the official release of Go 1.18 Beta1.
Go 1.18 Beta1 is the first preview version that includes support for generic code using parameterized types.
Go officials state that generics represent the most important change since Go 1 and the biggest single-language change they have made.
They caution that new large features often reveal bugs, and they do not want generics to be an exception; users should adopt them carefully. Some subtle cases, such as recursive generic types, are postponed to future releases.
Early adopters are encouraged to try generics for suitable use cases; a short tutorial is available, and a talk was given at GopherCon. The Go Playground’s dev branch mode can also be used.
Go 1.18 Beta1 includes the following enhancements:
Built‑in support for fuzz testing to automatically find inputs that cause crashes or invalid results.
A new “Go workspace mode” that lets users work with multiple Go modules simultaneously, useful for large projects.
An extended go version -m command that records compiler flags and other build details; programs can query their own build info via debug.ReadBuildInfo, and a new debug/buildinfo package can read build info from other binaries, forming a basis for SBOM tools.
The register‑based calling convention introduced in Go 1.17 for x86‑64 is now extended to ARM64 and PPC64, delivering about a 20% speed boost.
For more details, see the official blog: https://go.dev/blog/go1.18beta1
Neo: A Go Web Development Framework
On December 13, the open‑source Neo framework for Go was officially released, aiming to provide high development efficiency and quality.
Project site: https://ivpusic.github.io/neo/
API documentation: https://godoc.org/github.com/ivpusic/neo
Installation
# framework
go get github.com/ivpusic/neo
# CLI tool
go get github.com/ivpusic/neo/cmd/neoCreating a Neo application
neo new myapp
cd myappExample code
package main
import (
"github.com/ivpusic/neo"
)
func main() {
app := neo.App()
app.Get("/", func(ctx *neo.Ctx) (int, error) {
return 200, ctx.Res.Text("I am Neo Programmer")
})
app.Start()
}Run the application
neo run main.goThe Neo framework is released under the MIT license; its GitHub repository is https://github.com/ivpusic/neo.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
