So why am I here? According to this wonderful wiki, which I just discovered, 15 years of using Tcl apparently make me a Tcl'er. And after a lot of reading, I feel that I might have something to say and maybe even do. So here I am, in my first ever endeavor of this kind, to see how it goes.
PYK 2016-03-30: Greetings, Igal! How on Earth did you manage to use Tcl for 15 years before you discovered The Wiki?!Thanks Nathan! As for your question, I guess I just was too busy.
This wiki drove me to a lot of additional reading for the last two weeks, mainly on the wiki itself but also in many other places. Some of those were referenced from this wiki while others were through my own searching. The web is after all really is a "web". You start in some place of interest and very quickly find yourself in ten others and then a hundred and pretty quickly have a complete mess in your bookmarks, which is what I have now. Pretty soon you find yourself completely hooked and it starts to seem endless. There is always more, much more. It is a great pass-time, though, at least when you have nothing better to do. Time passes quickly and the brain is not bored, especially if you have a curious mind. There is a lot of interesting stuff, always something new to learn or to refresh or to just think about. Sometimes a lot to think about. There is also a lot of amusing stuff and sometimes even completely hilarious. Sometimes, quite often actually, total "BS" and utter junk which you need to learn to identify and filter out, sometimes while getting angry while other times while laughing. Thus getting another chance to exercise your brain, emotions and emotional control. Sometimes though, there are real gems to be found.I was somewhat surprised though, although I probably shouldn't have been, by the fact that I still care about software. After all, it has been my prime interest for 30 years, as well as my occupation for 25 of those. However, during 5 years since I retired, after a complete burnout, I didn't touch a computer at all, not counting the occasional web surf or email, and avoided my previous area of interest and occupation as if it was a plague. I was completely sure, or maybe I was just trying to convince myself, that I don't care about it anymore and never will again. Apparently, I was wrong. All that was needed to prove that was sufficient time for distancing and cooling down, being sufficiently bored, and finding myself with a spare laptop in my hands and nothing else to do.However, I do find myself now in a completely new situation. Before, I was deeply involved, both mentally and emotionally, as well as under pressure of a professional career. Now, on the other hand, since it's just for fun and only as long as it actually is fun, with a potential to grow into a new-old hobby or not, I feel completely relaxed and cool-headed. Also, the years of complete detachment made me very rusty. So in a way, I can probably also consider myself a kind of nub, although maybe a special kind, an old experienced one. A nub in areas which I never knew, partially nub in areas which I knew but forgot, lot's of experience which one can't really forget, and an overall detached cool-headed fresh perspective.So this is really a new thing for me and I hope it will be fun.
PYK 2016-04-09: Reading your response, I have this eerie feeling, as if reading a message from myself a few years in the future -- right down to the burnout and beyond.
References of interest
- Scripting: Higher Level Programming for the 21st Century
- Official Tcl/Tk Documentation
- Official Tcl Commands
- Official Tcl Syntax
- Dodekalogue - The 12 Rules
- Bash Reference Manual
- TIP #352: Tcl Style Guide
- TIP #247: Tcl/Tk Engineering Manual
- A Fully Backward Compatible Extension Of Tcl Syntax
- Array as One Of The Most Powerful Features Of Tcl
- First-Class-Variable versus First-Class-Value
- The Curse of dict
- Data versus Arguments
- Reference versus Value
- String versus List
- exec, eval, subst, concat, join, split, etc...
- upvar, uplevel, global, variable, etc...
- namespace ensemble
- Indexing of Strings and Lists
- Data Structures
- array, dict, list, keyedlist, etc...
- Structured Variables versus Structured Values
- Variable Based versus Value Based Access to Data
- Data Access Notation
- Little Languages
- Domain Specific Languages (DSL)
- Over-Flexibility of Syntax as a Limiting Factor
- Programming Paradigms
- Functionality and Behavior versus Notation
- API versus UI/CLI
- Options/Switches versus Arguments
- Scoping/Nesting/Dependency between Commands
- Inward versus Outward Semantics
- Command, Variable, Object, Value, etc...
- Language Design versus Usage
- Architecture and Design
- Levels of Abstraction
- Design of Infrastructure
- Design of Components
- Design of Core Capabilities and Engines
- Design of Command Line Interface (CLI)
- Descriptive and Behavioral versus Imperative Paradigms for UI(GUI and CLI)
- A Built-in Help System
- A Unified Data Model
- A Dynamic Interpreter for a Dynamic Language
- The Curse of The <newline>
- The Curse of The Paired List
- The Curse of "Everything is a ..."
- The Curse of Over Generalization and Over Unification
- The Curse of Over Specified, Redundant, Unnecessary, and Dangerous Features
- The Trade-of between Unification versus Separation of Concerns
- Reinterpretation of Concepts and Principles as The Engine for Evolution
- Coding Style
- The Future of Tcl versus Tcl for The Future