I think basic understanding of what programming is, and the ability to do some simple (application level) programming is important. I think trying to turn everybody into a systems programmer is pointless.
For comparison, consider another field - auto mechanics. There's no point in trying to make every high school student into an ASE certified mechanic. But everybody should understand the basics about how cars work and how to perform basic repair/maintenance jobs (e.g. how to change a tire, how to change the air filter, change a headlight or a tail light, etc.) Even if the person grows up to be someone who calls the auto club to refill the washer fluid, the understanding that it's nothing magical and that he could do the work if he wanted to is important.
I think this is especially important when our day-to-day technology is so advanced that to many people it is indistinguishable from magic. I don't want people thinking that there are completely incapable of understanding how a computer or a mobile phone or the Internet works. They don't need to be able to design a device or a network, but they should be able to understand the basic principles of operation and how to perform routine tasks (e.g. how to set up a home LAN router, or know where your packets go when you load a web page).
This will necessarily include a small amount of programming, but I think that is a good thing - it demystifies the technology and demonstrates that it is something anybody is capable of understanding.
And of course, it also will inspire some to want to learn the tech in depth - and these kids will be the next generation of inventors and developers.
My recommendation for any printer, whether Linux, MacOS, Windows or any other OS is to use one that has native support for an industry-standard page description language - PostScript or PCL.
Printers with proprietary languages (which includes most ink jets and some lasers) are always at the mercy of the manufacturer to provide drivers for it. Even if drivers are available when you buy the printer, what are the odds that support will continue for the entire life of the printer - which may span over a decade and involve many major OS updates?
People with abandoned printers can often install open source Gutenprint drivers, but the quality of those drivers isn't always the best, especially for things like color calibration and photo printing. They often fail to take advantage of all of a printer's features.
If, on the other hand, your printer uses PostScript or PCL, you generally don't have this problem. Drivers are generic - either manually configure it for your printers features or download a cross-platform "PPD" file from the manufacturer. And if the printer maker abandons you, your OS's generic driver will continue working far into the forseeable future.
Additionally, support for PostScript (and to a lesser extent, PCL) means you can also print from old or unpopular operating systems like (for example), SunOS, BeOS and OS/2 - platforms where no manufacturer will ever develop a driver - because they all include some amount of generic PostScript support.
In addition to choosing a good language, I would always recommend a network-attached printer. One with a built-in Ethernet and/or Wi-Fi interface. If your printer is attached via USB, then you can only print from the attached computer - you can configure that computer as a print server, but it will still have to store and forward everybody's print jobs. If the printer is directly attached to the network, however, every host can be configured with its IP address and send documents directly to it, without needing to bother with configuring any computer as a print server.
Authored Comments
I think basic understanding of what programming is, and the ability to do some simple (application level) programming is important. I think trying to turn everybody into a systems programmer is pointless.
For comparison, consider another field - auto mechanics. There's no point in trying to make every high school student into an ASE certified mechanic. But everybody should understand the basics about how cars work and how to perform basic repair/maintenance jobs (e.g. how to change a tire, how to change the air filter, change a headlight or a tail light, etc.) Even if the person grows up to be someone who calls the auto club to refill the washer fluid, the understanding that it's nothing magical and that he could do the work if he wanted to is important.
I think this is especially important when our day-to-day technology is so advanced that to many people it is indistinguishable from magic. I don't want people thinking that there are completely incapable of understanding how a computer or a mobile phone or the Internet works. They don't need to be able to design a device or a network, but they should be able to understand the basic principles of operation and how to perform routine tasks (e.g. how to set up a home LAN router, or know where your packets go when you load a web page).
This will necessarily include a small amount of programming, but I think that is a good thing - it demystifies the technology and demonstrates that it is something anybody is capable of understanding.
And of course, it also will inspire some to want to learn the tech in depth - and these kids will be the next generation of inventors and developers.
My recommendation for any printer, whether Linux, MacOS, Windows or any other OS is to use one that has native support for an industry-standard page description language - PostScript or PCL.
Printers with proprietary languages (which includes most ink jets and some lasers) are always at the mercy of the manufacturer to provide drivers for it. Even if drivers are available when you buy the printer, what are the odds that support will continue for the entire life of the printer - which may span over a decade and involve many major OS updates?
People with abandoned printers can often install open source Gutenprint drivers, but the quality of those drivers isn't always the best, especially for things like color calibration and photo printing. They often fail to take advantage of all of a printer's features.
If, on the other hand, your printer uses PostScript or PCL, you generally don't have this problem. Drivers are generic - either manually configure it for your printers features or download a cross-platform "PPD" file from the manufacturer. And if the printer maker abandons you, your OS's generic driver will continue working far into the forseeable future.
Additionally, support for PostScript (and to a lesser extent, PCL) means you can also print from old or unpopular operating systems like (for example), SunOS, BeOS and OS/2 - platforms where no manufacturer will ever develop a driver - because they all include some amount of generic PostScript support.
In addition to choosing a good language, I would always recommend a network-attached printer. One with a built-in Ethernet and/or Wi-Fi interface. If your printer is attached via USB, then you can only print from the attached computer - you can configure that computer as a print server, but it will still have to store and forward everybody's print jobs. If the printer is directly attached to the network, however, every host can be configured with its IP address and send documents directly to it, without needing to bother with configuring any computer as a print server.