I started this project as a side project and named it Jackal because the jackal is my favorite animal—small, clever, and adaptable.
Back in 2023, I was deeply interested in programming MCUs and IoT (Internet of Things). At that time, I began wondering: what if I could build my own programming language? A language with a lightweight feel and modern syntax, designed specifically for MCU and IoT environments.
At first, things didn’t go well. The early versions were rough, and many ideas didn’t work as expected. But I shared Jackal with my friends, and surprisingly, they loved it. They started writing simple scripts—basic mathematical operations, small experiments—and for some of them, it was their very first experience writing code.
Seeing them get excited, learn, and enjoy programming through Jackal became a huge motivation for me. That moment is what pushed me to keep developing the language and continue improving it.
Jackal Introduction Page https://jackal-new-documentation.vercel.app/
Example Code ( Default Style )
This is an example of Jackal code that defines a function to add two numbers.
import std.Math
func add(a,b) {
return a + b
}
println(add(Math.sqrt(2 * 2),2))
Example Code ( Jackal Pipe Operator )
In this update, I introduce a new way of writing code in Jackal using the pipe operator (|>), which makes data flow more explicit and readable.
import std.Math
func add(a,b) = a + b
2 * 2 |> Math.sqrt() |> add(2) |> println()
Example Code ( Jackal Function )
If you are working with just one expression on the function you can use the = operator
func add(a,b) = a + b
func range() = for i in 1 .. 10 i |> println()
func add(a,b) {
return a + b
}
Example Code ( Jackal Entry Point )
In Jackal, a program can be executed with or without an explicit main function.
Without main
For simple scripts, code can be written directly at the top level:
println("hello world")
With @main
For structured programs, Jackal allows defining an explicit entry point using the @main annotation
@main
func main() {
println("hello world")
}
Example Code ( Reactive Syntax )
Jackal also supports reactive-style programming using the every loop.
This construct executes a block repeatedly at a fixed interval (in milliseconds) until a specified condition is met.
let count = 0
every(1000){
// block to execute
count ++
println(count)
} until (count >= 5) {
println("stop")
}
JkNotes(Jackal Ecosystem)

https://github.com/alegarsio/Jnotes
JkNotes is the cloud based jackal programming environment that use for data analysis and machine learning, i also use this project as my final project in my university .

Top comments (0)