dRock9 je većim delom sve lepo istakao, a ja ću dodati samo još par ličnih iskustava. Koliko je to što ću reći beznačajno, prosudite sami (možete mi pored dati ocenu, rangirajte me kao prvog---1).
Programiranjem se bavim od osnovne škole (što neko reče, ,,jadno dete''), i naravno početak je bio u starom dobrom ,,Ži-vi'' BASIC-u (tako su ga neki zvali :).
Prvi veći program koji je direktno koristio hardver (COM portove za jednostavan terminal, štampanje uz drajvere za HP PCL štampače) napisao sam u 8. razredu učeći sve pomoću samog računara (razni Help sistemi i slično; znači bez knjiga i nastavnika---obično teži put).
Ubrzo sam već koristio nekoliko programskih jezika,
srednjoj školi (neki je zovu potpuno pogrešno Matematička
gimnazija) sam dosta odbojno prihvatio Pascal (još sam bio mlad i nezreo :), tu negde se i prvi put srećem sa Linux-om (nabavljen iz raznih delova, jedva sklepan i instaliran; teška vremena behu).
Kada mi je zatrebalo, za nedelju dana sam naprvio program koji mi je trebao u Delphi-u; i shvatio sam ono što dRock9 sada ističe---znati programirati nema nikakve veze sa jezikom.
Prosto, nekoliko dana upoznavanja sa bilo kojim jezikom je dovoljno da ozbiljan programer u njemu počne da pravi ozbiljne programe (ovo pretpostavljam, pošto nisam ni u kojoj meri profesionalan programer, a još manje sam ozbiljan).
I tako kreće: kako god iskrsne potreba, upoznaš se sa novim jezikom. Pravio sam neke ,,paučinaste'' stranice, i iskrsao je Perl kao standard u tim vremenima; eto i upoznavanja sa regex i svime što oni nude (i još uvek sam zaljubljenik u iste, ali u ,,standardizovanoj'' POSIX/SUS formi). Na isti način i PHP (mada dosta kasnije), C++...
Imam neka štura znanja iz funkcionalnih, logičkih i deklarativnih jezika (navodim ih kao da su oni jedno te isto :), među kojima iz Lispa i Prologa (tu se ne mogu složiti da je on glupost; a o njegovim kvalitetima i osobinama nekom drugom prilikom). Priznajem da se osećam ,,šupljim'' po pitanju funkcionalnih, logičkih i deklarativnih jezika---u dogledno vreme ću to gledati da ispravim.
Na sve moje utiske i veliki uticaj ima TeX (ovo je od davnina), i kasnije ,,pismeno programiranje'' (ovo je dosta novijeg datuma). Bez obzira na to što je C sada najčešći jezik (čak ga i ja najčešće koristim), bavim se raznim jezicima kao što su Modula-2/3 (još uvek nisam imao dovoljno vremena za izučavanje), kao i Oberon (naslednik ovih).
Svi moji izbori su nastali iz jednog prvenstvenog interesovanja---interesovanja za same operativne sisteme---tako sam probao Plan9, Oberon, *BSD, V2OS, BeOS... (i još neke za koje najverovatnije niste čuli, i neke kojima sam i ja zaboravio ime).
Lično, ne vidim da ću ja imati ikakve direktne materijalne koristi od mojih interesovanja (bar ne u dogledno vreme), ali se još uvek pouzdam u posao ,,sinovanja'' za koji dobijam redovnu platu i smeštaj u punom pansionu.
Na temu Paskala i C-a (i uopšte metodologija programiranja)
A sam Paskal je ,,čistiji'' jezik od C-a: mnogo više sintaksnih ograničenja, pa samim tim i manja mogućnost logičke greške (one češće teže da budu sintaksne). Dalje, sam pristup memoriji je vrlo cenjen kod C-a kada radiš na nekom programu koji to zaista zahteva (kao što je jezgro operativnog sistema), ali verujem da je skupljanje đubreta (
garbage collection) i dinamička alokacija ipak najbolja za aplikativno programiranje---moguće je da te tehnike još nisu dovoljno usavršene, pa su programi koji to koriste nešto sporiji (ali ne obavezno), ali ideja je u sledećem---programiraj jednom, koristi više puta.
Po mom mišljenju, najbolje je rešenje dinamička alokacija i skupljanje đubreta na nivou operativnog sistema (mada ne znam ni za jedan takav; možda neki baziran na JVM?), i objektna/predmetna organizacija samog operativnog sistema (takav je Oberon i njegov ,,naslednik'' Bluebottle; da li oni koriste dinamičku alokaciju moraću da proverim). Aplikativnog programera treba što više osloboditi od administrativnih funkcija (pošto je ipak posao OS-a da štiti i raspodeljuje memoriju, zašto onda taj posao obavljati i u običnim programima).
Sve ovo može zvučati dosta besmisleno, pošto ni sam ne poštujem principe koje iznosim (mada planiram da počnem)---i dalje programiram najčešće u starom dobrom C-u.
Ističem da je asembler u Paskalu samo jedna ekstenzija (konkretno Turbo Paskala koji pretpostavljam da svi koriste); on nije u onom standardu za Paskal (ISO ili koji?), pa sumnjam da ćete moći da ga koristite na bilo kom Paskal kompajleru (mada Gnu sigurno podržava Gasm ,,ubacitke'').
Međutim, najvažnije je shvatiti da je C jezik za one koji
vole da su bliži mašini, a sve se to može izbeći (ipak je brže i manje će se grešaka praviti ako koristimo recimo STL; koliko puta ste jedan isti tip podataka implementirali ako koristite C?)
I na kraju, izvlačenje
A sada da skratim, i istaknem da sam ja jedan potpuno amaterski ,,računardžija'', jedva sam nešto malo para od toga zaradio, a i ne planiram nešto da povećam taj bilans značajno; prema tome, moje iskustva mogu biti potpuno beznačajna za sve vas, ali sam rešio da (čekajući da mi ,,stigne'' Emacs 21.2 sa ftp.gnu.org) malo i ja pišem o ovakvim temama (sada možete primetiti da volim da pišem poduže eseje :), a kome smeta, zna gde da se javi (,,Zakon o slobodi pisanja podužih eseja na Forumu'' :).
Previše. dao bih ih, i kupio bar jedan (
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.