Qualsiasi linguaggio di programmazione che non abbia un meccanismo di riflessione adatto, trovo seriamente debilitante per problemi che cambiano rapidamente.Come si può essere ASCIUTTI con un linguaggio di programmazione che non ha Reflection?
Sembra con alcune lingue la sua incredibile difficile o non è possibile fare:
- convenzione sulla configurazione
- automatico Databinding
- AOP/programmazione Meta
senza riflessione .
Alcuni linguaggi di esempio che non hanno una sorta di riflessione programmatica sono: C, C++, Haskell, OCaml. Sono sicuro che ce ne sono molti di più.
Per mostrare che è possibile eseguire un esempio di DRY (Non ripeterlo) che viene violato dalla maggior parte di queste lingue è quando si devono scrivere Test unitari. È quasi sempre necessario registrare i test case in queste lingue al di fuori di dove si definisce il test.
In che modo i programmatori di questi linguaggi mitigano questo problema?
MODIFICA: lingue comuni che hanno una riflessione per coloro che non conoscono sono: C#, Java, Python, Ruby e il mio preferito F # e Scala.
MODIFICA: I due approcci più comuni sembrano essere code instrumentation e la generazione del codice. Tuttavia non ho mai visto la strumentazione per C.
Invece di votare per chiudere, qualcuno potrebbe commentare perché dovrebbe essere chiuso e io cancellerò il post.
no. Mi ripeto tutto il tempo in C. – AShelly
@AShelly perché continueresti a sbattere la testa o a mozzare il dito contro il muro :) Puoi cambiare la tua lingua in qualcos'altro? –
Sono curioso di sapere quali lingue possono fare tutte quelle cose così bene? – FrustratedWithFormsDesigner