Ed, My programming days was more in the past, but I would argue that tiddlywikis approach is different for a fundamental reason of architecture. If you were to build something similar in any language you would have to ensure the following and it would complicate the program massively;
- Cause all and any change in the whole solution to flow through immediately to all references to that changed item - Render all visible objects when a change occurs but do so efficiently, including dealing with potential loops - Allow the transclusions of transclusions etc... to work and be reliable and avoid loops. - Now wrap the vast majority of this is an environment that is somewhat accessible to almost everyone - Create not just an application but a platform which can be used to design and document itself. In the face of these facts it is my option tiddlywiki does the best job I have ever seen. Yes we want to improve documentation and teach the concepts effectively to improve ease of adoption and share the concepts. TiddlyWiki is not just a non-trivial Quine but a Quine platform. Regards Tones On Thursday, 1 October 2020 01:53:24 UTC+10, Ed Heil wrote: > > As a programmer myself, I would agree agree that tiddlywiki doesn't let > you exploit your existing programming knowledge very much at all. It's > very different from most programming environments, in that it's almost > entirely declarative, it operates by transforming an underlying series of > entities which are a superset of HTML; it has several different "syntaxes" > that are appropriate in different contexts and interact in sometimes > unexpected ways, or require unexpected means to make them interact... > There's just not much resemblance to the kind of programming most people > do, even most web developers. > > You kind of have to throw away everything you know about programming and > accept that this system operates on its own terms and in its own context, > and your existing programming knowledge will apply only in the most general > ways. (Although of course, if you have HTML/CSS knowledge, that knowledge > *will* apply with respect to the appearance and structure of the final > product of all the underlying transformation. And if you have existing > Javascript knowledge and are developing a JS-based plugin, that knowledge > will apply -- but that's very advanced and seldom necessary.) > > On Wednesday, September 30, 2020 at 10:48:01 AM UTC-4 PMario wrote: > >> Hi folks, >> >> I didn't read the whole thread. Only this post and I downloaded. the >> "Standard Nomenclature.json" from Tony. >> >> On Wednesday, September 30, 2020 at 1:28:12 PM UTC+2, Bob Jansen wrote: >> >> The tiddlywiki wiki entry on Variables in Wikitext has the example, >>> >>> <$set name=animal value=zebra> >>> <<animal>> >>> </$set> >>> >> >> That's right. Consistency is an issue and we try hard to fix it. ... >> >> TW documentation should consistently use double quotes. It should look >> like this. I'll create a PR after finishing this post. >> >> <$set name=animal value="zebra"> >> <<animal>> >> </$set> >> >> As long as there are no spaces and "special chars" quotes are not needed. >> >> >> >>> Your cheatsheet, which I know you passed to me before it has been >>> reviewed, has a similar example >>> >>> <$set name='var' value='Foo'> >>> <<taggingByVar>> >>> </$set> >>> >> >> It's the users taste. So users can use different quotes if they want. The >> macro call syntax is described in the docs >> <https://tiddlywiki.com/#Macro%20Calls%20in%20WikiText:%5B%5BMacro%20Calls%20in%20WikiText%5D%5D%20%5B%5BMacro%20Call%20Syntax%5D%5D>. >> >> The search string is "macro call" >> >> >>> Note one difference, the use of quotes around the variable name and >>> value attributes. So which is it, are quotes required or not? Do quotes >>> matter? I would assume quotes do matter and if so why does the official >>> documentation leave them out. >>> >> >> See the link above. Quotes do matter *as soon as you have special >> characters* in parameter values. That's why the rule for TW PRs with >> documentation is: Quotes must be used. ... BUT I'm sure there are some >> oversights. >> >> I'll post a link to the PR. If you find more problems tell me there and >> I'll try to fix it with that PR. >> >> >> >>> I also assume the macro call should read <<taggingby var>> and this is >>> just a mistype. >>> >> >> <<taggingByVar>> ... This is a macro call without any parameters. Macro >> names -- see link above. >> >> >>> But this hows that even such a simple statement's documentation is >>> inconsistent. >>> >> >> Sure if you use different sources. Different users have different >> preferences. ... >> For single word values you'll find many of *my personal* examples here >> in the group without quotes, because I'm lazy. >> >> *The TW docs should have them. ... If not, it needs to be fixed. * >> >> >> >>> Now, if quotes don't matter I assume it is because no values have spaces? >>> >> >> right. But as soon as you have other chars than A-Z, a-z and 0-9 you >> have to use quotes, even if you don't have spaces. >> >> >>> But this is an exception rule and as we all know one exception breeds >>> other exceptions and soon we have so many exceptions that the only real >>> exception is the initial idea. In all other programming languages that I >>> know of, strings are quote delimited. A simple lesson learned once and >>> applied all over the place. >>> >> >> You are right, but we can't enforce this, since TW needs to be able to >> work with copy/pasted html code. Browsers don't enforce those quotes, if >> they are not needed. They use what's intended. >> >> We have >> >> <$list filter="[tag[x]]" /> and we can have <$list filter=<<myFilter>> /> >> which is a completely different thing >> >> The first example shows all tiddlers tagged: x >> >> The second example uses a filter, that is stored in a *variable *named: >> myFilter. A working code for the second example is: >> >> \define myFilter() [tag[x]] >> >> <$list filter=<<myFilter>> /> >> >> Yes ... internally macros are variables. >> >> <$list filter="<<myFilter>>" /> will be interpreted as a tiddler name >> <<myFilter>>, which probably doesn't make sense for most users. >> >> >> >>> Your cheatsheet on the <VAR> element states >>> "Does *only* work as a *filter variable*, inside or outside a macro:" >>> As something is either inside or outside of a macro, this should always >>> work as a filter variable then cause it can't be in any other state so the >>> statement doesn't make sense. >>> >> >> A link would be nice, so others can follow. I can't comment on this one. >> >> Another example, concatenation of strings. Search for concatenate in TW >>> documentation and you get the tiddler, Concatenating text and variables >>> using macro substitution, which categorically states that the only way to >>> do this is to use a macro. So I used a macro. Could not get the macro to >>> function as expected inside a $list loop. You and Eric explained that it >>> can not be used this was inside a $list loop but where does it state that >>> in the documentation? >>> >> >> YES. This is one of the biggest sins in TW docs and how TW works. It >> causes problems for every new user and getting it right in bigger junks of >> code is hard, even for advanced users. .. I do have an idea to solve it, >> but not enough "pain" / time to fix it. >> >> >> >>> Many of the examples in the TW documentation use what appears to be a >>> macrocall of some sort to perform the example. So you cannot see the actual >>> statements used, you can only see the result of the macrocall. Not very >>> helpful really is it. Why not just use simple statements that anyone can >>> follow after all we are after a real example to see how things are done. >>> >> >> I don't know exactly, what you mean here. Can you provide a link? ... I >> think I know what you mean, but I'm not sure. >> >> >> As for referencing values inside tiddlers, it seems there are many >>> possibilities involving various configurations of >>> quotes/brackets/braces/underscores. Why is there not a single method of >>> referencing content? >>> >> >> A single method wouldn't be enough. ... But there could be less. TW 5 >> Version 1 aka: V5.1.0 had less possibilities. Especially filters [1]. But >> you probably wouldn't want to use it, because it can't do what you want. >> There have been 30 widgets, with about half the functionality. >> >> Eric, in an earlier email, described it as the calling context's problem >>> to work out what is required. Yet in all other programming languages that I >>> have used over the 40+ years of my programming, referencing a variable is >>> always the same in a particular language, it is not dependent on the >>> calling content, nor is it dependent on how it is being used, it is defined >>> in the grammar of the language. >>> >> >> IMO that's not true. Variables do have a scope. They can be local and >> global. They can be referenced by name or as a pointer with a different >> name. ... And so on. >> >> With TW we also need different ways to reference tiddler content and >> variables. ... The problem may be, that these syntax elements look very >> similar. >> >> It's getting more complex if we want to use it within a filter >> expression. >> >> >> Now maybe this is an attribute of web applications. Maybe it is the >>> result of organic development as Atro states. Whatever it is, it is bloody >>> difficult to grasp and so becomes very frustrating. >>> >> >> Thank you for discussing your problems. ... Others would have thrown the >> whole thing away. You started a discussion, so there seems to be something, >> that you like. >> >> You are right. Frustration is a topic at the beginning. .. Be assured you >> are not the only one, that felt that way. ... Be assured, I sometimes felt >> stupid, but I'm sure I'm not ;) >> >> >> >>> My development progress at this stage is a single wikitext statement at >>> a time involving much input from the helpful people on this group.Each >>> time, I learn a bit more but applying that learning quickly fails with the >>> next statement. >>> >>> Your email to Atro and I asks, "perhaps you can't see the logic yet" >>> >> >> Yea. The learning curve is steep, but IMO it's worth it. >> >> >>> Too right! I don't see any logic yet. >>> >> >> >> >>> I have studied your cheatsheet and the references it makes to others' >>> work as well as various emails from Eric and the Tiddlywiki documentation >>> and I still don't see any logic in it. Perusing the emails on this list >>> indicates I am not the only one and there seems to be some recognition that >>> this is a real problem for TW uptake. >>> >> >> Right. >> >> >>> Someone earlier suggested I contribute to the documentation but I don't >>> understand enough to be able to do that. Any contribution I could make >>> would, right now, be wrong, misleading and totally misunderstanding of the >>> design philosophy behind TW. >>> >> >> You are contributing already! ... For us it is important, that new users >> tell us their problems. That's the only way we can fix them. >> >> >>> I am continuing to use TW for my web app but at some stage will have to >>> make the decision as to whether it is worth my time and effort to continue. >>> I feel TW has a great potential but believe the development side needs to >>> be addressed. >>> >> >> >>> I am nearly 60% way through another TW app that simple involves my >>> editing content and this is working well and is getting welcome acceptance. >>> http://cultconv.com/English/Conversations/MacQueen_Mary/TiddlyWiki/index.html >>> >>> <http://www.google.com/url?q=http%3A%2F%2Fcultconv.com%2FEnglish%2FConversations%2FMacQueen_Mary%2FTiddlyWiki%2Findex.html&sa=D&sntz=1&usg=AFQjCNEEoEr99CR9EjuHe2lIQJjBMWEo_g>. >>> >>> FYI, for this application, I have created a Filemaker Pro database into >>> which I type the various content elements and then generate the required >>> Wikitext which I then cut and past into the appropriate tiddler. This has >>> proved very efficient over typing directly into TW. >>> >> >> Nice example! >> >> Hope that helps a little bit. >> >> have fun! >> mario >> >> [1] TiddlyWiki5 Version 1 --- >> http://tw5-1-0.tiddlyspot.com/#FilterOperators just to see the >> differences ;) >> > -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/01601d61-5323-4d80-bcae-80c318a4f715o%40googlegroups.com.

