Threads for cup

  1. 1

    Thanks! I didnt know about the arrow functions

    https://stitcher.io/blog/short-closures-in-php

    1. 49

      Kind of annoying that you have to read thru a third of the article to get to the important part:

      Is Flow open source?

      No. […]

      1. 19

        It is this part of the answer that I find more interesting: “There’s no current plan for that as we don’t have a large corporation backing our development. “

        It just makes me sad. Open source was supposed to destroy the corporations, not empower them! It was to bring freedom to the development world, not leave it at the mercy of big money operators.

        Nothing new, no big comment. Just lamenting :( (though the khtml legacy may be interesting - and it is LGPL… perhaps we have that to thank for the openness we do still have at least)

        BTW I also hate the name “Flow”. Gah I can’t wait for this era of names to come to an end.

        1. 14

          Open source was supposed to destroy the corporations, not empower them!

          Was it? I always thought that free software was about empowering the users — raising then up, not dragging anyone down.

          1. 9

            Open source has always been about empowering the corporations from the beginning, and free software has always been about preventing corporations from exploiting users, which under the current capitalist system amounts to destroying or crippling them.

            1. 1

              yeah i was being kinda loose to fit the star wars meme.

              But open source is basically corporations taking over the free software idea and twisting it for their own benefit. So I should have said “free software” of course but eh the article said “open source”.

            2. 10

              This is a weird attitude. I’m all for open source and have been working on open source full time for several years.

              But just because someone starts an important/interesting project doesn’t mean anyone should demand it be open source.

              The obvious response is: Start your own open source browser project, and recruit or pay the 100+ developers it will take over decades! If it were easy or cheap, we’d see a lot more of these types of projects.

              1. 5

                I don’t demand it, I just would prefer not to run some person’s code nobody can read.

              2. 8
                1. 4

                  It is this part of the answer that I find more interesting: “There’s no current plan for that as we don’t have a large corporation backing our development. “

                  Well, imagine they release it today: people will report issues, create PRs, ask for features, etc.

                  Responding to that in a vaguely timely fashion takes up a lot of time. If you’re a small company, you may not want to spend the time/money.

                  1. 15

                    You don’t have to have an issue tracker, or forums, or accept contributions, or even have source control.

                    It’s open source if you dump a tarball once per release.

                    1. 7

                      I’ve worked on open source without a public bugtracker. We were flamed for that. “Not really open source” etc.

                    2. 5

                      More than that, they want to sell it.

                      1. 2

                        I would like Flow to be open source, but I don’t care enough to do anything about it. If I really wanted to make it happen, here’s how I’d go about it:

                        1. Find enough developers who will commit to maintaining it properly
                        2. Approach Ekioh and ask them to make a deal
                          • They would benefit from additional contributors without paying maintenance costs
                          • They will probably want some cash too
                        3. Crowdfund to raise the cash

                        That’s pretty simplistic, I realize. But my point is just that license problems are business problems, and can sometimes be solved.

                      2. 4

                        I think it’s honestly a misdirection. There have been plenty of good open source projects with small businesses behind them. It’s like saying “Oh I can’t do the dishes tonight because I don’t have large corporation backing”.

                        1. 12

                          I’ve worked at one of those (one of the first to do it) and when I read that sentence it, I just nodded. “Yeah, can understand that.” What they mean is probably that they need income, every month, and they’re worried that by opening the source their existing business model is at risk and they don’t have an obvious replacement.

                          The worst case is roughly: zero outside contributions, a wide user base that pays nothing and expects much, the user base does not contain prospective customers, and too many of the existing customers decide to stop paying and just use the free offering. With skill and luck it’s possible to devise a new business model and sales funnel that uses the width of the user base, but doing that takes time, and without a corporation backing it, how does one keep the lights on meanwhile?

                          1. 4

                            What they’re really saying is they don’t have the skill or finesse to pull it off. That’s fine, however plenty of small businesses have made great profits while open sourcing their products. You don’t “need” corporate backing, and I’d argue if anything it’s an obstacle rather than a benefit.

                            1. 10

                              The skill and finesse to pull it off is considerable, IMO it can be regarded as infinite unless you have two more things:

                              • skill and finesse
                              • luck
                              • funds to last you through a period without income.

                              Skill alone isn’t enough.

                              A “large corporation” in this context is simply one that’s large enough to have one or more sources of income unaffected by the product being developed, and whose other income is large enough to carry a team through the product development phase.

                              (I’ve worked at three small opensource companies and spoken to my counterparts at others.)

                              1. 1

                                Not saying your concern is entirely invalid, I think those things DO matter. I just also think the reality is probably somewhere between “It can’t be done” and “It’s trivial to do”. The idea that you can’t run an OSS business without backing by a major corporation is probably untrue. The idea that you can run an OSS business without capital, luck, or skill is probably also untrue. I personally found it upsetting that he was attempting to put it all on a lack of corporate backing instead of just saying it was a strategic decision to keep an edge on competition or something. I often find when people deflect blame on to things they can’t control they are often trying to sidestep the extent they do have responsibility or control over the situation.

                              2. 5

                                What fields were they operating in? Are they still prominent or even around? Were they ever prominent?

                                Where did they get money? Corporate customers, side gigs or a big inheritance? Did they detour from their core paying business to do open source?

                                How long did it take for them to become sustainable? Did they?

                                What’s the proportion of “plenty” in comparison to the competition that didn’t make it? To the corporate-backed competition? To the competition that’s still around with the same premises?

                                Not to come off as too much of a duck here, but all these questions are very important when saying someones have generally made money. Surely the response might warrant more of a study than a reply, but seeing how under-staffed and -paid open source is, I’m a bit triggered by negating legit concerns with “others done it”.

                                1. 2

                                  I’m a bit triggered by negating legit courses of action with “it can’t be done”, so… I doubt we’ll have a tremendously productive discussion. I think your questions around it are fair and reasonable but I think our stances and positions are too far apart to find the center in the comment thread. I’m not really interested in debating this out however I do appreciate that you took the time to come up with good challenges to my point.

                          2. 1

                            I’m curious about the name. What would have been your choice?

                            1. 2

                              Seeing as the company is named Ekioh, perhaps “Ekioh Browser Engine”, EkEng or EBE for short, or maybe a four letter word that isn’t already used by multiple software projects

                              1. 2

                                I probably would go Ekioh Browser - descriptive yet unique by including the existing company name. There’s just a trend right now to use fairly short, generic names. I imagine the marketers are like “we want to evoke a feeling” but I just want some decent idea of what it is and how it is distinct.

                            2. 17

                              Does the fact that the browser is not open-source mean that it is not bringing diversity to the market? I’d argue that browser diversity was in a healthier state when Opera had a proprietary engine than it is now that Opera uses Chromium and Blink.

                              Don’t get me wrong, I’d much rather see this be open-source, but I don’t think the fact it’s closed source means it’s irrelevant.

                              1. 40

                                one thing to keep in mind is that privately controlled web engines can disappear without leaving a base for a community to develop, as with presto.

                                1. 9

                                  That’s a fair argument.

                                  1. 3

                                    Open source software can disappear, too, when the entire development team goes away.

                                    I’m not aware of any open source that was

                                    • developed by a smallish company
                                    • opened
                                    • received substantial contributions from outside

                                    AFAICT, if something comes from a company and isn’t an obvious non-product like e.g. lepton, then outsiders regard it as that company’s product, and don’t spend their time developing that company’s product for free. A community does not develop.

                                    I’d be thrilled to learn otherwise. Particularly how small companies might get others to develop their product for them.

                                    1. 2

                                      IIRC even the Mozilla codebase languished for quite a while, long enough for the company to go under before it got really picked up by a community. It was a last-ditch desperate effort, but still…

                                      1. 2

                                        Doesn’t Netscape/Mozilla/Firefox fit your criteria? Plan 9 also comes to mind.

                                        1. 2

                                          Wasn’t Plan 9 a Bell labs thing? That is to say, unless I misunderstand what you mean by “Plan 9” it was produced by one of the largest, most famous monopolies in US history. Or pretty much the opposite of a smallish company.

                                          I would not call Netscape or AOL (depending on who you want to attribute the open source release to) smallish either… if memory serves they were worth $10 Billion or so at their peak. But that pales in comparison to Bell.

                                          1. 2

                                            Right. (The $10B is irrelevant IMO, the relevant number is about $2B according to Wikipedia.)

                                            So from the point of view of the Flow people who might be considering going an open source route, there’s a distinct shortage of examples to learn from. A $2B company whose CEO regards as an “amalgamation of products and services” is hardly relevant.

                                            Mozilla was founded with a ten-digit endowment from AOL. Fine for the users, but it makes Mozilla irrelevant as a case to learn from for teams without such fortune.

                                            1. 1

                                              (I was assuming that the poster I replied to was sincerely arguing that Netscape or Plan 9 would count as something from a small-ish company. If my sarcasm detector was miscalibrated, mea culpa.)

                                              This is perhaps the only case in the world where I’d call a difference of $8B “splitting hairs” :)… I’m no more prepared to argue that a $2B company is small than I am to argue that a $10B company is.

                                              1. 1

                                                No, your rant detector was miscalibrated.

                                                Some of these pseudo-arguments annoy me so very much. I wish opensource advocates would use real arguments, not shams that look good at first glance, but make open source look bad in the eyes of developers/teams that are considering going open source. 39 upvotes for something that silently implies that open source can’t/won’t disappear means 39 people who aren’t thinking as carefully as I wish opensource people would. It gets to me and I start posting rants instead of staying properly on-topic. Sorry about that.

                                                1. 1

                                                  sorry; i missed that you asked about “smallish” companies and i misunderstood the thrust of your argument. i guess you were arguing that it would be a risk for flow to open source their browser? i don’t disagree, but that’s different from the question of how much we should care about or support this effort, as people who care about browser diversity.

                                                  are you trying to argue that free software can disappear without leaving a base for a community to develop? what line of careful thinking would lead you to that conclusion?

                                                  1. 2

                                                    The careful thinking is based on two things.

                                                    First, an observation that the number of outside committers to a conpany’s product is extremely small. People don’t choose to use their own time to work on someone’s product — they find something else to work on. Because of that, the development team for any opensource product is overwhelmingly in-company.

                                                    Second, source access is necessary but not sufficient for good software development. Much of what makes development practical is in the team. It’s drastically easier to develop software (both fixing bugs and developing new features) if you can speak to the people who’ve worked on it so far, ask questions, get answers.

                                                    Both of those are rules of thumb, not laws of physics. If you however assume both to be absolutely true, then there’s no difference between a single-product closed-source company doing an opensource dump when it’s acquihired and an opensource company with a single opensource product. If you (more realistically) assume both things to be true with exceptions, then the difference is as large as the exceptions permit.

                                                    You may compare threee scenarios for product/team/company closure, whether it’s an acquihire, bankruptcy, pivot or even things like the whole team going on a teambuilding exercise on a boat, and the boat sinking:

                                                    • Open source company closes (any reason): New team may form from volunteers, continuity is lost.

                                                    • Closed source company closes, dumps source on github: New team may form from volunteers, continuity is lost.

                                                    • Closed source company closes, does not dump source on github: End of story.

                                                    Ie. open source has advantages and some of them are IMO significant, but safety or continuity in the event of the team going away isn’t one of them. “Safety” and “continuity” are big words. A new team may spontaneously form, but that’s far from automatic, so there’s no safety, and and if it does form it hardly provides continuity.

                                                    1. 1

                                                      that all makes sense, and does not contradict the fact that open source products provide a base for community development, even if the base is just a source code dump. there may be a continuity barrier, but it can be overcome.

                                                      for a browser engine, it makes a difference whether it is released like gecko, allowing forks and community development, or released like presto, where a pivot by a private company ends the possibility of further development.

                                                      hopefully you see now that my argument was real and not a sham, and your wish for open source advocates to think carefully is fulfilled.

                                                      1. 1

                                                        Well, it provides a base in almost exactly the same way as, say, Mitro’s code dump did when it was acquired. Mitro could have opened the source earlier (it actually did so on the day as part of its acquihiring process), and I don’t see any reason why an earlier open source process would have provided more of a base.

                                                        1. 1

                                                          sure, but before a company does a code dump there is no assurance that they will if the company pivots or goes bust.

                                                          1. 2

                                                            True. However, do you think that’s a major aspect of uncertainty? I think the users you have in mind aren’t paying customers, right? Someone who isn’t a paying customer (who has no contractual relationship with the maintainers) can hope for continued development, support, years of unpaid service, but only hope, no more. There’s no assurance of bugfixes, of new features, of a port to the next OS version, of compliance with next years’s laws or the ability to read next year’s Microsoft Word files, or that the next version will be open source.

                                                            It’s just one more item on the list of hopes.

                                                            You’ve probably heard stories about companies who implement major new features and then leave them out of the open source tree? I heard about someone who did that with Catalina support recently. It was a tool often used by system integrators, can’t remember the name, but it’s said to be the only open alternative in its niche. For these system integrators, open source was basically a free trial. Once they had invested in that tool, deployed it widely, their customers upgraded to Catalina and they needed to react in a hurry.

                                                            1. 1

                                                              True. However, do you think that’s a major aspect of uncertainty? I think the users you have in mind aren’t paying customers, right? Someone who isn’t a paying customer (who has no contractual relationship with the maintainers) can hope for continued development, support, years of unpaid service, but only hope, no more. There’s no assurance of bugfixes, of new features, of a port to the next OS version, of compliance with next years’s laws or the ability to read next year’s Microsoft Word files, or that the next version will be open source.

                                                              the same applies to proprietary projects so i’m not sure what you’re getting at.

                                                              are you saying even corporate-led open source projects don’t provide a guarantee that the project will continue to be open source? that’s fine but again doesn’t contradict anything i’ve said. it’s still better than proprietary from the perspective of browser diversity because the latest open source release would still provide a base for community development.

                                            2. 1

                                              i must have missed the word “smallish,” whoops

                                      2. 2

                                        Even Internet Explorer, shitty as it was, using its own engine made the web more diverse and forced developers to at least keep some semblance of portability. With the arrival of Edge, they also went the Blink/Webkit path.

                                        There are basically only two (or three, if you count Blink and Webkit as distinct) rendering engines left which matter. That’s truly sad.

                                        So yes, seeing a new browser emerge is actually something that I find hopeful.

                                        1. 2

                                          With the arrival of Edge, they also went the Blink/Webkit path.

                                          They did not do that with the arrival of Edge. They started Edge on its own engine and only just recently released a blink-based version.

                                          IE may have initially encouraged some portability, but its net effect was quite the opposite. There were a lot of IE-only products by the time we saw version 6 or so.

                                          1. 2

                                            IE may have initially encouraged some portability, but its net effect was quite the opposite. There were a lot of IE-only products by the time we saw version 6 or so.

                                            That was when IE had “won” the browser wars and had added nonstandard features which other browsers didn’t support. Once they’d killed off Netscape people didn’t have any incentive to run other browsers, and those extra features got used by developers, entrenching it further because of these IE-only products you mention.

                                      3. 6

                                        This is the only thing I was looking for too. Not sure how Flow is supposed to solve any of the problems posed by a lack of browser diversity if it isn’t open source.

                                        1. 11

                                          Any alternative implementation of web technologies that isn’t WebKit gaining a non-trivial market share is a positive for those of us concerned about browser diversity, regardless of whether that implementation is open-source or not.

                                          1. 1

                                            Android might be a point, but without Windows it will not get a non-trivial market share.

                                        2. 3

                                          Thank you, thats one of the first items I check

                                          1. 4

                                            Can you come up with a better way to sustain its development than “people paying for it”? Unfortunately, free software isn’t free to develop.

                                            1. 1

                                              I’m not complaining that they’re charging for it; I just wish the article was up-front about the licensing at the outset so I would know not to waste my time on it.

                                          1. 4

                                            Since Go 1.5, Go is implemented in Go. It also has no external dependencies, so to build Go only a Go compiler is required.

                                            This is huge, I agree. The ability to compile complex Go programs, including Go itself, without having to fall back to C or C++ is a game changer I feel.

                                            1. 4

                                              Love the Kayak animation!

                                              1. 6

                                                AWK can be good for prototyping an idea, but you (very) quickly run into its limitations. No typing, no array literal, functions arent first class citizens, cant pass arrays by value, no imports. Its even missing basic functions like array length.

                                                But biggest negative is the myriad implementations: NAWK, MAWK (2 versions), GAWK. Makes it very difficult to write portable code.

                                                1. 6

                                                  AWK can be good for prototyping an idea, but you (very) quickly run into its limitations.

                                                  If I consider when AWK was created (1977), I must say, that it is incredibly well designed and successful piece of software. Yes, it is sometimes ugly, sometimes limited …but it is still in use after 44 years! God bless Alfred, Peter and Brian.

                                                  (regardless we usually use the GNU implementation, it is still based on the original idea and language)

                                                  AWK and classic unix approach is quite limited when it comes to structured data. But we can push it bit further and improve by borrowing ideas from relational data model – and still use classic tools like AWK.

                                                  1. 3

                                                    funny enough, gawk’s –lint option will let you know what constructs are gawk (not posix awk) specific which helps with your biggest negative case. if you use vim, ALE for (g)awk scripts will highlight them inline.

                                                    1. 3

                                                      AWK can be good for prototyping an idea, but you (very) quickly run into its limitations.

                                                      A good programmer can work around these limitations. Just look at dwatch(8) on FreeBSD. Heavy use of awk.

                                                      https://svnweb.freebsd.org/base/head/cddl/usr.sbin/dwatch/

                                                      Or how about an HTTP caching proxy in gawk?

                                                      https://pastebin.com/raw/Fmf1Fu4b

                                                      1. 7

                                                        A good programmer can work around these limitations.

                                                        “Should they?” is a better question. They’re better off using a powerful tool that doesn’t limit them. Then, limit their use of it to what they need for maintainability. Subsets, DSL’s, and so on.

                                                        1. 3

                                                          Shell script with embedded awk in functions paired with fd redirection AND eval’ed sudo. That looks like a maintenance nightmare for anyone who’s not the original author.

                                                          1. 1

                                                            It was reviewed and signed off by three other core developers, so I don’t think that’s going to be a problem.

                                                            https://reviews.freebsd.org/D10006

                                                        2. 2

                                                          I don’t write awk for work, more so for pleasure, and its limitations can make it fun to use. It clearly was influential on the languages we use today and it would be interesting to see a programming historian trace that lineage.

                                                        1. 21

                                                          My 2 cents. The other day, I wanted to test a new feature of Hugo that has not been released:

                                                          https://github.com/gohugoio/hugo/pull/6771

                                                          Hugo doesnt have a CI, so the only option was building it myself. This might not sound like a big deal, but I am on Windows. On Windows, you typically have problems building projects as the developers many times dont even test on Windows. This will lead to compile and dependency errors.

                                                          Hugo is a big project, the Zip file is 12 MB, so I was pretty sure I would have some trouble with this. But I didnt. I just followed the instruction:

                                                          git clone git://github.com/gohugoio/hugo
                                                          cd hugo
                                                          go install
                                                          

                                                          and it took a while, but not a single error. I have built many projects with C, C++, C#, D, Nim and others over the years, and this is the first time I have had this experience with this large of a project. The closest to this I think is FFmpeg, but even with that you needed to install dependencies else something would be missing from the output or simply fail. I had a similar experience with Rust, where I needed a new build:

                                                          https://github.com/getzola/zola/issues/893

                                                          except Rust just failed spectacularly, because it seems one of the dependency crates uses C on the backend, and has poor or no support for Windows:

                                                          https://github.com/compass-rs/sass-rs/issues/63

                                                          Go lets me get work done. I can focus on the code, where with other languages, I find myself getting distracted with the tooling or build process.

                                                          1. 15

                                                            Every time I write code in a language other than Go, I’m startled by how weak the tooling is. After writing all Go for about two years at a job, I switched to a place that has almost exclusively Python projects. To say that I miss go fmt is the king of all understatements. Also, after Go, I don’t see why every programming language doesn’t just come up with a native way of running tests a là go test. It’s weird to have a series of codebases where the command to execute their test suites is only the same because it’s placed behind a standardized make target.

                                                            1. 16

                                                              Maybe it’s just the ecosystems I play in, but it appears that language tooling is converging on this pattern though.

                                                              Rust:

                                                              • cargo fmt
                                                              • cargo test

                                                              DotNet:

                                                              • dotnet format
                                                              • dotnet test

                                                              Elixir:

                                                              • mix format
                                                              • mix test
                                                              1. 11

                                                                Zig, too:

                                                                • zig fmt
                                                                • zig [build] test
                                                                1. 2

                                                                  That’s awesome, thank you for your response! I know about prettier for Javascript (and to their credit, it really makes absolutely no sense to have a formalized code formatter for a language with no official interpreter). I also knew about cargo (slipped my mind), but am firmly outside the .NET/Elixir ecosystems, so glad to see that happening.

                                                                  1. 7

                                                                    There’s also pyfmt for python, and pytest. I think pytest came before go, though.

                                                                2. 5

                                                                  Black (https://github.com/psf/black) is the Python equivalent of go fmt.

                                                              1. 6

                                                                Looking to convert my static site from Hugo to Zola

                                                                1. 5

                                                                  What’s next, Verne?

                                                                  ;)

                                                                  1. 1

                                                                    what does that even mean

                                                                    1. 2

                                                                      Hugo, Zola, and Verne are literary figures

                                                                      1. 1

                                                                        French literary figures, at that. It shames me that Verne was the only one I could remember off the top of my head, but I see him as a spiritual successor to Hugo at least.

                                                                  2. 2

                                                                    I’d like to throw in Pelican in to the ring as well! I’ve tried pretty much every status site generator and for many reasons Pelican is still the best.

                                                                    1. 1

                                                                      I think I will try that, as I already found a problem with Zola

                                                                      https://github.com/getzola/zola/issues/925

                                                                    2. 1

                                                                      Zola looks very neat. I wonder what a conversion from Jekyll->Zola would look like for my site.

                                                                      1. 1

                                                                        Curious to hear how this goes. From a cursory glance, it looks like Hugo and Zola are fairly similar

                                                                        1. 1

                                                                          I was considering this as well, but I actually ended up on eleventy, and I’m really happy with it. Specifically, it feels customizable in ways that neither Hugo nor Zola are. Might be worth a look!

                                                                          1. 1

                                                                            I dont use any JavaScript software. Personally I feel that JavaScript isnt appropriate for applications outside the browser.

                                                                        1. 5

                                                                          Time to upgrade this benchmark of scheme implementations?

                                                                          1. 2

                                                                            Thanks for this. Even since I saw this [1] I have been looking into Lisp. I started looking and realize its a pretty big community with many dialects and implementations

                                                                            1. https://fodor.org/blog/webassembly-hello-world
                                                                            1. 8

                                                                              -Wpedantic: webassembly isn’t a lisp, it just uses s-expressions for describing its text format.

                                                                              1. 1

                                                                                To quote you 7 months ago: “unreadable langauges with too many parenthesis”, let me know how your search goes.

                                                                                1. 1

                                                                                  Honestly I stand by that. Every example of Lisp I have ever seen, looks like this:

                                                                                  (sunday 10
                                                                                     (monday 11
                                                                                        (tuesday 12)))
                                                                                  

                                                                                  Where the linked syntax looks like this:

                                                                                  (sunday
                                                                                     10 (monday
                                                                                        11 (tuesday 12)
                                                                                     )
                                                                                  )
                                                                                  

                                                                                  Style matters. Its a small difference, but to me its markedly more readable.

                                                                              2. 1

                                                                                By the look of the raw numbers, guile has to be much more than an average of 2x speed up to be any where near chez.

                                                                                1. 2

                                                                                  “Compared to 2.2, microbenchmark performance is around twice as good on the whole, though some individual benchmarks are up to 32 times as fast.”

                                                                                  So depending on how “around” rounds off, it may be. :-)

                                                                                2. 1

                                                                                  I was surprised to see that gambit overtook Chez. I honestly have no idea who uses it.

                                                                                  1. 1

                                                                                    That’s a combined statistics of gambit and gerbil. I use gerbil for small stuffs.

                                                                                1. 70

                                                                                  Windows 10 has ads in the start menu, ads masquerading as security alerts, ads masquerading as software updates, uninstallable bloatware, a bizarre distinction between Metro and everything else (exemplified by the bifurcation of Settings and the Control Panel)….

                                                                                  So, I’m all for you doing you, but I can’t bring myself to run it.

                                                                                  1. 31

                                                                                    The amount of Windows apologia in this thread is astonishing.

                                                                                    Usage patterns, convenience or “brains”, I don’t care. Windows is a non-free operating system, and as such inherently user-unfriendly. The developments of the last few years are just an example of what you get when you’re OS is a service, you’re permitted to use.

                                                                                    1. 22

                                                                                      inherently user-unfriendly

                                                                                      One of the main “Windows apologists” in this thread (@feoh) has stated that they have to run Windows to get a usable computing environment considering their eyesight. So in this case Windows is more “friendly” than a FLOSS alternative.

                                                                                      Most Linux user interfaces I’ve seen just ape GUI conventions (many based on research) from closed systems (Windows and Mac).

                                                                                      1. 5

                                                                                        One of the main “Windows apologists” in this thread (@feoh) has stated that they have to run Windows to get a usable computing environment considering their eyesight. So in this case Windows is more “friendly” than a FLOSS alternative.

                                                                                        As someone with terrible vision that’s only getting worse (including complete blindness in one eye), this is the kind of argument I can absolutely understand. Windows is, from what I understand, the most accessible of all the major operating systems.

                                                                                        But defending ads in the Start Menu, well….them’s fightin’ words. :)

                                                                                        1. 11

                                                                                          My communications skills are clearly lacking because I cannot comprehend a set of perceived statements from me that are farther from the truth.

                                                                                          As a matter of fact, I also run desktop Linux and as of Ubuntu 16/17 they’ve added key chorded full screen zoom which is an accessibility feature I need to make a computing environment usable.

                                                                                          What I actually said is that at the time I bought my laptop, I need a 17” screen and there were no AMD chipset laptops in that size available that I could see. Operating system didn’t even come into that aspect of the discussion.

                                                                                          And I’m not a Windows apologist. Honestly I think this typifies the kind of all or nothing thinking that hamstrings progress in the wider computing community. Either you’re with us or you’re against us. Some of us are willing to adopt a more nuanced view.

                                                                                          Windows is a tool. It serves some people’s needs admirably, others not so much. That is the alpha and omega of this situation, and all the meaningless bluster and back and forth is utterly pointless.

                                                                                      2. 12

                                                                                        The amount of Windows apologia in this thread is astonishing.

                                                                                        Not really. The lobste.rs community is designed with a lot of goals in mind, but if the About page is anything to go by, it was never explicitly designed to be a site for the promotion of Free Software. And, as they say in the TDD tribe, if you don’t explicitly test for it, it doesn’t happen.

                                                                                        (for context’s sake, I have a Windows VM and a few machines that I explicitly run it on, but I recently switched my main laptop back to Linux because I just couldn’t get used to how SLOW the filesystem operations were; I still have a Windows 10 VM that I occasionally boot up to test Windows software on and make sure it’s properly up-to-date)

                                                                                        1. 13

                                                                                          The lobste.rs community is designed with a lot of goals in mind, but if the About page is anything to go by, it was never explicitly designed to be a site for the promotion of Free Software.

                                                                                          If it were I would never have joined. I value a diversity of opinions.

                                                                                          1. 14

                                                                                            I can’t speak to the original intent since I wasn’t there, but it is certainly my personal opinion that it’s important to have a variety of perspectives on this topic. I would bring that opinion to my moderation if it ever became relevant.

                                                                                          2. 4

                                                                                            Of course, I know there are different opinions and I know that there are windows users, all I am saying is that after being a member for over two years and visiting the page for much longer, I was surprised to see how many people use windows, let’s say “willingly” (as opposed to the usual “I have to because of Software X/Job Y/Requirement Z/…”), as I rarely encountered this opinion until now. It’s kind of like if suddenly a lot of corporate COBOL enthusiasts would pop up.

                                                                                            1. 9

                                                                                              I was surprised to see how many people use windows, let’s say “willingly”

                                                                                              Why is that surprising? It provides drivers for most hardware. You can run Microsoft Office (which a lot of people have to, to deal with paperwork at their day job), arguably the user interface is more usable/stable than GNOME/KDE, and you can run Linux programs via WSL [1].

                                                                                              There are a lot of technical people who just optimize their environment for whatever they work on and want boring/predictable/mainstream/least-friction for the rest.

                                                                                              I don’t see why people would have to apologize or defend themselves for using Windows, writing articles about Windows, or discussing Windows on lobste.rs.

                                                                                              Disclaimer: I haven’t used Windows since Windows 3.1, outside for installing Windows every 2-3 years in a VM to observer what the state of that ecosystem is.

                                                                                              [1] I work for a university, a lot of paperwork, collaboration on research project proposals, etc. requires Microsoft Office. Or to give a practical anecdote: when one of my students had problems using the university’s VPN, they literally said “oh, you try to use the VPN with Linux, you probably shouldn’t do that”.

                                                                                              1. 8

                                                                                                Why is that surprising? It provides drivers for most hardware. You can run Microsoft Office (which a lot of people have to, to deal with paperwork at their day job), arguably the user interface is more usable/stable than GNOME/KDE, and you can run Linux programs via WSL [1].

                                                                                                I think this is a window into a very common personality attribute for technologists. We tend to hold our opinions so strongly that they come to be seen as concrete facts. I’ve fallen into this pattern innumerable times myself.

                                                                                                1. 2

                                                                                                  Or to give a practical anecdote: when one of my students had problems using the university’s VPN, they literally said “oh, you try to use the VPN with Linux, you probably shouldn’t do that”.

                                                                                                  You used to be able to VPN into my university from Linux. Then they added 2FA and broke everything.

                                                                                                  1. 1

                                                                                                    You used to be able to VPN into my university from Linux. Then they added 2FA and broke everything.

                                                                                                    :(

                                                                                                    Our university actually supports three different VPNs. The easiest solution from Linux is the AnyConnect VPN, which works with openconnect. However, the VPN server returns incorrect incorrect routes, which breaks things by default with openconnect. I worked around this by using a custom openconnect script that sets the routes correctly.

                                                                                                    I have been using this without issues since I have started working remotely > 1 year ago. But now they are going to remove the AnyConnect support on April 1. Guess I have to figure out one of the two other VPN options, last time I tried, they didn’t work out of the box.

                                                                                                    Of course, using OpenVPN or Wireguard would be to easy ;).

                                                                                                2. 8

                                                                                                  If you’re so surprised that people have this opinion, then it’s probably worth looking into why people have this opinion. Like for me, I’ve made it clear: I love Windows because it has AutoHotKey. I can easily tweak the computer to work exactly how I want. Below, I asked “how do I write a keyboard shortcut for ∃ in Linux?” the two answers I got were 1) use emacs, 2) install a library that doesn’t work on Wayland. Whereas with AutoHotKey I just write

                                                                                                  >^e:: Send, ∃
                                                                                                  

                                                                                                  Now right ctrl + e gives me ∃. This works anywhere and doesn’t require me to change the fundamentals of my OS.

                                                                                                  1. 2

                                                                                                    I love Windows because it has AutoHotKey.

                                                                                                    I don’t quite see what about AutoHotKey is intrinsically limited to windows. I have until yesterday never heard of it, but I don’t see why this couldn’t be ported to other operating systems. That aside, it’s not an OS feature, but in our world would rather be a counted as a window manager feature, and as such it’s not surprising that there is an X tool and a Wayland tool.

                                                                                                    Below, I asked “how do I write a keyboard shortcut for ∃ in Linux?”

                                                                                                    I gave the first answer, since you’re basically just doing a paler version of Emacs for the windows UI. But more importantly, you’re example really looks like a gimmick, or at least something very specific to a particular workflow. I could just as well ask you

                                                                                                    • how do you run shell scripts using at(1)
                                                                                                    • how do you pin a window to stay above others
                                                                                                    • how do you create dynamic workspaces
                                                                                                    • how do I install my own tool bar
                                                                                                    • how do I add a debian repository
                                                                                                    • how do I manage all updates centrally*
                                                                                                    • etc.

                                                                                                    I don’t think that most of these things are intrinsically possible or impossible because of the operating system – certainly don’t require the fundamentals of an operating system to change. Most of these questions work in favour of my argument, because the software has already been written for or by the system/users. But this is mostly a contingent fact. Whereas the principal values of the two systems, one being open to inspection and change the other being hidden from the public and it’s users, seems like a much more decisive factor if you ask me.


                                                                                                    Necessary rant: * without having each tool permanently prompting me to go download some updater from some wierd website I have to trust and run permanently, hoping it doesn’t install a toolbar I will not be able to get rid of, and conflicting with my permanently running anti virus program that wastes 80% of my CPU.

                                                                                                    1. 9

                                                                                                      I don’t quite see what about AutoHotKey is intrinsically limited to windows. I have until yesterday never heard of it, but I don’t see why this couldn’t be ported to other operating systems. That aside, it’s not an OS feature, but in our world would rather be a counted as a window manager feature, and as such it’s not surprising that there is an X tool and a Wayland tool.

                                                                                                      The difference is it hasn’t been. If you look for an equivalent on linux you find a mess of abandoned projects that only partially work. For Mac, there’s hammerspoon, which is significantly more complex.

                                                                                                      I’m also unsurprised you haven’t heard of AHK. You said earlier you’re astonished that people are defending Windows, which means you probably don’t know very much about how people actually use Windows.

                                                                                                      I gave the first answer, since you’re basically just doing a paler version of Emacs for the windows UI.

                                                                                                      The difference is that I now have to use Emacs, when AHK works for all windows. AHK acts as an overlay on top of everything else, so I can use it to hack in the behavior I want to any app.

                                                                                                      And I can still keep using Vim.

                                                                                                      But more importantly, you’re example really looks like a gimmick, or at least something very specific to a particular workflow.

                                                                                                      That’s because I gave one example of how I use AHK, where the answer to that by itself requires me to understand Linux and window managers pretty well. It’s specific to a particular workflow, but that’s the point: I can immediately customize the OS to my particular workflow without a deep understanding of how the OS works. I can give you a bunch other things I do with AHK:

                                                                                                      • Start and stop recording videos from my presentation clicker.
                                                                                                      • Make GUI for saving notes from clipboards into multiple seconds without it disrupting my current workspace view or losing my attention.
                                                                                                      • Switch between specific windows without alt-tabbing
                                                                                                      • Copy a url and title as a markdown link for easy transfer to another window
                                                                                                      • Firefox doesn’t have a keyboard shortcut for “start a screenshot”. Add one.
                                                                                                      • Add a bunch of unavailable shortcuts to the TLA+ IDE
                                                                                                      • Fave or unfave a song in spotify without having to switch to the spotify app
                                                                                                      • Clone a file (foo.md to foo.md.1) without having to stop editing the file, or remember how many copies I made
                                                                                                      • Toggle youtube playback from 1x and 1.25x tempo
                                                                                                      • Quickly drop hashtags into a twitter thread while trying to livetweet a conference, without messing up my clipboard

                                                                                                      I set up hotkeys for all of these. I’m sure I could do the same in Mac or Linux, but it wouldn’t be easy. I’d have to get a much deeper understanding of these systems than I already had, as opposed to using AutoHotKey, where the most complex of those features took me an hour. Are they gimmicks? Maybe! But they’re gimmicks that make my life much, much better.

                                                                                                      Sure, Windows might be “hidden from the public and it’s users”, but AHK made it easy to get work done. Reading XDG specifications did not.

                                                                                                      EDIT: Also, just to be clear about my background, I’ve used Linux as my only OS for several years, and yes I tried to do some of these things in Linux, too.

                                                                                                      1. 1

                                                                                                        The difference is it hasn’t been. If you look for an equivalent on linux you find a mess of abandoned projects that only partially work. For Mac, there’s hammerspoon, which is significantly more complex.

                                                                                                        Again, this is a particular problem, not something you can use to sustain your general claim. The fact that it hasn’t been until now means nothing to me, since this could just as well change tomorrow, but from your argument up to now, I don’t think that would instantly make you switch.

                                                                                                        Also, the fact that these projects aren’t being maintain, is somewhat of a sign to me that there isn’t a big need for them either? Or is it mere luck that AHK is being properly maintained on Windows?

                                                                                                        I’m also unsurprised you haven’t heard of AHK. You said earlier you’re astonished that people are defending Windows, which means you probably don’t know very much about how people actually use Windows.

                                                                                                        I know plenty of people who use windows, and I always hear the same issues, the same problems. When I watch them I mostly see them struggle, having issues or obvious inefficiencies. If they were not held hostage by propitiatory software developed exclusively for Windows, I am absolutely certain they would have a better user experience on other platforms.

                                                                                                        The difference is that I now have to use Emacs, when AHK works for all windows.

                                                                                                        Well that’s your problem: You leave Emacs ;^)

                                                                                                        (It’s kind of off-topic, but my point was that Emacs-like environments should allow users to configure keybidnings to whatever function one wishes, all of them inspectable by the user, and mostly redefinable during the run-time. This is the essence of a user-programmable system I argue is superior and neither hides nor distorts the users relation to the device)

                                                                                                        It’s specific to a particular workflow, but that’s the point: I can immediately customize the OS to my particular workflow without a deep understanding of how the OS works. […]

                                                                                                        Again, this is an entirely contingent argument for Windows, as you don’t explain why Linux cannot have this. I guess it’s cool, but I don’t see what makes it technically unique/exclusive.

                                                                                                        1. 5

                                                                                                          Also, the fact that these projects aren’t being maintain, is somewhat of a sign to me that there isn’t a big need for them either? Or is it mere luck that AHK is being properly maintained on Windows?

                                                                                                          From what I understand from my research the challenge is making something that works for everyone. Like the Wayland/X11 split by itself makes things tough. Sure, it’s technically feasible, but it’s going to be so much effort that people give up.

                                                                                                          Again, this is an entirely contingent argument for Windows, as you don’t explain why Linux cannot have this.

                                                                                                          Linux could have this. Windows already has this. I’m not going to switch back to Linux because it could eventually have a tool that I already use every day.

                                                                                                          1. 1

                                                                                                            I responded to the first point in a sibling response to @feoh, but just to reiterate it here: AHK is a DE/WM feature, not a OS feature. A cross-DE implementation of a AHK-like would be like requiring a cross-Version implementation of AHK on windows. If the format is standardized, there’s no reason why each DE/WM couldn’t have something like this for itself, if it’s users want it.

                                                                                                            Regarding the second point, I’m not asking anyone to switch because of a potential ability (in our case I don’t have to care), I only want to make the point that this isn’t a real argument for Windows as such.

                                                                                                            1. 4

                                                                                                              If the format is standardized, there’s no reason why each DE/WM couldn’t have something like this for itself, if it’s users want it.

                                                                                                              The point is it doesn’t exist, and (if how much you dismiss the value is any indication) probably won’t exist. At best there will be “you get this subset of features with DE/WM A, this subset with DE/WM B”, etc. Which doesn’t help me.

                                                                                                              “Windows has this feature that could exist for some Linux distro but doesn’t yet” is, in fact, a good argument for me continuing to use Windows. To make the argument problem a bit more clear:

                                                                                                              “I like London better than Los Angeles.”

                                                                                                              “Why? There’s nothing intrinsically better than London, and Los Angeles has better weather.”

                                                                                                              “The public transit in London is better.”

                                                                                                              “But Los Angeles could build better public transit, so your argument is invalid.”

                                                                                                        1. 1

                                                                                                          Thanks for the pointer. I’d heard hints about this on podcasts and other reading but concrete citations are always super helpful.

                                                                                                          From where I sit being able to say “Windows Defender is all you need, and it’s free and comes bundled with Windows 10” is a substantial quality of life boost from the bad old days when you had to trepidatiously choose and pay for some incredibly heavyweight antivirus package that would bog your system and throw up all kinds of annoying dialogs in the name of protecting you :)

                                                                                                          It’s just another example of aspects of “living” in Windows that used to be horrible and just aren’t anymore.

                                                                                                          That doesn’t mean Windows is superior or that everyone should run Windows as opposed to Linux or anything else, it’s just a data point which you can use to pick the tool set that works best for you.

                                                                                                        2. 4

                                                                                                          I don’t quite see what about AutoHotKey is intrinsically limited to windows. I have until yesterday never heard of it, but I don’t see why this couldn’t be ported to other operating systems. That aside, it’s not an OS feature, but in our world would rather be a counted as a window manager feature, and as such it’s not surprising that there is an X tool and a Wayland tool.

                                                                                                          Respectfully, you’re rules lawyering his personal preference. Think about whether that actually makes sense.

                                                                                                          1. 3

                                                                                                            I actually don’t understand what you’re trying to say in response to that paragraph. I would appreciate if you could reword it.

                                                                                                            1. 3

                                                                                                              OK thanks. I won’t re-edit the original so anyone who cares to see the context can. Basically, the OP was saying “I love Windows because AutoHotKey gives me the flexibility I need to be able to configure all the important aspects of my system’s human interface.”

                                                                                                              The reason Windows different from, say Linux is exactly as the OP said, Windows represents a single point of configurability for any given thing. There is ONE Windows desktop and ONE Windows API.

                                                                                                              On Linux there are innumerable desktop environments, window managers, and even low level graphics toolkits or whatever X and Wayland actually are :)

                                                                                                              It’s not that it’s impossible in LInux, but the diversity inherent in the platform makes it difficult and very inconvenient.

                                                                                                              For them, and their preferences, that ease and convenience of the interface and implementation available to them today with zero work is what they in particular love about Windows.

                                                                                                              By saying “There’s nothing special about Windows. You could do this all in Linux” it reads to me like you’re invalidating his preference with the existence of a theoretical possibility.

                                                                                                              1. 0

                                                                                                                I think the issue here is that you’re comparing Windows to all the various ways Linux can be used, which are basically all different systems. Just because by virtue of being a Kernel it can be used to run an OS, that in turn has multiple desktop environments, doesn’t mean that when you discuss something like AHK, a GUI extension, you get to argue via the kernel that this is a general issue of Linux. It might be seen as a deficiency of each DE, on it’s own, but this has no essential implication on the superiority of Windows in itself.

                                                                                                                By saying “There’s nothing special about Windows. You could do this all in Linux” it reads to me like you’re invalidating his preference with the existence of a theoretical possibility.

                                                                                                                The only think I am “invalidating” (a weird phrase) is the argument that the specific, contingent feature of AHK is a universal, essential argument for Windows/against “Linux”. You might call this theoretical, I call it clean.

                                                                                                                1. 5

                                                                                                                  Your reply typifies a kind of closed mindedness I see as very unfortunate.

                                                                                                                  NOBODY is saying that Windows is superior and LInux is inferior! The OP simply said “These are reasons I find Windows meets my needs best.”

                                                                                                                  This is a community of crazy bright people, why can’t we seem to wrap our heads around the idea that not everything is a fight to the death, only one of us comes out alive, good versus evil argument?

                                                                                                                  The world is painted in shades of gray, and tool choices are the grayest !

                                                                                                                  1. 1

                                                                                                                    I would like to emphasise that I am not arguing as a linux fanboy. I have in the past made multiple critiques of Unix and Unix-like systems that makes it harder for me to defend the position you are pushing me into.

                                                                                                                    I will reiterate my point once more: Convenience and gimmicks are not worth trading in software freedom and user control in for. (“Necessity”, as in “I need windows because software X because of job”, is another debate).

                                                                                                                  2. 2

                                                                                                                    The only think I am “invalidating” (a weird phrase) is the argument that the specific, contingent feature of AHK is a universal, essential argument for Windows/against “Linux”. You might call this theoretical, I call it clean.

                                                                                                                    Re-reading his statements, I don’t see anything anywhere about it being a ‘universal, esssential’ argument for Windows and against LInux. The OP was stating a preference based on how easily they could customize *their” system in ways that tailored to their exact needs.

                                                                                                            2. 0

                                                                                                              I gave the first answer, since you’re basically just doing a paler version of Emacs for the windows UI.

                                                                                                              I missed this in all the chop yesterday. This is a prime example of how you are perhaps unintentionally shoehorning someone else’s tool choice preferences into your rather constrained version of reality.

                                                                                                              In my opinion there is exactly zero correlation between customizing a Windows system with AutoHotkey (Or an OSX system with Alfred, for example) and emacs.

                                                                                                              In one case, we’re adding layers of nuanced refinement into a very rich and diverse existing ecosystem (AutoHotKey/Alfred) and in the other (emacs) we’re supplanting the entire operating system and its accompanying ecosystem and replacing ith with another paradigm entirely (which is incredibly powerful in its own right.)

                                                                                                              1. 1

                                                                                                                In one case, we’re adding layers of nuanced refinement into a very rich and diverse existing ecosystem (AutoHotKey/Alfred) and in the other (emacs) we’re supplanting the entire operating system and its accompanying ecosystem and replacing ith with another paradigm entirely (which is incredibly powerful in its own right.)

                                                                                                                Correct my if I am wrong, but doesn’t AHK provide the ability to programmatically extend your system-interaction? If yes, then the results seem to go in the same direction as Emacs does, if not then the entire discussion was pointless.

                                                                                                            3. 1

                                                                                                              how do I write a keyboard shortcut for ∃ in Linux?

                                                                                                              Maybe I’m just completely missing the point … but … what’s exactly the problem with “you add it to the keymap” that you encountered?

                                                                                                            4. 6

                                                                                                              Open your mind. Different people have different needs.

                                                                                                              Also, just because I say that Windows is fitting my needs in a particular context doesn’t mean that I’m a Windows ‘apologist’ (Honestly I find that whole idea rather insulting. I’m an open source advocate and have been since before FLOSS was a thing.)

                                                                                                              1. 4

                                                                                                                I consider Windows harmful, not only to it’s users but to the user’s friends, colleagues and their work environments. It promotes a usage-paradigm and human-computer relation that I do not think should exist. I am dogmatic about this, and I know some people don’t like it, but until convinced otherwise, I will do everything I can to fight this problem, and at best grudgingly tolerate it.

                                                                                                                1. 3

                                                                                                                  Respectfully this is exactly the kind of dogmatism that in my opinion slows the forward progress of our community and our field.

                                                                                                                  There are very few opinions in life one should be dogmatic about in my view. On the order of “Every human will die.” and maybe a handful of others.

                                                                                                                  1. 2

                                                                                                                    Well if we’re going to discuss dogmatism and it’s necessity, i think we’ve gone off-topic. Either way, I don’t think there’s much of a point in it.

                                                                                                                    1. 2

                                                                                                                      I don’t think it does. Linux and the ecosystem necessary to use it effectively wouldn’t have existed without the dogmatism of people who weren’t prepared to compromise with closed source software.

                                                                                                                      1. 3

                                                                                                                        Oh I couldn’t disagree more. Linux is rife with pragmatic decisions!

                                                                                                                        There is a vast difference between dogmatism and fervent dedication to a cause.

                                                                                                              2. 5

                                                                                                                I’m not sure what’s your point here. The OP argues that software centric person (such as visitor of this website) should clearly identify the faults of a closed operating system when this thread indicates otherwise.

                                                                                                                It has nothing to do with the “purpose of lobste.rs”.

                                                                                                              3. 7

                                                                                                                OS is a service, you’re permitted to use.

                                                                                                                Especially when they do stuff like prevent local account creation. I’m firmly convinced this is a step towards putting all users on a monthly Windows subscription.

                                                                                                                The amount of Windows apologia in this thread is astonishing.

                                                                                                                I use Windows for work, because I’m required to use Windows. I don’t hate it, but when I have a choice, I choose Linux (or a Mac). Windows just has a lot of enterprise business-like stuff tacked on and in my way, and bizarre and overcomplicated APIs written for it. It feels like the C++ of operating systems–folks starting bringing things into it without a clear vision and now it feels incoherent and overcomplicated with a lot of implicit behavior.

                                                                                                                1. 4

                                                                                                                  See my comments elsewhere in this thread. I personally feel that the era of the commercial desktop computing operating system as we know it is slowly drawing to a close. Both Microsoft and Apple are transitioning towards models that map more cleanly to the tablet space where the computer is a black box appliance that allows for very little user configurability, but on the other hand provides very little surface area for people who WANT an appliance to confidently use the device without fear of going someplace they don’t understand how to get back from.

                                                                                                                  This is why, despite my personal choice to use Windows 10 as my “get work done” environment, I am staunchly committed to the advancement of LInux on the desktop, because once the commercial OSen become utterly hostile to tinkerers like us, it and other FLOSS environments like it will literally be the only show in town.

                                                                                                                2. 5

                                                                                                                  It is however an incredibly accessible operating system, compared to whatever hodge-podge linux atrocity you’d prefer to torture someone with. Besides maybe Elementary OS, there is essentially no comparison in the usability of open source alternatives, which are designated “alternatives” correctly, because nobody that’s really honest with themselves would ever name them as a primary choice for a normal person’s graphical system.

                                                                                                                  1. 2

                                                                                                                    Windows issues aide, I’ve never understood the Elementary craze. I’ve tried it ( probably an early version) and half the things were unfinished, the other half wrong for me. Yet people adore it and compare it with the macos. I’ll have to try again, I guess.

                                                                                                                    1. 4

                                                                                                                      It’s probably just not the OS for you, and I’d really only compare the UX language to Windows because at the end of the day it’s still a Linux hodge-podge nightmare

                                                                                                                      1. 4

                                                                                                                        Yep, I’m a veteran user, past most of the distro hopping affinities and stuff. I still change things up now and then, but my primary interestis to have a stable environment. Don’t wanna fiddle with details as much.

                                                                                                                      2. 3

                                                                                                                        Funny thing - this is one of the points where I actually remember when starting with Linux.

                                                                                                                        If it wasn’t in the start menu, it didn’t exist. This was at a time when internet access wasn’t readily available and pre-Google. elementary does remind me of the first KDE/Gnome desktops of RedHat/SuSE 5/6 - everything kinda worked and it came with a good amount of stuff preinstalled that a person completely new to the system could just do stuff.

                                                                                                                        Looking at it from my current point of view (has it been 21 years of using Linux? damn) I think - compared to Windows - it has kept a bit of simplicity and is less in-your-face flashy and weird. But maybe it’s just me getting really familiar with computers at the time of Windows 95, where everything looked kinda spartan. I didn’t use it long enough to notice things being broken, though, just a few hours at a time.

                                                                                                                  2. 5

                                                                                                                    I installed Win 10 on my machine over a year ago and have not done anything special to it. It does not have any ads and there are no bloatware I have noticed, Metro is practically speaking non-existent for my user experience, and let’s not kid ourselves and say any Linux distro actually has a serviceable settings/control panel.

                                                                                                                    I’m all for using Linux and I use it practically every day, but from a usability standpoint, Linux doesn’t hold a candle to Windows. I wish it did, but you have to be delusional if you believe any Linux distros provide a comparable desktop experience.

                                                                                                                    2020 is still not the year of the Linux desktop.

                                                                                                                    1. 1

                                                                                                                      I agree, Desktops are a losing game anyway, butt Linux holds the mobile market. But all trolling aside, Windows is the unusable system for me, slow, clunky and gets in the way.

                                                                                                                    2. 14

                                                                                                                      Windows 10 has ads in the start menu, ass masquerading as security alerts, ads masquerading as software updates

                                                                                                                      All of which are trivially disable-able in Settings. This took me 10 minutes.

                                                                                                                      uninstallable bloatware

                                                                                                                      I’m going to pick on you for a moment here in the hopes that you have broad shoulders and can take it in the name of raising the level of discussion here. What do you mean by this? I’ve begun treating any use at all of the word “bloat” as tantamount to pointless trolling.

                                                                                                                      Does it use too much memory? Is it inefficient in terms of CPU usage? Does it take up too much storage?

                                                                                                                      Let’s at least all consider being a bit more specific in our complaints that we might be able to learn something from them.

                                                                                                                      a bizarre distinction between Metro and everything else (exemplified by the bifurcation of Settings and the Control Panel)….

                                                                                                                      Windows has always suffered from the lengths it goes to in the name of retaining compatibility. How much do you feel this actually impacts end users? (Honest question.)

                                                                                                                      1. 39

                                                                                                                        All of which are trivially disable-able in Settings. This took me 10 minutes.

                                                                                                                        Be that as it may, I shouldn’t have to disable ads in my operating system. I definitely don’t appreciate getting a “ding!” every so often (which sounds like a real notification) to remind me to sign up for OneDrive…

                                                                                                                        I’m going to pick on you for a moment here in the hopes that you have broad shoulders and can take it in the name of raising the level of discussion here. What do you mean by this? I’ve begun treating any use at all of the word “bloat” as tantamount to pointless trolling.

                                                                                                                        Does it use too much memory? Is it inefficient in terms of CPU usage? Does it take up too much storage?

                                                                                                                        Things like Xbox Games (or whatever it’s called), Paint, etc. They don’t take up too much space, or too much CPU…they just exist. They take up too much attention for something that I’m never going to use…and I should be able to install or uninstall any software I want on my computer, without resorting to unapproved hacks.

                                                                                                                        Windows has always suffered from the lengths it goes to in the name of retaining compatibility. How much do you feel this actually impacts end users? (Honest question.)

                                                                                                                        There’s a difference between backwards compatibility and “I want to do this, but the setting isn’t in Settings, it’s in Control Panel, and I don’t know when to use one or the other.” At least last time I used Windows 10 (within the last year or so), they would sometimes direct you from one to the other, but not always. So it definitely impacted me at least once.

                                                                                                                        1. 6

                                                                                                                          Just like I think an OS should ship with a text-editor that won’t be what most programmers use, I think it should ship with an image app with roughly the complexity of Paint. On both my work Macs, I found myself needing to make a trivial graphic, and not knowing what to use. GIMP was vastly over complicated for me, other apps were too paid for irregular use (and I didn’t know if I’d understand them).

                                                                                                                          1. 2

                                                                                                                            Things like Xbox Games (or whatever it’s called), Paint, etc. They don’t take up too much space, or too much CPU…they just exist. They take up too much attention for something that I’m never going to use…and I should be able to install or uninstall any software I want on my computer, without resorting to unapproved hacks.

                                                                                                                            I don’t mean to invalidate your perceptions here but.. Remove them from the start menu? At that point they’re invisible to you other than bits on the disk.

                                                                                                                            There’s a difference between backwards compatibility and “I want to do this, but the setting isn’t in Settings, it’s in Control Panel, and I don’t know when to use one or the other.” At least last time I used Windows 10 (within the last year or so), they would sometimes direct you from one to the other, but not always. So it definitely impacted me at least once.

                                                                                                                            That’s interesting. Whenever I want to change something, I type an approximation of that thing into the start menu and get the setting I need. I don’t try to guess where it is, I let the mechanism the OS provides guide me. YMMV of course.

                                                                                                                            1. 11

                                                                                                                              I don’t mean to invalidate your perceptions here but.. Remove them from the start menu? At that point they’re invisible to you other than bits on the disk.

                                                                                                                              They tended to return after an update for me.

                                                                                                                              In hope that this topic will amount to something more interesting than a Windows/Linux flame war, I would like to refer anyone who have not read this piece yet to do so now: Practical Ethics: Why It’s OK to Block Ads

                                                                                                                              It’s important to note that the essential question here is not whether we as users are being manipulated by design. That is precisely what design is. The question is whether or not the design is on our side.

                                                                                                                              I tend to prefer user agents that I can reasonably believe will not betray me.

                                                                                                                              1. 10

                                                                                                                                I don’t mean to invalidate your perceptions here but.. Remove them from the start menu? At that point they’re invisible to you other than bits on the disk.

                                                                                                                                Bits on my disk. If I want them off of there, I should be able to do so trivially…especially when it’s code that I don’t know if it’s phoning home, monitoring my browsing, contains an RCE vuln, or doing whatever. Even if it’s just sitting there, if I want it gone, well…it’s my computer.

                                                                                                                                1. 7

                                                                                                                                  Bits on the disk matter. Windows takes forever to update. Part of that surely is it updating the crapware it comes with.

                                                                                                                                  I’m going to pick on you for a moment here in the hopes that you have broad shoulders and can take it in the name of raising the level of discussion here. What do you mean by this? I’ve begun treating any use at all of the word “bloat” as tantamount to pointless trolling.

                                                                                                                                  Windows search is the worst search interface I think I’ve ever used. It almost never gives me what I want to search for, but web searches for it instead…

                                                                                                                                  1. 4

                                                                                                                                    That’s interesting, I haven’t noticed since Windows moved the update process to only happen when I login/logout or restart.

                                                                                                                                    It’s a different world from my wife’s old Windows 7 laptop which could sit for HOURS updating if you’d not turned it on in a bit.

                                                                                                                              2. 22

                                                                                                                                I shouldn’t have to disable it. It shouldn’t exist in the first place. It shouldn’t even be able to be enabled.

                                                                                                                                1. 7

                                                                                                                                  I’m sure plenty of engineers at MS would love for you to tell this to the executives and shareholders.

                                                                                                                                  1. 9

                                                                                                                                    That’s exactly the problem, isn’t it?

                                                                                                                                    This tension between what the business wants and what the users want is precisely what leaves a nasty taste in my mouth (and many other people too, judging from the comments). Even if I wasn’t already completely brain-washed into the UNIX way of working (and preferring the command line in general, since I got started with Commodore BASIC and DOS), I’d still happily use a less shiny, less polished UI just to get rid of all that bullshit.

                                                                                                                                    The computer exists purely to serve me, not some corporate agenda. And with all the global spying that’s going on I feel even less inclined to use an OS that has unknown other goals aside from being the most efficient platform to run applications (because that’s the only thing an OS should do).

                                                                                                                                    1. 2

                                                                                                                                      The computer exists purely to serve me, not some corporate agenda

                                                                                                                                      The free software movement exists because of affordable hardware created by corporate activity.

                                                                                                                                      Edit I should expand -

                                                                                                                                      • Linux was created because Linus T + friends had access to cheap x86 hardware. This was because of the IBM PC era dominated by MSFT/Intel
                                                                                                                                      • Before Linux, most free software was created in universities, many of who relied on corporate largesse/donations/taxes to function and buy the hardware to develop on.
                                                                                                                                      1. 4

                                                                                                                                        Pure hardware companies arguably have much less opportunity to make the computer do things that are opposed to the user’s desires. In a sense, we got very lucky that the IBM PC was designed as an open system and got so incredibly popular. Otherwise we’d be stuck in a situation like the Apple or game console ecosystems, where the software companies control the entire stack down to the hardware and running alternative software isn’t really supported (or even possible).

                                                                                                                                      2. 1

                                                                                                                                        How did you acquire your computer?

                                                                                                                                  2. 21

                                                                                                                                    All of which are trivially disable-able in Settings. This took me 10 minutes.

                                                                                                                                    I’m not a heavy Windows user. But I have tried to disable the advertised apps in the start menu, and I have not found any lasting success. Every time I think I’ve effectively removed them, a few days/weeks later, Candy Crush Saga or its ilk reappears in my start menu.

                                                                                                                                    I don’t doubt your statement that there’s a way to disable them long-term or even permanently. And I’d not be surprised if you’re correct that such disablement is easily executed.

                                                                                                                                    But that process is certainly not trivially discoverable, for me, anyway. And judging from the number of start menus I see those tiles in, I don’t think it is for most people.

                                                                                                                                    1. 8

                                                                                                                                      Hate to be that person, but my start menu has only had the tiles I’ve put on it for over a year now, and I haven’t once had those things “return”.

                                                                                                                                      1. 3

                                                                                                                                        OK. My Win 10 install dates from before they brought back the start menu. As soon as they did, it had tiles for candy crush saga and a few other similar things on it. I right-clicked those tiles and removed them. They went away. Then they came back after an update or two. I removed them again. Since then, more games have come back despite that Win 10 Pro install never having been used to sign into the store, let alone play a game.

                                                                                                                                        I’ve tried every trick google shows to stop that from happening. Games keep coming back. Different games each time, I think, but games being advertised from the store all the same.

                                                                                                                                        Maybe the problem is that I’m using Win10 Pro and I need a different SKU to be able to tell it “this is an install for compiling software. keep all games away.”

                                                                                                                                        1. 3

                                                                                                                                          Strange, I’m only on W10 Home. Maybe in your attempts to make these things go away you’ve accidentally flipped a registry variable that says please make me suffer with more game promotions 😅

                                                                                                                                          1. 1

                                                                                                                                            I have the vague impression that a clean installation might help. i.e. some setting that used to be more persistent in early versions of W10 got locked in for me and wouldn’t if I started fresh. But getting my scripted builds of OpenSSL and Boost back to where they should be is just enough of a headache that I’d rather give the games a dirty look and then move on (for now).

                                                                                                                                            I do really want to get my head around what people consider good practices for a (mostly non-interactive) Windows build box these days. I find it hard to believe Win 10 Pro with Visual Studio is the current state of the art, but figuring out what is just hasn’t bubbled up to the top of my to-do list yet.

                                                                                                                                            1. 4

                                                                                                                                              At a previous $job we had to deal with these things since a lot of our infra (including things that honestly shouldn’t have been, such as in the embedded space) was windows, but for the sake of lending advice I was sadly never put to task working on the powershell script used to initialize windows images. I can tell you just that, though; if it’s professional Windows management there’s always powershell involved.

                                                                                                                                      2. 1

                                                                                                                                        Thank you that’s a very good point. I’ll admit I Googled and found an article which signposted them all :)

                                                                                                                                        1. 1

                                                                                                                                          I did that too. If the first one you found has continued to keep them out of that menu through a few “feature updates” you found a better one than I did.

                                                                                                                                      3. 9

                                                                                                                                        All of which are trivially disable-able in Settings. This took me 10 minutes.

                                                                                                                                        That’s nice they can be disabled now, but

                                                                                                                                        1. they might not be in the future

                                                                                                                                        2. do you really want to trust a company that implements this as opt-in by default

                                                                                                                                        3. since it’s proprietary, you don’t really know if they are honoring your settings completely (especially around ‘telemetry’)

                                                                                                                                        1. 1

                                                                                                                                          As I’ve said ad infinitum in this thread - I am making the pragmatic choice to use Windows today, but I’m convinced that the era of the commercial desktop operating system is coming to a close, so I’m committed to ensuring that desktop Linux improves over time, because ultimately I think that and other FLOSS environments like it will be the ONLY choice for tinkerers like us.

                                                                                                                                          I run both. I use Windows 10 and Ubuntu 19.10 and love them both in different ways for different tasks.

                                                                                                                                          I love the fact that people are building so many amazing creative wonderful things in the Linux space, but I can’t reliably use that as my bedrock ‘production’ environment because, depending on which package I install and what it does, I might easily render my Linux partition unbootable.

                                                                                                                                          So I treat my Linux install like a mad scientist’s lab that might explode at any moment but might also product the next wonder of the world, and my Windows install as the rock solid place where my cushy hyper configured environment lives along with my productivity tools, IDE, etc.

                                                                                                                                          That works very well for me right now.

                                                                                                                                        2. 8

                                                                                                                                          The problem is that starting with Windows 8, Microsoft tried to shoehorn their entire userbase into a mobile operating system. Thats fine if your device is a phone.

                                                                                                                                          But some users device is a desktop computer, and a mobile operating system isnt, never was, and never will be appropriate for that use case.

                                                                                                                                          Until that is understood, and two different flavors of Operating System are allowed to exist and flourish, Windows wont be as good as it once was.

                                                                                                                                          Windows is my primary Operating System. But until this Metro stuff is over and dead I am afraid that Windows 7 might be my last Windows OS.

                                                                                                                                          1. 6

                                                                                                                                            Have you tried a modern windows 10 os? If you remove the tiles from the start menu, you get a classic start experience exactly like what you are used to. Beyond that touch oriented features have been integrated in such a way that they don’t ever get in your way. I don’t think the argument that Windows 10 is a “touch oriented os” holds any water anymore.

                                                                                                                                            1. 3

                                                                                                                                              ok and what about Cortana?

                                                                                                                                              1. 4

                                                                                                                                                What about it? It takes two clicks to hide the search bar and I’ve never seen Cortana since.

                                                                                                                                                  1. 2

                                                                                                                                                    That’s only if you want to rip it out of the system completely, not sure why you’d even do that other than on principle. You can just not open it.

                                                                                                                                                1. 1

                                                                                                                                                  Again. Try a modern version of win 10. The Cortana crap can be easily hidden and you get a start menu just like the good old days.

                                                                                                                                              2. 4

                                                                                                                                                How does this materially impact you? I’m interested in things you need to do that it scuppers, or blocks completely.

                                                                                                                                                1. 13

                                                                                                                                                  I know you didn’t mean it this way, but it sounds like victim blaming. “Microsoft changed how they do things you are paying money for, but are you sure you’re inconvenienced enough to complain?”

                                                                                                                                                  1. 3

                                                                                                                                                    I’m sorry it came off that way, especially with the use of “materially.” The original post threw around a number of fairly abstract reasons for not liking it and I was looking for more concrete examples of how this causes a breakdown. There is also an argument to made that the terminology used isn’t accurate for Windows 10, but soliciting more detail is probably the best response.

                                                                                                                                                  2. 3

                                                                                                                                                    An example that bit me (though a couple years ago, so may have changed since I last set up a new machine):

                                                                                                                                                    The Onenote UWP app from the windows store is preinstalled and difficult to remove. However it isn’t completely compatible with the win32 app included with office – if you’re sharing notebooks with office users and setting permissions w/ AD you can’t use the windows store version. You can install the office version, and it sort of takes over, but not quite 100%. So you end up with some onenote links working correctly in your win32 app, but others sometimes opening the store app instead. And when that happens it then tries to take over as the default onenote app again, screwing everything up in the process, and you need to clean up a bunch of prefs that get changed out from under you.

                                                                                                                                                    I finally found some combination of settings in both apps, the system default apps settings, and a manual registry hack that seems to have permanently fixed it. But, until I found that, using Onenote was a daily struggle due to the preinstalled nonsense that I didn’t want to use.

                                                                                                                                                    1. 1

                                                                                                                                                      Its not just what I listed. Its other problems, like making people resort to registry hack to remove unwanted features:

                                                                                                                                                      https://www.howtogeek.com/265027/how-to-disable-cortana-in-windows-10

                                                                                                                                                      or blocking local account creation (LOL?):

                                                                                                                                                      https://www.howtogeek.com/442609/confirmed-windows-10-setup-now-prevents-local-account-creation

                                                                                                                                                      its these comically bad, user hostile decisions that keep me from upgrading.

                                                                                                                                                    2. 3

                                                                                                                                                      A lot of people have said that this bifurcation has been all but healed in Windows 10. Clearly remnants remain, but they certainly haven’t gotten in my way so your mileage clearly varies.

                                                                                                                                                    3. 8

                                                                                                                                                      All of which are trivially disable-able in Settings. This took me 10 minutes.

                                                                                                                                                      This is not an excuse for user-hostile behaviour.

                                                                                                                                                      1. 1

                                                                                                                                                        All of which are trivially disable-able in Settings. This took me 10 minutes.

                                                                                                                                                        …. and the next time they come back it takes 20 minutes. And after that it involves kernel pacthes. And then firmware hacks.

                                                                                                                                                        At least for me, this is a matter of self-respect, not a matter of time. But I guess some people strongly prefer being pushovers to drawing a line in the sand and accepting whatever slight inconvenience comes with it.

                                                                                                                                                      2. 3

                                                                                                                                                        For anyone looking for a power user’s alternative to control panel I recommend creating an empty folder, naming it LobsterMode.{ED7BA470-8E54-465E-825C-99712043E01C}, and then clicking it to see what happens.

                                                                                                                                                      1. 1

                                                                                                                                                        I see you are using Pelican:

                                                                                                                                                        https://shalabh.com/pages/site-tech

                                                                                                                                                        have you run into this issue:

                                                                                                                                                        https://github.com/getpelican/pelican/issues/2676

                                                                                                                                                        1. 2

                                                                                                                                                          No because I don’t use --listen, I just run another webserver, for no specific reason.

                                                                                                                                                          Your fix looks good though.

                                                                                                                                                          1. 1

                                                                                                                                                            Good idea, I wrote my own server in the meantime:

                                                                                                                                                            https://github.com/cup/suede/blob/master/go/serve.go

                                                                                                                                                        1. 2

                                                                                                                                                          Fun fact, your website broke the premier Go MarkDown parser:

                                                                                                                                                          https://github.com/yuin/goldmark/issues/83

                                                                                                                                                          1. 2

                                                                                                                                                            That’s incredible. I get problems with email forms all the time. It’s fun to email people from that domain telling them their form validation is wrong.

                                                                                                                                                          1. 4

                                                                                                                                                            This says Bash, but isnt that POSIX sh?

                                                                                                                                                            1. 2

                                                                                                                                                              Yes, but Bash is compatible with POSIX sh and the author may not have known that the script was only using POSIX sh features.

                                                                                                                                                            1. 1

                                                                                                                                                              For me, an HTTP client is needed. something beyond sockets. Even if its only HTTP 1.1 with no HTTPS, it needs something. Alternatively cURL bindings.

                                                                                                                                                              1. 3

                                                                                                                                                                Interesting post! I’ve been trying out github actions to build TeX files and commit the compiled pdf before but never got it working. Got stuck even before any token issues because I found the build environment very difficult to work with and slow to debug.

                                                                                                                                                                1. 2
                                                                                                                                                                  1. 1

                                                                                                                                                                    This looks very similar to Overleaf that I’m currently using. The problem with Overleaf is that exporting a PDF isn’t easily automated. Is Latexbase different?

                                                                                                                                                                    1. 1

                                                                                                                                                                      I don’t know about automating, I just manually do it

                                                                                                                                                                  2. 2

                                                                                                                                                                    I have ended up doing almost everything inside of a Docker container and just using their build environment to host the container. This makes debugging a whole lot easier since, if I really want to, I can even drop into a shell inside the container running locally and poke around.

                                                                                                                                                                    1. 1

                                                                                                                                                                      I tried using docker too (This image I believe) to no avail. Do you have any image recommendation or an example build config on Github?

                                                                                                                                                                      Thanks!

                                                                                                                                                                      1. 2

                                                                                                                                                                        Here’s an example. It’s still a work-in-progress, but basically I create my own images (see the Dockerfile) so I get exactly the packages I need and I can actually make the CI environment look more or less like the development environment. Then I run everything inside a container using the same Makefile targets that I would use during development. This isn’t a silver bullet, by any means, but it seems to work out reasonably well for my use-cases so far.

                                                                                                                                                                        https://github.com/TravisWheelerLab/NINJA/tree/avx

                                                                                                                                                                  1. 1
                                                                                                                                                                    TMPFILE=$(mktemp) || exit 1
                                                                                                                                                                    

                                                                                                                                                                    Isnt it better to use set -e or similar? Better to turn “exceptions” on for the whole script rather than just one command. If you want to handle the error rather than bail, you can do:

                                                                                                                                                                    if ! TMPFILE="$(mktemp)"
                                                                                                                                                                    then
                                                                                                                                                                       echo 'mktemp failed'
                                                                                                                                                                       exit 1
                                                                                                                                                                    fi
                                                                                                                                                                    
                                                                                                                                                                    1. 5

                                                                                                                                                                      Isnt it better to use set -e or similar?

                                                                                                                                                                      set -e, while I personally still opt to use it since I think the pros outweigh the cons, is kind of fraught with surprising behavior in a lot of cases (example: x=0 is fine, and let x=1 is fine, but let x=0 will abort your script). So while it’s an option, recommending it by default in all cases (especially for people who aren’t already battle-scarred shell veterans) isn’t necessarily a great idea.

                                                                                                                                                                      If you want to handle the error rather than bail, you can do:

                                                                                                                                                                      if ! TMPFILE="$(mktemp)"
                                                                                                                                                                      then
                                                                                                                                                                        echo 'mktemp failed'
                                                                                                                                                                        exit 1
                                                                                                                                                                      fi
                                                                                                                                                                      

                                                                                                                                                                      Certainly one can do this, but since most well-behaved tools will write something like mktemp: No space left on device (or whatever) to stderr if they fail, adding your own error messages on top of that is typically just redundant, so I’d regard the original || exit 1 as the preferable option there unless you actually have some meaningful additional information to provide. (Note also that a plain echo will go to stdout instead of stderr, which isn’t really appropriate for error-reportage.)

                                                                                                                                                                      1. 1
                                                                                                                                                                        let x=0
                                                                                                                                                                        

                                                                                                                                                                        Thats fine, that not valid POSIX anyway…

                                                                                                                                                                        1. 1

                                                                                                                                                                          Then take whatever example(s) you prefer from https://fvue.nl/wiki/Bash:_Error_handling or https://mywiki.wooledge.org/BashFAQ/105 (there are plenty); TFA is explicitly discussing bash anyway (and its scriptlets are appropriately shebanged as such, unlike many).

                                                                                                                                                                    1. 2

                                                                                                                                                                      Has anyone figured a way to stop the “recommended for you” on YouTube? I use uBo with 3rd party JavaScript blocked, as well as not being signed in, as well as:

                                                                                                                                                                      'browser.contentblocking.category': 'strict',
                                                                                                                                                                      'privacy.trackingprotection.enabled': true,
                                                                                                                                                                      

                                                                                                                                                                      and I still get those, sometimes even in private mode.

                                                                                                                                                                      1. 5

                                                                                                                                                                        I use https://invidio.us/ when I want to watch something that is on youtube.

                                                                                                                                                                      1. 1

                                                                                                                                                                        I see I was quoted. I still believe what I wrote there. The shell is and should be a simple program, used only to launch other programs and for the simplest of scripts. Perfect example, here is a post from today:

                                                                                                                                                                        https://unix.stackexchange.com/questions/560697/how-to-reverse-shell-arguments

                                                                                                                                                                        Look at some of the (well upvoted) answers:

                                                                                                                                                                        flag=''; for a in "$@"; do set -- "$a" ${flag-"$@"}; unset flag; done
                                                                                                                                                                        

                                                                                                                                                                        and:

                                                                                                                                                                        eval "set -- $(awk 'BEGIN{for (i = ARGV[1]; i; i--) printf " \"${"i"}\""}' "$#")"
                                                                                                                                                                        

                                                                                                                                                                        Looks complicated? It is. And it should be. This stuff should not be easy in shell, because if it was, then people will want to do it. For years I tried to do as much in shell as was possible, twisting my scripts into knot in order to maintain this mythical thing called “POSIX compliance”. A much better thing is to do it using a programming language. Here is the same thing in PHP:

                                                                                                                                                                        $a2 = array_reverse($a1);
                                                                                                                                                                        

                                                                                                                                                                        See the difference? And you dont have to worry about being portable with 5 different shell implementations, you just do whatever is specified by the (insert programming language). Shell users, beware Zawinski’s law:

                                                                                                                                                                        Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.

                                                                                                                                                                        1. 7

                                                                                                                                                                          Note that the OpenVMS time display and manipulation routines allow for only 4 digits in the ‘YEAR’ field. We expect this to be corrected in a future release of OpenVMS sometime prior to 31-DEC-9999.

                                                                                                                                                                          1. 1

                                                                                                                                                                            “why is this not fixed yet? I filed this issue 3,000 years ago! Lazy devs!”

                                                                                                                                                                          1. 1

                                                                                                                                                                            I started a new project call Cerise:

                                                                                                                                                                            https://github.com/cup/cerise

                                                                                                                                                                            its basically just a few PHP scripts as this point, but the plan is an alternative distribution of Visual Studio. Several projects I have come across require the Visual Studio compiler and/or linker, and I do not like setting up the huge VS environment just for that. I has found the packages for link.exe and kernel32.lib so far. I think thats all that needed for a base setup but need to do more testing and make a binary release.

                                                                                                                                                                            1. 2

                                                                                                                                                                              I think this misses the point of the previous article. I don’t think that the previous article is shaming languages for providing more features or anything like that. It highlighted the fact that a bunch of languages in their compiled form do additional things that are unnecessary to do what the code does. This is where the author misses the point. E.g when talking about stack traces, the author seems to not know that the Zig(safe) build does have stack traces using DWARF while only making 3 calls and weighing 11KB. Doing the “lets include repeating in the program” section misses the point again. This wasn’t any kind of a performance benchmark. It’s more of a compiler optimization benchmark. Then we go to excusing go. Yeah, sure, we want fast builds. But do we really need to have all of that stuff that is entirely unnecessary for the execution of the given code. So why have it? Do we use reflection in our code? Do we use multi-threading? Do we create any objects that would require error handling? Does the task benefit from knowing weather the streams block? Should this program care about signals? Do we need to know the executable path? No. No we don’t and this is additional code that complicates debugging. Now some might say it doesn’t complicate it, but if you need to debug a performance bug on startup, all of this different stuff just gets in the way, while not being necessary.

                                                                                                                                                                              1. 2

                                                                                                                                                                                Fair enough. I will grant that most existing high level languages aren’t particularly good at optimizing programs which merely print “hello world” to the screen.

                                                                                                                                                                                It’s a very silly thing to optimize for, with no connection to the challenges of real-world software development, but there you go.

                                                                                                                                                                                My “lets include repeating in the program” was to illustrate why “slow” startup could be a problem in theory, but then to illustrate why merely eliminating code bloat isn’t always the best avenue for improving performance. (also “slow” here is not an electron app. We’re talking about a few milliseconds. it’s complete imperceptible)

                                                                                                                                                                                In my experience debugging a high level language like Go is much, much easier than debugging raw assembly. But then again I’ve only ever had to get that low-level maybe once or twice in my career. (Whereas I have to fix bugs in Go/Python/C#/Java code all the time)

                                                                                                                                                                                And I’ll take a fast build that makes a 5MB binary over a slow build that makes an 11KB binary. 5MB means nothing on my laptop, where I do most of my primary development. But a 1 second build vs a 3 minute build means a whole lot.

                                                                                                                                                                                Also FWIW I used Go because its what I knew. But the same reasoning applies to any of the languages. I bet if you dig into what Rust or Java is doing, there are also abundantly good reasons for the syscalls there.

                                                                                                                                                                                1. 2

                                                                                                                                                                                  Numbers mean something. 5 MB doesn’t matter in terms of a hard drive, but it matters. That’s at least 2 levels of magnitude over what the size could be. Comparing any binary against a hard is such a cop out, that comparison hasn’t been meaningful in 20 years.

                                                                                                                                                                                  Instead of hand waving it away, it would be better if you could explain what is being gained out of those extra 4 MB.

                                                                                                                                                                                  1. 2

                                                                                                                                                                                    The size of the binaries is a product of many things:

                                                                                                                                                                                    1. Statically linking libraries instead of dynamically linking them
                                                                                                                                                                                    2. Debugging information
                                                                                                                                                                                    3. Pre-compiling object files to improve compiler performance
                                                                                                                                                                                    4. Language features preventing dead-code analysis from eliminating all unused code

                                                                                                                                                                                    Now certainly folks could spend time improving that, and there are issues in the go repo about some of them, but in practice a 5MB binary doesn’t matter in my everyday life. It doesn’t use up much space on my hard drive. I can upload them very quickly. They start plenty fast and servers I run handle them just fine.

                                                                                                                                                                                    Why prioritize engineering resources or make the Go compiler slower to fix something that matters so little?

                                                                                                                                                                                    1. 1

                                                                                                                                                                                      …you did it again. You compared the size of the executable against the size of your hard drive. Thats the very thing that I just commented against in my last comment. Comparing an executable size against hard drive size hasnt been a meaningful comparison in at least 20 years. Why do you keep doing it? Cant you find a better comparison?

                                                                                                                                                                                      1. 1

                                                                                                                                                                                        I’ve lost the issue here.

                                                                                                                                                                                        Why is a 5MB binary a problem?

                                                                                                                                                                                        1. 2

                                                                                                                                                                                          I never said 5MB binary was problem. I said comparing the size of an executable, to your hard drive size, is a meaningless comparison and has been for a couble of decades.

                                                                                                                                                                                          Ive said pretty much this same comment 3 times now, am I not being clear?

                                                                                                                                                                                          1. 2

                                                                                                                                                                                            OK. I agree a 5MB binary is not a problem.

                                                                                                                                                                                            1. 1

                                                                                                                                                                                              I also agree with you that short sighted comparisons are wrong.

                                                                                                                                                                                2. 1

                                                                                                                                                                                  E.g when talking about stack traces, the author seems to not know that the Zig(safe) build does have stack traces using DWARF while only making 3 calls and weighing 11KB.

                                                                                                                                                                                  The zig programs were built with --strip which omits debug info. A minimal program capable of displaying its own stack traces with --release-safe comes out to ~500KB. That’s the size of both the DWARF info, and the code to parse it and utilize it to display a stack trace.

                                                                                                                                                                                  But yeah it’s still only 3 syscalls. The third one is a segfault handler to print a stack trace. The std lib supports opt-out with pub const enable_segfault_handler = false; in the root source file (next to main).