Skip to content

[WIP] 🐱 Snowball is a low-weight, statically typed, object oriented programming language.

License

Notifications You must be signed in to change notification settings

Kaisia-Estrel/snowball

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Snowball 🐈

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


About The Project

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!

Getting Started with Snowball

Installation

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

Installation from source (unix)

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.

Writing Your First Snowball Program

First, you will need a new snowball project. For that, create a new directory and execute the following command:

snowball new --name myProject

Executing snowball code

In order to execute snowball code, you can run the following command to build and run the program:

snowball run

How does snowball feel?

Here is an example of a class in snowball.

import std::io;

public func main() i32 {
    io::println("Hello, world! 🐱");
}

Roadmap

See the open issues for a full list of proposed features (and known issues).

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Links

Follow this links and tell us your thoughts, ask questions and be part of the Snowball community!

About

[WIP] 🐱 Snowball is a low-weight, statically typed, object oriented programming language.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 53.3%
  • C 27.4%
  • Swift 15.9%
  • CMake 1.2%
  • Shell 1.0%
  • Ruby 0.4%
  • Other 0.8%