1. 2

    I went through a similar process when interviewing with Yelp, although that was in 2014. My guess is that things are different now. I was interviewing for an iOS role; the recruiter read from a list of CS trivia questions (also featuring SIGKILL!). I stayed on the call purely out of professionalism, but it left me with a bad taste for a long time.

    1. 1

      I recently did an in-person interview where the CTO literally asked me the 13th digit of pi off the top of my head. I regret not walking out immediately.

    1. 25

      OTOH, the solution was presented in a direct, non confrontational way. I’m not sure I see what the problem is.

      Admittedly, I grew up on this sort of rhetoric.

      I think my issue is that the asker shouldn’t feel entitled to empathy. It is nice, but it should be extended only if the answerer wishes to. Compelling it sort of negates the whole thing.

      1. 23

        It’s not a problem per se, but when I answer a question for someone it’s normally because I care about helping them out. If I can slightly tweak the way I respond while spending little (or even no) more effort to come across as friendly then that sounds like a win.

        1. 8

          What I’m hearing is that to you, asking someone to add empathy instead of doing it naturally sounds disingenuous. I certainly understand that if you grew up this way, but most people do not. I certainly agree with you when it’s over the top and often attached to a help desk script or chatbot, but I don’t believe that’s the entire gist of this.

          What I got out of the article is the idea since it’s difficult to show emotion online that is conveyed nonverbally in person, extra effort goes a long way. Given that many folks asking questions may be a new to an area of study and often are at peak frustration when asking a question online. If you’re willing to help, then showing a tiny bit of extra effort to not push them entirely away from the field is a good thing. Chances are, they know a bunch of things you don’t know about and you may need help someday.

          So yes, I can see where you may not see a problem, but remember that large segments of people enter our various fields, or never even study long enough to bother entering, because they feel left out due to multiple gatekeeping methods. If we can make a tiny improvement here and there when answering questions to not be gatekeepers, even unconsciously, this will go a long way. Not an accusation of you personally, as I don’t think that’s your intent, but that is what I got from the post.

          1. 13

            I’m not sure I see what the problem is.

            That approach only really works well for the tiny subset of people like you and I who grew up on it.

            Compelling it sort of negates the whole thing.

            At work, you are compelled to perform your job function.

            As a senior developer, that job function typically includes improving the junior staff. You’ll never be as effective as you could in that function without cultivating a habit of empathy.

            It’s fine not to be high-impact in all areas, but ‘how do I teach people effectively’ is a topic that hasn’t changed in thousands of years, and it’s pretty clear that the student needs to feel good about what they’re learning.

            1. 9

              At work, you are compelled to perform your job function.

              This gives away the plot.

              It’s fine not to be high-impact in all areas, but ‘how do I teach people effectively’ is a topic that hasn’t changed in thousands of years, and it’s pretty clear that the student needs to feel good about what they’re learning.

              Much education has historically focused on challenging students, from Plato to Gateless Gate to military schools and boot camps. A segment of American corporate culture is becoming like a segment of American academic culture where acceptable speech, behavior, etc. are redefined in line with new norms. This ‘empathy’ push is part of that cultural change. I personally have no interest in helping the professional managerial class jockey for power in this crumbling capitalist world-order.

              1. 9

                Much education has historically focused on challenging students, from Plato to Gateless Gate to military schools and boot camps

                An excellent way to ensure someone feels good is to set them a task they know is difficult. Not giving people access to challenging work is a great way to ensure they feel like crap and don’t learn anything.

                A segment of American corporate culture is becoming like a segment of American academic culture where acceptable speech, behavior, etc. are redefined in line with new norms. This ‘empathy’ push is part of that cultural change.

                I agree that cultural change does include an empathy push. I don’t think that’s the troublesome part of it (specifically, for reasons I do not understand, there’s been a huge push to ensure all students pass all subjects, with disastrous consequences).

                I personally have no interest in helping the professional managerial class jockey for power in this crumbling capitalist world-order.

                I’ve quit the big corporate space and am not going back. One of the biggest things I hated there was commands disguised as kind questions, so I can see your point there.

                Still, I feel like the core of the argument - make an additional effort to be kind to the people you are working with, even when you are in a hurry to do something else - is worthwhile. Viewed on a scale of years, your network is far more valuable to you personally than any of the work you are doing.

                1. 0

                  This gives away the plot.

                  Sorry for #me-too trashy comment but omg that was for sure the best thing I read today. I lol’d

                2. 0

                  At work, you are compelled to perform your job function.

                  As a senior developer, that job function typically includes improving the junior staff. You’ll never be as effective as you could in that function without cultivating a habit of empathy.

                  Empathy isn’t a habit or something you need to ‘cultivate’ by pretending to be nice online.

                  It’s fine not to be high-impact in all areas, but ‘how do I teach people effectively’ is a topic that hasn’t changed in thousands of years, and it’s pretty clear that the student needs to feel good about what they’re learning.

                  How to teach people effectively has changed drastically in even the last couple of decades…

                  1. 11

                    Empathy isn’t a habit or something you need to ‘cultivate’ by pretending to be nice online.

                    I’m not sure what you are getting at. It is very much a trainable skill and skills are trained by making them a habit.

                3. 3

                  There isn’t a problem, there’s a massive opportunity for growth

                1. 3

                  Very well written article. Focused, clear, and memorable.

                  1. 2

                    Some of the screenshot comparisons seem to be yesterday’s vs today’s design trend. Is the fact that many users have more experience with older trends a factor I. The results of this study? Perhaps zoomers would struggle with skeumorphism, given they only know the flat glass, metal, and plastic world?

                    1. 10

                      It is trendy to throw hate on PHP but to be honest I really like it. Yes, I can see it’s flaws, it is impossible not to see them but just like that “WAT” talk is a disservice to JS, so is the “a fractal of bad design” for PHP, it makes people focus on the bad stuff, apparently it is cool to hate on stuff.

                      One of my favorite things about PHP is not exactly the language but how easy it is to deploy stuff. The idea of copying some files and then being done with it is very easy to grasp for new developers and very comfortable. Compare that with modern best practices of other runtimes where you need to keep stuff like pm2 running, then add something else to monitor the monitor, all in name of a scalability that you might actually not need.

                      PHP is approachable and easy, you don’t need to learn a ton of tooling to start doing useful stuff that you can actually ship. I with more languages will copy that.

                      1. 7

                        I’ve been a PHP developer for the last eight years or so and I send every green PHP developer to Fractal of Bad Design. I think its super important for people to know the weaknesses in the languages they use. I also show them PHP The Right Way which is a valuable resource for how a lot of modern PHP applications are built these days.

                        1. 1

                          @dsh, I think that is a great approach. My criticism is when people just pick a “fractal of bad design” and then are never exposed to the good things.

                          1. 1

                            I agree, I’m not a fan of being one sided. Fractal is easily the best criticism of PHP on the internet but I wouldn’t take it as gospel to language en masse - especially if I’ve never programmed in PHP.

                        2. 3

                          just like that “WAT” talk is a disservice to JS

                          Can you elaborate on that a bit? I’ve seen a few unpleasant bugs relating to JS’s … peculiar … type coercion behaviour.

                          1. 3

                            @duncan_bayne, well, that is only my personal opinion, so please take it as it is and not as a proclamation of truth. Also, this is not a direct commentary on you, please, don’t take this personally. This is a generalized commentary on my experiences dealing with other people.

                            Most type coercion problems in JS and other weird behaviors are widely recognized as either real problems or misunderstandings on the part of the developer who doesn’t understand the spec being implemented in the language (for example: missteps when dealing with floats because people don’t understand the spec). Both cases are acknowledged but they can’t be fixed because JS must maintain backwards compatibility with itself lest the web breaks.

                            The JS of today was not what was envisioned for the language in its humble beginnings. The fact that it can course correct but cannot erase its tortuous path is a feature. People focusing on the WAT problems foster mobs of “JS is horrible” when it isn’t. It is just not allowed to forget its mistakes like other languages are.

                            If people released a new ECMAScript version that broke backwards compatibility and did away with all the WAT problems that are real mistakes, then the web would break and people would be saying “we should have never bet in a language as unstable as JS to develop the web.”. We all want the Web to work, we want to be able to at the same time browse an unmodified website from 1999 and a crazy WASM + Workers direct port of a console Rust app to the web from 2020. There is a price to pay when maintaining such retrocompatibility, Windows knows that too.

                            So, my own problem with WAT is that it is often brought up by people who sees the little funny top of the iceberg and throws hate at it, completely ignoring the massive submersed chunk of reasons why something is the way it is, and why that is a feature not a bug.

                            1. 1

                              No offense taken :)

                              I spent around five years doing a mix of JavaScript and Ruby programming, so I definitely get where you’re coming from. Agreed also that there’s no easy way of fixing the problem without hosing backwards compatibility. (Although I never used it myself, I hear that Google had a stab at the problem with Dart).

                          2. 2

                            Whether or not it is ‘trendy’ to criticize this aside, PHP and JS are taught (often exclusively) to young developers and then serve as platforms for spaghetti-coded monsters. Perhaps PHP can be done well, but I’ve always seen it abused in practice. We might rightly blame bad management, capitalism, or whatever else but the association of PHP and a certain kind of ‘monkey-coding’ is seared into my mind—as are 4GLs like Progress and the film ‘Office Space’.

                            1. 2

                              Perhaps PHP can be done well, but I’ve always seen it abused in practice.

                              I think you could replace “PHP” in this sentence with “software” and have nearly as true a statement.

                              I never set out to become a PHP programmer, but I’ve spent a majority of my working life either writing the stuff directly or dealing with its care & feeding in production environments. For years after I first started grappling with a legacy monstrosity in PHP, I felt that the language itself was one of the major sources of my problems. At some point that shifted: For all of PHP’s nontrivial defects, it was hard not to notice that my real problems were generally located elsewhere. In data models, the travails of human communication, the dysfunctions of business, and a thoroughly corrupt & predatory technical industry / culture, for example.

                              Later, when I stepped away from PHP entirely for a while and started to survey the landscape, I had a secondary realization: A lot of my assumptions about its overall technical inferiority were on shaky ground. It’s not that PHP isn’t variously terrible. It’s that languages and environments widely held up as a superior contrast are also in fact pretty terrible.

                              I haven’t started anything from scratch in PHP for ages, and maybe I wouldn’t these days, but then again… It might be fine. I probably wouldn’t hate the experience of writing it and I’d probably be confident in it still working 5 or 10 years down the line without too hideous a set of contortions in the meanwhile. Which is more than I can say for an alarmingly high percentage of the application code being churned out at present.

                            2. 1

                              Completely agree that the criticisms of PHP aren’t generally justifiable. Most people think PHP hasn’t evolved since v5.4. The language is fantastic and the OOP is excellent. However, I ended up switching to NodeJS for the ease of using JavaScript both client-side and server-side.

                              1. 1

                                PHP is approachable and easy, you don’t need to learn a ton of tooling to start doing useful stuff that you can actually ship. I with more languages will copy that.

                                FWIW this is why I think “developer experience” is of supreme importance to languages and frameworks. It trumps almost everything, in terms of importance. I’ve been thinking about this recently, a lot, as I mull over a Lisp based dev stack for mobile.

                                You can have the best language in the world, and if your dev experience is like pulling teeth, a language like PHP (no offense ;) ) will beat you every time.

                              1. 3

                                Just for fun? Or for some benefit?

                                1. 4

                                  Both. A personal website has been on my todo list for years and since I’m learning guile it felt like a good side project. I chose to deploy using IPFS because –as explained in the first paragraph– it’s shiny and I did not want to manage a server.

                                  1. 2

                                    Unless I’m missing something, I didn’t connect to your site via IPFS, so isn’t there some (HTTP) server you’re running? Also, managing a HTTP server is pretty trivial if you’re already hosting static content.

                                    1. 3

                                      Cloudflare IPFS gateway as noted in the article:

                                      https://cloudflare-ipfs.com

                                      IPFS here is a replacement for Git{Hub|Lab} pages. Author does not want to run a webserver.

                                      1. 3

                                        Well you are missing something: the part of the article where I talk about using cloudflare-ipfs to access my content through http.

                                        And with regards to managing an http server I’d rather someone else do it. Between cloudflare and pinata I doubt I’ll ever have to troubleshoot downtime unless I let my domain name expire.

                                        1. 2

                                          Oops, I misunderstood that point. nvm then.

                                  1. 10

                                    While I appreciate that you are spreading the word, I have objections regarding the presentation.

                                    It shouldn’t be marked 2018. It isn’t complete, but neither it’s abandoned (see the commit history). It’s open to contributions too.

                                    If other people participate, it will be completed sooner.

                                    Note that there’s also live version at https://ocaml-book.baturin.org

                                    1. 1

                                      Please excuse me, I regret the error. I don’t seem to be able to edit the title.

                                      1. 1

                                        It used to point to the github repo. Now it points to the unedited, outdated blog posts where it started that I kept for the history. What was the motivation for that? ;)

                                        1. 2

                                          Just happened to find this page and thought it was interesting. Didn’t mean to point to the wrong resource.

                                    1. 5

                                      This looks very nice. I’ve known about Knuth’s cweb and friends for a long time, but this looks like a very user-friendly tool. I’d like to try it on a small project at work soon, see if our eternal documentation problems can be made a little better.

                                      1. 1

                                        I wrote a dumb and simple script today that makes illiterate programs, if you want I can put it up on GitHub. All it does is convert commented source to a markdown, but it is easier than adopting one of these literate tools.

                                        1. 2

                                          Yeah sure, I can write 80% of one of these in Perl in an hour, but then I’ll give up before I get to the integration with error reporting from the compiler which is the key to getting anyone else to go along with this.

                                          1. 1

                                            yeah I have no idea how to get a team to adopt better documentation, let alone literate programming :/

                                      1. 31

                                        It’s the fast path toward putting “full stack developer” on your resumé.

                                        1. 15

                                          This type of answer belongs in HN. Let us keep this community different.

                                          1. 0

                                            This should be the accepted answer.

                                            1. 9

                                              This is not SO and even there it’d be marked off-topic :P

                                              1. 0

                                                Glad you enjoyed my joke ;)

                                                1. 21

                                                  This is not about joking, this is about keeping the comments section on lobsters different than the popular communities where it’s much easier to say snarky one-liner than giving a thoughtful answer. The fact that /u/idrougge post is the most popular post in this comment section might show how “mainstream” lobsters is getting and reflect how I generally feel lately about this site.

                                                  1. -8

                                                    Something something upvote comment trees bad, forum good.

                                                    1. 10

                                                      This is unfortunate that instead of addressing anything I said you resort to sarcasm and do exactly what I’m pointing out about this comment tree.

                                                      1. 4

                                                        This is so poignant, I had to interject. Because @N64N64 is actually pointing to the root cause of Lobsters’ decline, just in such an inarticulate way that you missed the point… as did all eight of the downvoters that caused the comment (and any response to it, including this one) to become hidden by default. I always expand these, myself. And I generally read lobste.rs/newest and keep an eye on the mod log, because I’ve been around a bit and am firmly convinced that popularity points are actively harmful to thoughtful discussion. They incentivize the bad behaviors you and I both know too well from Those Other Sites and don’t want on this one. Reordering the comments by popularity just accelerates this bad pattern, as well as obfuscating the natural temporal ordering of a conversation, and perpetuating the weird notion that one only responds to a single comment at a time. So yes, upvote-ordered comment trees are bad, and the older and plainer style of forums are really better, although probably not the best possible form.

                                                        We can shake our fists and demand that newcomers discipline themselves against their conditioning, but I fear that we’re pissing in the wind. Ultimately, Lobsters will devolve into just another snark tank, and those of us who need something better will go find it somewhere else.

                                                        1. 1

                                                          Thanks for filling in the “something something” part. :)

                                          1. 2

                                            I’ve used it before. It’s nice. I keep running into the odd issue with it, though, and since I don’t know D it’s hard for me to volunteer to fix it.

                                            1. 2

                                              What issues have you run into? I hadn’t written any D before this morning, but something woke me up very early and I filed a couple of PRs to the project to fix some minor things that I’d seen. Maybe we can figure this out together.

                                              1. 1

                                                See eg https://github.com/zyedidia/Literate/issues/29 where Markdown footnotes don’t quite work. There was something else but I don’t remember it being as frustrating.

                                              2. 1

                                                How would you compare to alternatives like noweb or emacs Babel for org-mode? I used Babel but hated the emacs dependency

                                                1. 2

                                                  I also used to use emacs org-mode. It’s notably less featureful than org-mode but is more useful right off the bat. And it produces nicely styled pages, too. The nice thing about emacs org-mode is that you can edit in any editor you want and only use emacs to compile your literate code.

                                                  Literate is much much much easier to use than noweb, and does not require using LaTeX (which IIRC noweb does).

                                              1. 21

                                                Yeah, 72 is much more reasonable. We need hard limits, or at least ‘annnoying’ conventions to keep the horrors at bay. The human eye scans lines best at around 72 characters wide, and we should put human readability of our code before other concerns. I have worked on projects that had huge long lines and there is no excuse. If a language or tool or whatever can’t deal with human limits, find or make another tool. Linus’ current workstation should not be the standard.

                                                That being said, I think Racket has made a reasonable compromise:

                                                A line in a Racket file is at most 102 characters wide.

                                                If you prefer a narrower width than 102, and if you stick to this width “religiously,” add a note to the top of the file—right below the purpose statement—that nobody should violate your file-local rule.

                                                This number is a compromise. People used to recommend a line width of 80 or 72 column. The number is a historical artifact. It is also a good number for several different reasons: printing code in text mode, displaying code at reasonable font sizes, comparing several different pieces of code on a monitor, and possibly more. So age doesn’t make it incorrect. We regularly read code on monitors that accommodate close to 250 columns, and on occasion, our monitors are even wider. It is time to allow for somewhat more width in exchange for meaningful identifiers.

                                                https://docs.racket-lang.org/style/Textual_Matters.html

                                                1. 25

                                                  The human eye scans lines best at around 72 characters wide

                                                  I would like to have 72 chars wide line but with ignored indentation. It would make nested block readable on its own.

                                                  Example with 40 chars width ignoring indentation white space

                                                  Lorem ipsum dolor sit amet, consectetur
                                                  adipiscing elit. Donec sit amet augue
                                                  felis. Suspendisse a ipsum et sem auctor
                                                  porttitor in ac lacus. 
                                                  
                                                      Curabitur condimentum augue diam, ut
                                                      molestie nibh faucibus nec. Aliquam
                                                      lacinia volutpat tellus, non
                                                      sollicitudin nulla luctus sit amet.
                                                  
                                                          Aenean consequat ipsum sem, ac rutrum
                                                          leo dictum at. Suspendisse purus dolor,
                                                          condimentum in ultrices vel, egestas vel
                                                          ipsum.
                                                  

                                                  Versus 40 chars width including indentation

                                                  Lorem ipsum dolor sit amet, consectetur
                                                  adipiscing elit. Donec sit amet augue
                                                  felis. Suspendisse a ipsum et sem auctor
                                                  porttitor in ac lacus. 
                                                  
                                                      Curabitur condimentum augue diam, ut
                                                      molestie nibh faucibus nec. Aliquam
                                                      lacinia volutpat tellus, non
                                                      sollicitudin nulla luctus sit amet.
                                                  
                                                          Aenean consequat ipsum sem, ac
                                                          rutrum leo dictum at.
                                                          Suspendisse purus dolor,
                                                          condimentum in ultrices vel,
                                                          egestas vel ipsum.
                                                  
                                                  1. 18

                                                    The human eye scans lines best at around 72 characters wide

                                                    With monospace fonts? Or proportional ones? With large text or small?

                                                    With English prose, poetry, or with C code? With hyphenation? Indentation?

                                                    I’ve found that recommendation is pretty good for English text with a middle size proportional font. I do not find it works as well for code.

                                                    1. 5

                                                      100% agreed. As I argued in the comments above, people don’t read code the same way that they read prose, and so I would not try to generalize a heuristic meant for prose to code.

                                                      1. 3

                                                        I agree. Reading written text involves repeatedly shifting your focus to the line below. A consistent and short line length in that case is very important. Code is not the same. It’s far more common reading code to study a single line or small block, and in that case, I find that arbitrarily wrapping a line to stay within 80 characters usually breaks consistency and harms readability. I used to subscribe to the 80 character limit until I realised this difference. We don’t read code like we read written text.

                                                        Terminal/editor windows side by side is a fine point, but in general the vast majority of lines of code are short anyway, often well under 80 characters. If a few lines happen to wrap on your display, I hardly think that’s going to completely kill readability, and it’s certainly a trade-off I’m willing to make. If many lines are wrapping then yes, you probably have a problem with your code formatting (or your code in general). It’s the hard limit that I take issue with. Back when I wrote my own code like this, all too often I would find myself renaming identifiers (usually for the worse) among other arbitrary and unhelpful things, just to fit some code within a line without wrapping. I wouldn’t be surprised if more often than not this is the outcome for many others who attempt this, and it’s almost certainly a net negative for readability. Dropping the idea entirely has been a huge relief. One less thing to think about. Most of my code still consists of short lines, as it always did, and as most code naturally does. But when I need to, and it makes sense to write a longer line, I don’t spend a second agonising over whether it fits within some special number of characters, and instead focus entirely on whether it in itself is clear and understandable.

                                                      2. 10

                                                        I want to reinforce your comment that

                                                        The human eye scans lines best at around 72 characters wide, and we should put human readability of our code before other concerns.

                                                        Recently, I have been trying to optimise my on-screen experience and I found a series of peer-reviewed articles with recommendations that improved my experience.

                                                        In one of those, it is claimed, indeed, that more than 72 and less than 80 characters (precisely, 77) is the optimal number for clear readability.

                                                        The study is for dyslexic people, and I was never diagnosed as so. But it works for me, and I tend to believe it works for most people as well.

                                                        1. 1

                                                          Yeah what I’ve read confirms this, I think the width of the text column can vary based on the character width. For example in CSS I typically set something like:

                                                           p { max-width: 32em; }
                                                          
                                                          1. 4

                                                            You can also use 72ch to set it based on width of the 0 character (which will approximate it)

                                                      1. 2

                                                        I’m not sure if this approach seems novel or new to some people, but this is how we did “AJAX” apps, over a decade ago.

                                                        1. 2

                                                          How do you compare the relative merits of the AJAX and SPA eras?

                                                          1. 4

                                                            I think like most things (including AJAX, back in the day) “SPA” is a a buzzword first and foremost, and is overused, as all ‘hot topic’ technologies are.

                                                            The saving grace of the “AJAX era” as you call it, was that there was still a pretty reasonable percentage of developers that advocated for and understood the purpose of graceful degradation/progressive enhancement, and those things are (and were then) pretty simple to incorporate when the JS layer is just making smaller requests to the backend.

                                                            If your ‘primary’ target is a fat-JS client making JSON/etc API calls to the backend and doing its own rendering, supporting non-JS browser clients is essentially creating double the work.

                                                            1. 1

                                                              Seems pretty clear web dev has gone downhill in the last decade, thanks for this retrospective.

                                                        1. 1

                                                          Does anyone known why Raku is so slow? I tried asking on their IRC channel and didn’t get much information.

                                                          1. 5

                                                            It’s difficult to make fast when there are so many indirections and different ways for control flow go.

                                                            Initial research and effort was put mostly into language semantics and syntax, and development of the first interpreter backend (parrotvm) diverged, so they wrote another one. So even though the language has been in development for 20 years, no one’s been thinking about speed for more than 3 or 4.

                                                            That said, performance has been improving over time and continues to improve (I think there’s even an IRC bot which will benchmark a snippet on two different versions of raku). Although startup time is quite bad (200ms on my system), it beats ruby and python on numeric benchmarks, and is approaching perl’s speed.

                                                          1. 42

                                                            I’ve always felt the whole “terminal size” thing is a massive irrelevant distraction; I wrap lines (usually at 80) because I think shorter lines are easier to read.

                                                            Obsessively wrapping at 80 (or any other limit) is not helpful though; 90 or 100 can be fine too; the important question is “is it easier to read?” and often – but far from always – I find a length of 80 “easier to read”.

                                                            People/tools that are obsessive about “80” are annoying as it forces unnatural weird line-breaks and make things harder to read, and that’s basically the issue at hand here; the change that prompted this discussion:

                                                            -ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t *pos)
                                                            +ssize_t __kernel_write(struct file *file, const void *buf, size_t count,
                                                            +               loff_t *pos)
                                                            

                                                            The original line was 85 characters, and it makes little sense to break there IMO.

                                                            1. 14

                                                              The TeX papers cited a study that showed that humans read best (on average) when lines are 66 non-whitespace characters. That actually corresponds pretty well to an 80-column terminal (14 words, average word length 4-5, a bit longer if you have leading whitespace for indentation). I wrote a style guide a long time ago that included that as the rule: lines should not be longer than 66 non-whitespace characters unless breaking them would harm readability.

                                                              The get-out clause is important, because sometimes you really can’t usefully make them shorter, but often you can. The non-whitespace rule is important because it avoids one of the problems the Linux kernel has: they define their tab width to be 8 characters and so any line in a function has only 72 characters to play with and one inside an if block has only 64, which is a tighter restriction than you need for readability.

                                                              1. 20

                                                                I assume that study was about prose rather than code though. Code is fundamentally different: more punctuation, fewer “words”, and heavy use of indentation that shrinks the line count for the majority of lines in any codebase.

                                                                I wouldn’t expect a study tested on prose to completely generalize to code. As a hypothesis, I would suspect that people tend to skim through code looking at the “shape” of the text: looking at indentation, statements, balancing parentheses, etc. Lines that are too short means more cases where that shape is modified due to wrapping, hampering readability.

                                                                1. 5

                                                                  I don’t know if anyone has done the study for code, but I have recently been surprised by some that show that they are more similar than I would have thought. For example, most of us know that syntax highlighting makes it easier to read code. There was a study that I read a couple of years ago for English text that applied part-of-speech tagging and then highlighted words based on this (so nouns, verbs, and so on were coloured differently). They found either an increased retention rate when reading at the same speed or an increased reading speed for the same retention rate.

                                                                  I’d be really interested in seeing a study on comprehension related to line length for code, especially compared across languages (any HCI folks looking for a grant idea?). I’m also not sure how generalisable the originals studies were to across Latin-alphabet languages and I’d be curious if the difference between English and Python is more or less pronounced than the difference between English and German or C and Python.

                                                                2. 1

                                                                  The TeX papers cited a study that showed that humans read best (on average) when lines are 66 non-whitespace characters.

                                                                  What TeX papers are you referring to here?

                                                                  1. 2

                                                                    Knuth and the PhD students that he had working on TeX published a load of papers about how and why the system works. They’re a great resource for anyone interested in typesetting because they describe the algorithms they implemented, the algorithms they wanted to implement but couldn’t because of resource constraints, and the rationale for picking those algorithms.

                                                                    The paper describing the hyphenation algorithm, for example, describes a technique that MIT is now making a big fuss about where you train a simple ML model (in their case, as I recall, a two-deep Markov chain) and then record the instances where it makes the wrong prediction. For English, the entire hyphenation dictionary is the single model + about 70 outliers. It’s both small and very fast to search.

                                                                3. 12

                                                                  One reason for “strong feelings” (for the lack of a better word) is multiple buffers open side-by-side in vim for example. I often tend to have 2 buffers open split screen in vim, one with the source file and the other one with the test. Shorter lines make it much easier to support this workflow.

                                                                  1. 1

                                                                    Can you have no more than a width of 160 characters comfortably displayed on your monitor?

                                                                    1. 9

                                                                      With my current hardware that number is about 180-200 (leaving out the space that the file browser plugin takes up on the left).

                                                                      Any more characters and I would have to decrease the font size to still be able to work with split buffers. But I’ve noticed that I feel strain in my eyes when the font size is too low.

                                                                      1. 1

                                                                        If you close the file browser, and have two files side by side, does the file length really have to be limited to 80 for the font size to be comfortably large to read? I find this hard to belive unless you have an unusually small monitor.

                                                                        1. 4

                                                                          With the file browser disabled, each buffer can accommodate about 115 characters at font size 12 (~110 to still have some spacing for comfortable reading). While that’s certainly more than 80, I feel my personal upper limit would be 90-ish. More than that I think I would have to either change my workflow or invest in a new display.

                                                                          Also, yes my hardware might qualify as being slightly dated. The laptop I use has a max resolution of 1920x1080. I do have an external display but that’s even older than the laptop and only supports 1440x900. ¯\_(ツ)_/¯

                                                                          1. 1

                                                                            That makes sense. I vote for 90 being the new default maximum line length, then. ;)

                                                                  2. 10

                                                                    I agree in spirit, but in practice many people lack common sense. Subjective criteria alone are not enough.

                                                                    1. 4

                                                                      Besides the common sense issue, some people appreciate hard formal restrictions for their creations. For example, that’s the whole point of poetry: to write stuff according to arbitrary rules that are orthogonal to the meaning. A sonnet has 14 lines of 10 syllables, just as linux kernel code has indentations of width 8 and a maximum of 80 columns per line.

                                                                      1. 6

                                                                        I would find it hard to argue that arbitrarily limiting the length of a line of code makes it any more “poetic”, in some way?

                                                                        More to the point, much as we like to compare code and poetry, real-world concerns impose. Sometimes it’s preferable to do the less poetic/more verbose thing in the name of keeping your code maintainable and (hopefully by extension) working in the future, for example.

                                                                        1. 4

                                                                          I think what GP is getting at is that (for many people, anyway) one of the top killers of creativity is, ironically, the blank canvas. The total freedom. One of the most common tips for getting around creative blockage is imposing arbitrary constraints.

                                                                          Not saying software engineering is 100% creativity, but at least a part of it is?

                                                                          1. 4

                                                                            Yes, that was exactly my point. I have found that artificially adhering to 80 chars per line and 8-width tabs forces me to code in a very productive way (and especially, that functions have at most 30 or 40 lines). Sure, I have to rewrite and refactor the code quite a few times until it reaches that state, but I do not feel like I’m losing my time, quite the contrary.

                                                                        2. 2

                                                                          Quite the opposite, rules such as the sonnet format are anything but arbitrary. They exist so the message can be delivered in a specific poetic fashion. They allow for a singer or a poetry reader to resource to a certain set of vocal/techniques techniques.

                                                                          It might sound counter intuitive, but meaning of a particular sonnet is not easily transferable to other formats. Much like the meaning of a ballad would hardly had the same strength if passed as an heavy metal song.

                                                                          I do not think there is an equally strong point at all when it comes to people wanting hard formal restrictions in their code because they like it. Engineering should be more pragmatic than this. If there are valid reasons, such as screen real estate in old days, that’s ok. But reasons without practical motivation become an unnecessary annoyance in my experience.

                                                                          1. 2

                                                                            Quite the opposite, rules such as the sonnet format are anything but arbitrary.

                                                                            I have the exact opposite view on the nature of poetry (not that there’s anything wrong with that). While the origins of poetic forms may have something to do with singing, this is not what the poetic thing is about. For example, when writing the lyrics of a song you may need to add an extra syllable on one of your lines and this will not matter: the singer will simply pronounce the two syllables faster, it happens all the time. However, if you add a single spurious syllable in a sonnet or a haiku, then the whole thing falls apart and ceases to be a sonnet or a haiku.

                                                                            If you read modern poetry (i.e., not influenced by any musical form that motivated it) you’ll find that the best poems can be also read as perfect prose, and the strict formal properties (rhythm, rhyme) just fall casually into place.

                                                                      2. 2

                                                                        I wrap to 80 characters almost always when creating a patch, just so there’s one less thing for people to complain about. However, I think wrappings like the above are a particularly egregious failure case. Sometimes adding or modifying a single argument can necessitate a second line…

                                                                      1. 4

                                                                        Fossil is neat because of the ‘total package’ it provides: autonomous ticketing, wiki, etc. like the title says. The problem is that Git is now the standard for version control. I would love for Fossil to evolve into a streamlined, batteries-included Git porcelain. I know that for all Fossil’s advantages, there is no way I am going to convince anyone to use it over Git for the foreseeable future.

                                                                        1. 5

                                                                          I would love for Fossil to evolve into a streamlined, batteries-included Git porcelain.

                                                                          There’s some brainstorming on that idea here: https://www.fossil-scm.org/xfer/wiki?name=Fossil-NG

                                                                          I know that for all Fossil’s advantages, there is no way I am going to convince anyone to use it over Git for the foreseeable future.

                                                                          I don’t think so either, but it seems like something one can at least use for personal projects for people to notice it more. I’m currently considering moving a few of my smaller projects to fossil, but that might take a while.

                                                                        1. 4

                                                                          Interesting read, but I don’t understand one detail of the argument: what makes Perl more secure than the other scripting languages mentioned?

                                                                          1. 13

                                                                            Taint checking comes to mind, and Perl has it. I think OpenBSD folks prefer tech where it’s easier to do the right thing; doing the right thing in shell or php can require more effort, with painstaking, error-prone effort to avoid pitfalls.

                                                                            1. 2

                                                                              ruby might be an interesting alternative, but I would assume it doesn’t support nearly as many platforms or architectures as perl.

                                                                              EDIT: huh. Apparently ruby removed taint checking in 2.7.

                                                                              1. 10

                                                                                Ruby code ages poorly compared to perl, though. I’ve been on too many projects where code written in ruby a year or two earlier at most had already been broken by language or dependency changes.

                                                                                1. 2

                                                                                  To be fair, OpenBSD controls base, so they could keep a check on the dependency changes. Language changes are rarely breaking with Ruby, when was the last one?

                                                                                  1. 5

                                                                                    Now, you’ve got to start auditing upstream for bug and security fixes, and backporting them, rather than just updating when needed.

                                                                                    Forking is a bunch of work – why do it when there’s a suitable alternative?

                                                                                    1. 1

                                                                                      We may be talking past each other here. I said that they could keep a check on the dependency changes, by which I meant that they would author code in such a way that it does not require external dependencies (or at least not few enough that they couldn’t vendor them), which wouldn’t be any different from what they’re doing with Perl already. This means that this downside of the Ruby ecosystem could be mitigated. And language changes they’d just have to accept and roll with, but I hold that Ruby rarely introduces breaking changes.

                                                                                      OpenBSD will have to vendor $language_of_choice in any case because that’s how the BSDs’ whole-OS approach works.

                                                                                      1. 2

                                                                                        Yes. I thought you meant essentially forking the shifting dependencies instead of fully avoiding them.

                                                                                        In any case, perl is there and in use, so switching would be a bunch of work to solve a non-problem.

                                                                                  2. 1

                                                                                    Yeah, you’re not wrong. Excellent point.

                                                                              2. 4

                                                                                Maybe the “use warnings” and “use strict”?

                                                                                1. 3

                                                                                  That doesn’t bring any security though: it may give you a bit of safety, catching bugs earlier than in some other script languages.

                                                                                  1. 6

                                                                                    What would bring any security then, as opposed to just helping catch bugs? Barring “legitimate” cases of correct algorithms outliving their usefulness (e.g. the math behind crypto algorithms getting “cracked” to the point where it’s feasible to mount attacks on reasonably-priced hardware) virtually all security issues are bugs. Things like shell injections are pretty easy to miss when writing shell code, no matter how careful you are.

                                                                                    1. 1

                                                                                      Probably the taint mode that the other commenter mentioned

                                                                                      1. 3

                                                                                        But that’s exactly what taint checking does: it helps you catch bugs that occur due to executing stuff that’s under the user’s control. Some of these can be exploited for security reasons, but security isn’t the only reason why you want this – it’s just as good at preventing a user enumeration attack as it is at preventing accidental “rm -rf /”

                                                                                    2. 2

                                                                                      I thought the same. I figure the OpenBSD people know what they are talking about but I am still not really clear on what Perl has over Tcl, for example. Hopefully a Perl monk will show up and clarify.

                                                                                1. 18

                                                                                  most linux distributions on the desktop suck because instead of focusing on the strengths (composable tools which have a thight scope), they try to imitate windows and macos failing spectacularly, mostly replicating the weaknesses. i for one can’t name 50% of the things in an unbuntu which are doing magick in the background. if they break, the most sensible option is to just reinstall.

                                                                                  1. 25

                                                                                    Most people just want to browse the web, check their email, type a document, etc. What they don’t want to do is learn about all those composable tools or otherwise spend a whole lot of time figuring out details of how their system works, which is perfectly reasonable. Are there trade-offs? Sure; but this doesn’t “suck”, it’s just different people with different requirements, priorities, and usage patterns.

                                                                                    1. 23

                                                                                      (Edit: um, this turned out more ranty than I thought it would, so just to be clear – I absolutely agree with you here, and my rant below is pretty much orthogonal to yours your comment. Also, I don’t think imitating Windows or macOS is a problem – but I do think that this imitation effort is driven by, and anchored in, a bunch of arrogant misconceptions about “non-expert” usage habits. That’s why it ends up “mostly replicating the weaknesses”, as @rbn nicely put it: because it’s guided by a sort of caricature image of the “novice user”, and we end up with software whose “novice-friendly” features are exaggerated to unrealistic proportions, so they end up being difficult to use for everyone, including novice users).

                                                                                      I hear this a lot and every time I hear it, I have the same thing to say: spend a few weeks watching the people who “just” want to browse the web, check their email, type a document, and you’ll find that these things are not at all the simple things that the FOSS UX community insists on believing they are for some reason. Lots of these people don’t, and can’t do them on Linux not because it’s too complicated, but because it lacks the functionality they need. (Ironically, in large part because lots of “novice-friendly” software is written by people who have never stopped to ask a novice what they need, and have this silly picture in mind of “Aunt Tilly” who just wants to resize a photo every once in a while and is confused by all those buttons).

                                                                                      My informal experience with teachers and seniors (mom’s a teacher and, of course, has a lot of teachers friends, and I used to help a volunteer-backed organization for seniors) has cured me of this sort of programmer’s arrogance:

                                                                                      • “Just type a document” can involve sifting through a collection of about 20,000 clip arts, pictures and cartoonish things, and about 4,000 Word documents, all of them covering four years of elementary school. Most file managers and desktops are comically inadequate for that (the default is “huge icon mode” and switching to a normal mode for all folders involves sifting through menus and configuration windows like crazy, “symbolic icons” are just anonymous blobs of black and white when they’re small, the file manager chokes trying to thumbnail these, etc.). It’s also kindda hard to do that with an “open file” dialog that lacks a thumbnail option. Also, populating the GTK “Open file” dialog with about 30 bookmarks (4 years of school x 5-6 really important subjects + a few folders for school-related paperwork) makes it painful to watch.
                                                                                      • LibreOffice is in fact surprisingly adequate for this, until you need to print something.
                                                                                      • Smooth/inertial scrolling with a mouse looks smooth for like 30 seconds and that’s great if you need to open one PDF every once in a blue moon. If you do it for more than five minutes it makes you dizzy. If your job consists primarily of browsing PDFs and DOC files, there’s a good chance you won’t make it through the day without throwing up. That’s why it’s not the default in most commercial PDF readers, and also why virtually all of them allow you to disable it at least.
                                                                                      • Lots of senior people don’t exactly have an IT genius around to help them when something breaks. Their children and grandchildren are away and aren’t really keen on helping their aging parents or grandparents with their computers. “Just browsing the web” or “checking their email” isn’t too easy when, every six months, you discover that a feature has disappeared (‘cause “no one was using it”) or that it’s been re-designed so it’s “more usable”.
                                                                                      • “Just checking their email” sometimes involves sending your friends pictures of your grandchildren, or sending your grandchildren a picture from a cruise or whatever. Back to sifting through a few thousand pictures! (Edit: thankfully, this is becoming less and less of a problem with cloud-stored pics – which is another can of worms in and of itself of course, but oh well. Thing is, sifting through thousands of pictures isn’t some power user task, not in 2020, when you can store a few thousands of ’em on a phone and people really do return with hundreds of them from each vacation).
                                                                                      • All of that routinely happens on entry-level laptops. With large fonts, Breeze and Adwaita are impossible to use on 1366x768 displays. Lots of dialog windows simply don’t fit on the screen, and there’s often hardly any room left for application content. The huge widgets are supposed to help with accessibility but – not that it’s a surprise – if you have poor eyesight, it’s bigger fonts that help, not bigger buttons per se. (inb4 “but touch-enabled laptops are the future”: try buying one of those on a senior’s income, and then try using it when you’re 70 and just holding your arm up for five minutes is uncomfortable).

                                                                                      Unsurprisingly, desktops developed for “most people” (e.g. Gnome) don’t fare much better than those that aren’t. In fact, Gnome’s most successful “incarnation” – Ubuntu’s – is a pretty significant departure from upstream’s focus on visual simplicity and straightforwardness. And the biggest trouble we’ve had with either of them isn’t in esoteric things like whether the icons are the right size or not, it’s been primarily in the fact that support for desktop icons is finicky, followed closely by poor contrast that makes window content hard to read (Windows 10 also does some dimming for inactive windows, but only in menu items – at least for “legacy” Win32 apps. For some reason, it’s now fashionable to dim everything you can because novice users don’t use more than one application at a time and easily lose their focus. Hah.).

                                                                                      1. 9

                                                                                        (Edit: um, this turned out more ranty than I thought it would, so just to be clear – I absolutely agree with you here, and my rant below is pretty much orthogonal to yours. Also, I don’t think imitating Windows or macOS is a problem – but I do think that this imitation effort is driven by, and anchored in, a bunch of arrogant misconceptions about “non-expert” usage habits. That’s why it ends up “mostly replicating the weaknesses”, as @rbn nicely put it: because it’s guided by a sort of caricature image of the “novice user”, and we end up with software whose “novice-friendly” features are exaggerated to unrealistic proportions, so they end up being difficult to use for everyone, including novice users).

                                                                                        everyone “old” has used computers for much of their lives now, and they are the generation which may even have touched a dos shell. the problem is that current ux trends, regardless where, are constantly throwing away the experience of their users. this isn’t limited to “old” people. i’ve not used android for some years and am always lost for half a minute if i try to change some settings in it. with linux, this isn’t limited to gui applications, but for the complete system as everyone seems to love reinventing wheels, only in a slightly non-round fashion.

                                                                                        1. 8

                                                                                          It’s my impression as well. Technology is now pervasive enough that “non-expert” users actually do use computers a lot, not because they want to become experts or because they’re the members of the computer-using vanguard of their generation, but because, well, what else are you gonna use?

                                                                                          The teachers at the school were my mother teachers have all been using computers to do all their school-related work for at least 15 years now. They all check every box in the “not an expert” list, from “will click Yes in every dialog box” to “has no idea what’s inside a computer”. But that doesn’t mean they only use basic word processor functions or have no more than twenty or thirty files lying around. They do – they’re required to do – every school-related thing on a computer now, and have twenty years’ worth of silly children’s songs, cartoons, arts & crafts crap and stuff lying around. Sometimes it’s neatly sorted in a bunch of folders under Documents, sometimes – as you might expect – in a bunch of folders on the desktop, because that’s where they’re most easily accessible.

                                                                                          The same goes for pics. Between school trips, birthday celebrations and whatnot, my mom must have tens of thousands of pictures on her hard drive. Every time there’s one of these, all the children, and sometimes all the parents, send her all the pictures they took. Watching someone try to make sense out of all that using Eye of Gnome’s super-declutered interface (which displays only a row of thumbnails at the bottom of the screen) is almost painful.

                                                                                          This isn’t some “power user” usage habit. This is 2020, when everyone has like 10,000 pictures on their phone and takes twenty selfies every time they go out. The idea that “simple users” have “rudimentary requirements” dates from back when computers really were something you used only when good ol’ pen and paper weren’t good enough, or when you were forced to. That doesn’t happen anymore.

                                                                                          1. 4

                                                                                            This is a big qualm I have with encouraging “non technical” users to switch to desktop Linux. Because the UI changes all the time, you have to throw away all the skills and conventions you learned for older versions. GNOME 2 was fine. Sure, GNOME 3 might have some improvements (I would actually argue that it does not, but that’s another debate), but now existing users don’t know their way around any more. As a non-GNOME user looking in, it seems like GNOME 3 has continued to frequently make significant changes to the UI/UX that would throw me off if I did use it.

                                                                                            I think changing the UI out from under the user is very disrespectful of their time investment in the platform. If GNOME was marketed under the notion of “we’re just making what we want to use personally, and if you don’t like it bug off” I could buy the argument “but it’s a FOSS project, they can do what they want”. However, if you want to market your project as being friendly for “non technical users”, I think there is a certain expectation you will provide more in that area than just lip service.

                                                                                            In my experience with “old” or “non technical” users, they are normally people who have to use computers as a means to the ends of getting their real work done. They are usually sick of UIs constantly changing much more than they ever were of some drawbacks in one UI or another. In my anecdotal experience, these people could care less if the icons are skeuomorphic or flat, or whether the menus slide in or fade in, or what the drop shadow radius is. They just want to be able to learn how to use it once and then get on with what they actually want to use the computer for without having to learn how to use it all over again.

                                                                                            1. 2

                                                                                              MATE is still fine. It’s well-maintained and better than GNOME2 without being worse in any regard. It’s not breaking the UX between releases in any way either. It just works.

                                                                                        2. 4

                                                                                          Agreed, but does that ‘most people’ apply to ‘most people who use the Linux desktop’ or ‘most people who use desktop computers’? If we replace ‘Linux’ with ‘house’ or ‘car’ we’d be clearly talking about a mass-market consumer commodity which I am not sure Linux really is. Maybe it would be better to focus less on the mythical ‘normies’ and accept that desktop Linux is a niche created by and for it’s own niche users?

                                                                                          That being said, I do think having Ubuntu for example as a go-to normie friendly distro is wonderful. Just seems few projects can do that effectively.

                                                                                          1. 1

                                                                                            This is very true. I was able to show my family how to install their linux box, because it’s a self explaining installer UI. Because the desktop after this “just works”*. No “but you have to know XY to start wifi/use the GPU/setup email/printer/bluetooth” or such bullshit.

                                                                                            All the people who want that amount of customization can still go and use their i3 and be happy. Just pick bare metal in the installer and be done. You won’t notice anything different.

                                                                                            *Yes I’m aware of the warts you can stumble upon, I’m using linux daily, just right now..

                                                                                            1. 1

                                                                                              Most people just want to browse the web, check their email, type a document, etc. What they don’t want to do is learn about all those composable tools or otherwise spend a whole lot of time figuring out details of how their system works, which is perfectly reasonable.

                                                                                              which has worked the same for at least 15 years. i can still use claws-mail, browsers are all the same now, abiword still exists. all those programs used to run everywhere. this isn’t about the application programs but the decisions in plumbing. which then in turn makes applications more complicated and less portable than before.

                                                                                              for example, all i know is that somehow it is considered to be fine that systemctl directly asks my password if required. just typing my password into some program which thinks it needs root feels completely wrong, and i don’t even know how these things work. some polkit-dbus-magick? maybe?

                                                                                            2. 2

                                                                                              I find that “modern” Linux distributions have a lot of the problems that I had with Windows in the mid 2000s.

                                                                                              1. -5

                                                                                                This is why I vehemently refuse to run derivative distributions.

                                                                                                There’s quite the difference between the likes of Gentoo, Arch or Debian, and their derivatives.

                                                                                                The derivatives are, majorly, made by typically technically inept conmen for their usage by laymen, which I’ll refer to as suckers thereon, in the spirit of the speech referenced at the top of this thread.

                                                                                                To attract as many suckers as possible, effort is put, besides doing a ton of marketing (If you’re Mike Rocketworth and got some equity, this is easier to do), into ensuring the interface appeals to the lowest common denominator.

                                                                                                Thus it has to be really dumb, to the point of insulting to intelligence, and unbearable to use by the technically inclined. This is deliberate, as we don’t make good suckers for this specific type of con. Good suckers are people who will remain blind to the fundamental problems, will install it everywhere, will promote it in social media, will help the person orchestrating all this behind the curtain.

                                                                                                At some point, the large and dumb user base will be leveraged for economic gain.

                                                                                                That’s how it’s always been, and I don’t see this changing anytime soon.

                                                                                                1. 10

                                                                                                  I personally like a lot of what Ubuntu has done, particularly on their software projects.

                                                                                                  I’d argue that recent releases have gotten quite accessible, to the point where I have given my tech-illiterate mother a desktop with Ubuntu on it and haven’t run into any issues I couldn’t help debug over the phone. It just so happens there’s a lot that goes into making a usable GUI that non-{sysadmins,developers,geeks} can effectively use, while still being completely usable as my main driver for work. I’ve been happily running Ubuntu for years, and while I’ve mostly switched to Arch for my new installs, I don’t feel like my intelligence is being insulted or threatened because every piece of my system isn’t controlled by text files.

                                                                                                  1. 7

                                                                                                    So what is your alternative? That everyone should become an expert? I find the amount of contempt towards non-technical/IT people in your post rather bewildering to be honest.

                                                                                                    1. 1

                                                                                                      So what is your alternative?

                                                                                                      Not using nor recommending derivative distributions.

                                                                                                      That everyone should become an expert?

                                                                                                      Why would everyone have to become an expert?

                                                                                                      I find the amount of contempt towards non-technical/IT people in your post rather bewildering to be honest.

                                                                                                      There’s none of that. It might be a language thing. Maybe the word “suckers” did rub you the wrong way? Con victims are traditionally referred to as suckers.

                                                                                                      As to being bewildered over some website discussion post, I recommend against. It is, generally speaking, not worth it.

                                                                                                    2. 5

                                                                                                      The derivatives are, majorly, made by typically technically inept conmen for their usage by laymen, which I’ll refer to as suckers thereon, in the spirit of the speech referenced at the top of this thread.

                                                                                                      Let’s hypothetically say someone was more focused on curing a disease than figuring out how to use Linux. The time they saved on stuff like that gave them more time to find the cure. They save all kinds of lives, including yours. Your verdict: they’re suckers and dumb for curing disease with easy to use products vs not doing it to master harder-to-use products that they spent a ton of time customizing. Don’t seem right to me…

                                                                                                      Also, this isn’t hypothetical: it’s a situation that plays out regularly in many non-OS things you depend on or enjoy in life. You’re likely depending on the very people you curse for what you enjoy in life.

                                                                                                      1. 2

                                                                                                        Let’s hypothetically say someone was more focused on curing a disease than figuring out how to use Linux. The time they saved on stuff like that gave them more time to find the cure. They save all kinds of lives, including yours. Your verdict: they’re suckers and dumb for curing disease with easy to use products vs not doing it to master harder-to-use products that they spent a ton of time customizing. Don’t seem right to me…

                                                                                                        i’m not in the discussion club, but this feels like a bad argument, suddenly including “THEY ARE SAVING LIVES!!1” here. in any case: it is expected from professionals to know their tools OR to hire someone who does.

                                                                                                        Also, this isn’t hypothetical: it’s a situation that plays out regularly in many non-OS things you depend on or enjoy in life. You’re likely depending on the very people you curse for what you enjoy in life.

                                                                                                        still it is valid to have criticism of things.

                                                                                                        1. 1

                                                                                                          It’s a technique I use when someone uses an argument that says everyone or everything is or isn’t such and such. From there, I pick the counterexample that most justifies not having that position. Both EMTs and hospital workers have griped to me about how their tech UI’s, among otherthings, cause them problems. So, I went right with that example.

                                                                                                          Normally Id consider it cheap since person using it often going for rhetoric. In my case, a large subset of people in the original claim do fight with tech to save lives. I’ll leave that for your consideration.

                                                                                                          1. 1

                                                                                                            medical appliances are a whole different beast. i hope that they aren’t running desktop linux, but something without touchscreen but good hardware buttons :)

                                                                                                            1. 1

                                                                                                              Well, I was including desktops and appliances. That said, you might find this interesting or worrying.

                                                                                                              The FDA part is half BS. The vendors of safe/secure RTOS’s, like INTEGRITY-178B and LynxOS-178B, have had offerings for this a long time. At least one straight-up advertised a medical platform. The suppliers appear to just be using insecure tech deliberately to soakup more profit.

                                                                                                        2. 1

                                                                                                          Your verdict: they’re suckers

                                                                                                          For falling for a con. It literally is the name used for a con victim in the conmen world.

                                                                                                          the large and dumb user base

                                                                                                          I realize this is where most of the negative impressions my post got are likely coming from. I should be more careful with language. Dumb there meant “relatively technically illiterate”, and I should have used this full form.

                                                                                                          You’re likely depending on the very people you curse

                                                                                                          No cursing going on. I do not hate the victims.

                                                                                                          At the end, I mostly take issue with:

                                                                                                          • The conmen, due to their intentions.
                                                                                                          • The shills, which cooperate with the conmen. Typically community influencers who happen to be acquaintances with the conmen, and vouch for them on request despite personal lack of belief on these projects.

                                                                                                          I try not to be a shill, and not to promote projects I do not believe on. I often qualify my recommendations; This is why I do it. Experience has made me skeptic and somewhat cynical.

                                                                                                          1. 2

                                                                                                            By cursing, I meant talking down about them unnecessarily. The word is overloaded in my country. I apologize for any confusion.

                                                                                                            Re conmen. I have two replies on this. One category refutes it due to them simply being forced to use it at school and work. To get benefits of those, they must use the tech regardless of their belief in it. The tech also still brings those benefits even if unworthy.

                                                                                                            The second reminds me of when a founder of high-assurance security, Dr.Roger Schell, met Black Forrest Group of CIOs/execs to convince them to buy software. Many folks that think they’re dumb at tech (I did). They said they’d love to buy software at higher assurance but wouldnt be allowed to. Pressing them, they said they believed software developers all left bugs in on purpose to later sell them the fixes mixed with more buggy features. With features they needed, they’d never be able to buy it high quality anyway.

                                                                                                            The same is true today. Users want to get something done. Microsoft’s monopoly position made about all the apps, hardware, etc work with Windows. They were also probably brought up on it. So, the option that gets them the most benefit at the lowest cost… money plus effort (more important)… is Windows. For a while, it had less surprises than alternatives, too.

                                                                                                            So, there’s no con or at least most know it’s garbage. It’s simple economics and psychology. They benefit more by using it than not using it. There’s benefits to things like shell and programming if they invest the time. They can’t see it or have no need where they’re at.

                                                                                                            What we can do is show them by building better tools that help them and integrate with their workflow. When they’re amazed, get them interested in the how. It’s what Ive been doing at work.

                                                                                                        3. 4

                                                                                                          What the hell makes you think people will care for your technical opinions if you call people “technically inept conmen” and “suckers” for having a hobby? Ease off on the condescension.

                                                                                                          1. 1

                                                                                                            I covered the choices for language in this reply.

                                                                                                            The overall tone of my comment is a reflection of my hate of seeing people people being taken advantage of, salted with me being too tired to comment properly.

                                                                                                          2. 3

                                                                                                            i’m not convinced that every derivative distribution is a conjob, but some trends in linux sometimes sure have the feeling of one (booting in less seconds!11).

                                                                                                            an example from my experience: while i prefer window managers, kde is working better/saner when packaged by a single person for slackware than with kubuntu.

                                                                                                            1. 1

                                                                                                              i’m not convinced that every derivative distribution is a conjob

                                                                                                              Beware the claim was qualified with “majorly”. I know you’re not going for a strawman, but I feel necessary to prevent an accidental one.

                                                                                                              kde is working better/saner when packaged by a single person for slackware than with kubuntu.

                                                                                                              I am not surprised; Distributions with “flavors” for DEs are a strong marker for poor design decisions in the packaging preventing adequate support for multiple DEs.

                                                                                                              1. 2

                                                                                                                Beware the claim was qualified with “majorly”. I know you’re not going for a strawman, but I feel necessary to prevent an accidental one.

                                                                                                                sorry, didn’t quite read that majorly in your first post. it was kind of late :)

                                                                                                        1. 8

                                                                                                          Do watch with a critical mind.

                                                                                                          Spoiler: This is Linux propaganda.

                                                                                                          1. 2

                                                                                                            Yeah the way he quickly brushes over support for things like games and video editing applications seemed weird to me. While the situation has improved slowly over the past decade or two, the lack of access to industry standard video and audio editing software seems like a compelling argument for why Linux on the desktop is infeasible for so many people. Likewise, the set of games available on Linux is a strict subset of those on Windows, and said games typically run better and are better supported on Windows. If either of these categories of applications are important to you, Linux is a poor choice.

                                                                                                            1. 3

                                                                                                              There’s a lot of discussion of games being the factor for desktop Linux, but I don’t see it; at least as anything more than a value add. You can live without games, but you can’t live without the tools for work, whatever it might be. (Programmers like us have a luckier break here.) I think a lot of that discussion is because of how big the overlap between sites like Reddit and people who eat, live, and sleep PC gaming are.

                                                                                                              1. 2

                                                                                                                You can live without games, but you can’t live without the tools for work, whatever it might be.

                                                                                                                The home desktop computer is a dying breed. Its use case is slowly being usurped by laptops (which are still mostly desktops), tablets, and phones. However, one use case which is not going away is gaming. Desktop computers offer one of the best gaming experiences out there. Many users stick to windows primarily because their favorite game only runs there.

                                                                                                              2. 2

                                                                                                                lack of access to industry standard video and audio editing software seems like a compelling argument for why Linux on the desktop is infeasible for so many people

                                                                                                                Do many people use this kind of software? I would imagine it’s fairly specialized?

                                                                                                                (Lack of) games are probably more important, especially because there’s a social component to that as well: if your friends are playing a game then you’d like to join in on that specific game. When the whole coronathing started some of my friends were playing Soldat, but I couldn’t get it running on my Linux machine so I missed out 🙁 (wine errored out, it’s been open sourced yesterday though, with Linux support, so need to look again).

                                                                                                                1. 4

                                                                                                                  I have helped around a dozen or so ‘regular people’ over the years who did not want to pay the Apple tax and whose Windows laptops had become totally unstable move over to Linux desktops. This is the list of apps they care about:

                                                                                                                  • Firefox / Chrome
                                                                                                                  • LibreOffice

                                                                                                                  One time I had to help someone get some weird Java app for their schoolwork installed. Most people are content consumers, not creators.

                                                                                                                2. 2

                                                                                                                  The games situation is pretty good, in no small way thanks to Valve. Nearly half of my large steam library is linux-native, whereas most of the remaining games work with proton, without hassle.

                                                                                                                  However, the situation with Video and Audio is more of a joke. All the open video editors are terrible. At least we can play videos now; I remember the pre-mplayer era, and now we have mpv which is fantastic.

                                                                                                                  As for audio, the laymen suffer from Pulseaudio, which is still irritatingly bad. The production side of audio is much better thanks to jack, but only if running under Linux-rt, as when for whatever reason I boot mainline, jack gets xruns after a while, even with 20ms buffer.

                                                                                                                  1. 3

                                                                                                                    All the open video editors are terrible

                                                                                                                    It depends somewhat what you want to do; OBS studio is pretty nice for its use case, but I wouldn’t want to produce a film.

                                                                                                                    As for audio

                                                                                                                    The lack of reliable timeslices is pretty terrible on mainline linux. Doesn’t affect me often, as I have 24 cores, but if I’m running something intensive I’ll sometimes get audio skipping in 2020 (which literally never happened back in 2005 on windows).

                                                                                                                    1. 2

                                                                                                                      if I’m running something intensive I’ll sometimes get audio skipping in 2020

                                                                                                                      The Linux kernel likes to thread into long, dark and narrow corridors, not yielding the cpu to SCHED_FIFO/RR tasks until much later than the time they become runable.

                                                                                                                      I did boot into mainline recently and saw some of the usual pathological behaviour. Then I ran cyclictest -S -p99 and spotted 10000µs peak within seconds. Appalling.

                                                                                                                      (which literally never happened back in 2005 on windows).

                                                                                                                      Or 1985 on AmigaOS.

                                                                                                                      1. 4

                                                                                                                        The Linux kernel likes to thread into long, dark and narrow corridors, not yielding the cpu to SCHED_FIFO/RR tasks until much later than the time they become runable.

                                                                                                                        Are there open-source kernels that don’t do this and support a variety of mainstream hardware? Genuinely curious.

                                                                                                                        1. 3

                                                                                                                          Most RTOSs do try hard to handle this reasonably.

                                                                                                                          If lives depend on it, seL4 is the only protected mode (to my knowledge) kernel with formal proofs of response time (WCET) and correctness.

                                                                                                                          But if your use case is audio, you’ll probably be fine by simply booting into linux-rt (Linux with the realtime patchset) and generally avoiding pathologically bad (pulseaudio) software in your audio chain, using straight alsa or a pro-audio capable audio server (jackd, hopefully also pipewire in the future).

                                                                                                                          You should also ensure the relevant software does not complain about permissions not allowing execution as SCHED_FIFO or SCHED_RR. In my opinion, they should outright refuse to run in this situation (except perhaps by forcing them to SCHED_OTHER with a parameter) rather than run in a degraded manner, but it is a separate issue, another of the many issues in the ecosystem.

                                                                                                                        2. 3

                                                                                                                          I’m more impressed by the 2005 result because it had a task scheduler. Of course the Amiga didn’t leave jobs paused - it didn’t pause them!

                                                                                                                          1. 0

                                                                                                                            What do you specifically mean by task scheduler?

                                                                                                                            AmigaOS’s “kernel” (exec.library) provides preemptive multitasking with priorities.

                                                                                                                            This is what a task looks like: http://amigadev.elowar.com/read/ADCD_2.1/Libraries_Manual_guide/node02BB.html

                                                                                                                            And this for reference on the bitmap flags: http://amigadev.elowar.com/read/ADCD_2.1/Includes_and_Autodocs_2._guide/node008E.html

                                                                                                                            Essentially the run/ready/wait we’re used to.

                                                                                                                            Where the Amiga is almost cheating is by using a 68k CPU. They have very fast interrupt response, further helped by being vectored. x86 is a sloth on this.

                                                                                                                            1. 3

                                                                                                                              Wait, really? That’s earlier than I’d realized (the computer I was using in 1990 could hibernate a process but switching back was 2-3 seconds wait and IIRC the process had to ask to be switched away from).

                                                                                                                              1. 3

                                                                                                                                Yes, AmigaOS had preemptive multitasking with priorities from day0.

                                                                                                                                Furthermore, it also had a message-passing system called ports, which was used for IPC, including a good part of user tasks talking to the OS, which was a multi-server OS (internally split as services, running as tasks, with exec.library being the closest thing to a kernel we had, as it did handle task switching, IPC, memory management and early hw initialization).

                                                                                                                                AmigaOS supports shaded libraries, and the os itself looks like a bunch of shaded libraries to application programmers.

                                                                                                                                Your Amiga curiosity can further be satisfied by the documents available at: http://amigadev.elowar.com/

                                                                                                                                Early AmigaOS (1985-1990) is <V37. Functions that claim to be V37+ are from the more modern AmigaOS days (AmigaOS 2.0+, 1991+), so you can easily see what was made available when.

                                                                                                                                The famous “Every OS sucks” song special cases AmigaOS as the exception… for good reason. Overall, I still consider its design to progress in many ways relative to UNIX. If you ever see me rant about UNIX-like systems, now you know where I am coming from.

                                                                                                                1. 13

                                                                                                                  Well, at least it clarifies why Microsoft loves open source all of a sudden. Never change, Redmond :).

                                                                                                                  There’s a real nugget here that’s been irking me, too:

                                                                                                                  Am I upset that Microsoft, a 1.4 trillion-dollar company, finally got their act together and released a decent package manager for their flagship product? No, they should’ve done it years ago. They shouldn’t have screwed Windows Store as badly as they did.

                                                                                                                  It baffles me a bit that the FOSS… maybe community isn’t the right term here, that a lot of FOSS companies, like Canonical, really really want to build an app store, when this model has been a nearly comic failure on “non-locked” devices. Yeah, it worked great for phones and tablets, but even the Mac app store is hardly a resounding success, even though its potential user base significantly overlaps the same community for which the iTunes store and the iPhone app store work well enough.

                                                                                                                  I mean yeah, downloading software off random places on the Internet isn’t great, either, we have 30 years of history to teach us that, but trying to push centralized “stores” for general-purpose systems hasn’t worked very well, either, even though it was backed by significant commercial interest from companies with a great deal of resources to throw at it.

                                                                                                                  1. 7

                                                                                                                    iOS and Android stores are successful for the same reason Model T’s most popular color was black (Fortnite’s capitulation shows that Android’s non-play-store support exists to deflect criticism, not to be used).

                                                                                                                    I don’t know about Canonical, but Apple and Microsoft don’t want just a store. They want control.

                                                                                                                    Stores that just provide curation, marketing, updates, and reasonably-priced payment processing would be great for developers. But stores we’re given are built on rent-seeking model that wants to own the whole ecosystem.

                                                                                                                    1. 3

                                                                                                                      Back In The Day (TM), between shareware CDs and websites like Tucows and Simtel, we had plenty of “stores”, more or less. The great thing about them, of course, being that users could choose any one of them. As soon as one of them started to suck, we’d find another one and good riddance. These were curated enough that they were relatively safe (not 100% malware-free, but malware-free enough that it wasn’t a huge problem – but those were other days for malware, too), but not locked down enough that you couldn’t find anything useful.

                                                                                                                      I sometimes wonder if freshmeat.net just happened at a bad time, before we were all ready for it :).

                                                                                                                      I don’t know about the Apple store (I haven’t really enjoyed Macs since the Powerbook era, and I switched away completely after 2009 or so) but the Android store is worse every day. It’s hard to explore a category, and with SEO and marketing thrown in the mix, the top-rated applications in many categories are actually pretty bad. If that’s the alternative to distro repositories that everyone’s proposing, no thanks.

                                                                                                                    2. 1

                                                                                                                      I think the Ubuntu MATE greeter is the only ‘good’ example I have seen recently. Not that the Ubuntu or elementaryOS app stores are bad, they just seem not to ‘click’ with new users as intended (at least in my experience).

                                                                                                                      1. 2

                                                                                                                        I don’t know if they click with anyone once the novelty factor wears off. Most of these offer only a tiny subset of the applications that are available through the system’s package manager, and it’s pretty inconvenient to manage them, too. elementary OS’s store has a whopping 177 applications, or about 15% of what used to be available on a single shovelware CD back in the day, and most of them are basic programs that don’t really have anything going for them except that they all follow the same HIG. Which is cool, I guess, but no substitute for actual functionality. You can literally install all 177 of them, and there’s still a good chance that you’ll need some extra applications.

                                                                                                                        1. 1

                                                                                                                          The elementaryOS apps are in my (limited) experience pretty good quality. Until recently that was a pretty unique feature. Hopefully Ubuntu’s snap store will prove to meet or exceed that standard.

                                                                                                                    1. 9

                                                                                                                      Here is the PDF of the book Amazon-linked in the article. Gotta starve the beast.

                                                                                                                      1. 6

                                                                                                                        I clicked before opening the link and was surprised to see it’s the same book as the one my monitor is resting on :)

                                                                                                                        1. 2

                                                                                                                          is it legally in the public domain now ? would be pretty surprising…

                                                                                                                          1. 10

                                                                                                                            the domain this pdf is stored at is public, which is good enough for me