Tact is a new programming language for TON blockchain that is focused on efficiency and simplicity. It is designed to be easy to learn and use, and to be a good fit for smart contracts. Tact is a statically typed language with a simple syntax and powerful type system.
What is Tact?
Familiar syntax
Tact offers familiar syntax inspired by JavaScript & Typescript, Rust and Swift. Powerful features such as algebraic data types and compile-time execution look organic and friendly to new developers.
Strong type system
Tact offers algebraic data types compatible with TL-B scheme. Arithmetic is always safe because integers have precise bounds. Tact compiler helps you perform necessary checks and does not produce silent failures or unexpected truncation.
Gas control
Blockchain programs have strict execution cost model. Every operation must be paid for in real time and execution may fail mid-way if it runs out of gas.
Tact makes cross-contract messages safe with precise gas commitments and compiler checks of the execution costs. Variable costs are either statically bounded, or checked explicitly in runtime.
Tact and FunC
FunC is a lower-level language aimed at developers who are deeply familiar with TON architecture. FunC liberates developers from writing raw Fift code, while providing the same level of control.
Unfortunately, the precision of FunC makes it harder to write complex multi-contract systems.
Tact enables developers to go even further: you can write the entire suites of smart contracts with strongly typed interfaces and statically verified execution costs. With Tact you can focus on your problem and worry less about blockchain idiosyncrasies.
Tact is just getting started
Tact is a very new project. It is not fully designed yet and ready to use at your own risk. We announce it early in order to collect the feedback and make it useful to developers incrementally.
To start, see the Getting Started section of Docs. Track our progress (and help with development) on Tact Github.