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