What is Matcha?

Small overview of a framework, designing for Apple and Android apps development using Go 
03 October 2017   2079

What is Matcha?

Matcha is a package for building iOS and Android applications and frameworks in Go. Matcha provides a UI compenent library similar to ReactNative and exposes bindings to Objective-C and Java code through reflection. The library also provides Go APIs for common app tasks.



Matcha requires the following components to be installed. Unfortunately only macOS is supported at this time.

  • Go 1.8
  • Xcode 8.3
  • Android Studio 2.3
  • NDK
  • Protobuf 3.3 - ObjC and Java

To start, fetch the project and install the matcha command.

go get gomatcha.io/matcha/...

This command will create the Go standard library for iOS and Android. This may take awhile. The output is installed at $GOPATH/pkg/matcha. If your path doesn't contain $GOPATH/bin, you may need to replace these calls with $GOPATH/bin/matcha.

matcha init

Now build the example project. The output is installed at $GOPATH/src/gomatcha.io/matcha/ios/MatchaBridge/MatchaBridge/MatchaBridge.a and $GOPATH/src/gomatcha.io/matcha/android/matchabridge.aar.

matcha build gomatcha.io/matcha/examples

Let's open the sample iOS project.

open $GOPATH/src/gomatcha.io/matcha/examples/ios-app/SampleApp.xcworkspace

Learn more at GitHub.

V Language Compliler to be Open Sourced

V was designed to combine Go's simplicity of syntax, compilation speed, portability and maintainability of code with C / C ++ performance and Rust security
24 June 2019   379

Compiler for the V language has been transered to the open source. V is a compiled into machine code language with static typing, focused on solving problems of simplifying development tracking and ensuring a very high compilation speed. The compiler code, libraries and related tools are open under the MIT license.

The syntax V is a lot like Go, borrowing some constructs from Oberon, Rust and Swift. The language is maximally simplified and, according to the developer, it takes 30 minutes to study the documentation to learn the basics. At the same time, the language remains quite powerful and can be used to perform the same tasks as when using other programming languages ​​(for example, libraries are available for 2D / 3D graphics, GUI and web application creation).

Creating a new language was motivated by the desire to combine the Go's simplicity of syntax, compilation speed, simplicity of parallelizing operations, portability and maintainability of code with C / C ++ performance, Rust security and generation of machine code at the Zig compilation stage. Developers also wanted to get a compact and fast compiler that can work without external dependencies, get rid of the global scope (global variables) and provide the ability to "hot" reload code.

Compared to C ++, the new language is significantly simpler, provides a faster compilation speed (up to 400 times), practices safe programming techniques, is free from problems with undefined behavior, and provides built-in tools for parallelizing operations. Compared to Python, V is faster, easier, safer, and easier to maintain. Compared to Go, V has no global variables, no null, all variable values ​​must always be defined, all objects are immutable by default (immutable), only one type of assignment is supported ("a: = 0"), a significantly more compact runtime and the size of the final executable files, the presence of direct portability from C, the absence of the garbage collector, faster serialization, the ability to interpolate lines ("println ('$ foo: $ bar.baz')").

Get more info at Github