Блог пользователя VC15

Автор VC15, 13 лет назад, перевод, По-русски

There is a very interesting contradiction between productivity of modern hardware and speed of modern software. My first PC had 700 MHz CPU, 64 MB RAM and Windows 98. It took 2-3 minutes to start the operating system. The laptop I'm writing this post on has a dual-core 2 MHz CPU, 2 GB RAM and Windows 7. And it takes the same 2-3 minutes to start up.
The other exmaple. I use Opera. It fits me well except one thing — its launching time. I can't imagine what a browser should do to start in about 20 seconds. But it does. Chrome is supposed to be the fastest browser but it also doesn't show its window immediately after launching. Hey guys, it's just a browser! It must start as fast as Windows notepad does! It should just open its window which usually doesn't have some complex GUI at startup. Maybe additionally it can load a bunch of favourite links but that's all. It just can't take so much time...
So the question is why doesn't the software become faster despite such a significant growth of hardware capabilities in last 10 years? 
I think there are two reasons of this situation:
1. More powerful hardware set weaker requirements on programs.
2. Software development process usually should fit schedule and budget.
So you won't use char instead of int to store tiny numbers (of course if memory isn't a bottleneck). You won't cache linear search results because you have just hundred of items in a list. You will use Python instead of C because it's much easier to write programs with it.
So why do programmers do that? Because it takes less time and doesn't reasonbly hit productivity. To create more effective algorithm you gonna take more time and be paid more. But nobody needs the best effectiveness, satisfactory effectiveness is enough. Browsers and operating systems take much time to start because people load them once a day and don't shut down. If you deviate from this common pattern ... nobody cares :)
  • Проголосовать: нравится
  • +30
  • Проголосовать: не нравится

13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
I think browsers starts slowly because they also need to load some engines for page processing, rendering, security tools and may be something other. Slow hard-disk I/O makes the start slow.

P.S. I use "Preload" script, that loads most popular apps in RAM just after boot in background with a higher NICE. Now browsers starts in the moment. BTW I mostly don't close browser until halt
13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Because software is more complex.
Why is software more complex?
Because hardware is more powerful and we can afford to add more features to our software.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Yes! It is the thing I' talking about. People use hardware's power not to speedup the software but to add more complex features which were impossible to implement on older hardware. I don't say that it is bad. It is only an amusing reality.
13 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
There are different issues regarding this question.

1) Browser is not notepad. You can create notepad, I think, but I doubt you can create JavaScript interpreter which is just a piece of nowadays browsers.

2) Software includes a lot of stupid features, like rounding windows corners or adding gradients and transparency to them which being of minor important requires good amount of CPU and memory resources.

3) Since hardware is so fast, developers more rarely think about optimal ways of implementing any problem. They rather think of fast ways of solving the problem. In this case business is like competition. You know the problem have O(n*log(n)) solution, but you also know that stupid O(n*n) would pass tests either. You wrote bad solution and submit it to win the time. In business just the same - it is often important to think of faster way to present your product to market, not of the best way to create this product.
13 лет назад, # |
  Проголосовать: нравится +27 Проголосовать: не нравится
Let me interpret the replies you've already got.

— That's a user's problem. User must solve it using his own skills.

— Software is inherently complex — hence cannot start fast.

— 1. Try to make your own browser first, before complaining!
— 2. User experience doesn't matter.
— 3. Developers think rarely.

I hope all these persons never develop publicly available desktop applications.

Most people open the browser to enter a URL, search query or select a bookmark — that's what users expect at the very start of the browser. And this is actually much lesser than Windows Notepad does. Browser can prepare its nitty-gritty in the background, because web pages load not so fast anyway, and user is ready to wait.

Answer to your question: nobody wants “faster” software unless when in bottleneck. We want software to be minimally frustrating, but it actually frustrates because developers fail to see this goal as a main goal.

P.S. Hey guys, it's just an operating system! It must start as fast as I think! It just shows me an indicator which is spinning, then it shows me a picture on the desktop and some buttons and icons. Maybe additionally it can ask me for password but that's all. It just can't take so much time...
  • 13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    I just tried to express a user's point of view not a developer's one. A user isn't aware of all the software's complexity, they just think of their experience. 

    And "Try to make your own browser first, before complaining" isn't an argument. Suppose you have a 15-year old "Zhiguli". It breaks down every day. You can't go by it farther than 20 km. You as a driver (read, "as a user") is sick and tired of an infinite repair and breaking. You start complaining saying that same-aged Volswagen works perfectly. And engineers from VAZ could tell you: "Try to make your own car first, before complaining". Of course, its impossible in a real life.