Having watched the video, read this post, and written serious amounts of non-trivial code in Javascript, PHP, SQL, C, Assembly, Perl, Regex, Java, C++, Python, C#, Ruby, and Scheme...
As someone who has primarily worked with Perl, JavaScript, SQL during their career, and who has a penchant for regular expressions, I'm a sadistic psychopath.
Super.
I mean I've been told I'm pretty unemotional, but sadism would definitely be a new development.
Remember, he's using the Lacanian / Zizekian definitions of terms, which are a lot different and more nuanced than their ordinary definitions, so you're probably the "good kind of sadist". ;) Lacan ironically classifies Marquis de Sade as a masochist!
Pervert, in the Lacanian definition, actually means a person who enjoys being a vessel of the rules. Zizek identifies the method of discourse that the psychoanalyst uses as the pervert’s discourse, because the analyst sits in the position of the object of desire for the hystericized subject. This means that the analysand [the person being analyzed] projects their ideals onto the analyst during a process of questioning known as transference. When we use analysis to determine why we use a programming language, we are operating in the analyst's discourse. It is important to have a basic understanding of Lacan’s terms (such as perversion) in order to understand the cultural critiques of Slavoj Zizek and other Lacanians.
“Thus, in psychoanalysis "perversion" is not a derogatory term, used to stigmatize people for engaging in sexual behaviors different from the "norm."”, Bruce Fink. A Clinical Introduction to Lacanian Psychoanalysis: Theory and Technique (Kindle Locations 2460-2461). Kindle Edition.
“The Other's desire or will is accepted by the masochist instead of the law, in place of the law, in the absence of the law. As
Lacan mentions, the Marquis de Sade (better known as a sadist, but in this instance manifesting decidedly masochistic tendencies)
pushes his mother-in-law, Madame de Montreuil, to the point where she expresses her will that Sade be punished. It is her desire or will that has to serve Sade as a law. Not the law, but a law.”, Bruce Fink. A Clinical Introduction to Lacanian Psychoanalysis: Theory and Technique (Kindle Locations 2805-2808). Kindle Edition.
I think Perl got it in 99 or 2000. The only other two possibilities are Ruby or PCRE. But I think they were following Perl rather than leading at that time.
----
Raku's reinvention of regexes threw away the x flag. Instead comments are always supported. And whitespace is insignificant.
----
Except when one explicitly asks for it to implicitly be significant. Imo this simple maneuver is shockingly sweet, the sort of thing I'm glad Larry Wall saw, with his usual piercing clarity, is brain-dead obviously precisely the right thing to do:
The above declares a `rule` which is like a regex except it doesn't backtrack between atoms, and, if there's whitespace between atoms, it treats that as a tokenizing boundary. So, for example, whitespace can appear in the input where it appears in the pattern, and tokens corresponding to the atoms (`declarator`, `<name>`, etc.) can't run into each other unless one is comprised of alphanumerics and the other non-alphanumerics. This is precisely how humans expect things to work; `let foo` must have a space between `let` and `foo`, but `let foo=42` is OK because `=` is a non-alphanumeric. Simple. Sweet.
Well said. Used to be a die hard Smalltalker (with a strong appreciation for my Lisp (esp CLOS) cousins). Now I get by doing Swift, Kotlin, Python, and a bit of embedded C. Life feels dirtier now.
Matlab should be in the Hysterical, Psychopath, Masochist and Sadist categories. Worst time I've ever had writing something non trivial was in Matlab. I once ran into a bug in their GC that was apparently 5+ years old and had to time line to fix. For context this was about 8 years ago and I was asked to do it in Matlab for a neuroscience lab I was working for. I would have chosen C++ or Python and interfaced with the C++ binaries.
Edit: Misread the above post. He said Matlib not Matlab. Not sure if that was a type or just referring to the plotting library, but my feelings towards Matlab still stand!
Not sure why Erlang is in the sadist category, along with Perl and Regexp, since it's one of the most readable language I've encountered. I get the fetishist part as it emphasizes a specific paradigm but sadist seems unfair. It might be because the syntax is slightly unusual but it's in fact quite simple.
The sadist (causing anxiety to the other in order to get the other to announce the rules) wants the other to admit their impotence (in the way that the other develops software). The erlang community wants the other to admit that they can't develop software that has nine nines of availability.
Isn't it sadistic the way Perl and Bash are so ideal for developers gaining control over their employers and ensuring job security by making themselves indispensable (forcing their employers to admit their impotence of firing them) by writing obscure unmaintainable code that only they can understand and modify?
You can do that in any language, of course, but Perl and Bash are are optimized for it.
While the other hand, Java is designed to appeal to management by making software developers fungible easily disposable worker-bees.
If we're talking about the same thing: this was about merging their databases, so that either could sell the other company's inventory. Both had an XML-interface for affiliates. It took the Perl team about 3 weeks to be able sell the other company's inventory using the XML-interface. The other company at that point hadn't agreed on a date for a initial design meeting yet.
By this, the company of the Perl team almost doubled its turn-over in 3 weeks. The other company ceased to exist a few years later, with most of its staff integrated in the company with the Perl team.
Its interesting to me to reclassify language schisms slash internal wars in this context. The C programmers(masochists) vs the C++99 programmers(Obsessives) vs C++11 programmers(Obssessives who want to move to Hysterical). The Raku vs Perl split as a move toward sociopathic behavior. The resistance in go to generics as an aversion of the masochistic to the hysterical. Its super fun.
The way the community talks about doing things the "swifty" way is very reminiscent of the way the python community talks about the "pythonic" way of doing things, I've used both languages extensively so maybe I fall into the hysterical camp. Swift falls a little into the obsessive category too.
Psychopath Languages: Javascript, PHP, VBA, and SQL
Masochist Languages: C, Assembly, Ada, Brainfuck, and Factor
Sadist Languages: Perl, Clojure, Erlang, and Regex
Fetishistic Languages: Erlang, Smalltalk, Elixir, and Factor
Obsessional Languages: Java, C++, Haskell, Scala, Go
Hysterical Languages: Python, Ruby, C#, Prolog, Elixir, and Matlib
Depression Languages: COBOL
Melancholy Languages: Lisp, Scheme, Smalltalk