So code that does `${parent}/${child}` will appear to work fine, and then fall apart when used with other production abstractions trying to be resilient on Windows.
-
Show this thread
-
You might be thinking that this kind of wacky behavior is just further evidence that Windows is a lost cause, but the truth is that the problem was caused by people believing (and disseminating) a false belief that you don't need path abstractions.
1 reply 0 retweets 7 likesShow this thread -
That's just one example. Other examples (largely historical) that I have noticed in my career include: * Windows has no support for symlinks * Windows has no support for anything like inotify
2 replies 0 retweets 4 likesShow this thread -
My favorite example of something we did in Ember CLI to better support Windows is creating the symlink-or-copy utility (kudos to
@stefanpenner for that one). It uses symlinks where available (often true on Windows!) and falls back to copying when needed.3 replies 0 retweets 10 likesShow this thread -
* We didn't have to give up good performance just to support windows * We didn't fall into the common trap of supporting symlinks on *nix and not on Windows (the "make it work but don't optimize it" trap) * The abstraction largely eliminates the cognitive load from portability
2 replies 0 retweets 8 likesShow this thread -
Replying to @wycats
Aren't MS the ones that should be maintaining stuff like this? Otherwise we're doomed to redo it in every language and every time MS update something.
1 reply 0 retweets 0 likes -
Replying to @spion
Windows is very stable! And I don't necessarily think it's Microsoft's job to write abstractions that work across Windows/OSX/Linux/BSD/etc. for the same reason in reverse.
1 reply 0 retweets 0 likes -
Replying to @wycats
It would certainly make things easier. For example you could write native (C) libraries that abstract over platforms, then use those in all programming languages... but now you need a C compiler and dependency management on Linux (sudo apt install libdep-dev or it wont install)
1 reply 0 retweets 0 likes -
single-platform native libraries were also a huge pain in node at least until recently. For example, fsevents messed with npm's package-lock.json
1 reply 0 retweets 0 likes -
in my experience these native modules tend to introduce random problems with various random developer machine setups, increasing the barrier to entry.
1 reply 0 retweets 0 likes
I'm saying stuff like libuv (and mio in rust) work better than OS vendors doing it.
-
-
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.