Oh, I just read it was mentioned in the history of the project too.
I have used RedBeanPHP for many things and contributed a bit. Thank you.
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.
Iteration syntax is weirdly terse compared to the verbosity of the rest of the language. I’m not saying the syntax is bad, but it feel jarring at first when compared to the design choices of the rest of the language.
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.
- STOP is from telegraphs. \n is also allowed.
- The assymetric string boundaries (brackets) allow you to embed quotes/boundaries without escaping.
what is terse about the loops?
any further thoughts about EOL?
2. Interesting. Have you got any examples of this? Every example I’ve seen thus far has been
[‘string constant’]
3. I might have misunderstood the fizzbuzz example https://xoscript.com/docs.xo?chapter=examples but it looked like the following syntax set up a for-loop as a closure: { :i
…
} * 101
It was a little surprising because usually with languages that lean heavily into English keywords (eg the Pascal/Algol/Basic derivatives) you’d see these control flows use keywords like FOR. Heck, even C-derived languages do too.Now I’m not saying the syntax is bad. In fact part of me rather likes it. But it definitely surprised me.
Similarly the IF conditions surprised me with their tenseness. Though i do like their syntax too.
Regarding the fizzbuzz example, why do some conditions have TRUE while others do not. Eg
(i = 0) continue.
True appears to be implicit. (i % 15 = 0) true: {
…
), continue.
True here is explicit.Is it because closures require that explicitness?
The None object represents emptiness, or better still, the absence of information. On occasion, you will receive this object as an answer to a message, in case of the result being nothing. The most essential question you could ask the None object is: None?. The answer will always read True.
I came for language documentation, I stayed for the existential crisis.> In Xoscript, the meaning of True and False is not fixed. In fact, a Xoscript program gets pretty shaken up over a statement like this: [True := False.] The result of such actions is undefined, however it remains a valid action and therefore formally allowed. Furthermore, there is a Boolean object, which is the root object of both True and False, as both are derivatives of the root object. The Boolean object itself, however, does not provide any practical application.
Reminders from https://news.ycombinator.com/newsguidelines.html:
"Eschew flamebait. Avoid generic tangents."
"Please don't pick the most provocative thing in an article or post to complain about in the thread. Find something interesting to respond to instead."
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.
- Why did you close your eyes ?
- So that the room will be empty.
Your copy reads as "I'm a radical centrist and will die trying to preserve the status quo".As it usually goes you'd then tolerate hateful, bigoted folks in the name of openness and Free Speech Absolutism™ (which is totally non-political /s) and chase away women, minorities and folks who care about them.
If this isn't your intention, a CoC is the way to go.
You regrettably can't make hate disappear by pretending it doesn't exist.
I'm trying to warn you about the implicit message your copy sends.
It will chase away the folks I mentioned, and some day you'll discover that one of your non-political core contributors goes by @zyklon1488 on twitter.
I think this is exactly what author meant? This is just a tool, private life or political opinions of contributors are not relevant, as long as they don't try to force them on other project members. The only thing that matters is the quality of submitted code.
Personally i read it more like “this project avoids having any political stance.” Similar to the HN guidelines on politics.
However i do agree that it’s better to remove that message and have no comment on politics, than to comment so visibly that you’re unwilling to comment. Even if you read charitably into the message, it’s still just a distraction on valuable page real estate.
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?!
glad you dont feel oppressed though
TBH despite what it claims, to me it sounds like a political statement by itself.
(also it is usually the developers of a language -or other project- being judged about their actions/beliefs, not the languages/projects themselves :-P)
Friendly As a community, we want to be friendly too. People from around the world, of all backgrounds, genders, and experience levels are welcome and respected equally. See our community code of conduct for more.
Black lives matter. Trans rights are human rights. No nazi bullsh*t.
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.
afandian•6h ago
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.
gabordemooij•6h ago
gabordemooij•6h ago
https://xoscript.com/docs.xo?chapter=server
gabordemooij•6h ago