← Back to team overview

elementary-dev-community team mailing list archive

Go-like build tools for Vala


Firstly, let me just say that CMake and Make are a pain to learn. I'm a
professional software developer and I still can't figure them out. In my
job, we use tools that automate the nightmare that is project management
(usually IDEs) and it's usually still unpleasant. The tedium of these
"tools" is the one thing keeping me from using Vala as a primary
programming language and otherwise contributing to Elementary.

That said, lately I've been getting into Go (golang), and I'm finding it to
be an AMAZING language; however, it's only 3 years old, thus it doesn't
have an extensive collection of libraries. The only prominent GTK library
is very immature and (I believe) it only supports some features from
GTK+2.0 (none from 3.0). Among the more amazing features of Go are its
build environment tools.

`go build [app-name]` is all that is needed to build an entire
application--no messing with CMakeLists or makefiles (no project metadata
of any kind, in fact). Furthermore, `go install [app-name]` will build and
install the application to a location in your PATH, making it instantly
executable. Go also comes with an awesome test suite out of the box, and
`go get [http://path.to.online/repository]` will automatically fetch a
package from a public code repository (it works with git and several other
repo types) and store the files alongside your own source code.

I think it would be a huge help to elementary developers if we at least
created a Vala version of (at least) the `go build` tools to facilitate
project management. This would dramatically lower the entry barrier to
Elementary development, and it would encourage an organized structure for
application source code across applications.

At this point, I'm not proposing spending time and resources working on
this, but I'd like to get some discussion going about the merits of this
idea, particularly from people with Go and Vala experience.

Sound off!

-Craig Weber

Follow ups