FatScript

2022-10-04 | aprates.dev

[1] Leia este post em português

The possibility of writing beautiful programs even in Assembly language, is what got me hooked on programming in the first place. Some programs are elegant, some are exquisite, some are sparkling. My claim is that, it is possible to write grand programs, noble programs, truly magnificent ones. - Donald Knuth

I'm a little sorry for not being able to share this experience with my friends who don't program. If I made a painting or a piece of music, I could be proud and say to them: "Look what I did."

You know, maybe they won't think it's impressive, but I wish they could at least understand.

If I show source code, they'll be like, "This is like reading Klingon." (got the Star Track reference? hehe). It really sucks that you can't share these artworks with non-programmers.

But anyway…

For the last few months I have been working on a pet project, a new programming language and it's interpreter.

Two important events led me to embark on this journey:

1. Many years ago I tried to simplify the work we were doing at Senac Rio using ActionScript (Flash), creating a configuration language that perhaps looked a bit like modern YAML. I named it at that time "FatScript".

2. I met Sady, a friend from those times, and we remembered the story of FatScript. I got home and found in my backups some traces of that unfinished project, and other more recent notes.

And so it begins…

The current endeavour started as an exercise to recap on tokenization, using some tutorials I found for JavaScript on the web, and since my ActionScript code would also be useless, I decided to start over from scratch in C.

I jotted down a lot of cool features that I like in Python, JavaScript, Scala, C and other ideas here and there, I also remembered some things that I considered bad and that I would like to avoid and started mixing and matching the syntax that I thought would stay out of the way when programming.

I've been doing this for at least 6 months, a few hours, every day. It doesn't really feel like a job, it feels like a game or an art, and it's a lot of fun, most of the time.

Finally I decided to make public the full implementation of "Fry, The FatScript Interpreter" under the GNU GPL v3 license. And this is what you can enjoy now!

Let my art speak for itself

I won't dive into details here, but I invite you to explore the official page:

[2] https://fatscript.org

You can be part of it

I think this project already has a life and personality of its own, as something that is growing organically.

Every time I look at the codebase, two or three new features seem possible to improve, which is great. But alone I got here, and in a collaborative way we can go even further.

So, if you are a programmer who enjoys learning new languages and would like to participate in this project, this is the right time. There's a lot to explore here.

If you want to join, leave a comment on the GitLab issues tracker, it will be a pleasure to exchange ideas with you.

See also

[3] Capsule Archives
[4] Capsule Home

Want more?

Comment on one of my posts, talk to me, say: hello@aprates.dev

[5] Subscribe to the Capsule's Feed
[6] Checkout the FatScript project on GitLab
[7] Checkout my projects on GitHub
[8] Checkout my projects on SourceHut

Join Geminispace

Gemini is a new Internet protocol introduced in 2019, as an alternative to http(s) or gopher, for lightweight text contents and better privacy.

Not sure how, but want to be part of the club? See:
[9] Gemini quick start guide

Already have a Gemini client?
[10] Navigate this capsule via Gemini


© aprates.dev, 2021 - content on this site is licensed under
[11] Creative Commons BY-NC-SA 4.0 License
[12] Proudly built with GemPress
[13] Privacy Policy