Se puoi quantificarlo, puoi creare una lingua in grado di ottimizzarlo.
Anche se non conosco alcun linguaggio particolare che imponga effettivamente una politica di "codice pulito", i poliziotti di stile che girano su build sono abbastanza comuni.
La ragione principale per cui questo è un passaggio separato dall'essere cotti nella lingua è in gran parte una funzione di priorità. È nell'interesse di un linguaggio di programmazione per consentire la massima flessibilità ai programmatori per ottenere il più ampio livello di adozione. Ci sono così tanti diversi linguaggi di programmazione e DSL che limitano artificialmente la base di utenti essendo pignoli e supponenti riguardo a quale input è permesso potrebbero intralciare l'adozione più ampia.
Ad esempio, non è nell'interesse di C # forzare le persone a scrivere
if (condition)
{
invece di
if (condition) {
Ma i controllori di stile possono essere giudicati pignoli perché è ciò che sono progettati per fare.
Quindi, per rispondere alla domanda
Can a programming language enforce clean code by design?
emphasis mine
Assolutamente, purché tu fornisca una definizione strong per ciò che significa "codice pulito".
Ad esempio, potrei definire "codice pulito" per significare:
- lunghezza della riga non superiore a 80 caratteri
- funzioni composte da non più di 100 righe
- il rientro deve essere di due spazi
- le parentesi graffe aperte devono essere seguite alla fine della riga preceduta esattamente da uno spazio
- non più di due operatori per linea
e potresti non essere d'accordo con alcune o tutte queste convenzioni, ma alla fine della giornata queste sono quantificabili e possono essere applicate a livello di codice.