Pięć języków programowania

wtorek, 23 sierpnia 2011

Pośród wszystkich narzędzi, używanych na komputerze, języki programowania zajmują szczególne miejsce.

Tak się zacząłem zastanawiać. Jak bym miał wymienić pięć języków programowania, które miały na mnie największy wpływ...

Co bym wybrał?

BASIC

10 FOR i=1 TO 5
20 READ c$
40 PRINT c$;
30 NEXT i
50 DATA "h","e","l","l","o"

W negatywnym sensie, ale jednak...

Mam na myśli pierwszą generację języka, z numeracją linii i tasiemcowym kodem pozbawionym jakiejkolwiek struktury. Kontakt z językiem zaczynał się od myśli że musi być coś lepszego - i to była jego największa zaleta.

C

#include <stdio.h>
int main()
{
	char data[] = {'h','e','l','l','o','\0'};
	char *c;
	for(c=data; *c; c++) {
		putchar(*c);
	}
	return 0;
}

Gdy zaczynałem, to był szczyt marzeń. Mityczne narzędzie używane przez profesjonalistów. Kompilatory były trudno dostępne i miały kosmiczne wymagania, których nie spełniała większość sprzętu.

Tym wczesnym kompilatorom zawdzięczam głównie intuicję w wyłapywaniu błędów. Ówczesne narzędzia nie wybaczały najmniejszych pomyłek. Chwila nieuwagi i komputer zamierał, lub nadpisywał całą pamięć losowymi znakami.

Lua

data = { 'h', 'e', 'l', 'l', 'o' }
for k,v in pairs(data) do
        io.write(v)
end

Na ten język trafiłem, gdy szukałem narzędzia, które zmieści się w 100k. Żaden współczesny (popularny) język nie spełnia takich wymagań.

Językowi Lua zawdzięczam moment prawdziwego olśnienia.

Znałem już wtedy sporo języków programowania, w tym Lisp i Scheme. Jednak dopiero Lua nauczyła mnie programowania funkcyjnego tak na prawdę.

Język darzę olbrzymią sympatią. W odróżnieniu od innych używanych na co dzień, ten jest niezwykle elegancki i spójny.

Ruby

data=['h','e','l','l','o']
data.each { |c|
        putc(c)
}

Tak jak Lua nauczyła mnie programowania funkcyjnego, tak Ruby obiektowego. C++ i Java, wyrobiły jedynie fałszywe mniemanie że "potrafię".

Jest to znakomity przykład że warto stale poznawać coś nowego, daje to bowiem możliwość spojrzenia na stare rzeczy z zupełnie innego punktu widzenia.

JavaScript

var data = ['h','e','l','l','o']
data.forEach( function(c) {
        document.write(c)
})

Ten język poznawałem trzy razy.

Za pierwszym razem, widziałem w nim prosty język skryptowy i nie spodziewałem się niczego specjalnego. Mimo że pisałem w nim kilka całkiem poważnych programów, jakoś umknęła mi jego istota.

Później za sprawą lektury The World's Most Misunderstood Programming Language przyszło odkrycie drugiej natury JS.

Trzecie olśnienie przyszło wraz ze znalezieniem bibliotek obsługujących szyfrowanie (AES i RSA). Wtedy zrozumiałem że mam do czynienia z dojrzałym narzędziem, które z czasem może wyprzeć całą resztę.

Język ten ma mnóstwo niedociągnięć i nikt tego nie ukrywa. Jednak jego niekwestionowana wszechobecność sprawia że powoli zajmuje on należne mu miejsce.

Etykiety: , , , ,

Red 08:41

Komentarze

Prześlij komentarz

Archiwum

Subskrybuj

RSS / Atom