Having a period / full stop as the EOL punctuation rather than a semicolon is a nice idea. But personally I think the idea of a line terminator is antiquated.
Using square brackets for strings feels superfluous when you have to quote the strings anyway. Was there a reason for this design?
I don’t like the “stop” keyword either. Is that doing anything special that the ‘.’ punctuation isn’t already doing? If so, that should be clearer.
Using whitespace to reference objects instead of ‘->’ or ‘.’ is also counterintuitive. However at least this is just familiarity issue; at least just so long as tabs and multiple spaces don’t break the method calls. Otherwise you then have an easy way to introduce hard-to-spot bugs.
On the positive side of things, it’s nice to see someone experimenting with language syntax. There’s definitely aspects I do like there too.
"The language is intentionally neutral and apolitical, without any stance on social or political issues."
I don't applaud or condemn this, but it's strange that it's on the home and history pages. Putting this in a code of conduct document for collaborators might make sense, but on the home page? Maybe I'm the weird one, but for most languages I consider them a tool. So it's like going to the hardware store and seeing a hammer that has a label "This is not a Liberal or Conservative hammer." Yeah, buddy I know. It's just a hammer.
It's kinda funny. There is a popular claim that goes something like "silence or inaction is implicit support for the status quo." The point is that there's not really such a thing as "not taking sides."
I don't quite agree with that, simply because no matter how many things you do take a stance on, there's always an infinite number of things that you haven't taken a stance on.
But when you go out of your way to explicitly mention that you're refusing to take a stance on all social or political issues, that actually does feel pretty close to explicit approval of the status quo for all social or political issues. Of course this likely was not the intent! So why say it at all?!
I was having doubts about this too. But in today's (geo)political climate it might be useful. Otherwise I can always delete it. But you're right, it's just a hammer.
> The language is intentionally neutral and apolitical, without any stance on social or political issues.
does this mean something?
i was very confused by your description of xoscript as typeless. only typeless languages i know of are languages where a variable can only be a word. i assume you mean it's dynamically typed.
every new language that gets on hn gets two criticisms: they don't show code first thing, and they don't start with what problem is being solved by designing a new language. i'm not very interested in those things. i would, however, like to be told what it is in a concise way. you've basically got, if i understand correctly, a smalltalk-like system here, prototype based instead of class based, with dynamically scoped variables, and you're tooling it with server side scripting in mind. that tells me a lot more than code.
as for the what-problem-are-you-solving-by-designing-this-language criticism, if we're honest we can see that every language is either designed as an experiment, "what would a language be like if...?", or it's designed as a matter of personal ergonomics, "i want language X with differences i, j, and k cuz i like it that way." i'm completely fine with that.
I used PHP, nodejs, Python etc and I just wanted something simpler. I use OpenBSD as my server os and I wanted a scripting language that matches the simplicity (and security) of OpenBSD.
Interesting to see, Gabor. I don't like the "stop" thing. I think the verbosity can be tuned down a bit in that case, but I understand the small-talk message passing need for "Out write". Am I allowed to use just write "out" instead of "Out"? I assume case sensitivity, but I couldn't find in the docs anything about it.
I have used RedBeanPHP for many things and contributed a bit. Thank you.
I know it's probably not for everyone, but yeah I like the general idea of Smalltalk. However, xoscript does not have the whole vm/image thing. Also no classes, just prototypes. So I guess it sits more between smalltalk and js. You can create a class by overriding the new-method of an object though. That will essentially give you a class.
Having a period / full stop as the EOL punctuation rather than a semicolon is a nice idea. But personally I think the idea of a line terminator is antiquated.
Using square brackets for strings feels superfluous when you have to quote the strings anyway. Was there a reason for this design?
I don’t like the “stop” keyword either. Is that doing anything special that the ‘.’ punctuation isn’t already doing? If so, that should be clearer.
Using whitespace to reference objects instead of ‘->’ or ‘.’ is also counterintuitive. However at least this is just familiarity issue; at least just so long as tabs and multiple spaces don’t break the method calls. Otherwise you then have an easy way to introduce hard-to-spot bugs.
On the positive side of things, it’s nice to see someone experimenting with language syntax. There’s definitely aspects I do like there too.
I don't applaud or condemn this, but it's strange that it's on the home and history pages. Putting this in a code of conduct document for collaborators might make sense, but on the home page? Maybe I'm the weird one, but for most languages I consider them a tool. So it's like going to the hardware store and seeing a hammer that has a label "This is not a Liberal or Conservative hammer." Yeah, buddy I know. It's just a hammer.
I don't quite agree with that, simply because no matter how many things you do take a stance on, there's always an infinite number of things that you haven't taken a stance on.
But when you go out of your way to explicitly mention that you're refusing to take a stance on all social or political issues, that actually does feel pretty close to explicit approval of the status quo for all social or political issues. Of course this likely was not the intent! So why say it at all?!
does this mean something?
i was very confused by your description of xoscript as typeless. only typeless languages i know of are languages where a variable can only be a word. i assume you mean it's dynamically typed.
every new language that gets on hn gets two criticisms: they don't show code first thing, and they don't start with what problem is being solved by designing a new language. i'm not very interested in those things. i would, however, like to be told what it is in a concise way. you've basically got, if i understand correctly, a smalltalk-like system here, prototype based instead of class based, with dynamically scoped variables, and you're tooling it with server side scripting in mind. that tells me a lot more than code.
as for the what-problem-are-you-solving-by-designing-this-language criticism, if we're honest we can see that every language is either designed as an experiment, "what would a language be like if...?", or it's designed as a matter of personal ergonomics, "i want language X with differences i, j, and k cuz i like it that way." i'm completely fine with that.
I have used RedBeanPHP for many things and contributed a bit. Thank you.
Oh, I just read it was mentioned in the history of the project too.
But from a visitor's perspective, I suggest you let the code tell the story.
Some code samples on the homepage would be very useful. Especially as, from the syntax, it looks like it isn't just another C-family language.
https://xoscript.com/docs.xo?chapter=server