1. 23

    One can no more dissuade a visionary of this kind than one can dissuade a member of the Fabian Society from the virtues of global humanitarian government, but then neither will the vox populi of provincial yokels be of any use in countering it. One can only stoically resign to the pull of inexorable necessity.

    With the help of an Internet search query or two, and a good deal of re-reading, I could probably figure out what this means. But I am le tired. And I haven’t even gotten through the first chapter.

    This brings up a different controversy: Is writing like this useful to stretch peoples minds, help them grow? Or does it just discourage people and make them feel dumb? Is writing a form of art, or a means of communication, or both?

    From my perspective, it looks more focused on artistry than actually communicating and transferring knowledge. Which isn’t necessarily a bad thing.

    1. 22

      It’s called “purple prose”.

      1. 2

        That’s exactly what I was referring to, TIL.

      2. 9

        From my perspective, it looks more focused on artistry than actually communicating and transferring knowledge.

        Your perspective may change if you finish reading the document before dashing off to post a comment about the style instead of the substance of the source material. :)

        It goes on to give a lot of historical context on previous attempts and on systems issues.

        1. 8

          That’s the point though - I’d happily read the whole thing, if I had the mental capacity to do so. I’m sure there’s plenty of good info in there, but it’s buried under so much prose that I feel like I need a college degree to begin understanding it.

          1. 4

            The point that you mentioned is a local maximum in terms of hard-to-read prose, and (from my reading up to section 2.3) I believe it is a global maximum too - the text is much nicer almost from that passage onward and I only found one other spot that I believe to be particularly egregious. I encourage you to keep going! I very much dislike the Unix culture and tooling in general, but found this article to be fascinating anyway.

            1. 1

              I sampled towards the end and found the prose similarly tiresome.

            2. 3

              Not every reader is native English speaker (and reader). Reading this style is very demanding and makes it harder to focus on the main topic. I have no idea if there are expressions hidden that I don’t know yet, or if a reference in the text is key to the final point.

            3. 9

              You make the mistake of implying that there’s an objective way to communicate clearly and it’s not instead dependent on the listeners.

              Most tech documentations, even when assuming no previous knowledge from the reader, would be unreadable for most people for the sole reason of their structure and dryness.

              You’re witnessing something written by a person that is on the boundary between different worlds and can merge them into a single piece of writing and this confuses you. It’s normal and probably the author did it deliberately.

              Lot of us programmers on the left are keen in rupturing the cultural and social bubble in which the tech sector is entrenched and I wouldn’t be surprised if the author wrote the piece in this way to deliberately challenge the stylistic elements of engineer-oriented writing.

              1. 7

                I agree, but I think it’s just interesting that the author seems to have raised the educational bar, not lowered it. Now you have to be an engineer AND a literary genius to understand what’s being written.

                And I’m not saying this is necessarily a bad thing. I’m just noting that it’s unapproachable for people like me. I’m sure after a bit more education and time, I’ll appreciate it too.

                1. 13

                  You don’t have to be a genius to understand that paragraph, just literate. I understood it just fine and the highest formal education I’ve received is community college.

                  Anyone who works in software is accustomed to googling tech jargon they’re unfamiliar with and learning as they go. I think it is interesting that you balk at doing this in a humanities context and perhaps that was the point.

                  1. 4

                    I think you hit the nail on the head. It sounds to me like you’ve put in the hard work to understand and appreciate this kind of writing, and that is truly awesome (no sarcasm there). For me, I could totally figure this out, no doubt about it. But it would still be quite the slog, because I haven’t invested quite as much hard work as you have into the humanities yet. And that’s ok.

                    That’s why I say this “isn’t necessarily a bad thing.” I could use some more development in my humanities skills! But if the goal is to communicate ideas, then writing like this will only communicate ideas to a gifted few who are good at both engineering and humanities. Again: Not necessarily a bad thing.

                  2. 1

                    If you want to start from somewhere, I suggest you read Geek Sublime from Vikhram Chandra. He’s both a programmer and a novelist.

                  3. 1

                    Lot of us programmers on the left are keen in rupturing the cultural and social bubble in which the tech sector is entrenched

                    And yet you at the same time alienate readers who’ve never studied literature in English, nor English literature. More often than not from second and third world countries.

                    1. 6

                      We write in different ways to reach different audiences in different ways. I never said everything should be written this way. There’s a growing idea of writing more propaganda disguised as tech opinion pieces using a language that programmers like. I mean, the far-right has been doing that for three decades now, it’s time for the left to react.

                      The “poking” at the bubble is complementary and clearly doesn’t aim at reaching the masses, but just at bringing out those that have the potential to connect with those readings.

                      Also I’m not American, I’m not an English native speaker and in “second and third world countries” humanities are usually valued a lot more than in the protestant anglosphere, so I don’t get your point.

                  4. 8

                    This is the “English (Literary)” locale where it is assumed you know your leftist lore (and French philosophy). Not my thing but sometimes the references lead to interesting wikipedia pages.

                    1. 11

                      This brings up a different controversy: Is writing like this useful to stretch peoples minds, help them grow? Or does it just discourage people and make them feel dumb? Is writing a form of art, or a means of communication, or both?

                      When I was younger I thought that impressing people with my vocabulary is the utmost purpose of my writing, but as years have gone on I have realized that this is just mental peacocking (to use a friendly term). The real greatness is to convey information (or even humor) using simple language while staying informative and engaging. I have been way more impressed with authors being able to write like this than people who just show they own a thesaurus.

                      1. 6

                        This brings up a different controversy: Is writing like this useful to stretch peoples minds, help them grow? Or does it just discourage people and make them feel dumb? Is writing a form of art, or a means of communication, or both?

                        I would argue the former. You’ve learned a little more about the world by virtue of looking up a literary or cultural reference you didn’t previously understand. I’ve done this with plenty of texts I’ve read, in English and particularly in other languages (English is my cradletongue). Of course you weren’t obligated to do so - you could’ve decided that this article about systemd written using these kinds of literary references wasn’t worth your time to understand, and if enough people thought similarly, it would lose a substantial portion of its potential audience. But using literary and cultural references is something that writers and speakers do in pretty much every genre of human communication; and it’s only because this author happened to choose ones that you were unfamiliar with, that you found it something worth remarking on.

                        1. 3

                          I found it really funny. To me, that kind of descriptiveness adds humor, but maybe I’m the only one? Like putting an eccentric accent on a movie character.

                          1. 1

                            i found it pretty funny too :)

                          2. 2

                            I think the article would be much longer if it wasn’t for the use of various literary devices for compression.

                            Maybe that would be for the better as more people would benefit from reading it.

                            On the other hand, it’s useful to have someone shine a light on gaps in your knowledge of things which used to be well known. Certainly I don’t think that a lot of the things referred to in the writing should be particularly exotic, yet sadly they are.

                            Finally, I personally get some enjoyment from reading things like these. It’s the kind of enjoyment I get from reading old books. Difficult to read but full of very interesting ideas.

                            1. 2

                              Is writing like this useful to stretch peoples minds

                              While I do not particularly like the style of this text, I appreciate any kind of writing style that does not resemble the current “ted-talk” style uncultured vomit that is becoming the style of almost everybody today.

                              1. 2

                                I”m less offended by the use of some obscure terms and references than by the implicit comparison of a Gnome maintainer to a follower of Stalin:

                                And if we are to take the “revolution OS” metaphor further, then Bassi’s position is not unlike Stalin’s defense of the need of a vanguard party in The Foundations of Leninism (1924), with those opposed consequently in the role of Trotskyites, Zinovievites and ultra-leftists: “The theory of worshipping spontaneity is decidedly opposed to giving the spontaneous movement a politically conscious, planned character. It is opposed to the Party marching at the head of the working class, to the Party raising the masses to the level of political consciousness, to the Party leading the movement; it is in favour of the politically conscious elements of the movement not hindering the movement from taking its own course; it is in favour of the Party only heeding the spontaneous movement and dragging at the tail of it.”

                                1. 2

                                  Arguably, in many historical cases, such ways of expression were used to hide the real meaning, a sort of emphemization. It was especially used when it came to criticizing a point of view, to filter out as many people as possible to not bear the consequences of saying clearly what you intended to say. The more fluff and ambiguity the more you can hide behind it.

                                  EDIT as this comment says, it’s called “purple prose”.

                                  1. 1

                                    FWIW, here’s my translation:

                                    You can’t dissuade visionaries like this, and the popular bloggers won’t help you counter them either. All you can do is give in [and use the visionaries’ stuff?]

                                    Without the context of the surrounding paras I don’t really know what they were getting at.

                                    I think people write like this because it’s fun for the writer, not necessarily for the reader ;)

                                    Edit: the context is:

                                    • The Fabian Society is a British internationalist lefty think tank. Because they’re internationalist and lefty (but not anarchists), they’d probably really like a global humanitarian government.

                                    • “vox populi” is latin for “voice of the people” and sometimes means the “opinion of the people”, but that bit is a bit clumsy anyway.

                                  1. 1

                                    Try PROLOG, if you manage to explore it deeply enough, it changes the way you think about programming.

                                    1. 5

                                      I can recommend this book highly, particularly the experience reports from engineers who describe how they brought up Smalltalk systems on various machines with nothing but a binary image and an abstract VM description.

                                      1. 6

                                        When you get stuck, simplify, either the code or the problem you are trying to solve. (this isn’t overly profound, but when taken seriously, it requires sometimes the courage to reduce your expectations)

                                        1. 3

                                          There has been a wealth of research in parallel logic languages (Concurrent Prolog, GHC, Parlog, Strand) which unfortunately got lost with the death of Japan’s 5th generation project. I find this approach (implicit fine-grained parallelism) very natural and elegant.

                                          1. 7

                                            What nonsense. As if the speed of hammering code into an editor says anything about the abilities to program…

                                            1. 1

                                              In the post I’m very clear that it relates to all aspects of coding, not just writing the code. That is to say, writing commit messages, writing commands, communicating with remote team mates, searching online for answers, etc. There are a lot of aspects to the daily code cycle other than just typing code itself which still involve typing.

                                              But I appreciate the comment.

                                              1. 1

                                                You mix up a personal metric of “productivity” (producing certain amounts of text by a keyboard in a certain time) as an indicator of quality and I can tell you from personal experience that this is utterly wrong. What makes you a better programmer is reducing the amount of typing through automation and thus making superfluous typing unnecessary.

                                                1. 1

                                                  I mean, I could also tell you the opposite from “personal experience”. It’s difficult to make arguments based on that.

                                                  What kind of automation are you talking about in this regard?

                                            1. 1

                                              To those still interested: a new release (version 2) is now available, with quite a number of bug fixes and improvements. Many thanks to @jacereda for fixing several problems on Darwin!

                                              1. 7

                                                I use rc(1), the only shell that doesn’t confuse me endlessly with absurd quoting problems. Now I actually enjoy writing shell scripts…

                                                1. 2

                                                  I wrote a dotfile manager in rc and it was such a breath of fresh air. Just reading the documentation honestly made me happy, and not much documentation does that! I don’t think I could ever use it as an interactive shell though, and I still write most scripts in portable sh, but I do wish rc were more ubiquitous.

                                                  1. 1

                                                    I loved using RC but eventually gave up and use zsh (home) and bash (work).

                                                    1. 1

                                                      I use rc as my fulltime shell as well - specifically Byron’s rc which cleans up some of the silly “if not” logical things.

                                                    1. 1

                                                      I’m going to download this and look at it, but the 32 thread POWER9 under my desk is salivating at this. What are the system dependent portions I would need to write to port it to Power ISA?

                                                      1. 2

                                                        Look at forth/k-x86_64.s. You’d need to write those primitives for POWER9 and cross-build the boot image from a supported system.

                                                        1. 2

                                                          As jacareda said - the assembly language kernel some information about system calls in sys.f are needed. In fact, I have most of the stuff ported (but completely untested). Please contact me, if you are still interested.

                                                        1. 3

                                                          Funny… I have that book! I’ve skimmed through it a few times, and my impression of the language is that it’s very similar to Erlang, but with more Prolog.

                                                          I figured the language was dead, but I’ll see if I can get this running.

                                                          1. 3

                                                            It should be straightforward to build, running multiple communicating nodes can be a bit of a hassle, though. I recommend giving the “strand” rc(1) script in strand-utils-1.tar.gz a try, as it makes this much easier. Any questions and suggestions are more than welcome!

                                                            1. 1

                                                              Back in the 90s when I first saw Erlang, I always thought it had some “surface similarity” with Prolog.

                                                              1. 2

                                                                The early versions of Erlang were indeed implemented on top of Prolog, and Joe Armstrong talked about his fascination with Prolog in more recent years as well. As I remember it, he said they gradually removed all backtracking/indeterminism until they realized they weren’t really doing Prolog programming anymore. Some of the syntax that looks very idiosyncratic in Erlang is carried over from Prolog.

                                                                Robert Virding (another co-creator of Erland) has created a “Prolog for Erlang”[0].

                                                                Term unification in Erlang and Elixir come straight from Prolog, a lot more restricted without backtracking but still very nice! And Joe described Elixir’s beloved pipe operator like this:

                                                                This is the recessive monadic gene of Prolog. The gene was dominant in Prolog, recessive in Erlang (son-of-prolog) but re-emerged in Elixir (son-of-son-of-prolog).

                                                                (He’s referring to DCGs in Prolog.)

                                                                [0] https://github.com/rvirding/erlog [1] https://joearms.github.io/published/2013-05-31-a-week-with-elixir.html

                                                              1. 5

                                                                This is a good counter-argument to the point stated in “The Curse of Lisp”. Many payoffs depend on things you intentionally don’t have in the language. You can make something that looks like ML or Haskell on top of Scheme or CL, but safety of delimited continuations depends on not having the classic ones. Structural sharing depends on the guarantee that everything is immutable unless explicitly specified otherwise. The list goes on.

                                                                If there are no such guarantees, you either end up with a superficial copy of the real thing that can be easily escaped. If you can can introduce them as in custom languages on top of Racket, you end up with a language whose runtime performance is determined by the limitations of the underlying lisp.

                                                                1. 3

                                                                  The quote from Andy Wingo’s blog at the end of the post summarizes this pretty well:

                                                                  Guile’s failure to standardize a generator interface is an instance of a class of Scheme-related problems, in which generality is treated as more important than utility

                                                                  1. 1

                                                                    Scheme implementors in general have no eye for the beauty of Scheme’s generality…

                                                                1. 6

                                                                  There are many uses of first class continuations, and there is a historical reason Steele + Sussman have implemented them that way. This tiring discussion of call/cc vs DC comes up regularly, even though one can be implemented in the other (and the performance + memory-consumption of either implementation depends on too many factors to have one of the strategies easily dismissed. CHICKEN, for example uses CPS + flat closures, which means there is very little extra memory retention for “full” continuations beyond those “activation frames” (continuation closures, really) which are actually required.

                                                                  Regarding “safety” (and what do you mean by “unsafe” anyway?): yes, they are powerful, escaping out of a dynamic context is actually a feature. If you use it unwisely, then it is your own fault. Call/cc is also simpler (from the conceptual point of view) and more minimalistic, which are properties that once were associated with Scheme, but easily get forgotten.

                                                                  Everybody likes bickering about Scheme’s generality and I’ve done my share. But we would have lost a diamond of a language if it weren’t for exactly this.

                                                                  1. 3

                                                                    Nice article. It’s also very telling how religious content is taken up in here…

                                                                    1. 3

                                                                      I’m a Freemason, and there are two things that are verboten in lodge - politics and religion. Why? Because they’re divisive topics that drive a wedge between people who might otherwise collaborate with and learn from each other.

                                                                      To my mind, this site is a space in which we should avoid divisive topics that do not promote the greater progress and understanding of technology.

                                                                      1. 2

                                                                        I doubt anything can be more divisive than many of the topics that appear in here, at least to those that take computing seriously. If you try to avoid divisive topics, you only get watered down content and perhaps never learn about something that struck you initially as unmentionable. Moreover, technology can not be detangled from politics and is never neutral, Trying so is naive and dangerous.

                                                                      2. 3

                                                                        It’s strictly off-topic for this site (and I have flagged it as such), but I have no problem with the content or the professed faith of its author otherwise.

                                                                      1. 3

                                                                        Love it. A week is incomplete with reading n-gate.

                                                                        1. 1

                                                                          I read and enjoy n-gate too but it’s still off-topic for this site.

                                                                        1. 1

                                                                          Excellent rant. Applicable to many other pseudo-innovations and hype-explosions that our industry suffers so heavily from.

                                                                          1. 3

                                                                            It is “compiler”. Not “transpiler”. “Transpiler” isn’t even a word.

                                                                            (I know that the original article uses this term (even incorrectly, in fact), but I wanted to use this opportunity to raise my weak little voice here in an admittedly hopeless and futile attempt to rescue the integrity of our professions’ terminology …)

                                                                            1. 5

                                                                              Unintentionally hilarious (“People appreciate when you fire the right people, so don’t worry about morale. Also, the average quality of people tends to grow more when dismissing than when recruiting.”), but mostly bullshit…

                                                                              1. 2

                                                                                I don’t follow you here.

                                                                              1. 6

                                                                                Excellent article. I am always amazed how people get the idea that “solving” purely combinatorial or pattern-matching problems is equivalent to general intelligence, something that we are not even able to define…

                                                                                1. 1

                                                                                  A few years ago our project tried to apply for membership in the Conservancy, and we were in contact with Mr Kuhn. After being repeatedly put off with excuses of the “too busy” type over a considerable period of time, we just gave up. So I can relate to parts of the complaint of the SFLC…

                                                                                  1. 2

                                                                                    I mean… it’s not an excuse. Bradley does more in a day than I can imagine, and there’s always more to do.