Welcome, Guest. Please login or register.

Author Topic: Bloatware AmigaOS?  (Read 14286 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Oliver

  • Hero Member
  • *****
  • Join Date: Sep 2005
  • Posts: 803
    • Show all replies
Re: Bloatware AmigaOS?
« on: November 05, 2007, 02:35:38 PM »
Quote

Waccoon wrote:
...It's also faster and more reliable to write good, maintainable code that gets the job done, rather than cryptic code that is amazingly efficient.  What good is it that you use 30% less RAM, but the code takes ten times longer to develop and debug?

...Even X86 is pretty efficient if you think about it, because hardware engineers cannot be anywhere near as sloppy as software engineers.  That's the result of cutthroat competition, limited (or rather, costly) resources, and a deep awareness of time.  Hardware engineers always have to know when things happen, while software tends to sit around, wait for other things to get done, and allow everything to get out of sync.

To improve responsiveness, maybe software compilers should introduce more controls to monitor time, like hardware compilers.


Hi Waccoon,

I'm also not really an expert, but I know enough to know that you have raised an important point here. Hardware processes are timing critical, but most software processes are not, particularly when multithreading, multiprocessing, and multitasking is being performed. Generally, if a software process is really timing critical, it will either demand the sole context focus of the hardware it's running on, or if it is just order critical, it will either wait for particular stages of completion, or have its entire task written in a single thread. More often, with personal computers, tasks will be separated into threads of order critical jobs, and mutiple threads of a given task, and multiple tasks can run concurrently.

The draw backs you mentioned with having a detailed analysis of software's runtime behaviour, and a lot of effort put in to optimisation, are always critical with commercial development. High level abstraction, and modularisation also really help to keep the code manageable, portable adaptable, etc.

There are very expensive compilers which do a great job of separating programs into efficient, out of order processing, etc, but many developers don't have the opportunity to compile with these. Sometimes, the processing savings are just not worth it, as well. Some universities actually lease the idle time on their expensive compilers.

At uni, I did an analysis of different compiler's optimisation of common sets of code. For some types of tasks, it really makes a huge difference. Some object oriented code can become a laughable mess when built with free compilers.
Good good study, day day up!