SkillAgentSearch skills...

Kin

The Kin Programming Language ( Write computer programs in Kinyarwanda - native language for Rwandans )

Install / Use

/learn @kin-lang/Kin
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <img src="https://github.com/kin-lang/kin/blob/main/public/kin-logo.svg" width="120" alt="Kin Logo" /> </p> <p align="center">Write computer programs in Kinyarwanda! </p> <p align="center"> <a href="https://kinlang.vercel.app/getting-started">Getting Started</a> . <a href="https://kinlang.vercel.app/#why">Why Kin?</a> . <a href="https://kinlang.vercel.app/getting-started#ide-integrations">VS Code support</a> . <a href="https://github.com/kin-lang/showcase"> Show us what you did! </a> </p> <div align="center">

GitHub . GitHub last commit . Version . Stars . Issues

</div>

Description

Kin is a straightforward programming language created with the purpose of aiding Rwandans to write computer programs in their native language Kinyarwanda.

:information_source: Contributors: Please see our ARCHITECTURE.md for a deep dive into Kin's architecture, design, and execution flow before contributing!

Why Kin?

  • Goal: Kin's main objective is to make learning programming more accessible by using Kinyarwanda, the native language for Rwandans.
  • Focus: It's a straightforward language, prioritizing easy of use over complex features. This makes it suitable for education purpose.
  • Use Cases: While Kin is great for learning the fundamentals, it's suitability for large-scale software development isn't guaranteed.

What does it look like

  • This is implementation of linear search:

    reka arr = [45, 56, 334, 78, 34, 78, 23, 90]
    
    reka i = 0
    
    reka key = 23
    
    subiramo_niba(i < KIN_URUTONDE.ingano(arr)) {
      niba (arr[i] == key) {
        tangaza_amakuru("Key ", key, " is on ", i + 1, " position")
      }
    
      i = i + 1
    }
    
  • Hello <name> !

    reka name = injiza_amakuru("Enter your name: ")
    tangaza_amakuru("Hello ", name, "!")
    
  • Executing system commands

    sisitemu("sudo shutdown now")
    

Syntax

Though Kin inherited it's syntax and structure from JavaScript, they're completely different when it comes to behavior. Some notable Kin's syntax rules are:

  • Semicolon:
    • A semicolon is required when you declare a variable but you don't assign a value to it.
       reka x; # This will work
      
    • A semicolon is required when a function returns but there's not expression to return.
      porogaramu_ntoya main() {
        tanga; # This will work
      }
      

      In General a semicolon is used to tell Kin that there's an ommited statement.

  • White spaces:
    • Kin ignores white spaces, that's why multiple lines can be written at the same line ... these codes are equivalens
      reka x = 5
      reka x=5
      

Fun fact!

  • Multiple statements can be written on the same line.

    reka name = injiza_amakuru("Enter your name: ") tangaza_amakuru("Hello ", name, "!")
    
  • Nested statements are also supported.

    tangaza_amakuru("Hello ", injiza_amakuru("Enter your name: "), "!")
    

Contributing

We still have a long way to go with Kin, we're calling for your contributions! Contributions are welcomed, refer to Contiributing.md for futher info.

Maintainers

This language is maintained by @pacifiquem.

License

This project is under MIT License.

<br> <br> <p align="right" style="color: gray; font: bold;">PACIFIQUE Murangwa - Author</p>

Related Skills

View on GitHub
GitHub Stars230
CategoryDevelopment
Updated23d ago
Forks14

Languages

TypeScript

Security Score

100/100

Audited on Mar 13, 2026

No findings