C for the modern world.
Pronounced [see-uh] (IPA: /siə/)
Sea is a general-purpose language made to allow programmers to write low-level, performant, and portable code without needing to write C.
Features:
- 100% interoperability with C. All C libraries can be cleanly used in Sea, and vice-versa too.
- C interoperability is also completely overhead-free!
- As little ambiguity as possible (except in the pronunciation of Sea and C, whoops).
- Equally as fast as C since Sea gets transpiled to C.
Inspired By:
Note:
Sea does not aim to replace C. That's basically impossible. What isn't impossible is to make a language that makes working with programming at the C-level just a little less tedious. That's what Sea aims for, C but a little bit more modern.
At the moment, Sea is not in a feature-complete state, however if you want to
try it, you can build the compiler using cargo build --release
.
To build Sea code, use sea compile --run ./path/to/input.sea
(or
sea c -r ./path/to/input.sea
).
# The only dependency you need is Cargo/Rust
git clone https://github.com/emmathemartian/sea
cd sea
sh ./scripts/install.sh
# In one command
git clone https://github.com/emmathemartian/sea && cd sea && sh ./scripts/install.sh
# Make sure to add ~/.sea/bin/ to your $PATH
I simply enjoy writing languages! :P
For a more "real" reason: I love writing C, however I also like modern syntax and a more... usable standard library.
C's stdlib is absolutely usable, however a modern stdlib designed around modern practices is significantly more usable than a stdlib designed around code practices from the 70s.
Of note, the Sea standard library can be 100% ignored and you can use solely the C standard library if you wish. Or you can also use no standard libraries, if you so chose.
Read this! doc/developers.md
MIT License, see here for license text.