`Kinx` as a script language.
Tags: programming, ruby, javascript, python
Published: 2020-07-10 11:25:09

> The number of posted articles about Kinx is now being increased, so I put the [Contents](#contents) at the bottom of this post.

About a half year ago, I was thinking why a major scripting language is not similar with C style syntax, although almost all programmers are familiar with C, I guess. Of course, I know there are so many different opinions about what is a major script language, or what is a C like syntax, and so on.

To be simple, I thought a major script language was Python or Ruby. But Python is so far from C syntax. Ruby is also. (I like Ruby, though)

On the other hand I like JavaScript, and it is near a C syntax. But node.js is too heavy and it is not suited with lightweight use cases.

I didn't find anything that I wanted. Maybe you know what I want, but I couldn't find it then.

Anyway, I mean I wanted a lightweight scripting language with C style syntax.

# My Action

That is why I created what I want.

* https://github.com/Kray-G/kinx

# This POST means ...

If there is someone thinking about the same as what I have thought, this might be just a little helpful for the person. If you were that person, please push the star on [GitHub](https://github.com/Kray-G/kinx). It will be a motivation for me to continue the project.

# A Little Introduction

About the Kinx, I will show a bit the features written in [README.md](https://github.com/Kray-G/kinx). If you want to know the details, please see the [README.md](https://github.com/Kray-G/kinx), [QuickReference](https://github.com/Kray-G/kinx/blob/master/doc/QuickReference.md), or [Kinx Specification](https://github.com/Kray-G/kinx/tree/master/doc/spec).

Especially about [Kinx Specification](https://github.com/Kray-G/kinx/tree/master/doc/spec), I would like to make the document complete, but it is still in progress and there are so many incomplete documents.

The following features are from [README.md](https://github.com/Kray-G/kinx).

## Features

*   **Extendable**. Contributors are able to extend features easily for your own use.
*   **Lightweight**. You can start using this without a lot of work.
*   **Small**. Using C instead of C++. I love C++ but runtime is big in some cases.
*   **Object-Oriented**. Of course you can do the object-oriented programming.
*   C style syntax... no it is **JavaScript style syntax** rather than C, but it is also good.
*   **Dynamic typing**, but you can also specify the type.
*   **Native function** by JIT compiling supported with some limitations. Very fast.
*   Support **JIT Library** as an **abstracted assembler library**. You can use JIT directly in your program.
*   **Classes** and inheritance, **Higher order functions**, **Lexical scoping**, **Closures**, **Fiber**, **Garbage Collection**, and so on.
*   **Isolate** object to control native threads without Global Interpreter Lock.
*   Including libraries of **Zip**, **Xml**, **libCurl(HTTP)**, **SQLite3**, **Regular Expression**, **Parser Combinator**, etc.
*   **[REPL](https://github.com/Kray-G/kinx/blob/master/doc/utility/repl.md)** is provided by default.
*   Useful Testing System named as **[SpecTest](https://github.com/Kray-G/kinx/blob/master/doc/spec/spectest/README.md)**. It is designed to not only for Kinx but also for any other products.

# Thanks

Thank you very much for reading this post.

If you have some even a little interest in Kinx, please push the star, and I will get a motivation. Thank you.

Lastly, please report it if you find some bugs...

# Contents

Here are articles about Kinx that I posted.

* [Kinx Library - JIT](https://dev.to/krayg/kinx-library-jit-pfj)
* [Kinx Topics - Mandelbrot benchmark](https://dev.to/krayg/mandelbrot-benchmark-1381)
* [Kinx Library - Integer](https://dev.to/krayg/kinx-library-integer-3i98)
* [Kinx Library - Math](https://dev.to/krayg/kinx-library-math-1i80)
* [Kinx Library - Isolate (Multi Thread without GIL)](https://dev.to/krayg/kinx-library-isolate-multi-thread-without-gil-1m5e)
* [Kinx Library - String](https://dev.to/krayg/kinx-library-string-4mm0)
* [Kinx Library - XML](https://dev.to/krayg/kinx-library-xml-2j7)
* [Kinx Library - Zip](https://dev.to/krayg/kinx-library-zip-ccc)
* [Kinx Library - Process](https://dev.to/krayg/kinx-library-process-4h5l)