@WTFE
I agree with you 100% where I agree with you.
Why would %[...] be insane? I mean, I prefer typing %(...), but for me, visually, the hard edges of the [ are easier to see over the { and ( characters. I don't think %[ is used that often in the English language. By 'not often' I will guess 'not at all'.
I'll also agree with @faraday that some shortcut for ease of typing in situations where little things are little are perfectly fine. % may not be the world's best is not even remotely a sensible token, but having a shortcut character makes life easier on the author. And I'll admit, `|r<text>` is a hell of a lot easier to type than `$[ansi( r, <text> )]`. I'll live with escaping the occasional character for the usefulness of those shortcuts.
Maybe I can live with $(<ansi code>), but I'd also want shortcuts for carriage returns/line feeds/whatever, dbref of self, subjective form of the enactor's gender, and so forth. As I'll get into later, a lot of what I think Evennia is missing in the inline-code aspect is for the builders, not the coders.
Also, I see what you mean about `. I still don't think escaping is horrible, in small doses. Or bigger ones when it's SQL and I can't exactly complain to the ANSI committee.
@Griatch said:
I think @thenomain should probably have referenced this feature request which actually provides the context for the discussion.
I purposefully didn't. For me, the context was my bringing it up without realizing there was a feature request in. Then to throw that concept out into the mixed pool of Professionals and Amateurs, stir, and see what would happen. Which is why ...
We didn't have a compelling enough use-case to implement it since we don't explicitly support softcode and no user had so far felt that nesting was a must-have. With enough good arguments brought forward we might well expand the design to support it.
This is why I'm muddling up the discussion a bit by bringing it here. I was less interested in "would you solve problem x this way?" and more interested in seeing how Mushlike people would respond to "problem x".
I am overjoyed that people jumped on this with input from their own experience. <3s all around.
@faraday said:
@Griatch I think the biggest issue is that "builders" kind of straddle the fence between "players" and "developers" in terms of their use of inline functions.
Emphasis mine. I would make this 72 pt text and blinking bright red if I could. (note: I realize now that I can do some of this, but I'll be nice. you're welcome.)
While in #evennia chat yesterday, another user (acharles) was surprised that allowing players to use color codes was on by default. As a Mud developer, his viewpoint was valid and interesting and entirely backwards from mine. I was surprised that Evennia had inline functions turned off by default.
A good Mush builder is constantly asking me for code to allow for creativity, clarity, and organization. I would say that almost all of my non-RPG-system code is for builders. Yes, I will be doing a lot of that server-side with Evennia, but for example I can easily let a builder change small parts of the description of a room based upon the time of day. I don't have to do anything but expose a function I call `ictime()` and the rest is them.
@desc here=This is Thenomain's happy place, with one window looking out across the landscape. It is [get( me/desc-[ictime( time-of-day )])].
&desc-dawn here=dim and hopeful
&desc-day here=bright and cheerful
&desc-dusk here=maudlin but relaxing
(you get the idea)
I know Evennia is not geared toward coding inside the game, but the shortcuts available mean that the builders are enabled and the main coder is less depended upon. To me, this is a win-win.
Of course, this is only important to the games who give this level of control to the builders. I won't pretend that the Mush niche is more important than the Mud niche. I wanted to expand on Faraday's example with a 'oh god dear god yes a thousand times yes'.