6

I'm prototyping an application using Vala, in hope of targeting elementary OS. It was actually the elementary website at Build for elementary OS that first steered me towards Vala.

Now, Gnome is pushing back on new development using Vala: PSA:

@ebassi: PSA: if you want to write a new @gnome application, don't use Vala; if you're already using it, consider porting to a non-dead language.

This leaves my project in limbo of sorts - I've placed it on hold while I determine my best path forward.

This is very frustrating - Will elementary take over support of Vala? Or will you be guiding us to use a different dev tool?

5 Answers 5

7

Emmanuele's position seems to be that there are better alternatives to Vala, so you should use them instead; based on his tweet about LLVM-based languages, I'm guessing he is a fan of Rust. I've played with Rust a bit, and while I prefer it to JS and Python, I like Vala much better… For me, Rust isn't a better alternative, it's an worse alternative (though still better than JS or Python).

Every language has its warts. Emmanuele mentions some of Vala's big ones, but if those warts don't bother you why should you care? If you're happy with the current gdb support, what does it matter that it's not better? I may not be a typical user, but I actually prefer debugging the generated C since it gives me a better view of what is really going on. Vala isn't be seeing a lot of new feature development (especially compared to languages like Rust and JS), but it's still alive. Personally, I don't feel a great need for most of the features it's lacking, and I find it it much more pleasant than the other options for writing GNOME/GTK+ applications, so I'll continue to develop new applications in Vala where appropriate.

If something major which is lacking from Vala right now is a deal-breaker for you, you probably shouldn't get your hopes up that someone else will add that feature for you down the line, and should instead move on. Your other choices right now are basically JavaScript, Python, and C (Rust is coming up quickly, I think it will be a viable choice very soon).

Also, ebassi != GNOME. I have a lot of respect for him (and, therefore, his opinion), but the story isn't "GNOME discourages using Vala for new projects", it's "a prominent GNOME developer discourages using Vala for new projects". GNOME recommends JavaScript for new projects, and has for a while (a couple years, IIRC) now. That said, new applications are still being written in Vala, Python, C, and whatever people want to write them in.

1
  • 1
    All I was concerned about was the advisement not to start new projects, cause that's what I'm doing. I was afraid that support for Vala was going away, but it sounds to me like I fell for a fake news story. Thanks for taking time to explain, it is not so clear to outsiders what is going on with Vala. You have allayed my fears. I chose Vala because it's stable. With other languages, there is a constant stream of breaking changes due to evolution. This is fine for teams, but not for just me. I spend too much time with breaking changes to the language, and my project doesn't move forward. Commented Feb 12, 2017 at 17:24
4

More update: I came from the future. Vala is still alive and kicking!


Update: They would and pretty much they are the upstream considering the commits come from them.


People keep pushing code upstream so I suggest continuing the use of Vala for your app if you already have started on it. Otherwise, choose any language you personally prefer be it C, Javascript, or Vala. Language wars are as nonsensical to religious wars.

As @daniel-foré has mentioned on a reddit post

Every month some new person declares that x language is better, but we just keep submitting our patches upstream :)

4
  • This is not about language war, it's about lack uf support. The only reason this is about Vala is that is the language Elementary pushes developers toward on developer.elementary.io: "Vala. A Modern, Fast, Open Source Language." So I jumped in and started developing my application using Vala. But Gnome, who you have said supports Vala, actually tells us not to use it. So where does that leave me? The question is then "Will you now suport Vala now that Gnome no longer supports it" But no one will simple answer the question. Commented Feb 11, 2017 at 5:20
  • 1
    I cannot speak for Elementary or Daniel or anyone as I am not part of the team. But since many Elementary apps are already programmed in Vala, plus their continued support for Vala-related stuff, I don't see it as impossible for them take over after GNOME completely dropped the language. Commented Feb 12, 2017 at 6:40
  • 1
    Update: Yep, they would Commented Feb 12, 2017 at 13:33
  • Hey, Mr. from the Future! Any news?
    – aggsol
    Commented Mar 13, 2020 at 11:57
2

It's important to understand how GNOME works: individual contributors can say whatever they want as “PSAs” on social media, but the GNOME Foundation does not have an official stance on Vala.

In fact, Vala is being well-maintained, and both GNOME and elementary continue to use it (and contribute back when needed!). elementary exclusively writes code in Vala, and many of the core GNOME apps are in Vala as well. And elementary at least plans to continue to use and contribute to Vala for the foreseeable future.

As another GNOME contributor Michael Cotanzaro has written, Vala is still the best choice for GNOME and GTK development. It's a purpose-built language for GTK, after all, which means its bindings and integration are second-to-none.

In the future if a language like Rust or Go exceeds the tight integrations into the GNOME stack with bindings and lots of example code, then maybe those languages would make more sense. But right now Vala is in an excellent position and the talk of its death (mostly from a single developer's personal blog post) are greatly exaggerated.

0

Technically the "official" language of the Gnome project is JS, but support Vala because of it's popularity among developers.

6
  • then why does Gnome say not to use Vala? Did you read the PSA? Commented Feb 10, 2017 at 18:48
  • I redirect to my original comment
    – pretz
    Commented Feb 10, 2017 at 19:14
  • So what you mean is that we should use JS? Then the elementaryos website shouldn't be using Vala as the example. But that answers my question. JS is inadequate for my purpose, and not a replacement for Vala. I'll take targeting Elementary out of my requirements. Commented Feb 10, 2017 at 23:57
  • If you plan to build apps for elementary, which I recommend considering what they are doing for developers with Houston, I would stick with Vala and get good at building apps using that language. Elementary makes it easier with Granite.
    – pretz
    Commented Feb 11, 2017 at 15:40
  • I no longer intend to build apps for the Elementary platform. Commented Feb 11, 2017 at 15:43
-2

I'm afraid to say yes it is dead.

Very few questions (and even less answers) in SO.

No IDE that can debug vala. (Even Gnome-Builder).

Lots of IDE that drop support of it (monodevelop, valide...).

If you want to prove me wrong please post a less than 100 lines long scenario (wget, PPA, compilation...) to get a working decent IDE (*) in a popular distro (say ubuntu 17.10)

Decent IDE = syntax highlighting, code completion, OOTB working compilation chain, breakpoint and debug in vala code (I don't care about refactoring or perf tools)

2
  • At least leave a comment cow*rds :) This was written in 2018 but imo it is still mostly valid. Vala is a third class citizen (at best)
    – v1nce
    Commented Apr 10, 2021 at 14:30
  • I agree with you. Yesterday, I found a couple of pieces of vala code written around 2012 that can still be compiled and run, but are still a bunch of unsolvable warnnings internals. But what I want to say is that it is still more suitable for GTK development than JS. It's a pity that no one supports it.
    – eexpress
    Commented Mar 9, 2022 at 5:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.