Hosted Continuous Integration Options for Java Projects

Recently I’ve noticed a lot of GitHub projects containing .travis.yml files, indicating that the owner uses the Travis continuous integration service to periodically build their project and run unit tests. Out of curiosity, I thought I might I try out some of the hosted offerings that are popular in the open source and startup communities. In my professional Java developer life, the industry standard for years now has been Jenkins (formerly Hudson prior to the fork). [Read More]

Go for Java Programmers: Formatting Rules and Surprises

Part of the Go for Java Programmers series Go (Golang) is more opinionated than Java about best practices in writing code. This avoids a lot of problems in general, and makes Go code much more uniform and easy to understand by other developers. However, it’s a significant adjustment for many Java programmers. In this article, we will look at the formatting of Go source code, and other surprising rules that are enforced by the compiler. [Read More]

Go for Java Programmers: Control Structures

Part of the Go for Java Programmers series Go (Golang) has only three basic control structures. However, each of them are significantly more versatile than their Java counterparts. If The if statement should be immediately recognizable. In its basic form it appears the same as in Java, just without parentheses around the condition: ... if err != nil { fmt.Println("An error occurred!") } ... However, Go’s version differs from Java’s if in two regards. [Read More]

Go for Java Programmers: Packages, Functions, and Variables

Part of the Go for Java Programmers series Go’s Familiar Syntax Due to their shared heritage in the C programming language, Go (aka Golang) code should be fairly recognizable to a Java developer. Here is the canonical “Hello world” program, which you can execute and modify through your browser on the Go Playground site: package main import "fmt" func main() { fmt.Println("Hello world") } Functions and control structures begin and end with curly-braces. [Read More]

Go for Java Programmers: Introduction

Part of the Go for Java Programmers series Background Go (often referred to as “Golang”) is a fairly new programming language, first conceived in 2007, with version 1.0 released in 2012. Its three inventors are currently Google employees, with impressive credentials. Ken Thompson is the legendary father of UNIX. Rob Pike created the influential Plan 9 operating system alongside Thompson, and Robert Griesemer worked on the Java HotSpot virtual machine and Google’s V8 JavaScript engine. [Read More]