211service.com
Dlaczego tylko projektanci mogą tworzyć nowe języki programowania
W porównaniu z wersjami, które są hakowane razem późno w nocy pod szaloną presją terminów, języki programowania, które wychodzą ze środowiska akademickiego, są porażkami. Cóż, nie wszystkie. Historia może mówić sama za siebie. Przez Cristina Videira Lopes, informatyk z UC Irvine , która zasługuje na uznanie za wszelkie spostrzeżenia, jakie możesz uzyskać z tego postu, co jest błyszczeniem jej doskonałej, jeśli długiej, Badania w językach programowania :
Języki, których ludzie używają i które kochają:
- PHP – wspólnie zhakowany przez Rasmusa Lerdorfa w 1994 roku. Pierwotnie używany do śledzenia odwiedzin w swoim CV online, nazwał zestaw skryptów „Personal Home Page Tools”, częściej określany jako „PHP Tools”. Według nieformalnej ankiety pod adresem langpop.com (strona może być niedostępna) to czwarty najpopularniejszy język na świecie.
- JavaScript – Brendan Eich zaczął go w 1995 roku. JS musiał wyglądać mniej jak Java, być głupim młodszym bratem Javy lub chłopcem-zakładnikiem. Poza tym musiałem skończyć za dziesięć dni lub stałoby się coś gorszego niż by się JS . Dzięki sieci, być może obecnie najpopularniejszym językiem.
- Python - Guido van Rossum, około 1990 roku. Szukałem „hobbystycznego” projektu programistycznego, który zajmuj mnie w tygodniu w okolicach Bożego Narodzenia . (6. najpopularniejszy.)
- Ruby, autorstwa Yukihiro Matz Matsumoto około 1994 roku. Chciałem języka skryptowego, który byłby potężniejszy niż Perl i bardziej zorientowany obiektowo niż Python. Dlatego ja postanowiłem zaprojektować własny język .
Tymczasem języki zaprojektowane przez naukowców, którzy mają obsesję na punkcie wewnętrznej spójności i poprawności, obejmują kilka w większości martwych języków: Fortran, Cobol, Lisp, C i Smalltalk. Jedynymi wyjątkami są .NET i Java, które były produktami znacznych inwestycji firm Microsoft i Sun.
W świetle tej historii, a także własnych doświadczeń w środowisku akademickim, Lopes twierdzi, że powodem, dla którego wieża z kości słoniowej nie tworzy już języków programowania, których ludzie faktycznie używają, jest to, że traktuje programowanie jako naukę, podczas gdy tak naprawdę jest to raczej projekt. dyscyplina.
Chciałbym przywrócić design do moich codziennych zajęć. Chciałbym, aby moi uczniowie zaangażowali się w projektowanie nowych rzeczy, takich jak nowe języki programowania i środowiska — mam wiele pomysłów na to, co chciałbym robić w tej dziedzinie! Uważam, że istnieje droga do ustanowienia zestawu rygorystycznych kryteriów oceny projektu, które różnią się od walidacji naukowej/ilościowej.
Rzeczywiście, argumentuje Lopes, był to jeden z tych wyjątkowych przypadków, w których programista w środowisku akademickim dostał wolną rękę, co dało początek sieci.
Dobrym przykładem eksperymentów projektowych sprzecznych z dowodami naukowymi jest propozycja, którą Tim Berners-Lee przedstawił CERN w sprawie wdrożenia systemu hipertekstowego, który stał się siecią. Nigdzie w tej propozycji nie znajdziemy planu weryfikacji roszczeń. To po prostu solidna, dobra propozycja dla intrygującego połączonego systemu informacyjnego. Wyobrażam sobie menedżera TB-L myślącego: hmm, ok, to intrygujące, to mądry gość, nie prosi o tyle zasobów, niech to zrobi i zobaczymy, co z tego wyjdzie. Jeśli nic z tego nie wyjdzie, nic wielkiego. Gdyby TB-L musiał opracować plan oceny naukowej lub inżynieryjnej dla tego systemu w drugiej fazie, zainstalujemy go na wielu maszynach, być może świat byłby dziś zupełnie inny, ponieważ mógł zostać złapany w czarną dziurę próbując znaleźć wymierne dowody na coś, co nie wymagało tego rodzaju walidacji.
Wiele z tego sprowadza się do czynnika ludzkiego w językach programowania. Jeśli nie są łatwe w użyciu, nie będą się rozprzestrzeniać. W ten sposób języki i całe systemy (jak UNIX) zostały porównane do wirusów komputerowych . Tego rodzaju rzeczy są trudne, jeśli nie niemożliwe do zmierzenia. Jest subiektywny – rodzaj problemu, który może rozwiązać projekt, a nie nauka. Fakt, że tymi projektantami będą informatycy, jest jedynie semantyczny. Kod to poezja , w końcu.