Sta deprecando un vero impegno?

5

Se deprecate qualcosa, garantite che ne libererete nella prossima major release? È ragionevole prendere due o tre versioni prima di eliminarle completamente?

Aggiornamento: grazie per le risposte. Java è un buon standard per come farlo - gli altri? Qualche esempio delle API di Microsoft?

Update2: Sembra che in "Microsoft-ese" la deprecazione significhi "sta andando via nella prossima versione". Quale era parte della mia confusione; altri non attribuiscono la parola a questo significato.

    
posta Scott C Wilson 09.06.2011 - 14:29
fonte

4 risposte

11

Pertanto, la deprecazione è non un impegno a rimuovere qualcosa.

È più una dichiarazione "questo non dovrebbe essere usato per qualche ragione". Alla fine l'API deprecata può essere rimossa, ma se (e quando) questo verrà fatto dipende molto dal progetto.

Un progetto dovrebbe definire e pubblicare una regola di rimozione dell'API deprecata e attenersi ad essa.

L'API Java SE, ad esempio, non ha ancora rimosso alcuna API che è stata deprecata, alcuni dei quali esistono da Java 1.0 (correggimi se ho perso qualcosa).

    
risposta data 09.06.2011 - 14:34
fonte
3

Un sacco di cose vengono deprecate nello standard C ++. Ciò significa che possono essere rimossi dagli standard futuri, ma non necessariamente il successivo (o quello successivo). E alcune cose vengono sottovalutate! Ad esempio, l'utilizzo di static nello spazio dei nomi è stato deprecato nel primo standard C ++ e ora è stato sottovalutato nello standard in arrivo. Quindi vai a capire.

Ma linea di fondo - nessuna funzionalità deprecata andrà mai via. I compilatori C ++ continueranno a supportarli fino al giorno del giudizio (anche se probabilmente danno degli avvertimenti quando vengono utilizzati) a causa del vasto mare di codice che li utilizza.

    
risposta data 10.06.2011 - 23:24
fonte
2

No. Per un esempio, consultare l'elenco delle API deprecate di Java 6 . Alcuni di questi sono stati dichiarati obsoleti a partire dalla versione 1.3, eppure il codice è ancora compilato e funziona (il che è un po 'il punto). La deprecazione è un avvertimento: "non fare affidamento su questo, potrebbe rompersi o andare via alla fine ".

Alcuni fornitori deprecano le proprie API entro una certa data (ad esempio, l'API di Google Translate morirà quest'anno), alcune contrassegneranno semplicemente l'API "deprecata", ma la mantengono indefinitamente (ad esempio Java di cui sopra).

    
risposta data 09.06.2011 - 14:36
fonte
1

No, non esiste un lasso di tempo specifico. Ad esempio, nella libreria di classi Java, la funzionalità obsoleta viene contrassegnata come deprecata, ma non viene mai e poi mai rimossa.

    
risposta data 09.06.2011 - 14:34
fonte

Leggi altre domande sui tag