Re: F#




Markus E Leypold <development-2006-8ecbb5cc8aREMOVETHIS@xxxxxxxxxxxxxxxxxxxxx> writes:
Actually speed mostly matters in 3 areas

- Consumer software with 10Ks of installs (because the money saved in
hardware can be spent in paying the developers).

I don't understand this one--isn't it the consumers' money (not the
developers') that is being spent? That is after all why Windoze is so
slow. It doesn't cost Microsoft anything to send consumers on an
endless hardware upgrade treadmill.

Well, M$ has a Monopoly. That is not a market, it's blackmail. In a
market things might happen like this: If you target a large customer
group, and you can make N more customers (those with slower machines)
you get a certain amount of additional proceeds from that. If that is
more than the optimization costs you in developer time, than it's
economical to do it. The other way round, with a constant number of
customers: If N of them DeltaC in additional hardware costs, they can
spent it on your software instead: So you if N * DeltaC > cost of the
optimzation, it's economical again.

In reality things are a bit more complicated (advertisment and
marketing come into it and that the customers don't save their money
just to spent it for your software, some need hardware upgrades
anyway, so those only see your software getting more expensive). The
basic point I wanted to make is simply: In depends on the number of
installs wether a given optimization is economical and should be
done. That is often overlooked in discussions about optimization where
one camp often argues as if speed is everything and the other camp
that you can always buy better hardware and that it is developer time
that is expensive. Both are right -- speed pays if situations with
many installs (less pressure to upgrade, customers better spent their
money on better software) whereas the latter is the single or few
customers situation (typical for bespoke software) where optimization
is often simply too expensive when compared to a hardware upgrade.

Note that these days there is, usually, not pure bespoke software
anymore: Critical components are usually bought of the shelf, like
databases in example.


- (Interactive) Graphics (because the user expects a certain responsivness.
- Simulations (because you can't wait for tomorrows weather until
next week).

Server applications should be on the list too. A medium sized website
(tiny compared to, say, Ebay or Google) might have a few thousand
servers.

As few thousands? If I remember right, e.g. MySpace started really
small with less than a handful of servers. I think, people
overestimate the number of server you need for even a fairly large
operation. And as far as E-Bay goes: Their service is not fast (at
least not how I experience it) and parts of it often go offline
unpredictably if only for some seconds. Their problem is more one of
transparent and reliable failover since the typical E-bay-crowd seems
to be ready to tolerate overladen, slow loading pages.

If they can make the software twice as fast, and that lets
them unplug half the servers while handling the same workload, the
annual savings in electricity costs alone can pay a few programmers'
full time salaries.

Only at that order of magnitude it's probably more than a few
programmers and you're on no account to endanger the reliability. The
existing code exists. It might be slow. new code will be buggy, it
might disrupt the service. Shall they pay more server (which they can)
or experiment with new optimized code instead? You see, they might be
slow in adpoting and integrating new code in this situation (which is,
again, completely different frim one were software is released at a
given time and shipped to customers).

And then there's the savings from not having
to buy all that hardware, maintain it, pay for hosting space, etc.

Regards -- Markus

.



Relevant Pages

  • Re: F#
    ... hardware can be spent in paying the developers). ... I don't understand this one--isn't it the consumers' money (not the ...
    (comp.lang.functional)
  • Re: NetworkManager update
    ... I see you do indeed seem to be operating hardware that requires interaction of a number of different, independently developed, bleeding edge bits--ndiswrapper and the closed-source driver for your card, the open-source driver for your card, NetworkManager, etc. ... Well, understanding that about yourself, you can understand how developers can get into the same mindset. ... But to effectively work with a diverse group of specialists such as the driver authors and the ndiswrapper authors and the NM and wpa_supplicant authors, you will need to get out of that mindset yourself and be disciplined about gathering evidence and working your way through the process and encourage the developers you are working with to get out of their mindset and communicate with you enough so that you reach common understanding. ...
    (Fedora)
  • Re: So lets build a router
    ... >You have a small hardware, software, and marketing group. ... Building conjoined hardware and software systems is something I ... >and that someone is very often developers along ... >responsibility for the entire system. ...
    (comp.object)
  • Re: Bitwise OR just like SUM or COUNT
    ... > until the 1960's the cost of the hardware was ten times OR MORE the cost ... were doomed from the get-go because of a lack of resources (cash, hardware, ... etc. I've known many smart developers that worked for large ... for the database ...
    (microsoft.public.sqlserver.programming)
  • Re: your suggestions plz
    ... First of all it is not a good business concept trying to get customers ... knives for what your hardware can do are in my understanding Samplitude, ... restoration of vinyl records, compact casette tapes and VHS tapes, be it ... hardware is "no longer supported" by Sony and of course also reel to ...
    (rec.audio.pro)