readme update

This commit is contained in:
Andrew Kelley 2017-01-31 13:26:53 -05:00
parent d8da34c64c
commit eb00aa21f5

View file

@ -1,13 +1,13 @@
# zig lang # zig lang
A system programming language intended to replace C. A system programming language which prioritizes optimality, safety, and
readability.
Zig intends to remain a small language, yet powerful enough to write Zig is a small language, yet powerful enough to solve any computing problem.
optimal, readable, safe, and concise code to solve any computing problem.
Porting a C project to Zig should be a pleasant experience - every C feature Zig intends to replace C. Therefore, porting a C project to Zig should be a
needs a corresponding Zig feature which solves the problem equivalently or pleasant experience. For every use case C can solve, the same use case must
better. be handled in Zig in an equally or more satisfying way.
Zig is not afraid to roll the major version number of the language if it Zig is not afraid to roll the major version number of the language if it
improves simplicity, fixes poor design decisions, or adds a new feature which improves simplicity, fixes poor design decisions, or adds a new feature which
@ -30,8 +30,9 @@ compromises backward compatibility.
than writing buggy code. than writing buggy code.
* No header files required. Top level declarations are entirely * No header files required. Top level declarations are entirely
order-independent. order-independent.
* Powerful constant expression evaluator. Generally, anything that *can* be * Compile-time code execution. Compile-time reflection.
figured out at compile time *is* figured out at compile time. * Partial compile-time function evaluation with eliminates the need for
a preprocessor or macros.
* Tagged union enum type. No more accidentally reading the wrong union field. * Tagged union enum type. No more accidentally reading the wrong union field.
* Generics so that one can write efficient data structures that work for any * Generics so that one can write efficient data structures that work for any
data type. data type.
@ -44,14 +45,12 @@ compromises backward compatibility.
* Release mode produces heavily optimized code. What other projects call * Release mode produces heavily optimized code. What other projects call
"Link Time Optimization" Zig does automatically. "Link Time Optimization" Zig does automatically.
* Mark functions as tests and automatically run them with `zig test`. * Mark functions as tests and automatically run them with `zig test`.
* Supported architectures: `x86_64`, `i386` * Currently supported architectures: `x86_64`, `i386`
* Supported operating systems: linux * Currently supported operating systems: linux, macosx
* Friendly toward package maintainers. Reproducible build, bootstrapping * Friendly toward package maintainers. Reproducible build, bootstrapping
process carefully documented. Issues filed by package maintainers are process carefully documented. Issues filed by package maintainers are
considered especially important. considered especially important.
* Easy cross-compiling. * Easy cross-compiling.
* Eliminate the preprocessor, but (most) everything you can accomplish with
the preprocessor, you can accomplish directly in the language.
## Planned Features ## Planned Features