Wednesday, December 3, 2014

The Regression of Technologies

You know, when my Dell Venue 8 decided to shutdown Firefox out of nowhere for the upteenth time, I really need to vent my frustration somewhere. The state of our technologies is shameful, I tell you, shameful.

On the paper, my tablet has a 2.1 GHz dual core CPU with 1GB of RAM. Think about how marvelous this hardware is. This is above Windows Vista's recommended specification. Less than 10 years ago, with such system, I should expect a smoothly functional, graphical operating system on which I can work with office software, some small games, and read news. In parallel. And if you are willing to go just a bit back, this specification is like 5 times the recommended hardware for Windows XP, which, again, is a modern OS with graphical interface. On such powerful specification, you should be able to run suites of heavy applications (think Mozilla + Word + Outlook + games) at the same time, switching back and forth as you see fit.

However, Android could barely load itself on such capable system. And what do I run? A web-browser, a manga reader, and that's it. And, let's not pick on Dell either. My phone does similar things. Once, I was on the road, with Google Maps navigation and Audible running concurrently. At one point, the navigation told me that I will need to turn in about a mile. So I anticipated the signal to turn, and anticipated, and anticipated. After about 5 minutes (which should work about about at least 2 miles), I was confused why navigation has not told me which road to turn in yet. The mystery was easily seen once I looked at the phone: apparently, Android has decided that it ran out of memory or resources or whatever, and booted my navigation service out. No warning, no choices (seriously, given choice, Audible would go; I need navigation, no?), no nothing. Just kick it out.

I mean, guys, it's 2014. We know how to swap RAM to hard drive to emulate full memory. We have various web-based solution to divide the load between server and client. We have beautiful hardware that was unaffordable merely 10 years ago, and unthinkable 15 years ago (sounds long, but everyone using a smart phone once lived that time; it's in memory, for God's sake!). And the damned OS cannot have 2 services running at the same time. What gives?

And I don't mean Android is the only bad system, either. Have you heard of NodeJS? I still don't understand why people use it. It basically throws away every practical and theoretical advances of computer sciences in the last 20 or so years (no type checking, no multi-threading, no proper concurrent programming, no proper programming paradigm, etc.) and bills itself as, um, the greatest and latest. People talk about how fast NodeJS is. Seriously, guys. If you want to program without any modern features for speed, go and use assembly. I am about 200% sure it's faster. Hey, you can finally use more than 1 core!

The list of those "greatest and latest" go on and on. How about IDE? Emacs was ridiculed as "Eight Megabytes And Constant Swapping." How much memory any of your IDE takes? Or music. Once upon the time, people listened to vinyl. Then, it's CD. Then, it's MP3. Then, it's Youtube. Wanna talk about quality?

We keep talking about advances of technologies. However, there is this drive to reimplement everything on new platform, but the new implementation is slower, buggier, less capable than the last one. I still wonder why.

No comments:

Post a Comment