I teach the systems class at Montana State, where we go from transistors up to a real computing system, and I have students that don't understand what a file system really is when they start my class I agree that blow is wrong on some details, but I really think we need to be thinking hard around a NAND-to-Tetris style education that starts in high school for our technical students. I use "outdated" models like Littl…
The concept of files and file systems is useful to regular computer users, even when they have no interest in knowing how things work under the hood. The issue is with mobile OSs, and that software companies like their apps to be a walled garden for your data as much as possible, and therefore resist exposing your data as files living in a normal shared file system. Even if you already work with files, they have you…
Is software abstraction killing civilization? (2021)
131–140 of 219 posts
Re: Is software abstraction killing civilization? (2021)
#132Earlier quoted context omitted.
Your comment indicates a pretty poor understanding of why multilingual text rendering is a lot harder than it was in the early 90s. Back then, to display some text on the screen, the steps were: for each character (=byte), use the index to select a small bitmap from a dense array, copy that bitmap to the appropriate position on the screen, advance. But modern font rendering is: for a span of bytes, first look up whic…
Having personally implemented a Unicode text renderer in both DirectX and OpenGL back in 2002 for the Japanese game market, I dare say that chances are that I know a heck of a lot more than you about high performance multilingual text rendering. Don't presume. You just made the exact same argument that Casey Muratori absolutely demolished very publicly. The Windows Console dev team swore up and down that it was someh…
I never said that.
What I said is that modern text rendering--rendering vector fonts instead of bitmap fonts, having to deal with modern Unicode features and other newer font features, etc.--is a more difficult task than the days when text rendering was dealing with bitmap fonts and largely ASCII or precomposed characters (even East Asian multibyte fonts, which still largely omit the fun of ligatures).
My intention was to criticize this part of your comment:
> None of this matters. UTF8 is not the reason the GUI is slow. Even the UCS16 encoding used by Windows is just 2x as slow, and only for the text, not any other aspect such as filling pixels, manipulating some GUI object model, or responding synchronously vs asynchronously.
> Look at it this way: for a screen full of text, ASCII vs Unicode is a difference of 10 KB vs 20 KB in the volume of data stored. The fonts are bigger, sure, but each character takes the same amount of data to render irrespective of "where" in a larger font the glyph comes from!
This implies to me that you believed that the primary reason Unicode is slower ASCII is because it takes twice as much space, which I hope you agree is an absurdly out-of-whack statement, no?
Re: Is software abstraction killing civilization? (2021)
#133Earlier quoted context omitted.
Having personally implemented a Unicode text renderer in both DirectX and OpenGL back in 2002 for the Japanese game market, I dare say that chances are that I know a heck of a lot more than you about high performance multilingual text rendering. Don't presume. You just made the exact same argument that Casey Muratori absolutely demolished very publicly. The Windows Console dev team swore up and down that it was someh…
> You can't believe how absurdly out-of-whack it is to state that a modern high-end PC would somehow "struggle" with text rendering of any sort! I never said that. What I said is that modern text rendering--rendering vector fonts instead of bitmap fonts, having to deal with modern Unicode features and other newer font features, etc.--is a more difficult task than the days when text rendering was dealing with bitmap f…
Actually, this precise argument comes up a lot in the debate of UTF-16 vs UTF-8 encodings, and is genuinely a valid point of discussion. When you're transferring gigabytes per second out of a web server farm, through a console pipeline, or into a kernel API call, a factor of two is... a factor of two. Conversely, for some East Asian locales, UTF-16 is more efficient, and for them using UTF-8 is measurably worse.
The point is that any decent text renderer will cache glyphs into buffers / textures, so once a character has appeared on a screen, additional frames with the same outline present will render almost exactly as fast as in the good old days with bitmap fonts.
Not to mention that Microsoft introduced TrueType in 1992 and OpenType in 1997! These are Windows 3.1 era capabilities, not some magic new thing that has only existed for the last few years.
None of this matters in the grand scheme of things. A factor of two here or there is actually not that big a deal these days. Similarly, rendering a 10x20 pixel representation of maybe a few dozen vector lines is also a largely solved problem and can be done at ludicrous resolutions and framerates by even low-end GPUs.
The fact of the matter is that Casey got about three orders of magnitude more performance than the Windows Console team in two orders of magnitude less time.
Arguing about font capabilities or unicode or whatever is beside the point because his implementation was more Unicode and i18n compliant than the slow implementation!
This always happens with anything to do with performance. Excuses, excuses, and more excuses to try and explain away why a 1,000x faster piece of hardware runs at 1/10th of the effective speed for software that isn't actually that much more capable. Sometimes less.
PS: Back around 2010, my standard test of remote virtual desktop technology (e.g.: Citrix or Microsoft RDP) was to ctrl-scroll a WikiPedia page to zoom text smoothly through various sizes. This forces a glyph cache invalidation and Wiki especially has superscripts and mixed colours, making this even harder. I would typically get about 5-10 fps over a WAN link that at the time was typically 2 Mbps. This is rendered in CPU only(!) on a server, compressed, sent down TCP, decompressed, and then rendered by a fanless thin terminal that cost $200. The Microsoft devs are arguing that it's impossible to do 1/5th of this performance on a gaming GPU more than a decade later. Wat?
Re: Is software abstraction killing civilization? (2021)
#134Earlier quoted context omitted.
If that were the case, why wouldn’t they do that? Does Foxconn also “realize the design” of the iPhone?
Because their business model is to focus on manufacturing so that they don’t compete with their customers. This gives them access to Nvidia and amd with no conflict of interest. This is not something I’m just speculating about and writing about here as a counter point. This is literally a well known and specific strategic business decision made by tsmc. Foxconn I’m less familiar with them so I can’t comment on that.…
https://nuumobile.com/android-oems-vs-odms-5-things-you-shou...
Re: Is software abstraction killing civilization? (2021)
#135Re: Is software abstraction killing civilization? (2021)
#136Earlier quoted context omitted.
I think it's like asking why poverty exists. There's no one, easy answer. We have a lot of difference forces, many of them market or demand or incentives that cause software to be slow. Fixing this will require concerted effort, rewards for making things that are fast, and some sort of accounting for the externalities. Same as any other complex problem.
Aren't you agreeing with Casey by saying this is an effort/cultural problem? He also does say that fast software can sell better.
Re: Is software abstraction killing civilization? (2021)
#137Re: Is software abstraction killing civilization? (2021)
#138The West as a dominant civilization is absolutely collapsing. It's just a matter of how long will it take. I hope China learns from our mistakes and has the will to fix their cultural shortcomings.
Re: Is software abstraction killing civilization? (2021)
#139Earlier quoted context omitted.
The lengths that some JS developers go to avoid writing HTML is unbelievable. JSX is one of those technologies that was clever for what it was, but should have never caught on. Adding another layer of abstraction on top of JSX is the type of behavior at the root of the civilizational collapse argument. Just because you can doesn't mean you should .
Mind you, I’m a former x86 asm and C guy who avoids writing HTML. Web 1 state transfers never made sense to me. It just doesn’t click, I don’t think this way and refuse to do so in the name of not sure what. And while I despise react for its architectural delusions, I still use a js framework to render my webapps. I also don’t see any bloat or something, they all render instantly on both my pc and my phone.
That's because both our phones and computers have multicore CPUs running billions of instructions per second per core. So all the bloat gets executed quickly, and we don't get to notice that it's there.
But it's there. And it's dirty.
Re: Is software abstraction killing civilization? (2021)
#140Earlier quoted context omitted.
Because their business model is to focus on manufacturing so that they don’t compete with their customers. This gives them access to Nvidia and amd with no conflict of interest. This is not something I’m just speculating about and writing about here as a counter point. This is literally a well known and specific strategic business decision made by tsmc. Foxconn I’m less familiar with them so I can’t comment on that.…
Foxconn is actually an ODM too. They design and manufacturer their own phones. https://nuumobile.com/android-oems-vs-odms-5-things-you-shou...