1. 4

    We should separate criticism of tools based on legitimate concerns from criticism of tools based on tribal or class issues. Plenty of tools can be used well but largely aren’t because most of their devotees are beginners (see: Java, C, C++, Python). Other tools are fundamentally flawed, and while using them well is not impossible, it is a trick that takes a great deal of experience and is beyond the scope of nearly all of its audience (see: PHP, Perl, Javascript).

    This is a really important point. The idea that expressing contempt for specific programming tools should be forbidden because the use of those tools is associated with an underrepresented group about whom criticism is forbidden doesn’t make the problems with those tools go away - but it does strengthen the association of those bad tools with the underrepresented group.

    I consider this really to be an issue of beginners graduating to higher levels of understanding (and systematic pressure making it harder for certain groups to graduate out of the beginner classification), and one way to help this is to be extremely clear in your criticisms about the nature of the problems you criticize — in other words, rather than saying “PHP users are dumb”, say “PHP is a deeply flawed language, and PHP users should be extremely careful when using these particular patterns”.

    This is always good advice. Criticize the actual problem as precisely as you can.

    Another way is to make it clear that using a single language is not acceptable in a professional context: any serious developer has a large toolbox already, and if beginners understood that language preference is not a reasonable basis for long-term tribal divisions because any professional belongs to multiple tribes, the toxic identity-based hostility between programming language communities would mostly go away, allowing concrete and issue-based critiques to become more visible.

    Absolutely, 100% agree. Languages should be tools, not foci for tribal identities. Every programmer should be expected to be familiar with multiple programming languages, even absolute beginners.

    1. 9

      This article is a good argument against treating a lack of gender diversity in video games as a problem to be solved. Men and women are systematically interested in different types of video game experiences, and game creators who cater to one type of experience or the other will naturally have a gender imbalance in the sorts of players who want to play that type of game.

      1. 11

        It’s a sign of bizarre times that this isn’t obvious. Boys and girls have always preferred playing with different toys since the dawn of time.

        1. 17

          There’s nothing obvious about it, and re-examining unfounded claims is not bizarre. We know that, historically, plenty of claims made were just plain wrong (consider the anabolic-catabolic “theory”).

          Boys and girls had very different /roles/ since the dawn of time for obvious reasons. If you tried, as a girl, to play with the “wrong” toys you could see quite a bit of resistance.

          1. 16

            I’m not saying this is wrong (I haven’t done any research so I don’t know) but it seems very likely that kids are pushed to play with specific toys by society. We label toys as boys or girls, we market toys as being played with by either boys or girls and we give kids toys that we associate with their gender.

            I saw a video this year where young babies were placed in a room full of a range of toys. Each time the baby was dressed in either pink or blue and given a female or male name regardless of their actual gender and a babysitter was in the room as well to help them play with the toys. Each time the babysitter would tend to help the baby play with toys stereotypical for their perceived gender. After the babysitter was asked which toys they thought the baby liked and they would say the baby seemed to prefer the toys of the perceived gender regardless of what the babys actual gender was.

            Now that’s not really a scientific study but it does seem to suggest that things are not as “obvious” as they seem. It’s a little hard to test because really you would have to raise a kid in an alternative society to see what differences it makes.

            1. 2

              There’s also evidence that toy choice is gendered along the same lines that we in our culture are familiar with among chimpanzees, suggesting that toy choice has something to do with biological mechanisms of gendering bodies that are older than the human-chimpanzee split.

              Anyway, this entire article is already presupposing that gendered differences in toys (well, video game tastes, but is a video game not just a more sophisticated toy?) exist and are important. As per the title, what men and women consider hardcore gaming are not the same.

              1. 2

                Could as well be the kids wanted to be nice to the babysitter who helped them play. The type of play also needs to be accounted for. There are studies as well which show that very young kids tend to gravitate to certain types of play.

                Of course there’s going to be some overlap and gray areas, but what’s the harm in acknowledging the idea that maybe play and preferences have something to do with biology?

                1. 10

                  but what’s the harm in acknowledging the idea that maybe play and preferences have something to do with biology?

                  There is no harm in thinking maybe it might be true and maybe it might not. There is harm in things like OPs comment stating “It’s a sign of bizarre times that this isn’t obvious.” When it’s extremely complex and not obvious at all.

                  1. 7

                    There is no harm with acknowledging that they “have something to do with biology”, the difference is how much weight is put on it, and the problems are caused when that is used as an excuse for things like exclusion, whether that’s subtle coercion of “oh I wouldn’t bother with that, because it’s been shown that people like me are bad at that sort of thing”, to the deep personal exclusion of “I will never be able to do X in a good way because of my biology, so I should not try”.

                    Equally, what is the harm in acknowledging the idea that maybe play and preferences have something to do with culture?

                    1. 1

                      I don’t know where coercion or exclusion came from here.

                      And surely society has some effect, but reading something like The Blank Slate makes me think it’a not such a huge factor.

                      Next someone will probably point out Pinker is a white supremacist or something and I’m done with this already.

                      1. 3

                        I don’t know where coercion or exclusion came from here.

                        Do societal consequences not matter, just because they’re societal?

                        reading something like The Blank Slate makes me think it’a not such a huge factor.

                        The Blank Slate, last I checked, ignores a lot of hard evidence done in the social sciences in favour of bashing Pinker’s strawman of the subjects. In addition, I’m not sure how someone can place a single reasonably cited book as a justification for ignoring 70 years of hard evidence. Especially when such a book’s argument is strongly contested.

                        Next someone will probably point out Pinker is a white supremacist or something and I’m done with this already.

                        Does someone’s political views not have any bearing on their research? Surely years of study have found bias in study construction extremely easy. I take the attitude that it must be so, for politics is how we view and frame all manner of parts of the world. Whether or not someone is a racist matters deeply as to the purpose behind the arguments that they make, and the ways that they approach certain details. Likewise if I am a monarchist you would surely wish to know that when arguing about matters of state, since my arguments might be led by conscious or unconscious motivations.

                        1. 1

                          I don’t think Pinker has a political horse in the race, but I do understand he can be misunderstood to have one even if he didn’t. So as far as anyone should care, the discussion could be limited to the science.

                          I’m just not particularly interested anymore, because something like infant behavior, sex vs gender, toy preference, biology, anthropology, primatology and who knows what “always” gets conflated with coercion and exclusion.

                          It’s essentially impossible to discuss matters online, text-based, time-delayed and without real interaction. More so when it starts to feel like something someone wants to win. The easiest win is to claim the other party doesn’t care about something not immediately related yet important and he’s therefore a bad person by implication.

                          That’s why I’m done.

                          Sometimes a cigar is just a cigar and men and women choose different toys, ways to play, subjects to study and careers to follow.

                    2. 6

                      Yes as a hypothetical, and in a context where social coercion doesn’t exist your statement would be totally fine and good. Saying it with certainty, even though it runs contrary to the scientific consensus lacks epistemological responsibility. It’s fine to say I’m not sure I agree with the scientific consensus, however it’s irresponsible to say that the scientific consensus is certainly wrong without any evidence. Once you add in the fact that some people will try to use such claims as a way to pressure a demographic out of an activity, then you have the risk of real harm. I’m not saying you’re the kind of person who would do that but it’s important to be aware that people will try to use your message there to exclude others who are wholly capable.

                    3. 0

                      I mean there’s no reason to believe that there’s real sexual dimorphism in the toys children choose to play with. I’ve seen boys play with dolls and girls play with trucks. Gender is a construct, that’s the scientific consensus and those saying otherwise value tradition over evidence.

                      1. 3

                        There are also a lot of arbitrary gendered items that change over time or across cultures. For example skirts of some form have been either male or female clothing depending on the culture/location. Also pants have been male clothing but are now neutral.

                        There are no doubt very real differences between genders. The obvious one being physical strength/body shapes but I am willing to bet that a majority of the differences between genders today are formed by tradition and not biology.

                        1. 2

                          The differences in gender as you said are formed by tradition. When you talk about physical strength and body shapes however that’s sexual dimorphism, unless you are referring to the cultural mores that pressure men to bulk up and pressure women not to. Sex informally speaking is the bits between your legs, sexual dimorphism is the physiological difference that often (but not always) come along with that like testosterone or estrogen production, gender is the cultural construct we have around sex. You can have sexes without having gender, which I’m sure has existed and you can have many genders within a single sex if you’re like creating a sci-fi culture.

                          You weren’t wrong in any way I just thought it would be useful to be clear.

                  2. 4

                    The reason there’s a push to solve it is the profit motive.Given that roughly 50% of women play games if you could create an experience that tailors to both cultures you could make a lot more money than if you didn’t.

                    Though I personally also enjoy playing games with people with different backgrounds. Sometimes a different cultural outlook also can have refreshing outside of the box ideas. It looks like for example that according to this survey while women value competition and challenge, they also value looking good while doing it, and going all the way to completion. That would mean if you want to hook women, make sure to add robust customization options or ways to build or design things. I think the completion aspect is already in most games, cheevos. Notice that they don’t disvalue destruction, but they find it less interesting than a well written story.

                    1. 2

                      Indeed, it is like complaining chick flicks get chick viewers, which is absurd.

                      1. 7

                        I haven’t heard that particular complaint, but one I hear often is that it’s quite absurd to have a genre lineup that resembles something like “action,” “comedy,” “drama,” and “not for men,” as if “not for men” were its own genre (it’s obviously not literally called that, but you provided your own example above). Deciding to use a “not for men” genre immediately creates its counterpart, “for men,” which is every other genre.

                        You logically have two choices here:

                        1. Accept the dichotomy and make explicit the implicit labels: “action for men,” “comedy for men,” “drama for men,” and “not for men.” You’ll have to train your brain to see this everywhere, as the implicit labels are extremely implicit. Along with appeal to the targeted demographic comes license to exclude the other – after all, if your genre is “not for men” then you don’t care if your movie makes men uncomfortable (this is different than making it desirable for not-men). If your genre is “action for men,” you don’t care if your movie makes women feel uncomfortable. It’s not for them.
                        2. Reject the dichotomy, and distribute the “not for men” qualities into the core genres – “action for men” just becomes “action”. Along with this comes the lack of license to exclude. This has made some movie watchers/videogame players mad – even though there is still plenty of content around (and more being made every day), the consumers of the previously “for men” genres see this as dilution and loss. Some of the things they liked excluded people, and instead of trying to untangle the good from the bad (or learn to coexist with new expressions of things they liked before) they’ve decided to double down and defend everything.

                        Whichever decision you make will impact how you see the modern media landscape.

                    1. 3

                      I would love to have a feedback post, three years later. I don’t really know the status of Neovim right now

                      1. 12

                        All of the points made in the post mentioned are still true.

                        Neovim is still developed actively and the community is stronger than ever. You can see the latest releases with notes here: https://github.com/neovim/neovim/releases

                        Vim’s BDFL ultimately caved and released his own async feature that is incompatible with Neovim’s design that has been in use by various cross-compatible plugins for years (no actual reason was provided for choosing incompatibility despite much pleading from community members). Some terminal support has also been added to recent Vim. IMO both implementations are inferior to Neovim’s, but that doesn’t matter much for end-users.

                        There are still many additional features in Neovim that haven’t been begrudgingly ported to Vim.

                        At this point, I choose to use Neovim not because of the better codebase and modern features and saner defaults, but because of the difference in how the projects are maintained and directed.

                        1. 20

                          Vim’s BDFL ultimately caved and released his own async feature

                          No, he didn’t. He didn’t cave. He was working on async, for a long time, with the goal of producing an async feature that actually fit in with the rest of Vim’s API and the rest of VimL, which he did. Did he probably work on it more and more quickly due to NeoVim? Sure. Did he only work on it because of pressure as you imply? No.

                          that is incompatible with Neovim’s design that has been in use by various cross-compatible plugins for years (no actual reason was provided for choosing incompatibility despite much pleading from community members).

                          NeoVim is incompatible with vim, not the other way around.

                          Some terminal support has also been added to recent Vim. IMO both implementations are inferior to Neovim’s, but that doesn’t matter much for end-users.

                          Async in vim fits in with the rest of vim much better than NeoVim’s async API would have fit in with vim.

                          There are still many additional features in Neovim that haven’t been begrudgingly ported to Vim.

                          The whole point of NeoVim is to remove features that they don’t personally use because they don’t think they’re important. There are a lot of Vim features not in NeoVim.

                          At this point, I choose to use Neovim not because of the better codebase and modern features and saner defaults, but because of the difference in how the projects are maintained and directed.

                          Vim is stable, reliable and backwards-compatible. I don’t fear that in the next release, a niche feature I use will be removed because ‘who uses that feature lolz?’, like I would with neovim.

                          1. 10

                            No, he didn’t. He didn’t cave. He was working on async, for a long time, with the goal of producing an async feature that actually fit in with the rest of Vim’s API and the rest of VimL, which he did.

                            Where did you get this narrative from? The original post provides links to the discussions of Thiago’s and Geoff’s respective attempts at this. I don’t see what you described at all.

                            Can you link to any discussion about Bram working on async for a long time before?

                            NeoVim is incompatible with vim, not the other way around.

                            Huh? Vim didn’t have this feature at all, a bunch of plugins adopted Neovim’s design, Vim broke compatibility with those plugins by releasing an incompatible implementation of the same thing, forcing plugin maintainers to build separate compatibility pipelines for Vim. Some examples of this is fatih’s vim-go (some related tweets: https://twitter.com/fatih/status/793414447113048064) and Shougo’s plugins.

                            I get the whole “Vim was here first!” thing this is about the plugin ecosystem.

                            Async in vim fits in with the rest of vim much better than NeoVim’s async API would have fit in with vim.

                            How’s that?

                            Here is the discussion of the patch to add vim async from Bram, where he is rudely dismissive of Thiago’s plea for a compatible design (no technical reasons given): https://groups.google.com/forum/#!topic/vim_dev/_SbMTGshzVc/discussion

                            The whole point of NeoVim is to remove features that they don’t personally use because they don’t think they’re important. There are a lot of Vim features not in NeoVim.

                            What are some examples of important features or features you care about that have been removed from Neovim?

                            The whole point of Neovim (according to the landing page itself: https://neovim.io/) is to migrate to modern tooling and features. The goal is to remain backwards-compatible with original vim.

                            Vim is stable, reliable and backwards-compatible. I don’t fear that in the next release, a niche feature I use will be removed because ‘who uses that feature lolz?’, like I would with neovim.

                            Do you actually believe this or are you being sarcastic to make a point? I honestly can’t relate to this.

                            1. 3

                              The vim vs. neovim debate is often framed a bit in the style of Bram vs. Thiago, and the accusation against Thiago is typically that he was too impatient or should not have forked vim in the first place when Bram did not merge Thiago’s patches. I have the feeling that your argumentation falls into similar lines and I don’lt like to view this exclusively as Bram vs. Thiago, because I both value Bram’s and Thiago’s contributions to the open source domain, and I think so far vim has ultimatetively profitted from the forking.

                              I think there are two essential freedoms in open source,

                              • the freedom of an open source maintainer not to accept / merge contribution,
                              • in the very essence of open source, that users have the right to fork, when they feel that the maintainers are not accepting their contributions (preferably they try to make a contribution to the source project first).

                              Both of this happend when neovim was forked. There is no “offender” in any way. Thus, all questions on API compatibility following the split cannot be lead from the perspective of a renegade fork (nvim) and an authorative true editor (vim).

                              1. 8

                                It was absolutely 100% justified of Thiago to fork vim when Bram wouldn’t merge his patches. What’s the point of open source software if you can’t do this?

                                1. 3

                                  And as a follow up my more subjective view:

                                  I personally use neovim on my development machines, and vim on most of the servers I ssh into. The discrepancy for the casual usage is minimal, on my development machines I feel that neovim is a mature and very usable product that I can trust. For some reason, vim’s time-tested code-base with pre-ANSI style C headers and no unit tests is one I don’t put as much faith in, when it comes to introducing changes.

                              2. 4

                                @shazow’s reasoning and this post are what I link people to in https://jacky.wtf/weblog/moving-to-neovim/. Like for a solid release pipeline and actual digestible explanations as to what’s happening with the project, NeoVim trumps Vim every time.

                            1. 4

                              This is exactly the sort of situation that status code 451 is for.

                              1. 7

                                One thing that is clear to me: the author hasn’t actually written much (or perhaps any) Rust. This is clear to me because I think one of the traps that the merely Rust-curious fall into is a disproportional fear and loathing of the borrow checker. This is disproportional because it ignores many of the delightful aspects of Rust – for example, that algebraic types in a non-GC’d language represent a revolution in error handling. (I also happen to love the macro system, Cargo, the built-in testing framework, and a bunch of other smaller things.) Yes, the lack of things like non-lexical lifetimes can make for some wrestling with the borrow checker, but once one is far enough into Rust to encounter these things, they are also far enough in to appreciate the value it brings to systems programming.

                                To sum, the author shouldn’t weigh in on Rust (or any language, really) so definitively without having written any – or at least make clear that his perspective is informed by reading blog entries, not actual experience…

                                1. 1

                                  One thing that is clear to me: the author hasn’t actually written much (or perhaps any) Rust. This is clear to me because …

                                  To sum, the author shouldn’t weigh in on Rust (or any language, really) so definitively without having written any – or at least make clear that his perspective is informed by reading blog entries, not actual experience…

                                  I believe it wasn’t your intent, but your commentary reads a bit like “Only true Rustaceans should be allowed to talk about Rust”.

                                  1. 3

                                    Everyone should be allowed to talk about Rust. There is no authority that deserves to have the power to decide which people can or cannot talk about Rust.

                                    That said, it’s also fine to say that the author’s opinion about Rust is untrustworthy because it bears the hallmarks of someone who has read about Rust but not actually used it themselves in any meaningful way. I myself agree that it’s possible to write lots of useful rust code without running into situations where the borrow checker trips you up, and that some of Rust’s best innovations are the “small” things like the algebraic types, macros, Cargo, etc. that are now available in a non-GC systems language.

                                    1. 1

                                      it bears the hallmarks of someone who has read about Rust but not actually used it themselves in any meaningful way

                                      I still use rustlang but share the same opinion as the author. Did I write enough of it to be trustworthy? :)

                                      Rust’s best innovations are the “small” things like the algebraic types, macros, Cargo, etc. that are now available in a non-GC systems language

                                      Nothing on that list was rustlang’s innovation.

                                1. 3

                                  As a result the internet age has seen an exponential increase in the complexity of programming, as well as its exclusivity.

                                  This is precisely false. The internet age has seen decreases in the complexity and exclusivity of programming, compared to what existed before. Millions of people are programming computers in some capacity or another. In fact this is a large part of the reason why there is no “American Programmers Association” - the barrier to entry is so low, that there’s no chance for such a cartel to form. You don’t need anyone’s permission to start programming, just access to some kind of computer. And computers are cheaper and more widely available now than they ever have been.

                                  No amount of coaching and cheerleading is going to make most people enjoy spending their lives playing Dungeons & Dragons and Rubik’s Cube. Why is making the technology itself more humane off the agenda?

                                  This is true, I think, but I don’t think this article makes a good case that this requirement of abstract mathematical thinking is incidental to programming, rather than an inherent requirement of the discipline. Even spreadsheets, I would argue, require some amount of abstract mathematical thinking to make use of, which is why not everyone is an accountant - but accounting is less sexy than programming, so no one thinks that’s a problem.

                                  1. 9

                                    I’m amused that this thread is on the Lobsters front page at exactly the same time as this thread (https://lobste.rs/s/gpzhu8/is_freedom_zero_such_hot_idea), which argues against general purpose computing - on the grounds that some users of software are immoral and the authors of general-purpose software have an obligation to try to prevent these immoral users from using their software, using the mechanism of selective software licensing. This sounds to me a lot like “Make me a general-purpose computer that runs all programs except for one program that freaks me out”, albeit enforced in a somewhat different way.

                                    1. 2

                                      Maybe free software licenses should have a provision explicitly barring people from using the software if they publicly advocate for licenses that try to prevent their political enemies from running a program as they wish for any purpose.

                                      1. 1

                                        That would make the licence fault state trigger on itself.

                                      1. 6

                                        Yeah, why not post the source? Any reason why it only provides links to the posts, rather than an embedding of the post on the page?

                                        1. 1

                                          Oh yea I did that initially. Two reasons

                                          1. Load time become crazy slow
                                          2. Some servers change the CSS making the embedded iframe look strange
                                          3. Some servers do not allow iframe embed
                                          1. 3

                                            You should try to find a solution, probably cache the entire page. It doesn’t seem like it changes too often and everyone sees the same content anyway. Also, just keep the content of the post, no need for any CSS.

                                            1. 2

                                              That would be no problem, I can also get the user Icons of the people who posted it. I was thinking it may upset some server/content owners. Feels like a repost to directly copy no ?

                                              1. 1

                                                Yeah, it’s iffy to directly copy. People might not like that. It’s a good call to not do that.

                                        1. 6

                                          This is pretty far off-topic, and most likely to result in a bunch of yelling back and forth between True Believers.

                                          Flagged.

                                          EDIT:

                                          OP didn’t even bother to link to the claimed “increasing evidence”. This is a bait thread. Please don’t.

                                          1. 17

                                            Shrug. I find the complete lack of political awareness at most of the tech companies I’ve worked at to be rather frustrating and I welcome an occasional thread on these topics in this venue.

                                            1. 13

                                              It’s possible that many of your coworkers are more politically aware than they let on, and deliberately avoid talking about it in the workplace in order to avoid conflict with people who they need to work with in order to continue earning money.

                                              1. 1

                                                All work is political. “Jesus take the wheel” for your impact on the world through your employment decisions is nihilistic.

                                                1. 8

                                                  Not trumpeting all your political views in the workplace does not mean completely ignoring political incentives for employment or other decisions. I’m not sure what made you think GP is advocating that.

                                            2. 3

                                              Obviously “off-topic-ness” is subjective, but so far your prediction re: yelling back and forth hasn’t happened. Perhaps your mental model needs updating… maybe your colleagues are better equipped to discuss broad topics politely than you previously imagined?

                                              1. 4

                                                Obviously “off-topic-ness” is subjective, but so far your prediction re: yelling back and forth hasn’t happened.

                                                Probably because everyone on this site is good and right-thinking — or knows well enough to keep his head down and his mouth shut.

                                                (Which has nothing to do with the truth of either side’s beliefs; regardless of truth, why cause trouble for no gain?)

                                                1. 5

                                                  To me, the people on this site definitely handle these discussions better. Hard to say how much better given that’s subjective. Let’s try for objective criteria: there’s less flame wars, more people sticking to the facts as they see them vs comments that re pure noise, and moderation techniques usually reduce the worst stuff without censorship of erasing civil dissenters. If those metrics are sound, then Lobsters community are objectively better at political discussions than many sites.

                                                1. 5

                                                  These all seem to say one thing: climate change is going to be worse faster than some other prediction said. But that does not even remotely address your claim that “organized human life might not be possible by the end of the century and possibly sooner”. What on earth makes you think you know anything about what conditions humans need to organize?

                                                  1. 1

                                                    This is a good point. I guess my “evidence” would be past civilization collapse as a result of environmental destruction like what happened on Easter Island.

                                              1. 13

                                                Eh, not a bad read and in principle I don’t disagree. Google is essentially trying to mold the world into their politically-correct version of what it should be. As an uninformed non-UX-trained mere user of their products, I find that there is plenty of things that Just Work material design and several things that are a mistake (like that damn floating plus button to add or do something new… I keep looking for a real button, not one floating over the content in the middle of the screen).

                                                But also keep in mind who wrote the article. They don’t want you taking a free off-the-shelf design framework when you could instead be paying them to build you a custom one.

                                                1. 6

                                                  Arguing publicly that using the same or similar design language to what Google uses is a political choice - with the implication that making that choice is bad - is itself a political choice. I’m no fan of Google, but if another agent tells me that being inspired by their work to create my own designs means that I am representing Google, and that’s bad and should be discouraged, I’m well within my rights to look skeptically at the interests of the people telling me that.

                                                  1. 1

                                                    …being inspired by their work to create my own designs means that I am representing Google…

                                                    Okay, you must realize this is hyperbole. The actual argument is that deriving from their branding extends their influence.

                                                1. 2

                                                  I actually do most of my programming on a Thinkpad laptop, using the built-in keyboard there, which I have no issues with. I own a K-Type hooked up to a PC I mostly use for gaming, but I haven’t made as much use of the firmware programming functionality as I could. I told myself when I bought it that I would make it display a pretty light show, but so far I haven’t gotten around to doing that yet.

                                                  1. 2

                                                    I would like to switch to open street map, but the ecosystem around it doesn’t seem to be quite there yet. I’ve installed Osmand on my (android) phone as a google maps replacement, but I’ve noticed that it tends to be very laggy, and it’s often very slow to pick up my GPS signal. These basic things make it so that using Google maps in the browser is the more effective way for me to route myself places. I was informed about the existence of maps.me the other day, but haven’t tried it out significantly yet myself, so maybe that app will work well and prove to be an adequate google maps replacement.

                                                    1. 1

                                                      I have used both. Maps.me is waaaay faster at rendering maps. The search feature still seems a bit crap but it’s usable.

                                                    1. 16

                                                      The underlying factor that caused the github purchase to be a problem was that github was free. As long as the service is free, then selling out is always a risk.

                                                      Why not take the total server costs at the end of the month, divide by the number of users, and charge that as a monthly subscription to keep the lights on? If the system is even marginally profitable, that makes any kind of selling out (via acquisition or selling user data) less attractive.

                                                      If the system is costing the administrators money, then they have a high incentive to sell out.

                                                      1. 11

                                                        Why not take the total server costs at the end of the month, divide by the number of users, and charge that as a monthly subscription to keep the lights on?

                                                        Nah, charge them based on use like in mainframe and cloud models. That’s more fair. Safer, too, for the host. There probably should be a baseline fee that covers administrative overhead or at least contributes something to it. The usage charges go on top of that. There could be some usage that comes with the baseline fee, though.

                                                        1. 6

                                                          That’s an interesting point, and I’ll have to consider it. Though, I don’t see the user base growing enough to make selling out a possibility. My philosophy is that there should be many services like this one to prevent any one from growing too large and making selling out a possibility (that’s why the goal is to make everything open source - if someone wants to clone Asymptote they have my blessing).

                                                          1. 8

                                                            I don’t see the user base growing enough to make selling out a possibility.

                                                            I think the more likely case is it becomes too expensive and you don’t want to keep paying so the service shuts down and many users lose access to their email.

                                                            1. 7

                                                              You would be amazed how well a donation meter works.

                                                              Have a monthly goal of expenses + overhead. Show it on the homepage. Near the end of each month, if the goal isn’t met, nag the users a bit. Give those who donate some flair or something silly.

                                                              1. 4

                                                                True. In that circumstance I would run a cheap ($2.50/mo) VPS to keep essential services running (such as email) while fundraising.

                                                            2. 2

                                                              Bingo! I’d like to see people putting their effort into distributed alternatives, in the same way that Peertube is an alternative to Youtube ans Mastodon to Twitter.

                                                              1. 1

                                                                What is the fear with github being bought out? Is the prediction that there will now be ads on the site like source forge?

                                                                1. 12

                                                                  Asymptote’s existance isn’t because of fear of what Microsoft might do to GitHub. I made it to test out a midpoint between large, centralized services and everybody self-hosting. I don’t think Microsoft will screw up GitHub, it’s just that the discussion around the purchase prompted this idea.

                                                                  1. 1

                                                                    There are many concerns but one obvious one is that they will integrate it with LinkedIn. Software is one of the only professions where you can still find a job without a LinkedIn; M$ will do what they can to change this.

                                                                  2. -10

                                                                    We can just make sure that the admins publish inappropriate stuff like ‘women are weaker then men’ or ‘women make less money because they make different choices compared to men’ on its blog every month. Then the site would be ‘unbuyable’ because of the outvogue apparent social position of the owners. The people in the know would know to ignore such posts, but the bad-headline potential of these blogs would poison the site against any future buyouts.

                                                                    1. 1

                                                                      This is a rather sarcastic way of making a reasonable point - what sorts of rules about host content will Asymptote Club (or other similar “middle-ground” services) enforce, and how resistant will it be to social/political pressure to censor content? What if I want to use Asymptote Club’s gitea/CI service to actively develop machine-learning software that’s illegal in some jurisdictions but not others? What if I want to use their matrix service to host a misogynist chatroom because I believe that the accusations that the content of the chatroom actually constitutes misogyny are complete bullshit? If something hosted on Asymptote Club got into the news and invokes a social media shitstorm against it, how much can I trust that Asymptote Club will keep hosting it, and how much do I have to know about the personal politics of zebMcCorkle in order to ascertain that?

                                                                      1. 1

                                                                        Sad fact is that these things being published even in jest still provides fodder to people who do believe this stuff and want to feel justified in their opinions.

                                                                    1. 1

                                                                      I distinctly remember including HotBot in a list of Internet search engines I had to compile for some kind of “internet literacy” school project I had to do in 4th grade or so. So that’s a hell of a nostalgic name for me. Interesting that they’re still around, and claim to be a “private” search engine along the lines of Duck Duck Go - anyone have any idea of how trustworthy that claim is?

                                                                      1. 2

                                                                        It probably means they have no budget to do any fancy user tracking. IIRC that was also actually the reason behind DDG’s initial “we don’t track you” policy. Then they figured out it was actually a niche selling point, and made it a proper feature. [citation needed]

                                                                      1. 6

                                                                        I’m not entirely happy with this tutorial, which seems to be the only official source of documentation on how to use LLVM in practice. I’m working on a toy programming language implementation myself, and I’d like to have it compile to LLVM, but I found it a little difficult to apply the lessons learned from this tutorial to languages (like my toy one) that work even a little bit differently than Kaleidoscope.

                                                                        1. 3

                                                                          Love the tech, going to donate. Web is moving the opposite direction though. Even email is having a rough time. Quite a bit of the communication moved to Slack, social networks, chat etc. IRC & RSS are having a rougher time.

                                                                          1. 4

                                                                            The Fediverse is a welcome pushback against this centralizing trend

                                                                          1. 7

                                                                            Amazing how this article can talk about how great the fediverse is (a network that exists for nearly a decade now) without once using the word or mentioning its history.

                                                                            1. 4

                                                                              “Fediverse” is damaging to the Mastodon brand

                                                                              1. 6

                                                                                Except the whole post is about the fediverse? It’s right there staring you in the face in bold.

                                                                                The social network that is Mastodon isn’t really Mastodon. It’s bigger.

                                                                                1. 3

                                                                                  The word “Fediverse” is not on the page…

                                                                                2. 3

                                                                                  What makes you say that? (Well, other than the fact that I guess it’s strictly “good” for the Mastodon brand if Mastodon and only Mastodon becomes identified with ActivityPub federation, in the same way that it’s “good” for the kleenex brand if kleenex becomes identified with all tissue paper)

                                                                                3. 0

                                                                                  GNU/social et al?

                                                                                  1. 4

                                                                                    Yes, it’s all the same network. See https://fediverse.network/.

                                                                                1. 3

                                                                                  I don’t think using a formal language with syntax closer to formal written English, rather than one with syntax like that of currently-extant programming languages, does anything to help reduce the complexity of programming computers.

                                                                                  Here’s a random function (in Scala) from one of the codebases I work on. I picked this because it was relatively short and in a file I happened to have open anyway:

                                                                                  def sarkLogin(session: Session, authCode: String): Future[Done] = for {
                                                                                      sarkAuthResponse <- exchangeSarkCodeForTokens(authCode)
                                                                                      data = SarkAccount.Data(sarkAuthResponse.access_token, sarkAuthResponse.refresh_token)
                                                                                      _ <- setUserService(session.userId, SarkAccount)(data)
                                                                                    } yield Done
                                                                                  

                                                                                  And let’s imagine that, instead of a programming language like Scala, I wanted to write this function in a language with syntax similar to formal written English:

                                                                                  SarkLogin in a function. It has two arguments, a Session called ‘session’ and a String called ‘authCode’. In the context of a Future, it does the following things in order:

                                                                                  It takes the authCode and exchanges that sark code for tokens, calling the result ‘sarkAuthRespose’. This might fail in the way that Futures know how to handle.

                                                                                  It makes a SarkAccount.Data out of the sarkAuthResponse’s access_token and refresh_token, calling it ‘data’. This might fail, but not in a way that Futures know how to handle, but rather the old way from before they came up with Futures.

                                                                                  It sets the user service with the session’s userId and the SarkAccount, and then it takes the function that returns and immediately calls with with the data from earlier. If that didn’t fail in the way that Futures know how to handle, throw the returned result away.

                                                                                  If that all worked, yield a Done wrapped in a Future.

                                                                                  Does the latter seem any easier to understand than the former? I don’t think so - because most of the cognitive work a programmer needs to do to understand this isn’t in grokking the syntax, but rather knowing what all the specific technical terms mean.

                                                                                  To understand this code you need to know what a Scala Future is (and how it is a monadic type that has its own idiosyncratic behavior when, hence the “fail in a way that Futures know how to handle” verbiage). You need to know what a Sark is (it’s a custom service that someone else wrote, and I don’t really know what it does other than that the clients of this software need to talk to it sometimes). You need to know what a couple of different data structures involving Sarks do, and you need to know that there’s a distinction between an “authCode” and a “token”, and that’s why that exchangeSarkCodeForTokens function exists (I learned about this from reading documentation on Sark months ago when I wrote this originally and forget why that mattered now).

                                                                                  In short, there’s nothing about writing out this code as a precise technical description of what this function is doing (which even this isn’t, not unless I told the compiler exactly what all the natural English phrases I used like “This might fail in the way that Futures know how to handle” mean) that makes the functionality easier to understand for anyone, and it definitely took longer to type because I didn’t use the convenient math-like notation that is a programming language.

                                                                                  1. 11

                                                                                    I’ve read a number of posts by Uncle Bob that I’ve disliked - I don’t think that programmers are a special class of people who are duty-bound to take an oath to uphold the honor of the profession, as opposed to just people with a particular skill/interest in manipulating computer systems; and he’s said things about unit testing vis a vis static typing that I thought were wrong. In light of this though:

                                                                                    Only when he writes something that I strongly disagree with, does the hunch about Clean Code became clear. The > last days on Twitter we watched Uncle Bob implicitly decry the violation of Godwin’s law rather than the internment > of thousand children under conditions that Amnesty International compare with torture. In the following days, Uncle > Bob fought back against his critics also stressing that he thinks the situation is horrible, “but…” not as important as > “unhonorably” comparing others to Nazis. I think his priorities are horribly wrong. I responded “In light of @unclebobmartin’s recent tweets, ideas like Clean Code have started creating a bad taste in my mouth. Let’s just say “code”, eh? I’m officially instituting “dirty code Monday’s” to remember to question dogma, tribalism and things- before-people mentality.” Bob asked me to explain “why you decided to lead a boycott against the concept of Clean > Code”. Thus this blog post.

                                                                                    I think it’s pretty clear that this blog post is in large part motivated by a political disagreement rooted in very contemporary (as in, the past couple of weeks) American national politics, and that leaves a very bad taste in my mouth.

                                                                                    1. 9

                                                                                      I didn’t quite get this link either, though there are people who will reject all ideas that come from a person because of their disagreement with one of them. But, in this case, it seems like the author has been becoming disillusioned with Clean Code for a while.

                                                                                      From other parts of the post, it seemed like the root problem the author has experienced is probably one of battling ideologies

                                                                                      Some of the most unpleasant experience in my professional life have been due to disagreements of the Clean way to write some piece of Code. I know people that I respect professionally that could have been good friends if one of us hadn’t insisted on purity of code in some situation or another.

                                                                                      and possibly burn-out

                                                                                      I often leave the office 1-2 hours later than my co-workers after polishing some piece of ultimately meaningless code. This is time I don’t spend with my family. Because I’ve learned to care about Clean Code.

                                                                                      But they seem to have reached the conclusion that it’s not worth caring about code quality, which to me is throwing the baby out with the bathwater.

                                                                                      As I’ve grown older, I learned to stop getting upset about “Unclean” Code. In any real world code base there will be an uncountable number of unfortunate quirks, odd and ends. Things are the way they are because they got that way. People did what they did because of reasons. Those reasons are valid, whether it was because the surrounding needs changed, because the developer had insufficient experience, because they wanted to go home to their family instead of sitting late in the office or if they just had a difference in opinion on what’s good code.

                                                                                      I’d agree that it’s probably not good (or productive) to get upset about ‘“Unclean” Code’, but the idea that everything is the way it is “because of reasons. Those reasons are valid”, is far too reductive for me, and just feels like giving up.

                                                                                      1. 6

                                                                                        Relativism of code quality seems to be en vogue nowadays. I’ve seen extremes of it, up to the ridiculous “there is no bad code, just bad circumstances forcing bad code to happen.” People are projecting their nature/nurture beliefs into software dev. Also, it feels more like pushback to the dogmatism of clean code that went around for awhile. But like many “anti-“ movements, it doesn’t offer much guidance beyond “don’t do that thing!” Which I guess makes it a great tweet to post?

                                                                                        So, I’m pretty bummed he just arrives at a relativistic argument and declares himself enlightened. It is quite possible to write clean code and go home at 5, or even earlier. Perhaps one can write a few tests instead of reading hot takes on Twitter/HN?

                                                                                        Code quality is almost entirely up to developers. Don’t give up on it because it can be a demanding task.

                                                                                        1. 11

                                                                                          IMO there’s a difference between “code quality” and “clean code”. “Code quality” is a general term for code that has some desirable property, usually legibility, little tech debt, and simplicity. “Clean code” is a specific, idiosyncratic style of writing code that purports to be objectively better.

                                                                                          See for example Martin’s extract till you drop, where he replaces a 10 line method with a 4 line method… and six additional helper methods.

                                                                                          1. 2

                                                                                            That reminds me of my controversial post about using local variables rather than extracting methods. There are some who insist that the method explosion caused by extracting everything is desirable - a lot of times I think YAGNI.

                                                                                          2. 7

                                                                                            Relativism of code quality seems to be en vogue nowadays. I’ve seen extremes of it, up to the ridiculous “there is no bad code, just bad circumstances forcing bad code to happen.”

                                                                                            I think it starts out from Chesterton’s Fence, which I see trotted out fairly regularly, but then it is carried too far. It goes from “make sure you understand why the fence/code was put there before you remove/change it” to “whatever reason the code/fence was put there must have been a good one”, which is different. It also misses the difference between why the fence/code was put there, and the quality of the fence/code itself.

                                                                                        2. 3

                                                                                          It’s true that this situation in which he tells us that the separation of parents from their children while they face summary judgement without due process is not all that bad after all could just be an isolated incident, but it isn’t. He’s also the person who says that unless you write software his way you are unprofessional. The person who said that James Damore had a good point and maybe we should have listened to him instead of letting him get fired. The person who said that it’s fine to call all professionals “men”. So maybe this was, for OP, the straw that broke the camel’s back.

                                                                                          I have been asking for years that we get better heroes in our trade, I’m happy to no longer be alone in that.