Capcana limbilor ca superseturi ale altor limbi

capcana


În ultima vreme se pare că toată lumea vrea creați un superset al limbilor ce sunt ei mai complex, pentru a facilita utilizarea acestuia fără a pierde funcționalitatea. În principiu, este o idee foarte lăudabilă și ar fi dificil să înțelegem că cineva este împotrivă, dar vreau să vă arăt câteva motive pentru care, de exemplu, crearea TypeScript poate fi contraproductiv (și nu are nimic de-a face cu a fi de la Microsoft, nu mă luați pentru un maniac).

Un limbaj de bază și popular

Vom face un exercițiu de imaginație. Să începem de la presupunerea că avem un limbaj de desenat în orice browser, care a fost adoptat ca standard și pentru care se propun actualizări care, afectând atât de mulți participanți (dezvoltatorii tuturor browserelor existente), practic nu ajung niciodată, deoarece este dificil să se ajungă la acorduri.

Limbajul nostru se va baza pe desenul liniar, așa că îl vom numi LineaScript. În el, desenarea unei linii va consta din doi pași: desenarea unui vector și acordarea de culoare. La rândul său, vectorul va fi generat din două puncte, cu coordonatele lor respective x și y.

După cum puteți vedea, limba noastră poate atrage orice, deoarece totul poate fi reprezentat în termeni de linii. Dificultatea începe atunci când vrem să desenăm o formă geometrică, nu neapărat complexă. De exemplu, pentru a desena un pătrat trebuie să o faceți folosind bucle:

Și oamenii ar fi de acord afirmând că LineaScript este un limbaj puternic și că trebuie să știți, deoarece este acceptat în toate browserele, dar că învățarea sa este foarte grea și utilizarea sa, plictisitoare.

Să o rezolvăm cu un nou limbaj

Deoarece este foarte dificil pentru noi să programăm eficient cu LineaScript și consorțiul de participanți la acesta nu este de acord când vine vorba de actualizarea limbajului, am decis obțineți un nou limbaj mult mai simplu, FiguraScript, care acceptă toată sintaxa LineaScript, dar adaugă și facilități la reprezentarea figurilor.

Acesta este FiguraScript ar fi un superset al LineaScript, deci nimeni nu ar trebui să se plângă că reinventăm roata. Dimpotrivă, acest lucru îi va face pe mulți oameni care nu îndrăznesc să programeze cu LineaScript să abordeze limbajul fără teamă.

Deci, cu noul nostru limbaj, ar fi practic la fel de ușor să trasăm un punct, o linie sau un dreptunghi:

Nimeni nu poate nega că limba noastră este mai completă decât LineaScript de bază. Permite experimentatului să continue programarea așa cum a făcut înainte, iar novicilor să folosească metode echivalente care necesită codificați mai puține linii pentru a obține același rezultat.