Podajmy przykład z prawdziwego świata.
Około 15 lat temu pracowałem nad przeniesieniem dużego systemu napisanego w C z Unixa na Windows, było to około 3 milionów linii kodu. Aby dać ci wyobrażenie o skali, kompilacja na niektórych naszych systemach uniksowych (RS6000) zajęła 24 godziny, Windows mógł skompilować system w około 4 godziny.
(Mieliśmy również 2 miliony linii kodu w naszym własnym interpretowanym języku, ale postanowiliśmy nie używać naszego języka dla systemów kompilacji, ponieważ nigdy nie był przeznaczony do przetwarzania plików. Potrzebowaliśmy także systemu kompilacji do kompilacji kodu C, który implementował nasz język .)
W czasie, gdy system kompilacji był napisany jako mieszanka skryptów powłoki i tworzących pliki, nie były one przenośne dla systemu Windows - dlatego postanowiliśmy napisać własny system kompilacji.
Mogliśmy użyć C, jednak zdecydowaliśmy się na użycie Pythona, było kilka powodów. (W tym samym czasie przepisaliśmy również nasz system kontroli kodu źródłowego w pythonie, był to bardzo zintegrowany z systemem kompilacji, więc programiści mogli udostępniać pliki obiektowe dla modułów wtajemniczonych).
Większość naszego kodu można zbudować za pomocą kilku prostych reguł (tylko kilka tysięcy wierszy Pythona dla wszystkich platform, Windows, VMS i 6 wersji Uniksa), które zostały wyparte z konwencji nazewnictwa plików.
W tym czasie RegEx nie był bardzo standardem między systemami C na różnych platformach, Python wbudował w RegEx.
Kilka modułów wymagało niestandardowych kroków kompilacji, Python pozwalał na dynamiczne ładowanie plików klas. Zezwalaliśmy na użycie niestandardowej klasy do zbudowania modułu (lib), w oparciu o to, że w folderze znajduje się plik python o magicznej nazwie. To był powód zabójcy do używania Pythona.
Rozważaliśmy Javę, ale w tym momencie nie była ona wysyłana na wszystkie platformy.
(Interfejs użytkownika naszego systemu kontroli kodu źródłowego korzystał z przeglądarki internetowej, ponieważ była przenośna na całej platformie. To było 6 miesięcy przed połączeniem internetowym. Musieliśmy pobrać przeglądarkę przez X25!)