Camadas linguísticas

Olá, Habr!

Apresento a vocês a tradução do artigo «Camadas de Linguagem» de Robert C. Martin (Tio Bob).

Camadas linguísticas
Estou passando o tempo jogando o antigo jogo «Lunar Lander» de 1969. Foi escrito por Jim Storer, um estudante do ensino médio. Ele a escreveu no PDP-8 em FOCAL. Aqui está como o programa se apresenta:

Camadas linguísticas

Aqui está o código-fonte em FOCAL:

Camadas linguísticas

Jim Storer era um estudante do ensino médio bastante talentoso. Dê uma olhada nesse código. Tem expressões de Taylor bem interessantes.

No geral, estou fazendo uma busca binária para determinar o valor de K que, se usado sequencialmente, pousará o módulo perfeitamente. Assim, eu alterei o programa para aceitar apenas um valor e, em seguida, aplicá-lo várias vezes até que o módulo pousasse ou se despedaçasse. Enquanto escrevo isso, sei que a resposta está entre 76.40625 e 76.4453125, e eu vou testar 76.4257813. Começo a pensar que vou ficar sem tempo antes de encontrar a resposta.

Enquanto isso, percebi que executei este programa em um emulador PDP-8, que escrevi em Lua para iPad.

Então, bem, vamos refletir sobre isso.

  • O iPad tem um chip A8X, com três núcleos rodando a uma frequência de gigahertz ou algo assim.
  • Lua é escrita em C e compilada para A8X.
  • Meu emulador PDP8 foi escrito em Lua, usando o pacote CODEA da seção Two Lives Left.
  • FOCAL foi criado no final dos anos 1960 para o PDP8.
  • Lunar Lander foi escrito em FOCAL.

Então temos A8X, C, Lua, PDP8 e FOCAL. Cinco linguagens diferentes. Cinco mecanismos distintos, indicando à máquina o que fazer; todos empilhados uns sobre os outros!

O que está acontecendo? Por que tantas linguagens? Na verdade, esqueça o iPad, PDP-8, C, Lua e tudo mais. Por que há tantas linguagens?

##Почему существует так много языков?

Pense sobre isso! Quantas linguagens de programação você consegue nomear? Aqui, deixe-me te dar uma pequena lista:

  • 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
  • ML
  • OCCAM
  • OCAML
  • ADA
  • ERLANG
  • ELIXIR
  • FOCAL

Certamente, você pode pensar em outros que eu não mencionei. A questão é: por que há tantos? Para essa pergunta, realmente pode haver apenas uma resposta. A razão pela qual existem tantas linguagens de computação é:

Nós não gostamos delas.

Bem, talvez isso seja uma afirmação excessiva. Talvez eu devesse dizer:

Nós estivemos em Hollywood.
Nós estivemos em Redwood.
Nós atravessamos o oceano em busca do código dourado.
Nós estivemos em nossa razão,
É uma linha muito tênue.
Isso nos faz buscar o código dourado.

Estamos envelhecendo.

Bem, talvez eu deva falar por mim… Você não queria apenas gritar com Neil Young para que ele parasse de reclamar, encontrasse uma garota legal e vivesse com ela? Você não queria dizer a ele que a busca por um coração de ouro foi em vão? Diga-me, o que ele faria com isso se o encontrasse?

E o que faríamos com a linguagem perfeita se a encontrássemos?

Criamos emuladores PDP-8 e FOCAL para jogar » Lunar Lander», escrita por um aluno do ensino médio em 1969!

Isso é o que eu penso.

Aceite isso. Pare de procurar. Não existe linguagem perfeita. Nós procuramos em todo lugar. Olhamos para cima e para baixo. Olhamos para dentro e para fora.

Observamos os idiomas de ambos os lados.
Por dentro e por fora
e ainda assim de alguma forma.
Lembramos que estas são ilusões linguísticas.

Na verdade, não entendemos nada sobre idiomas…
… absolutamente nada.

Sim, hoje é um dia incomum.

Mas, no final das contas, a questão é:

Não precisamos de outra língua.
Não precisamos saber o caminho para casa.
Tudo que queremos é ir além da vida.
S.Q.L.

Sim, dia estranho.

Então, há um pensamento. Talvez precisemos parar de criar novas línguas e simplesmente relaxar e escolher uma ou duas que sejam realmente boas. Isso tornaria a vida muito mais fácil, não é?

E, se você está curioso, 76.43844461 lhe dá um pouso bastante bom a 2.23 MPH.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster