Quando Java è stato sviluppato, i progettisti hanno scelto di scartare una quantità inusuale della saggezza convenzionale stabilita nelle toolchain UNIX e C oriented. Per uno (e secondo me) l'esempio più importante, hanno scelto di scartare la pratica dei file di intestazione e Makefile e hanno cercato invece di compilare un compilatore monolitico, basato sull'importanza delle dipendenze. Successivamente, ant
è stato sviluppato per rimediare parzialmente alle carenze (ovvie?) Di questo processo e ha efficacemente reimplementato la logica del makefile.
Non è che mi offendo il make vecchio stile e #include
andando fuori bordo. Tuttavia, il loro utilizzo è stato reinventato nel mondo Java con ant
e suddivisione di ogni classe in un'interfaccia e una classe di implementazione, che è molto simile al file di intestazione / modello di file di origine. Sono abbastanza sicuro che le persone dietro Java sapessero degli strumenti e dei pattern esistenti e del loro scopo, quindi la decisione di eliminarli prima e poi di reimplementare tutto da zero senza nemmeno un accenno nel design del linguaggio è ciò che mi stupisce. Sarebbero stati disponibili metodi meno costosi (come l'analisi del file sorgente e la generazione automatica di un file di intestazione, che sarebbe stato abbastanza semplice dopo aver eliminato un po 'la sintassi di C), ma non sono stati presi, e mi piacerebbe sapere ragione.
Forchette simili sono state eseguite nella maggior parte degli altri luoghi, a costi di sviluppo considerevoli e al costo considerevole di una comunità divisa. Oggigiorno, Java-world e C ++, gli sviluppatori mondiali hanno spesso difficoltà a comunicare e collaborare a causa di una divisione che sembra sproporzionata rispetto alle effettive differenze tra il linguaggio C / C ++ e il linguaggio Java. Mentre riesco a vedere le motivazioni alla base del processo (tutti detestano la sintassi Makefile e cambiano i file di intestazione manualmente), non riesco ancora a sfruttare l'entità della modifica.
Ci sono riferimenti storici sulla motivazione e le ragioni di questo processo? Ci sono documenti di progettazione o interviste con le persone che hanno guidato questa forcella?