javascript-trap.html (20651B)
1 <!--#set var="PO_FILE" 2 value='<a href="/philosophy/po/javascript-trap.fa.po"> 3 https://www.gnu.org/philosophy/po/javascript-trap.fa.po</a>' 4 --><!--#set var="ORIGINAL_FILE" value="/philosophy/javascript-trap.html" 5 --><!--#set var="DIFF_FILE" value="" 6 --><!--#set var="OUTDATED_SINCE" value="2011-09-03" --> 7 <!--#set var="ENGLISH_PAGE" value="/philosophy/javascript-trap.en.html" --> 8 9 <!--#include virtual="/server/header.fa.html" --> 10 <!-- Parent-Version: 1.77 --> 11 12 <!-- This file is automatically generated by GNUnited Nations! --> 13 <title>دام جاوااسکریپت</title> 14 15 <!--#include virtual="/philosophy/po/javascript-trap.translist" --> 16 <!--#include virtual="/server/banner.fa.html" --> 17 <!--#include virtual="/server/outdated.fa.html" --> 18 <h2>دام جاوااسکریپت</h2> 19 20 <p>نوشتهٔ <a href="http://www.stallman.org/">ریچارد استالمن</a></p> 21 22 <p><strong>ممکن است بدون اینکه متوجه باشید هر روز برنامههای غیرآزاد را به 23 واسطهٔ مرورگر وب خود بر روی کامپیوترتان اجرا کنید.</strong></p> 24 25 <p>در جامعهٔ نرمافزار آزاد این عقیده که نرمافزارهای غیر آزاد با کاربران خود 26 بد رفتاری میکنند کاملا شناخته شده است. تعدادی از ما ترجیح میدهیم که به طور 27 کامل از نصب نرمافزارهای غیرآزاد بر روی کامپیوتر خود امتناع ورزیم، و تعداد 28 بسیاری آزاد نبودن را اعتصابی بر علیه برنامه میدانند. بسیاری از کاربران 29 میدانند که این موضوع دربارهٔ افزونههایی (plugins) که مرورگر برای نصب فراهم 30 میآورد نیز صدق میکند، چرا که آنها نیز میتوانند آزاد یا غیرآزاد باشند.</p> 31 32 <p>اما مرورگرها برنامههای غیرآزاد دیگری را نیز اجرا میکنند که حتی دربارهٔ 33 اجرا کردن آن از شما پرسش نیز نمیکنند یا حتی به شما دربارهٔ وجودشان چیزی 34 نمیگویند—برنامههایی که صفحات وب درون خود دارند و یا به آنها پیوند 35 خوردهاند. این برنامهها معمولا با جاوااسکریپت نوشته میشوند، هر چند که 36 زبانهای دیگر نیز مورد استفاده قرار میگیرند.</p> 37 38 <p>جاوااسکریپت (که به طور رسمی ECMAscript نامیده میشود، اما کمتر کسی از این 39 نام استفاده میکند) برای اولین بار برای تجملاتی کوچک در صفحات وب استفاده شد، 40 همانند قابلیتهای نمایشی و جلوههای زیبا اما غیر ضروریِ پیوندها و 41 فهرستها. قابل قبول بود که به جای اینکه آنها را یک نرمافزار به حساب آوریم، 42 یک تعمیم بر HTML بدانیم؛ آنها موضوع چندان مهمی به حساب نمیآمدند.</p> 43 44 <p>تعدادی از سایتها هنوز از جاوااسکریپت به همان صورت استفاده میکنند، اما 45 بعضیها از جاوااسکریپت برای برنامههای مهمی که کارهای بزرگ انجام میدهند 46 استفاده میکنند. به عنوان مثال، Google Docs یک برنامهٔ جاوااسکریپت را بر روی 47 کامپیوتر شما بارگزاری میکند که کمتر از نصف مگابایت حجم دارد، در قالبی که ما 48 Obfuscript مینامیم چرا که هیچ توضیح و یا خط خالیای درون خود ندارد، و نام 49 مِتُدهای آن تنها یک حرف طول دارد. کد منبع یک برنامه، در قالبی است که بتوان 50 آن را ویرایش کرد؛ این کدِ فشرده، کد منبع نیست، و کد منبع حقیقیِ این برنامه 51 در دسترس کاربر قرار ندارد.</p> 52 53 <p>معمولا مرورگرها هنگام بارگزاری برنامههای جاوااسکریپت اطلاعی نمیدهند. اکثر 54 مرورگرها روشی برای غیر فعال کردن جاوااسکریپت به طور کامل دارند، اما هیچکدام 55 از آنها برنامههای جاوااسکریپت که کوچک اما با اهمیت، و غیر آزاد هستند را 56 نمیتوانند بررسی کنند. حتی اگر شما از این موضوع با خبر باشید، پیدا کردن و 57 جلوگیری از این برنامهها پر دردسر خواهد بود. هر چند، حتی در جامعهٔ نرمافزار 58 آزاد نیز اکثر کابران از این موضوع مطلع نیستند؛ سکوتِ مرورگر موضوع را پنهان 59 نگاه میدارد.</p> 60 61 <p>میتوان یک برنامهٔ جاوااسکریپت را با انتشار کد منبع آن مطابق اجازهنامهٔ 62 نرمافزار آزاد، به صورت یک نرمافزار آزاد منتشر ساخت. اما حتی اگر کد منبع 63 برنامه در دسترس باشد، راه سادهای برای به اجرا درآوردن نسخهٔ تغییر یافته به 64 جای نسخهٔ اصلی وجود ندارد. مرورگرهای آزاد کنونی تسهیلاتی را برای اجرای نسخهٔ 65 تغییر یافته به جای آنچه درون صفحه وجود دارد، در اختیار قرار نمیدهند. تاثیر 66 آن با tivoization قابل مقایسه است، اگر چه غلبه بر آن چندان هم مشکل نیست.</p> 67 68 <p>جاوااسکریپت تنها زبانی نیست که وبسایتها برای ارسال برنامه برای کاربران 69 استفاده میکنند. Flash قابلیت برنامهنویسی را به وسیلهٔ نوعی جاوااسکریپتِ 70 توسعهیافته فراهم میآورد. برای ارائهٔ توصیههایی مناسب در این زمینه احتیاج 71 به بررسی Flash داریم. به نظر میرسد که Silverlight نیز مشکلی همانند Flash 72 ایجاد میکند، حتی بدتر، چرا که مایکروسافت از آن به عنوان سکویی برای codecهای 73 غیرآزاد خود استفاده میکند. یک جایگزین آزاد برای Silverlight موضوع را برای 74 جهان آزاد حل نمیکند مگر اینکه جایگزینی آزاد برای این codecها داشته باشد.</p> 75 76 <p>جاوااپلت نیز درون مرورگر اجرا میشود و مورد مشابهی را مطرح میکند. به طور 77 کلی، هر نوع سیستمِ اپلت چنین مشکلی را دارا است. داشتن یک محیط آزاد برای 78 اجرای اپلت، ما را تنها تا جایی پیش میبرد که بتوانیم با این مشکل روبرو شویم.</p> 79 80 <p>جنبشی قدرتمند به راه افتاده است که از وبسایتها تقاضا میکند تنها از طریق 81 فرمتها و پروتکلهای آزاد (بعضیها میگویند "باز") ارتباط بر قرار 82 کنند؛ فرمتها و پروتکلهایی که مستندات خود را منتشر ساختهاند و هر شخصی برای 83 پیادهسازی آنها آزاد است. با حضور برنامهها در صفحات وب، چنین ضوابطی ضروری، 84 اما ناکافی است. خود جاوااسکریپت، به عنوان یک فرمت، آزاد است، و استفاده از 85 جاوااسکریپت در وبسایتها لزوما بد نیست. هر چند، همانطور که پیش از این 86 دیدیم، لزوما خوب هم نیست. هنگامی که یک سایت برنامهای را برای کاربر ارسال 87 میکند، نوشته شدن برنامه با یک زبان واضح و مستندسازی شده به تنهایی کافی 88 نیست، خود برنامه نیز باید آزاد باشد. ”تنها برنامههای آزاد که برای 89 کاربران ارسال میشوند“ باید بخشی از ضابطهٔ رفتار صحیح برای وبسایتها 90 شوند.</p> 91 92 <p>بارگزاری و اجرای برنامههای غیر آزاد در سکوت یکی از چند موضوعی است که توسط 93 "برنامههای وب" مطرح شده است. واژهٔ "برنامههای وب" به 94 منظور حذف تفاوتهای اساسی میان برنامههایی که برای کاربر ارسال میشود و 95 برنامههایی که بر روی سرور در حال اجرا هستند، پدید آمده است. این واژه 96 میتواند به یک برنامهٔ اختصاصی که بر روی مرورگر کاربر اجرا میشود اشاره کند؛ 97 میتواند به نرمافزار اختصاصی سرور اشاره کند؛ میتواند به برنامهٔ اختصاصی 98 سمت کاربر و برنامهٔ اختصاصی سمت سرور که با یکدیگر همکاری میکنند اشاره 99 کند. برنامههای سمت کاربر و سمت سرور موضوعات اخلاقی مختلفی را مطرح میکنند، 100 حتی اگر آنها کاملا ترکیب شده و بتوان گفت که برنامهای واحد را تشکیل 101 دادهاند. این مقاله تنها بر روی نرمافزارهای سمت کاربر بحث میکند. موضوع 102 سرور به صورت جداگانهای مورد بحث قرار خواهد گرفت.</p> 103 104 <p>در عمل، چگونه میتوان با مشکلِ برنامههای جاوااسکریپتِ غیر آزاد بر روی 105 وبسایتها بر خورد کرد؟ یکی از روشها بدین قرار است.</p> 106 107 <p>ابتدا، به ضابطهای عملی برای برنامههای جاوااسکریپتِ کوچک اما نه بیاهمیت، 108 نیاز داریم. موضوع مهم آن است که ضابطهای طراحی کنیم که نتایج خوبی به دست 109 دهد، نه اینکه جواب صحیحی فراهم آورد.</p> 110 <p> 111 پیشنهاد ما این است که برنامهٔ جاوااسکریپتی را با اهمیت بنامیم که اسکریپتِ 112 دیگری را بارگزاری کند و یا یک درخواست AJAX را مطرح کند.</p> 113 114 <p>در پایان مقاله قراردادی را پیشنهاد میکنیم که مطابق آن یک برنامهٔ 115 جاوااسکریپت در یک صفحهٔ وب بتواند شامل یک URL باشد که به مکان کد منبع برنامه 116 اشاره کند، و بتواند شامل اجازهنامهای نیز باشد که با استفاده از توضیحات 117 درون کد مشخص شود.</p> 118 119 <p>در پایان، لازم است که مرورگرهای وب به گونهای تغییر پیدا کنند که از آزادی 120 کاربران در مقابل صفحاتی با جاوااسکریپت حمایت کنند. پیش از هر چیز، مرورگرها 121 باید قادر باشند که در عوض اجرا کردن برنامههای جاوااسکریپتِ غیر آزاد و نه 122 بیاهمیت، به کاربران در موردشان اخطار دهند. شاید بتوان <a 123 href="https://addons.mozilla.org/en-US/firefox/addon/722">NoScript</a> را 124 برای این منظور تغییر داد.</p> 125 126 <p>همچنین کاربران مرورگر به روشی ساده نیاز دارند تا بتوانند کد جاوااسکریپت 127 جایگزینی را مشخص کنند تا <em>به جای</em> کد موجود در صفحه اجرا شود. (کد مشخص 128 شده باید یک جایگزین کامل، و یا نسخهای تغییر یافته و آزاد از کد جاوااسکریپتِ 129 موجود در آن صفحه باشد.) Greasemonkey تقریبا قادر به انجام این کار است، اما 130 نه کاملا، چرا که نمیتواند تضمین کند پیش از اجرا شدن کد جاوااسکریپتِ درون 131 صفحه، نسخهٔ تغییر یافته جایگزین شود. استفاده از یک پروکسیِ محلی این امکان را 132 میدهد، اما بیش از حد دردسر ساز است که به عنوان راه حل حقیقی ارائه شود. باید 133 راه حلی پدید آورد که قابل اعتماد و راحت باشد، همینطور سایتهایی که بتوانند 134 این تغییرات را به اشتراک بگذارند. پروژهٔ گنو تمایل دارد سایتهایی را معرفی 135 کند که تنها به تغییرات آزاد توجه دارند.</p> 136 137 <p>این قابلیتها باعث میشود که بتوان برنامههای جاوااسکریپت موجود در صفحات وب 138 را به صورت آزاد، و با روشی عملی و حقیقی منتشر کرد. جاوااسکریپت دیگر یک مانع 139 در برابر آزادی ما نخواهد بود.—نه بیش از آنچه امروزه جاوا و C هستند. ما 140 میتوانیم برنامههای غیر آزاد و نه بیاهمیت جاوااسکریپت را نپذیریم و یا حتی 141 آنها را جایگزین سازیم، درست همانطور که بستههای نرمافزاری غیر آزاد را که 142 موجود هستند جایگزین میسازیم. سپس مبارزهٔ ما برای اینکه وبسایتها کد 143 جاوااسکریپت خود را آزاد سازند، آغاز خواهد شد.</p> 144 145 <p><strong>از <a href="/people/people.html#mattlee">Matt Lee</a> و <a 146 href="http://ejohn.org">John Resig</a> به خاطر کمک در تعریف ضابطهٔ پیشنهادی 147 ما تشکر میکنم.</strong></p> 148 149 <h3 id="AppendixA">پیوست: قراردادی برای توزیع برنامههای جاوااسکریپت به صورت آزاد</h3> 150 151 <p>برای ارجاع به کد منبع، پیشنهاد میکنیم</p> 152 <pre dir="ltr"> 153 154 // @source: 155 156 </pre> 157 158 <p>و پس از آن URL مربوط به کد منبع آورده شود. 159 </p> 160 161 <p>برای نمایش دادن اجازهنامهٔ مربوط به کد جاوااسکریپت که در صفحه آمده است، 162 پیشنهاد میکنیم از اعلانی، میان دو یادداشت، همانند این فرم استفاده شود:</p> 163 <pre dir="ltr"> 164 <!--TRANSLATORS: Do not translate these license notices. The <pre> 165 166 elements have dir="ltr" explicitly set to cater for RTL languages.--> 167 168 @licstart The following is the entire license notice for the 169 JavaScript code in this page. 170 ... 171 @licend The above is the entire license notice 172 for the JavaScript code in this page. 173 174 </pre> 175 <p>و البته، تمام اینها باید داخل یک توضیح چند خطی قرار گیرند.</p> 176 177 <p><a href="/licenses/gpl.html">GNU GPL</a>، همانند بسیاری از اجازهنامههای 178 نرمافزار آزاد دیگر، توزیع یک نسخه از اجازهنامه را به همراه کد منبع و 179 باینری لازم میداند. اما GNU GPL طولانیتر از آن است که بتوان آن را بدون 180 مشکل در یک صفحهٔ وب به همراه کد جاوااسکریپت قرار داد. با استفاده از یک اعلان 181 همانند آنچه در زیر میآید به همراه کد خود، میتوانید این الزام را برآورده 182 کنید:</p> 183 <pre dir="ltr"> 184 185 Copyright (C) YYYY Developer 186 187 The JavaScript code in this page is free software: you can 188 redistribute it and/or modify it under the terms of the GNU 189 General Public License (GNU GPL) as published by the Free Software 190 Foundation, either version 3 of the License, or (at your option) 191 any later version. The code is distributed WITHOUT ANY WARRANTY; 192 without even the implied warranty of MERCHANTABILITY or FITNESS 193 FOR A PARTICULAR PURPOSE. See the GNU GPL for more details. 194 195 As additional permission under GNU GPL version 3 section 7, you 196 may distribute non-source (e.g., minimized or compacted) forms of 197 that code without the copy of the GNU GPL normally required by 198 section 4, provided you include this license notice and a URL 199 through which recipients can access the Corresponding Source. 200 201 </pre> 202 203 <div class="translators-notes"> 204 205 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.--> 206 </div> 207 </div> 208 209 <!-- for id="content", starts in the include above --> 210 <!--#include virtual="/server/footer.fa.html" --> 211 <div id="footer"> 212 <div class="unprintable"> 213 214 <p>لطفا سوالات و پرسشهای خود در رابطه با گنو و بنیاد نرمافزارهای آزاد را به 215 <a href="mailto:gnu@gnu.org"><gnu@gnu.org></a> ارسال کنید. همچنین <a 216 href="/contact/">راههای دیگری برای تماس</a> با بنیاد نرمافزارهای آزاد وجود 217 دارد. لطفا لینکهای خراب و یا مشکلات دیگر یا پیشنهادات خود را به <a 218 href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a> ارسال کنید.</p> 219 220 <p> 221 <!-- TRANSLATORS: Ignore the original text in this paragraph, 222 replace it with the translation of these two: 223 224 We work hard and do our best to provide accurate, good quality 225 translations. However, we are not exempt from imperfection. 226 Please send your comments and general suggestions in this regard 227 to <a href="mailto:web-translators@gnu.org"> 228 229 <web-translators@gnu.org></a>.</p> 230 231 <p>For information on coordinating and submitting translations of 232 our web pages, see <a 233 href="/server/standards/README.translations.html">Translations 234 README</a>. --> 235 ما سخت کار میکنیم و تمام تلاش خود را به کار میبریم تا ترجمههای دقیق و با 236 کیفیتی ارائه کنیم. اما با این حال، ما عاری از نقص نیستیم. لطفا نظرها و 237 پیشنهادهای خود در این رابطه را به <a 238 href="mailto:www-fa-general@gnu.org"><www-fa-general@gnu.org></a> 239 ارسال نمایید.</p> <p>لطفا برای اطلاعات بیشتر جهت هماهنگی و ارسال ترجمههای 240 این مقاله صفحهٔ <a href="/server/standards/README.translations.html">راهنمای 241 ترجمهها</a> را ببینید.</p> 242 </div> 243 244 <!-- Regarding copyright, in general, standalone pages (as opposed to 245 files generated as part of manuals) on the GNU web server should 246 be under CC BY-ND 3.0 US. Please do NOT change or remove this 247 without talking with the webmasters or licensing team first. 248 Please make sure the copyright date is consistent with the 249 document. For web pages, it is ok to list just the latest year the 250 document was modified, or published. 251 252 If you wish to list earlier years, that is ok too. 253 Either "2001, 2002, 2003" or "2001-2003" are ok for specifying 254 years, as long as each year in the range is in fact a copyrightable 255 year, i.e., a year in which the document was published (including 256 being publicly visible on the web or in a revision control system). 257 258 There is more detail about copyright years in the GNU Maintainers 259 Information document, www.gnu.org/prep/maintain. --> 260 <p><span dir="ltr">Copyright © 2009 Richard Stallman</span></p> 261 262 <p>این صفحه تحت مجوز <a rel="license" 263 href="http://creativecommons.org/licenses/by-nd/3.0/us/">Creative Commons 264 Attribution-NoDerivs 3.0 United States License</a> قرار دارد.</p> 265 266 <!--#include virtual="/server/bottom-notes.fa.html" --> 267 <div class="translators-credits"> 268 269 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> 270 </div> 271 272 <p class="unprintable"><!-- timestamp start --> 273 آخرین به روز رسانی: 274 275 $Date: 2016/11/18 07:32:45 $ 276 277 <!-- timestamp end --> 278 </p> 279 </div> 280 </div> 281 </body> 282 </html>