Featured

GoLand 2020.3 Early Access Program Is Starting!

GoLand 2020.3 EAP starts today! You can find a detailed description of what’s to come in the roadmap for 2020.3. Get the first EAP build via the Toolbox App, download it from our website, or use a snap package (for Ubuntu). Or, right in GoLand, select Automatically...

GoLand 2020.2.3 Is Here!

Time to update! GoLand 2020.2.3 is out with lots of bug fixes and new features. You can update to 2020.2.3 by: Downloading it from the website. Updating via the Toolbox App. Applying a patch on top of 2020.2.2 or 2020.1.4 (go to Help | Check for Updates). Or using a...

Visual Studio Code August 2020

Downloads: Windows: User System | Mac | Linux: snap deb rpm tarball Welcome to the August 2020 release of Visual Studio Code. There are a number of updates in this version that we hope you will like, some of the key highlights include: If you'd like to read these...

What’s Next: GoLand 2020.3 Roadmap

Three weeks ago, we released GoLand 2020.2. We packed this version with new features for Go modules, better presentation of possible problems and weak areas in your code, the ability to navigate from a comment to its related source code, new code inspections, new code...

GoLand 2020.2.2 Bug-fix Update Is Out!

GoLand 2020.2.2 is out with a bunch of new fixes. You can update to 2020.2.2 by: Downloading it from the website. Updating via the Toolbox App. Applying a patch on top of 2020.2.1 or 2020.1.4 (go to Help | Check for Updates). Or using a snap package (for Ubuntu). Here...

Visual Studio Code July 2020

Downloads: Windows: User System | Mac | Linux: snap deb rpm tarball Welcome to the July 2020 release of Visual Studio Code. There are a number of updates in this version that we hope you will like, some of the key highlights include: If you'd like to read these...

Popular GoLand plugins

GoLand is an IDE for Go that offers a lot of functionality out of the box, like refactorings, Go Modules support, working with Docker, etc. Some of that functionality is provided by bundled plugins, and you can add yet more functionality by installing additional...

Go 1.15 is released

Alex Rakoczy 11 August 2020 Today the Go team is very happy to announce the release of Go 1.15. You can get it from the download page. Some of the highlights include: For the complete list of changes and more information about the improvements above, see the Go 1.15...

GoLand 2020.2 EAP #3 is Out with WSL2 Support for Git, and New Add Caret Per Selected Line Action

The third build in the GoLand Early Access Program is out! You can get this EAP build through the Toolbox App, by downloading it from the website, by using a snap package (for Ubuntu), or from right inside GoLand by selecting Automatically check updates for Early...

Debugging in GoLand – Windows minidumps

A while back we talked about debugging the core dumps produced on Linux systems. Since then, the IDE has had an update that allows it to debug the equivalent memory dumps produced on Windows systems, called minidumps. As with core dumps, minidumps can be analyzed on...

GoLand 2019.2 Reaches Beta

The upcoming GoLand 2019.2 has reached the Beta milestone today! This means that we’ve stopped adding new features for this release cycle, and are now focusing on polishing everything that’s destined for the release build. The Beta is quite stable in...

Go 2, here we come!

Background At GopherCon 2017, Russ Cox officially started the thought process on the next big version of Go with his talk The Future of Go (blog post). We have called this future language informally Go 2, even though we understand now that it will arrive in...

Columbus Golang Users Group

Go Modules: v2 and Beyond

Introduction This post is part 4 in a series. Part 1 — Using Go Modules Part 2 — Migrating To Go Modules Part 3 — Publishing Go Modules Part 4 — Go Modules: v2 and Beyond (this post) As a successful project matures and new requirements are...

GoLand 2020.2 EAP Build 6 Out with Support for GOMODCACHE, Faster Resolve for Vendor, and New Code Inspections

Hello, You can get this EAP build through the Toolbox App, by downloading it from the website, or by using a snap package (for Ubuntu). Or get it right inside GoLand by selecting “Automatically check updates for Early Access Program” in Preferences /...

GoLand 2019.2 Early Access Program is starting!

The first EAP build for GoLand 2019.2 is now available. You can get it via the Toolbox App, from the website, using snap packages (for Ubuntu), or even from GoLand itself – just be sure that you select Automatically check updates for Early Access Program in...

Video Recording and Q&A of GoLand Tips & Tricks Webinar

During our recent webinar, we shared over 40 GoLand tips & tricks that you can use to boost your productivity with the IDE. Here’s the summary of the presentation and all the tips shown:00:00:18 – Organize projects in IDE00:01:13 – Hide/Show...

GitHub Actions: first impressions

I've been using Travis CI fairly extensively since 2013, when I moved my personal OSS projects from Bitbucket to GitHub. It's a great service and a much-appreciated boon to the open-source community. However, since Travis announced that their .org variant is shutting...

Writing multi-package analysis tools for Go

In my posts about embedding in Go last month, I provided multiple examples of different kinds of embeddings from the Go standard library. How did I find these examples? I wish I could say it all comes from a deep familiarity with the breadth and depth of the standard...

Embedding in Go: Part 3 – interfaces in structs

August 19, 2020 at 19:54 Tags Go This post is part 3 in a series describing the kinds of embedding Go supports: Structs in structs (part 1) Interfaces in interfaces (part 2) Interfaces in structs (this part) Embedding interfaces in structs At first sight, this is the...

Embedding in Go: Part 2 – interfaces in interfaces

August 17, 2020 at 17:48 Tags Go This post is part 2 in a series descibing the kinds of embedding Go supports: Structs in structs (part 1) Interfaces in interfaces (this part) Interfaces in structs (part 3 - TBD) Embedding interfaces in interfaces Embedding an...

Embedding in Go: Part 1 – structs in structs

August 15, 2020 at 05:43 Tags Go Go doesn't support inheritance in the classical sense; instead, in encourages composition as a way to extend the functionality of types. This is not a notion peculiar to Go. Composition over inheritance is a known principle of OOP and...

An Intel 8080 assembler and online simulator

While going through Charles Petzold's "Code" book again, I was looking for an easy-to-use online assembler and simulator for the classic Intel 8080 CPU, but couldn't find anything that fit my needs exactly. There are some well-done tools out there, but they seem to be...

How to dump the GOSSAFUNC graph for a method

The Go compiler’s SSA backend contains a facility to produce HTML debugging output of the compilation phases. This post covers how to print the SSA output for function and methods. Let’s start with a sample program which contains a function, a value...

You don’t need virtualenv in Go

Programmers that come to Go from Python often wonder "do I need something like virtualenv here?" The short answer is NO; this post will provide some additional details. While virtualenv in Python is useful in many situations, I think it'd be fair to divide them into...

Diamond interface composition in Go 1.14

Per the overlapping interfaces proposal, Go 1.14 now permits embedding of interfaces with overlapping method sets. This is a brief post explain what this change means: Let’s start with the definition of the three key interfaces from the io package;...

Just released a little library, Peek-A-Buf

Hi, I just released a little library I'd like to share here: Peek-A-Buf Peek-A-Buf is a buffered reader with side effect free peeking capability. Quite niche, very tiny, but maybe someone finds this a bit interesting. 🙂 https://github.com/philiplb/peekabuf

Theoretical Question about runes and 5/6 byte Unicode

If by some strange happenstance I encountered an old 5 or 6 byte unicode string and I loaded into a rune variable, would go massage that into it’s 4 byte (32int) format or would I have a problem? I don’t expect this to happen, hence the word “theoretical” in the...

What are the implications of the HTTP model of Go?

Hi, recently on GoTime Roberto Clapis and Peter Bourgon briefly discusses the HTTP model of Go (https://changelog.com/gotime/147 start point 14:14). The point is that Go wants you to think about the request travelling the stack like we know it from the call stack and...