Modern Interpretation of the Unix Philosophy of "Rule of Generation"

6

Secondo Wikipedia , Eric S. Raymond ha dichiarato che una delle 17 regole di Unix è la "regola di generazione", affermando che:

Developers should avoid writing code by hand and instead write abstract high-level programs that generate code. This rule aims to reduce human errors and save time.

In che modo questa regola deve essere interpretata in un contesto moderno di linguaggi che astraggono la gestione della memoria (ad es. GC di Java) o altre attività di bit-bit di basso livello? Questa regola si applica ancora?

    
posta Green 23.06.2015 - 15:07
fonte

2 risposte

10

Non significa piccole utilità IDE che creano lo standard per te, che devi modificare. Si riferisce a una generazione di codice più completa che non dovresti toccare. Apportate le modifiche al livello più alto e rigenerate.

L'esempio di Unix canonico sarebbe Yacc, che usa una grammatica di alto livello per generare un codice di analisi complesso. Altri esempi:

  • Una query SQL.
  • Un linguaggio specifico del dominio, come molti framework Web utilizzati per la gestione delle rotte.
  • Un generatore di GUI.

L'idea di base è di scrivere il più alto livello possibile di astrazione, il più vicino possibile alla rappresentazione naturale.

    
risposta data 23.06.2015 - 17:45
fonte
2

Nel C ++ "moderno", la manta "non scrivere codice - usa algoritmi" è la stessa idea generale. La "generazione" viene eseguita con modelli e riutilizzo, in modo da non toccare il loop manuale e il logoramento del codice elementare.

    
risposta data 16.05.2017 - 01:22
fonte

Leggi altre domande sui tag