Hey, how about throwing in a perverted, fetishistic, masochistic programming language like FORTH, too? ;)

Where do you think Logo and Snap fit into the three basic mental structures of psychosis, perversion, and neurosis, as W Watson describes in "The Pervert's Guide to Programming Languages"?

https://news.ycombinator.com/item?id=22910702

https://www.youtube.com/watch?v=mZyvIHYn2zk

https://s3-us-west-2.amazonaws.com/vulk-blog/ThePervertsGuid...

I have hope that Snap! has transcended the self-indulgent Turing Tarpit of Melancholy Languages like Scheme, Lisp (which spawned Scheme during a hysterical event), Smalltalk, and languages that never were, as described on the penultimate page. ;)

Snap! strikes me more as a Hysterical language, frantically pursuing the object of desire, in pursuit of the perfect syntax.

>Hysterical Languages: Hysterical development lends itself to languages that facilitate endless refinements in the code base. The delivered code is never good enough, not merely because of pragmatic reasons but often because of ascetic reasons. The final goal of capturing the elusive domain jargon [59] seems just around the corner, where just one refinement may perfectly represent the domain. Within the hysterical languages there can be two extremes. One extreme is to work towards the capability to easily represent any aesthetic. In this extreme the work and enjoyment are in the development of the language itself [60]. The other extreme is to consciously implement the aesthetic using the language as is [61]. This extreme bends the language to look more aesthetically pleasing. Somewhere in between are refinements to extremely large code bases that must stay available.

>[59] “The overhead cost of all the translation, plus the risk of misunderstanding, is just too high. A project needs a common language that is more robust than the lowest common denominator. With a conscious effort by the team, the domain model can provide the backbone for that common language, while connecting team communication to the software implementation. That language can be ubiquitous in the team’s work.”, Evans, Eric (2003-08-22). Domain-Driven Design: Tackling Complexity in the Heart of Software (Kindle Locations 829-832). Pearson Education. Kindle Edition.

>[60] “Also, I’m a great fan of evolving as opposed to just starting out new. You might fall in love with one particular idea, and then in order to implement it, you go create a brand-new language that’s great at this new thing. Then, by the way, the 90% that every language must have, it kind of sucks at. There’s just so much of that, whereas if you can evolve an existing language — for example, with C# most recently we’ve really evolved it a lot toward functional programming — it’s all gravy at that point, I feel.”, Biancuzzi, Federico; Chromatic (2009-03-21). Masterminds of Programming: Conversations with the Creators of Major Programming Languages (Theory in Practice (O'Reilly)) (Kindle Locations 7017-7021). O'Reilly Media. Kindle Edition.

>[61] “A big part of the modus operandi of the Ruby community is a more fluent approach— trying to make interacting with a library feel like programming in a specialized language. This is a strand of thinking that goes back to one of oldest programming languages, Lisp.”, Fowler, Martin (2010-09-23). Domain-Specific Languages (Addison-Wesley Signature Series (Fowler)) (Kindle Locations 473-475). Pearson Education (USA). Kindle Edition.