Snowball is a low-weight, statically typed, object oriented programming language with garbage collector and module system.
Explore the docs Β»
Website Β· Report Bug Β· Request Feature
Warning
This project is still in development and is not ready for production use. If you want to help us, you can join our discord server and help us with the development of the language. Snowball's syntax and features are subject to change at any time. Be aware of that! :c
π Greetings! Allow me to introduce you to Snowball, a statically-typed, low-weight, object-oriented programming language complete with a garbage collector and module system.
π With a myriad of features to offer, Snowball boasts object-oriented programming, memory safety, built-in functions for enhanced productivity, and faster execution than other languages. Plus, its garbage collector and unit testing make it a comprehensive tool for developers.
π So why not dive in and explore Snowball's capabilities? For more information, check out the installation guide. Happy coding!
Before we get started, you'll need to have snowball installed into your compuiter. Linux and macOS users, you are in luck! You can use this simple command to download snowball and get started.
curl -fsSL https://raw.githubusercontent.com/snowball-lang/snowball/dev/scripts/install.sh | sudo -E bash -s -- -y
git clone https://github.com/snowball-lang/snowball
cd snowball
# INSTALL REQUIRED DEPENDENCIES
sh ./build_scripts/install_deps.sh
sh ./build_scripts/release.sh
sudo make install -j100
note: We use -j100 to create 100 threads to make the compilation faster. This will make your computer slower, it can be removed.
First, you will need a new snowball project. For that, create a new directory and execute the following command:
snowball new --name myProject
In order to execute snowball code, you can run the following command to build and run the program:
snowball run
Here is an example of a class in snowball.
import std::io;
public func main() i32 {
io::println("Hello, world! π±");
}
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Follow this links and tell us your thoughts, ask questions and be part of the Snowball community!