diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-10-11 13:29:45 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-10-11 13:29:45 +0200 |
commit | 1ae0306a3cf2ea27f60b2d205789994d260c2cce (patch) | |
tree | 53117a55c27601e92172ea82f1d8cd11d355c06c /talermerchantdemos/blog/articles/sq/rms-lisp.html | |
parent | 2e665813a44988bfd906c0fab773f82652047841 (diff) | |
download | taler-merchant-demos-1ae0306a3cf2ea27f60b2d205789994d260c2cce.tar.gz taler-merchant-demos-1ae0306a3cf2ea27f60b2d205789994d260c2cce.tar.bz2 taler-merchant-demos-1ae0306a3cf2ea27f60b2d205789994d260c2cce.zip |
add i18n FSFS
Diffstat (limited to 'talermerchantdemos/blog/articles/sq/rms-lisp.html')
-rw-r--r-- | talermerchantdemos/blog/articles/sq/rms-lisp.html | 590 |
1 files changed, 590 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/sq/rms-lisp.html b/talermerchantdemos/blog/articles/sq/rms-lisp.html new file mode 100644 index 0000000..49763d7 --- /dev/null +++ b/talermerchantdemos/blog/articles/sq/rms-lisp.html @@ -0,0 +1,590 @@ +<!--#set var="ENGLISH_PAGE" value="/gnu/rms-lisp.en.html" --> + +<!--#include virtual="/server/header.sq.html" --> +<!-- Parent-Version: 1.77 --> + +<!-- This file is automatically generated by GNUnited Nations! --> +<title>Përvoja Ime Me Lisp dhe Zhvillimi i GNU Emacs - Projekti GNU - Free Software +Foundation</title> + +<!--#include virtual="/gnu/po/rms-lisp.translist" --> +<!--#include virtual="/server/banner.sq.html" --> +<h2>Përvoja ime me Lisp dhe Krijimi i GNU Emacs</h2> + +<blockquote><p>(Transkriptim i Fjalës së Richard Stallman-it, 28 Tetor 2002, në +International Lisp Conference).</p></blockquote> + +<p>Ngaqë asnjë nga fjalimet e mia të zakonshme nuk lidhet gjëkundi me Lisp-in, +asnjë prej tyre nuk qe i përshtatshëm për sot. Ndaj do të më duhet të +improvizoj. Ngaqë gjatë karrierës time kam bërë boll gjëra që lidhen me +Lisp-in, do të duhej të isha në gjendje të them diçka interesante.</p> + +<p>Takimi im i parë me Lisp-in qe leximi i doracakut të Lisp 1.5-s në shkollën +e mesme. Kjo qe koha kur më iku mendja nga ideja që mund të kishte një gjuhë +kompjuteri si kjo. Hera e parë që pata rastin të bëj diçka me Lisp-in qe kur +isha riosh në Harvard dhe shkrova një interpretues Lisp për <abbr +title="Programmed Data Processor">PDP</abbr>-11. Qe makinë shumë e vogël +— kish a s’kish 8k kujtesë — dhe ia dola të shkruaj +interpretuesin brenda një mijë udhëzimesh. Kjo më la pak vend për pakëz të +dhëna. Kjo ndodhi përpara se të arrija të shihja se çfarë qe vërtet një +<em>software</em>, ai që kryente detyra të vërteta në sistem.</p> + +<p>Zura të punoj për një sendërtim të njëmendtë Lisp me JonL White-in sapo +fillova të punoj në <abbr title="Massachusetts Institute of +Technology">MIT</abbr>. Më punësuan në Artificial Intelligence Lab, jo +JonL-ja, por Russ Noftsker-i, çka qe më ironikja kur mendon se ç’do të vinte +më pas — vërtet duhet të jetë penduar për atë ditë.</p> + +<p>Gjatë viteve ’70, përpara se jeta ime të politizohej nga ngjarje të +tmerrshme, thjesht e shtyja duke bërë zgjerim pas zgjerimi për programe të +ndryshme, dhe shumica e tyre nuk kishin të bënin aspak me Lisp-in. Por, në +rrugë e sipër, shkrova një përpunues tekstesh, Emacs. Ideja interesante +rreth Emacs-it qe që kish një gjuhë programimi brenda, dhe që urdhrat e +përdoruesit për përpunime mund të shkruheshin në atë gjuhë të interpretuar +programimesh, dhe kështu mund të ngarkonit urdhra të reja te përpunuesi juaj +ndërkohë që punonit me të. Mund të përpunonit programet që po përdornit dhe +të vazhdonit të përpunonit me ta. Pra, kishim një sistem që qe i dobishëm +për gjëra të tjera veç programimit, dhe ndërkohë mund ta programonit, teksa +e përdornit. Nuk e di nëse qe e para ndër gjëra të tilla, por sigurisht qe +përpunuesi i parë i tillë.</p> + +<p>Kjo frymë e krijimit të programeve gjigante, të ndërlikuara, për përdorim +për përpunimin tuaj, dhe mandej shkëmbimi i tyre me persona të tjerë, ndezi +frymën e bashkëpunimit të lirë që shihnim atëherë në AI Lab. Ideja qe që +mund t’ia jepnit kopjen e çfarëdo programi që kishit dikujt që donte një +kopje të tij. I ndanim programet me këdo që donte t’i përdorte ato, përbënin +dije njerëzore. Pra edhe pse nuk kish mendim politik të kristalizuar që të +lidhej me mënyrën sipas të cilës shkëmbenim <em>software</em> për hartimin e +Emacs-it, jam i bindur që pat një lidhje mes tyre, ndoshta një lidhje jo të +vetëdijshme. Mendoj se është natyra e mënyrës se si jetonim në AI Lab ajo që +shpuri te Emacs dhe e bëri atë që është.</p> + +<p>Emacs-i origjinal s’përmbante Lisp. Gjuha e nivelit të ulët, gjuha e +painterpretueshme — qe PDP-10 Assembler. Interpretuesi që shkruam, në +fakt s’u shkrua për Emacs, u shkrua për <abbr title="Text Editor and +COrrector">TECO</abbr>. Ky qe përpunuesi ynë i teksteve, dhe qe një gjuhë +programimi tejet e shpifur, e shpifur sa më s’bëhej. Arsyeja qe se nuk qe +hartuar për të qenë gjuhë programimi, qe hartuar për të qenë gjuhë +përpunuesi dhe urdhrash. Kish urdhra të tilla si ‘5l’, për +‘zhvendosu pesë rreshta’, ose ‘i’ dhe mandej një +varg dhe mandej një ESC për ta futur atë varg diku. Mund të shkruanit një +varg që mund të ishte një radhë urdhrash, dhe që quhej varg urdhrash. E +përfundonit me ESC ESC, dhe kështu mund të ekzekutohej.</p> + +<p>Njerëzit donin ta zgjeronin këtë gjuhë me aftësi programimi, ndaj edhe +shtuan ca syresh. Për shembull, nga të parat qe një mekanizëm përsëritjeje, +që qe < >. Mund t’i vinit këto rreth një gjëje dhe kjo gjë do të +përsëritej. Kish edhe të tjerë urdhra të mistershëm që mund të përdoreshin +për të dalë nga përsëritja sipas një kushti. Për të krijuar Emacs-in, <a +href="#foot-1">(1)</a> shtuam aftësinë për të pasur nënrutina të +emërtuara. Para kësaj, qe pak a shumë si Basic, dhe nënrutinat mund të +kishin vetëm një shkronjë si emër. Me to, qe e vështirë të programoheshin +programe të mëdha, ndaj shtuam kod që të mund të kiheshin emra të gjatë. Në +fakt, kish edhe disa aftësi të tjera paksa të sofistikuara; kam përshtypjen +se Lisp-i, aftësinë për "unwind-protect", e mori nga TECO.</p> + +<p>Filluam duke shtuar aftësi pak a shumë të sofistikuara, krejt me sintaksën +më të shpifur që mund të mendoni, dhe funksionoi — njerëzit +prapëseprapë qenë të zotët të shkruanin programe të mëdhenj me të. Mësimi i +qartë qe që një gjuhë si TECO, e cila s’qe hartuar për të qenë gjuhë +programimi, ishte rruga e gabuar. Gjuha në të cilën ju do të krijonit +zgjerimet tuaja, s’do të duhej konceptuar si gjuhë programimi pas të vjelës; +do të duhej konceptuar si gjuhë programimi. Në fakt, zbuluam që gjuha më e +mirë e programimit për këtë qëllim qe Lisp-i.</p> + +<p>Ai që e zbuloi këtë <a href="#foot-2">(2)</a>, qe Bernie Greenberg. Ky +shkroi një version të Emacs-it në Multics MacLisp, dhe i shkroi urdhrat e +veta në MacLisp në mënyrë të drejtpërdrejtë. Përpunuesi në vetvete qe +shkruar krejtësisht në Lisp. Multics Emacs u shndërrua në sukses të madh +— programimi i urdhrave të rinj për përpunimin qe kaq i përshtatshëm +sa edhe sekretaret në zyrën e tij filluan të mësonin se si ta +përdornin. Përdorën një doracak që e pat shkruar dikush e që tregonte se si +të zgjerohej Emacs-i, por që nuk thoshte se bëhej fjalë për +programim. Kështu që sekretaret, që besonin se nuk programonin dot, nuk +patën frikë. Lexuan doracakun, zbuluan që mund të bënin gjëra të dobishme +dhe mësuan të programonin.</p> + +<p>Pra, Bernie pa që një aplikacion — një program që bën diçka të +dobishme për ju — që ka brenda Lisp dhe që mund ta zgjeroni duke +rishkruar programe Lisp, është në fakt një mënyrë shumë e mirë që njerëzit +të mësojnë programim. U jep atyre një mundësi të shkruajnë programe të +vegjël që janë të dobishëm për ta, çka në shumicën e fushave ju ndoshta nuk +mund ta kryeni dot. Mund të nxiten përmes përdorimit praktik — në +fazën që është më e vështira — kur nuk besojnë se mund të programojnë, +derisa arrijnë në pikën që janë programues.</p> + +<p>Në këtë pikë, njerëzit zunë të mendonin se si mund të kishin diçka të tillë +edhe në një platformë tek e cila nuk kishin sendërtim të plotë funksional të +Lisp-it. Multics MacLisp kish një përpilues dhe një interpretues — qe +sistem Lisp i kompletuar — por njerëzit donin të sendërtonin diçka të +tillë në sisteme të tjera, ku s’kishin shkruar ende ndonjë përpilues +Lisp. Pra, po të mos kishit përpiluesin Lisp, s’shkruanit dot plotësisht +përpunuesin në Lisp — do të ishte shumë i ngadaltë, veçanërisht +riparaqitja, po qe se bëhej fjalë të xhirohej Lisp i interpretuar. Ndaj +zhvilluam një teknikë hibride. Ideja qe të shkruanim në një të vetëm një +interpretues Lisp dhe pjesët e nivelit të ulët tok, që kështu një pjesë e +përpunuesit të qenë pjesë të brendshme të Lisp-it. Këto do të ishin çfarëdo +pjesësh që ne mendonim se duheshin përsosur. Kjo qe një teknikë që e kishim +praktikuar tashmë me vetëdije në Emacs-in origjinal, ngaqë kish disa veçori +deri diku të nivelit të lartë, të cilat i risendërtuam në gjuhën e makinës, +duke i shndërruar në primitivë TECO. Për shembull, kish një primitiv TECO +për mbushjen e një paragrafi (në fakt, për kryerjen e shumicës së punës për +mbushjen e një paragrafi, ngaqë disa nga pjesët më pak të lodhshme të punës +i binte të kryheshin në një nivel më të lartë, nga një program TECO). Mund +ta bënit krejt punën duke shkruar një program TECO, por kjo qe shumë e +ngadaltë, ndaj e përsosëm duke hedhur pjesë të tij në gjuhën e +makinës. Përdorëm këtu të njëjtën ide (atë te teknika hibride), që pjesa +dërrmuese e përpunuesit të shkruhej në Lisp, por disa pjesë të tij, të cilat +duhej të xhironin veçanërisht shpejt, të shkruheshin në nivel më të ulët.</p> + +<p>Kështu që, kur shkrova sendërtimin tim të dytë të Emacs-it, ndoqa të njëjtën +lloj skeme. Gjuha e nivelit të ulët nuk qe më gjuha e makinës, qe C-ja. C-ja +qe gjuhë e mirë, e efektshme për programe të kalueshëm, që të mund të +xhironin në një sistem operativ të ngjashëm me Unix-in. Kishte një +interpretues Lisp, por sendërtova aftësi për veprime specifike përpunimi +drejt e në C — përdorim shtytëzash përpunuesi, futjeje teksti +drejtues, lexim dhe shkrim kartelash, rishfaqje në ekran të përmbajtjes së +një shtytëze, administrim dritaresh përpunuesi.</p> + +<p>Tani, ky s’qe Emacs-i i parë i shkruar në C dhe që xhironte nën Unix. I pari +qe shkruar nga James Gosling, dhe i referoheshin si GosMacs. I ndodhi diçka +e çuditshme. Në fillim, ngjante se ndikohej nga e njëjta frymë e shkëmbimit +dhe bashkëpunimit me Emacs-in origjinal. Emacs-in e parë origjinal e pata +hedhur në qarkullim për personat në MIT. Dikush dëshironte ta bënte të +xhironte në Twenex — në fillim xhironte vetëm në Incompatible +Timesharing System që përdornim në MIT. E kaluan në Twenex, që do të thoshte +se kish ndoca qindra instalime nëpër botë që mundeshin ta përdornin. Zumë +tua dërgonim atyre, me kusht që “duhet të na dërgoni krejt +përmirësimet që i bëni” që të përfitonim të gjithë. Askush s’u përpoq +ndonjëherë ta bënte këtë të detyrueshme, por, me aq sa di, njerëzit +bashkëpunuan.</p> + +<p>Gosling dukej, në fillim, se do të bashkëpunonte në këtë frymë. Shkroi në +një doracak se programin po e quante Emacs, duke shpresuar që edhe të tjerë +nga bashkësia do ta përmirësonin, derisa t’ia vlente atë emër. Ky qe +trajtimi i duhur kundrejt një bashkësie — t’u kërkohej të merrnin +pjesë e ta bënin programin më të mirë. Por pas kësaj dukej se ndërroi +mendje, dhe ia shiti një shoqërie.</p> + +<p>Në atë kohë po punoja për sistemin GNU (një sistem operativ +<em>software</em> i lirë, i ngjashëm me Unix, që mjaft vetë gabimisht e +quajnë “Linux”). Nuk kish përpunues Emacs, si <em>software</em> +të lirë, që xhironte nën Unix. Por kisha një shok që kish marrë pjesë në +programimin e Emacs-it të Gosling-ut. Gosling-u i pat dhënë, përmes email-i, +leje të përhapte versione të tijat. Më propozoi të përdorja atë version. Më +tej pashë që Emacs-i Gosling-ut nuk përmbante Lisp të vërtetë. Kish një +gjuhë programimi që njihej si ‘mocklisp’, që nga sintaksa duket +si Lisp, por që nuk kish struktura të dhënash të Lisp-it. Kështu që +programet nuk qenë të dhëna, dhe mungonin elemente jetike të Lisp-it. +Strukturat e të dhënave në të qenë vargje, numra dhe pak gjëra të tjera +speciale.</p> + +<p>Dola në përfundimin se nuk e përdorja dot dhe më duhej ta zëvendësoja të +tërin, hapi i parë për të cilin qe shkrimi i një interpretuesi të vërtetë +Lisp. Dora-dorës përshtata çdo pjesë të përpunuesit duke e bazuar në +struktura të dhënash Lisp faktike, në vend të strukturave <i>ad hoc</i> për +të dhënat, duke i bërë strukturat e të dhënave të mekanizmave të brendshme +të përpunuesit të ekspozueshme dhe të trajtueshme nga programet Lisp të +përdoruesit.</p> + +<p>Përjashtim qe rishfaqja. Për shumë kohë, rishfaqja qe njëfarë bote +tjetër. Përpunuesi mund të kalonte në botën e rishfaqjeve dhe gjërat do të +vazhdonin me struktura të dhënash tejet speciale që nuk qenë pa dëm për +grumbullim hedhurinash, as për ndërprerje, dhe nuk mund të xhironit ndonjë +program Lisp gjatë kohës që ndodhte kjo. E ndryshuam ama — tani është +e mundur të xhirohet kod Lisp gjatë rishfaqjes. Çka vjen jo pak ndoresh.</p> + +<p>Ky program i dytë Emacs qe ‘<em>software</em> i lirë’ në +kuptimin modern të fjalës — qe pjesë e një fushate të deklaruar +politike për krijim software-i të lirë. Thelbi i kësaj fushate qe që kushdo +duhet të jetë i lirë të bëjë gjërat që bënim ne dikur në MIT, të punohej tok +mbi software-in dhe të punohej me këdo që donte të punonte me ne. Kjo është +baza e lëvizjes për <em>software</em> të lirë — përvoja që pata, jeta +që bëja në MIT AI lab — të punohej për dijen njerëzore, dhe jo t’i +zihej rruga cilitdo që përdorte dhe përhapte më tej dijen njerëzore.</p> + +<p>Në atë kohë, mund të krijonit një kompjuter që hynte në po atë segment +çmimesh si kompjuterat e tjerë që nuk qenë menduar për Lisp, vetëm se ky +mund të xhironte Lisp-in shumë më shpejt se ata, dhe, po ashtu, me kontroll +të plotë të llojit të të dhënave në çdo veprim. Kompjuterat e zakonshëm ju +shtrëngonin të zgjidhnit ose shpejtësinë e ekzekutimit, ose kontroll të mirë +të llojit të të dhënave. Pra, mund të kihej një përpilues Lisp dhe të +xhiroheshin programet më shpejt, por kur provohej të merrej <code>car</code> +i një targe, arrihej në përfundime pa kuptim dhe tek e fundit në vithisje.</p> + +<p>Makina Lisp qe e zonja të përmbushte udhëzimet gati po aq shpejt sa makinat +e tjera, por çdo udhëzim — një udhëzim, të themi <code>automjet</code> +do të shkaktonte kontroll lloji të dhënash — kështu që, po të provonit +të kërkonit <code>automjet</code> për një numër, në një program të +përpiluar, do t’ju paraqitej menjëherë një gabim. E ndërtuan makinën dhe kjo +pati një sistem operativ Lisp. Qe shkruar krejtësisht në Lisp, me përjashtim +vetëm të pjesëve të shkruara në mikrokod. Njerëzve filloi t’u interesojë +prodhimi i tyre, që do të thoshte se mund të fillonin një biznes.</p> + +<p>Kish dy ide të ndryshme rreth se si mund të ishte shoqëria. Greenblatt-i +donte të fillonte atë çka e quante shoqëri “hacker”-ësh. Kjo +donte të thoshte një shoqëri e administruar nga hacker-a dhe do të +funksiononte në një mënyrë nxitëse për hacker-at. Një synim tjetër që të +vazhdohej kultura e laboratorit AI Lab <a href="#foot-3">(3)</a>. Për fat +të keq, Greenblatt-i nuk kish ndonjë përvojë në punë biznesi, ndaj të tjerë +persona në grupin e makinave Lisp thanë se dyshonin se mund t’ia dilte +mbanë. Qenë të mendimit që plani i tij për të shmangur investime nga jashtë +grupit nuk kish për të funksionuar.</p> + +<p>Pse donte të shmangte investimet nga jashtë? Ngaqë kur një shoqëri ka +investitorë jashtë vetes, këta shtien në dorë kontrollin dhe nuk ju lënë më +të keni skrupuj. Dhe në fund, po patët skrupuj, ju heqin nga drejtimi.</p> + +<p>Ndaj Greenblatt-i pati idenë të gjente klientë që do të parapaguanin blerjen +e pjesëve. Të montonin makinat dhe t’i shpërndanin te porositësit; me +fitimin prej pjesëve, do të ishin në gjendje të blinin pjesë për ndoca +makina të tjera, t’i shisnin këto dhe mandej të blinin pjesë për një numër +më të madh makinash, e me radhë. Personat e tjerë në grup qenë të mendimit +që kjo do të funksiononte.</p> + +<p>Greenblatt-i mandej mori në punë Russell Noftsker-in, njeriun që më pat +punësuar mua, që më pas e pat lënë laboratorin AI Lab dhe kish krijuar një +shoqëri të suksesshme. Russell-i besohej se kish nuhatje për biznes. E +shfaqi këtë nuhatje për biznes duke u thënë personave të tjerë të grupit, +“Le ta heqim qafe Greenblatt-in, bashkë me idetë e tij, dhe do të +ngremë një tjetër shoqëri.” Thikë pas shpine, biznesmen i vërtet sa më +s’bëhet. Këta persona vendosën të krijonin një shoqëri të quajtur +Symbolics. Me investime nga jashtë, pa skrupuj, dhe të gatshëm për gjithçka +për fitoren.</p> + +<p>Por Greenblatt-i nuk u dorëzua. Ai dhe ata pak besnikë të tij vendosën të +krijonin Lisp Machines Inc. sido që të ndodhte dhe të ecnin para me planet e +tyre. Dhe siç e dini, ia dolën mbanë! Gjetën klientin e parë dhe patën +parapagim. Montuan makina dhe i shitën, pastaj krijuan më shumë makina, dhe +prapë të tjera. Ia dolën mbanë, edhe pse nuk patën ndihmën e shumicës së +personave të grupit. Edhe Symbolics pati fillim të suksesshëm, pra kishit dy +shoqëri konkurruese makinash Lisp. Kur Symbolics pa që LMI nuk do të +shkërmoqej, filluan të kërkonin për mënyra se si ta shkatërronin.</p> + +<p>Kështu që, në laboratorin tonë, braktisja u pasua nga “lufta”. +Braktisja erdhi kur Symbolics punësoi krejt hacker-at, hiq mua dhe ndoca që +punonin me kohë të pjesshme te LMI. Mandej nxorën nga pluhuri një rregullore +dhe hoqën qafe personat që punonin me kohë të pjesshme për MIT-in, kështu që +iu desh të iknin plotësisht, dhe prej kësaj mbeta vetëm unë. Laboratori AI +tani qe i pashpresë. Dhe MIT-i kish bërë një ujdi shumë të marrë me këto dy +shoqëritë. Qe një kontratë trikahëshe ku secila shoqëri lejonte përdorimin +e kodit burim të sistemit të makinave Lisp. Këto shoqëri qenë të detyruara +të lejonin MIT-in të përdorte ndryshimet e bëra prej tyre. Por në kontratë +nuk thuhej se MIT-i gëzonte të drejtën t’i hidhte ato në sistemet e makinave +Lisp të MIT-it që qenë licencuar nga të dyja shoqëritë. Askush nuk pati çuar +në mendje që grupi i hacker-ave të laboratorit AI do të avullonte, por ja që +ndodhi.</p> + +<p> Kështu që Symbolics hartoi një plan <a href="#foot-4">(4)</a>. I thanë +laboratorit, “Do të vazhdojmë t’ju lejojmë përdorimin e ndryshimeve +tona, por nuk mund t’i hidhni në sistemin MIT të makinave Lisp. Në vend të +kësaj, do t’ju lejojmë hyrje në sistemin e makinave Lisp të Symbolics-it, +dhe mund ta xhironi, por kjo është e gjitha çka mund të bëni.”</p> + +<p>Kjo, praktikisht, do të thoshte që na kërkuan të zgjidhnim me kë palë do të +ishim, dhe të përdornim ose versionin MIT të sistemit, ose versionin +Symbolics. Cilëndo zgjedhje të bënim, do të përcaktonte se te cili sistem +do të shkonin përmirësimet tona. Po të punonin me dhe të përmirësonin +versionin e Symbolics-it, do të përkrahnim vetëm Symbolics-in. Po të +përdornim dhe përmirësonim versionin MIT të sistemit, i binte ta jepnim +punën te të dyja shoqëritë, por Symbolics pa që do të mbështesnim LMI-në, +ngaqë do ta ndihmonim të ekzistonte. Kështu që s’na u lejua më të qëndronim +asnjanës.</p> + +<p>Deri në atë pikë, nuk kisha mbajtur anën e asnjërës shoqëri, edhe pse +ndihesha keq kur shihja se ç’i ndodhi bashkësisë sonë dhe software-it. Por +tashmë, Symbolics-i e kish bërë të detyruar këtë gjë. Dhe kështu, në një +përpjekje për ta mbajtur gjallë Lisp Machines Inc. <a href="#foot-5">(5)</a> +— zura të riprodhoj krejt përmirësimet që Symbolics kish bërë te +sistemi i makinës Lisp. I shkrova vetë nga e para përmirësimet e +njëvlershme (dmth, kodi qe i imi).</p> + +<p>Pas ca kohësh <a href="#foot-6">(6)</a>, mbërrita në përfundimin që e mira e +të mirave do të ishte të mos shihja fare në kodin e tyre. Kur njoftonin +paraprakisht për ndonjë version beta, që shoqërohej me shënime versioni, +mund të shihja ç’qenë veçoritë e reja dhe mandej t’i sendërtoja. Në kohën që +hidhnin faktikisht në qarkullim diçka, po atë bëja edhe unë.</p> + +<p>Në këtë mënyrë, për dy vite, ua pengova ta fshinin nga faqja e dheut Lisp +Machines Incorporated, dhe të dy shoqëritë bënë përpara. Por nuk doja të +shpenzoja vite të tëra duke ndëshkuar dikë, thjesht duke i vënë gjoksin një +akti të lig. Kuptova që qenë ndëshkuar paq, ngaqë kishin ngecur në rrjetën e +konkurrencës, e cila nuk do të largohej apo tretej<a +href="#foot-7">(7)</a>. Ndërkohë, kish ardhur koha të fillohej ndërtimi i +një bashkësie të re, për të zëvendësuar atë që e zhdukën veprimet e tyre dhe +të tjera.</p> + +<p>Bashkësia Lisp në vitet ’70 nuk kufizohej te MIT AI Lab, dhe hacker-at +s’qenë vetëm në MIT. Lufta e nisur nga Symbolics qe ajo që asgjësoi MIT-in, +por ndodhën dhe ngjarje të tjera. Pati persona që hoqën dorë nga +bashkëpunimi, dhe kjo i vuri shkelmin bashkësisë dhe kështu nuk mbeti +kushedi çë.</p> + +<p>Pasi reshta së ndëshkuari Symbolics-in, m’u desh të gjeja se ç’të bëja më +tej. Duhej të bëja një sistem operativ të lirë, që të qe i kthjellët — +e vetmja mënyrë që njerëzit të mund të punonin tok dhe të shkëmbenin qe +përmes një sistemi operativ të lirë.</p> + +<p>Fillimisht, pata në mendje të bëja një sistem të bazuar në Lisp, por e +kuptova që nuk do të ishte ide e mirë teknikisht. Për të pasur diçka të +ngjashme me një sistem makine Lisp, ju duhet mikrokod për qëllime +speciale. Ky qe ai që bënte të mundur xhirim po aq të shpejtë sa xhironin +kompjuterët e tjerë programet e tyre dhe prapë të kish përparësinë e +kontrollit mbi llojin e të dhënave. Pa këtë, do të përfundonit në diçka të +ngjashme me një përpilues Lisp për makina të tjera. Programet do të bëheshin +më të shpejta, por të paqëndrueshme. Me këtë nuk ka problem, nëse po xhironi +një program në një sistem me ndarje kohe — nëse vithiset një program, +nuk u bë hataja, është diçka që ndodh te programet, me raste. Por kjo nuk e +bënte të mirë për shkrimin e një sistemi operativ, ndaj e hodha poshtë idenë +e krijimit të një sistemi si një makinë Lisp.</p> + +<p>Vendosa më mirë të bëja një sistem operativ të ngjashëm me Unix-in, i cili +do të kishte sendërtime Lisp që do të xhironin si programe +përdoruesi. Kerneli nuk do të shkruhej në Lisp, por do të kishim Lisp. Dhe +hartimi i këtij sistemi operativ, sistemit operativ GNU, qe ai që më shpuri +te shkrimi i GNU Emacs-it. Duke bërë kështu, synoja të kryeja minimumin +absolut të mundshëm të sendërtimeve Lisp. Madhësia e programeve qe shqetësim +shumë i madh.</p> + +<p>Kish njerëz në ato kohë, më 1985, që kishin makina me 1Mb kujtesë, pa +kujtesë virtuale. Këta donin të ishin në gjendje të përdornin GNU Emacs. Kjo +do të thoshte ta mbaja programin sa më të vogël që mundej.</p> + +<p>Për shembull, në atë kohë e vetmja strukturë ripërsëritëse qe +‘while’, e cila qe fare e thjeshtë. Nuk kish mënyrë për të dalë +nga deklarimi ‘while’, ju duhej të kryenit "a catch and a +throw", ose të testonit ndryshoren që xhironte ripërsëritjen. Kjo tregon se +sa larg isha shtyrë për t’i mbajtur gjërat të vogla. Nuk kishte +‘automjeet’ dhe as ‘atomjet’ dhe me radhë; +“ngjeshe sa të mundet” qe fryma e GNU Emacs-it, fryma e Lisp-it +për Emacs, që në fillim.</p> + +<p>E qartë që sot makinat janë më të mëdha, dhe nuk veprojmë më kështu. Vëmë +edhe ‘automjeet’, edhe ‘atomjet’ dhe me radhë, dhe +sot mundemi të vendosim edhe strukturë tjetër ripërsëritëse. Duam ta +zgjerojmë diçka, por nuk duam ta zgjerojmë deri në shkallën e një Lisp-i të +zakonshëm. Njëherë, sendërtova Common Lisp në makinën Lisp, dhe nuk më +kënaqi kushedi. Diçka që nuk më pëlqen dhe aq shumë janë argumentet +fjalëkyçe <a href="#foot-8">(8)</a>. Nuk më duken edhe aq të stilit Lisp; +Do t’i ndërroj ndonjë ditë, por minimizoj kohët kur bëj kështu.</p> + +<p>Ky nuk qe fundi i projekteve GNU që kishin të bënin me Lisp-in. Më vonë, +diku aty nga 1995, po shihnim mundësinë e fillimit të një projekti për një +desktop grafik. Qe e qartë që, për programet në desktop, donim një gjuhë +programimi me të cilën të shkruanim shumë dhe të qe lehtësisht e +zgjerueshme, njësoj si përpunuesi. Çështja qe se cila duhej zgjedhur.</p> + +<p>Në atë kohë, <abbr title="Tool Command Language">TCL</abbr> po reklamohej +rëndshëm për këtë qëllim. Kisha vlerësim shumë të ulët për TCL-në, +pikësëpari ngaqë s’qe Lisp. Ngjante pakëz me Lisp-in, por semantikisht s’qe +e tillë, dhe nuk është aq e qëruar. Mandej dikush më tregoi një lajmërim me +të cilin Sun-i po përpiqej të punësonte dikë për t’u marrë me TCL-në për ta +bërë “de-facto gjuhën standard për zgjerime” në botë. Dhe +mendova, “Duhet ta ndalim përmbushjen e kësaj.” Kështu filluam +të ndërtojmë Scheme-n, gjuha standard e zgjerimeve për GNU-në. Jo Common +Lisp, ngaqë ky qe shumë i madh. Ideja qe të kishim një interpretues Scheme +të hartuar për t’u lidhur te aplikacionet në të njëjtën mënyrë si lidhej +TCL-ja te aplikacionet. Mandej këtë ta këshillonim si paketën e parapëlqyer +për zgjerime për krejt programet GNU.</p> + +<p>Ka një përfitim interesant që ju vjen nga përdorimi si gjuhë tuajën parësore +për zgjerime i një gjuhe kaq të fuqishme siç do të ishte një version +Lisp-i. Mund të sendërtoni gjuhë të tjera, përmes përkthimit të tyre në +gjuhën tuaj parësore. Nëse gjuha juaj parësore është TCL-ja, nuk sendërtoni +dot lehtë Lisp-in duke e përkthyer në TCL. Por nëse gjuha juaj parësore +është Lisp-i, s’është aq e zorshme të sendërtohen gjëra të tjera duke i +përkthyer ato. Ideja jonë qe që, nëse çdo aplikacion i zgjerueshëm mbulonte +Scheme-n, mund të shkruanit në Scheme një sendërtim të TCL-së, ose +Python-it, ose Perl-it, i cili ta përkthente atë program në Scheme. Mandej +mund ta ngarkonit këtë në çfarëdo aplikacioni dhe ta përshtatnit në gjuhën +tuaj të parapëlqyer dhe do të funksiononte edhe me përshtatje të tjera.</p> + +<p>Për sa kohë që gjuhët e zgjerimeve janë të dobëta, përdoruesit i mbetet të +përdorë vetëm gjuhën që i jepni. Që do të thotë se njerëzve që dashurojnë +cilëndo gjuhë tjetër iu duhet të konkurrojnë për të qenë ajo zgjedhja e +hartuesve të aplikacioneve — duke thënë “Ju lutemi, hartues i +aplikacionit, vendoseni dhe gjuhën time te aplikacioni juaj, jo gjuhën e +atij.” Kështu përdoruesve nuk u lihet shteg zgjedhje fare — +cilido aplikacion që përdorin, vjen me një gjuhë dhe ngecin në të [atë +gjuhë]. Por kur keni një gjuhë të fuqishme që mund të sendërtojë të tjerat +përmes përkthimit të tyre në të, i jepni kështu përdoruesit një mundësi +zgjedhje gjuhe dhe nuk ka pse të bëjmë më luftë gjuhësh. Kjo është ajo që +shpresojmë të bëjë ‘Guile’, interpretuesi ynë Scheme. Kishim +dikë që punoi verën e shkuar për të përfunduar një përkthyes nga Python në +Scheme. Nuk e di nëse ka përfunduar krejtësisht, por cilido që interesohet +për këtë projekt, ju lutemi, le të lidhet me ta. Pra ky është plani që kemi +për të ardhmen.</p> + +<p>S’kam folur për software-in e lirë, por më lejoni shkurt t’ju tregoj paksa +se çfarë don të thotë. <em>Software</em> i lirë nuk nënkupton çmimin; nuk do +të thotë që e merrni falas. (Mundet edhe të paguani për një kopje, ose të +siguroni një kopje falas.) Don të thotë që keni liri, si përdorues. Gjëja +kyçe është fakti që jeni i lirë ta xhironi programin, i lirë të studioni se +çfarë kryen, i lirë ta ndryshoni që të përputhet me nevojat tuaja, i lirë të +rishpërndani kopje për të tjerët dhe i lirë për të bërë publike versione të +ndryshuara, të zgjeruara. Ky është kuptimi i software-it të lirë. Nëse +përdorni programe jo të lira, keni humbur liri kyçe, ndaj mos e bëni kurrë.</p> + +<p>Qëllimi i projektit GNU është t’ua bëjë më të lehtë njerëzve kundërshtimin e +software-it jo të lirë, i cili shtyp lirinë, e sundon përdoruesin, duke u +ofruar atyre <em>software</em> të lirë për zëvendësim. Për ata që nuk kanë +kurajë morale të hedhin tej software-in jo të lirë, kur kjo sjell ca minuse +në leverdinë praktike, ajo që përpiqemi të bëjmë është dhënia e +alternativave të lira, që kështu të mund të shkoni drejt lirisë me më pak +belara dhe me më pak sakrifica, për sa i takon anës praktike. Sa më pak +sakrifica, aq më mirë. Duam t’ua bëjmë më të lehtë kalimin në liri, në +bashkëpunim.</p> + +<p>Këtu bëhet fjalë për lirinë për të bashkëpunuar. Jemi mësuar t’i mendojmë +lirinë dhe bashkëpunimin me shoqërinë si të jenë të kundërta. Por këtu janë +në të njëjtin krah. Me software-in e lirë jeni i lirë të bashkëpunoni me të +tjerët, si dhe i lirë të ndihmoni vetveten. Me software-in jo të lirë, +dikush ju sundon dhe i mban njerëzit të përçarë. Nuk ju lejojnë të ndani +gjëra mes jush, nuk jeni i lirë të bashkëpunoni ose të ndihmoni shoqërinë, +dhe as të ndihmoni vetveten. Të përçarë dhe të pashpresë është gjendja e +përdoruesve që përdorin <em>software</em> jo të lirë.</p> + +<p>Kemi prodhuar një segment marramendës software-i të lirë. Kemi bërë ato që +njerëzit thoshin se nuk do t’ia dilnim t’i bënim kurrë; kemi dy sisteme +operativë software-i të lirë. Kemi mjaft aplikacione dhe, kuptohet, kemi +ende plot rrugë për të bërë. Ndaj na duhet ndihma juaj. Do të doja t’ju +kërkoja të merrni pjesë si vullnetar në projektin GNU; na ndihmoni që të +hartojmë <em>software</em> të lirë për më shumë punë. Hidhini një sy <a +href="/help/">http://www.gnu.org/help</a> për të pasur një ide se si mund të +ndihmohet. Nëse dëshironi të porosisni gjëra, ka një lidhje për këtë punë, +te faqja hyrëse. Nëse doni të lexoni rreth çështjesh filozofike, shihni te +ndarja /filozofi. Nës po kërkoni software të lirë që mund ta përdorni, +shihni te /directory, ku sot radhiten gati 1900 paketa (çka është vetëm një +pjesë e software-it të lirë). Ju lutemi, na shkruani më tepër dhe +kontribuoni me ne. Libri im me sprova, “Free Software and Free +Society”, gjendet në shitje dhe mund të blihet te <a +href="http://www.gnu.org/">www.gnu.org</a>. Happy hacking!</p> + +<ol> +<li id="foot-1">Guy Steele hartoi grupin origjinal të komandave simetrike Emacs; mandej ai +dhe unë zumë të vinim në jetë Emacs-in (përsipër TECO-s), por pas një +sesioni të gjatë programimi të përbashkët, Steele-i zuri të rrëshqiste tej, +kështu që Emacs-in e përfundova unë. Të tjerë, përfshi veçanërisht Eugene +C. Cicciarelli-n dhe Mike McMahon-in, dhanë ndihmesë thelbësore më vonë.</li> + +<li id="foot-2">Bernie Greenberg thotë se sendërtimi i Dan Weinreb-it për Emacs në Lisp +Machine kish dal para sendërtimit të Greenberg-ut për Multics. Kërkoj +ndjesë për gabimin.</li> + +<li id="foot-3">Plani i Greenblatt-it, si e kuptoja unë, qe të punësoheshin me kohë të +pjesshme njerëz të laboratorit, që kështu të mund të vazhdonin të punonin te +AI Lab. Në vend të kësaj, Symbolics i punësoi me kohë të plotë, kështu që +këta reshtën së punuari në MIT.</li> + +<li id="foot-4">Rrethanat e këtij plani, të cilat nuk i deklarova shprehimisht gjatë fjalës +sime, qenë që gjatë një periudhe fillestare hacker-at e ish-AI-Lab-it, ata +në Symbolics ose ata në LMI, vazhduan t’i jepnin ndryshimet e tyre te +sistemi MIT Lisp Machine — edhe pse kontrata nuk e detyronte këtë +hap. Plani i Symbolics-it qe ta thyente në mënyrë të njëanshme këtë +bashkëpunim.</li> + +<li id="foot-5">Jo se më dhimbsej veçanërisht fati i LMI-ë, më tepër ngaqë s’doja që të +lejohej Symbolics të përfitonte në kurriz të AI Lab-it me agresionin e vet.</li> + +<li id="foot-6">Ky pohim është keqkuptuar sikur thotë që unë kurrë nuk kam parë te kodi i +Symbolics-it. Në fakt pohon që kisha parë në të, fillimisht. Kodi burim +nga Symbolics qe i passhëm në MIT, ku më lejohej ta shihja, dhe fillimisht +kjo qe rruga se nga i mora vesh ndryshimet e tyre. + +<p>Por kjo do të thoshte që duhej të bëja përpjekje shtesë për ta zgjidhur +ndryshe çdo problem, me qëllim që të shmangja kopjimin e kodit të +Symbolics-it. Pas ca kohësh, pashë se qe më mirë të mos shihje fare. Në +këtë mënyrë mund të shkruaja kod sipas rrugës më të mirë, pa vrarë mendjen +se ç’përmbante kodi i Symbolics-it.</p></li> + +<li id="foot-7">Symbolics në një rast protestoi te MIT se puna ime, duke u prishur planin, i +kish kushtuar Symbolics-it një milion dollarë.</li> + +<li id="foot-8">Nuk e kam problem që një funksion shumë kompleks dhe i rëndë të përdorë +argumente fjalëkyçe. Ajo që më bezdis është të bësh funksione të thjeshtë +elementarë të tillë si “member” t’i përdorin ato.</li> +</ol> + +<div class="translators-notes"> + +<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.--> + </div> +</div> + +<!-- for id="content", starts in the include above --> +<!--#include virtual="/server/footer.sq.html" --> +<div id="footer"> +<div class="unprintable"> + +<p>Ju lutemi, pyetjet dhe kërkesat e përgjithshme rreth FSF-së & GNU-së +dërgojini te <a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. Ka +gjithashtu <a href="/contact/">mënyra të tjera për t’u lidhur me</a> +FSF-në. Njoftimet për lidhje të dëmtuara dhe ndreqje apo këshilla të tjera +mund të dërgohen te <a +href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> + +<p> +<!-- TRANSLATORS: Ignore the original text in this paragraph, + replace it with the translation of these two: + + We work hard and do our best to provide accurate, good quality + translations. However, we are not exempt from imperfection. + Please send your comments and general suggestions in this regard + to <a href="mailto:web-translators@gnu.org"> + + <web-translators@gnu.org></a>.</p> + + <p>For information on coordinating and submitting translations of + our web pages, see <a + href="/server/standards/README.translations.html">Translations + README</a>. --> +Përpiqemi fort dhe bëjmë sa mundemi për të ofruar përkthime me cilësi të +mirë dhe të përpikta. Megjithatë, nuk jemi të përjashtuar nga +papërsosmëritë. Ju lutemi, komentet dhe këshillat e përgjithshme lidhur me +këtë dërgojini te <a +href="mailto:web-translators@gnu.org"><web-translators@gnu.org></a>.</p><p>Për +të dhëna mbi bashkërendimin dhe parashtrimin e përkthimeve të faqeve tona +web, shihni <a href="/server/standards/README.translations.html">README për +përkthimet</a>.</p> +</div> + +<!-- Regarding copyright, in general, standalone pages (as opposed to + files generated as part of manuals) on the GNU web server should + be under CC BY-ND 4.0. Please do NOT change or remove this + without talking with the webmasters or licensing team first. + Please make sure the copyright date is consistent with the + document. For web pages, it is ok to list just the latest year the + document was modified, or published. + + If you wish to list earlier years, that is ok too. + Either "2001, 2002, 2003" or "2001-2003" are ok for specifying + years, as long as each year in the range is in fact a copyrightable + year, i.e., a year in which the document was published (including + being publicly visible on the web or in a revision control system). + + There is more detail about copyright years in the GNU Maintainers + Information document, www.gnu.org/prep/maintain. --> +<p>Të drejta kopjimi © 2003, 2007, 2013, 2014, 2020 Free Software +Foundation, Inc.</p> + +<p>Kjo faqe mund të përdoret sipas një licence <a rel="license" +href="http://creativecommons.org/licenses/by-nd/4.0/">Creative Commons +Attribution-NoDerivatives 4.0 International License</a>.</p> + +<!--#include virtual="/server/bottom-notes.sq.html" --> +<div class="translators-credits"> + +<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> + </div> + +<p class="unprintable"><!-- timestamp start --> +U përditësua më: + +$Date: 2020/10/02 10:30:07 $ + +<!-- timestamp end --> +</p> +</div> +</div> +</body> +</html> |