Testing some of the new programming languages (Mojo/Jai)

1,422 views
Skip to first unread message

Mahmoud Fayed

unread,
Sep 16, 2023, 11:25:03 AM9/16/23
to The Ring Programming Language
Hello 

I enjoyed my time this month testing some of the new programming languages including:

1 - Mojo programming language (Designed by Chris Lattner - Known for LLVM, Clang & Swift) - The language is suitable for Machine Learning tools and applications.

2 - Jai programming language (Designed by Jonathan Blow - Known for Braid & The Witness games) - The language is suitable for Game Development (Maybe if you would like to write the game engine from scratch instead of using Unity or Unreal)

Mojo is under development from 2022 and the desktop version for Linux is released in Sept. 2023. While Jai is under development from 2014, It's not released for public usage, it's distributed to a few hundreds of developers.

Mojo try to be a Superset of Python and a replacement for (Python, C/C++ & CUDA) when developing ML projects.

Jai is a language for game developers, where it could be used instead of C/C++.

Both of these languages (Jai/Mojo) support creating libraries in the C language and since it's easy to have the Ring programming language embedded in any C/C++ project. In the future we could provide libraries to enable writing Ring scripts in Jai/Mojo (Maybe 3-5 years from now).

Greetings,
Mahmoud

Ilir Liburn

unread,
Sep 16, 2023, 11:36:29 AM9/16/23
to The Ring Programming Language
Hello Mahmoud,

you should also check Odin programming language and Zig (which is also a C compiler that claims to be able to generate fastest runtime).

Greetings,
Ilir

Mahmoud Fayed

unread,
Sep 16, 2023, 11:51:12 AM9/16/23
to The Ring Programming Language
Hello Ilir

>> "you should also check Odin programming language and Zig"

I have already checked them many years ago. 

Odin is very similar to Jai (I like how Odin is growing over time with respect to libraries/documentation)
While Zig seems to be different (Also it's usage for building C projects is awesome)

Greetings,
Mahmoud

Antonio F.S.

unread,
Sep 16, 2023, 12:40:51 PM9/16/23
to ring...@googlegroups.com

Good afternoon from the province of Barcelona. :-)

I have a client who forces me to make an application with Nim. I'm studying this language and I'm pleasantly surprised. I attach the URL in case there is something of interest that could be transferred to Ring.

https://nim-lang.org/

Best regards.
Antonio F.S.

-------------------------------------------------------------------

El 16/9/23 a las 17:25, Mahmoud Fayed escribió:

Ilir Liburn

unread,
Sep 16, 2023, 12:55:10 PM9/16/23
to The Ring Programming Language
Hello Antonio,

Yes, Nim VM is one of the fastest on the market, no wonder: it is statically typed. So it can generate executable without dependencies.

Ring2C will have same functionality while using Ring2Exe (if  dynamic capabilities like eval or reflection are not used).

Greetings,
Ilir

Mansour Ayouni

unread,
Sep 16, 2023, 1:14:17 PM9/16/23
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,

Nice to hear from you.

I was following Mojo from the beginning. But I don't know Jai. Thank you for telling me about it.

I totally adhere to your plan to make a connection between Ring and some of these languages. Since  I am concerned with the future of the language and its ability to cope with machine learning, AI and data intensive applications.

All the best,
Mansour

--

---
You received this message because you are subscribed to the Google Groups "The Ring Programming Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ring-lang+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ring-lang/592f53bd-167e-47e5-a574-50255110ef9an%40googlegroups.com.

Antonio F.S.

unread,
Sep 16, 2023, 1:19:20 PM9/16/23
to ring...@googlegroups.com
Thank you very much Ilir.

Best regards.
Antonio F.S.

----------------------------------------------------------

El 16/9/23 a las 18:55, Ilir Liburn escribió:

Ilir Liburn

unread,
Sep 16, 2023, 1:29:17 PM9/16/23
to The Ring Programming Language
Hello Anthony,

You're Welcome. Don't thank me yet, first Ring2C version is coming by the end of this year and it will be VM dependent. Next year is coming Ring2EXE version, only question is:  is it going to be Haxe based?

Greetings,
Ilir

Antonio F.S.

unread,
Sep 16, 2023, 1:52:54 PM9/16/23
to ring...@googlegroups.com
Hello Ilir.

Well, personally and due to lack of time, I have Ring "parked" in his
studio. I only work with Linux Mint and sometimes with Thin technologies
(many years with Windows and I don't want to know anything about that
operating system :-) ).

I'll be happy to hear from you.

Best regards.
Antonio F.S.

----------------------------------------------------------

El 16/9/23 a las 19:29, Ilir Liburn escribió:

Marry Jeyn

unread,
Apr 1, 2025, 1:19:52 PMApr 1
to The Ring Programming Language
There are so many programming languages nowadays that it's hard to know which one to choose for a new project. Python, JavaScript, Go, Rust - each has its pros and cons. I want to learn a new language, but I am afraid of making a wrong choice. How did you choose a language for your projects? Is there a convenient resource where you can compare their capabilities?

Dasa

unread,
Apr 1, 2025, 2:13:55 PMApr 1
to The Ring Programming Language
I, too, struggled with the choice of language for a long time when I decided to make my first serious project. At first I struggled between Python and JavaScript, then I suddenly became interested in Rust, but I couldn't make up my mind. I found GogoNerds, where everything is laid out: which languages are better for the web, which ones are better for mobile applications, and which ones are ideal for big data or games. It really helped me figure out what I needed. So, if you want to get to the bottom of things and not just read dry specs, I highly recommend you check it out!

Clement

unread,
Apr 2, 2025, 12:17:08 PMApr 2
to The Ring Programming Language

Choosing the Right Programming Language 

Selecting a programming language depends on your personal needs, whether for home projects or commercial work. If you're a student or aspiring developer aiming for job opportunities, focus on mastering languages in high demand. 

For me, I'm just vibe coding and handling simple CSV sales data management at work. In this case, I prefer Ring because of its simplicity and 1-based indexing, which feels natural when working with row-and-column data (like Excel). Other key factors are its GUI library support (LibUI, Qt, and Form Designer), enabling rapid development of apps that require user input and presentable data output. 

 I’ve also experimented with other languages—here are my thoughts on a few worth mentioning: 

 General Purpose / ML / AI: Python 

Pros:

  - Beginner-friendly with a massive ecosystem and superb documentation. 

  - Extensive tutorials (even on YouTube) and dedicated package docs (e.g., Pillow, PyPDF, PyGame, scikit-learn). 

  - Modern UI libraries like CustomTkinter (lightweight, fast, and easy to deploy with a sleek look). 

  - Performance improvements in Python 3.13+ (including experimental GIL removal). 

-Cons: 

  - Large executable sizes (minimum ~7MB, ~14MB with Tkinter). 

 

General Purpose / Systems Programming: Nim  

Why I Use Nim: For testing small routines and learning systems programming. 

 Pros

  - Feels like Python on steroids—same clean, indentation-based syntax but as fast as C. 

  - Compiles to C (via GCC/Clang/VCC) for standalone and small size executables. 

  - Modern memory management (ORC—Ownership-Reference Counting) for better performance. 

  - Easy C interoperability: 

    proc printf(formatstr: cstring) {.header: "<stdio.h>", varargs.}

 

printf("%s %d\n", "Hello from C function", 5)

 

echo "Hello from Nim function"

Nim is promising with continue community packages development, but it might face a close competition with Mojo in the future.


General Purpose / Systems Programming: V  

A promising new language still in beta. I’ve tested V for small projects, and its compiler is blazingly fast—generating executables in VS Code almost instantly. 

 Cool Features: 

  - Variables are immutable by default (use `mut` for mutability). 

  - No global mutable state. 

  - `defer` statements (like Go) for cleanup. 

  - Syntactic sugar for complex allocations (e.g., 3D arrays): 

       mut a := [][][]int{len: 2, init: [][]int{len: 3, init: []int{len: 2}}}

    a[0][1][1] = 2  // Weird but cool once you get it!

  

 Also can write Inline Assembly Language in V for low-level tinkering. 

  Drawbacks

  - Steeper learning curve due to unique syntax. 

  - Still evolving (beta status). 

 V is one to watch for future systems programming! 

 ---

 General Purpose / Scientific Computing: Julia

I like Julia’s syntax the most, it is clean and readable, with near-C speed for numerical computing. Perfect for math-heavy tasks: 

Strengths

  - 1-based indexing (natural for math/Excel users). 

  - Powerful array/matrix operations. 

- Weaknesses

  - Package management is slow (JIT compilation + large sysimages). 

  - No AOT compilation yet—no standalone `.exe` generation. 

 Ideal for scientists, but not yet for distributable apps.  Yea, NASA use it for some space calculation project.

 

General Purpose / Game Programming: Odin

A data-oriented alternative to C, designed for "sane" high-performance software (especially games). 

 Why It Shines

  - No OOP clutter—just data + functions. 

  - Fast compilation → Code fast, run fast

  - Used with Raylib for live game dev (check out creator Ginger Bill’s YouTube!). 

Best For:

  - Game developers wanting a modern C competitor. 

 

 Other Languages Worth Mentioning** 

 Mobile (Android):

- Kotlin / Dart / Java  — Kotlin reigns supreme for modern Android apps. 

 Web Dev:

- TypeScript / JavaScript  — TypeScript’s Go port promises 10x speed boosts. 

 

Targeting Windows .NET:

C# — Verbose like Java, but excellent for enterprise teams. 

 

For Webserver Backend/Concurrency: GO  

-Go — Simple concurrency model, but tooling can be finicky (e.g., Fyne UI hangs). 

 

For Low-Level Systems Programming:

- Rust / Zig — Overkill for my needs; steep learning curves. 

 

C Successors:  

- D / C3 / Carbon — Niche alternatives to modernize C.  


Others which I have not tested, so no comment:
Crystal / Ruby / Raku / Lua / Nelua / Perl / Scala / Haskell / OCaml, / Vala / Gleam

Just my 2 cents sharing.

Clement

unread,
Apr 6, 2025, 9:19:48 PMApr 6
to The Ring Programming Language
Just wanna share how to write Python customtkinter in Julia:

Setup customtkinter in Julia REPL:
Launch REPL
julia> using Conda
julia>env = Conda.PYTHONDIR
julia>Conda.pip("install", "customkinter")

To make sure customtkinter is installed in Julia:
julia>Conda.list(env)

Then, write Julia and Python programming in VS Code:
create a new file name Hello.jl

# Demo Code
# Write Python customtkinter GUI in Julia

using PyCall

ctk = pyimport("customtkinter")
ctk.set_appearance_mode("Dark")
ctk.set_default_color_theme("dark-blue")

# This is a Julia function print to console
function button_click()
    println("Hello, World!")
end

# Python customtkinter code goes here
# Main Window
app = ctk.CTk()
app.title("Dark Theme Example")
app.geometry("400x300")

# Add a label to the window
label = ctk.CTkLabel(app, text="Press the Button Below", font=("Arial", 16))
label.pack(pady=20)

# Add a button to the window
button = ctk.CTkButton(app, text="Click Me", command=button_click)  # call Julia function
button.pack(pady=10)

# Run the application
app.mainloop()


Run the program, and will see a Dark-Theme window with Blue Button, click and will see Hello World in the console.

This is really cool, because I like to use customtkinter Dark-Theme modern UI and use Julia function.

So its kind of a mixed Python Julia programming here.  Also, Julia can call R function, if need to write statistics programming.
 
Julia code is readable and easy to learn, use based index 1 and very fast compilation with JIT-LLVM backend compiler.

Mansour Ayouni

unread,
Apr 7, 2025, 4:17:08 AMApr 7
to Clement, The Ring Programming Language
Hello Clement,

Softanza library adds a bridge to Ring with external languages (like Pyhton, Julia, R, C, NodeJS...) called Softanza External Code Integration System (EXCIS).

Read about the Pyhton bridge here:

And the R bridge here:

All the other languages (current and future) work in the same easy way.

And this is an example running in Julia:

image.png

I'll come back to this discussion to tell you why I selected these languages and how I use them in collaboration in my real world projects.

Best,
Mansour

--

---
You received this message because you are subscribed to the Google Groups "The Ring Programming Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ring-lang+...@googlegroups.com.

Clement

unread,
Apr 7, 2025, 10:52:33 AMApr 7
to The Ring Programming Language
Thanks Mansour for such great effort in bridging Ring with other external languages which really helps opening up to a larger ecosystem of library packages.

Here's a comparison list of open source languages ecosystem with their package count repositories:

JavaScript  ~  2.5million
Python  ~  500,000
Go  ~   400,000
Ruby  ~   180,000
Rust  ~   150,000
Kotlin  ~   50,000
Dart   ~  30,000
Scala   ~  15,000
Julia   ~  10,000
Lua   ~  5,000
D   ~  3,000
Nim   ~  2,500
Crystal  ~   1,000
Zig  ~  1,000
V  ~  500
Odin   ~  200

JavaScript, Python, Go, Ruby and Rust have very large ecosystems, but also there are many duplicates, small utilities, low quality, abandoned project, not well maintained and lack of documentation.  Rust, Julia and Kotlin are fast growing.  D and Nim have been around for quite some time but still their package contribution remains small, while newer languages like Zig, V and Odin are growing rapidly.

Clement

unread,
Apr 28, 2025, 12:43:27 AMApr 28
to The Ring Programming Language
Check out some of the cool AI app builders here:

https://firebase.studio/
https://lovable.dev/
https://bolt.new/
https://replit.com/
https://supabase.com/

Video shows you how to make a simple drawing app in Firebase Studio and install the API key:
https://www.youtube.com/watch?v=LjL3J_TLt08

Just check it out, these tools can help vibe coding your front or back end apps in no time!

Mansour Ayouni

unread,
Apr 28, 2025, 7:35:10 AMApr 28
to Clement, The Ring Programming Language
Thank you Clement for this interesting video.
All the best,
Manour

Reply all
Reply to author
Forward
0 new messages