Device drivers as we know them (i.e. code that's loaded into the kernel to control a device) have probably been around since UNIX and VMS in the mid-1970s.
Operating systems have always had to control devices (tape drives, paper tape and punch card readers), so device drivers in terms of software for controlling devices have probably been around at about as long as there have been operating systems.
A driver (or driver circuit), an electronic circuit used to control another circuit or component, is an old concept. Since hackers tend to "borrow" hardware terms, I would guess that the term for software drivers or device drivers came from there.
'Barack Obama wishes the USA didn't have such a high unemployment rate'.
This sentence expresses regret on the part or Barack Obama. In other words he feels sorry things are the way they are.
'Barack Obama wishes the USA wouldn't have such a high unemployment rate.'
This construct expresses irritation on the part of Barack Obama because the unemployment rate "is unwilling" or "refuses" to become lower. The sentence does sound strange because, at least theoretically, Obama is someone who can do something about the situation. Similarly, the sentence 'Barack Obama wishes the unemployment rate would improve in the USA' sounds strange to my ears.
'I wish my daughter did better at school.'
In this sentence I mean that I'm sorry my daughter isn't doing better at school. It shows that, at least for the time being, I don't believe the situation will change. I don't say who is to blame for this situation.
'I wish my daughter would do better at school.'
Here I am expressing my dissatisfaction and probably my impatience or irritation because I believe it's my daughter's unwillingness to do better at school which is responsible for the situation. I believe things can change if her will changes.
In other words, would after wish refers to other people's unwillingness to do or not do something and that irritates the speaker. Sometimes we can talk about a situation like this. For example you can say "I wish it would stop raining", but only because you have no control over the weather and you speak as if the weather has a will of its own.
Best Answer
I don't think that there is a strictly adhered-to distinction enforced within the field of computer science. But in most contexts that I have read, deprecated is more or less a "marker", saying that it should not be used, something else that has the same effect has been created, and it is soon to be deleted. It may still work as expected (read the last paragraph on why I say may), but it will vanish soon. This is intentionally done as part of the software development life cycle when transitioning from one system to another--all of the functionality of the old system is maintained in order to ensure that all past programs still work, and it gives the developers time to transition their code over to the new system.
Obsolete means that it no longer works as expected, or doesn't do anything at all. This is different from non-functional, as it implies that it was rendered so by a new functionality, or its function is simply no longer relevant under the new parameters.
The line between these two terms gets blurred when a function is both deprecated and obsolete. Most of the time, an obsolete function gets deprecated, since it is preferable to deter developers from using it, and to delete it. Since it is generally advisable not to use a deprecated function, whether or not said function is also obsolete is irrelevant, and thus the conflation of the two terms.