1. 1

    It’s still a thing to the extent Algol is still a thing in the form of C#/Java.

    Modern Fortran has a passing resemblance to FORTRAN-IV, like C#/Java has a passing resemblance to Algol-60. In fact, modern Fortran looks even less like FORTRAN-IV than it looks like Algol-60.

    1. 1

      without reverseengineering or violating End-User License Agreement terms.

      How sure are you a court would agree that you’re not violating the EULA?

      1. 1

        I wouldnt be. I lol’d at that part. Xilinx etc’s lawyers too good for me to think we’ll get ahead of them.

      1. 11

        What is Yggdrasil?, its an end to end encrypted networking protocol.

        It’s also a sign that you’re Officially Old, if you’re wondering why you’d be installing a completely dead distro in another, living distro.

        1. 4

          The ‘find peers’ part of the title was a bit weird. But then I found it completely plausible that there is some community that specializes in running old, obscure Linux distributions. There were so many unique (but not always great) distributions: Yggdrasil, EasyLinux, DLD, Caldera OpenLinux, TurboLinux, Corel Linux, Storm Linux, Stampede.

          1. 2

            My first distro will always have a special place.

            Coming from Atari ST and Amiga I spend days and days trying to get X to work (this was before internet being available to the common people and search engines). When I finally got it up it was like completing a game: now what?

            Also FVWM (I think it was) looked horrible and unusable being used to the Atari ST and Amiga desktop environments.

          1. 5

            These have been floating around FOR-EVER but I’m glad they keep cropping up. I see evidence of these constantly in just about every technical community I inhabit.

            They were an eye opener for me at the time. Particularly #2 (accept me as I am) and #4 (transitive).

            Grokking the fundamental falsehood of some of these deeply was definitely a step towards finally growing up in certain ways that I REALLY needed to (and had for a long time).

            I also credit having successfully jettisoned #2 with being why at age 35 I finally started dating and met my wife :)

            1. 5

              I recognize some of these patterns, but I don’t think I associate them with technical communities. Where I’ve run into them is in “cultural geek” communities, those organized around things like fandoms. This could be idiosyncratic based on which specific kinds of both communities I’ve run into though.

              1. 2

                I’ll take your word for it. In my case, the degree ov overlap between technical communities and various fandoms is extremely high.

                1. 1

                  That’s interesting and believable too, which is why I added the caveat that it could well be idiosyncratic. I’ve definitely read about this kind of thing in my area, artificial intelligence, e.g. the old MIT hacker culture. I just haven’t encountered it in person, and it always felt like something that existed way before my time. Out of curiosity, what kinds of technical communities have you encountered where the overlap is high?

                  The AI conferences I personally go to do have a handful of geeky people, but way more business/startup/government/military/professor types. A bunch of these factors pretty clearly don’t apply as far as I can tell, for better or worse. For example, socially awkward and/or unhygienic people are pretty much jetissoned without a second thought if someone thinks they might interfere with funding.

                  1. 2

                    So, I want to be sure to constrain this properly.

                    I came into the Boston technical scene in the early 1990s. At that time, the overlap with the Boston science fiction fandom community was HUGE as it was for the Polyamory and BDSM communities (of which I’ve never been a part. Vanilla and proud yo :)

                    In fact, I pretty much got my start in the Boston tech scene by showing up at a science fiction fandom oriented group house in the middle of a blizzard and passing out my resume to anyone who’d talk to me :) I ended up living in that group house for a time.

                    I’m fairly sure this isn’t representative of the here and now. Our industry has become a very VERY different place several times over since then (mostly for the better) and I suspect that younger folks are being drawn from a much more diverse background of interests.

                    1. 1

                      Hah interesting, I know some people who I think had a similar kind of experience in the SF Bay Area in the ’90s, living in group houses to get broadband internet and such. I got into tech in the late ‘90s in suburban Houston, which might have had a geek scene, but if so I didn’t know about it. The tech scene I was exposed to was much more “professional engineering” oriented, anchored by people who worked at NASA or NASA contractors (plus some people doing tech at oil companies).

                2. 1

                  I’m not found that to be the case, even here in the Lobsters community in its forum and chat forms.

                3. 2

                  I’m curious how #2 motivated you to start dating. Were you just generally more receptive of criticism from friends, and if so, how does that translate to wanting to start dating?

                  1. 4

                    Not so much about wanting to start dating, but being willing to make the changes necessary to be perceived as attractive.

                    “Friends accept me as I am”.

                    Who cares if I have a giant sloppy beard, dress in sweat pants and faded T-shirts all the time, and generally take PRIDE in not giving two shits about my personal appearance? My TRUE friends will accept me for who I am and see past all that.

                    Except that this is the real world. How you look DOES matter. Shave the beard, lose a few pounds, buy some decent clothing and it’s a whole different ballgame.

                    1. 1

                      I definitely agree with what you’re saying, but it reminds me of some definitions from Douglas Coupland’s novel Generation X :

                      anti-victim device (AVD) - a small fashion accessory worn on an otherwise conservative outfit which announces to the world that one still has a spark of individuality burning inside: 1940s retro ties and earrings (on men), feminist buttons, noserings (on women), and the now almost completely extinct teeny weeny “rattail” haircut (both sexes).

                      … and:

                      personality tithe - a price paid for becoming a couple; previously amusing human beings become boring: “Thanks for inviting us, but Noreen and I are going to look at flatware catalogs tonight. Afterward we’re going to watch the shopping channel.”

                      https://en.wikiquote.org/wiki/Generation_X:_Tales_for_an_Accelerated_Culture

                      Some parts of a given personality are stupid and need to be shorn so the person can have a more interesting life. It’s easy to lionize the idea that someone can be Good Enough, or, in somewhat different subcultures, Cool Enough, that you never have to compromise on those things, but even if you luck into a job where that works, it doesn’t and can never work in a healthy personal relationship.

                      1. 4

                        Sounds like I need to read that book!

                        I don’t personally see it as compromise.

                        The truth is that my self confidence was in the shitter at that time. My personal appearance was just one outward manifestation of that.

                        Recognizing that I needed to make changes if I wanted to meet someone and be less lonely was a first step towards letting go of some of that baggage.

                1. 19

                  What to say, what to say. Yes, generally speaking I agree. “Defensive programming” can be like shotgun parsing applied to anything that’s not parsing.

                  Checks here, checks there, checks everywhere. Checks, not asserts. Checks that try to do something reasonable (such as avoid crashing the program). It muddies up the logic and gets in the way, and it makes hard to reason about what’s meant to be a valid kind of thing to pass to a function (ideally we’d have types to express that, but I still use mainstreamish programming languages). Is something valid because you can pass it without crashing the program? Or is it potentially invalid, because there is a check that makes the function a no-op or bail-out-with-error or whatever? What if you don’t notice this case and the invalid value just keeps going deeper and deeper into the program?

                  However, I also don’t feel like free() being a no-op when given a NULL pointer is necessarily defensive programming. One might say that you should never call free if you haven’t got something to deallocate, but in a program littered with constructs like

                  if (ptr) free(ptr);
                  

                  the “defensive check” is simply moving common, repeated logic into one place. Isn’t that what functions exist for?

                  Herein lies the difficulty. It can be hard to decide whether some check is defending against invalid state or just implementing valid logic. I still struggle with it, having been programming for 20 years. If someone’s got a good rule of thumb, I’m all floppy hears. I kinda suspect it’s too context specific for a rule of thumb though.

                  1. 2

                    if (ptr) free(ptr);

                    This isn’t defensive, this is not knowing the tools: free(NULL) is a safe no-op. Double-freeing is bad, but that construct won’t catch that. This construct will prevent it: free(ptr); ptr = NULL;

                    There. Now, you can’t double-free, and you can write free(ptr); an arbitrary number of times to make the cleanup code less conditional and more robust.

                    1. 1

                      free(NULL) is a safe no-op

                      Yes, that’s what I said.

                      What I’m questioning here is whether moving that check from the place of call to the implementation of free is defensive programming or not. If you RTFA, spc476 tells a story about a function that is essentially free(), except that on some platforms it’s got the check built in and on others it doesn’t.

                      Is the built in check defending against the blunder of passing the function a NULL pointer, or is it just a convenient place to lay the logic that would otherwise be repeated all over?

                    2. 2

                      In my (granted pretty limited) experience if (ptr) free(ptr); is something that either indicates

                      • some confusion about how ptr is used (similar issue in python 2 was calling decode on a already decoded string. This would no-op, but would leave people thinking that the source thing is bytes, or let people mix and match bytes and strings). Usually pointers are either freed or not freed so… how are you in a state where you don’t know if something needs to be freed?

                      • is actually being used as a sort of “optional type”. The check is similar to null-checking in other languages. Imagine if foo.bar no-oped if foo was null. Seems pretty reasonable to ask the user to confirm this.

                      Rust’s linear types work on some level because of the fact that you usually know whether something needs to be freed or not.

                      Then again, I don’t have that much experience with C APIs in a while. It could be pretty common to optionally pass in pointers all over. But I feel like it’s not?

                      1. 1

                        is actually being used as a sort of “optional type”. The check is similar to null-checking in other languages. Imagine if foo.bar no-oped if foo was null. Seems pretty reasonable to ask the user to confirm this.

                        This is what is is, generally. If you think of it not as foo.bar() where foo is NULL, but rather as bar(Nothing) where a NULL value stands for nothing, does it make a little more sense?

                        If you want to go further, does NULL stand for an empty list, or does it stand for nothing? Does it make sense to free an empty list? Why not?

                        There are generally three ways to implement optionality in C apis: (1) format strings, which are used to specify what you have, (2) pointer + count (think arrays), (3) NULL pointer as a stand-in for nothing, or any other pointer to a something. In addition to that, NULL pointers see some use as sentinels to indicate that I have nothing more. All pretty common; any fancier way to indicate optionality gets clumsy.

                        Rust’s linear types work on some level because of the fact that you usually know whether something needs to be freed or not.

                        How does that knowledge manifest? In C, it is sometimes the case that the place of resource acquisition is near the place of free, so you can encode this knowledge in control flow. But that’s not always the case.. then storing NULL pointers to say that I have nothing is a way to encode the knowledge of (not) having to free something. And when it comes to that, it’s either if (ptr) free(ptr); all over, or the common logic is built into free().

                        1. 2

                          Thank you for this detailed reply! It helped me to identify something that causes a bit of a mismatch with C programs. In reality, C ends up being applied in two different ways:

                          • writing tricky system internals (the stuff where the bit twiddling and the array pointer math is a necessary evil/very useful)
                          • writing the same kinds of applications as other people write in higher-level languages

                          So in former case certain API designs make sense, but in the latter one another kind of API design makes sense. Of course, the rub is that C does not provide enough abstraction tooling to write “good” API designs for higher level stuff (leading to people designing APIs purely through macros).

                          In a lot of higher level software I would prefer for a double free to blow up so that I now can go in and find the issue with the data flow, since the double free problem also has the nasty “use after free” dual problem. But if you’re writing, say, a language interpreter it’s possible that the data flow is so dependent on user data that it’s very difficult to do this in a manageable way. So this more permissive API would end up being more helpful than having your program crash all the time

                    1. 3

                      Be careful when XOR-swapping two integers that are addressed by pointers/references. If they both point to the same memory location, then the value gets erased to zero. In C it would be good to add the restrict keyword to the two pointers, to let the human know about this pitfall (it doesn’t stop the compiler).

                      1. 6

                        Be careful when using coding tricks in production code.

                        I doubt whether there’s still a compiler used “for real” which doesn’t optimize the normal swap algorithm, using a temporary variable, into whatever’s most efficient for the system, which usually works out to being a single opcode. This is decades-old peephole optimization stuff. The intricacies of restrict and pointer aliasing are useful to keep in mind in general, but if you’re using this trick in code where correctness matters, just use a temporary variable and have some faith in the people who wrote the optimizer.

                      1. 9

                        This post seems confused. The term “Open Source” was specifically created to denote source which is open but not “Free” in the “Free Software” sense. That a specific group (the OSI) later co-opted the term and took an overly narrow definition in order to please Corporations who didn’t want to see the movement create software they were unable to exploit is uninteresting.

                        Open source is simply what it says on the tin – any source that is open. To pretend otherwise is to insist that Up is Down and Down is Up – openly viewable and shareable software that is simply not commercially exploitable becomes suddenly “closed” in some nonsense confusion of semantics.

                        Lambasting Open Source for not being Free for commercial exploitation is like lambasting a jar labeled Chunky Peanut butter for not being Smooth. Nobody was pretending it was what you’re complaining it’s not.

                        1. 6

                          Open source and free software are almost identical in meaning. Compare their definitions:

                          https://opensource.org/osd

                          https://www.gnu.org/philosophy/free-sw.en.html

                          The list of free software licenses and open source software licenses is also almost identical. Only a small number of obscure licenses meet one definition and not the other.

                          You may be thinking of copyleft licenses, like the GPL.

                          1. 5

                            Open source and free software are almost identical in meaning. Compare their definitions:

                            Yes, this is a later development that I specifically think is an utter load of crap that a single group (the OSI) is attempting to dictate to everyone in disregard of common sense and basic English semantics

                            1. 7

                              This isn’t common sense and basic English semantics. This is an important step in defending the open source community against bad actors which do exist, in great numbers and with great resources. I can’t sell you a Jeep advertised as a Honda and cite “common sense” because my family used to own a Honda and we called all cars Hondas thenceforth. That’s not how language works. We have commonly agreed upon definitions for things and people who abuse the terminology to promote products for which these terms are inappropriate are liars.

                              1. 4

                                I can’t sell you a Jeep advertised as a Honda and cite “common sense” because my family used to own a Honda and we called all cars Hondas thenceforth.

                                A better analogy here would be if Honda had seized the trademark for “blue car” and insisted that it was unethical to refer to anything, no matter how plainly blue and car-shaped, other than a Blue Honda as a “blue car”.

                                “Open” and “source” are not some meaningless trademarks that the OSI owns. They mean something, both separately and in combination, and it’s not what the OSI wants to dictate that it means. I’m not buying their attempts to re-define the English language, sorry.

                                1. 3

                                  Okay, so it’s like selling a toy car as a car, then.

                                  Your attempts to avoid “redefining the English language” are exceedingly silly and baseless. Just use the term “source available” like everyone else. Instead you’re sowing confusion and discontent where it really doesn’t matter to you, and really does matter to everyone else.

                                  1. 1

                                    Okay, so it’s like selling a toy car as a car, then.

                                    No it’s like insisting that something that is clearly a toy and plainly a car is for some reason not permitted to use the term “toy car” because you won’t allow IBM to make money off of it without compensating the person who die-cast it.

                                    Instead you’re sowing confusion and discontent where it really doesn’t matter to you, and really does matter to everyone else.

                                    Oh good lord. It’s free software extremists who are “sewing confusion and discontent” by appointing themselves Thought Police and decreeing that when referring to source code which is plainly open, the combination of words “open” and “source” is utterly verboten and some kind of attempt at fraud.

                                    1. 5

                                      If you don’t grab it, someone else will:

                                      https://www.infoworld.com/article/2671387/operating-systems/linus-gets-tough-on-linux-trademark.html

                                      Torvalds didn’t plan on gaining trademark protection for the word “Linux” when he began work on his OS, but by 1996 he started wishing he had. That’s when William R. Della Croce Jr. of Boston first started demanding 10 percent royalties on sales from Linux vendors, based on a trademark claim he had filed in 1994. The Linux kernel was still free software, but according to Della Croce, the name itself was his property.

                                      As bad as you imagine the current status of the term “Open Source” is now, it would be infinitely worse had Microsoft been able to grab up the term in the 1990s and use it as a cudgel against people who self-applied the term to what’s currently widely known as Open-Source Software. And the Ballmer “The GPL Is Cancer” Microsoft might well have.

                                      1. 0

                                        You can’t just decide you want a trademark and have it because nobody else has registered it yet. Linux existed before the 1994 trademark, and it was thus completely invalid.

                                        1. 4

                                          You can’t just decide you want a trademark and have it because nobody else has registered it yet.

                                          That’s probably why Della Croce eventually lost the court case and, thus, the trademark. However, there still had to be a court case, because he was still issued the trademark in the first place, which likely wouldn’t have happened had Torvalds or some other valid entity gotten the trademark first.

                                        1. 0

                                          Yes, you’re the egg. Congrats on figuring that out.

                                2. 3

                                  Basic english meaning would suggest free software is simply proprietary software you don’t have to pay for.

                              2. -2

                                The term “Open Source” was specifically created because the term “Free Software” was loaded with political baggage (RMS is a socialist, let’s not kid ourselves) and confusion (“free as in speech” vs “free as in beer”). It was specifically pushed by the Mozilla project, who always released their stuff under Free Software licenses, and commercial Linux vendors, who are obviously relying on the code being free for commercial exploitation.

                                https://en.wikipedia.org/wiki/Open-source_model#Open_source_as_a_term

                                1. 13

                                  RMS is a socialist

                                  Only if you don’t know what “socialist” means.

                                  1. 3

                                    The wikipedia entry is ahistorical – the phrase “open source” predates the Free Software movement’s co-opting of it by years, if not decades – since it is the single most obvious and commonly used descriptor of source code that is open for viewing.

                                    Mark Travers wrote a bit about the problem with the co-opting of the term, and resulting semantic confusion that the Free Software people are engaged in, here: http://marktarver.com/problems.html

                                    Hey look: here’s the term “open source code” being used years before Mozilla was formed and years before ESR “invented” the term, to describe something where the sourcecode was open but which couldn’t be used commercially. http://www.xent.com/FoRK-archive/fall96/0269.html

                                    1. 4

                                      Thank you for actually providing a source! Unfortunately, it is just another person from 2009 asserting the same thing you did, while Wikipedia actually links to a primary source from 1998.

                                      Can you link to someone, maybe an academic studying the history of the term, or an old Usenet post from before 1998?

                                      (by the way, I’m not disagreeing with the core of that article: FOSS has hardly lived up to the promises that people made of it)

                                      1. 7

                                        Check the Edit. That’s a usage from ’96,

                                        Or hell, here’s some random post from 1990 on comp.sys.amiga https://tech-insider.org/personal-computers/research/1990/1126.html

                                        BSD’s open source policy meant that user developed software could be ported among platforms, which meant their customers saw a much more cost effective, leading edge capability combined hardware and software platform. The marketplace saw SYSV as junk, and the AT&T platforms running it did so poorly in the market, AT&T did massive layoffs for the first time in their history, to make up for the losses.

                                        I’d go on, but Google seems to have made it damn near impossible to search usenet. It’s not a particularly hard to hit upon term, anyways.

                                        The OSI’s position on all of this, by the way, is that these pre-existing usages don’t count as pre-existing usages of “open source” because they didn’t mean what the OSI means by “open source”. Which is rather like Honda claiming that there were no pre-existing usages of the phrase “blue car” prior to Honda insisting it means specifically and only blue Hondas, because any prior usages of “blue car” didn’t specifically mean Hondas. It’s bafflegab.

                                        1. 1

                                          Okay, that’s actually really cool thing to know. Thanks for the info!

                                    2. 0

                                      “Free Software” was loaded with political baggage

                                      No, it isn’t. There’s nothing political about software freedom. It’s an ethical issue. Where is the free software political party? Where are the free software policies of different political parties? Nowhere. ‘Political’ doesn’t mean ‘controversial’.

                                      (RMS is a socialist, let’s not kid ourselves)

                                      Grow up. RMS is not a socialist in any sense of the word.

                                      1. 4

                                        “No, it isn’t. There’s nothing political about software freedom.”

                                        Its existence and enforcement in a particular country is determined by its politics (i.e. laws) and those of countries it signs agreements with. Yes, there’s plenty political about software freedom. It’s even enforced with copyright law in most cases. If you think politics don’t matter, then you might think downloading software off the Net can never result in fines or prison time. Or software freedom can never be enforced at all since it would depend on laws created through politics.

                                        1. 1

                                          Its existence and enforcement in a particular country is determined by its politics (i.e. laws) and those of countries it signs agreements with.

                                          Laws are not automatically political.

                                          1. 1

                                            If it’s a democracy, then the laws are introduced by people, debated by people, possibly passed by those people, and debated/interpreted by other people in courts later. I mean, government itself is a political process. So, I don’t even need to say that much to show laws are political. Especially copyright and patent law which has extra element of lobbying by big companies that shaped the laws to mainly benefit them.

                                            1. 1

                                              By that logic everything is political.

                                              Software freedom is not a political issue, and RMS is not being political when he pushes for software freedom, and the FSF is not political, and copyleft is not ‘more political’ then permissive.

                                              1. 2

                                                You think RMS and FSF aren’t political in their goals or activities? I think I’ll end our conversation on saying you’re the first I’ve heard ever say that.

                                                1. 1

                                                  Correct. I don’t think there’s anything remotely political about free software.

                                        2. 3

                                          Where are the free software policies of different political parties?

                                          Anything involving copyright reform (the Pirate Party), Internet regulation (net neutrality), or the limits of proprietary EULAs and ToS documents (TIVOization) is important for the future of FOSS, to enable software development outside entrenched commercial entities.

                                          Also, the ethical is political.

                                          1. 0

                                            Anything involving copyright reform (the Pirate Party),

                                            Free software doesn’t require copyright reform, nor would it benefit from it. Free software licenses use copyright.

                                            Internet regulation (net neutrality)

                                            Nothing to do with free software.

                                            or the limits of proprietary EULAs and ToS documents (TIVOization)

                                            Nothing to do with free software.

                                            Also, the ethical is political.

                                            Nothing in that link backs up your claim that anything ethical is automatically political. Just because you live in a country where everything and anything is politicised doesn’t mean we all do.

                                            1. 3

                                              Free software doesn’t require copyright reform, nor would it benefit from it. Free software licenses use copyright.

                                              Copyright enforcement technology (DRM) has practical effects on people’s ability to write and modify software that operates on copyrighted works. There’s a reason why the Free Software Foundation runs the “Defective by Design” campaign. The usefulness of free decoding software is hampered if all of the best videos that you would want to decode are encrypted and can only be used with pristine proprietary ones.

                                              Also, because free software licenses do use copyright, copyright law does matter.

                                              Internet regulation (net neutrality)

                                              Nothing to do with free software.

                                              Like in the case of video decoding software, the legal right to write your own network-facing software isn’t worth very much if only proprietary ones have the privilege of running on the internet.

                                              or the limits of proprietary EULAs and ToS documents (TIVOization)

                                              Nothing to do with free software.

                                              GNU General Public License version 3 disagrees.

                                              1. 1

                                                Copyright enforcement technology (DRM) has practical effects on people’s ability to write and modify software that operates on copyrighted works.

                                                Which has nothing to do with free software. They wouldn’t be legally allowed to modify that software anyway. Free software movement is not one that wants proprietary software to be illegal, it just advocates for people to make their software free.

                                                The usefulness of free decoding software is hampered if all of the best videos that you would want to decode are encrypted and can only be used with pristine proprietary ones.

                                                But they aren’t only able to be used with proprietary ones. Software freedom is not about some right to just do whatever you want with things other people have ownership of.

                                                Like in the case of video decoding software, the legal right to write your own network-facing software isn’t worth very much if only proprietary ones have the privilege of running on the internet.

                                                But they don’t. Net neutrality is overblown nonsense anyway. Most countries don’t have it, none have any problem not having it, the US didn’t have it until very recently then got rid of it again and nothing has changed.

                                                GNU General Public License version 3 disagrees.

                                                The GPLv3 isn’t a proprietary EULA or TOS agreement, and as such it has nothing to do with the limits of proprietary EULAs or TOS agreements. I don’t really see how you find this so difficult to understand. The GPLv3 stops you from producing TIVOised derivative products. That doesn’t mean the FSF wants TIVOisation to be illegal.

                                    1. 1

                                      It’s easy to find the Big Banner Features, like Zones and ZFS. That much is in the FAQ. But that doesn’t answer the question of what the base install experience is like, other than that they note there’s a live installer built into a Gnome desktop, which brings them up to, say, 1996 in Linux Years. I’m guessing it isn’t like Solaris was Way Back When, when the GNU utilities were segregated into their own subdirectory not in the normal $PATH and the default experience was basically System V, but how rich is it?

                                      1. 4

                                        Feels like a FreeBSD/CentOS hybrid, except you’re running an Illumos kernel and have atomic system upgrades like NixOS.

                                      1. 4

                                        When will people realize that imposing CoC tramples on peoples feelings of moral autonomy?

                                        I want to know, what do CoC proponents think whats causing the backlash?

                                        1. 29

                                          The backlash is caused by some folks wanting to be assholes. A piece of documentation saying ‘respect others’ should not be threatening to anyone.

                                          How can anyone defend the attacks on Linus right now? Him and his family are having threats on their lives over a document asking others to be respectful.

                                          1. 5

                                            So the best argument you could come up against people disagreeing with you is basically the equivalent of “have you stopped beating your spouse yet”?

                                            I think it’s largely a matter of people from the US trying to force their cultural norms onto the rest of the world, and frankly I’m not willing to lower civilizatory standards to accommodate largely US-specific social issues.

                                            There are certainly issues to be solved, but adopting US-style problem-solving approach of “war on bad behavior” will be similarly effective as their “war on drugs” or “war on terrorism”. Thanks, but no thanks, I want to improve things, not make them worse.

                                            1. 4

                                              I want to be right or at least to say things I believe are correct even if they make me an asshole.

                                              1. 5

                                                If you think human conflict is solved the “show the asshole the boot” way, then you probably lack experience, because your opponent will claim that you are the asshole.

                                                Also, take a step back. Where did i approve of harassing other people? That i approve a thought does not mean that i approve all methods of enforcing or implementing it. That i think stealing is illegal does not mean that i approve of going around and lynching burglars.

                                                1. 24

                                                  If you think human conflict is solved the “show the asshole the boot” way, then you probably lack experience

                                                  The counter-argument to this is https://en.wikipedia.org/wiki/Paradox_of_tolerance

                                                  1. 23

                                                    If you think human conflict is solved the “show the asshole the boot” way, then you probably lack experience, because your opponent will claim that you are the asshole.

                                                    Have you ever worked in an office, volunteer organization, missionary group, art collective, or literally any other group human endeavour?

                                                    They all have expected norms of behavior and ask those who don’t conform to them to leave.

                                                    1. -1

                                                      I don’t remember any such group needing a pseudo-law HR-babble document to accomplish that, at least not in the last 30 years.

                                                      1. 10

                                                        They literally all do. Every single organization you’ve ever been involved with that wasn’t just you and some buddies had an employee handbook or volunteer agreement or something in which this sort of thing was spelled out.

                                                        To not have one opens them up to “well I didn’t know I couldn’t do that” when they get mad at someone, or a lawsuit if they get fired because they didn’t know some behavior wasn’t acceptable.

                                                        And apparently these sorts of things are necessary, because a lot of people can’t just…not be a dick.

                                                        1. -3

                                                          To all of that: No. Please stop applying your cultural expectations to the rest of the planet.

                                                          1. 0

                                                            https://i.kym-cdn.com/photos/images/original/001/143/769/86b.jpg

                                                            ;)

                                                            Seriously though, if you don’t like it you’re free to start your own kernel with blackjack and hookers if you’d like. Stop telling others how they can run their projects.

                                                            1. -2

                                                              Stop telling others how they can run their projects.

                                                              Oh, the old Fox News “if the argument is lost, just accuse others of the thing you are doing yourself to turn any discussion into a fact-free ‘you did it! no you!’”.

                                                              I think we can stop here.

                                                        2. 1

                                                          There’s a long unbroken chain from https://en.wikipedia.org/wiki/Code_of_Hammurabi to present day, by way of https://en.wikipedia.org/wiki/Common_law (among other such pseudo-law HR-babble documents, including of course https://www.archives.gov/founding-docs/constitution-transcript).

                                                          1. -1

                                                            None of these are even remotely related to the topic at hand.

                                                    2. 0

                                                      assholes

                                                      OK, that’s a start. Now define it, as opposed to thinking anyone who acknowledges it’s a complex topic is a horrible human being. Define it in a culture-neutral fashion, and define it such that the non-neurotypical don’t get thrown out or made to feel less than.

                                                    3. 1

                                                      I don’t even think that’s the biggest problem directly, but the fact that “imposing” (not a word I’d choose) a CoC on a community that’s (obviously) not prepared for it will be divisive – and why should it not? It’s kind of the point of a CoC – a “motion of confidence” of sorts that a community poses to itself. Either it’s admitted which forces the reactionaries to split of or if it looses the progressives don’t feel welcome anymore. And frankly, I don’t know if this is a good thing or not.

                                                      1. -3

                                                        I love reading the replies to https://lobste.rs/s/uyriow/linux_4_19_rc4_released_apology#c_yl3d7r in retrospect.

                                                      1. 12

                                                        I have a lot of issues with the idea that asking people to behave professionally (in what is essentially a professional setting) is somehow offensive or autocratic. Threatening to throw toys out of the pram does not reassure me that people have good points.

                                                        1. 18

                                                          This entire issue has been hijacked by the alt-right/gamergate crowd as another front in their “culture war”.

                                                          (Edit, changed “the” to “their” in reference to “culture war”).

                                                          1. -1

                                                            Except it isn’t just in a professional setting, it’s in every public forum.

                                                            It’s also impossible to know what they define to be “professional” because of comments like this:

                                                            Threatening to throw toys out of the pram

                                                            Bizarre ageist rants which foreclose on the idea that this is even up for discussion, and which assume everyone knows what “acceptable” or “professional” are as if those ideas were cross-cultural (they’re not, of course, and you’d need to be racist to imagine they were) and as if everyone were neurotypical.

                                                            1. 7

                                                              Ageist, racist and ableist. I got the trifecta!

                                                              Bizarre ageist rants

                                                              Threatening to retract past contributions, particularly over a perceived abuse of power that hasn’t happened yet is childish behaviour. Spouting ad hominem attacks against people you disagree with qualifies too, and gets you a ‘troll’ downvote.

                                                              which assume everyone knows what “acceptable” or “professional” are

                                                              This sounds like a very good argument for some sort of document which defines what “acceptable” and “professional” might be. If only the Linux kernel had one.

                                                          1. 4

                                                            It’s all easy to tell people to switch from X to Y (browser, OS, antivirus, etc.) but you can’t just go preaching when the alternatives aren’t quite the same. Sure you have Firefox (or any other flavour) and while I’d love to fully switch, it isn’t quite there yet. You can tell people to switch to some Linux distro or to install LineageOS but that comes with losing certain features or apps (try doing gamedev from Linux for example).

                                                            And Firefox won over IE because it was better not for the fact IE back in the XP days was crap with its ActiveX madness. And same with the general switch to Chrome, it performed better.

                                                            The bottom line for me is: make better alternatives to cover the general use case and people WILL switch (because their “techy” friend installs it for them) but they probably won’t just to get away from privacy issues if it gives them less headaches.

                                                            1. 7

                                                              same with the general switch to Chrome, it performed better

                                                              Most people did not care that it performed “better”.

                                                              They just saw the ads. On every google page. Including the search front page.

                                                              1. 6

                                                                Pretty sure Chrome grew its popularity when Firefox became quite sluggish, together with its strong presence in smartphones.

                                                                1. 8

                                                                  Yeah, it is easy to forget how amazing Chrome was versus the competition in 2008. Other browsers were covered in garbage and layers of UI, Chrome was minimalist. When other browsers would crash when you went to a bad webpage, chrome just lost a tab due to the process separation. Even at initial release, Chrome was much faster than the competition. It also had the omnibar which felt like the “right way”.

                                                                2. 3

                                                                  Watch the Google Chrome announcement video

                                                                  They compare it side-by-side with Internet Explorer. It shows that, for JavaScript, Chrome was around 100 times faster. For rendering it was around 3 times faster. The tab isolation, simpler user experience etc was also a serious win.

                                                                  These types of improvements did matter to a lot of people.

                                                                  1. 2

                                                                    The ads gave Google an opportunity to win people over, but ads alone don’t convince anyone to commit to a product. IMO by the time Chrome ads started popping up on Google properties, Chrome had already won.

                                                                    When Chrome came out it had superior UX to Firefox on every front. Performance, extensions, sync, transparent auto-updates, omnibar: everything was better and simpler for the 90% use-case. I specifically remember switching my parents and grandparents to Chrome because they kept getting stuck on old versions of Firefox and/or extensions would randomly stop working (namely ABP; about once a quarter I would get a call complaining that “the ads are back”). Chrome solved that problem for me.

                                                                    I’m a big fan of Mozilla but Firefox has always been a funky browser for nerds. It dominated IE because Microsoft had made zero technical investments for years and years. Firefox has made great strides competing with Chrome, but it hasn’t made any huge leaps and it still has rough edges. I think Mozilla as an organization struggles to put out products that are uncompromisingly great for the non-technical user.

                                                                    1. 2

                                                                      It dominated IE because Microsoft had made zero technical investments for years and years.

                                                                      Uh, when did Firefox “dominate IE”? Even after major EU legal wins, etc, Firefox was second until Chrome came with an even bigger backer that the regulators hadn’t smacked yet and ate everyone’s lunch.

                                                                      1. 1

                                                                        Uh, maybe it was too strong a word. But the market-share numbers are distorted by the incapability of corporate IT to move off IE at that time. That’s why the lifecycles of IE 6/7/8 were so drawn out.

                                                                        My recollection of that era is that anyone who understood what a browser was and had the ability to choose whichever one they wanted was using Firefox.

                                                                      2. 2

                                                                        Wow, I had forgotten auto-update, that might have been the most important feature!

                                                                        When Chrome was released, it actually lacked both extensions and sync, but the per-tab process and auto-update were killer features – plus general performance.

                                                                        1. 1

                                                                          When Chrome was released, it actually lacked both extensions and sync

                                                                          It got them in 2010, shortly before the first release for macOS, which is probably what I’m remembering as the initial release. It didn’t surpass Firefox and IE in market share until 2012.

                                                                      3. 2

                                                                        Most people did not care that it performed “better”.

                                                                        I don’t think this is true. At the time, both IE and FF were very slow and frustrating for people. A crash in either would take down the entire browser. “Updating their browser” was something their tech friends would tell them to do, and they wouldn’t do. Chrome was automatically updated, simpler, faster, more stable (re: crashing) and it was less complicated (at least in UI – omnibar, better on smaller screen). I think it won due to fitness for purpose, not ads.

                                                                      4. 6

                                                                        What about Firefox “isn’t quite there”?

                                                                        1. 5

                                                                          Firefox is not “quite there” because developers today mostly create Chrome apps, and consider other browsers as an afterthought. On desktop, and even more on Android, I often need to switch back to Chrome because the app I’m using doesn’t work on Firefox or is way too slow.

                                                                          Technically it’s very easy to get a website to work on any browser, but we don’t create websites anymore, often even plain text articles are “apps”, with JS all over the place and this is mostly designed to work on Chrome only.

                                                                          1. 1

                                                                            Firefox isn’t quite there because developers don’t target it. Developers don’t target Firefox because it isn’t quite there.

                                                                            I understand and agree with your point, but this isn’t really something Mozilla can do much about (other than actually gaining back market share).

                                                                          2. 4

                                                                            I’ve tried to adopt Firefox seriously many times over the years, but every time the support for multi-user didn’t cut it for me.

                                                                            I maintain two profiles in Chrome, a professional and a personal one. I’ve tried to replicate it with Firefox profiles, then later with containers, but the UX is not fitting my use case.

                                                                            1. 2

                                                                              Firefox lacks Chrome’s --app switch for example. That launches a window without the tab bar and the URL bar (essentially, only a webview). It’s super-sweet. Firefox does not support it out of the box, and all solutions I found involved setting up a separate profile. Chrome allows me to have these “apps” in the same profile, so they have access to the same extensions, I can open tabs from them, in my main browser window.

                                                                              It’s a stupidly powerful feature if you have a few webapps you want to treat as apps instead of tabs.

                                                                              1. 12

                                                                                That sounds like a very very specific feature though, that maybe 1% of the people might use.

                                                                                For the rest, Firefox is a perfectly good browser which (so far) seems to follow better privacy practices than Chrome.

                                                                                1. 2

                                                                                  That sounds like a very very specific feature though, that maybe 1% of the people might use.

                                                                                  You’d be surprised how many people use this. Makes it so much easier to use a website as an app, and unlike the common Electron apps, allows one to use extensions with it. But even if only 1% used it, for that 1%, Firefox is not quite there.

                                                                                  Also, Electron. Tons of stuff is built on it, and it uses Chrome under the hood.

                                                                                  Firefox is a perfectly good browser which (so far) seems to follow better privacy practices than Chrome.

                                                                                  Yeah, like those experiments, or DNS-over-HTTPS which sends all DNS requests to Cloudflare. Or the integrated Pocket. Those might spy on me less, but it’s only marginally better.

                                                                                  1. 2

                                                                                    I hope for your sake that it’s way more than 1% usage. Google has a history of removing features that not many people use [1].

                                                                                    [1] I still prefer using Google Maps over anyone else but over time, I’ve had features I use removed due to lack of utilization. It’s annoying. Second only to the UI constantly changing.

                                                                                    1. 1

                                                                                      I believe a place that chrome apps are more commonly used is enterprise. It basically gives an easy way to put your internal CRUD webapp on the start menu with an icon and if you use the extended support some additional features. I suspect this is what keeps –app alive more than the at-home users use of it.

                                                                                      I have seen orgs with 30+ “chrome apps” in the default image. Actually probably the biggest category of apps on those deploys. Nevermind of course Chromebooks.

                                                                                    2. 1

                                                                                      But even if only 1% used it, for that 1%, Firefox is not quite there.

                                                                                      That’s nonsense. 1% might use it, and that’s probably an overestimate. For how many of them is it a dealbreaker? Even fewer. Probably far fewer. It’s a really insignificant feature.

                                                                                      Yeah, like those experiments

                                                                                      I don’t know what this means, could you elaborate?

                                                                                      or DNS-over-HTTPS which sends all DNS requests to Cloudflare.

                                                                                      DNS-over-HTTPS does not send all DNS requests to Cloudflare, and even if it did it would still be more secure than insecure DNS which sends all DNS requests to anyone listening, including Cloudflare if they wanted to.

                                                                                      Or the integrated Pocket.

                                                                                      Don’t like it? Don’t use it. I fail to see how this is ‘spying’ on you.

                                                                                      1. 0

                                                                                        It’s a really insignificant feature.

                                                                                        For you, yes. For me, it is essential. It doesn’t matter how many use it, for those who do, Firefox is not quite there. For everyone else, it might be, good for them.

                                                                                        I don’t know what this means, could you elaborate?

                                                                                        Look for Firefox studies. Granted, you have to opt in to them right now (like you used to be able to opt in to logging into Chrome), but then you’re opting in to pretty much all studies. This is just a step away from what Chrome’s doing now, and sending your browsing data to third parties, disguised as studies is even less honest.

                                                                                        DNS-over-HTTPS does not send all DNS requests to Cloudflare, and even if it did it would still be more secure than insecure DNS which sends all DNS requests to anyone listening, including Cloudflare if they wanted to.

                                                                                        Err, yes, it does send all DNS requests originating from Firefox through Cloudflare. It does fall back to regular DNS, but if enabled, it first goes through them. Not saying I trust my ISPs DNS servers, but I do trust my ISP to be far less competent at mining my data than Cloudflare.

                                                                                        1. 2

                                                                                          Firefox studies are completely opt-in. They’re in an options window most people apparently never open. To compare this to Google forcing you to send them all your browsing data if you so much as log into GMail through their browser is ridiculous.

                                                                                          DNS over HTTPS

                                                                                          Doesn’t even look like this is out of nightly, it’s a feature you have to enable through the about:config page… I mean come on man, you cannot seriously be arguing this is a breach of privacy. They’re both completely opt-in.

                                                                                          DNS over HTTPS sends your DNS traffic to a DNS-over-HTTPS provider. I’m sure it’s possible to change which provider it is. I wouldn’t be surprised if Google switched DNS in Chrome to go to 8.8.8.8 by default anyway. Certainly they widely encourage people to do so without telling them that this gives Google again all their browsing history, and more besides.

                                                                                          1. 1
                                                                                            1. 1

                                                                                              Firefox studies are completely opt-in

                                                                                              So was Chrome’s login until recently. I’m not going to trust a for-profit corporation to respect my privacy forever. Especially when those studies are marketed as harmless things, yet, send a whole lot of data to third parties (not even to Mozilla, but third parties).

                                                                                              I’m sure it’s possible to change which provider it is

                                                                                              It is, but there are currently two public DNS-over-HTTPS providers: Cloudflare and Google. Yay. You can run your own, yes, but not even 0.1% of users will ever do that. Besides you can also disable Chrome’s login thing if you really want to, with a flag: go to chrome://flags/#account-consistency, and set it to disabled.

                                                                                              It’s an internal flag, and may or may not go away, but for the moment, it gets the job done, and I get to keep –app too.

                                                                                              1. 1

                                                                                                So was Chrome’s login until recently.

                                                                                                It isn’t now. Now is what matters.

                                                                                                I’m not going to trust a for-profit corporation to respect my privacy forever.

                                                                                                Then why are you trusting Google to respect your privacy, given that they have never done so and Mozilla have nearly always done so. Mozilla has always acted in good faith wrt. privacy. Google has not. Yet you defend Google and attack Mozilla. Why?

                                                                                                Especially when those studies are marketed as harmless things, yet, send a whole lot of data to third parties (not even to Mozilla, but third parties).

                                                                                                So don’t enable them then. They’re completely optional and opt-in. I don’t understand why you think being able to opt into something is anywhere near comparable to being forced to give data.

                                                                                                It is, but there are currently two public DNS-over-HTTPS providers: Cloudflare and Google. Yay. You can run your own, yes, but not even 0.1% of users will ever do that.

                                                                                                So don’t enable it then. How is it Mozilla’s fault there aren’t more DNS-over-HTTPS providers? Get your ISP to provide it.

                                                                                                Besides you can also disable Chrome’s login thing if you really want to, with a flag: go to chrome://flags/#account-consistency, and set it to disabled.

                                                                                                It’s opt-out, in other words. Opt-out = might as well be mandatory for most users. On the other hand, opt-in = might as well not exist for most users. Most users are never ever going to enable anything opt-in and never ever going to disable anything opt-out.

                                                                                                It’s an internal flag, and may or may not go away, but for the moment, it gets the job done, and I get to keep –app too.

                                                                                                I’ve already explained how you can get the same functionality as --app in Firefox: go fullscreen, disable toolbars.

                                                                                                1. 1

                                                                                                  Now is what matters.

                                                                                                  Now I can disable the sign-off in Chrome and Chromium. Chromium doesn’t send my data to Google. They both support the feature I want. If now is all that matters, then there is zero argument in favour of Firefox, as Chromium does precisely what I want, and am already using it.

                                                                                                  Thank you.

                                                                                    3. 3

                                                                                      Firefox and Chrome have different sets of features. They overlap significantly but not exactly. It’s easy to cherry-pick features either of them have that the other doesn’t. That doesn’t mean that Firefox isn’t a perfectly acceptable replacement for Chrome.

                                                                                      I have no clue why you’d want to launch a window without a tab bar and URL bar. Oh no, a couple of bars at the top of my screen, that’s far worse than sending all my browsing history to Google.

                                                                                      1. 1

                                                                                        That doesn’t mean that Firefox isn’t a perfectly acceptable replacement for Chrome.

                                                                                        It is, if you don’t need the features it does not have. If you do, it is a deal breaker. (No size fits all and all that)

                                                                                        I have no clue why you’d want to launch a window without a tab bar and URL bar.

                                                                                        And I have no clue why you’d want to launch more than one browser window with tab and URL bars. But, to illustrate: I have two screens, and on my secondary, I have Mastodon & Discord open, in a frame-less chrome window. Whatever link I click there, if it leads away from the domain, it opens in a new tab. I never leave the “app” itself. Why would I need a tab and an URL bar there? Those just make it too easy to navigate away. Not having them removes that problem, and also makes them look almost like a native app, which is great.

                                                                                        Small thing, yes, but so convenient that I’d rather patch Chrome to remove the login requirement than to figure out how to do the same with firefox. The former is considerably easier.

                                                                                        If you don’t need this feature, sure, use Firefox or whatever.

                                                                                        (Note: I’m not saying Chrome is better. It isn’t. I’m saying Firefox lacks useful features Chrome has, and as such, is not quite there for those of us who want those features. I’d love to switch way from Chrome, but haven’t found a browser that supports the extensions I use, and app windows. As soon as I find one, I’ll be jumping ship. I’m pretty sure it won’t be Firefox though.)

                                                                                        1. 2

                                                                                          FF actually had the “apps” feature before Chrome even was released.

                                                                                          Sadly it was killed off.

                                                                                          1. 1

                                                                                            Yeah, I remembered Firefox having it, and arrived at the same page, and was even more disappointed :/

                                                                                            Mind you, Prism isn’t the same - it’s separate from the main browser, chrome’s –app is not (and that’s the great thing about it; I can get the separate think with Firefox with a kiosk add-on, but that’s not what I’m aiming for).

                                                                                            1. 1

                                                                                              It actually felt very similar, I would go so far as to say most of the way Chrome’s –app was inspired by the Prism extension. It used the same core in a different XULrunner and could be created just like you do in Chrome from the menu. Created desktop icons, had unique window idents, the whole deal. It had to be a bit more separate because back then there wasn’t process isolation per tab in FF, and one of prisms major goals was to avoid crashing the main browser.

                                                                                          2. 0

                                                                                            In Firefox in full screen mode you can hide toolbars (includes URL bar and tab bar). I use this to watch full screen videos sometimes. You don’t have to have it actually covering your full screen either, if you use a proper window manager like dwm that can resize windows that ask to be fullscreen.

                                                                                            I really mean no offence when I say this, but your argument is bad. You can’t have everything you want. If you prioritise ‘app windows’ over security and privacy that’s your call, of course, but it’s a bad argument to claim that Firefox isn’t a satisfactory replacement for Chrome because it doesn’t have ‘app windows’. By that logic, Chrome is a wholly unsatisfactory replacement for Firefox, for the reason that it’s insecure crap that gives all my browsing data to Google…

                                                                                            1. 1

                                                                                              You just said they made a bad argument… then in literally the next sentence admitted that for their requirements it was a good argument… they DO prioritize ‘app windows’.

                                                                                              Their argument was simply that it isn’t a “perfectly acceptable replacement” within the requirements they laid forth of “having app window support”. This makes their argument well reasoned and coherent. If you want to attack one of their premises, you can do that – but that is another argument.

                                                                                              You then go on to attack the premise and claim their requirement is not an actual requirement, and can be replaced with some set of outside tooling. I don’t believe you proved your case on that front based on the short point you made about dwn. They referenced other features as well.

                                                                                              I personally have unsuccessfully tried to replace chrome apps a number of times with FF or even other browsers. I never got it working the way I wanted it – window identification issues mostly, and in a few cases webapps not playing well with being forcefully resized. So currently I use chrome only for these “apps” and I use FF as my primary browser.

                                                                                              As for Chrome not being a satisfactory replacement for FF for you – that also seems to be true. With your implied premise of being opposed to Google’s data collection practices, obviously Chrome is unacceptable for you. That argument is also coherent with those premises. I won’t say you have a “bad argument” because within the premises you implied, it is a good one. You value different things – neither argument is bad or wrong.

                                                                                              1. 1

                                                                                                In short: their argument was a response to a question asking why Firefox was not generally suitable as a replacement for Chrome. In that context it’s bad.

                                                                                                1. 0

                                                                                                  That doesn’t mean that Firefox isn’t a perfectly acceptable replacement for Chrome.

                                                                                                  Your high bar of “perfectly acceptable” was simply not met. It lacks features the poster needs. If you claim features don’t matter then what does exactly?

                                                                                                  1. 1

                                                                                                    In short: their argument was a response to a question asking why Firefox was not generally suitable as a replacement for Chrome. In that context it’s bad.

                                                                                              2. 1

                                                                                                But I don’t run those windows full screen - they’re clamped to a screen half, so fullscreen is not an option. Been there, tried it. I could change my WM, but that’s another workaround that doesn’t work, because then I’d have to switch to one that can resize fullscreen apps, and still do everything my current one does. No thanks. I’ll patch the login stuff out of Chrome instead.

                                                                                                And yes, Chrome is crap. But I can work around its most recent stupid far more easily than I can add app windows to Firefox. So Chrome is still a better browser for me, unfortunately.

                                                                                                Again, I’m not saying Firefox is not a satisfactory replacement for most people. I’m saying it is not suitable for me, that there are things in Chrome that Firefox does not have, yet, people depend on, and for those people, Firefox is not quite there yet.

                                                                                                1. 0

                                                                                                  But I don’t run those windows full screen - they’re clamped to a screen half, so fullscreen is not an option. Been there, tried it. I could change my WM, but that’s another workaround that doesn’t work, because then I’d have to switch to one that can resize fullscreen apps, and still do everything my current one does. No thanks. I’ll patch the login stuff out of Chrome instead.

                                                                                                  So in other words the problem is that you’re using a crap window manager. How is that Firefox’s fault? You choose to use a crap WM, that’s fine, but don’t go around threads about browsers crapping on Firefox just because you make poor choices elsewhere in your setup.

                                                                                                  You can’t patch anything out of Chrome. Doesn’t work like that. You can patch Chromium, but Chromium isn’t Chrome.

                                                                                                  And yes, Chrome is crap. But I can work around its most recent stupid far more easily than I can add app windows to Firefox. So Chrome is still a better browser for me, unfortunately.

                                                                                                  No, you cannot work around Chrome sending all your browsing data to Google. Chrome is built from the ground up to send your browsing data to Google. It’s untrusted proprietary software. You cannot work around that.

                                                                                                  Again, I’m not saying Firefox is not a satisfactory replacement for most people. I’m saying it is not suitable for me, that there are things in Chrome that Firefox does not have, yet, people depend on, and for those people, Firefox is not quite there yet.

                                                                                                  You were defending the comment that said ‘It’s all easy to tell people to switch from X to Y (browser, OS, antivirus, etc.) but you can’t just go preaching when the alternatives aren’t quite the same. Sure you have Firefox (or any other flavour) and while I’d love to fully switch, it isn’t quite there yet.’ I’m sorry, but that’s a broad statement about Firefox that suggests it’s missing important core browsing features. Not that it’s missing some tiny obscure feature you personally use but which most people have never heard of and wouldn’t want anyway.

                                                                                                  (and which you can emulate in Firefox if you use a decent window manager)

                                                                                                  1. 2

                                                                                                    So in other words the problem is that you’re using a crap window manager.

                                                                                                    No, my problem is that Firefox does not implement a feature I use. My window manager is fine, thank you very much. That fact that the only way to make an app emulate a feature I use is to work it around in WM, by ignoring a full screen request and doing something else is not a solution. That is a crude hack.

                                                                                                    You can’t just go around telling people “Go use a different browser and a different WM”. That’s about the same level of good advice as “Tired of systemd? Just go use OpenBSD!”. It doesn’t work like that.

                                                                                                    You can patch Chromium, but Chromium isn’t Chrome.

                                                                                                    Yeah, but I can patch it out from Chromium. Or disable with a flag. And still keep –app, and won’t have to switch to a whole new WM. If I used firefox, my task would be a whole lot harder.

                                                                                                    You were defending the comment that said ‘It’s all easy to tell people to switch from X to Y (browser, OS, antivirus, etc.) but you can’t just go preaching when the alternatives aren’t quite the same. Sure you have Firefox (or any other flavour) and while I’d love to fully switch, it isn’t quite there yet.’

                                                                                                    And I stand by my defense: you can’t tell people to change, when the alternatives lack important features. It just happens YOU don’t consider the same features important. I’ll give you an analogy:

                                                                                                    • I’m tired of systemd, for reason X.
                                                                                                    • Use OpenBSD.
                                                                                                    • But OpenBSD does not support my hardware.
                                                                                                    • It is your fault for making poor hardware choices, it is easy to run OpenBSD on proper hardware.

                                                                                                    That’s how you sound like now.

                                                                                                    1. 2

                                                                                                      No, my problem is that Firefox does not implement a feature I use. My window manager is fine, thank you very much. That fact that the only way to make an app emulate a feature I use is to work it around in WM, by ignoring a full screen request and doing something else is not a solution. That is a crude hack.

                                                                                                      It’s not a crude hack. It’s a normal expected feature of any window manager: to be able to resize windows.

                                                                                                      1. 1

                                                                                                        It’s not a crude hack. It’s a normal expected feature of any window manager: to be able to resize windows.

                                                                                                        Not fullscreen ones. Very few can resize those.

                                                                                                        1. 1

                                                                                                          Most window managers are bad, I guess. Most things are bad.

                                                                                          3. 1

                                                                                            How do you use this feature? It sounds interesting, but it’s never occurred to me. When you say ‘webapps’, do you mean browser extensions or things that would ordinarily be packaged as android/iOS apps? Or something else entirely?

                                                                                            1. 4

                                                                                              It is even simpler than you are thinking. Basically when you create a “app” out of a website what happens is you get a shortcut that does the following:

                                                                                              • opens a browser instance with no browser ui components, it is just the page loaded in a window.
                                                                                              • gives that window a custom id (so your window manager can tell it apart from other windows for rules and such)
                                                                                              • gives it a taskbar entry
                                                                                              • gives it an icon
                                                                                              • puts a link to it in your menu system if supported
                                                                                              • puts a link to it on your desktop if supported

                                                                                              I use a ton of them, right now I am running in “app” mode:

                                                                                              • IRCCloud
                                                                                              • WhatsApp Web
                                                                                              • Google Keep
                                                                                              • Google Music
                                                                                              • Fastmail Inbox
                                                                                              • Pocketcasts
                                                                                              • Todoist
                                                                                              • Trello
                                                                                              • Tweetdeck
                                                                                              • Dungeon Crawl Web Tiles
                                                                                              • Youtube.TV

                                                                                              I run these as “apps” because I have rules that put them on certain desktops or monitors, and I like them having their own taskbar entries.


                                                                                              I actually use Firefox as my main browser – and one of my annoyances with you these chrome “apps” is that if I click a link from like IRCCloud – it always opens in chrome because well – it is already IN chrome. I wish I could set them up to use the system default browser.

                                                                                              1. 2

                                                                                                The latter, things that would be packaged as android/ios/electron apps. I use slack, discord, mastodon like this, because I want them always-on, without accidentally navigating away, but links still opening in my main window (on another screen), and with my extensions available so I can tweak my experience, block trackers, and so on. Since I want these always on, and separate from my main browser, there is zero purpose for a tab or url bar on them. They feel much more like an app than a browser window would, yet, I have more control than if I ran a (non-free, usually) native app.

                                                                                                1. 1

                                                                                                  I segregate websites that are not good actors but that I still use (Facebook, LinkedIn, Instagram) using single-site browsers, via Fluid. Fluid uses a completely different local storage instance for every “app” you create, so you don’t have to worry about being tracked around. This allows me to ratchet up the level of privacy I ask for from my browser without worrying about breaking functionality on those web “apps” I use.

                                                                                                  As much as I despise it, this is also why I use the Electron versions of Spotify and Slack.

                                                                                              2. 1

                                                                                                I was going to say the memory footprint and its overall smoothness but I don’t have data to back that up, so it’s just a feeling.

                                                                                                I try to go back to FF out of principle but I guess there is something in Chrome which keeps winning me over.

                                                                                              3. 1

                                                                                                Of course Firefox is “there”; it’s been “there” for longer than Chrome’s even existed.

                                                                                                1. 1

                                                                                                  make better alternatives to cover the general use case and people WILL switch (because their “techy” friend installs it for them)

                                                                                                  This strategy has never worked.

                                                                                                1. 12

                                                                                                  This is a bit of a wild card, I am not experienced at all with haskell, but my impression is it may not be well suited to imperitive operations like read buffers from a stream and write buffers to a stateful database. I could be totally wrong or ignorant and would like to one day address my ignorance.

                                                                                                  These are things that I use Haskell for!! As Tackling the Awkward Squad says:

                                                                                                  In short, Haskell is the world’s finest imperative programming language.

                                                                                                  1. 3

                                                                                                    exactly the type of thing I love to read, thanks :)

                                                                                                    1. 1

                                                                                                      This PDF crashed my browser.

                                                                                                      1. 0

                                                                                                        Why was my comment about marking PDFs downvoted?

                                                                                                        1. 0

                                                                                                          The article is an HTML page. There is not a PDF in sight. Why do you want to mark a PDF?

                                                                                                          1. 1

                                                                                                            It’s quite obviously a PDF. I honestly don’t know what you’re talking about.

                                                                                                        2. -2

                                                                                                          Can you mark your PDF? Thanks.

                                                                                                        1. 10

                                                                                                          I feel bad that this even needs to be written. Truly a sign of “developers chasing trends off a cliff”.

                                                                                                          Can’t wait for the next round of these articles, “Why you should use SQL instead of Blockchain”.

                                                                                                          1. 6

                                                                                                            I feel bad that this even needs to be written. Truly a sign of “developers chasing trends off a cliff”.

                                                                                                            Maybe I’m mean, but I’m kinda happy to let people suffer the natural consequences of following hype over need and truly feel the pain of getting this wrong. Otherwise, how are they going to learn?

                                                                                                            1. 3

                                                                                                              Seeing examples of others following similar hype and enduring the pain. I try doing that where possible. It rarely works, though. Most developers seem to need first-hand experience a lot of the time.

                                                                                                            2. 1

                                                                                                              SQL is a good concept wrapped in horrible syntax, and, according to Date, it’s a botched version of a truly great concept anyway.

                                                                                                            1. 5

                                                                                                              “This is a complex technical field with nontrivial trade-offs in time and expressiveness! I know, let’s tie it to gender politics and Critical Theory! That’ll solve everything!” — The least likely sentence in the Universe.

                                                                                                              Next up is “Rust: Is Ownership a Reactionary Plot?”

                                                                                                              Edit: OK, this author tipped their hand a bit too much at the end:

                                                                                                              Let’s call a spade a spade.

                                                                                                              This is an outright racist dog-whistle, and isn’t even subtle. I can’t just play along anymore if that’s the level of humor on display. I’ll leave my jokes (such as they are) but I have to call that much out, at least.

                                                                                                              1. 3

                                                                                                                This is an outright racist dog-whistle, and isn’t even subtle.

                                                                                                                Isn’t it? I had no idea until (prompted by your comment) I googled around and found how it’d acquired those implications recently in America. It’s used in Australia without any such nuance, and presumably other countries too. I wouldn’t be quick to assert that it’s a dog whistle, especially not in an article that’s being criticised for leaning too hard in the social justice direction.

                                                                                                                1. 1

                                                                                                                  I wouldn’t be quick to assert that it’s a dog whistle, especially not in an article that’s being criticised for leaning too hard in the social justice direction.

                                                                                                                  That’s one thing which makes me conclude it’s meant in a racist fashion: The article does lean too hard in a social justice direction, as if it were written by someone trying to discredit that viewpoint by making it look ridiculous, or at least have some fun at its expense.

                                                                                                                  Any viewpoint has honest adherents who can make it look ridiculous all on their own, but the combination of factors here made me conclude it is, in fact, a racist dog-whistle.

                                                                                                                  1. 2

                                                                                                                    as if it were written by someone trying to discredit that viewpoint by making it look ridiculous, or at least have some fun at its expense

                                                                                                                    Mmn, now I see what you mean. :/

                                                                                                                2. 1

                                                                                                                  ‘Call a spade a spade’ is not a dog whistle and never has been a dog whistle. It’s a common phrase, used all over the world.

                                                                                                                  I’ve downvoted you for trolling, because there’s absolutely no way you are unaware that ‘call a spade a spade’ is a common term with no racist implications. You’re flamebaiting and trolling and should go to HackerNews where this kind of discussion belongs.

                                                                                                                  1. 1

                                                                                                                    ‘Call a spade a spade’ is not a dog whistle and never has been a dog whistle.

                                                                                                                    It’s become a dog whistle through usage of “spade” as a term for Black people, and is undeniably questionable at best, and, in the context of an over-the-top hyperbolic attempt to make Liberals look like lunatics, must be interpreted in that fashion.

                                                                                                                    1. -1

                                                                                                                      ‘Spade’ is not a term for black people, and is not ‘questionable’. Nobody is talking about ‘liberals’ either.

                                                                                                                      Stop assuming everyone shares your ridiculous American political ideas.

                                                                                                                      1. 2

                                                                                                                        ‘Spade’ is not a term for black people, and is not ‘questionable’.

                                                                                                                        I’ve just demonstrated otherwise.

                                                                                                                        Stop assuming everyone shares your ridiculous American political ideas.

                                                                                                                        And now you’ve tipped your hand, troll.

                                                                                                                        1. 1

                                                                                                                          Turns out that even within a single language, words can have meanings that change by period, context or location. Shocking, I know.

                                                                                                                  1. 3

                                                                                                                    https://juliareda.eu/2018/09/ep-endorses-upload-filters/

                                                                                                                    Hmm, I think this actually makes it mandatory for Wikipedia to install an upload filter.

                                                                                                                    1. 13

                                                                                                                      There is actually an exception for websites like Wikipedia in this version of the directive:

                                                                                                                      “online content sharing service provider’ means a provider of an information society service one of the main purposes of which is to store and give access to the public to copyright protected works or other protected subject-matter uploaded by its users, which the service optimises. Services acting in a non-commercial purpose capacity such as online encyclopaedia, and providers of online services where the content is uploaded with the authorisation of all rightholders concerned, such as educational or scientific repositories, should not be considered online content sharing service providers within the meaning of this Directive. Providers of cloud services for individual use which do not provide direct access to the public, open source software developing platforms, and online market places whose main activity is online retail of physical goods, should not be considered online content sharing service providers within the meaning of this Directive;

                                                                                                                      (Emphasis mine)

                                                                                                                      1. 4

                                                                                                                        Reda says Voss misrepresents the true scope of the upload filtering obligation and at no point does the definition exclude platforms that don’t make money off their users’ sharing of copyrighted content. She concedes that “completely non-commercial platforms” are excluded, but points out that experience has shown that even a call for donations or the use of an advertising banner can be considered commercial activity.

                                                                                                                        (Emphasis mine, https://thenextweb.com/eu/2018/06/19/the-eus-disastrous-copyright-reform-explained/)

                                                                                                                        Also, I am not sure that this is the exact wording that has passed. I am, to be honest, not well-versed in the EU legislative procedure.

                                                                                                                        1. 2

                                                                                                                          does an american organization have to care about exceptions in stupid european laws?

                                                                                                                          1. 16

                                                                                                                            does an american organization have to care about exceptions in stupid european laws?

                                                                                                                            They only do if they have enough presence in a European country willing to enforce those laws that they could be hurt in court.

                                                                                                                            If a company has no presence in any EU country, it can ignore those laws just like it ignores the laws against insulting the Thai king and laws against telling the truth about the Tienanmen Square Massacre.

                                                                                                                            1. 3

                                                                                                                              Untill some European countries order their ISP’s to block all traffic towards those companies.

                                                                                                                              This has already happened with major torrent sites like ThePirateBay,org, which serves up this page to everyone in The Netherlands with this ISP (and they are quite activistic about providing everyone unrestricted access to the entire internet). Take note that other European countries have ordered similar filters and take-downs onto their ISP’s and those are being actively being enforced.

                                                                                                                              1. 1

                                                                                                                                Untill some European countries order their ISP’s to block all traffic towards those companies.

                                                                                                                                Again, that only hurts the company in proportion to how much of their business was coming out of the EU to begin with.

                                                                                                                                It also isn’t forcing them to abide by the law of any EU member state, any more than West Germany was forced to abide by East German law when the Berlin Wall was up and East Germans were barred from going to West Germany.

                                                                                                                                1. 1

                                                                                                                                  Again, that only hurts the company in proportion to how much of their business was coming out of the EU to begin with.

                                                                                                                                  True, but since most major content-platforms in Europe are American companies, I doubt they’d get away with ignoring these laws. Nor do I think that they’d like to give up a market of about 510 Million people. Note that the United States is a market of only 325 Million people. So in terms of numbers, you have to care if you intend to grow beyond the United States, Canada and Mexico somewhere in the near future. You also have to keep in mind that Europe is a lot closer to the United states than you might think.

                                                                                                                                  It also isn’t forcing them to abide by the law of any EU member state, any more than West Germany was forced to abide by East German law when the Berlin Wall was up and East Germans were barred from going to West Germany.

                                                                                                                                  Actually, that isn’t true at all. West Germany still had West-Berlin and had to maintain supply lines to that part of Berlin through East-German (DDR) territory. Because of this, there were a bunch of DDR-laws they had to abide by, despite of being separate countries. A scenario like this, might also happen to US-companies as well.

                                                                                                                            2. 6

                                                                                                                              It’s going to be interesting for US firms that use e.g. the Dutch sandwich to avoid US taxes.

                                                                                                                        1. 15

                                                                                                                          Aside from the creepiness, this just doesn’t make much sense:

                                                                                                                          Microsoft wants to push Edge. Sure. It wants to do that to own the Web, to boost sales of Windows by locking out everyone else using ActiveX NT or whatever New Technology What Only Works On Windows. If it gets Edge adoption up to the numbers MSIE had fifteen years ago, it could make a go of that.

                                                                                                                          Except fifteen years ago, the iPhone didn’t exist, Android didn’t exist, and practically nobody even tried to surf the Web on the phones they did have. Microsoft has never had a credible modern smartphone, and the era of Web devs being able to ignore mobile devices went out with Nu Metal and jeans you could hide a watermelon in. Microsoft has to know this, so it knows it has, at most, one half of a Nefarious Plan.

                                                                                                                          This almost makes sense, and that troubles me.

                                                                                                                          1. 4

                                                                                                                            Uhm, you’re discounting how much traffic it will bring to their search engoene bing. AFAIU for search engines traffic is good money.

                                                                                                                            1. 1

                                                                                                                              Seems like there would be easier ways to get traffic to a search engine, not to mention ones which wouldn’t make users as angry.

                                                                                                                              1. 10

                                                                                                                                To get people to use Bing, Microsoft has to get people to use Edge. You can’t beat the convenience of typing your search terms right into the URL bar, and most people don’t bother changing the defaults (unless they’re prompted to).

                                                                                                                                And it’s not just search. Google has been using Chrome to push all of their other products, many of which compete with Microsoft’s. There are no saints here, except maybe Firefox, and look where that’s gotten them.

                                                                                                                                1. 6

                                                                                                                                  … a decent browser?

                                                                                                                                  1. 3

                                                                                                                                    I think @notriddle is talking about market share :P

                                                                                                                                    1. 1

                                                                                                                                      Ah, fair enough.

                                                                                                                          1. 3

                                                                                                                            what’s the date on this?

                                                                                                                            1. 3

                                                                                                                              looks like it’s from 1996

                                                                                                                              1. 2

                                                                                                                                what’s the date on this?

                                                                                                                                What, you don’t think the DEC Alpha is a modern, relevant architecture? /s

                                                                                                                                1. 1

                                                                                                                                  Funny enough, the folks at crash-safe.org built their first prototype as an Alpha. I was like, “Huh? Couldnt it be something that wasnt buried by Intel and Fujitsu?”

                                                                                                                                2. 1

                                                                                                                                  looks like 1996 or so, based on which ACM journal it was going to hit.

                                                                                                                                1. 5

                                                                                                                                  While functional programming languages like Haskell are conducive to modularity and otherwise generally good software engineering practices, they are unfit as implementation languages for what I will call interactive systems. These are systems that are heavily IO bound and must provide some sort of guarantee with regard to response time after certain inputs. I would argue that the vast majority of software engineering is the engineering of interactive systems, be it operating systems, GUI applications, control systems, high frequency trading, embedded applications, databases, or video games. Thus Haskell is unfit for these use cases. Haskell on the other hand is a fine implementation language for batch processing, i.e. non-interactive programs where completion time requirements aren’t strict and there isn’t much IO.

                                                                                                                                  It’s not a dig at Haskell, this is an intentional design decision. While languages like Python/Java remove the need to consider memory allocation, Haskell takes this one step further and removes the need to consider the sequential steps required to execute a program. These are design trade-offs, not strict wins.

                                                                                                                                  1. 5

                                                                                                                                    While languages like Python/Java remove the need to consider memory allocation, Haskell takes this one step further and removes the need to consider the sequential steps required to execute a program.

                                                                                                                                    Haskell makes it necessary to explicitly mark code which must be performed in sequence, which, really, is a friendlier way of doing things than what C effectively mandates: In C, you have to second-guess the optimizer to ensure your sequential code stays sequential, and doesn’t get reordered or removed entirely in the name of optimization. When the IO monad is in play, the Haskell compiler knows a lot of its usual tricks are off-limits, and behaves itself. It’s been explicitly told as much.

                                                                                                                                    Rust made ownership, previously a concept which got hand-waved away, explicit and language-level. Haskell does the same for “code which must not be optimized as aggressively”, which we really don’t have an accepted term for right now, even though we need one.

                                                                                                                                    1. 8

                                                                                                                                      The optimiser in a C implementation absolutely won’t change the order in which your statements execute unless you can’t observe the effect of such changes anyway. The definition of ‘observe’ is a little complex, but crucially ‘my program is faster’ isn’t an observation that counts. Your code will only be reordered or removed in the name of optimisation if such a change is unobservable. The only way you could observe an unobservable change is by doing things that have no defined behaviour. Undefined behaviour exists in Haskell and Rust too, in every language.

                                                                                                                                      So I don’t really see what this has to do with the concept being discussed. Haskell really isn’t a good language for expressing imperative logic. You wouldn’t want to write a lot of imperative logic in Haskell. It’s very nice that you can do so expressively when you need to, but it’s not Haskell’s strength at all. And it has nothing to do with optimisation.

                                                                                                                                      1. 3

                                                                                                                                        What if you do it using a DSL in Haskell like Galois does with Ivory? Looks like Haskell made their job easier in some ways.

                                                                                                                                        1. 1

                                                                                                                                          Still part of Haskell and thus still uses Haskell’s awful syntax. Nobody wants to write a <- local (ival 0). or b' <- deref b; store a b' or n `times` \i -> do when they could write int a = 0;, a = *b; or for (int i = 0; i < n; i++).

                                                                                                                                          1. 8

                                                                                                                                            “Nobody wants to”

                                                                                                                                            You’re projecting your wishes onto everybody else. There’s piles of Haskell code out there, many DSL’s, and some in production. Clearly, some people want to even if some or most of us don’t.

                                                                                                                                            1. 1

                                                                                                                                              There is not ‘piles of Haskell code out there’, at least not compared to any mainstream programming language. Don’t get confused by its popularity amongst people on lobsters, hackernews and proggit. It’s an experimental research language. It’s not a mainstream programming language. It has piles of code out there compared to Racket or Idris or Pony, but compared to Python or C or C++ or Ruby or Java or C# or god forbid Javascript? It might as well not exist at all.

                                                                                                                                              1. 2

                                                                                                                                                Im not confused. Almost all languages fail getting virtually no use past their authors. Next step up get a few handfuls of code. Haskell has had piles of it in comparison plus corporate backing and use in small scale. Then, there’s larger scale backings like Rust or Go. Then, there’s companies with big market share throwing massive investments into things like .NET or Java. There’s also FOSS languages that got lucky enough to get similarly high numbers.

                                                                                                                                                So, yeah, piles of code is an understatement given most efforts didnt go that far and a pile of paper with source might not cover the Haskell out there.

                                                                                                                                                1. 1

                                                                                                                                                  I don’t care how popular Haskell is compared to the vast majority of languages that are used only by their authors. That’s completely irrelevant to the discussion at hand.

                                                                                                                                                  Haskell is not a good language for expressing imperative concepts. That’s plainly and obviously true. Defending it on the basis that it’s widely used ignores that firstly languages aren’t better simply because they’re widely used, secondly that languages can be widely used without necessarily being good at expressing imperative concepts, and thirdly that Haskell isn’t widely used.

                                                                                                                                            2. 4

                                                                                                                                              int a = 0 is okay, but not great. a = *b is complete gobbledygook that doesn’t look like anything unless you already know C, but at least it’s not needlessly verbose.

                                                                                                                                              for (int i = 0; i < n; i++) is needlessly verbose and it looks like line noise to anyone who doesn’t already know C. It’s a very poor substitute for actual iteration support, whether it’s n.times |i| or for i in 0..n or something else to express your intent directly. It’s kind of ridiculous that C has special syntax for “increment variable by one and evaluate to the previous value”, but doesn’t have special syntax for “iterate from 0 to N”.

                                                                                                                                              All of that is kind of a minor nit pick. The real point is that C’s syntax is not objectively good.

                                                                                                                                              1. 2

                                                                                                                                                How in the world are people unfamiliar with ruby expected to intuit that n.times|i| means replace i with iterative values up to n and not multiply n times i?

                                                                                                                                                1. 2

                                                                                                                                                  A more explicit translation would be 0.upto(n) do |i|.

                                                                                                                                                2. 0

                                                                                                                                                  You do know C. I know C. Lots of people know C. C is well known, and its syntax is good for what it’s for. a = *b is not ‘gobbledygook’, it’s a terse way of expressing assignment and a terse way of expressing dereferencing. Both are very common in C, so they have short syntax. Incrementing a variable is common, so it has short syntax.

                                                                                                                                                  That’s not ridiculous. What I am saying is that Haskell is monstrously verbose when you want to express simple imperative concepts that require a single character of syntax in a language actually designed around those concepts, so you should use C instead of Haskell’s weird, overly verbose and syntactically poor emulation of C.

                                                                                                                                          2. 3

                                                                                                                                            How does Haskell allow you to explicit mark code that must be performed in sequence? Are you referring to seq? If you’re referring to the IO Monad, it’s a fair point, but I think generally it’s considered bad practice to default to using the IO monad. This sort of thing creates a burden when programming Haskell, at least for me. I don’t want to have to constantly wonder if I’ll need to port my elegant functional code into sequential IO Monad form in the future. C++/Rust address this sort of decision paralysis via “zero-cost abstractions,” which make them both more fit to be implementations languages, according to my line of reasoning above.

                                                                                                                                            1. 5

                                                                                                                                              Personally, I dislike discussions involving “the IO Monad”. The key point is that Haskell uses data flow for control flow (i.e. it’s lazy). We can sequence one thing after another by adding a data dependency (e.g. making bar depend on the result of foo will ensure that it runs afterwards).

                                                                                                                                              Since Haskell is pure, compilers can understand and optimise expressions more thoroughly, which might remove ‘spurious’ data dependencies (and therefore sequencing). If we want to prevent that, we can use an abstract datatype, which is opaque to the compiler and hence can’t be altered by optimisations. There’s a built-in datatype called IO which works well for this (note: none of this depends at all on monads).

                                                                                                                                              1. 3

                                                                                                                                                The trouble is that oftentimes when you’re building time-sensitive software (which is almost always), it’s really inconvenient if the point at which a function is evaluated is not clear from the source code. Since values are lazy, it’s not uncommon to quickly build up an entire tree of lazy values, and then spend 1-2 seconds waiting for the evaluation to complete right before the value is printed out or displayed on the screen.

                                                                                                                                                You could argue that it’s a matter of setting correct expectations, and you’d be right, but I think it defeats the spirit of the language to have to carefully annotate how values should be evaluated. Functional programming should be about functions and pure computation, and there is no implicit notion of time in function evaluation.

                                                                                                                                                1. 4

                                                                                                                                                  I agree that Haskell seems unsuitable for what is generally called “systems programming” (I’m currently debugging some Haskell code that’s been over-complicated in order to become streaming). Although it can support DSLs to generate suitable code (I’ve not experience with that though).

                                                                                                                                                  I was just commenting on using phrases like “the IO Monad” w.r.t. evaluation order, etc. which is a common source of confusion and hand-waving for those new to Haskell, or reading about it in passing (since it seems like (a) there might be something special about IO and (b) that this might have something to do with Monads, neither of which are the case).

                                                                                                                                                  1. 2

                                                                                                                                                    building time-sensitive software (which is almost always)

                                                                                                                                                    Much mission-critical software is running in GC’d languages whose non-determinism can kick in at any point. There’s also companies using Haskell in production apps that can’t be slow. At least one was using it specifically due to its concurrency mechanisms. So, I don’t think your “almost always” argument holds. The slower, less-predictable languages have way too much deployment for that at this point.

                                                                                                                                                    Even time-sensitive doesn’t mean what it seems to mean outside real-time since users and customers often tolerate occasional delays or downtime. Those they don’t might also be fixed with some optimization of those modules. Letting things be a bit broken fixing them later is default in mainstream software. So, it’s not a surprise it happens in lots of deployments that supposedly are time-critical as a necessity.

                                                                                                                                                    In short, I don’t think the upper bounds you’ve established on usefulness match what most industry and FOSS are doing with software in general or timing-sensitive (but not real-time).

                                                                                                                                                    1. 2

                                                                                                                                                      Yeah it’s a good point. There certainly are people building acceptably responsive apps with Haskell. It can be done (just like people are running go deployments successfully). I was mostly speaking from personal experience on various Haskell projects across the gamut of applications. Depends on cost / benefit I suppose. For some, the state of the art type system might be worth the extra cycles dealing the the occasional latency surprise.

                                                                                                                                                      1. 2

                                                                                                                                                        The finance people liked it because it was both closer to their problem statements (math-heavy), the apps had lower defects/surprises vs Java/.NET/C, and safer concurrency. That’s what I recall from a case study.

                                                                                                                                                2. 1

                                                                                                                                                  If you’re referring to the IO Monad, it’s a fair point, but I think generally it’s considered bad practice to default to using the IO monad

                                                                                                                                                  Lmao what? You can define >>= for any data type effectively allowing you to create a DSL in which you can very precisely specify how the elements of the sequence combine with neat do notation.

                                                                                                                                                  1. 2

                                                                                                                                                    Yes that’s exactly the problem to which I’m referring: Do notation considered harmful. Also do notation isn’t enough to specify evaluation sequencing since values are lazy. You must also carefully use seq

                                                                                                                                                    1. 1

                                                                                                                                                      Ah well I use a Haskell-like language that has strict-by-default evaluation and seems to be able to address a lot of those other concerns at least by my cursory glance:)

                                                                                                                                                      Either way the benefits of do, in separating the logic and execution of procedures, look great to me. But I may be confusing them with the benefits of dependent typing, nevertheless the former facilitates the latter when it comes to being able to express various constraints on a stateful system.

                                                                                                                                              2. 3

                                                                                                                                                For systems Haskell, you might like Habit from the people behind House, a Haskell OS. I just found some answers to timing part that I’ll submit in morning.

                                                                                                                                                1. 1

                                                                                                                                                  The House website seems incredibly out of date!

                                                                                                                                                  1. 3

                                                                                                                                                    Oh yeah. It’s mostly historical. They dropped the work for next project. Then dropped that for even better one. We get some papers and demos out of it.

                                                                                                                                                    1. 2

                                                                                                                                                      But so damn cool.

                                                                                                                                                      1. 2

                                                                                                                                                        Exactly! Even more so, there’s a lot of discussion of how to balance the low-level access against Haskell’s high-level features. They did this using the H Layer they describe in some of their papers. It’s basically like unsafe in Rust where they do the lowest-level stuff in one way, wrap it where it can be called by higher-level Haskell, and then do what they can of the rest in Haskell. I figured the concepts in H Layer might be reusable in other projects, esp safe and low-level. The concepts in Habit might be reusable in other Haskell or non-Haskell projects.

                                                                                                                                                        It being old doesn’t change that. Good example is how linear logic was in the 1980’s, That got used in ML first I think years later, then them plus singleton types in some safer C’s in the 2000’s, and an affine variant of one of them in Rust. They make a huge splash with “no GC” claim. Now, linear and affine types are being adapted to many languages. The logic is twenty years old with people talking about using it for language safety for 10-20 years. Then, someone finds it useful in a modern project with major results.

                                                                                                                                                        Lots of things work that way. It’s why I submit older, detailed works even if they have broken or no code.

                                                                                                                                                  2. 1

                                                                                                                                                    none of the examples of “interactive systems” you mention are nomally io bound. sub-second response time guarantees, otoh, are only possible by giving up gc, and use a real-time kernel. your conclusion that Haskell is unusable for “these use cases” seems entirely unfounded. of course, using Haskell for real time programming is a bad idea, but no less bad than anything that’s, essentially, not C.

                                                                                                                                                    1. 2

                                                                                                                                                      I’ve had a few personal experiences writing large Haskell applications where it was more trouble than I thought it was worth. I regularly had to deal with memory leaks due to laziness and 1-5 second stalls at io points where large trees of lazy values were evaluated last minute. I said this in another thread: it can be done, it just requires a bit more effort and awareness. In any case, I think it violates the spirit of Haskell programming to have to carefully consider latency issues, GC times, or lazy value evaluation when crafting pure algorithms. Having to trade off abstraction for performance is wasteful IMO, i think Rust and C++ nail this with their “zero cost abstractions.”

                                                                                                                                                      I would label most of those systems IO bound. My word processor is normally waiting on IO, so is my kernel, so is my web app, so is my database, so is my raspberry pi etc.

                                                                                                                                                      1. 1

                                                                                                                                                        I guess I’m picking nits here, but using lots of working memory is not “memory leaks”, and a program that is idling due to having no work to perform is not “io bound”. Having “to carefully consider latency issues, GC times, [other tradeoffs]” is something you have to do in every language. I’d venture that the ability to do so on a subconcious level is what distinguishes a skilled developer from a noob. This also, I think, plays a large part in why it’s hard for innovative/weird languages to find adoption; they throw off your sense of how things should be done.

                                                                                                                                                        1. 1

                                                                                                                                                          Yes you have to consider those things in all languages which is precisely my point. Haskell seeks to abstract away those details but if you want to use Haskell in any sort of “time-sensitive” way, you have to litter your pure, lazy functional code with annotations. That defeats the purpose of the language being pure and lazy.

                                                                                                                                                          And yes, waiting on user input does make your program IO bound. If your program is spending more time waiting on IO and less time churning the CPU, it is IO bound. IO bound doesn’t simply mean churning the disk.

                                                                                                                                                        2. 1

                                                                                                                                                          I brought that up before as a counterpoint to using Haskell. A Haskeller gave me this link which is a setting for making it strict by default. Might have helped you out. As a non-Haskeller, I can’t say if it makes the language harder to use or negates its benefits. Worth looking into, though, since it was specifically designed to address things like bang patterns that were cluttering code.

                                                                                                                                                    1. 9

                                                                                                                                                      This isn’t a real debate.

                                                                                                                                                      Louder, for those in the back: This is not a real debate.

                                                                                                                                                      This is trolling. This is the equivalent of pretending to be unable to see a difference between gay sex and bestiality, or gay sex and pedophilia.

                                                                                                                                                      This is done by someone trying to make the other side look bad.

                                                                                                                                                      The only way to respond to this is by ignoring the people trying to do it.

                                                                                                                                                      Anything else legitimizes it.

                                                                                                                                                      1. 10

                                                                                                                                                        What is ‘this’: the arguments antirez is making or the arguments ‘Mark’ is making? Who of the two is trolling according to you?

                                                                                                                                                        I think the fact that this is honestly unclear to me suggests it isn’t obviously trolling and it isn’t obviously a non-debate.

                                                                                                                                                        1. 1

                                                                                                                                                          What is ‘this’: the arguments antirez is making or the arguments ‘Mark’ is making? Who of the two is trolling according to you?

                                                                                                                                                          Mark, the one making an issue out of ‘master/slave’ as if it had any relevance to human slavery.

                                                                                                                                                          Mark is the one making an argument which causes reasonable people to laugh.

                                                                                                                                                          1. 1

                                                                                                                                                            Well, to first set up some of my assumptions: after first learning that mentioning rape can cause rape survivors to experience memories related to their rape, we quickly understand how this can be the case. Words also trigger memories for us, sometimes of sad or traumatic experiences, so we can relate. We hadn’t ever realized that before though and we don’t want to be (seen as) people that hurt others by just using words, so we may react defensively and try to deny this. However, after some time most people will acknowledge how it may be helpful to avoid certain topics, though that is hard to do in general, is a lot of work (maybe more than we are prepared to expend) and some ways of doing so seem to have negative side effects that need to be taken into account.

                                                                                                                                                            So given that, is it reasonable for someone to trigger on the word ‘slave’, because it reminds them of the slavery their ancestors experienced? I find that a very difficult question, because I can’t directly relate to it. There are simply no words that will trigger memories of something sad or traumatic based on something in my past or that of my ancestors.

                                                                                                                                                            However, I know that some people whose parents consciously suffered during WWII or whose parents were strongly influenced by their grandparents’ suffering during WWII, tend to react negatively to things reminding them of WWII. The trauma of their parents, sometimes only via their grandparents’ experiences, seem to have affected them to the point where WWII is a mild trigger.

                                                                                                                                                            I can imagine this is more often the case for jews where it concerns the holocaust or the black community where it concerns slavery.

                                                                                                                                                            So no, it is not an argument that makes me laugh and that I think I can dismiss out of hand. Even though my gut reaction is definitely to do so, as it would make my life simpler. The extreme consequence is having to watch my words all the time because a few people could be triggered by them and having to conform to their wishes as a result and I don’t think that is acceptable. But that doesn’t mean I need to fall back to the other extreme and deny the argument outright. There are middle ways.

                                                                                                                                                            For instance, I can fully acknowledge that Mark feels this way, while simultaneously acknowledging that Mark is a single person, that there is an opportunity cost to assuaging those feelings and I feel that the trade off, the best way to spend my time, is not to make the requested change, but to spend my time differently.

                                                                                                                                                            Bugs and missing features have costs in the world; costs that may ultimately cause grief. If the Red Cross uses Redis and could be 0.0001% more effective because of a feature antirez could build in the time it takes to make Mark’s change, how much grief does that prevent? Who is to judge that the aggregate of all the ripple effects of any choice here are in favor of making Mark’s change or antirez spending his time differently?

                                                                                                                                                            So ultimately, I think antirez’s decision not to make the requested change and Mark’s request to make the change are both reasonable. Though I find the arguments on both sides of the debate severely lacking.

                                                                                                                                                        2. 2

                                                                                                                                                          I disagree. If (and only if) ready-to-be-merged quality PR was submitted for the change, I would consider (not accept) it.

                                                                                                                                                        1. 3

                                                                                                                                                          This is interesting. But between HTTPs and being lynx friendly, I’d choose the former.

                                                                                                                                                          1. 3

                                                                                                                                                            I’m not sure where you got the idea lynx doesn’t support https, but it does.

                                                                                                                                                            There are a few text based browsers that support more modern features as well. Elinks for example has mouse support and tabs. Links2 also supports graphics, even in framebuffer mode. So technically your OS is text only, you can still browse in graphics mode.

                                                                                                                                                            1. 2

                                                                                                                                                              Do you know why this viewpoint is so common? SSL works fine on my machine™, but I hear this complaint a lot from people. Earlier comment source

                                                                                                                                                              1. 2

                                                                                                                                                                That might be an explanation. I never had any issue with it TBH, and I’m one of those people who have a/multiple text based browsers installed on my machine by default and regularly try out another distro. It sounds it’s just a packaging issue on some versions.

                                                                                                                                                            2. 2

                                                                                                                                                              Glad you liked my article!

                                                                                                                                                              I don’t use Lynx more than a few times a month (this was a thought experiment, mostly). My understanding of the SSL issues in Lynx is that it is related to how the distros configure OpenSSL. I never bothered looking deeper into the matter, but have heard from users on HN that it is possible, it’s just not the default on most [Debian based?] systems.

                                                                                                                                                              If someone out there does use Lynx on a regular basis, would love to hear about a solution.

                                                                                                                                                              1. 0

                                                                                                                                                                Apologies, I meant: your website is Lynx friendly, but it’s not using HTTPs. Being lynx friendly is value-added, but using HTTPs is a must.

                                                                                                                                                              2. 1

                                                                                                                                                                Holy False Dilemma, Batman!

                                                                                                                                                                lynx supports HTTPS just fine. Always has, for values of “always” including “longer than most here have been programming”. There’s nothing about HTTPS which excludes lynx or any other text browser.