Cześć, Habr!
Przedstawiam Państwu tłumaczenie artykułu „” autorstwa Roberta C. Martina (Wujka Boba).

Spędzam czas grając w starą grę „Lunar Lander” z 1969 roku. Została napisana przez Jima Store'a, ucznia szkoły średniej. Napisał ją na PDP-8 w języku FOCAL. Oto jak wygląda program:

A oto kod źródłowy w FOCAL:

Jim Store był dość utalentowanym uczniem szkoły średniej. Spójrz na ten kod. Ma on dość interesujące wyrażenia Taylora.
Generalnie przeprowadzam wyszukiwanie binarne, aby określić wartość K, która w ciągu kilku użyć idealnie wyląduje statkiem. Dlatego zmieniłem program tak, aby akceptował tylko jedną wartość, a następnie stosował ją wielokrotnie, aż statek wyląduje lub rozbije się. Pisząc to, wiem, że odpowiedź leży między 76.40625 a 76.4453125, a spróbuję 76.4257813. Zaczynam myśleć, że zabraknie mi czasu, zanim znajdę odpowiedź.
W międzyczasie przyszło mi do głowy, że uruchomiłem ten program na emulatorze , który napisałem w Lua na iPada.
No dobrze, pomyślmy o tym.
- iPad ma chip , z trzema rdzeniami działającymi na częstotliwości około gigaherca.
- Lua jest napisany w C i kompilowany do A8X.
- Mój emulator PDP8 napisany jest w Lua, używając pakietu z działu Two Lives Left.
- FOCAL został napisany pod koniec lat 60-tych na PDP8.
- Lunar Lander został napisany w FOCAL.
A więc mamy A8X, C, Lua, PDP8 i FOCAL. To pięć różnych języków. Pięć różnych mechanizmów, które mówią maszynie, co robić; wszystkie one są nałożone na siebie!
Co to oznacza? Dlaczego jest tak wiele języków? Tak naprawdę, zapomnij o iPadzie, PDP-8, C, Lua i wszystkim innym. Dlaczego jest tak wiele języków?
##Почему существует так много языков?
Pomyśl o tym! Ile języków programowania możesz wymienić? Pozwól, że dam ci małą listę:
- FORTRAN
- ALGOL
- COBOL
- SNOBOL
- LISP
- BCPL
- B
- C
- SIMULA
- SMALLTALK
- EIFFEL
- C++
- JAVA
- C#
- PYTHON
- RUBY
- LOGO
- LUA
- BASIC
- PL/1
- JAVASCRIPT
- GO
- DART
- PROLOG
- FORTH
- SWIFT
- - wsparcie.
- OCCAM
- OCAML
- ADA
- ERLANG
- ELIXIR
- FOCAL
Oczywiście możesz pomyśleć o innych, o których nie wspomniałem. Pytanie brzmi, dlaczego jest ich tak wiele? Na to pytanie naprawdę może być tylko jedna odpowiedź. Powodem istnienia tak wielu języków komputerowych jest:
Nie podobają nam się.
Cóż, może to za mocne stwierdzenie. Może powinienem powiedzieć:
Byliśmy w Hollywood.
Byliśmy w Redwoods.
Przekroczyliśmy ocean dla złotego kodu.
Byliśmy w swoim umyśle,
To taka cienka granica.
To sprawia, że szukamy złotego kodu.A my się starzejemy.
Może powinienem mówić za siebie… Czy naprawdę nie chciałeś po prostu krzyknąć na Neila Younga, żeby przestał narzekać, znalazł jakąś urokliwą dziewczynę i z nią zamieszkał? Czy nie chciałbyś mu powiedzieć, że poszukiwanie złotego serca było bezsensowne? Powiedz, co by z nim zrobił, gdyby go znalazł?
A co byśmy zrobili z idealnym językiem, gdybyśmy go znaleźli?
Zbudowaliśmy emulatory PDP-8 i FOCAL, żeby zagrać w » Lunar Lander», napisaną przez ucznia szkoły średniej w 1969 roku!
Oto co myślę.
Pogódź się z tym. Przestań szukać. Nie ma idealnego języka. Szukaliśmy wszędzie. Patrzyliśmy od góry do dołu. Przyglądaliśmy się wewnątrz i na zewnątrz.
Spojrzeliśmy na języki z obu stron.
Od wewnątrz i na zewnątrz
i wciąż tak czy inaczej.
Pamiętamy, że to iluzje językowe.Tak naprawdę nic nie rozumiemy o językach…
… zupełnie.
Tak, dzisiaj jest dziwny dzień.
Jednak sednem jest to:
Nie potrzebujemy innego języka.
Nie musimy wiedzieć, jak wrócić do domu.
Wszystko, czego chcemy, to wyjść poza życie.
S.Q.L.
Tak, dziwny dzień.
Więc jest jedna myśl. Może powinniśmy przestać tworzyć nowe języki i po prostu się uspokoić i wybrać jeden lub dwa, które naprawdę są dobre. To znacznie ułatwi życie, prawda?
A jeśli cię to interesuje, 76.43844461 daje ci całkiem dobre lądowanie przy 2.23 MPH.
Źródło: habr.com
