Si quieres que te entiendan todos los que se dedican a la programación, hablen español o no: deprecado.
deprecar.
Del lat. deprecāri 'rogar'.
- tr. Rogar, pedir, suplicar con eficacia o instancia. U. t. c. prnl.
Explicación: tanto el español deprecar como el inglés deprecate vienen ambos del latín dēprecor, dēprecārī, dēprecātus, que significa "rezar con insistencia para alejar un mal, rogar en contra de algo". En inglés mantiene esta connotación: cuando se marca algo como deprecated, se está haciendo un ruego en contra de la utilización de ese algo.
En español, la connotación de "en contra de" la ha perdido, pero mantiene la de "rogar con insistencia", luego hay cierta base para usarlo. Y en cualquier caso, dado el ínfimo uso que tenía la palabra en el último siglo (apenas el 0.0000001% según Google NGRAM), no debería haber problema en que recupere dicha connotación, si así lo pide el uso actual.
Por tanto, si la comunidad decide usar "deprecado" porque es la palabra que más fácilmente permite transmitir este concepto en un entorno globalizado, que así sea.
En portugués, por ejemplo, ya se admite:
de·pre·ca·do
(latim deprecatus, -a, um, particípio passado de deprecor, -ari, procurar afastar por meio de súplicas, pedir, suplicar, afastar, demover, interceder, pedir perdão)
adjectivo
2. [Informática] Cuja utilização já não se recomenda (ex.: esta função não está obsoleta, mas está deprecada).
Ojo al ejemplo de uso que incluyen, donde el uso de deprecado se contrapone al de obsoleto.
Si quieres que te entiendan todos los que hablan español, se dediquen a programar o no: desaconsejado.
desaconsejar
- tr. Disuadir, persuadir a alguien de lo contrario a lo que tiene meditado o resuelto.
Explicación: tal como indicas (¿indico?) en la propia pregunta, deprecated se usa cuando quieres que una funcionalidad deje de utilizarse. Es decir, que desaconsejas su uso.
Esto no siempre es sinónimo de obsoleto, ya que el motivo puede ser simplemente que la funcionalidad no sea segura, aunque no haya ninguna otra mejor que la sustituya (vease por ejemplo el caso de Thread#stop()
en Java, que lleva deprecado casi 25 años sin nada que lo reemplace).
Tampoco es sinónimo de "en desuso": que deje de usarse suele ser una consecuencia de desaconsejar el uso, pero siempre hay un periodo de transición de meses o años desde que algo se marca deprecated hasta que la gente deja de usarlo de manera habitual.