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
-- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp