[philosophy] Is TW programming?

192 views
Skip to first unread message

Mat

unread,
Aug 20, 2018, 7:09:19 AM8/20/18
to TiddlyWiki
What "is" hacking in TW? Is it coding? Is the particular WikiText used in TW a high level programming language? Or is it just markup?

...semi related...

IRL, I compare TW to building with lego. I master TW pretty well so I say I can build "anything" with TW analogously to how I can build "anything" with lego. So is that actually constructing things? Maybe it should be called "prototyping" even if it's not prototypes?

<:-)

Jeremy Ruston

unread,
Aug 20, 2018, 7:28:27 AM8/20/18
to tiddl...@googlegroups.com
For me, a central part of the experience of programming is casting ones mind into the position of the computer. As we read code we run it in our minds just as a computer would run it.

It turns out to be much the same with wikitext; one has to learn to think a little bit like the parser. Those familiar with it can easily decode it, and can often readily diagnose problems with faulty wikitext written by others.

So, I do indeed tend to think that working with wikitext is — or can be — a type of programming. And that makes me happy, because the ability to program is the ultimate empowerment in our digital world, and therefore anything that broadens programming to a broader population must be a good thing.

Best wishes

Jeremy.



--
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 tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/a286b5c2-7056-4ac5-b05b-0c1ad86b4598%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

PMario

unread,
Aug 20, 2018, 7:28:37 AM8/20/18
to tiddl...@googlegroups.com
On Monday, August 20, 2018 at 1:09:19 PM UTC+2, Mat wrote:
What "is" hacking in TW?

Creating stuff  without much documentation ;)
 
Is it coding?

Kind of!
 
Is the particular WikiText used in TW a high level programming language?

Yes.

We have some basic wiki-text elements like bold, italic, headings, ... that's definitely "plain text" writing (with a twist).

...but as soon as transclusion and list-widgets come into play, it starts to go into "programming" with a DSL domain specific language. [1]
Basically, if you start to use widgets <$... it's DSL territory.

 
Or is it just markup?

see above.
 
IRL, I compare TW to building with lego. I master TW pretty well so I say I can build "anything" with TW analogously to how I can build "anything" with lego. So is that actually constructing things?

Yes. Constructing for your specific domain, with the tools provided by the application.

It's a creative process, where you use the basic tools, to create new and unique content. Including the possibility to modify the original application.
 
Maybe it should be called "prototyping" even if it's not prototypes?

TW wiki-text widgets can definitely be used for prototyping "proof of concepts". But that's only 1 possible usecase, so imo construction is the better term here.

have fun!
mario

PMario

unread,
Aug 20, 2018, 7:36:21 AM8/20/18
to TiddlyWiki
-- missing link added to first post :)
-m

Enneco Gotzon

unread,
Aug 20, 2018, 8:22:19 AM8/20/18
to tiddl...@googlegroups.com
On Mon, Aug 20, 2018 at 1:28 PM, Jeremy Ruston <jeremy...@gmail.com> wrote:
anything that broadens programming to a broader population must be a good thing…

It is. Thank you.
❤️
all you.
 

Best wishes

Jeremy.



On 20 Aug 2018, at 12:09, Mat <matia...@gmail.com> wrote:

What "is" hacking in TW? Is it coding? Is the particular WikiText used in TW a high level programming language? Or is it just markup?

...semi related...

IRL, I compare TW to building with lego. I master TW pretty well so I say I can build "anything" with TW analogously to how I can build "anything" with lego. So is that actually constructing things? Maybe it should be called "prototyping" even if it's not prototypes?

<:-)

--
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 tiddlywiki+unsubscribe@googlegroups.com.

--
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 tiddlywiki+unsubscribe@googlegroups.com.

To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.

For more options, visit https://groups.google.com/d/optout.



--
Enneco-Gotzon Ares
Sciencia, Ethica, Esthetica
Democracia, Republica, Empresa
EH, Wasconia, NA Osso
--
Datu personalac babesteco abenduac 13co 15/1999 Legueari jarraituz, jaquin eçaçu meçu hau eta berari atchiquitaco oro isilpeco dela eta soilic bere harçaileari çucencen çaizquiola.
Meçu hau hutseguitez jasoz guero berau eçabatzea othoi escatzen da. Esquertuco liçate igorleari emaitea bidalqueta desegoquien berri.
Debecatuta dago aguerico baimenic gabe meçu honen edota bere eduquinen edocein erabilera edo hedatzea, ossoqui cein çathiz.
Meçu electronicoac andea daitezque. Meçu hau aldaturic, andeaturic edota aiçun balego Enneco-Gotzon Aresec, bere ordezcariec edota meçu igorleec uko eguiten deraucote ondoriozco edonolaco ardurei.

@TiddlyTweeter

unread,
Aug 20, 2018, 8:25:12 AM8/20/18
to TiddlyWiki
Jeremy Ruston wrote:
... the ability to program is the ultimate empowerment in our digital world, and therefore anything that broadens programming to a broader population must be a good thing.

Pause for thought. It reads right.

Josiah

@TiddlyTweeter

unread,
Aug 20, 2018, 8:32:49 AM8/20/18
to TiddlyWiki
Mat, coming back to zero. IS TW programming?

<$select tiddler="$:/temp/tag1">
  <$list filter="[prefix[$:/tags]sort[]]">
      <option value=<
<currentTiddler>>><<currentTiddler>></option>
   </$list>
</$select>

<$select tiddler="$:/temp/tag3">
  <$list filter="[tag[$:/tags/ViewTemplate]sort[]]">
      <option value=<
<currentTiddler>>><<currentTiddler>></option>
   </$list>
</$select>

IF that is not programming I don't know what is.

Josiah

@TiddlyTweeter

unread,
Aug 20, 2018, 10:03:18 AM8/20/18
to TiddlyWiki
Mat, on LEGO.

I think its a good analogy. Especially for ready-bits like plugins (already lego-like) that just plug-n-work. The plugin architecture of TW seems very robust.

The LEGO analogy works quite well also for dealing with the "fragment model"--making wholes from bits. Each "brick" is non-definitive but combos of bricks eventually form original wholes.

Josiah

Mat wrote:
... compare TW to building with lego. I master TW pretty well so I say I can build "anything" with TW analogously to how I can build "anything" with lego. So is that actually constructing things?

Mohammad

unread,
Aug 20, 2018, 10:40:16 AM8/20/18
to tiddl...@googlegroups.com
Mat,
Sometimes I compare TW with TEX.

Wikipedia:  TeX was designed with two main goals in mind: to allow anybody to produce high-quality books using minimal effort, and to provide a system that would give exactly the same results on all computers, at any point in time.

While with TW we cannot produce books but we can do produce smaller parts in good quality web texts with minimal efforts, and everybody else on other computer can get the same results!

TW is king of scripting language to produce web texts and elements.

/Mohammad

Mat

unread,
Aug 20, 2018, 10:41:10 AM8/20/18
to TiddlyWiki
Interesting thoughts guys! ;-)


Having now thought about this for another hour ;-) I've come to the conclusion that the very best description for what we do in TW is probably "hacking"! (Not that I called for help with a perfect term in my OP but anyway). I mean, hacking very much implies coding but it is of a more direct and pragmatic good-enough kind than something optimal. Plus it fits perfectly with the other connotation of the term; to tinker.

So - for myself - I'm hereby re-defining "hacking" from being a somewhat dubious sub-activity to coding into a full and legitimate activity of itself and this is exactly what "doing TW" is about. Well, except for if you're doing the behind-the-scenes javascript TW stuff, which is of course real programming.

This came to me as I read Jeremys thoughts about "casting our minds into the position of the computer"? We are far away from machine coding and the evolution of computer programming languages has meant more and more abstractions to get closer to natural language (and now even natural thinking). TW seems to break a holy content-vs-code paradigm in coding by freely mixing the two. Maybe it is because TW is so targeted to end users... we produce textual content and, mid sentence, there appears a need for something that is only accessible via some hacking trickery. This is unlike any other coding I've ever seen (but, admittedly, I am not a programmer). Or are there other comparable examples where content and tools-to-control-content is mixed so arbitrarily?


<:-)

Mat

unread,
Aug 20, 2018, 10:42:30 AM8/20/18
to TiddlyWiki
PMario wrote:
What "is" hacking in TW?

Creating stuff  without much documentation ;)

LOL!


<:-)

Mat

unread,
Aug 20, 2018, 10:52:35 AM8/20/18
to TiddlyWiki
Ah, now the term crystallized:

IMO, TW is a "hacking language" !

Again, read my post here above to appreciate that I mean this only in a positive sense.

<:-)

Jed Carty

unread,
Aug 20, 2018, 11:22:11 AM8/20/18
to TiddlyWiki
I would say it is certainly coding. TiddlyWiki widgets may not be Turing complete, but even without external javascript I was able to make a simple interactive fiction engine using it. And there are domain-specific languages that don't need to be Turing complete. I think it would be hard to construct a consistent definition of a programming language or coding that wouldn't include tiddlywiki.

If using Ook! gets to be considered coding than there isn't any reason that what we do with tiddlywiki isn't.

A link in case you are wondering what Ook is: https://esolangs.org/wiki/Ook!

Mat

unread,
Aug 20, 2018, 11:58:39 AM8/20/18
to TiddlyWiki
Jed Carty wrote:
If using Ook! gets to be considered coding than there isn't any reason that what we do with tiddlywiki isn't.

If marketing TW, we should probably not use this as an argument ;-)

<:-)

Mark S.

unread,
Aug 20, 2018, 12:06:07 PM8/20/18
to TiddlyWiki
Coding disguised as HTML.

h0p3's Wiki

unread,
Aug 20, 2018, 1:20:32 PM8/20/18
to tiddl...@googlegroups.com
Conceptual analysis is hard here. You have to take up significant commitments in a number of philosophical domains to provide any kind of satisfactory answer.

For some, using your mouse is programming your computer (as ridiculous as that may initially sound). You might need to define what you mean by the word "programming" before you'll get an answer you're looking for.

If my gut check means anything in this context, Tiddlywiki is obviously programming. I can't point to another tool which has allowed me to be so quantitative about the qualitative.





On Mon, Aug 20, 2018 at 12:06 PM, 'Mark S.' via TiddlyWiki <tiddl...@googlegroups.com> wrote:
Coding disguised as HTML.

--
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 tiddlywiki+unsubscribe@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.

@TiddlyTweeter

unread,
Aug 20, 2018, 1:38:36 PM8/20/18
to TiddlyWiki
h0p3 wrote: I can't point to another tool which has allowed me to be so quantitative about the qualitative.

And vice-versa.

Its pretty damn good all round on the user front. Once you know a bit.

Josiah

TonyM

unread,
Aug 20, 2018, 6:09:03 PM8/20/18
to TiddlyWiki
Great Question Mat,

Having read through the reply's so far there are some great comments. Some thoughts on mine on this that may offer another perspective. I was a hobby programmer before I left school, then a professional Analyst/Programmer in my early career, and I have always being a conceptual systems thinker, programming solutions for my whole career.

To me programming is the encoding of algorithms, instructions on a piece of paper are good enough for this, but computer programming uses computers to do so, so yes Tiddlywiki is a platform in which to program or capture algorithms which we can make interactive and includes storage and presentation.

Is TiddlyWiki or its Wiki Text a programming language?, I do not think it is a complete language and since it can incorporate JavaScript, and leverages HTML and CSS does it need to would be a valid question. This is in part why I call it a platform. Never the less perhaps there is value in the community ensuring it is a complete programming language of its own, ideally leveraging another language.

While it may not be a complete language it has a number of elements that are "high level language" components. The use of filters and lists allow us to define a set which is then iterated for us rather than us writing the code within that. Writing macros and Importing plugins allow use to build or import higher levels of abstract logic, process and interface control objects.

TiddlyWiki is a "platform" because it brings together all the essential features needs to encode algorithms including alternative ways to present information/data, a highly customisable user interface, the ability to serve it to a network or the world as well as a basis to build a database, build sophisticated relationships and hierarchies, interact with other resources and websites, import and export almost anything, and unlike most other platforms in this space it can also be self contained, a more than minimal Quine, or simply a stand alone document.

Whilst they have being around for a long time in the last decade the Information Technology community has expanded and a new emphasis has being placed on Systems Thinking, Design thinking and UX (user interface). TiddlyWiki is both a playground and a platform through which to exercise both to a high level.

Given the TiddlyWiki platform is so versatile I would describe my self as a designer, designing solutions, capturing information and algorithms on the TiddlyWiki platform. Except for people who are unaware of the platform any one who uses TiddlyWiki is likely to be a designer as well.


Regards
Tony.

Arlen Beiler

unread,
Aug 21, 2018, 9:11:58 AM8/21/18
to TiddlyWiki
You all "hack" inside TiddlyWiki using wikitext to get it to do what you want it to do. I "hack" the TiddlyWiki platform itself using JavaScript to get it to do what I want. :) 

I'm actually terrible at wikitext. I'm always looking things up, and I've only ever written one complex macro and that was based on another complex macro that was similar So JavaScript isn't more complex, it's just different. 

You use the axe that I forged. 

Ok, Jeremy deserves that one, not me :D

Hacking in the technical sense of breaking through security restrictions in an unauthorized manner is not related to tiddlywiki. 

Hacking in the sense of hacking stuff together is what TiddlyWiki seems designed for. "Oh, you want to do that? Should be possible."

I differ from Jeremy in that I put myself in the head of the designer, not the computer. Thus I draw insperation from his code that he possibly never thought of, because I see the possibilities. 

I don't ask how we got here. I ask who put us here. 

The result is TiddlyServer and TW Cloud Connectors. 

That's how I do it. Am I the only one?

Arlen

--
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 tiddlywiki+...@googlegroups.com.

To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.

Jeremy Ruston

unread,
Aug 21, 2018, 10:03:54 AM8/21/18
to tiddl...@googlegroups.com

I differ from Jeremy in that I put myself in the head of the designer, not the computer. Thus I draw insperation from his code that he possibly never thought of, because I see the possibilities. 

Differ? I think my point may not have been clear. I was definitely not saying that I exclusively occupy the perspective of the computer at the expense of the perspective of the designer.

My point about putting oneself in the position of the computer is that it is the defining mental posture of programming. Indeed I would argue that it is impossible to be a programmer without sufficient proficiency in that way of thinking.

But to do something like designing a piece of software one needs to adopt a multiplicity of mental postures and switch between them fluidly –– programming is far from the most important of them.

Best wishes

Jeremy

@TiddlyTweeter

unread,
Aug 21, 2018, 11:30:19 AM8/21/18
to tiddl...@googlegroups.com
Jeremy: But to do something like designing a piece of software one needs to adopt a multiplicity of mental postures and switch between them fluidly –– programming is far from the most important of them.

That is very interesting. "We", using software, get to understand that--that creating it has diverse facets.

Whilst YOU are definitely good all-round, I'm doubtful most of the rest of us are or ever will be, or likely want to be.

Personally I don't think having to get better in all the facets is in my interests; its not feasible, sensible or efficient. 

I'd say that an absolutely CORE issue with using computers is learning how to address what you don't know.

Much like: "I'm sure you basically understand film, but until I see a screenplay worth filming I won't know if you mastered it." Its skill in a field.

To use an AA (UK car repair people, not inebriation cessation) quote, which I do think helps: "I know a wo/man who can." It is a basic attitude that is I think best.

I'm just riffing,
Josiah

@TiddlyTweeter

unread,
Aug 21, 2018, 11:59:35 AM8/21/18
to TiddlyWiki
Jeremy: My point about putting oneself in the position of the computer is that it is the defining mental posture of programming. Indeed I would argue that it is impossible to be a programmer without sufficient proficiency in that way of thinking.

Jeremy.

This is just a sidenote on something that really caught my interest as an anthropologist ... "putting oneself in the position of the computer."

I think you are absolutely spot-on correct (even though the words you use is a complex trope that is undefined in its scope--its standing for something important) --that this is now possible and necessary. Its part of our life now. What fascinates me is no one seems to see how we got here or care :-). The kind of abstraction necessary to think like that is novel historically. I'm not sure its entirely benign.

Just riffing
Josiah   

Reply all
Reply to author
Forward
0 new messages