The V Programming Language

@vlang
Simple, fast, safe, compiled language for developing maintainable software.
364 Posts · View blog posts
<Prev 1 ... 5 6 7 8 Next>
V UI 0.0.1 is out!

github.com/vlang/ui

It's a library for developing cross-platform UI apps.

In this demo the following widgets are used:

- Text boxes (incl. numeric & password only)
- Check boxes
- Radio button list
- Push button
- Progress bar
- Label
- Canvas
- Picture

V 0.1.24 is out.

Happy new year!

v fmt -w is out.

V's entire code base has been formatted.

Just like gofmt, vfmt is strict and has no options, ensuring one coding style across all code bases.

Right now V uses Go's syntax for casting:

var := Type(val)

This is very similar to function calls, it complicates the parser and I think it reduces readability.

What do you think about using `as` for casting, like in Rust and Kotlin?

V now has sum types.

The new AST is being built with them:

After lots of fixes in V, vweb, generics, V ORM, and Vorum, the V forum is back:

forum.vlang.io

It's an open-source web app written 100% in V.

V 0.1.23 is out!

This is the last release before 0.2.

Prebuilt V binaries for Linux, macOS, and Windows can now be downloaded from the home page.

They will be updated every couple of days.

Direct x64 machine code generation is here!

Building a 263 byte Hello World program in 3 milliseconds:

The compilation speed in this mode is about 1 million lines per second.

(It's at a very early stage, but by January, V will be able to compile itself without a C compiler.)

Blog post:

On the benefits of using C as a language backend

github.com/vlang/v/wiki/On-the-benefits-of-using-C-as-a-language-backend

The V community started working on vOS:

github.com/vlang/vos

If you are interested, join the development :)

This is not another toy OS project. vOS will be fully compatible with Linux with its great hardware and software support.

The new V UI toolkit will be the default.

V now runs on bare metal!

No libc or vlib.

From now on V can be used for embedded, kernel development, etc.

V just got the first platinum sponsor: http://mx.com!

The V online playground is back!

vlang.io/play

V 0.1.22 is out:

V now works with musl and runs on musl based distros, like Alpine Linux.

V now has generics!

You can check out the examples here:

github.com/vlang/v/blob/master/vlib/compiler/tests/generic_test.v

Blog post:

V now compiles itself in 0.09s

V now compiles itself in a stunning 0.09 seconds:

wget https://github.com/vlang/v/releases/download/0.1.21/v_linux.zip
unzip v_linux.zip && cd v
./v -o ./v2 v.v # warm up
time ./v -fast -o ./v2 v.v
0.06s user 0.03s system 97% cpu 0.094 total
./v2 -o v3 v.v # make sure that V can still buil

...

V now compiles itself in 0.09 seconds: github.com/vlang/v/wiki/The-V-language-now-compiles-itself-in-0.09-seconds

0.31 seconds on a slow 5 year old laptop :)

Running ImGui via SDL2/OpenGL in V:

github.com/nsauzede/sdl2test/tree/master/vig

Do you prefer single or double quotes?

V now has multiple return values:

fn foo() (int, int) { }
a, b := foo()

There are suggestions to remove the parentheses:

fn foo() int, int { }

This is something I also considered way back.

What do you think?

V 0.1.20 & 0.1.21 changelog:

Correction of my previous tweet: Solaris *is* under active development.

That's great news. Solaris is an awesome system, and it's good to have V support it. twitter.com/darrenmoffat/status/1177856636830044166

V now supports Solaris/SmartOS.

Solaris is not a very actively developed system, but still it's good to support it.

SmartOS is a pretty cool and promising in-memory hypervisor.

The end goal is to support all systems and all hardware.

I'm working on the declarative UI framework.

There are 2 options: use a small markup language similar to Qt's QML or use V itself, like SwiftUI and Flutter do.

Which one would you prefer?

GitHub discussion with syntax examples:

github.com/vlang/v/issues/2065

V now has a new -compress option.

When used, the entire V compiler can be compiled to a 128 KB executable.

This is very useful for web deployments, for example.

V can now compile to JavaScript!

Right now it's at a very early stage, but later this month you'll be able to run the entire V compiler in your browser.

V 0.1.19 is out!

Which lambda syntax do you prefer?

1) No new syntax: numbers.filter(fn(x int) bool { return x % 2 == 0 })

2) C#/Scala: numbers.filter(x => x % 2 == 0 )

3) Scala (short): numbers.filter(_ % 2 == 0)

4) Swift: numbers.filter($0 % 2 == 0)

u8, byte, or both?

Allowing both can be achieved via aliases, but it's against V's "one way" philosophy.

760 pull requests, 108 contributors, 1.2k commits, 11k stars in just two months after the open-source release.

Thanks to everyone for their contribution!

Things are looking good for the planned first stable release in September and a 1.0 release in December.

Which syntax do you prefer: a repeat expression or a simple function call?

numbers := [0 ; nr_repeats]
numbers := array.repeat(0, nr_repeats)

Removing the repeat expression will make the language simpler.

V is now supported by GitHub!

The full changelog is available here:

github.com/vlang/v/blob/master/CHANGELOG.md

V 0.1.18 has been released.

The changes are listed in the attached image.

Which mutable variable declaration syntax do you prefer?

vpm, the V package manager is out:

vpm.vlang.io

Submitting your V module takes a couple of seconds, and installing modules is now as simple as

v install pg

It's now possible to write web apps in V! The vweb framework is out:

github.com/vlang/v/tree/master/vlib/vweb

The V forum has also been open-sourced:

https://github.com/vlang/vorum

Everything, including HTML templates, gets compiled into one 100-200 KB binary file.

I'm starting work on V's package manager (similar to npm and Ruby Gems).

Any name suggestions?

This syntax is not going to change, but I'm really curious what the public opinion is.

Logical operators: C or Python syntax?

Interactive graph builder with hot code reloading.

A huge thanks to Delian Angelov for helping make this work.

V now runs on all major BSD systems: FreeBSD, OpenBSD, NetBSD, and DragonFly BSD.

Hot code reloading with V:

github.com/vlang/v/blob/master/examples/hot_code_reloading/bounce.v

V now has module aliasing. Which syntax do you prefer?

V 0.1 has been open sourced! You can download V for Linux, macOS, and Windows or build it from source in less than a second.

Some people even managed to successfully run it on Android!

You can access V 0.2 roadmap on GitHub:

github.com/vlang/v/projects/2

First happy V user

However, I decided to release the binaries together with the source on 6/22.

I wanted people to have an early access, but now I realize that running a binary blob without source is not reasonable.

I've just pulled the macOS build after it being up for 7h

Right now V uses Ruby's << for appending an element to an array. Some people think it goes against the design of the language.

Which one do you prefer?

V builds for Linux, macOS, and Windows will be available for everyone on June 20.

The source code will be published on GitHub on June 22.

Cross compiling is easy with V.

In this demo V for macOS is used to build V for Windows. Then v.exe is tested on a Windows VM:

<Prev 1 ... 5 6 7 8 Next>