1. 35

    Personal opinion: The GNU tools are superior to all other implementations for the USER. It is called “userland” because it is about the users, not about some mysterious POSIX compliance. I even install them on macs, because they are just better. I do not care one bit about the FSF or RMS or whatever, I use the GNU tools because they are better. I think back to the dark times I had a Solaris 8 box at work and everything was oh-so-POSIX compatible. Thank you, but no thank you.

    1. 23

      Yeah, what this author seems to be unaware of is that POSIX does not say that you can’t implement extensions, and in fact that’s basically expected. POSIX codifies things that are already widespread practice. Features go into code and then into POSIX, not the other way around. If you try and get some new feature into POSIX, they’ll tell you to go away because it isn’t in any implementations yet. So this:

      POSIX certified means that these OSs not only comply with POSIX but don’t add any compatible extensions. GNU, on the other hand, is POSIX compatible, but adds extensions (e.g. long options, options and behaviors that aren’t defined by the specs, etc.)

      is not correct, for multiple reasons. POSIX certification does not mean that you can’t add extensions. On the flip side, GNU is not POSIX compliant! The mere existence of the POSIXLY_CORRECT environment variable proves this.

      I found that the further I got into this article, the more inaccuracies like this there were. By the end I was pretty frustrated because it appeared that the author was speaking with authority (and a poorly hidden emotional undertone) on a subject that they actually were not an authority on.

      1. 13

        Indeed, the post links to Drew DeVault’s post about glibc isalnum segfaulting, and the pointed glibc weirdness is there exactly because of localisation, which is falls under the umbrella of, usability.

        The GNU tools put emphasis on usability above all else and that is a good thing. Alpine, borne out of BusyBox, doesn’t even come close. Granted, Alpine/BusyBox have their uses, places where humans aren’t often needed, but on user machines the GNU userland is superior.

        1.  

          The linked article was discussed here.

          1.  

            Alpine, borne out of BusyBox, doesn’t even come close

            Busybox doesn’t seem so bad these days; I’ve ran some systems on busybox, and I have to say I hardly notice the difference. It implements POSIX and most useful extensions. My biggest gripe is that it doesn’t allow configuring the ls colours without a recompile (the defaults don’t work well on light backgrounds).

            1.  

              These days human usability is mostly about the GUI though. And the corresponding high-level tooling. For low-level tools, portability/simplicity/consistency are becoming bigger concerns. Who even expects all the localization things to be in libc?! I always thought that any localization stuff is the domain of libraries like ICU and standard libraries of higher-level languages, it never even occurred to me to look in libc for that. Every time a low-level library tries to do that kind of thing, it just results in nasty surprises like the infamous “Turkish İ” problem.

              1. 10

                from that comment I would guess that your native language is English, so you have no use for localisation in your shell. For many, many people that is not the case and they benefit greatly from the support of even the lowest level tools. It makes it more accessible to more people.

                1. 6

                  Depends on how you use your computer I guess. I do most things from the shell, so usability of the shell and shell tools pretty much is usability for me. This is of course not how most people use their computer these days, but there’s still a fairly decent number of us, and when GNU started out it’s how the majority of people used their computers.

                  The shell has always served two somewhat conflicting purposes: scripting and direct usage.

                  1. 5

                    As was discussed on this site a year ago (see my comment above), glibc supports locales because locales are part of the C89 standard.

                    You might design your software to move locales support “up the stack” but glibc does not have that luxury.

                    And a libc that does not support locales is strictly speaking not standards-compliant, hence probably not portable.

                  2.  

                    It’s ironic that you use localisation as an example because I recently got bitten by GNU cut not actually being encoding-aware: the --characters and --bytes options do the exact same thing! BSD cut doesn’t have this problem.

                    1.  

                      Pretty sure the -c option is spec’d by posix to be bytes.

                      1.  

                        No, it’s specified to be characters. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/cut.html

                        There’s even a -n option for not splitting multibyte characters that GNU cut straight up ignores.

                  3. 11

                    Yeah the statements about POSIX in this post are silly – one of many serious misunderstandings. This is a low quality post.

                    POSIX certified means that these OSs not only comply with POSIX but don’t add any compatible extensions.

                    Huh? That’s not what POSIX means. Also, POSIX is generally old, and outdated, and people need to do things with their computers. It makes zero sense to implement only POSIX. This is a weirdly religious idea.

                    A recent example I gave is that GNU awk supports match() for submatch extraction, but original awk, mawk, and POSIX don’t. You should use this; it will make your awk scripts better.

                    Another one is the paper about how modern Unixes don’t actually use POSIX for IPC and such because it doesn’t do what they need (binder on Android, DBus on Linux, something else on OS X).

                    Open source extensions are good because they’re … open source. Vendor lock-in is bad, but the best you can do is give the user the right to modify, fork, redistribute, etc.


                    That said, I do think GNU code is “inexplicably bad” (a statement I heard somewhere else). There are many collaborative open source projects like CPython, LLVM, etc. which have higher code quality, not to mention the ones done by fewer authors (sqlite, Lua, etc.)

                    1. 6

                      My reasons for disliking GNU are the exact opposite of this article: I don’t think they do nearly as much as they could to improve UX. It’s “good enough” I guess, but that’s not the same as “good”.

                      POSIX was always intended as a “minimum feature set that works the same everywhere” type of specification, originating during the great Unix wars. It was never and will probably never be at the forefront of innovation. It’s a dictionary: it recorded what “language” people were using.

                      These days I just write most scripts in /bin/zsh, because it’s just so much more useful. Want to run it on OpenBSD? No problem, install zsh! Why zsh and not bash? Because zsh is clearly the better shell in almost every way and always has been really. A lot of “bash features” were added to zsh first (and both of course borrowed liberally from the then-proprietary ksh) and the only reason bash seems to be the de-facto default is “because GNU”.

                      The article complains about head adding -c. The way head and tail works is just weird, I can never remember how it works. If I were to write a “coreutils” package then I’d add POSIX head and tail for compatibility, and then move on to a much more useful lines or something which has a UX I can actually remember and which includes all the features from head and tail except better.

                      Or in short: POSIX is stuck in 1980. GNU is stuck in 1990.

                      1.  

                        Personally, I used non-POSIX commands such as head --bytes N (the example in the article) from the shell so many times and they saved me a great deal of time.

                        Would I use head --bytes N in a script that is going to be published? No. I’ll use cut -b -N or something that is, if not 100% POSIX compliant, at least widely compatible.

                        Am I happy that non-POSIX features such as head --bytes N exist? Yes. I can use them while prototyping or in some quick-n-dirty pipeline.

                      1. 4

                        One note / useful tip: the article mentions Reykjavik may be affected. Not just bad for Iceland; the Reykjavik time zone is a good choice if you want UTC but whatever software you’re using doesn’t understand a non-geographic timezone like UTC. Iceland has been UTC+0:00 without daylight savings time since 1967. I’d be a little sad if this option disappeared from software.

                        Looking at the patches it looks like Reykjavik time will be listed as an alias with Africa/Abidjan. Côte d’Ivoire apparently hasn’t had DST since 1912.

                        1. 5

                          the Reykjavik time zone is a good choice if you want UTC but whatever software you’re using doesn’t understand a non-geographic timezone like UTC.

                          What horrible software is this?

                          We can’t rely on Iceland never instituting DST, so our software shouldn’t either.

                          The same goes to Africa/Abidjan too, but at least there there’s no geographical reason to use DST. However, if Côte d’Ivoire develops significant economic ties with Europe it could conceivably implement DST to “track” timezones there.

                          1.  

                            What horrible software is this?

                            I haven’t checked lately, but a few years ago I had my Chromebook and MacBook running on Iceland time because you weren’t allowed to set your user time to UTC (the system time was in UTC, not the user time).

                            (Edit: I looked this up and can confirm that on a recent version of macOS UTC - United Kingdom is available when typed into the timezone picker).

                            I changed it back because some sites (specifically Yelp) checked whether a store was open based on browser time, not necessarily the time at the store’s location. This meant that every store I looked at was “closed” during normal business hours, since Yelp was trying to determine if a store in California was open or not using Iceland time.

                            1.  

                              Wow, just wow (that linked article, and also the uncertainty involved in tying “UTC” to a specific location).

                              Here’s a discussion using the command line, the discussion is also confused https://gist.github.com/nick-desteffen/1126771

                              (Because I’ve recently messed around with this on a systemd-enabled Linux, you should use timedatectl there, not directly symlink to /etc/localtime as in the example).

                              At least on Windows 10, you do get the bare “UTC” option, no confusion as to location.

                          2. 1

                            Africa/Abidjan satisfies both of those conditions, which has never had DST

                            1. 2

                              Thanks, and apologies; I think you responded to an earlier version of my comment before I figured out Abidjan would work.

                              I combed through the whole database and here’s all the options for modern UTC-like timezones: Africa/Abidjan, Africa/Bissau, Africa/Monrovia, Africa/Sao_Tome, Atlantic/Reykjavik, America/Danmarkshavn.

                              1. 3

                                A lot of zones already link to Africa/Abidjan: Africa/Bamako (Mali), Africa/Banjul (Gambia), Africa/Conakry (Guinea), Africa/Dakar (Senegal), Africa/Freetown (Sierra Leone), Africa/Lome (Togo), Africa/Nouakchott (Mauritania), Africa/Ouagadougou (Burkina Faso), Africa/Timbuktu (Mali). So presumably that’s why it was chosen. I don’t know why it was chosen as the target in the first place, but it seems like it’s been like this for a number of years, a lot of changes were made in 2014.

                                Similarly, a lot of zones already link to Africa/Lagos (UTC +1, “West Africa time”), Africa/Maputo (UTC +2, “Central Africa Time”) and Africa/Nairobi (UTC +3). All of Africa has 20 timezones in the current database (excluding aliases) for 56 regions, all with various real differences (DST, changed after 1970). The only linking being done for Europe now is the various British crown dependencies (Jersey etc.) to Europe/London and countries of former Yugoslavia linking to Europe/Belgrade, as well as some other minor things (e.g. Europe/Liechtenstein → Europe/Zurich).

                                For users nothing changes. You can still keep using Atlantic/Reykjavik if you want. It’s just an internal linking thing that happens, and the only area where it really exposes if you want times before 1970, in which case you need the full TZ database. It’s really not a big deal.

                                If people in the most ethnically sensitive part of Europe with literal genocides not all that long ago can avoid throwing a hissy fit over the internal structuring of some database then surely some bloke from London can…

                                1. 1

                                  I noticed your edit right after I submitted my comment haha. Left it there anyways :)

                            1. 23

                              LtU does have some clever people. The majority of the predictions seem to be really good / close to truth. The most amusing/true I found were:

                              Debates that both sides will lose because the debate will be made irrelevant by a third option: Emacs vs Vim

                              We got vscode. I know that’s just one specific case and they weren’t really made irrelevant, but vscode really did take the dev world by storm in comparison. (with people using vi or emacs keybindings inside it)

                              I think that we know more or less how the hardware will evolve: several (4-16) heterogeneous(not all with the same performance, some with specialized function unit) CPUs (due to the power wall).

                              I take it as 4-16 in total, not 4-16 types. Right on with the recent big-little chips.

                              Things from academia that will (start to go in the direction of) mainstream by 2020: Functional reactive programming

                              Almost all the new web frameworks and a lot of declarative desktop draws strongly fro FRP.

                              In 20 years the prevalent market will be the mobile platforms. The primary language used for development will be JavaScript or some variant, with some of the following characteristics:

                              Pretty close if we consider that most websites target mobile now. And just perfect regarding “A misguided spin on lexical scope”.

                              Therefore, programming will take on a much more “organic” feel: programming by example, programming with help of machine learning

                              Only a year off for the copilot prediction.

                              1. 11

                                I dint think any vi(m) or emacs user is likely the switch to vscode. Vscode is just the latest in the line of sublime/atom/etc

                                1. 2

                                  It’s much more than just the next sublime according to SO developer surveys. Vscode took some users from virtually every other option. Between 2016 - 2021: (multiple options allowed so there’s overlap)

                                  Vim fell 26% to 24%

                                  Vscode rose 7.2% to 71%

                                  Sublime fell 31% to 20%

                                  1. 9

                                    Direct links to the data:

                                    Given that neovim went from not on the list at all to 5%, I don’t think this supports the idea that meaningful numbers of vim users are switching to vscode. Emacs is virtually unchanged, from 5.2% to 5.3%

                                  2.  

                                    I did (for a while), using the VSCode neovim extension (which literally runs neovim as the backend for editor commands while still getting VSCode’s GUI + language extensions). Ended up switching back emacs when i got a new job because CIDER is still the best Clojure tool imho.

                                  3. 6

                                    Debates that both sides will lose because the debate will be made irrelevant by a third option: Emacs vs Vim

                                    We got vscode. I know that’s just one specific case and they weren’t really made irrelevant, but vscode really did take the dev world by storm in comparison. (with people using vi or emacs keybindings inside it)

                                    As someone who doesn’t use any of these 3 editors, I don’t think this quite matches up to the prediction. VSCode is a good editor, and it surprised people and rapidly gained dominance for many, but it did not “render emacs vs vim debate irrelevant”. That fight is still raging, whether it’s for the editors themselves or keybindings inside other editors.” If the prediction was something like “a new editor will gain dominance over emacs vs vim” maybe this would count but let’s be honest – most popular editors already did this. Neither Emacs nor Vim have dominance anywhere; the prediction here is merely about the Holy War between the editors. VSCode did not solve this; No editor ever will lol.

                                    1. 8

                                      I’d argue that the distributions of emacs-as-vim and to a lesser extent vim-as-emacs (spacevim) as well as emulation in VS code or jetbrains IDEs is what made the debate w.r.t. UX irrelevant.

                                      The “holy war” debate between vim and emacs was made irrelevant by a bigger holy war (one which both vim and emacs take the same side of) which is the fight for free software and “non-corporate” software.. from that pov it was VS code that ended the debate.

                                    2. 2

                                      I can’t imagine a GUI code editor ever making a difference in the Vim/Emacs world. Vim and Emacs are fundamentally different from something like VScode because they are inside a terminal. Some people either prefer to or have to use a terminal for a variety of reasons and I don’t think any level of technological advancement would change most of those reasons (probably ¯_(ツ)_/¯ ).

                                      1. 3

                                        While I almost exclusively use Emacs in a terminal it is, in fact, a first-class citizen of GUIs (albeit with rather weird habits).

                                        1. 1

                                          Yeah, one of the nice things about emacs vs vim is that there’s a GUI (so stuff supports it) and there’s only one GUI (so you don’t have to worry about feature differences).

                                        2. 2

                                          If you look at NeoVim, there are lots of attempts of creating a GUI for it, e.g.:

                                          https://www.onivim.io/

                                          This suggests that there are a lot of people who want to use NeoVim as a GUI tool, not just terminal. As far as I’m concerted however, I value the terminal side of NeoVim, since I can run it on a Windows machine through SSH and start compilation without having to use RDP nor Windows on my local machine.

                                          1. 1

                                            Definitely! People want to put Vim and Emacs (mostly Vim) inside any of their existing GUIs or create GUIs just for those tools.

                                            But, as you said, the Terminal has special uses that aren’t replaceable and so GUIs like VScode will never directly compete with terminal editors.

                                            1. 1

                                              Onivim is actually based on vim, not neovim. Don’t remember why.

                                              1. 1

                                                Thanks, I didn’t realize that. From what I’m searching now, OniVim was based on NeoVim, but OniVim2 switched to Vim due to build issues of NeoVim in author’s environment.

                                                https://github.com/onivim/libvim#why-is-libvim-based-on-vim-and-not-neovim

                                        1. 7

                                          I hope that someone writes a response to balance this because this seems to contain some exaggeration. For example:

                                          In other words, it will be impossible for a Joda-Time user to hold the ID “Europe/Oslo” in memory.

                                          That’s false, because the library could keep both the requested and the database IDs available to the user. There’s no technical reason the GetID has to change.

                                          1. 7

                                            Not to mention this aside:

                                            (Technically, the data has moved, not been deleted. But the file containing the moved data is never normally used by downstream systems, thus to all intents and purposes it has been deleted.)

                                            I don’t really see how this is an insurmountable problem to address.

                                          1. 3

                                            Here is the thread on the TZinfo mailing list where the author of the post proposes forking the database

                                            https://mm.icann.org/pipermail/tz/2021-September/030400.html

                                            1. 1

                                              It’s been N x 365[1] days since I saw the light of day, and society insists on noticing that. So probably something appropriate.

                                              It is also the biannual cleaning day in the area where we have our vacation home.

                                              Said vacation home has developed a serious issue which renders the waste disposal part inoperable, so we’re going to semi-decommission it while waiting for repairs.

                                              [1] not including leap years. Assume N is a real…

                                              1. 3
                                                ( brilliant(,)
                                                	( if
                                                		( only
                                                			( it
                                                				( wasn\'t
                                                					( lisp :))))))
                                                
                                                1. 13

                                                  I don’t know why people have this learned hatred of parenthesis.

                                                  1. 2

                                                    LISP value lies beyond its syntax. But when your world is only C-like/Python-like syntax it is hard to look beyond just the syntax of any new language.

                                                    Mainly: https://wiki.haskell.org/Wadler's_Law

                                                    In any language design, the total time spent discussing a feature in this list is proportional to two raised to the power of its position.

                                                          0. Semantics
                                                          1. Syntax
                                                          2. Lexical syntax
                                                          3. Lexical syntax of comments
                                                    
                                                    1. 2

                                                      LISP value lies beyond its syntax. But when your world is only C-like/Python-like syntax it is hard to look beyond just the syntax of any new language.

                                                      My world is not only C-like/Python-like syntax. and LISP is not a new language to me. It was my first real exposure to programming to get real work done (not counting some hello-world stuff in other languages and copy/paste POSIX/BAT script script stuff I didn’t really understand at the time) and I kept up with it for years through my next couple languages (Perl being my next major stop). I realize it has value, but even knowing where some of that value lies it’s hard to to make fun of how obtuse it can be.

                                                      1. 2

                                                        I don’t know why people have this learned hatred of parenthesis.

                                                        Experience.

                                                        Mine with LISP being from before the days when editors had syntax highlighting of any kind, much less nested parenthesis color matching.

                                                        1. 2

                                                          i often use my editors in monochrome mode: vi has the % command to check on matching parens, emacs has the full suite of s-expr commands.

                                                    1. 2

                                                      TIL we had an education tag.

                                                      1. 2

                                                        There’s still definitely a market for the old casio watches (which are still readily on sale new).

                                                        It’s a wonder they haven’t been updated to present technology. Sure it should be possible to have dramatically better battery life and accuracy?

                                                        1. 3

                                                          Casio makes thousands of different watches. The one here (FW-91, “affectionately” known as the Terrorist’s Watch) is one of the cheapest you can get.

                                                          It’s still an order of magnitude more accurate than any mechanical wristwatch, and IIRC the battery lasts for years.

                                                          If you go up the price scale, Casio has watches that charge via light, and that discipline their quartz oscillators via radio signal, or via BT to your phone (itself a NTP client) or directly to GPS.

                                                          1. 2

                                                            I know, I own one from ages ago.

                                                            (note: not a terrorist. But I heard, and did stop wearing it into airports)

                                                          2. 2

                                                            It’s a wonder they haven’t been updated to present technology. Sure it should be possible to have dramatically better battery life.

                                                            You forgot the /sarcasm tag. The batteries of some of those old casio watches were probably installed when Steve Jobs announced the first iPhone.

                                                            1. 1

                                                              was it 10 or 7 years? Could be longer. If it ever needs replacement, that’d mean it could be improved.

                                                              Re: accuracy, it DEFINITELY could be better. Same deal, if it ever needs adjustment, it’s not good enough.

                                                              Seriously, got mine early 90s. Tech must have advanced.

                                                              1. 1

                                                                If you want good stand-alone quartz oscillator accuracy, you need to have a thermal compensated oscillator. Not many companies make these - I know of watches available from Citizen, Swatch Group (Omega) and Breitling. All these watches are in the $3,000+ range.

                                                                1. 1

                                                                  The TCXO themselves aren’t anywhere near that expensive.

                                                                  1. 1

                                                                    No, but the market isn’t there. For most people, 15s/month is perfectly acceptable.

                                                                    Next level is disciplining via radio signals, Bluetooth low-energy, or GPS. These take care of stuff like dates and DST changes too!

                                                                    High-accuracy quartz is a niche, so the total price is higher.

                                                          1. 9

                                                            Pet peeve - this person utility saying that GMT and UTC are the same. They are not.

                                                            Edit author seems to know the difference, OpenSSL X509 does not.

                                                            1. 2

                                                              Heh, I guess that’s what it’s a peeve; in practical use cases - GMT & UTC tend to be the same. But careful users of the time zones would lean to use UTC when they want that “U” part.

                                                              1. 9

                                                                i do not recommend using GMT in communication. some people will assume it means “time in London”, which can cause problems when summer-time etc… saying “UTC” avoids this problem.

                                                                1. 8

                                                                  Top tip: pretend you’re a pilot/sailor and use “Zulu”

                                                                  1. 5

                                                                    My experience is that people in Britain say “GMT” to mean “whatever time it is in Britain right now” - never mind if it’s GMT (UTC+0) or BST (UTC+1).

                                                                    1. 10

                                                                      In my experience that is true everywhere.

                                                                      When someone say whatever time GMT, EST, CST, PST, MST.. they always mean whatever that time happen where “i” am and the person on the other side need to figure out what time it actually is..

                                                                      This coming from someone that work with support globally (mostly Europe and America continents tough) and has to deal with this on a daily basis, basically i need to track regular\daylight almost everywhere to try figure out when my meetings are..

                                                                      1. 3

                                                                        I started using timeanddate event announcer links annoyingly frequently in hopes that I can get other people to use them instead of just the timezone letters.

                                                                        1. 1

                                                                          This is my experience as well and it is frustrating. I always write ET, CT, MT, and PT for the main US timezones. It’s viewer letters. Why do folks stick the S in there? Nobody seems to ever stick the D in there!

                                                                1. 5

                                                                  Dragonfly has gone a long way since; now they’re trading blows with Linux in the performance front, despite the tiny team, particularly when contrasting it with Linux’s huge developer base and massive corporate funding.

                                                                  This is no coincidence; it has to do with SMP leveraged through concurrent lockfree/lockless servers instead of filling the kernel with locks.

                                                                  1. 3

                                                                    This comparison, which seems pretty reasonable, makes it look like it’s still lagging behind.

                                                                    1. 7

                                                                      What I don’t like about Phoronix benchmark results generally is that they lack depth. It’s all very well to report MP3 encoding test running for 32 seconds on FreeBSD/DragonflyBSD and only 7 seconds on Ubuntu, but that raises a heck of a question: why is there such a huge difference for a CPU-bound test?

                                                                      Seems quite possible that the Ubuntu build is using specialised assembly, or something like that, which the *BSD builds don’t activate for some reason (possibly even because there’s an overly restrictive #ifdef in the source code). Without looking into the reason for these results, it’s not really a fair comparison, in my view.

                                                                      1. 3

                                                                        Yes. This is well worth a read.

                                                                        Phoronix has no rigour; it’s a popular website. A benchmark is useless if it is not explained and defended. I have no doubt that the benchmarks run in TLA were slower under freebsd and dragonflybsd, but it is impossible to make anything of that if we do not know:

                                                                        1. Why

                                                                        2. What is the broader significance

                                                                        1. 4

                                                                          The previous two comments are fair, but at the end of the day it doesn’t really change that LAME will run a lot slower on your DragonflyBSD installation than it does on your Linux installation.

                                                                          I don’t think these benchmarks are useless, but they are limited: they show what you can roughly expect in the standard stock installation, which is what the overwhelming majority of people – including technical people – use. This is not a “full” benchmark, but it’s not a useless benchmark either, not for users of these systems anyway. Maybe there is a way to squeeze more performance out of LAME and such, but who is going to look at that unless they’re running some specialised service? I wouldn’t.

                                                                      2. 1

                                                                        This comparison, newer and from the same website, makes it look as the system that’s ahead (see geometric mean @ last page).

                                                                        Not that I’m a fan of that site’s benchmarks.

                                                                        1. 2

                                                                          I haven’t done the math, but it seems like most of DragonFlyBSD’s results come from the 3 “Stress-NG” benchmarks, which incidentally measures “Bogo Ops/s”.

                                                                          Here’s the benchmark page: https://openbenchmarking.org/test/pts/stress-ng

                                                                          I don’t know why Phoronix uses a version called 0.11.07 when the latest on the page seems to be 1.4.0, but maybe that’s just a display issue.

                                                                          1. 1

                                                                            Christ @ benchmarking with Bogo anything.

                                                                    1. 22

                                                                      I’ll never understand why WSL wasn’t named “Linux Subsystem for Windows”.

                                                                      1. 21

                                                                        Because Windows has historically had several subsystems, including the OS/2 subsystem, POSIX subsystem, and, most famously, the Win16 subsystem, which were all called e.g. “Windows Subsystem for OS/2”. WSL1 built on roughly the same model, and so ended up with a similar name. WSL2 is entirely different, but we’ve got the name stuck now.

                                                                        Note, I’m not really disagreeing with you, but just explaining that this naming convention is just how Windows has named its subsystems for a long time.

                                                                        1. 4

                                                                          Would it have made more sense to call it “OS/2 Subsystem for Windows?” Or is there some reason the reverse made more sense?

                                                                          1. 6

                                                                            Back in the 90s, when this showed up with the first versions of Windows NT, the word “applications” was either explicit or obviously implicit (I sincerely forget which) for all of these. So “Windows Subsystem for OS/2 Applications,” or “…for POSIX Applications,” if you will. At the time, Windows NT was trying to subsume minicomputer and (in some cases) mainframe environments, but not vice-versa, so the ambiguity the elision has in 2021 just didn’t exist in 92 or whenever this was.

                                                                            1. 3

                                                                              One wonders why the word “Windows” was not implicit too. Of course it is a Windows subsystem. It is a subsystem on your Windows. You don’t have subsystems for other operating systems on your Windows than for Windows. Otherwise it would not be a _sub_system, right?

                                                                              1. 1

                                                                                The Windows 2000 bootscreen would say “built on NT technology”. I always thought that was slightly amusing (I would have done the same though since not everyone knows that NT stands for “new technology”; most people in fact don’t know).

                                                                                1. 1

                                                                                  “NT” did stand for New Techology but I think by the time W2000 rolled around it was just its own term - “Windows NT” was the server version of Windows.

                                                                                  1. 1

                                                                                    This joke was already running around cca. 2002 or so: https://imgur.com/a/UhSmCdf (this one’s a newer incarnation, I think). By that time the NT was definitely its own term. I remember people thinking it stood for “networking” as early as 1998 or so.

                                                                        2. 5

                                                                          This is from the company that named the phone they pinned all their iPhone rivalry hopes to the “Windows Phone 7 Series” so honestly I don’t think we can ask too much.

                                                                          Think of it this way: you’d like it to be

                                                                          (Linux Subsystem) for Windows

                                                                          But instead it is:

                                                                          Windows (Subsystem for Linux)

                                                                          There’s just a missing apostrophe to denote possession that would fix it all:

                                                                          Windows’ Subsystem for Linux

                                                                          1. 2

                                                                            but it’s not for linux, it’s for windows.

                                                                            1. 2

                                                                              Windows Subsystem for (running) Linux.

                                                                              1. 1

                                                                                but you don’t run linux (the kernel), you just run a GNU userland right?

                                                                                (inb4 “I’d like to interject…”)

                                                                                1. 2

                                                                                  In this particular case, WSL2 literally is purely about the Linux kernel. You can use any distro you want, including those with a BSD or Busybox userland.

                                                                                  1. 1

                                                                                    what does it mean to be “about the linux kernel”

                                                                                    1. 2

                                                                                      It is a Linux kernel running in a virtual machine. WSL1 was a binary compatibility layer, WSL2 is actually a VM running a Linux kernel.

                                                                                      1. 1

                                                                                        I see, thanks

                                                                          2. 2

                                                                            My understanding is that by that point there were a few “Windows Subsystems” already, not necessarily implementing other OS APIs.

                                                                            1. 1

                                                                              There were originally 5, I think: • Win32 • WOW – Windows on Windows – the Win16 subsystem • DOS • OS/2 (for text-mode apps only) • POSIX (the NT Unix environment)

                                                                              OS/2 was deprecated in 3.51 and dropped in 4.

                                                                              64-bit NT drops the old WOW16 subsystem, but replaces it with WOW32 for running Win32 apps on Win64.

                                                                              The POSIX subsystem has now been upgraded to be Linux-kernel compatible.

                                                                              WSL 2 is different; it’s a dedicated Hyper-V VM with a custom Linux kernel inside.

                                                                          1. 17

                                                                            Personally, I’m excited about the “melting face” emoji, as well as a few of the new gender and skin color variants that will piss off chuds. Also, the Emoji block of Unicode now has not one, but two amulets against the evil eye, which I expect will be extremely valuable for social media.

                                                                            1. 6

                                                                              I’m torn between “melting face” and “dotted line face”, I think they’ll replace my usage of 🙃going forwards.

                                                                              1. 5

                                                                                The emoji thing is so totally irresponsible. Humanity is never going to replace Unicode. We’re stuck with it until we either go extinct or go Luddite. Adding emoji based on whims is how you end up with things like this sticking around for four thousand years and counting. The Egyptians at least had the excuse that they didn’t know what computers were.

                                                                                1. 11

                                                                                  I actually have that one saved in my favorites in UnicodePad for Android. Of course, the modern spelling would be 🍆💦.

                                                                                  1. 10

                                                                                    Adding emoji based on whims is how you end up with things like this sticking around for four thousand years and counting. The Egyptians at least had the excuse that they didn’t know what computers were.

                                                                                    Not sure what the problem is? Ancient Egyptians living thousands of years ago didn’t share your particular cultural taboos and sensitivities, which seems like an entirely valid “excuse” to me.

                                                                                    1. 2

                                                                                      Right, there’s nothing that the Egyptians were doing “wrong”, because when they decided to use a penis as a letter, they had no way of knowing that for the remainder of human civilization we will have to use the penis as a letter, whether it’s culturally taboo or cool or we replace men with artificial sex bots or whatever. We however do know that Unicode is forever, and so the bar to adding a new character should be really fucking high. Like, here is an alphabet that was already in use by a non-trivial amount of people for some length of time. Not, it would be cool to make a new kind of smiley face.

                                                                                      A better system would be to do what is already done with flags. For flags, the flag 🇺🇸 is just

                                                                                      U+1F1FA 🇺       REGIONAL INDICATOR SYMBOL LETTER U
                                                                                      U+1F1F8 🇸       REGIONAL INDICATOR SYMBOL LETTER S
                                                                                      

                                                                                      We could do the same thing for other ephemera, and not have to burden Unicode with an open ended and endless list of foods that were popular with the Unicode committee in the 21st century.

                                                                                      1. 10

                                                                                        We don’t “have to use the penis as a letter” because it exists in Unicode. It’s just that it is technically representable. I’ll admit there’s nuance here - there are probably some things I’d rather see us avoid in Unicode, i.e. violence. But I’m struggling to see the harm caused in this particular case.

                                                                                        1. 5

                                                                                          Who’s to say that the United States will still be around in 4,000, 1,000, or 200 years? Or that the “US” code won’t be recycled for some other country? Hell, why should our current ISO system of labelling countries even persist? Once you start talking about these kind of timeframes anything is up for grabs really.

                                                                                          “Forever” is a heck of a long time. I don’t think we’re stuck with Unicode for all eternity, there’s all sorts of ways/scenarios we could come up with something new. I think we should just address the issues of the day; there’s no way what the future will be like anyway; all we can do is focus on the foreseeable future.

                                                                                          1. 3

                                                                                            I just imagined some kind of a Unicode successor system that would have a “compatibility” block with 200k+ slots and groaned.

                                                                                            1. 1

                                                                                              That’s the whole point. US won’t mean 🇺🇸 forever. It will naturally change over time and when it does, the old codes will still be decipherable (flag for something called “US”) without needing to be supported anymore.

                                                                                              Tbh, the most likely a scenario is a RoC, PRC thing where two countries claim to be the US, and then the international community will have to pick sides. Anyway, still better than having the flag as a real emoji!

                                                                                              1. 2

                                                                                                I don’t really follow how one scheme is more advantageous over the over; at the end of the day you’re still going have to map some “magic number” to some specific meaning. I suppose you could spell out “happy” or “fireman” in special codepoints, but that just seems the same as mapping specific codepoints to those meaning, but with extra steps (although “fireman” already consists of two codepoints: “man” + “fire engine”, or “person” and “women” for other gender variants).

                                                                                                The reason it’s done with flags probably has more to do that it’s just easier.

                                                                                                1. 1

                                                                                                  It’s not just that it’s easier it’s that obsolescence is a built in concept. New countries come and old countries go and ISO adds and removed country codes. Using Slack and GitHub style :name: emojis mean that you can add and drop support for specific emoji without needing to just serve up a �. It is also more forward compatible. When your friend on a new phone texts you :dotted smiley: you won’t just see �, you’ll see words that describe what is missing. Plus you aren’t using up a finite resource.

                                                                                                  1. 3

                                                                                                    Plus you aren’t using up a finite resource.

                                                                                                    TIL integers are a finite resource.

                                                                                                    1. 2

                                                                                                      To be fair, I’ll be the first to grab popcorn when they announce that everyone and their toaster now has to adopt utf8 with 1-5 bytes. Will probably be as smooth and fast as our ipv4 to ipv6 migration.

                                                                                                    2. 1

                                                                                                      When your friend on a new phone texts you :dotted smiley: you won’t just see �

                                                                                                      Right, that would be useful.

                                                                                                      Changing the meaning of specific codepoints or sequences of codepoints over time just seems like a recipe for confusion. “Oh, this 300 year old document renders as such-and-such, but actually, back then it meant something different from today” is not really something that I think will help anyone.

                                                                                                      This already exists to some degree; e.g. “Ye olde tarvern” where “Y” is supposed to represent a capital Thorn, which is pronounced as “th”, not as Y (written as þ today, but written quite similar to Y in old-fashioned cursive writing, and early German printing presses didn’t have a Thorn on account of that letter not existing in German so people used Y as a substitute). In this case it’s a small issue of pronunciation, but if things really shift meaning things could become a lot more apt to misunderstandings in meaning.

                                                                                                      1. 1

                                                                                                        Emoji have already shifted in ways that change their meaning. The gun emoji has become a ray gun due to political correctness and sometimes points left and sometimes right. Shoot me → zap you. The grimace 😬 was a different emotion on Android and iOS for a while. There are other documented examples of this kind of semantic shift in just a short amount of time. I think it’s a bit hopeless to try to pin them down while you keep adding stuff. The use of eggplant and peach for penis and butt is based on their specific portrayal and subject to the visual similarity being lost if they redraw them in different ways. What if President Xi demands a less sexy 🍑? Will it stick around or be a bit of passing vulgar slang from the early twentieth century? Impossible to predict.

                                                                                          2. 4

                                                                                            Why can’t we have a little fun? What is the problem you are seeing with this?

                                                                                            1. 3

                                                                                              Your body shame is a culturally specific artifact and hardly a universal experience.

                                                                                              1. 1

                                                                                                You’re missing the point. I’m not ashamed of weiners. They are hilarious. The point is that a character can be taboo or not and we’re still stuck with it.

                                                                                                1. 2

                                                                                                  If it’s not something to be ashamed of, is it really taboo enough to exclude from the Unicode standard? And furthermore, why is being stuck with it an issue? It can even be valuable from an anthropological standpoint.

                                                                                              2. 1

                                                                                                Just because a standard exists doesn’t mean we have to use all of it all the time.

                                                                                                Or should the ASCII maintainers be embarrassed that their standard contains Vertical Tab?

                                                                                                1. 2

                                                                                                  My dude, Unicode inherited vertical tab from ASCII. That’s my point. Things are only going to continue to accumulate for now until the collapse of civilization. It will never shrink.

                                                                                            1. 4

                                                                                              I’m hoping I won’t need to make an urgent flight for my dad. Admitted with COVID. He’s immunocompromised.

                                                                                              1. 2

                                                                                                Oh, that’s not good. Here’s hoping everything turns out for the best.

                                                                                              1. 9

                                                                                                They could have quit 10 or 15 years ago and the world would have been no worse off. Let the historical linguists hash things out in their own private-use blocks, and let people send little vector graphics to each other in a way that doesn’t require assigning them as part of an international standard and then burdening every goddamn computing device for the rest of eternity.

                                                                                                1. 15

                                                                                                  There is more than historical scripts being added. For example:

                                                                                                  Tangsa, a modern script used to write the Tangsa language, which is spoken in India and Myanmar

                                                                                                  There are a good number of other, still alive scripts that are yet to be added. There is no reason to burden the internet infrastructure with vector images, when all you need is a decision and a font update. If your application really cares, maybe the character data update as well.

                                                                                                  1. 3

                                                                                                    Imagine if they had added a Turkish delight emoji back in the 1940s. Everyone loves Turkish delight, right!? Except no, to contemporary tastes it is chalky and gross. Well, every food emoji is a bet that for the remainder of human civilization, we will want to be able to refer to a culturally specific food with a particular 32-bit number. It’s crazy. We already have as an historical accident a bunch of Japanese emoji that make no sense in an American context. Why would you deliberately add more culturally specific junk to humanity’s permanent record? In conclusion, 𓂺.

                                                                                                    1. 11

                                                                                                      What is in humanity’s permanent record, aside from culturally specific junk? Besides, so far there are only 144,697 characters, 1,404 emoji, and whatever else is in there. There’s still room for a few thousand more Turkish delights.

                                                                                                      1. 3

                                                                                                        In the interest of various parties I demand Greek delights, Parthian delights, Scythian delights and Armenian delights. Luckily Unicode can handle them all!

                                                                                                        1. 1

                                                                                                          I’d like to upvote the first sentence of this post 144,697*1404 times just for starters.

                                                                                                        2. 2

                                                                                                          Is that really the consensus on Turkish delight? :-)

                                                                                                          1. 1

                                                                                                            This. Emoji is a necessary part of Unicode since it must subsume earlier encodings, but emoji is a Japanese phenomenon. Any new emoji (if ever) should be left up to the Japanese, just like any new kanji.

                                                                                                          2. 1

                                                                                                            What are fonts? :)

                                                                                                            1. 1

                                                                                                              turtle graphics on acid.

                                                                                                        1. 9

                                                                                                          To paraphrase a recent comment: we’re supposed to know what chibicc and cproc are?

                                                                                                          Luckily I can use Google and it turns out they’re both small C compilers.

                                                                                                          1. 2

                                                                                                            It’s a flag used to signal to the mods that this can be removed as a duplicate.

                                                                                                            Merging is for different URIs discussing a common hot topic. AFAIK you can’t merge 2 submissions with the exact same URL (which ‘already posted’ targets).

                                                                                                            1. 1

                                                                                                              But you can’t even post another submission with the same URL (it gives you an error message).

                                                                                                              1. 1

                                                                                                                AIUI only if the older submission with the same URL was done recently.