Those days predate most people reading this, yet many new language syntaxes opt for "familiarity". I wish that all language design went through a filter where every character mattered like the designer was in an episode of Squid Game.
Bill Joy famously explained that syntax matters, a dense syntax puts more on screen. This is true even now. I struggle with this; my favorite syntax is a preprocessor that eliminates the need for most Lisp parentheses. The result is code poetry. Nevertheless, Haskell is more expressive.
(Here's an easy test: Anyone who proposes a way to minimize Lisp parentheses, who hasn't introduced a symbol for missing outline levels, is just pulling out chunks and hasn't used their system to write thousands of lines of code.)
I've written most of my lifetime of code in C, established my career in C, and C syntax is ground glass in my eyes.
Yes, I totally support this! Coming from languages like Haskell, most languages look so unnecessarily noisy to me. Cut the fat!
> Anyone who proposes a way to minimize Lisp parentheses, who hasn't introduced a symbol for missing outline levels, is just pulling out chunks and hasn't used their system to write thousands of lines of code.
What are outline levels? I tried Googling it but didn't find anything.
> C syntax is ground glass in my eyes.
Is that a good thing? I'm not sure what you mean by it.
Interesting.
And later when he (along with his collaborators) created Go, he moved with the times and avoided the need for semicolons.
Alongside they also shipped a tool that handles formatting so people can stop talking about that.
This is not something to write papers about, but a very significant thing anyway.
What's the preprocessor you're talking about?
But did he explain why it used semicolons, rather than periods, which would make more sense because a statement is basically a sentence?
Imagine that your statements are "x = y.x = z." The compiler needs to figure out if that middle dot is saying "x member of y" or if it's a statement terminator.
[1]: It's already complicated by that reuse, which is, I assume, why identifiers can't start with digits so your parser can be simpler.
print 42.0
I'd gladly trade a little compilation speed and ability to continue parsing incorrect code for a syntax without semicolons, braces, and other unnecessary characters. It's one of the things I really like about Python, though even that is starting to add lots of syntaxy glyphs.
Clearly no, because Vala has a bunch of issues with memory safety. Not because it's a bad language, but since it translates directly to GObject, there is a lot of problems around pointers, ownership, ... mainly because that language lacks maintainers and GTK/Gimp developers didn't like it because they are "C essentialists".
> Rust is on the horizon and have voices to use it instead Vala
And https://siliconislandblog.wordpress.com/2016/10/31/thoughts-...
Also mentioned here https://elementaryos.stackexchange.com/questions/10664/conce...
And it turns out that the Rust people eventually came up with nice ways of integrating GObject, starting from 2017
http://smallcultfollowing.com/babysteps/blog/2017/05/02/gnom...
And nowadays, gtk4 https://gtk-rs.org/gtk4-rs/git/book/ and relm4 https://aaronerhardt.github.io/relm4-book/book/ are pretty cool
So I think that today Rust is a more satisfying language to code with, even in the ultra-specific niche of writing stuff with GObject
However, things can change over time of course.
Faster compiler than rust, smaller binaries, easier syntax, good GUI as defacto library (GTK)
c# is more of it's own thing whereas visual basic sort of had the same underlying idea of "hey we have this object library that has its own memory allocation primitives and data structures; what if we exposed it as its own language rather than making everyone use it from c/c++"
Yorba was around for a bit and did a few really ambitious applications in Vala, but never really finished and kinda disappeared. Shotwell and Geary came from them.
Does Glade work okay on macOS and with Vala?
Half the time a new language gets introduced here and I spend 15 minutes hunting for some page somewhere on the site that deigns to share what the code looks like.
Agree with the point, but Vala is pretty old (relatively speaking). It's been around for a while and the whole idea is to have a GTK/GObject-focused C-family language. Last I looked it was a C transpiler and may still be.
I like to use Cheese, the nice little webcam app, to test a webcam when I first set it up or just take a selfie, even when I'm not on GNOME. That's a Vala application :)
int main (string[] args) {
var app = new Gtk.Application(
"com.example.App",
ApplicationFlags.FLAGS_NONE
);
app.activate.connect(() => {
var win = new Gtk.ApplicationWindow(app);
var btn = new Gtk.Button.with_label("Hello World");
btn.click.connect(win.close);
win.child = btn;
win.present();
})
return app.run(args);
}
Is this the equivalent of this html code? <button onclick="window.close()">Hello World</button>The equivalent portion is just these two lines:
var btn = new Gtk.Button.with_label("Hello World");
btn.click.connect(win.close);Don't they have optional arguments? Weird
Gtk.Application("com.example.App");
would look much nicer for such a glue language.
Here is a random example I found on the interwebs:
string greet (string name, string language = "English") {
if (language == "English") {
return @"Hello, $name!";
} else {
return @"Sorry $name, I don't speak $language";
}
}
greet ("John");
greet ("Jane", "Italian");From my early experiments with Vala, years and years ago, what I remember is that it had nice error messages and the author was very consistent in releasing new versions even when there wasn't too much momentum.
https://github.com/BuddiesOfBudgie/budgie-desktop
Also, on Arch I use Pamac as a GUI for package management and it is written in Vala as well.
I have used apps for quite a long time before realizing they were written in Vala. Not great for marketing but otherwise I would consider that one of its strengths.