7 ms·
Honestly, it doesn't feel like personal computing has improved much at all. I remember using Windows 2000. Run it on an SSD and it flies (tried it recently). Ye
by VortexDream 5y ago
Honestly, it doesn't feel like personal computing has improved much at all. I remember using Windows 2000. Run it on an SSD and it flies (tried it recently). Yet I can't identify anything that W10 does better (for me) than W2000 that justifies its sluggishness on a C2D.
- kilburn 5y agoWhile it is true that older software is extremely snappy if you compare it with what we use today, it is not that hard to find examples where we have come a long way. Off the top of my head: - You can mix chinese and russian characters in a document [pervasive use and support for unicode] - Your computer won't get zombified minutes after you connect it to the internet [lots of security improvements] - You can connect a random usb thingy with a much much lower probability of your computer getting instantly owned [driver isolation] - You can use wifi with some reliability [more complex, stable and faster communication protocols] - You can have a trackpad that doesn't suck [commodization of non-trivial algorithms/techniques that did not exist back then] - Files won't get corrupted time and again at every power failure [lots of stability improvements] Whether all of the above could be achieved with the _very performance oriented_ techniques and approaches that used to be common in older software is debatable at least. In any case, a lot of the slowness we pay for toady is in exchange of actually being able to deal with the complexities necessary to achieve those things in reasonable time/cost.
- bruce343434 5y ago> - You can have a trackpad that doesn't suck Go on...
- dmitriid 5y ago> In any case, a lot of the slowness we pay for toady is in exchange of actually being able to deal with the complexities necessary to achieve those things in reasonable time/cost. This is also debatable at least. Just a few weeks ago it turned out that the new Windows Terminal can only do color output at 2fps [1]. The very infuriating discussion in the GitHub tracker ended up with a Microsoft tea member saying that you need a " an entire doctoral research project in performant terminal emulation" to do colored output. I kid you not. [2] Of course, the entire "doctoral research" is 82 lines of code [3]. There will be a continuation of the saga [4] And that is just a very small, but a very representative example. But do watch Casey's rant about MS Visual Studio [5] You can see this everywhere. My personal anecdote is this: With the introduction of new M1 macs Apple put it front and center that now Macs wake up instantly. For reference: in 2008 I had the exactly same behaviour on a 2007 Macbook Pro. In the thirteen years since the software has become so bad, that you need a processor that's anywhere from 3 to 15 times more powerful to barely, just barely, do the same thing [6]. The upcoming Windows 11 will require 4GB of RAM and 64GB of storage space just for the empty, barebones operating system alone [7]. Why? No "wifi works reliably" or "trackpad doesn't suck" can justify any of this. [1] https://twitter.com/cmuratori/status/1401761848022560771 https://twitter.com/cmuratori/status/1401761848022560771 [2] https://github.com/microsoft/terminal/issues/10362#issuecomment-862844333 https://github.com/microsoft/terminal/issues/10362#issuecomm... [3] https://twitter.com/cmuratori/status/1405356794495442945 https://twitter.com/cmuratori/status/1405356794495442945 [4] https://twitter.com/cmuratori/status/1406755159347130371 https://twitter.com/cmuratori/status/1406755159347130371 [5] https://www.youtube.com/watch?v=GC-0tCy4P1U https://www.youtube.com/watch?v=GC-0tCy4P1U [6] https://gadgetversus.com/processor/apple-m1-vs-intel-core-2-duo/ https://gadgetversus.com/processor/apple-m1-vs-intel-core-2-... [7] https://www.microsoft.com/en-us/windows/windows-11-specifications https://www.microsoft.com/en-us/windows/windows-11-specifica...
- dmitriid 5y agoAs luck would have it, here's the continuation to Windows Terminal. Casey Muratori made a reference terminal renderer: https://github.com/cmuratori/refterm https://github.com/cmuratori/refterm This uses all the constraints that the Windows terminal team cited as excuses: it uses Windows subsystems etc. One person, 3k lines of code, it runs 100x the speed of Windows terminal. See the epic demo (and stay till the end for color output): https://www.youtube.com/watch?v=hxM8QmyZXtg https://www.youtube.com/watch?v=hxM8QmyZXtg
- kilburn 5y agoTo play devil's advocate, what I see in that demo is that: - Yeah, some lower-level stuff seems to be broken (the windows console I/O stuff). - Microsoft's devs linked to a very nice website that quickly and nicely explains some of the quirks of modern text rendering [1]. - Casey proceeds to demonstrate a (very fast!) approach that completely ignores some of the problems laid out in that site. Namely, his entire approach is based on caching rendered glyphs, which the document explicitly states is something you can't do naively and expect correct results (section 5). - In his very demo some of these issues pop up (terrible-looking emojis, misaligned ascii art) and he shrugs those off as if they were easy jobs. - Other issues are never tested in his demo. Examples include: (i) dealing with text selection, which is hard according to the linked site; (ii) how is he "chunking" non-asscii character runs (also hard to do correctly); (iii) handling ligatures (terminal programs oftentimes use ligatures between basic ascii character combinations such as => to make some source code more readable) In other words: I see an incomplete solution that addresses only the easy parts of the problems (in a very performant way!) that fundamentally cannot be extended to a correct solution for the actual/full problem. And a lot of arrogance while presenting it. In no way does this mean that a much more performant solution doesn't exist. But Casey's cute demo is not a proof that it does because it does not solve the actual/full problem. PS: I don't work for MS, I don't know Casey nor any of MS's devs, and I don't even use windows. I do hold a PhD though, and I know plenty of PhD's dedicated to exploring the nitty-gritty details that some people with only cursory knowledge about the problem would dismiss as "this must be a quick job". [1] https://gankra.github.io/blah/text-hates-you/ https://gankra.github.io/blah/text-hates-you/
- VortexDream 5y agoHonestly, I don't see why any of these things require such terrible performance characteristics.
- kilburn 5y agoI tried to use examples where some inherent performance penalties where easy to see: - Unicode text: All text consumes more memory (because the character space is much larger). Basic text processing ("wrap this paragraph at 80 characters") becomes much harder, not just because bytes != glyphs, but also because glyphs can combine. - Security improvements: we now have various sandboxing, isolation, execution-protection, etc.. features in OSes. The performance impact of some of those is negligible thanks to new hardware features to help with them, but others still have a significant cost. Furthermore, some performance tricks used in old systems would simply violate the current security models and are hence impossible to do anymore. - Driver isolation: this is similar to the above. The OS is now doing more work to ensure drivers behave, the isolation forbids some more performant pathways, etc. - Wifi with some reliability: this was an example of progress being achieved. Wifi protocols are a nightmare, and I'm still amazed that they work at all. - Better trackpads: another progress example. The big issue here has been the development of smarter algorithms (and the hardware refinement to back them up). This is something that seems simple, but it took a very long time to get this anywhere acceptable (even after Apple showed the world it was possible). I can only assume that it is actually a pretty hard problem underneath. - Files that don't get corrupted: we have needed years and years of iterative improvements to finally get here, both at the FS level and on the programs above (think DBs). We are now going through journal logs, memory barries, checksumming and verifying data, using copy-on-write for FSs, etc.. All these things have non-negligible runtime and camplexity costs. In general, we have been prioritizing to make more stuff and/or making the stuff more correct, disregarding the performance aspect so long as it remains good enough (from the POV of the developers).
- dmitriid 5y ago> Security improvements: we now have Everyone agrees that M1 is a very fast chip, much faster than the current Intel chips shipping with Macbooks. And yet: when I trigger the native "Open File" dialog from IDEA, it still takes MacOS up to a second to verify permissions on a list of directories and mark them as available. So, given that: - M1 is blazingly fast - modern SSDs pump GBs of data per second - RAM on M1 is almost literally a part of the CPU, and the bandwidth of modern RAM is also GBs per second why does it take up to a second to verify permissions on a list of five directories? > Unicode ... Wifi ... Trackpads ... None of these require GBs of RAM and 16-core processors to barely run.
- PragmaticPulp 5y ago> Yet I can't identify anything that W10 does better (for me) than W2000 that justifies its sluggishness on a C2D. Core 2 Duo was introduced 15 years ago (2006). Almost a decade before Windows 10 was released. Windows 10, and all modern operating systems, are designed around the availability of modern GPUs. If you try running it on an ancient machine without modern graphics acceleration and without enough CPU power to handle it in software, it's going to feel sluggish. Windows 10 is perfectly fine and snappy on every machine I've used it on in recent history.
- hashhar 5y agoHardware getting 100x faster isn't a good reason to make your software 100x slower so that the user-experience feels the same as from 20 years ago.
- speedgoose 5y agoHave you tried to do heavy computing on an old windows? In my experience the multi-tasking under load is so bad that you can't really use the machine while it's busy. And then you can also think about the security improvements.
- zozbot234 5y agoThe multitasking is just as bad on modern Windows, tbh. Given reasonably up-to-date hardware, a lightweight Linux install really can be as snappy as Windows 2000 was back in the day, and that's with a lot of security and usability improvements.
- speedgoose 5y agoMy windows 10 laptops can redraw the mouse cursor and windows without much issues when it's rendering a video using all the cpu cores for example.
- VortexDream 5y agoI genuinely don't think modern OS's are any better at multitasking with heavy loads. Particularly Linux and Windows are terrible at heavy mtitasking loads, at least as a software developer working with both environments. I also don't see why the security improvements lead to such a massive decrease in performance.
- api 5y agoIt spies on you and monetizes you better.