1. 1

    I started using this question in job interviews a year or two ago and now this tweet and post has to go viral. Thanks a lot jerk!

    I like this python one-liner solution (with some help from the standard library):

    >>> [(k, len(list(g))) for k, g in itertools.groupby("aaaabbbcca")]
    [('a', 4), ('b', 3), ('c', 2), ('a', 1)]
    
    1. 1

      Company: Torqata

      Company site: https://torqata.com/

      Position(s): Senior Data Engineer, Senior Front-End (Angular) Software Engineer, Senior Full Stack Engineer, Senior Python Software Engineer, Senior Software Automation Engineer (Python), Senior Software Development Engineer in Test (SDET)

      Location: REMOTE - the team is headquartered in Charlotte, NC but we support permanent remote work

      Description: We’re building SaaS tools to help car tire sales shops improve their profitability. https://torqata.com/

      Tech stack: Our frontend stack is Angular. Our backend API stack is Python, FastAPI, and PostgreSQL. Our data stack is Google BigQuery, Airflow, Kubernetes, Pandas and Python. We’re on the Google Cloud Platform.

      Contact: dgilman at atd-us dot com

      1. 15

        The article is just a low quality criticism. IMO it’s not worth reading or responding to. This is why I wish we had the ability to downvote articles on lobste.rs like on Hacker News. The point of the downvote is to let the community signal when content doesn’t belong on this website and we’ve been stripped of that. Management could keep fiddling with the flag options, maybe add a “Low Quality” one, but ultimately you’re just trying to dance around what should be a downvote option.

        1. 14

          IMO it’s not worth reading or responding to.

          Why do you think so? I use Rust as my daily language and I think the first two criticisms are valid: 1. no formal specification; and 2. no nice bootstrapping process. For each of the criticisms some examples are given.

          These are not new criticism and the article is somewhat ranty. But it certainly reflects issues with Rust that may prevent some people from adopting it.

          This is why I wish we had the ability to downvote articles on lobste.rs like on Hacker News.

          Maybe I have insufficient karma (15435), but I certainly do not have the option to downvote articles on Hacker News, only upvote or flag?

          1. 2

            Why do you think so? I use Rust as my daily language and I think the first two criticisms are valid: 1. no formal specification; and 2. no nice bootstrapping process. For each of the criticisms some examples are given.

            There’s a step up from “2 points of valid criticism”, as large as they may be, and “not mature”. The first two are factually true, the second needs a lot of weighting and an establishment of “maturity” that is not just personal opinion.

            1. 1

              I think people are getting a little bit too hung up on the title and semantics of “mature”; the real problem described by the author is:

              And now to the specific problems I encounter quite often and I don’t know whether I understand it wrong or the compiler understands it wrong. And since there’s no formal specification I can’t tell which one it is (even if the former is most probable).

              People mentioned Ruby in the comments too, and I definitely had problems like this with Ruby too. I remember one specific instance where I encountered some really odd behaviour (I forgot what the exact problem was) and eventually found something on the Ruby issue tracker from years ago, with no clear conclusion (as far as I could tell; much of the issue was in Japanese), so I still didn’t really understand what was going on.

              We can argue endlessly about the semantics of “mature” and I still like Ruby, but I do think stuff like this takes away from the language experience, and that all other things being equal Ruby would be better if behaviour like this was clearly defined.

              It seems to me that especially since Rust is being considered for things like the Linux kernel these kind of minutia and the long-term stability associated with it becomes more important.

              1. 3

                That’s the issue with the chosen genre: rants want to make a point strongly, so people focus on the strongest points. What you cite is a supplement. Had the author chosen to elaborately write about the problems of a missing spec, I would probably agree on a lot of points.

                1. 1

                  It’s not my favourite style either, but as long as it doesn’t contain completely egregious nonsense it’s probably best to read over it and focus on the core points. That’s easier said than done, and probably easier for me than you as I’m not involved with Rust.

          2. 16

            If you don’t like the article, flag it and explain the problems its claims have or why they’re incorrect.

            I found it to be an–at least as somebody not big on the Rust koolaid–reasonably stated list of problems/grievances, several of which they even noted have been superceded or were incorrect.

            The circling of the wagons here is what I refer to when I mock the Rust Evangelion Strike Force, and what turns some of us off.

            1. 1

              There’s really no relevant flag for my beliefs here, I’d feel bad flagging it as off topic as that seems meant for things truly out of the scope of the community. That’s why I wish we’d just have a downvote to cover all the different cases for removing a story instead of trying to enumerate them all.

              1. 10

                That’s a terrible idea. The whole point of having named flags is to signal why the submission doesn’t belong here.

                If there was a flag that meant “any other reason” it would just be a free-for-all. The submission could be flagged for being mean to your favorite language; for being written by a woman; for containing furry imagery; or for challenging the consensus of the tech community du jour.

                Here’s what you’re expected to do when you find a submission that you find objectionable:

                1. hide, and move on
                2. sit down and write a comment explaining why it’s objectionable.

                And no,

                The article is just a low quality criticism. IMO it’s not worth reading or responding to.

                doesn’t count.

            2. 4

              I think many of the criticisms are perfectly fair, even if they’re worded in Kostya’s typical.. spicy style 🌶 Especially the bit about Rust now officially being past version 1.0. One would expect quite a few things other more mature languages have at this point, like a proper spec. The poor assembly support is a significant obstacle for multimedia code, since performance is paramount.

              1. 4

                The poor assembly support is a significant obstacle for multimedia code, since performance is paramount.

                The Rust standard library does have have intrinstics for some platforms though. So it is already possible to write kernels using SIMD intrinsics. I have done so for some linear algebra kernels, which gives nice speedups.

                1. 1

                  Sounds promising. But even with intrinsics, if it’s too hard to incorporate actual assembly, or if the ABI isn’t stable enough, then it’s simply of no use for its stated goals (system programming)

                  1. 6

                    I must point out that inline assembly is not part of C language standard or C++ language standard. Inline assembly, even in C or C++, is a compiler extension that is implemented incompatibly between compilers.

                    1. 2

                      How is Rust’s support for Assembly holding you back in a way that it wouldn’t in C?

                      1. 2

                        As an example, check out these comments on a PR I made a while back. I wanted to add RV64 support for this project, which already supports RV32. RV64 is almost the same as RV32, but loading and storing registers uses a different instruction (for historical reasons). Rust has no way to parametrize assembly at the moment, so every inline assembly block has to be completely duplicated, even though they are effectively the same code. In C or C++, creating a macro for stores and loads would solve this easily.

                        1. 1

                          TIL. Thanks. I wonder if this is what the OP had in mind?

                          1. 1

                            Maybe. To clarify,

                            Rust has no way to parametrize assembly at the moment

                            is better stated as “Rust has no way to parametrize over instructions in assembly at the moment.” Rust now has better syntax for inline assembly in nightly. However, in standard rust the “!llvm_asm” macro is all you get. OP is probably complaining about the poor ergonomics of that macro. It’s just like what you get in C, but it’s less featureful because it lacks C’s preprocessor.

                            1. 1

                              It’s just like what you get in C

                              Yes, this is what I was getting at. This was one of the OP’s criteria for being a “mature systems language.” But since the post is low quality, there’s really no way to know what they mean. If your difference is the only difference, then I guess we are supposed to believe that, when it comes to inline Assembly support, the only thing that separates a mature systems language from an immature one is the ability to easily parameterize over instructions.

                              Seems a little cuckoo to me. But that’s why I asked.

                              1. 1

                                This just occurred to me, but for another example (also from tock), check out tock’s code for reading RISC-V CSRs. For background, CSRs on RISC-V are a set of registers for controlling the processor. They have their own address space, and their own instructions for accessing that address space. Importantly, the CSR to access is encoded as an immediate within the instruction, and not as a register. So to access csrs, they have to have a monster switch statement to select the appropriate instruction. To contrast, in C one can read a CSR in a macro like

                                #define csr_read(csr)						\
                                ({								\
                                	register unsigned long __v;				\
                                	__asm__ __volatile__ ("csrr %0, " __ASM_STR(csr)	\
                                			      : "=r" (__v) :			\
                                			      : "memory");			\
                                	__v;							\
                                })
                                

                                Now, hopefully the rust code gets inlined and the un-taken branches get culled (in fact the tock code even adds an annotation to that effect), but it’s still much less ergonomic than in C. If a new CSR gets added, both the set and get functions must be modified to have new branches. In C you just add a define.

                                There are couple more instructions like the above in RISC-V (not sure about x86 or ARM; I haven’t written any Rust which needs inline assembly for those arches). In addition, I don’t know if the llvm_asm! macro worked with const expressions for immediates. I’d have to check, but if you couldn’t do something like

                                        llvm_asm!("add $0, $1, $2"
                                             : "=r"(foo)
                                             : "r"(bar), "i"(some_const_func())
                                             );
                                

                                then that would be pretty crippling IMO. In any case, it’s something which is fixed with the new asm! macro.

                                1. 1

                                  Ah interesting. Yeah my hope is that the new const stuff being added would also help here. And yeah, the giant switch statements can be found in the implementations of the Intel SIMD vendor intrinsics too. For basically the same reason: vendor intrinsics are “basically” high level Assembly whete each intrinsic corresponds to a particular CPU instruction and some of those require immediate arguments. I think once Rust grows a way to specify a function parameter as const, then this would be fixed in general (not just for inline Assembly).

                                  If you are doing this, then yes, I agree it is unergonomic but I would say that it is reliable as long as it is marked as inline(always).

                        2. 1

                          I did a bit of a brainfart there. One should be able to use FFI to link assembly code into a Rust project. I suppose it’s only really inline asm which may be an issue. But that’s possible to live with.

                  2. 3

                    The article is just a low quality criticism. IMO it’s not worth reading or responding to. This is why I wish we had the ability to downvote articles on lobste.rs

                    I disagree, mostly because “low quality” is very subjective. People tend to use that attribute a lot due to not or misunderstanding something, especially when it is about criticism. I say that as someone who feels very guilty for doing the same.

                    For a rant tagged post I think it is valid and while I also disagree that the wording is… well, very ranty I have seen the other side of this on Hacker News. Things ending up downvoted, not for content, but for opinion, often enough because of an opinion that is unreflectingly copied from someone else. And while a lot of the time I share that opinion I strongly dislike that bubble and sometimes to say it bluntly circle jerking that comes from that. Personally I do not visit HN or lobste.rs to have my opinion validated somehow, but to get something that is novel.

                    While I disagree with the article and dislike parts of it in general this is the thing I’d expect here. Also the discussion it lead to in the comment section regarding standards and what a “mature programming language” is supposed to have was interesting.

                    I think there have certainly lower quality articles submitted. Usually I end up hiding those. It would be great if they did not exist, but I don’t think and opinion poll is a good way to decide that, because in the end it will lead to (potentially valid) criticism of liked software, concept, etc. to be downvoted.

                    1. 2

                      It would seem others don’t think the same as you do with regards to the quality of this article. Maybe this is evidence of why downvotes shouldn’t be used, it would hide otherwise acceptable content due to the dislike of a minority of people who don’t really represent the views of the majority.

                      1. 2

                        Nitpick, there’s no downvotes here on either submissions or comments, but there are flags, for which a reason has to be given when used.

                      2. 1

                        AFAIK on HN you can downvote only comments, not submissions.

                        1. 1

                          You need to hit a karma threshold first but you absolutely can down vote articles.

                          Edit: I used to be at that threshold but I’m no longer or they removed the feature - my apologies!

                          1. 4

                            Not according to the FAQ:

                            There are no down arrows on stories. They appear on comments after users reach a certain karma threshold, but never on direct replies.

                      1. 12

                        Thanks to the gentlemen at DBA StackExchange for playing along: How do I make our data warehouse OSHA compliant?

                        1. 2

                          The question’s been closed, btw.

                          1. 1

                            deleted and unarchived….

                            no fun allowed on *exchange

                        1. 1

                          Company: LeanTaaS

                          Company site: https://leantaas.com/

                          Position(s): Software Engineer, Data Scientist, Data Engineer, DevOps Engineer, QA Engineer, Product Manager, Data Analyst

                          Location: Charlotte, NC or Santa Clara, CA

                          Description: LeanTaaS is a fast growing healthcare predictive analytics company that uses sophisticated math and lean principles to make healthcare providers more efficient. tl;dr we optimize doctor schedules

                          Contact: Apply at https://leantaas.com/about/careers/ and if you have any questions you can reach me at david.g@leantaas.com

                          1. 14

                            flock(1) is a command-line utility that implements lockfiles with the flock system call. It’s easy to use in shell scripts and the locking is reliable.

                            1. 1

                              Too cool! I wish I knew about that earlier.

                            1. 3

                              Company: LeanTaaS

                              Company site: https://leantaas.com/

                              Position(s): Python and Java backend engineers, data scientists, data engineers, Angular frontend engineers, QA engineers and product managers.

                              Location: Santa Clara, CA and Charlotte, NC. Most positions can be filled in either office.

                              Description: LeanTaaS is a fast growing healthcare predictive analytics company that uses sophisticated math and lean principles to make healthcare providers more efficient. tl;dr we optimize doctor schedules

                              Contact: Apply at https://leantaas.com/about/careers/ and if you have any questions you can reach me at david.g@leantaas.com

                              1. 8

                                Dave Barry did a bit that I think is relevant here.

                                1. 1

                                  I enjoyed that, thanks for the link!

                                1. 1

                                  Company: LeanTaaS

                                  Company site: https://leantaas.com/

                                  Position(s): Python and Java backend engineers, data scientists, data engineers, Angular frontend engineers and QA engineers.

                                  Location: Santa Clara, CA and Charlotte, NC. Most positions can be filled in either office.

                                  Description: LeanTaaS is a fast growing healthcare predictive analytics company that uses sophisticated math and lean principles to make healthcare providers more efficient. tl;dr we optimize doctor schedules

                                  Contact: Apply at https://leantaas.com/about/careers/ and if you have any questions you can reach me at david.g@leantaas.com

                                  1. 34

                                    Its OK to write unsafe Rust code. Honest! Compile time safety is the main innovation of Rust and its killer feature, but its ok for parts of an API to be unsafe. Rust enforces safety by guarenteeing a certain pattern of memory use, and if that is a bad fit for your problem then thats just life. The halting problem guarentees that no one-size-fits-all solution will ever exist.

                                    I’m currently writing unsafe Rust for graphics library code. I’m reasonably sure it can’t corrupt memory because I’ve structured it so it can’t. Rust could enforce some of the invariants I’ve imposed at compile time, but it would make the entire process viciously painful.

                                    Even unsafe rust has real enums, strong types, macros, pattern matching, a module system, and all the other things C (and C++) doesn’t. Using C instead is like finding out you new dirt bike gets sand in your face and going back to riding offroad on a donkey instead of wearing a helmet.

                                    1. 9

                                      The effort to write unsafe rust seems to me far more than just writing C. So if you don’t get the safety benefit, it is just a pain.

                                      1. 7

                                        But the point is that only the unsafe parts will be unsafe. Besides that, writing unsafe Rust is subjectively more fun than writing C.

                                        1. 3

                                          I think it It depends on what you are interfacing with. Interfacing with a C framework can be very hard because there will be so many assumptions and things to work around and the unsafety will be pervasive, for small C libraries it is not bad. I’ve tried both some of both types of rust wrapping, and that is just my feeling so far. .

                                          1. 2

                                            Although I have no experience in Rust, but I can still acknowledge this: I have interfaced with suite some C code from C#, and if that C code was not designed in a mindset that it will be wrapped it was really painful. Now I can imagine that strict ownership of memory references can only add a lot of more hardship and complexity.

                                          2. 2

                                            The takeaway of the pre-poop your pants bug was that unsound, unsafe code does create bugs in safe code.

                                            1. 2

                                              Yeah, this section of the rustonomicon https://doc.rust-lang.org/nomicon/working-with-unsafe.html talks about exactly that too.

                                          3. 3

                                            There are a lot more safety benefits to rust then preventing pointer dereferencing (which is primarily what unsafe allows). Too many to list from a smartphone. And Rust provides far more than just safety.

                                            1. 1

                                              I think that the difficulty lies in wrapping it with safe code which is true to all safety guarantees.

                                              Or do you genuinely mean writing unsafe rust all the way is more difficult than writing C? I’d love to hear why.

                                              1. 3

                                                genuinely mean writing unsafe rust all the way is more difficult than writing C?

                                                I found very low level rust code dealing with C types has excessive casting + far more verbose code. Interfacing with C is not idiomatic rust, needing to use types like CString and CStr and doing lots conversions, it is just more annoying for some things.

                                                1. 3

                                                  I think it is in part a fault of C library, not Rust. Null-terminated C string is not null safe and in general a bad interface to provide for libraries.

                                                  1. 1

                                                    I didn’t say it was rust’s fault, just that it can be lots of extra work to do interop.

                                          1. 1

                                            Company: LeanTaaS

                                            Company site: https://leantaas.com/

                                            Position(s): Python and Java backend engineers, data scientists, data engineers, Angular frontend engineers and QA engineers.

                                            Location: Santa Clara, CA and Charlotte, NC. Most positions can be filled in either office.

                                            Description: LeanTaaS is a fast growing healthcare predictive analytics company that uses sophisticated math and lean principles to make healthcare providers more efficient. tl;dr we optimize doctor schedules

                                            Contact: Apply at https://leantaas.com/about/careers/ and if you have any questions you can reach me at david.g@leantaas.com

                                            1. 2

                                              I use Cisco WebEx Teams (formerly Cisco Spark) at work so I’ve been able to see the disaster first hand. The entire chat service was hard down for the first 24 hours with no ETA of resolution. When the service did come back up it still had small outages during business hours all week. Chatroom history is slowly being restored and many chatrooms are entirely glitched, unable to receive new messages or display old ones. Can you imagine the internet meltdown that would happen if Slack had this kind of outage? I feel bad for the ops employee: not only did they kill all the servers but they’ve almost certainly killed the business prospects of this giant, corporate, multi-year program with hundreds of contributors.

                                              1. 1

                                                OPS employee? I bet it was a developer.

                                                edit: I’ve seen the other side of this corporate curtain

                                              1. 9

                                                Interesting observation from reddit

                                                Some Rust practitioners are weird.

                                                You have all those great approaches about correctness, and then you see here and there developers trying random explicitly unsafe hacks depending on internals of data types, that not even C++ developers would try.

                                                I mean, when was the last time when you randomly tried to nuke the internal length of an C++ std::vector to speed things up, using simultaneously dangerous means and a complex reasoning (but probably undocumented, and maybe incorrect) justifying that there actually was no risk in your opinion?

                                                And on top of that do it in, not in some kind of insane computation kernel trying to grab the last bit of perf, but in merely an HTTP library?

                                                Well at least I’m happy this particular missed optim has been fixed. One less reason to resort to insane unsafe hacks.

                                                (On a sidenote, it is sometimes better to only modify a variable in memory if it doesn’t already has the good value, but this would be mostly for scaling concurrent accesses of the same cacheline on multiple CPU, so this does not really apply here – and also sometimes compilers fuck you up by using a cmov but then it is a completely different story :p )

                                                1. 10

                                                  that not even C++ developers would try.

                                                  I disagree with this. If anything, I suspect this idea has come from C++, where std::vector’s API contains functions to explicitly reduce the length without shrinking the capacity. This is partly to avoid invalidating iterators, but is also used to e.g. avoid unnecessary allocations when emptying a vector and immediately refilling it with a simply quantity of elements.

                                                1. 12

                                                  I know it’s not up to the impressive quality of what you guys post here but I’m writing a replacement the 1993-vintage CGI script that powers manpages.debian.org. I’ve been a happy user for years and I’m really glad I’m getting the chance to contribute back. I took a short detour a few weeks ago to write a ditroff parser (groff back end) which seems to be a pretty obscure corner of UNIX lore. The original format was designed by Kernighan but it definitely has a focus on ‘physical printer’-type devices with print heads - GNU gtroff outputs a lot of bonus in-line comments to help the fancier backends give richer output. I’m also surprised that in the 29-year history of GNU tar nobody’s contributed any output that’s more machine-readable than the ls-like output of tar -tv. I’m tempted to write a patch to get XML output.

                                                  1. 7

                                                    That page is one of my favorite things, thank you for your work! <3

                                                  1. 3

                                                    I haven’t been following this story, though I learned a high altitude version of it via osmosis somehow.

                                                    Here’s all I know so far:

                                                    • The inventor of JS gets hired to Moz (cool makes sense)
                                                    • Some people complain about his stance on prop 8 (ah yes, I remember that; that’s expected)
                                                    • Brendan steps down (woah, why?)

                                                    I get that there are a lot of people upset by his stance on prop 8, but I don’t really see any connection between his personal views and his ability to lead Mozilla.

                                                    Serious question: What am I missing?

                                                    1. 13

                                                      I think part of the reason the anger intensified was Eich’s relative lack of action/inability to get in front of the issue. When he finally did to an interview on the subject, it was several days after the announcement, well after everyone was up in arms, and the summary was “I don’t really want to talk about it, it’s my personal belief.”

                                                      Now, on the one hand, I can understand the desire to separate personal beliefs from public life, but on the other, that’s a very – sorry to use the term – privileged response. What he’s essentially asserting is that “I get to try to effect your personal life, and you shouldn’t be allowed to question me for it.” This – at least – was the response of the community of people who felt that Eich was in the wrong. I think also there was a sense of Eich trying to have his cake and eat it too – saying (paraphrase), “Mozilla is an open organization which support LGBT equality” is disingenuous when you – the newly minted leader of that organization – have shown evidence that you don’t. Like it or not, personal opinion and belief are relevant, since they will inform your decisions as CEO.

                                                      Ultimately, he didn’t step down because he felt bad, or as some act of contrition – he stepped down because of bad PR. When big sites start telling you to use other browsers because of your CEO’s stance on gay rights, it doesn’t matter whether or not the CEO is going to make all future decisions perfectly and solve all of the worlds problems, ultimately, people won’t buy/use your product, and that’s not something Mozilla wants or can afford. From the second this happened, Eich’s response was slow, somewhat arrogant, and ultimately poor politics – which is to be expected, since he’s an engineer and not someone necessarily interested in being a politician – but ultimately a CEO is just a politician of sorts, and Eich’s relative inability on that front could not be made up for by his ability as an engineer.

                                                      That said, I don’t care what people think, the man invented Javascript, he doesn’t deserve to be CEO, he deserves to be stood in a corner and told why he’s a very naughty boy.

                                                      (the last part was in jest, mostly).

                                                      1. 3

                                                        Eich’s relative lack of action/inability to get in front of the issue. When he finally did to an interview on the subject, it was several days after the announcement,

                                                        You are presumed guilty until proven innocent. Also, there is a time limit of 48 hours in which to present your case. Unless somebody on twitter comes up with a catchy hashtag, then you only have 24 hours. Unless you are getting on a 12 hour flight with no internet access, then you only have those 12 hours.

                                                        1. 4

                                                          This isn’t the law. This is politics – he failed to get out ahead of a story, that’s not a good thing. Reason is not the realm of the crowd. I don’t like it any more than you but – that’s the state of the world we’re in. Again, I was answering the OP’s question as honestly and objectively as I could – that’s why he got booted. I don’t necessarily think it’s right, I don’t really think much of it at all. I frankly couldn’t care less who the CEO of Mozilla is.

                                                          My intention was to state my understanding of why he got ousted, not to lay judgement on the society which ousted him.

                                                          1. 3

                                                            Understood. I’m responding to the mentality behind the words I quoted, not necessarily you. I find internet justice very distasteful, even when I agree with the results.

                                                            1. 4

                                                              Off-topic: I like lobste.rs – on reddit, this would have been a much longer, and much less polite, interchange.

                                                              On-topic: I find it pretty difficult to separate myself from how heartily I disagree with Eich. I also dislike the common mob-mentality, but at the same time it occasionally mobs in my general leftward direction, and it’s hard not to feel justified in hatred. I strongly dislike this, it’s perpetrating the same underlying problem – that people base their choices not on facts, but on beliefs and opinions. This happens in a wide variety of controversies in the tech world, and between it and the widespread false-difference fallacy everyone seems to love so much[1], it only ever ends up in a lot of rabble-rabble and egg on everyone’s face; and usually no substantive change to actually fix the problems that lead to the controversy.

                                                              [1] As a note, it is possible to treat someone with honest empathy, but also doubt the veracity and magnitude of their claim – but this is a can of worms for another day.

                                                        2. 4

                                                          how is the expectation that public and private life be separate “privileged”? do you know of one “ordinary person” who supported prop 8 and lost his job as a consequence?

                                                          it was an ugly mob. pseudo-intellectual excuses don;t make it any prettier.

                                                          1. 20

                                                            here’s where the symmetry breaks down - you do not need to even be aware of prop 8 for your life to be affected by it. it is predicated on the idea that people in same-sex relationships should be legally treated as lesser than people in opposite-sex ones, for no better reason than that it’s the current status quo.

                                                            on the other hand, the proposition literally does not affect eich’s life in any way. there is nothing he can do that he would be unable to do once same sex marriage was legalised, nothing that would be taken away from him, nothing that would even affect him other than the distressing knowledge that someone, somewhere had been granted equal rights. and yet, he spent $1000 so that people fighting against gay marriage would have a better chance of getting their way. i don’t think that actively working towards something that makes no difference to him but that negatively impacts other people really counts as “private life”.

                                                            1. 4

                                                              Very well explained. Couldn’t agree more.

                                                            2. 2

                                                              I was merely summarizing the views that led up to him stepping down / being forced out.

                                                              That said, I don’t like the guy for a lot of reasons. “Inventor of Javascript” isn’t a resume entry I hold in particularly high esteem. I don’t agree with his personal views and – were I a stakeholder in the company, I probably would’ve been upset and vocal about promoting someone with said views. But since I’m not, I didn’t.

                                                              To more directly answer your question (again, summarizing the community of people who were angry about his personal views) – the idea of ‘privilege’ might well be defined as ‘a double standard held against a class of people’. That is – the double standard they perceived (especially after his interview) was that for them to question his personal views/beliefs was out-of-scope, but for him to question theirs was fine. I’m not sure if I totally agree with the application in this case, but I can see where they’re coming from.

                                                              Ultimately, I was merely answering the question – these are the facts-in-evidence as to why he ultimately stepped down/was forced out. Whether or not you agree is up to you.

                                                          2. 3

                                                            Minor point, he didn’t get hired by Mozilla, he founded Mozilla.

                                                            1. 1

                                                              he didn’t lie to pacify the mob. apparently that’s what you have to do. because, apparently, we value tolerance so much we can’t tolerate someone whose personal views we don’t agree with.

                                                              1. 0

                                                                A very large amount of bad PR outside of mozilla and negative sentiment within mozilla caused this with resigning board members and others. It’s very unfortunate, since if it was an obvious protected class thing such as being mormon or similar, he wouldn’t be experiencing this.

                                                                Imagine this headline: New CEO of large company in Utah steps down because of negative backlash of not being Mormon.

                                                                1. 5

                                                                  This is a ridiculous false equivalence. How is being a homophobic bigot similar in any way similar to being an LDS?

                                                                2. 1

                                                                  It’s a bit more complicated than I make it sound but Brendan was really more of a co-founder of Mozilla alongside Mitchell Baker. Eich was the technical lead, Mitchell handled the administrative and legal side of things.