elementary-dev-community team mailing list archive
Mailing list archive
Re: Go-like build tools for Vala
On Feb 5, 2013 1:16 PM, "David Gomes" <david@xxxxxxxxxxxxxxxx> wrote:
> If by "Elementary", you mean elementary OS, I'd like to say that I've been
> doing desktop development there for almost a year now and only rarely did I
> have to use CMake to its full extent. All I have to do is fetch a project,
> "mkdir build; cd build; cmake ..;make;", and after I've fetched a project,
> I really only have to write some code "cd build;make;". I really hope CMake
> isn't the reason you aren't helping us, because right now we could really
> use some help!
> However, I did learn how to write CMakeLists.txt files on side projects,
> which came in handy later on for elementary OS development, but to help us,
> there's no need to struggle with CMak. If you need to write anything, I
> encourage you to learn because it's really easy -
> that is the CMakeLists.txt I had to write for a side project, and it was
> quite simple (also, I do realize it's pretty badly-written, from what I've
> been told on #cmake).
> Those Go build tools you're talking about look cool and easy to use, but
> they are go-only. I think you should learn CMake or Autotools because you
> can use them with every language/library/framework that needs building
> (even Go!). Anyways, "go build" is probably not too hard to write for Vala
> projects that don't use any external libraries.
> Oh, and I just remembered, autotools, CMake and the likes help you A LOT
> with packaging your applications. They handle lots of stuff that would be a
> PITA to do yourself.
> David "Munchor" Gomes
> On Tue, Feb 5, 2013 at 9:05 PM, Craig <weberc2@xxxxxxxxx> wrote:
>> 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]`<http://path.to.online/repository%5D>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@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~elementary-dev-community
>> More help : https://help.launchpad.net/ListHelp
> Mailing list: https://launchpad.net/~elementary-dev-community
> Post to : elementary-dev-community@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~elementary-dev-community
> More help : https://help.launchpad.net/ListHelp