Ho visto un commento / osservazione in cui diceva qualcosa - in relazione a LINQ / lambda - sulla falsariga di: "Scrivi codice leggibile dagli umani, piuttosto che leggibile sul tuo computer".
Penso che questa affermazione abbia molto merito, tuttavia, considera lo sviluppatore (come me stesso) che ha attraversato l'intera gamma di linguaggi di sviluppo dall'Assemblea, attraverso procedurali, attraverso OO, attraverso gestiti, sfruttando soluzioni parallele con task ad alto rendimento .
Mi sono orgoglioso di rendere il mio codice il più leggibile e riutilizzabile possibile e di adottare molti dei principi del modello di progettazione GOF al fine di fornire sistemi e servizi di qualità di produzione in un ampio numero di settori aziendali diversi.
La prima volta che ho incontrato l'espressione lambda ho pensato: "Che diavolo è quello!?!" Fu immediatamente contro-intuitivo per la mia sintassi esplicita familiare (e quindi comoda) esplicita. I più piccoli <5 anni nel lavoro ragazzi tuttavia lo hanno vomitato come se fosse la manna dal cielo!
Questo perché per anni pensare come un computer (in senso sintattico) tradotto molto facilmente in sintassi di codifica diretta (indipendentemente dalla lingua). Quando hai avuto quella mentalità computazionale per circa 20 + anni (30+ nel mio caso) devi capire che lo shock sintattico iniziale dell'espressione lambda può facilmente tradursi in paura e diffidenza.
Forse il collaboratore del PO era venuto da un ambiente simile a me stesso (ovvero è stato in giro per il blocco alcune volte) ed era controintuitivo per loro in quel momento? La mia domanda è: cosa hai fatto al riguardo? Hai provato a rieducare il tuo pari a comprendere i benefici della sintassi inline o li hai saccheggiati / ostracizzati per non "essere con il programma"? Il primo avrebbe probabilmente visto il tuo collega avvicinarsi alla tua linea di pensiero, il secondo probabilmente li avrebbe diffidare ancora di più della sintassi LINQ / lambda e in tal modo esacerbando l'opinione negativa.
Per quanto mi riguarda, ho dovuto rieducare il mio modo di pensare (dato che Eric parla sopra, non è un cambiamento di mente insignificante, e ho dovuto programmare a Miranda negli anni '80, quindi ho avuto la mia parte di esperienza di programmazione funzionale) ma una volta che avevo sofferto di quel dolore i benefici erano evidenti ma - soprattutto - dove il suo uso era sovrautilizzato (cioè usato per il gusto di usarlo), piuttosto complesso e ripetitivo (considerando il principio DRY in quel caso).
Dato che qualcuno che non solo scrive ancora molto codice ma che deve anche rivedere tecnicamente molto codice, era indispensabile comprendere questi principi in modo da poter rivedere gli elementi in modo imparziale, consigliare dove l'uso di un'espressione lambda potrebbe essere più efficiente / leggibile e anche per indurre gli sviluppatori a considerare la leggibilità di espressioni lambda inline altamente complesse (in cui una chiamata al metodo renderebbe, in quei casi, il codice più leggibile, gestibile ed estensibile).
Quindi quando qualcuno dice che "Non prendi lambda?" o la sintassi LINQ, piuttosto che di marca loro un luddista cercare di aiutarli a comprendere i principi di fondo. Dopotutto, possono avere un background di "vecchia scuola" come me.