Sproglag

Hej Habr!

Jeg gør dig opmærksom på en oversættelse af artiklen "Sproglag»af Robert C. Martin (onkel Bob).

Sproglag
Jeg bruger min tid på at spille et gammelt spil kaldet Lunar Lander fra 1969. Den blev skrevet af Jim Storer, en gymnasieelev. Han skrev det på en PDP-8 i FOCAL. Sådan ser programmet ud:

Sproglag

Og her er kildekoden til FOCAL:

Sproglag

Jim Storer var en ret talentfuld gymnasieelev. Tag et kig på denne kode. Han har nogle ret interessante Taylor-udtryk der.

Grundlæggende laver jeg en binær søgning for at bestemme værdien af ​​K, der, når den bruges konsekvent, vil lande skibet perfekt. Så jeg ændrede programmet, så det kun ville acceptere én værdi og derefter anvende det flere gange, indtil skibet landede eller styrtede ned. Mens jeg skriver dette, ved jeg, at svaret ligger mellem 76.40625 og 76.4453125, og jeg vil prøve 76.4257813. Jeg begynder at tro, at jeg løber tør for tid, før jeg finder svaret.

I mellemtiden gik det op for mig, at jeg kørte dette program på en emulator PDP-8, der skrev i Lua til iPad.

Så okay, lad os tænke over dette.

  • iPad har en chip A8X, med tre kerner, der kører ved gigahertz eller deromkring.
  • Lua er skrevet i C og kompilerer til A8X.
  • Min PDP8-emulator er skrevet i Lua ved hjælp af pakken CODEA fra afsnittet To liv tilbage.
  • FOCAL blev skrevet i slutningen af ​​1960'erne på en PDP8.
  • Lunar Lander blev skrevet i FOCAL.

Så disse er A8X, C, Lua, PDP8 og FOCAL. Det er fem forskellige sprog. Fem forskellige mekanismer, der fortæller maskinen, hvad den skal gøre; de er alle stablet oven på hinanden!

Hvad er det? Hvorfor er der så mange sprog? Glem faktisk iPad, PDP-8, C, Lua og alt det andet. Hvorfor er der så mange sprog?

##Hvorfor er der så mange sprog?

Tænk over det! Hvor mange programmeringssprog kan du nævne? Her, lad mig give dig en lille liste:

  • FORTRAN
  • NOGET
  • COBOL
  • SNOBOL
  • lisp
  • BCPL
  • B
  • C
  • SIMULA
  • SMÅSNAK
  • EIFFEL
  • C + +
  • JAVA
  • C#
  • PYTHON
  • RUBIN
  • LOGO
  • LUA
  • GRUNDLÆGGENDE
  • PL/1
  • JAVASCRIPT
  • GO
  • DART
  • PROLOG
  • FORT
  • SWIFT
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ELIXIR
  • BRÆNDVIDDE

Du kan selvfølgelig tænke på andre, som jeg ikke har nævnt. Spørgsmålet er, hvorfor er der så mange af dem? Der kan i virkeligheden kun være ét svar på dette spørgsmål. Grunden til, at der er så mange computersprog:

Vi kan ikke lide dem.

Tja, det er måske for stærkt et udsagn. Måske skulle jeg sige:

Vi var i Hollywood.
Vi var i Redwood.
Vi krydsede havet for den gyldne kode.
Vi var ude af vores forstand
Det er sådan en fin linje.
Dette får os til at lede efter den gyldne kode.

Og vi er ved at blive gamle.

Okay, måske skulle jeg tale for mig selv... Vil du ikke bare råbe til Neil Young om at holde op med at klage og finde en sød pige og bo hos hende? Ville du ikke fortælle ham, at søgen efter et hjerte af guld var forgæves? Fortæl mig, hvad ville han gøre med den, hvis han fandt den?

Og hvad ville vi gøre med et ideelt sprog, hvis vi fandt det?

Vi skabte PDP-8 og FOCAL emulatorer for at spille "Lunar Lander", skrevet af en gymnasieelev i 1969!

Det er, hvad jeg tror.

Håndter det. Stop med at søge. Der er ikke noget perfekt sprog. Vi kiggede overalt. Vi kiggede oppefra og nedefra. Vi kiggede ind og ud.

Vi så på sprogene fra begge sider.
Indenfor og udenfor
og gør det stadig på den ene eller anden måde.
Lad os huske, at disse er sproglige illusioner.

Vi forstår virkelig ikke noget om sprog...
… overhovedet.

Ja, i dag er en usædvanlig dag.

Men pointen er ikke desto mindre:

Vi har ikke brug for et andet sprog.
Vi behøver ikke at kende vejen hjem.
Alt, hvad vi ønsker, er at gå ud over livet.
SQL

Ja, mærkelig dag.

Så her er en tanke. Måske skal vi stoppe med at skabe nye sprog og bare falde til ro og vælge et eller to, der er rigtig gode. Dette vil gøre livet meget lettere, ikke?

Og hvis du undrede dig, giver 76.43844461 dig en ret god landing på 2.23 MPH.

Kilde: www.habr.com

Tilføj en kommentar