1. 21

  2. 7

    I’ve been using Vala for a long time now. See my pet project. I’ve seen several projects like this start, then fail. Here are my suggestions:

    • If you don’t plan on trying to make a lot of money on this, make it open source and easy to contribute to.
    • There is a lot of vala documentation out there for people who just started using it and need help with syntax and the like. There is almost nothing out there once you know the basics. As backwards as it sounds, starting with the hard stuff and writing your way back to the easy stuff may not be a bad idea to help gain traction.
    1. 3

      For now I do not have any economic plan with it. Here is a GitHub for this book. You ( and any interested people ) are welcome to contribute. Although, contribution guideline are remain to written.

      Sure. I will keep your point #2 in mind.

      1. 2

        You might want to link to the github on the page.

    2. 6

      Is Vala still used and maintained? I thought Gnome dropped support with Gnome 3. In any case, it was a bright idea for the Gnome ecosystem, as raw C is a bit over complicated for desktop apps but scripting languages like Python are too slow for serious apps. There was Mono for a while, bit I’m glad it never caught on. Hope this will make Vala a viable alternative to C again!

      1. 7

        Vala is still used and maintained. Quite a few official Gnome apps are still written in Vala. Notably all of the games were ported to Vala.

        As for development, it has actually picked up quite a bit in the last couple of months. The language has improved significantly in the last year. If you haven’t tried it in a while now is a good time to in my opinion.

        1. 3

          Interesting. Last time I checked, Vala was pretty unmaintained.

          Happy to hear that changed. \o/

          1. 1

            This is really good to read, I also thought the project was going dormant. Vala is a tremendously under appreciated language and environment.

          1. 4

            I briefly looked at Vala for writing Oil [1], although I also looked at 5 or 10 other languages.

            For my purposes, Go is in a similar spot: they’re both C-like with more abstraction (interfaces in Go, classes in Vala). But Go has a complex runtime which starts threads and so forth.

            So Vala was interesting in it compiles to C and I believe have no runtime. However when I actually tried the C runtime (as opposed to the GUI runtime), it didn’t work for me. I think I got a compile error. I only spent about 10 or 15 minutes on it though.

            I’m still a bit curious if Vala is suited for writing low level / low-dependency code like a shell, vs. something like GUI code. My sense is that it’s more suited for the latter.

            [1] http://www.oilshell.org/

            1. 1

              what made you choose python over go for Oil?

              1. 1

                Go’s runtime is actually more complex than Python’s, in that it starts threads. Threads and processes don’t mix.

                Also, Go doesn’t use libc, which a shell pretty much needs. They have their own wrappers over raw syscalls.

                1. 1

                  What’s wrong with it starting threads? As long as you don’t start more than one goroutine, you should be fine.

                  Also, why does a shell need libc?

            2. 4

              Really want this to happen, i used to write and maintain lots of apps for elementary OS and all are written in Vala. Most new contributors were turned off due to so few resources available.

              Do reach out to @elementary on twitter, they would be more than happy to help/support the effort.

              1. 3

                I highly suggest that you start a mailing list to announce changes to this book, since what we have here is just an outline, and you’re going to want a way to refresh people on changes.

                1. 1

                  I see. Let me check how can I manage this.

                  1. 3

                    I think the simplest solution in terms of time invested per output would probably be Mailchimp, but I’m no expert on the matter..

                2. [Comment removed by author]

                  1. 2

                    Thanks. I have tried couple of times before. see this repo and old folder. But, previously I didn’t created outline for more chapters. But, now I think I have.

                  2. 2

                    woah if vala can build a C#-like with reference counting, does that mean we can build an ML-like with reference counting?

                    1. 2

                      My suggestion would be how to write a useful, robust Makefile (or CMake project, whatever) to build a Vala project. I haven’t written Vala in a while, but I remember the build process for multi-file projects to be a major pain point when I was writing it.

                      1. 3

                        Agreed with @steveno. elementary has done good work over developer docs. Regarding, meson, elementary also looking forword to work with it.

                        1. 2

                          A fairly robust CMake implementation exists. I’m currently using it. The Elementary project has put a good amount of effort into it.

                          With all that said, though, I would instead suggest tutorials on using Meson with Vala. That’s the direction the Gnome project is headed.

                          1. 1

                            Awesome, I’ll have to check that out when I get the itch to use some Vala again.

                        2. 1

                          You might be interested in automated build system initialisation: