Hacker News new | ask | show | jobs
by a4isms 1514 days ago
Modernism:

"Less is more"—Mies van der Rohe

Postmodernism:

"Less is a bore"—Robert Venturi

—————

Guided by these famous quotes, if I were to call a programming language a "Modernist" language, I'd think of something that prizes elegance. It can't just be a small language, it has to be a small language with a few features powerful enough to actually do more.

I would think of languages like Scheme or Smalltalk or C as fitting that label. But not JavaScript or Java or C++.

And if I were to call a language "Postmodernist," I'd expect a language to incorporate historical motifs, whimsey/surprise, and arresting/attention-grabbing features.

Perl might fit that bill. C++ manages to be "more" without being postmodernist, IMO.

3 comments

p.s. This is fun. So what constitutes a Brutalist programming language?

It should be something that:

- Exposes the construction materials

- Implies mass and permanence

- Is usually institutional, e.g. libraries, government buildings, public housing. Only rarely shopping centres or company head offices (which were usually done in the "International" style when Brutalism was a thing).

What fits that bill? How about SQL?

C++ is absolutely the world's foremost brutalist language.
What? Not even close. C++ is Baroque.
None of its monumental complexity is ornamental. It's all there to expose some inner working of its underlying semantics for the user that needs to access it. It's hard for me to imagine something more brutalist than operator new or partial template specialization.
There's always protected inheritance, a/k/a "was_a," or, "is implemented in terms of."

That's like postmodern furniture design. "This couch was_a giant pair of lips," meaning that although it is implemented as a pair of lips, we'll treat it as type couch.

Same for, "This chair was_a giant baseball glove."

Ada.
It's Forth.

> Exposes the construction materials

Unlike most programming languages, the user has to keep the Stack in mind when programming.

> Implies mass and permanence

Its minimalist design made it extremely small and efficient

> Is usually institutional

I'm not sure how that fits into a programming language. But Forth is often used to write things like bootloaders due to its minimalism.

Forth. It was in OpenBIOS, it exposes the internals, you can define all its standard words by itself.
COBOL, ABAP
MUMPS
Not sure MUMPS 'Exposes the construction materials', considering how deeply buried it is in applications like Epic by now. Perhaps I misunderstood what that part meant.
> Perl might fit that bill

may i submit https://metacpan.org/pod/Acme::Bleach

I’m adding SNOBOL to my list of modernist languages. “Everything is pattern-matching” fits the modernist ethos.

On the other hand, what about APL? Although the syntax looks just as much like line noise as Perl’s syntax, it is actually a very elegant language. Is APL also a modernist language?

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

If you think about it... Smalltalk.