The V Programming Language Simple, fast, safe, compiled
vlang.io
vlang.io
Go being the exception as it uses Oberon-2 method syntax, an unsafe package similar to SYSTEM, and Robert Griesemer designed Oberon-V for his PhD.
It's debatably enough for those that know Oberon/Pascal to feel more comfortable. You can see the purposeful blending of various qualities of the languages.
Seems like they're taking a batteries included approach in trying to bring in as many use cases as possible using libraries written in V.
How are they progressing towards their promises for vlang in terms of base language features as a systems language ? I remember reading they still had some unsafe stuff going on that needed fixing
>> V UI is licensed under GPL3. A commercial license will be available. Open-source projects will have access to the commercial license for free. Every single feature will be open-sourced right away and available under both licenses. At some point in the future the library will be relicensed under MIT.
It'd be nice to see a commercial license.
It's still the early stages of the library and the language, so maybe it won't turn into some kind of mess. Possibly, they may have to do some rewrites of existing libraries. Still, it is a curious choice not to at least go LGPL, like many other projects have done who went down that GNU path. Seems like LGPL would have been the right balance to prevent sending mixed or "warning" signals.
There is also VIUP (https://github.com/kjlaw89/viup), which is a port of IUP. So, it's not like more adventurous types can't go play with that. That's under the friendlier MIT license.
We are talking about a cross platform UI with no dependencies, that was made to integrate from its early stages. This is partly why V is distinguishing itself from the pack.
http://ecere.org/ https://haxe.org/ https://dlang.org/ and ofc ... https://vlang.io/
All can compile to C and I find it somewhat important as would be very happy to share same code base with microcontrollers (SDCC), Android, Linux, Windows and web wasm. Unfortunately (to my knowledge) not all offer optional or selective garbage collection, some look immature and so on :-(
It can also compiles to c, c++, obj-c and js...plus it has an official jetbrains plugin.
The new ARC garbage collector fits the domain well. The non-atomic reference counting makes it predictable and deterministic. Though, it's possible to write Nim without using the GC or turn it off completely.
So yes I did and no, your subjective tastes aren't an objective reality. What's your point?
And if you don't write braces in a language that uses braces, it will also get ambiguous. What's your point?
> Also it's harder to visually parse.
I know that ease of reading is subjective, but I still find it weird that a human finds this:
a { b { c; d { e } } f }
easier to parse than this: a:
b:
c
d:
e
f
> your subjective tastes aren't an objective realityI'm not the one who used the word "insanity" for the block delimiting system I don't like.
> What's your point?
You shouldn't disregard a language just for superficial syntax features.
Not when they are mandatory, which they are in a number of languages (also the "do" / "end" blocks). You have no choice but to write valid code. I prefer it that way. Zero ambiguity.
> a { b { c; d { e } } f }
Whoever writes such code should be shot. There are newlines for a reason. And I am glad we have format-on-save these days. Less bikeshedding, exactly of the kind we're doing right now.
> easier to parse than this:
It's not for me, and not for one big chunk of the programmers. ¯\_(ツ)_/¯
> You shouldn't disregard a language just for superficial syntax features.
Daily productivity that is taking a nose dive due to constant fight with a system my brain doesn't want to work with is not superficial. That's like trying to tighten screws with two sticks -- it can likely be made to work, but it can take a long time and will be unproductive.
>Whoever writes such code should be shot. There are newlines for a reason. And I am glad we have format-on-save these days. Less bikeshedding, exactly of the kind we're doing right now.
So do you use indentation or braces to read code? If the former, what are you complaining about? If the latter, why would you use a tool that adds indentation when you already have braces?
There were online examples where people don't indent Python code as they go and then saving the file invokes LSP's auto-format which severely botched the code logic (and it was hard to spot). Seeing one such occurrence immediately triggers my alarms: I want to write code and be productive and not squint at whether I am at the right indentation level all the time.
> It's not for me, and not for one big chunk of the programmers. ¯\_(ツ)_/¯
Agreed.
> Daily productivity that is taking a nose dive due to constant fight with a system my brain doesn't want to work with is not superficial.
Truth. That's just the reality of how a lot of folks feel about it.
Not try to discount your goals, but chasing 8 bits is anachronistic, an ESP32-C3 is a single core 160Mhz risc-v chip with 400KB of on chip ram for $1 qty 1.
Rust can target AVR directly, https://www.avr-rust.com/
Wasm runtimes also available for embedded platforms, https://github.com/wasm3/wasm3
Edit: IIRC, there is a wasm2c program that might work.
You might like it.
I run into particular issues with some things, but they are usually easy to figure out or seek help on.
I do like the syntax and installing packages, e.g.:
v install ui