Hacker News new | past | comments | ask | show | jobs | submit login

From the video...

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




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...

I don't disagree.

The "melancholy" hit especially hard.


> The "melancholy" hit especially hard.

Romanticism of Lisp: how awesome it could have been if I were writing this on a modern Lisp machine.


I use Emacs in no small part because of elisp... Oh dear.


I think romantically of MACRO-32 and the VAX silicon it ran on. (I have a CVAX2 chip pressed into a luggage tag somewhere around here...)


I disagree on the Javascript count, specifically modern, statically typed Javascript.

I might choose another language for perf characteristics that JS cannot match, but otherwise Javascript is a truly expressive lang right now.


Do you mean TypeScript / Flow / Dart or did some version of ECMAScript I am unaware of introduce a type system?


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!

From the extended paper:

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

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.


> sadism would definitely be a new development

I guess that might depend upon your regexps and how gnarly/undocumented they are :-)


Was it not perl that introduced the documentation feature to regexp (the extended "x" flag)?


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:

    rule declaration { <declarator> <name> '=' <value> }
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.


Me too, but I'm also a hysterical fetishist. So the more programming languages you use the more insane you get! Seems pretty accurate ;-)


Obviously Lisp, Scheme, and Smalltalk are not melancholy languages because you are only melancholy about them when you are not using them.

They are perhaps narcissistic languages, or obsessional.


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.


I wonder what moved Clojure from melancholy to sadism? Hickey's glasses, probably.


The slide says, "Injects itself into the corporate scene, then subverts from within."


FORTH is definitely a masochistic language by every definition.


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!


Where do Nock and Hoon belong (from Urbit, for those who are out of the loop)?


Hoon is a sadistic language implemented by a hysterical personality.


Subjecting Urbit to Lacanian/Žižekian psychoanalysis is like feeding Zippy the Pinhead quotes into ELIZA, just without the computer.


They both out of the chart!


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.


I've heard about a merger between two companies.

One use Java, the other used Perl.

At some point both teams were told that they had to add a particular feature.

The Perl team was done well before the Java team.

This was a story from one of the Perl trainers. I don't remember enough about the rest of the video in order to find it online.


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.


I'd have thought C++ was the poster-perversion for this. The community wants users to admit they can't develop software at all.


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.


I view the Raku vs. Perl split as schizophrenic conflict resolution.


Private equity has been making millions selling the parts of a company for more money than the whole. I don't see how that split is any different.


Where's Rust and Swift?


I'd put Rust in the obsessional camp and Swift in the hysterical. I'd put Haskell in both camps.


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.


And Kotlin as well?


Look how beautiful and yet strict it is, and how other java folks suffer!

Sadistic hysteric it seems.


Miss APL, (or K etc.), Pascal and Fortran and Algol 68 ...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: