TL;DR – The design of the language is outdated – The implementation is buggy and not production ready – There's generally little momentum (tools, mindshare etc.) – It won't be fixed because there are almost no maintainers and none will join at this point
Frankly I would recommend you to use some other language. Vala suffers from a number of problems: – the compiler is basically not production ready. I dug into the source code just a bit and found trivial ways to break type checking. I fixed some of them (e. g. Bugzilla bug 641418, 615830 and several more), but I soon realized those were just the tip of the iceberg. – C code generation is also broken, reports about invalid C code being generated appear all the time, not to mention the C compiler warnings… – Some type system bugs are essentially unfixable, e. g. covariant generics. That means that for some generic type Gen, Gen<T> is a subtype of Gen<U> whenever T is a subtype of U. This is broken by design, it allows type-unsafe code to pass and disallows code that is perfectly safe. There are solutions to this problem (see e. g. Scala's variance annotations), but it's basically impossible to retrofit them as they tend to affect the way applications and libraries must be written and thus break huge amounts of user code. – Obvious features are missing, like type bounds for generics (the possibility to specify that a type parameter must be a subtype or supertype of some other type) – the compiler maintainers are not very active. Luca Bruno left entirely and Jürg Billeter is quite hard to get a hold of. The problem isn't even that they're not maintaining/improving the compiler but that they also don't appear to be very keen to find new, more active maintainers. Yet every patch needs to go through them. As an example, see this bug: https://bugzilla.gnome.org/show_bug.cgi?id=772209 (incidentally this is also a C code generation bug) I'd like to fix it, but if nobody wants to merge or even review the patch, it's impossible to get anything fixed. I would have expected to be offered commit access after fixing ~half a dozen bugs, but that didn't happen. – compiling to C is a bad idea. Among other things, it means that when you want to use a debugger, you have to step through the generated C code rather than the Vala code you actually wrote. The fix? Write a real (e. g. LLVM-based) code generator, it's just a small matter of programming ;-) – autotools. In 2017. – Generally poor tooling. I couldn't even find a decent editor that supports basic features like jump to definition, find symbol usages, code completion etc.. And I've tried quite a few like Anjuta, Gnome Builder and more. None worked properly – No momentum. Emmanuele Bassi's blog post should be well-known at this point, but just in case: https://www.bassi.io/articles/2017/02/13/on-vala/ – Worst of all, while hacking on the compiler, I realised that programming in Vala is simply not a lot of fun as it is fundamentally an outdated design. I use Scala in my day job which certainly shapes my expectations, but boy, is programming Vala a pain. The collections are useless as they lack basic methods like map, filter, flatMap etc. (or Select, Where and SelectMany as C# likes to call them). Immutable model classes are super inconvenient because there's just so much boilerplate required for them. Compare Scala: case class Foo(bar: Bar, baz: Baz) to Vala: class Foo { public Bar bar { get; } public Baz baz { get; } public Foo(Bar bar, Baz baz) { this.bar = bar; this.baz = baz; } } And this isn't even complete as Scala also gives you a method to create modified copies of an object – a feature one would probably emulate with the builder pattern in Vala, resulting in tons of more boilerplate. And again, this is just the tip of the iceberg… Note that I'm not trying to bash the Vala designers here, after all junk like Java and C# is what is being taught in Universities, so I can't blame them for coming up with such a design. So yeah, I agree with Emmanuele: it's time to let it go, and it's certainly not the language to start your next project with. That's my take on it, anyway. All the best, Matthias > Gesendet: Montag, 03. April 2017 um 17:01 Uhr > Von: "Sascha Manns" <sascha.ma...@mailbox.org> > An: vala-list <vala-list@gnome.org> > Betreff: [Vala] Starting with Vala > > Hello list, > > i would like to learn Vala and plan to port a Mono-GNOME-App to Vala. I > already seen the documentation. > > Maybe you know some small Vala apps where i can see the code in action? > > Greetings > > Sascha > > -- > Sascha Manns > Maifeldstraße 10 > 56727 Mayen > > P: +49-2651-4014045 > W: http://saigkill.tuxfamily.org > > > _______________________________________________ > vala-list mailing list > vala-list@gnome.org > https://mail.gnome.org/mailman/listinfo/vala-list > _______________________________________________ vala-list mailing list vala-list@gnome.org https://mail.gnome.org/mailman/listinfo/vala-list