taler-merchant-demos

Python-based Frontends for the Demonstration Web site
Log | Files | Refs | Submodules | README | LICENSE

javascript-trap.html (18261B)


      1 <!--#set var="ENGLISH_PAGE" value="/philosophy/javascript-trap.en.html" -->
      2 
      3 <!--#include virtual="/server/header.sq.html" -->
      4 <!-- Parent-Version: 1.96 -->
      5 <!-- This page is derived from /server/standards/boilerplate.html -->
      6 <!--#set var="TAGS" value="essays licensing traps" -->
      7 <!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
      8 
      9 <!-- This file is automatically generated by GNUnited Nations! -->
     10 <title>Kurthi JavaScript - Projekti GNU - Free Software Foundation</title>
     11 
     12 <!--#include virtual="/philosophy/po/javascript-trap.translist" -->
     13 <!--#include virtual="/server/banner.sq.html" -->
     14 <!--#include virtual="/philosophy/ph-breadcrumb.sq.html" -->
     15 <!--GNUN: OUT-OF-DATE NOTICE-->
     16 <!--#include virtual="/server/top-addendum.sq.html" -->
     17 <div class="article reduced-width">
     18 <h2>Kurthi JavaScript</h2>
     19 
     20 <address class="byline">nga <a href="https://www.stallman.org/">Richard Stallman</a></address>
     21 
     22 <p><strong>Mund të jeni duke xhiruar programe jo të lirë në kompjuterin tuaj
     23 çdo ditë, pa e ditur - përmes shfletuesit tuaj.</strong></p>
     24 
     25 <!-- any links that used to point to the appendices should point to
     26      free-your-javascript.html instead.  -->
     27 <div class="announcement">
     28 <hr class="no-display" />
     29 <p>Webmasters: ka <a href="/software/librejs/free-your-javascript.html">disa
     30 rrugë</a> për të treguar licencën e programeve JavaScript në një sajt.</p>
     31 <hr class="no-display" />
     32 </div>
     33 
     34 <p>Ideja se <a href="/philosophy/free-software-even-more-important.html">
     35 cilido program jo i lirë keqtrajton përdoruesit e tij</a> është familjare
     36 për bashkësinë e software-it të lirë.  Disa nga ne e mbrojnë lirinë tonë
     37 duke hedhur poshtë krejt programet jo të lira në kompjuterat tanë.  Mjaft të
     38 tjerë e shohin të qenët jo të lirë si një goditje ndaj programit.</p>
     39 
     40 <p>Mjaft përdorues janë në dijeni se ky problem aplikohet te shtojcat që
     41 shfletuesi ofron të instalohet, ngaqë ato mund të jenë të lira ose jo të
     42 lira.  Por shfletuesi xhiron programe të tjera jo të lira, për të cilat nuk
     43 ju pyesin, ose madje nuk ua tregojnë - programe të cilat i përmbajnë ose te
     44 të cilat lidhen faqe web.  Këto programe në shumicën e rasteve janë të
     45 shkruar në JavaScript, por përdoren edhe gjuhë të tjera.</p>
     46 
     47 <p>JavaScript-i (i quajtur zyrtarisht ECMAScript, pro pak vetë e përdorin këtë
     48 emër)  dikur përdorej për fru-fru të vockla në faqe web, bie fjala, për
     49 elementë të hijshëm, por jothelbësorë, lëvizjeje dhe shfaqjeje.  Qe e
     50 pranueshme të konsideroheshin këto si zgjerime të thjeshta të gjuhës HTML,
     51 në vend se <em>software</em> i njëmendtë dhe të hidhej tej ajo punë.</p>
     52 
     53 <p>Disa sajte ende e përdorin JavaScript-in në këtë mënyrë, por shumë prej tyre
     54 e përdorin për programe të rëndësishme, që kryejnë punë të mëdha.  Për
     55 shembull, Google Docs provon të instalojë në shfletuesin tuaj një program
     56 JavaScript që është gjysmë megabajt i madh, në një format të ngjeshur që
     57 mund ta quanim Obfuscript.  Kjo formë e ngjeshur është krijuar nga kodi
     58 burim, duke fshirë hapësira ekstra që e bëjnë kodin të lexueshëm dhe
     59 shënimet shpjeguese, që e bëjnë të kuptueshëm, si dhe duke zëvendësuar te
     60 kodi çdo emër me kuptim me një emër arbitrar të shkurtër, që të mos mund të
     61 themi se ç’do të thotë.</p>
     62 
     63 <p>Pjesë e <a href="/philosophy/free-sw.html">kuptimit të software-it të
     64 lirë</a> është se përdoruesit kanë mundësi të hyjnë te kodi burim i
     65 programit (plani i tij).  Kodi burim i një programi do të thotë forma e
     66 parapëlqyer për programuesit për ta ndryshuar - përfshi hapësira të
     67 dobishme, shënime shpjeguese dhe emra të kuptimtë. Kodi i ngjeshur është një
     68 zëvendësim i gabuar, i padobishëm i kodit burim; kodi i vërtetë burim i
     69 këtyre programeve nuk mund të kihet nga përdoruesit, që përdoruesit të mund
     70 ta kuptojnë; ndaj programet nuk janë të lirë.</p>
     71 
     72 <p>Përveç të qenit jo të lirë, mjaft prej këtyre programeve janë
     73 <em>malware</em>, ngaqë <a
     74 href="https://github.com/w3c/fingerprinting-guidance/issues/8">përgjojnë
     75 përdoruesin</a>.  Edhe më të shpifur, disa sajte përdorin shërbime të cilat
     76 regjistrojnë <a
     77 href="https://freedom-to-tinker.com/2017/11/15/no-boundaries-exfiltration-of-personal-data-by-session-replay-scripts/">krejt
     78 veprimet e përdoruesit teksa shohin një faqe</a>.  Këto shërbime gjoja “i
     79 redaktojnë” regjistrimet, për të përjashtuar të dhëna rezervat që sajti
     80 s’duhet t’i marrë.  Por edhe nëse kjo bëhet si duhet, qëllimi i këtyre
     81 shërbimeve është t’u japin sajteve të tjera të dhëna personale që këta
     82 s’duhet t’i marrin.</p>
     83 
     84 <p>Zakonisht shfletuesit nuk ju thonë kur ngarkojnë programe JavaScript.  Disa
     85 shfletues kanë një mënyrë për të çaktivizuar krejtësisht JavaScript-in, por
     86 edhe nëse jeni i ndërgjegjshëm për këtë pikë, do t’ju duhej mundim i madh
     87 për të identifikuar programe jo të lirë, jo trivialë dhe t’i bllokoni.
     88 Megjithatë, madje edhe në bashkësinë e software-it të lirë, shumica e
     89 përdoruesve nuk e dinë këtë problem; heshtja e shfletuesve priret ta fshehë.</p>
     90 
     91 <p>Për të qenë të qartë, gjuha JavaScript në vetvete s’është më e mirë a më e
     92 keqe për lirinë e përdoruesit, se sa cilado gjuhë tjetër.  Është e mundur të
     93 hidhet në qarkullim një program JavaScript si <em>software</em> i lirë, duke
     94 dhënë kodin e tij burim nën një licencë software-i të lirë.  Nëse programi
     95 është “self-contained” - funksionimi dhe qëllimi i tij janë të pavarur nga
     96 faqja prej nga erdh - kjo është në rregull; mund ta kopjoni në një kartelë
     97 në makinën tuaj, ta ndryshoni dhe ta hapni atë kartelë me një shfletues, për
     98 ta xhiruar.  Madje është e mundur të paketohet për instalim mu si programet
     99 e tjerë të lirë dhe për ta përdorur me një urdhër shelli.  Këto programe
    100 s’përfaqësojnë problem special moral të ndryshëm nga ato të programeve C.</p>
    101 
    102 <p>Problemi i kurthit JavaScript del kur programi JavaScript vjen tok me një
    103 faqe që vizitoni përdoruesi.  Këto programe JavaScript janë shkruar për të
    104 funksionuar me një faqe apo sajt të caktuar dhe funksionimi i faqes apo
    105 sajtit varet prej tyre.</p>
    106 
    107 <p>Le të supozojmë se ju e kopjoni dhe ndryshoni kodin JavaScript të faqes.
    108 Mandej del një problem tjetër: edhe nëse mund të kihet burimi i programit,
    109 shfletuesit nuk ofrojnë ndonjë mënyrë për të xhiruar versionin e ndryshuar
    110 në vend të origjinalit, kur vizitohet faqja apo sajti.  Efekti është i
    111 krahasueshëm me tivoizimin, edhe pse, në parim, jo dhe aq i zorshëm për t’u
    112 tejkaluar.</p>
    113 
    114 <p>JavaScript-i s’është gjuha e vetme që sajtet përdorin për programe dërguar
    115 përdoruesit.  Flash-i mbulonte programim përmes një varianti të zgjeruar të
    116 JavaScript-it, por kjo i takon të kaluarës.  Silverlight duket se krijon një
    117 problem të ngjashëm me Flash-i, vetëm se më keq, ngaqë Microsoft-i e përdor
    118 si platformë për kodekë jo të lirë.  Një zëvendësim i lirë për
    119 Silverlight-in nuk bën punë për botën e programeve të lira, veç në ardhtë me
    120 kodekë zëvendësimi të lirë.</p>
    121 
    122 <p>Aplikacionthet Java xhirojnë gjithashtu në shfletues dhe nxjerrin probleme
    123 të ngjashme.  Në përgjithësi, ky lloj problemi shtrohet për çfarëdo sistemi
    124 aplikacionthesh.  Pasja e një mjedisi të lirë ekzekutimi vetëm se na shpie
    125 larg nga trajtimi i problemit.</p>
    126 
    127 <p>Teorikisht është e mundshme të programohet në HTML dhe CSS, por në praktikë
    128 kjo aftësi është e kufizuar dhe jo e leverdishme; thjesht për të arritur të
    129 bëjë diçka do punë mbresëlënëse.  Programe të tillë duhet të jenë të lira,
    130 por CSS-ja s’është problem serioz për lirinë e përdoruesi, më 2019-n.</p>
    131 
    132 <p>Është zhvilluar një lëvizje e fuqishme që u bën thirrje sajteve të
    133 komunikojnë vetëm përmes formatesh dhe protokollesh që janë të lirë (ndonjë
    134 thotë “të hapët”); që do të thotë, dokumentimi i të cilave është i botuar
    135 dhe të cilat gjithkush është i lirë t’i vërë në përdorim.  Por prania e
    136 programeve JavaScript në faqe web e bën të pamjaftueshëm këtë kriter.  Gjuha
    137 JavaScript në vetvete, si një format, është e lirë dhe përdorimi i
    138 JavaScript-it në një sajt s’është medoemos gjë e keqe.  Por, siç e kemi parë
    139 më sipër, mund të jetë e keqe - nëse programi JavaScript është jo i lirë.
    140 Kur sajti i transmeton një program përdoruesit, nuk mjafton që programi të
    141 jetë shkuar në një gjuhë të dokumentuar dhe jo të koklavitur; ai program
    142 duhet të jetë gjithashtu i lirë.  “I kalon përdoruesit vetëm programe të
    143 lira” duhet të bëhet pjesë e kriterit për një sajt etik.</p>
    144 
    145 <p>Ngarkimi dhe xhirimi heshtazi i programeve jo të lira është një nga disa
    146 problemet e lindura me “aplikacionet web”.  Termi “aplikacione web” qe
    147 konceptuar për të anashkaluar parjen e dallimit thelbësor mes software-i
    148 dhënë përdoruesit dhe software-i që xhiron në një shërbyes.  Mund t’i
    149 referohet një programi klient të specializuar që xhiron në një shfletues;
    150 mund t’i referohet një software-i të specializuar shërbyesi; mund t’i
    151 referohet një programi klient të specializuar që funksionon krah për krah me
    152 software-in e specializuar të shërbyesit.  Klienti dhe shërbyesi nxjerrin
    153 probleme të ndryshme etike, edhe nëse janë të integruar kaq ngushtë, saqë
    154 mund të thuhet se formojnë pjesë të një programi të vetëm.  Ky artikull
    155 trajton vetëm problemin e software-it më anë të klientit.  Problemin e
    156 shërbyesit e trajtojmë ndarazi prej tij.</p>
    157 
    158 <p>Nga ana praktike, si mund të trajtojmë problemin e programeve JavaScript jo
    159 trivialë, jo të lirë, në sajte? Hapi i parë është të shmanget xhirimi i tij.</p>
    160 
    161 <p>Ç’duam të themi me “jo trivial”? Është çështje që varet nga shkalla, pra
    162 është çështje e hartimit të një kriteri të thjeshtë që jep përfundime të
    163 mira, në vend se gjetje e përgjigjes së saktë.</p>
    164 <p>
    165 Kriteri ynë i tanishëm është të konsiderohet jo trivial një program
    166 JavaScript, nëse plotësohet cilido prej këtyre kushteve:</p>
    167 
    168 <ul>
    169   <li>i referohen si një programth i jashtëm (nga një faqe tjetër).</li>
    170 
    171   <li>deklaron një varg më të gjatë se 50 elementë.</li>
    172 
    173   <li>përkufizon një njësi të emërtuar (funksion ose metodë) që kryen thirrje ndaj
    174 çfarëdo gjëje tjetër nga një primitiv.</li>
    175 
    176   <li>përkufizon një njësi të emërtuar me më shumë se tre konstrukte kushtore dhe
    177 konstrukt qerthull.</li>
    178 
    179   <li>kod jashtë përkufizimesh të emërtuara thërret çfarëdo hiq primitivë dhe
    180 funksione të përkufizuar më sipër te faqja.</li>
    181 
    182   <li>kod jashtë përkufizimesh të emërtuara përmban më shumë se tre konstrukte
    183 kushtore dhe konstrukt qerthull, gjithsej.</li>
    184 
    185   <li>kryen thirrje ndaj <b>eval</b>.</li>
    186 
    187   <li>kryen thirrje Ajax.</li>
    188 
    189   <li>përdor shkrim kllapash për përdorim vetish objektesh dinamikë, që duket si
    190 <b><em>objekt</em>[<em>veti</em>]</b>.</li>
    191 
    192   <li>ndryshon DOM-in.</li>
    193   
    194   <li>përdor konstrukte dinamike JavaScript që janë të vështirë për t’u analizuar
    195 pa interpretuar programin, ose ngarkohet tok me programthe që përdorin
    196 konstrukte të tillë.  Në mënyrë specifike, duke përdorur çfarëdo konstrukti
    197 tjetër nga një varg literal me disa metoda (<b>Obj.write</b>,
    198 <b>Obj.createElement</b>, dhe të tjerë).</li>
    199 </ul>
    200 
    201 <p>Si e marrim vesh nëse kodi JavaScript është apo jo i lirë? Në një <a
    202 href="/licenses/javascript-labels.html">artikull më vete</a>, propozojmë një
    203 metodë me të cilën një program JavaScript jo trivial në një faqe web mund të
    204 deklarojë URL-në ku gjendet kodi burim dhe mund të deklarojë edhe licencën
    205 për të, duke përdorur komente të stilizuar.</p>
    206 
    207 <p>Së fundi, na duhet të ndryshojmë shfletues të lirë që të pikasin dhe
    208 bllokojnë JavaScript jo trivial dhe jo të lirë në faqe web.  Programi <a
    209 href="/software/librejs/">LibreJS</a> pikas JavaScript jo të lirë, jo
    210 trivial në faqe që vizitoni dhe e bllokon.  LibreJS-i përfshihet në IceCat
    211 dhe mund të kihet si shtesë për Firefox.</p>
    212 
    213 <p>Përdoruesit e shfletuesve kanë gjithashtu nevojë për një mjet të
    214 përshtatshëm për të specifikuar kod JavaScript për t’u përdorur <em>në
    215 vend</em> të JavaScript-it në një faqe të dhënë.  (Kodi i dhënë mund të jetë
    216 zëvendësim tërësor, ose një version i ndryshuar i programit të lirë
    217 JavaScript në atë faqe.)  Greasemonkey është afër të qenit i aftë për ta
    218 bërë këtë, por jo dhe aq, ngaqë nuk garanton të ndryshojë kodin JavaScript
    219 në një faqe, përpara se programi fillon të ekzekutohet.  Përdorimi i një
    220 ndërmjetësi vendor bën punë, por është shumë i papërshtatshëm tani për të
    221 qenë një zgjidhje reale.  Na duhet të ndërtojmë një zgjidhje që është e
    222 qëndrueshme dhe me leverdi, si dhe sajte për të ndarë me të tjerët
    223 ndryshimet.  Projekti GNU do të donte të rekomandonte sajte që u
    224 përkushtohen vetëm ndryshimeve të lira.</p>
    225 
    226 <p>Këto veçori do t’i bëjnë të mundur një programi JavaScript të përfshirë në
    227 një faqe web të jetë i lirë në një kuptim real dhe praktik.  JavaScript-i
    228 s’do të jetë më një pengesë e veçantë drejt lirisë tonë - jo më tepër se sa
    229 janë C-ja dhe Java.  Do të jemi në gjendje të hedhim poshtë dhe madje të
    230 zëvendësojmë programe të lirë jo trivialë JavaScript, ashtu siç hedhim
    231 poshtë dhe zëvendësojmë paketa jo të lira që ofrohem për instalim në rrugën
    232 e zakonshme.  Mandej mund të fillojë fushata jonë që sajte të çlirojnë
    233 JavaScript-in e tyre.</p>
    234 
    235 <p>Ndërkohë, ka një rast kur është e pranueshme të xhirohet një program
    236 JavaScript jo i lirë: për të dërguar një ankesë te operatorët e sajtit për
    237 t’u thënë se duhet të bëjnë të lirë ose ta heqin fare kodin JavaScript.  Ju
    238 lutemi, mos ngurroni ta aktivizoni përkohësisht JavaScript-in për të bërë
    239 këtë - por mos harroni ta çaktivizoni më pas.</p>
    240 
    241 <!-- any links that used to point to the appendices should point to
    242      free-your-javascript.html instead.  -->
    243 <div class="announcement">
    244 <hr class="no-display" />
    245 <p>Webmasters: ka <a href="/software/librejs/free-your-javascript.html">disa
    246 rrugë</a> për të treguar licencën e programeve JavaScript në një sajt.</p>
    247 <hr class="no-display" />
    248 </div>
    249 
    250 <p><strong>Falënderime:</strong> Falënderoj <a
    251 href="/people/people.html#mattlee">Matt Lee-në</a> dhe <a
    252 href="http://ejohn.org">John Resig-un</a> për ndihmën e tyre në përkufizimin
    253 e kriterit tonë të propozuar, si dhe David Parunakian-in që më tërhoqi
    254 vëmendjen te problemi.</p>
    255 </div>
    256 
    257 <div class="translators-notes">
    258 
    259 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
    260  </div>
    261 </div>
    262 
    263 <!-- for id="content", starts in the include above -->
    264 <!--#include virtual="/server/footer.sq.html" -->
    265 <div id="footer" role="contentinfo">
    266 <div class="unprintable">
    267 
    268 <p>Ju lutemi, pyetjet dhe kërkesat e përgjithshme rreth FSF-së &amp; GNU-së
    269 dërgojini te <a href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>.  Ka
    270 gjithashtu <a href="/contact/">mënyra të tjera për t’u lidhur me</a>
    271 FSF-në.  Njoftimet për lidhje të dëmtuara dhe ndreqje apo këshilla të tjera
    272 mund të dërgohen te <a
    273 href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
    274 
    275 <p>
    276 <!-- TRANSLATORS: Ignore the original text in this paragraph,
    277         replace it with the translation of these two:
    278 
    279         We work hard and do our best to provide accurate, good quality
    280         translations.  However, we are not exempt from imperfection.
    281         Please send your comments and general suggestions in this regard
    282         to <a href="mailto:web-translators@gnu.org">
    283 
    284         &lt;web-translators@gnu.org&gt;</a>.</p>
    285 
    286         <p>For information on coordinating and contributing translations of
    287         our web pages, see <a
    288         href="/server/standards/README.translations.html">Translations
    289         README</a>. -->
    290 Përpiqemi fort dhe bëjmë sa mundemi për të ofruar përkthime me cilësi të
    291 mirë dhe të përpikta.  Megjithatë, nuk jemi të përjashtuar nga
    292 papërsosmëritë. Ju lutemi, komentet dhe këshillat e përgjithshme lidhur me
    293 këtë dërgojini te <a
    294 href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>.</p><p>Për
    295 të dhëna mbi bashkërendimin dhe parashtrimin e përkthimeve të faqeve tona
    296 web, shihni <a href="/server/standards/README.translations.html">README për
    297 përkthimet</a>.</p>
    298 </div>
    299 
    300 <!-- Regarding copyright, in general, standalone pages (as opposed to
    301      files generated as part of manuals) on the GNU web server should
    302      be under CC BY-ND 4.0.  Please do NOT change or remove this
    303      without talking with the webmasters or licensing team first.
    304      Please make sure the copyright date is consistent with the
    305      document.  For web pages, it is ok to list just the latest year the
    306      document was modified, or published.
    307      
    308      If you wish to list earlier years, that is ok too.
    309      Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
    310      years, as long as each year in the range is in fact a copyrightable
    311      year, i.e., a year in which the document was published (including
    312      being publicly visible on the web or in a revision control system).
    313      
    314      There is more detail about copyright years in the GNU Maintainers
    315      Information document, www.gnu.org/prep/maintain. -->
    316 <p>Të drejta kopjimi &copy; 2009-2013, 2016-2019, 2021 Richard Stallman</p>
    317 
    318 <p>Kjo faqe mund të përdoret sipas një licence <a rel="license"
    319 href="http://creativecommons.org/licenses/by-nd/4.0/">Creative Commons
    320 Attribution-NoDerivatives 4.0 International License</a>.</p>
    321 
    322 <!--#include virtual="/server/bottom-notes.sq.html" -->
    323 <div class="translators-credits">
    324 
    325 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
    326  </div>
    327 
    328 <p class="unprintable"><!-- timestamp start -->
    329 U përditësua më:
    330 
    331 $Date: 2021/12/01 23:30:29 $
    332 
    333 <!-- timestamp end -->
    334 </p>
    335 </div>
    336 </div>
    337 <!-- for class="inner", starts in the banner include -->
    338 </body>
    339 </html>