TiddlyWiki as universal software?

Agreed. Or at least the basis of it.

I’m reminded of an effort under the name “future of the book” - which seems to have disappeared - but I think it gave birth to the Zotero tagging service - which, unfortunately, is not completely available (the server-side stuff is not).

TiddlyWiki - as an editable book, with commenting features - seems like a great basis for “living documents” - particularly if coupled with a publish-subscribe style versioning and commenting system.

Funny thing… I’ve been looking at Tiddly as the basis for just that, for some work I’ve been doing.

1 Like

Digital Sovereignty, privacy, owning your data, are concepts we are losing more and more every day, and it worries me. Especially in these “uncertain” times when old allies may at a whim shut us off from services we rely too much on every day.

The motto “You will own nothing and you’ll be happy”, is ever more relevant. Everything is a service these days, you need a subscription, install app, create an account, upload your data, stream some content. Nothing is yours anymore and there are prying eyes at every corner of your digital existence coveting your data.

It seems newer generations aren’t even aware anymore it doesn’t have to be so, because they were born into it, and are actively being indoctrinated into this new model.

TiddlyWiki is part of a (sadly) dying breed of software that still enables you to have full functionality independently, more than accessing data, it allows action over that data on its own.

Cultivating investing on technology you have total power over is in my eyes a very important and overlooked goal, especially for essential infrastructure. We hand away way too much to web services from commercial giants.

8 Likes

Thanks for the replies so far. A few notes; please continue to contribute;

  • The truth is TiddlyWiki is extremely extensible and making use of it to support people learning coding a great idea, however it is important to keep the posibility of no code or low code use by users.
  • The capacity for tiddlywiki to expand to address many different solutions is both wonderful and makes promoting its use quite complex. By trying to describe/define it well, is to help others understand it.
  • The audience is multiple generations and each generation can have different perspectives.

My key point here is this is what TiddlyWiki is built on, and these technologies are pervasive on the internet. If we have critisisums of these tecnologies then we are in a position to make them more accessible, practical and supported and they have a vast set of resources on the internet.

If we do have userware or universal software, running in the universal client (the browser) it must be admited that the universe is big. With this in mind perhaps we need our framing of tiddlywiki as having multiple paths into its use. For example as a gamer or author we may travel different paths into tiddlywiki but from there go to other places.

  • Perhaps we can extend the metaphor of “Universal” to encompase TiddlyWiki’s broad posibilities. That is make use of astronomical or cosmological representations to reflect TiddlyWiki. For example TiddlyWiki on the Authors planet, or Gamer Galaxy.

TiddlyWiki as a platform would be better served by extracting a simple standardized easy-to-implement programming language. The current problem is that TiddlyWiki is too powerful. It would be nice to have a simple standardized easy to implement subset.

If you need the full power of One Day or Obsidian, you may have to use them, but Tiddlywiki will let you do much the same more simply and with much more room for your own customization.

If you need the full power of Outlook Calendar or Google Calendar, you may have to use them, but Tiddlywiki will let you do much the same more simply and with much more room for your own customization.

If you need the full power of MediaWiki or a dynamic website, you may have to use them, but Tiddlywiki will let you do much the same more simply and with much more room for your own customization.

If you need the full power of Oracle or MySQL, you may have to use them, but Tiddlywiki will let you do much the same more simply and with much more room for your own customization.

Etc., etc.

Can you describe what you think that would look like? I feel as though that is what wikitext is meant to be, although it covers not just traditional programming but also markup and styling.

What activities do you think should be simpler to perform than what wikitext currently offers? Any suggestions on what the “code” might look like for them?

1 Like

I would not say It is too powerful, but rather very flexible, thus highly extendible, has a very broad applicability, thus is capable of a lot.

But I agree there us room for simpler views and tools for new commers to get results before they develop their expertise.

@TW_Tones @Scott_Sauyet

Filters are little languages like regular expressions. Hopefully, it can be extended to be used in various domains, such as various programming languages.

The widgets themselves are graphical user interface languages. It would also be nice to extend the application to various web-based applications. It would also be useful for manipulating Markdown files with YAML headers.

Below I am trying to strip out part of TiddlyWiki as a command line compiler or as a library for js or as a database query software.

  • We can use Tiddlywiki as a command line compiler to compile wikitext into html files.

  • We can use Tiddlywiki as a command line compiler. We can treat TiddlyWiki data as a database. Transclusion, macro, some widgets, and filters are SQL languages that read, write, and query the database.

  • For a array of maps, js itself has data querying capabilities to filter and sort. I would like to have part of Tiddlywiki as a library for js to have stronger data query functionality and for js to have TiddlyWiki data modification functionality.

  • If we treat TiddlyWiki as an IDE with query interface and report display, then it is similar to FoxPro and Access.

  • The widget module and the filter module are plug-ins that extend the functionality of the compiler.

The focus of my statement is the third sentence, I would like to have a simple subset of TiddlyWiki. Only by simplifying TiddlyWiki can it become a standard and have third party implementations.

  • I want the filter to have only simple field-based data query functions. I don’t want it to have other operations like arithmetic.

  • I want the number of widgets to be reduced, I only want them to be limited to read/write/delete querying of data and saving of files.

This may be a requirement of a very small number of people so I think it would be better if there is a path for you to achive what you want rather than change the core or reduce the empty.html further. Alternativly a new edition could be generated, however at most you will save a few megabytes, so I quesation the validity.

Keep in mind

  • Most widgets are already in use within the core or other plugins so removing some is risky
  • You can just choose not to use them

It’s not about reducing file size. Rather, it’s about reducing the mental load. Just like Markdown trumps ReStructuredText and MediaWiki.

I guess I simply don’t see where you’re going with this. You certainly can use TW in a similar way to MS Access. I have a very preliminary version of that idea in my SQL-Playground.

But I really don’t know what you want to get out of your CLI. I think I’m missing the big picture.

Of what exactly?

TW is compelling to me because of the combination of features it offers. It has a widget library. I’ve seen better widget libraries. It has an object database. I’ve seen more extensive ones. It has a plugin mechanism. Ho hum. It has theming tools. I’ve seen better versions. It has an edit-in-place mechanism. That’s great, but there are many others. It has a extensive querying syntax. So do many other systems.

What makes TW what it is is that Tiddlywiki has all these features. They’re combined into one package in a slick manner I have seen nowhere else. So I’m trying to understand what you idea is for.

3 Likes

@TW_Tones @Scott_Sauyet

A system similar to TiddlyWiki is Zope. zope is also a closed system that does everything from front-end to back-end, from display to data. As such Zope also had a steep learning curve. zope used to be a very popular system. the founders of python were also involved in the development of Zope. As the involvement of Zope’s founders diminished, the product development path became confusing, causing users to leave in droves.

One of the dangers of a complex system is that it’s hard for anyone to take over. Even if someone does take it over, they can get caught up in the confusion of losing their way.

That’s why I think it’s reassuring to simplify, standardize, and have a third-party implementation.

You mentioned an interest in programming languages. Then also for TiddlyWiki to have a wider audience. I mentioned command line compilers, js libraries, database IDEs, just to have a wider audience for TiddlyWiki, not limited to note-taking users, but extended to developers of other kinds of applications.

I hope that what I learn about TiddlyWiki will be used for a long time in various fields, just like regular expressions.

I understand but the key value in my mind is the sheer extendability and the platform nature of tiddlywiki.

I/we have discussed “mental load” or as we called it congnative load but tiddlywiki is quite open to developing tools on top it to help guide people through the development of a solution, so you can develop tools to focus the users focus. Add to this the re3cent testcase widget, variouse annotation methods, even opening a wiki within another wiki via the innerwiki plugin.

  • It is this posibility of meta layers, SDK and even wiki generation that is part of it being a universal platform.

I like where you are comming from but think it can be achived on top of not below the current platform.

Yes! I absolutely buy Antoine de St. Exupery’s dictum that “Perfection is finally attained not when there is no longer anything to add, but when there is no longer anything to take away,” but anyone who has ever worked with frameworks that significantly change themselves between versions knows that this is a recipe for disaster.

I would suggest that if there is some strong use for a subset of TW’s functionality, that the first step would be to start defining the public interface that would be included.

Above, @tomzheng mentions not wanting math operators. I don’t use them a great deal, but I certainly do use them. It’s not terribly infrequently, either. For instance, this answer uses divde, ceil, and add operators to calculate how to fit a dynamic list into a specific-column-count table. Would such things no longer be possible in such a restricted version?

All of the at is true. May be with TWX it would be possible to use everything we have learned to last 20 years (TWc and TW5) to create a new “optimised” version. For TWX we can remove redundant and deprecated functionality, that we have to keep at the moment for backwards compatibility reasons.

By redesigning TWX we can try to design with something called “forwards compatibility” in mind. That’s basically how the HTML specification is designed. With the knowledge we do have now it should be possible to do this.

Basic functionality wise I think we should not remove too much. I think we could “simplify” the filter syntax by making functions more consistent. There has been quite some “organic” growth, that was driven by specific user needs. And if users did implement them they did fit their needs. Sometimes out of the existing TW specifications. So removing the inconsistencies should make the filter syntax easier to understand.

The same is true with the default layout. The existing TW layout is 100% written in wikitext. So the TW PageTemplate can be completely redesigned, if we want to.

Especially making accessibility a first class citizen. This will also help us with keyboard driven UI navigation.

and so on, and so on. …

1 Like

I absolutely agree. TW Classic still has fans, and I’m sure that after TWX is released there will be people still focused on TW5. That shouldn’t stop us from creating a new major version. With a major release cadence measured in decades, I don’t think the concerns I expressed above are very relevant. But the discussion was about somehow reducing the scope of TW to make a tighter tool for some restricted environments. I’m not optimistic about that, but I still don’t really understand the goals.

Yes, this overlayer of an interface for public use of underlying features, tiddlywiki has the technology already we just need to build more cases of it so people know how to use it.

  • TiddlyWiki already hides the intricacies of html, JS and CSS from the user.
1 Like

Not backwards compatible or backwards compatible. Depends on the user. If there is much more 3rd party development than core development, then backward compatibility is required, e.g. windows. if the 3rd party development is not large enough, then no backward compatibility is required, e.g. python.