This looks very interesting. I'm hoping there will be more documentation. For example, docs for the standard library/packages and explanation about the design of the language (does it use garbage collection? how does the type system work? how does the foreign function interface work? etc.).
Technically I could find all these things out by reading all the source code, but that's a lot of work just to see if the language meets my needs.
A quick look suggests strong typing and that's a huge plus. The syntax is easy to understand and read, but I hope it will be consistent - if writeInt, why not writeStr etc. too?
From reading the readme, it seems the Language was designed to explore increasing compile speed, and producing optimized code without using LLVM. Yet all the comments are about the syntax. Never change, programmers. Personally, I would have painted the bikeshed blue.
I wish we could get away from putting syntax and naming betweeen us and languages.
io.write is really annoying to me. rw.read and rw.write makes much more sense, or io.in io.out.
io.writeInt writes an int as what, ascii/unicode, or binary? an Int is likely already binary/2's complement, and the language should print strings too, it's just a bad name.
leaving parentheses out surrounding predicates and/or a semicolon at the end should be my choice, not yours, it has nothing to do with the language and I have preferences.
If languages provided flexible syntax per user, divorcing themselves from syntax, then the further description of the language would be semantic. I have no idea what the semantics of this Q are, or are intended to be, and that's what matters. Compilation speed? that's not a language.
Sounds like you may like Perl, with its TIMTOWTDI ("There's more than one way to do it") principle. For example you can do "if" and "unless", in regular or suffix notation... If you go to Perl 6 (Raku) you can redefine major parts of the language like operators.
Of course this flexibility is one of the reasons why Perl is no longer popular - everyone has "preferences" and allowing too much freedom just means you cannot read others' programs easily.
There's already a Q language from KX.
https://code.kx.com/q/
Can build the compiler on macOS 15.6 but it crashes.
./q examples/hello/hello.q
signal: killed
./q examples/collatz/collatz.q
signal: killed
Even copying q files into q's folder doesn't work
Ah, didn't notice the issue is already in discussion: https://git.urbach.dev/cli/q/issues/6
Interesting that one of the goals is not to depend on llvm :D
This looks very interesting. I'm hoping there will be more documentation. For example, docs for the standard library/packages and explanation about the design of the language (does it use garbage collection? how does the type system work? how does the foreign function interface work? etc.).
Technically I could find all these things out by reading all the source code, but that's a lot of work just to see if the language meets my needs.
Looking through the code a bit. This is quite impressive for such a short time working on it.
A quick look suggests strong typing and that's a huge plus. The syntax is easy to understand and read, but I hope it will be consistent - if writeInt, why not writeStr etc. too?
From reading the readme, it seems the Language was designed to explore increasing compile speed, and producing optimized code without using LLVM. Yet all the comments are about the syntax. Never change, programmers. Personally, I would have painted the bikeshed blue.
It really ought to have a simple example in the readme to give people a feel of the syntax.
does quickly draw attention to it's examples directory though
I saw the examples directory. It should still be at the top of the readme.
Not to be confused with any of
https://en.wikipedia.org/wiki/Q_(programming_language_from_K...
https://en.wikipedia.org/wiki/Q_Sharp
https://q-lang.sourceforge.net/qdoc.pdf
I think the syntax is really pretty!
I wish we could get away from putting syntax and naming betweeen us and languages.
io.write is really annoying to me. rw.read and rw.write makes much more sense, or io.in io.out.
io.writeInt writes an int as what, ascii/unicode, or binary? an Int is likely already binary/2's complement, and the language should print strings too, it's just a bad name.
leaving parentheses out surrounding predicates and/or a semicolon at the end should be my choice, not yours, it has nothing to do with the language and I have preferences.
If languages provided flexible syntax per user, divorcing themselves from syntax, then the further description of the language would be semantic. I have no idea what the semantics of this Q are, or are intended to be, and that's what matters. Compilation speed? that's not a language.
Sounds like you may like Perl, with its TIMTOWTDI ("There's more than one way to do it") principle. For example you can do "if" and "unless", in regular or suffix notation... If you go to Perl 6 (Raku) you can redefine major parts of the language like operators.
Of course this flexibility is one of the reasons why Perl is no longer popular - everyone has "preferences" and allowing too much freedom just means you cannot read others' programs easily.