Post by Paul KrausPost by PolytroponYes, those are terrible and years behind technological evolution.
The same applies to "WinModems", a disease that development has
fortunately dealt with.
It is helpful to understand the why of something, and explain such,
rather than just condemn it as bad.
I did omit the explanation because I thought it would be obvious. :-)
Post by Paul KrausThe move to host based software for things like printers, modems,
scanners, and other various hardware came about because the
performance of the general purpose computer was increasing at
least at Moore’s Law rate, if not faster. By moving the processing
of the raw data into code the device (printer, scanner, modem, etc.)
1. As the host systems got faster so did your device
Typical consumer devices (on which I placed the scope) usually
do not live longer than the systems they are connected to. In
fact, one host system can easily see several incarnations of
a peripherial device. With each new device, software has to be
exchanged. And in many cases, as the software is kept proprietary
to perform a good "vendor lock-in", either data is lost (often a
problem for unexperienced users who "have the fotos in the scanner
program"), or whole workflows are replaced (because the new printer
control program is totally different than the old one).
Of course you're right regarding the "available CPU cycles", or
host system resources in general. It allows the manufacturer to
reduce the costs for the device because, for example, it doesn't
have to contain a whole "little computer" to process raster input,
or PS. "Software is cheaper than hardware" is a common statement.
So whatever can be delegated to the host system will be "shifted
from hardware to software", beginning with the input processing
and ending with the motor control for the paper transport, the
printing head, and the ink jets themselves. Of course the manu-
factuerer is not interested in telling anyone how this works,
it's his trade secret. And so there won't be a driver available
except the one that the manufacturer provides.
Additionally, there's a positive aspect in it: If less electronic
devices are included in the peripherial, the less waste is created
when it stops working. As I said, the concept per se isn't that
wrong, but its (ab)use is.
Regarding Moore's law: It is compensated by Wirth's law and
Gates' law. The Jevons paradox and Parkinson's law sadly also
apply. Furthermore Nathan's four laws of software can be applied
to the drivers and the application programs, the host-side of
the whole concept. ;-)
Post by Paul Kraus2. Your device was likely to remain useful for a longer period
From a consumer perspective, this (as mentioned) isn't always
true: He buys a new computer with a new "Windows" - and the
vendor of his printer does not have drivers available for that
version, and the old drivers cannot be used anymore. So a printer
that is technically fully functional is turned into a useless
pile of electronic garbage.
By the way, this is what I intially mentioned: The printers that
I "turned alive again" were such models where only outdated drivers
would be supplied, and no standard drivers could be used. I ended
up using the Linux driver through FreeBSD's Linux ABI, with lots
of "wild copying around" and strange symlinking, having "disassembled"
the strange workflow of that printer driver. On "Windows", this printer
(and another one) would have to be thrown away.
As we're talking about consumer devices: They are not inteded to
work for longer periods. This is against technical evolution, but
primarily it's against the concept of repeating re-instantiation
of "the same": People keep buying printers to print the same stuff,
because a printer only lasts 1 or 2 years.
From my point of view (NB: very limited), manufacturers do not
develop host-based driver software. There typically is _one_ version
delivered with the printer, on CD or DVD, which users throw away.
There is the same version available for download. There is no
"successor" with better performance, more features or improved
security. This wouldn't meet the "sell & forget" mentality, because
"continuous product development" (of the _same_ product) doesn't
seem to pay.
Post by Paul KrausThere is a third advantage, that the device can be less intelligent
and less powerful, making it cheaper. The typical desktop computer
today has lots and lots of spare CPU cycles (and generally speaking,
has for at least a decade). Why not make good use of those resources.
Yes, that (and its financial implications) are the main reason.
By the way, I don't see any problem with it _per se_. The reason
why I don't like to work with this concept is that it _limits_ the
freedom and the possibilities of use, as you usually don't know
_how_ things work, and therefore depend on the "benevolent" vendor.
Post by Paul KrausI have three scanners in the house that *all* require very custom
software as the processing of the raw scanned data from the image
sensor is happening on the host system and not on the scanner
hardware. I have seen marked improvements in image quality with
each update of the management software. Even older hardware,
hardware that the vendor would no longer be supporting if it were
more complex is still on the supported list.
Thanks for sharing this - it seems that there's still hope. This
is what vendors _can_ do, but especially in the lower price segment
for consumer peripherials _don't_ do. :-(
I have USB and SCSI scanners myself. I don't need any special software
from a vendor. I can plug them in any system I want, and they work
the same everywhere. This is _also_ an advantage.
Post by Paul KrausDoes it mean that you cannot use this hardware on OSes for which
there is no software support? Absolutely, but that is the case
for *everything*.
Exception: Hardware that uses standardized protocols and open
interfaces. SCSI scanners are a good example: If they implement
everything according to the specification, you can use them on
_any_ system that implements the required interfaces - which
are published openly, so it is at least _possible_.
Other nice examples are printers that speak PS, PCL or PDF.
Especially for PS printers, you don't even need a driver, because
programs that print send their output as PS, and that is what
the printer expects. :-)
Post by Paul KrausIf you know you need to (or want to) runs a certain OS, for
whatever reasons, then you buy hardware that is supported by
that OS.
This is very true. "Supported by OS" or "supported by a standard
available through the OS" are the reasons for decisions that I make.
First think, then buy. Saves money. ;-)
--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...