Linked by Thom Holwerda on Fri 27th Dec 2013 20:03 UTC
Hardware, Embedded Systems

The CDC6600 and its family members are part of the computer industry history. A decade before the Cray 1, the members of the CDC6000 family were not only expensive and the most powerful systems at the time of introduction. They were also lean and wonderful architectures ! The elegance was also conveyed in several publications (many by CDC), where all the necessary knowledge was explained from the ground up. All you needed to know was supplied, clearly laid out, not just hints for efficient programming. Basically, you could rebuild your own computer by reading these books. 50 years later, they are invaluable reminders and tools, we can see where the computer industry comes from and realise that it is not that hard to do it ourselves, too.

Via HackerNews. This is an amazing resource.

Thread beginning with comment 579586
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: nice
by Drumhellar on Sun 29th Dec 2013 03:11 UTC in reply to "nice"
Drumhellar
Member since:
2005-07-12

Knowing all this sort of now holds me back, I can't stomach to think why code is so bloated, what is going on, is it all just 512^2 pixel maps to make it look darn pretty.


Well, in the case of iTunes for OSX, the actual executable + bundled libraries is about 64MB - and contains a boatload of feature. All the different views, support for every iPod (even going back to the original), support for the store, managing the music database, music encoding and decoding, error handling, parental controls, a dynamic and customizable interface supporting a number of view modes, and more. And, it also supports two architectures - i386 and x86_64.

Is it bloated? And, if so, is it bloated from poor code density, or is it bloated because it contains features you don't use?

The bulk of iTunes.app is contained in localization. 34 languages are supported, totaling up to 139MB.

There's a ton of graphics - device icons have a dark and light version, and file-type icons go extremely high resolution - there's about 25MB of graphics (Maybe more - I didn't look too hard)

The iTunes help file alone is 24MB.

So, better code optimization could bring down the size of one of these things - the actual executable size, but is this important? For an app like iTunes, when 99% of what the application is doing is waiting for the user to do something, would there be a noticeable benefit?

With the amount of processing power and available memory of modern systems, especially when compared to the cost of today's systems, is absolute code efficiency even that important? It certainly was when a megabyte of RAM cost thousands of dollars, but for pennies per megabyte, especially when the application isn't performance sensitive?

I'd say no.

Reply Parent Score: 5

RE[2]: nice
by JPollard on Sun 29th Dec 2013 16:44 in reply to "RE: nice"
JPollard Member since:
2011-12-31

You still pay for it... more paging activity, more I/O, slower startups...

And a LOT more error prone.

The problem is that mixing user interface and application makes for a very bug hospitable environment.

And that translates into system vulnerabilities.

That is what modularity is supposed to address.

Unfortunately, throwing everything and the kitchen sink into an application make a poorly performing program.

Reply Parent Score: 2

RE[3]: nice
by Drumhellar on Mon 30th Dec 2013 07:27 in reply to "RE[2]: nice"
Drumhellar Member since:
2005-07-12

And a LOT more error prone


Is it really? Or, do you just think it is?

Is Office '95 more stable than Office 2012?

No. It isn't. Not even close. It is also far more capable and better in pretty much every way, given that it also runs of far more capable hardware.

When people are so bothered by potential perceived inefficiency without giving a thought to what is actually happening behind the scenes, by what they perceive as "bloat," which 99% of the time is just a euphemism for "features I don't use," it makes me think you think it would have been better if software just stood still for the past 20 years despite the massive increase in hardware capacity.

There's always been crummy software, but at least now, there's a lot more usable software, too.

And usability is what's actually important - not some imaginary utopia of efficiency or correctness.

Software is only useful if it's usable.

Reply Parent Score: 5