ArkScript, A small, lisp-inspired, functional scripting language
(arkscript-lang.dev)
from SuperFola@programming.dev to programming@programming.dev on 25 Jul 17:38
https://programming.dev/post/34515050
from SuperFola@programming.dev to programming@programming.dev on 25 Jul 17:38
https://programming.dev/post/34515050
I’ve been working on this (not so little anymore) project for some time now, and I’m finally happy with the branding, UX and docs state.
It’s a scripting language I made at first as a toy, to learn new parsing methods, explore compiler optimizations, and go back to VM land where everything is low level and amazing (at least for me) ; it’s now a fully fledged language that can be used as a scripting language like Python or Ruby, and can also be very easily embedded inside a project, as one would do with Lua.
Let me know your thoughts and opinions on the project!
threaded - newest
Given that there are zillions of lisp variants out there, why would someone want to make serious use of this compared to something like Guile Scheme (or one of the other schemes)?
Having said that, the website and branding is really pretty!!! In particular, I absolutely love your usage of color gradients. Some minor feedback is that when the screen is wide, I think that would be nice if the “A small, lisp-inspired, functional scripting language / Get Started” element flowed to the middle relative vertically to the examples column rather than floating at the top. (I do like how it floats above the right column when the screen is narrow, though.)
Also, just to check, do you have a time limit set for the Playground so that people do not over-tax your system? (You might also look into WASM so that people run their scripts locally.)
Thanks for your comment!
That’s a tough question, because it often boils down to preferences. I think a beginner developer or even someone fed up with the complexity of modern languages could be interested in the language, as it is very small but still more than usable. Only 9 keywords, no hidden meaning, everything follows the same rules : open a paren, then the first thing is a function call, the rest are arguments. I think the « lisps have too many parentheses » is a false problem only used by trolls. I won’t say that you have to understand the flow or fall into the matrix to use it and avoid the parens, it’s more about having a consistent coding style so that you don’t have to care about the closing parentheses. Plus with a modern editor, parentheses groups have different colors and are easy to match, you can navigate to the starting / closing paren with a keybind (% in vim, command/ctrl M in jetbrains IDE).
I’m no frontend dev, so I battle a lot with it so it displays how I want ; I tried with flex to center vertically the « getting started » section, will have to try again.
Yes, there is a time, cpu and memory limit to the playground, no worries! I started the playground about a year ago but only just recently managed to compile to wasm, I’ll see in the future if I can swap the docker integration for it.
A different way of stating my remark is that it might be nice to have a page that lists other lisp variants and has a bullet point or two for saying how ArkScript does things differently in a way that someone might find nicer.
Yeah, I remember having to fight similar battles when I created a web page for a similar project! Don’t worry about it if it proves too much of a pain.
I double-checked, and it seems my timeout command was incorrect. I set it up again (with additional testing), and it now properly kills the container(s) after 20 seconds.
Excellent! I got a bit concerned when my experimental infinite loop was able to run for over a minute. 😉
Every time i see lisp i realize why it never caught on. A syntax only its creator could love.
)))))))))))
Honestly once you understand that parentheses actually help you organize your code better, lisp syntax is nice to use. So what lisp version is arklisp? 1 or 2 1 is scheme like and 2 is Common Lisp like.
Except that in practice people also indent their code, making the parentheses redundant clutter, especially since the usual convention is to put all of the closing parentheses at the end where it hard to immediately match each one up visually with its corresponding opening parenthesis.
My preference is for the way Haskell handles this, where essentially there is a syntax built on braces and semicolons that you can always fall back on, but most of the time you can just use indentation and it will figure things out just fine via built-in layout rules.
Finally, it seems immediately apparent that this is a type-1 lisp given that there is only one syntax for assigning to symbols and it is used both for functions and for other values.
Crash bandicoot was written in lisp