/kin

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

Primary LanguageTypeScriptMIT LicenseMIT

Kin Logo

Write computer programs in Kinyarwanda!

Getting Started . Why Kin? . VS Code support . Show us what you did!

GitHub . GitHub last commit . Version . Stars . Issues

Description

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

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.



PACIFIQUE Murangwa - Author