التعرف على احد وهو مستخدم مجهول

11

التعليق السابق

حل أخير للوصول لنقطة في هذا النقاش الطائل.

ولكن في النهاية هي علّة منطقيّة واذهب لأي شخص وسيخبرك بذلك - إن لم تكن تَثِق بتوثيقات مثل موزيلا طبعاً - ).

ولو علّة منقطية جميلة ومفيدة يا رب تكون كل العلل بذات الإفادة :)

مع أنَّه مستحيل أن يكون هناك تحسين عشوائي للمعلوميّة).

التصميم السيء أو العشوائي الأساسي يسبب مشاكل بعد تطور اللغة وكبر مجتمعها، ويتطلب ترقيعات لتلك الأخطاء العشوائية.

بالنسبة لجافاسكريبت تداركوا الموضوع من الأساس واضعين معيارية ES3 وفصل أجزاء الويب في W3C، مع توسيع مجتمع المبرجين وموثقي اللغة بدلا من معمل صغير ومجموعة مبرمجين أصبح هناك مئات المؤثرين على جافاسكريبت ومعيارية اليوم من مختلف بقاع العالم، بعكس لغات أخرى حتى ولو مفتوحة المصدر.

لهذا موكا ولايف اسكريبت وجافاسكريبت 1.* وكل النسخ الأشبه بالتجريبية، اعترضت على مقارنتها كأنها نسخة من جافاسكريبت؛ عندما تقول جافاسكريبت الآن أن بالتأكيد تقصد جافاسكريبت القياسية؛ وجافاسكريبت في ذلك الوقت لم تكن تملك معيار ثابت حتى، أغلب الشيفرات والـSyntax تغيّر.

نفس الشيء حدث مع C وطلوعها في الأول باسم K&R C، إلى بداية ANSI C وC99 وكذا..

دوغلاس كروكفورد لم يقل أن جافاسكريبت المتفرض أن تتعامل مع أكثر من 32 بت، هو يشرح الإشكال بالأمر ويتحدث عن سؤه (وهو ليس بالجيد)، لكن لا يمكن أن تكتب مقال لا تستخدم جافاسكريبت في شيء مفيد لأن بها أخطاء وضرب من الراندومليزشين :)

سامحني إن كانت جملة مزعجة، ولكن كلامك في التعليق السابق كان أغلبه تهكمي. مجدداً، حاول أن تسامحني إن كنت تظن أنني أحاول انتقاصك (حاول أن تتسامح قليلاً مع تهكماتي كما فعلت مع تهكماتك).

شعرت من طريقة رصك للكلمات أنك تتشاجر بالكلمات، لا مشكلة أن تقول هذا في سياق الكلام عادي بس كأسلوب انتقام وشجار وكذا مش هنحس أنه نقاش ذو فائدة :)

ويستطيع الناس استخدام:

typeof null == "null"

وجودها كعدمه، ولكنها مجرد علّة منطقيّة وإصلاحها لن يغيّر من سلوك النوع وإنَّما سيكسر التوافقيّة وحسب. يعني الخلاصة هل وجودها مفيد أو ضروري؟ لا هو مجرد سلوك شاذ ممكن أن يصحح ولكن سيكسر العديد من البرمجيات السابقة.

صديقي، حينها لن تكون ذو فائدة وundefined تقوم مكانها هكذا، هي كانت علّة منطقية في التصميم، لكن لها استخدامتها الآن، مثلا الدالة الفلانية ترجع خطأ بنوع object إذا كان الإرجاع null فلا خطأ، وأي ارجاع بنوع غير object يعني panic، هي كالمؤشرات غير المحددة.

ولها الكثير من الاستخدامات؛ لن يمكنك استخدام جافاسكريبت مع نود مثلا بدون التعامل معها، هي مفيدة جدًا حاليا.

إن كانت نسخ أوليّة لا تعني أنَّها غير موجودة ولا علاقة لها بالجافاسكربت الحاليّة. معيار الجافاسكربت انكتب عندما كانت موكا ومازال هو نفسه، مع العديد من التغييرات، ولكن الأصل هو الأصل، وكل برمجيّة تتغيّر عبر الزمن ولكن هذا لا يعني أنَّها انسلخت عن إصداراتها القديمة

عندما تقول جافاسكريبت ما يخطر ببال أي أحد هي جافاسكريبت القياسية التي تساوي ES3+ وربما W3C وعندما تقول لغة C أنت تقصد C القياسية أيضًا، AngularJS تختلف عن Angular كما أن جافاسكريبت تختلف عن جافاسكريبت 1.* وموكا وليف لهذا جافاسكريبت حرفيّا بدأت بـES3، جافاسكريبت كسلسلة لغات بدأت مع موكا نعم.

لكن جافاسكريبت تختلف عن موكا وكل تلك الأشياء.

وماذا عن التايبسكربت هل مازلت متيقن أنَّها تنفيذ وليست تعزيز؟! والأكشن سكربت، هل مازلت تظن أنَّها ليست تنفيذ؟!

أكشن سكريبت وتايب سكريبت تطوير ولم أقل مجرد تنفيذ الأثنين بنفس الفكرة لأن أدوبي وميكروسوفت يضعون تطويرات ومعاير فوق معيارية ES، أنت الذي تقول تايبسكريبت تنفيذ أو أكشن أحيانا.

مجدداً، في جميع تعليقاتك أنت تتجاهل الموضوع الأصلي (نسيته؟)، مع أني في كل تعليق أذكر به. إن لم يكن لديك شيء لتتحدث عنه، لِمَ تُكمِل النقاش؟!

نعم لم أنساه، معيارية ES وتطويرها أقوى من بايثون وتطويرها :) شاهد مجتمع Ecma TC39 وكيف تأخذ أي proposals الكثير من الوقت للوصول للمستخدم من تجربة ورأي المطورين وهل سيكسر الكود السابق أم لا.

قارن بين هذا وما يحدث في Python Software Foundation.

يا حبيبي التنفيذ يجب أن ينفِّذ المعيار ويطبقه، أكشن سكربت تفعل ذلك (يعني هي تنفيذ)، تايب سكربت لا تُنفّذ بل تحوَّل إلى كود لتنفيذ آخر، بالتالي هي مجرد تعزيز لإضافة مزايا وتحسين الصيغة الكتابيّة.

والله العظيم لا فرق :) اللغتان يضيوفون تحسينات على ES وتطوير للصيغة الكتابية، وهي لا تمنع مجمع TypeScript من التحويل Source to Source ولا تفترض طريقة التنفيذ ولا تفترض أن ES مفسرة أم مجمعة، وتبقى مجرد أشياء تتعلق بالتنفيذ، مثلًا C# وكل لغات .NET تحول إلى لغة CIL قبل التحويل للملف التنفيذي، مجمع Emscripten يحول C++ إلى asm.js تعمل على جافاسكريبت بنفس فكرة مجمع تايب سكريبت.

هل يوجد مشكلة من كتابة V8 لتايب اسكريبت؟ لا.

باقي النقاط تعبت بصراحة أنت تغير النقاش، ولا تريد أن تقتنع بأنك تجادل في أشياء بعيدة عن النقطة التي أقولها، مثلا أنا قلت لك جافاسكريبت القياسية أتت حرفيا بعد ES3 يعني تنفيذ لها يعني لا مشكلة في الخلاف الآن، جافاسكريبت القياسية مجرد تنفيذ ولا مشكلة من نسخ أكواد ولو حتى من مفسر بايثون في أشياء تتوافق بين اللغتين!

تايبسكربت ليست تنفيذ لتوصيات ECMAScript، يا رجل حتى الموقع الرسمي أقصى ما قاله أنَّ اللغة "inspired by es6". باختصار سَلْ أياً كان في المجتمع اللغة ولا أحد سيقول لك أنها تنفيذ (ادخل على قناة اللغة على IRC على الهاشتاغ typescipt## مثلاً وأسأل المجتمع هناك وإن وجدت أحد يقول لك أنَّها تنفيذ ستربح سيارة لامبورغيني).

دعني فقط أوضح لك لماذا أن النقاش معك "نفخ في قربة مخرومة".

TypeScipt: هي لغة Superset لـES وتأتي ببعض التطويرات على الـSyntax [1].

ActionScript: هي لغة Superset لـES وتأتي ببعض التطويرات على الـSyntax [2].

مما يعني أنه لا الفرق بين اللغتين في ناحية التنفيذ لمعيارية ES (Implementation)، واللغتين بنفس الفكرة تطوير لـES.

الفرق الوحيد أن TypeScript مجمعّعة (Compiled) وتعمل بفكرة (Source to source) مجمعها يحول الشيفرة للغة أخرى مثل C#.

ActionScript بخلاف ذلك مفسرّة (Interpreted).


الواضح أنك لا تجيد الترجمة (كظنك أن inspired by es6 ينفي أنها لغة!) أو تخلط بين المصطلحات العربية فتخلط بين التنفيذ (Implementation) والتفسير (Interpretation)، أيضًا مثل عدم معرفتك بمصطلح الترقيع. فربما سبب طول الجدال أنك لا تفهم معنى المصطلحات التي أكتب مع القليل من الـدوغماتية.

رمضان كريم على كل حال ودعنا نتوقف هنا.

بشأن لغة التايبسكربت، موقع اللغة وتوثيقها بصريح العبارة يقول أنَّها مجرد superset وعبارة "inspired by es6" أشاروا فيها إلى القرابة في البنيّة الكتابية وليس تنفيذهم لها. كما قلت لك، بصراحة ووضوح، ادخل إلى مجتمع اللغة وسَلْ أي مطوِّر منبعي عن إن كانت اللغة تنفيذ (مصطلح تنفيذ معياري ولا خلاف عليه، لذلك لا تدخل في دوامات فارغة). قبل أن تقوم بذلك لا تأتي لي برأيك الإنشائي وتقول لي أنَّه الحقيقة!

عفوًا أنت الذي تأتي برأي إنشائي، ما زال لا فرق بينها وبين ActionScript في التنفيذ؛ الأثنين متأثرين بمعيارية ES على فكرة والأثنين لديهم تعديلات هل كتبت بActionScript من قبل أصلًا؟ لا فرق غير أن هذه مجمعة وتلك مفسرة أنت قلت حرفيًا وإنشائيًا:

"يا حبيبي التنفيذ يجب أن ينفِّذ المعيار ويطبقه، أكشن سكربت تفعل ذلك (يعني هي تنفيذ)، تايب سكربت لا تُنفّذ بل تحوَّل إلى كود لتنفيذ آخر، بالتالي هي مجرد تعزيز لإضافة مزايا وتحسين الصيغة الكتابيّة."

وهذا غير صحيح بالمرة! ولا يوجد في معيار ES كلمة وحيدة أو سطر يمنع أن اللغة تكون مجمعّة، أعطني الدليل من توثيق ES ما يمنع ذلك البينة على من ادعى!

مصطلح "ترقيع" أنت الذي أخطأت به. أنت أحضرت معنىً من مُعجَم واحد (وكأنني لا أستطيع إحضار عشرة تعاريف غيره [1])

ترى كيف تتلاعب؟ بالطبع الكلمة لها معانٍ أخرى، لكننا حديثنا تقني فبالتأكيد نقصد المعنى التقني، ولا نخيط الملابس هنا!

فبالتأكيد بالمصطلح التقني لـPatch هذه العبارة صحيحة، تريد رؤية عكس ذلك؟ لغة Go.

ولن تكون صحيحة إذا تحدثنا عن ترقيع الملابس فبايثون كما تعلم ليست قطعة ملابس.

"بايثون ذات تصميم هش مُرقَع (عشوائي) وبايثون الإصدار الثالث جاء لترقيعها"

ترى كيف هذا الجدال دوغماتيّ


يبدو أنَّك تعرف عني الكثير، أو ربما تريد "الشخصنة". لا أعرف حقيقةً ولا يهمني رأيك. كان ليكون كلامك صحيحاً لولا أني أتولى ترجمة العديد من توثيقات اللغات والمشاريع (مثل MDN).

ربنا يزيد ويباركلك لكن رجاءً أن أتحدث عن ترجمتك للمصطلحات الخاطئة التي هنا وخلطك بين التفسير (Interpretation) والتفيذ!، فلا داعي لكل هذا.

حسنًا وActionSctipt الأخرى مجرد Superset مع مفسر، عمومًا أنا في حيرة الآن فلا أعرف ماذا تقصد بتنفيذ، أعطني مطور وحيد يقول ما تفصده عن ActionScript وسأجلب لك ما يقول مثله على TypeScript فيما عدا إذا كان المعنى هو التفسير (Interpretation) فحينها سيكون عليك الإعتذار (ولا مشكلة من هذا) على هذا الجدال الطويل الذي سببه خلطك للمصطلحات المعروف ترجمتها.

أنتظرك تحياتي ورمضان كريم مجددًا لا أتعارك معك، لا أتعارك معك :)

أخي الكلام واضح ولا داعي لتخبرني قصص جدتك الإنشائية غير الصحيحة وغير المنطقية والتي أنا غير مستعد لنقاشها أو الرجوع بالنقاش في الدائرة غير المنتهية، لديك دليل ضعه وإلا اعتذر كما قلتَ، سئمت من طريقتك في التهرب، مرة تجهل معنى ترقيع ومرة تجهل معنى تنفيذ، أعطني الدليل أو اعتذر أو توقف عن الرد.


حسنًا وActionSctipt الأخرى مجرد Superset مع مفسر، عمومًا أنا في حيرة الآن فلا أعرف ماذا تقصد بتنفيذ، أعطني مطور وحيد يقول ما تفصده عن ActionScript وسأجلب لك ما يقول مثله على TypeScript فيما عدا إذا كان المعنى هو التفسير (Interpretation) فحينها سيكون عليك الإعتذار (ولا مشكلة من هذا) على هذا الجدال الطويل الذي سببه خلطك للمصطلحات المعروف ترجمتها. وتوقفت معك عن النقاش عن بايثون لأنك تجهل أن الترقيع يعني تعديل الشيفرة لإضافة مزايا بدون أن ترد أو تجلب قاموس تقني يقول عكس ذلك.

همممم كلام انشائي أخر لا يثبت أي شيء ولست مستعد لتقبل أي كلام منك أشر إلى الدليل أو اصمت؛ فقط حتى تعلم أنك كنت تفتي وتقول ما لا تعلم عند قولك:

"تلك هي الطريقة المتبعة لتحديد ما إذا كان التحديث ترقيع أم تحسين، وليس النظر إلى الإصدار ورؤية عدد التحديثات وبعدها قول: "واووو لقد رقعوا اللغة! يا لها من عشوائيّة!".

فالترقيع هو تحسين حتى ولو اعتمدت مصطلع الترقيع في الملابس الذي جئت به!

وثم قولك:

يا حبيبي التنفيذ يجب أن ينفِّذ المعيار ويطبقه، أكشن سكربت تفعل ذلك (يعني هي تنفيذ)، تايب سكربت لا تُنفّذ بل تحوَّل إلى كود لتنفيذ آخر، بالتالي هي مجرد تعزيز لإضافة مزايا وتحسين الصيغة الكتابيّة.

ثم أزدت:

مطورين تايبسكربت يقولون نحن لسنا تنفيذ ابتعاداً عن الالتباس، ويقولون نحن مجرد superset، ويوفرون توصيف خاص لبنيتهم الكتابيّة.

فلو كانت تايبسكريبت غير تنفيذ لأنها Superset فـActionScript كذلك ليست تنفيذ، لكن الأخيرة تنفيذ والأولى لا، هذا آسف هريّ.

لن أرد على أي تعليقات في هذا الجدال، فأنت من نوعية الأشخاص الذي ربما يجادل على أن السماء برتقالية فقط لأنه قال ذلك.. أتمنى لك تعلم طريقة حوار ونقاش علمية فهذه الطريقة ستتعبك تحياتي.

وكأضافة:

أعضاء المجتمع يقولون أنَّها لا تملك runtime (أو أنَّها بمعنى أدق مُجمِع من نوع "مصدر إلى مصدر من نفس المستوى").

حبيبي أنت تحدث عن التنفيذ لمعيار ES ولم تذكر أن TypeScript ليست لديها Runtime خاص بها، وعمومًا أنت تنفي أن لغة C تطبق معيارية C فهي في النهاية ليست لديها Runtime.

من جديد لم تثبت أن الترقيع مخالف للتحسين برمجيًا وتقنيًا وأن تعديل الشيفرة لا يسمى ترقيعًا مع أني أثبت ذلك من مصدرين (أثاث النقاش) فقط أعطنا رابط لمعجم تقني يثبت كلامك وينهي الكلام، وتخلط بين التنفيذ للمعيارية ووجود مفسر وRuntime (فعلى منطقك مجمع GCC لا ينفذ معيارية C11 فهو مجرد مجمّع بدون runtime وC يبدو أنها لغة لا يوجد لها منفذ!)، فقط كل كلامك أضحى سبًا، -لكن عموما هذا ما يمكنك توقعه من شخص يضع صورة جوكر لصفحته.

وشكرًا على كل حال أنك تعرف أن كلامك يمكن أن يصيب من يقرأه بجلطة قلبية.

يا لك من جدلي! أنت تتكلم عن المعنى المعجمي وأنا أكلمك عن السياقي، ولكن هل ستَعقِل؟! كما قلت لك أنا سأجاريك وأوافقك على المعنى المعجمي، ولكن هل هذا كان قصدك السياقي؟! لا. لذلك تفضل واشرح لِمَ بايثون رُقِعَت.

أخي حينها يجب أن تسألني ماذا أقصد بمرقعة قبل الدخول في نقاش الله يعلم نهايته، والله والعظيم وأنا صائم لم أقصد إلا ترجمة Patch :) المفترض ألا تفترض معنى آخر، أم ماذا؟ لهذا بايثون مرقعة بعكس Go مثلا!

لا أعلم ماذا فهمت من runtime ولكني أقصدها حرفياً (تايبسكربت لا تُشغِّل تطبيقك وإنما تحوِّله فهي ليست لها runtime).

عندما تقول تنفيذ ومعيارية ES لا تلم أحدًا فهم إذا فهم كلامك عن التنفيذ للمعيارية نفسها (Implementation) وليس التنفيذ وقت التشغيل (Runtime)،

بينما GCC يملك runtime library (انظر [1]، إن كان هذا ما فهمته لأن كلامك مُبهَم).

لم أقصد هذا، عمليًا TypeScript تملك مكتبة تشغيل قياسية لبعض الأشياء غير المدعومة (عند التجميع إلى ES3 مثلاا)، أو كخاصية Bigint يطورون لها Runtime [1]. و Emscripten عندما يجمّع C وC++ إلى جافاسكريبت يجمّع مكتبة التشغيل.

قصدت بيئة التشغيل كالفلاش لـActionScript غير الموجود مثيلها في C.


لا تتوهم أن أحدًا يريد استفزازك -فقط أقول إلّي على لساني بصدق- ولا أتزمت ويمكنك الرجوع لنقاشاتي عندما أخطئ لا مشكلة أتعلم وأصحح معلوماتي لا يوجد شخص يعلم كل شيء.

شكرًا على حسناتك المجانية إن شاء الله لن تصيبني جلطة قلبية..

والله؟ يا سبحان الله، أتعلم أنَّ الصدف كثيراً ما تحدث؟ يعني مثلاً صدف أن تقول:

ترقيع اللغة يعني أن الشيفرة الخاصة بي لن تعمل لن تصبح متوافقة هذا بديهي، إلا لو لديك مشاكل في الفهم أو أنك أنت الذي تتغابى أو أنك تجهل معنى الترقيع .. وهذا شيء آخر!

ومن هذا الترقيع في البرمجيات وكسر التوافقية للتحسين بديهي أن يكون التصميم أو الأساس سيء أو هناك شيء يجب تحسينه وإلا يصبح عبثيًّا وبلا معنى وهذا أسوأ.

خساسة! أخلاقك بهذا المستوى! أترفع عن هذا المستوى فأنا صائم.

جيد إذاً يجب أن تكون قد صححت الكثير من المعلومات بحلول الآن.

نعم لن أناقش إلا من يستحق فيما بعد هذه معلومة تعلمتها.

لا اهتم لشخصك كنت كائناً من تكون.

تذكر أنت الذي فتحت نقاشًا على تعليقي الذي لم تفهمه لتجادل جدالاً بلا معنى!

مجرد ما قمت به تغيير كلامك لتظهر أنَّك محق منذ البداية.

لم أغير كلمة وحيدة، أرجع لكلامي أنت الذي فتحت النقاش على أن بايثون مرقعة وأنت لا تدري ماذا يعني الترقيع أصلا!

وها نحن نعود لنقطة الصفر. أنا أوضحت لك لِمَ كُسِرَت التوافقيّة، وما الذي أُضيف ولِمَ حدث ذلك، ولكنك إن كنت لا تريد أن تفهم فوالله (مجدداً) هذه مشكلتك!

ستقول لي الترقيعات لإضافة التحسينات وكذا وهذا كل مفهوم طبيعي أن يكون الترقيع للتحسين وإلا يسمى تخريبًا وليس ترقيعًا، ومعنى أنك ترقع أن هناك شيء سيء لأن ترقيع شيء جيد يسمى تخريبًا أيضًا!

، فالصوم ليس عن الطعام فقط، ولا أظن أنَّ السخريّة من جدّات الناس من شيم المؤمنين!

قصص جدتك في اللهجة التي أتحدث تعني قصصك القديمة وليست جدتك بالدم، ولا أظن أن انسان عاقل في هذا السياق سيتخيلها الجدة الحقيقية أدامها الله لك! وآسف على سوء الفهم في هذه النقطة.

​ ​​

أنا أسعد رغم الإختلاف الذي حصل والمشادات وكذا، كان نقاشًا ممتعا -لا كلام :) ومثل ما بيقول المثل ما محبة إلا بعد عداوة، رمضان كريم يا أخي وانتظرك في النقاش القادم :)

مازالت بايثون مرقعة :)

آه! يعني سبب طول النقاش عدم استياغتك لكلمة ترقيع بالمعنى العامي وتظن أنها كل إصدار تصبح اسوأ "مرئعة" الشتيمة العامية يعني -مع أني أقصد شهرتها بكسر التوافيقة كـAngular مثلًا وبعكس جافاسكريبت التي تثبت وتحاول إيجاد الحلول واستخدامات بدون كسر التوافقية.

من سنوات كالكثيرين نستخدم كلمة ترقيع المرادف لـPatch كحل افضل من كلمة باتش "لكن توبة من ذي النوبة" لن أستخدم إلا المصطلح الأنجليزي وسحقًا لمناصري التعريب :)

لم أكتب patched design كتبت "تصميم مرقع" والتي أقصد بها أن تصميمها رُقِعَ، أنت مترجم وتعرف أننا لا نلتزم بالترجمة حرفيًا وحلفتلك لك مليون مرّة أن ما أقصده أنها كسرت التوافقية :) وحتى أني أرد على تعليق يقول أن جافاسكريبت عشوائية وتتبع الترقيع إلى ES6 الضالة وهذا لا يحدث في جافاسكريبت.

لم ابتدع شيئًا أخي patch تعريبها رقعة، وبعد تعريب كلمة التعريب فنحن لا نلتزم بالاستخدام الأجنبي فنصرفها وتصبح رقعة ومرقعة وترقيع ومُرَقِع.

هي ككلمة مطوّر (Developer) إذن، التي في المعنى العام لدينا (في لهجتي على الأقل) لا تناسب كلمة Developer الأجنبية بمعناها، تعني مُعدل أو مغير بشيء من الأنقاص وعندما أقول يطور أو تطوير في جملة عربية لا تصلح بنفس الطريقة فالإنجليزية، مستخدمها ككلمة عربية يُدمر المعنى الأصلي، هي ربما بسبب اختلاف ثقافة الكلمة ولهذا التعريب عيبه لا تُحصل عنب الشام ولا بلح اليمن.

صديقي المفترض عند التعريب أن تستخدم الكلمة كعربية كما يحدث مع تطوير عندما نقول هذا الموقع من تطوير فلان فهذه الكلمة بهذه الاستخدام غير موجودة فالإنجليزية وغير صحيحة أصلا ( from developing) وطبيعي لأن اللغة العربية مختلفة والترجمة لا تكون حرفية، فاستخدمي لمرقعة كصفة جاء على الاستخدام العربي للكلمة المعربة من Patch.

تحياتي.

صديقي أنا لم أترجم هنا أنا استخدمت كلمة عربية موجودة ومن دراستي للغة العربية رقعة تصرف إلى مُرقعة فهي ليست كلمة جامدة وإلا لاستخدمت باتش لو أريد كلمة جامدة، الهدف من التعريب هو إدخال معان جديدة وليس الإقتصار على المعنى أو الاستخدام الأجنبي الذي لا يتوافق مع العربية والذي يجعل النص ميت وكأنه ترجمة بوت، وبحسب علمي لا يوجد معجم لغة عربية يعتمد مصطلح Patch الحوسبي فإن استشرت أحدهم عن أي مصطلح حوسبة لن تجده يعرف رأسه من رجليه.

يا صديقي المشكلة وما فيها أنَّ المصطلح "ترقيع" (أو التصريف الذي استخدمته "مُرقَّع" والذي هو اسم المفعول) لا يُعطي معنى كسر التوافقيّة، وإنَّما يعطي معنى "مُهترِئ"

ربما يعطي معنى كسر التوافقية للبعض، لكن بما أنه الكلمة لا تعتمد على معجم رسمي تظل مجرد أراء، وبما أنه تعلمنا أن اسم المفعول يدل على من وقع عليه الفعل، فهي ذات معنى صحيح أن هذه التصميم رُقِعَ وغير!

وعلتك كانت على استخدامها في فقرة عربية "تصميم مرقع" وليس Patched فالأخيرة صحيحة حاسوبية.

. ادخل إلى معجم مكتوب أو إلكتروني وانظر إلى معنى العام لـ "رقعة"

بالطبع أقصد معاجم رسمية عريقة مختصة باللغة كمجمع دمشق والقاهرة .. وليست مجرد اجتهادات شخصية أو مؤسسية غير رسمية.

أنا لم أتحدث معك أنت الذي دخلت النقاش وتعصبت على كلمة لم تفهمها ومازلت تصر على عدم فهمها مع أنها صحيحة.

الفعل Patched صحيح بنفس المعنى وترجمته الوحيدة مرقع ومستخدم بأكثر من 30 ألف مرة على stackoverflow [2]

أما جملة "تصميم مُرقع" فكما قلت لك الترجمة ليست حرفية.

لهذا الترجمة الصحيحة بهذا السياق هي patched specification الترجمة الصحيحة لتصميم مرقع واقرأ من موقع YAMl [1]

YAML latest patched specification (final YAML

فكما ترى الكلمة صحيحة ويظل كلامك مجرد رأي مادام لا يوجد معجم لغوي يعتمد الكلمة بتركيباتها.

أحترمك ولا أحاول الرد على الشخصنة نحن لسنا في حصة والمفترض أن تتقبل الرأي الآخر وخصوصًا إذا كنت أنا الذي أقدم الأدلة وأنت تأتي بكلام نظري.


  1. ابحث بجوجل: "patched" site:stackoverflow.com

أخي والله هذه مجادلة من أجل المجادلة صحيح ؟ قولها ولا تنكسف :) دعني أوضح لك YAML 1.2 كسرت توافقية الإصدار السابق 1.1 في كثير من الأشياء منها العبارات المنطقية مثلًا، فهم يقصدون الترقيع حرفيًّا!

والله يا أخي بصراحة أنت غير طبيعي في الجدال.

patched specification تترجم وتفهم كتصميم مُرقع أيضًا لأني أتحدث عن تصميم معيارية Python.

استخدمت ورأيت كلمة ترقيع ومرقع باستخدامات أتذكر كذا مرة في منتديات عربية وهنا في حسوب أظن، أنت فقط لديك مشكلة في فهمها.

من قاموس المعاني Patched = مُرَقع

فقط لأبين لك اني استخدمت الكلمة الصحيحة وأنك أسأت الفهم (استخدمت المعنى العامي في لهجتك وظننت أنها شتيمة -بكلامك).

سبحن الله مثال من حسوب نفسه!

، خصوصاً التي بنيت بشكل أفضل من PHP وليست عبارة عن ترقيع[1]

لو لدي الوقت لجلبت لك أمثلة أخرى ومعاجم غير تلك كل التي وضعتها فوق، أما أنت فكل ردك يكون على نوعية "لم تتوقف عن كلام لا علم لك فيه" و"أنت لا تعلم" و"أنت تتغابى" بدون وضع دليل وحيد يثبت كلامك، وكأنك رسول وكلامك مُنزل يجب أن نصدقه بدون دليل، اِرتق قليلًا يا أخي وتوقف عن الكبر.

تضيف أمور لتغطي على مشاكل أخرى

شكرًا على اعترافك بهذا المعنى هو نفس المعنى الحقيقي لكسر التوافقية بالإصلاحات والذي بالأساس أقصده كعيب في بايثون، تضيف أمور واصلاحات لتغطي على مشاكل أخرى فتكسر التوافقية..

أنا مثلت لك على المعنى والمعنى المشابه وإن ما كانت الكلمة تخدم نفس المعنى فتظل صحيحة، لكني لا أعرف لماذا تعند الآن، باتشد أو مرقعة تخدم نفس المعنى الذي قيل بالأنجليزية وبالعربية (اعترافك)، ربما يجب التوقف عن مغالطة رجل القش ومعاملتي كأني طفل لا أفهم ولا أعرف وكأن المعرفة نزلت لك حصرًا.

وخذ مثال آخر سبحان الله يصف بايثون 3 بأنها لغة مرقعة حرفيًا يعني ذات تصميم مرقع ذات معيارية مرقعة وأنا مطالب فقط بمعنى مرقعة، ليس كلامي اذهب وناقشه هذه المرة:

And if they do something to address lack of generics you will get patched language like Java 5 or transition nightmare like with Python 3.0 [1]

هذا لا يعني أنَّها تكسر التوافقيّة بل يعني أنَّ تصميمها بالي ويُرقَّع حرفياً (وأنا ناقشتك أنَّ بايثون ليست كذلك، أترى كيف تغيّر المعنى كل دقيقة؟).

أنت كل ما تناقشه أن ترقيع بايثون كان ميزة ومطلوب وهذا بديهي وإلا سيعتبر إفسادًا وليس ترقيعًا أي طفل سيفهم هذا.

فالإصلاح يعني أنه كان هناك مشكلة يجب إصلاحهها، وهو في نفس الوقت عيب لأنك ستضطر إلى كسر التوافقية ولا يحصل إلا لو كانت اللغة تصميمها سيء، لا أرى هذا صعب الفهم.

أنت تعتبر كلمة ترقيع شتيمة في حد ذاتها، وهي ليست كذلك، هي فقط تعكس أن اللغة معهودة الترقيع والتغيير.

وطلبت منك في تعليق وحيد يقول أن Patch عكس التحسين أو عكس تعليقك الذي دافعت فيه عن شيء لا تفهمه وتهربت كالعادة

وقلت لي أن "بالية التصميم ذات مشاكل صميميّة" هي في الدارجة عندك يعني هذه مشكلتك وليست مشكلتي أنا الذي أستخدم المصطلح التقني المتعارف عليه.

نأتي للقاوميس وأتمنى أن تكون لديك القدرة للقراءة، الفعل Patch:

قاموس عام: to repair or restore, especially in a hasty or makeshift way (usually followed by up)[1]

قاموس حسوبي: to solve a problem that a computer system or program has [2]

قاموس حسوبي: to correct or improve (a program) by adding a small set of instructions [3]

قاموس حسوبي: Improve or correct (a routine or program) by inserting a patch.

أنا أخبرتك مرتين أني سأجاريك واعتبر أنَّ تعبيرك صحيح (مع أنَّه ليس كذلك) لأريحك

على فكرة أنا الذي جاريتك لإريحك وقلت لك الرأي والرأي لكنك للآسف فيك من الكبر وارجع لنفس تعليقك وصفتني بالجهل بالأنجليزية وقبله بالجهل بالترجمة وقبله بالجهل بالعربية وقبله بالغباء و.... مع أنك لا تأتِ بشيء يثبت كلامك وكأن الله لم يعلم سواك.

وأحضر قاموساً واحداً يتكلم عن عبارتك أو توقف عن هذا الهراء!

والله أحضرته لكنك تهربت ارجع لتعليقي الذي قلت لك اِت بغيره أو اعتذر أو توقف عن الرد وأتيت لي بترقيع الملابس وعجبى وكأن تعليقي كان يتحدث عن نوع ملابس!

أي نوع من الغرور هو هذا؟!

"‫‪Patch‬‬ ‫‪Cord‬‬" (والتي تعني "سلك الربط")، لا يمكنك الإتيان لي بمعنى patch لوحده ومعنى cord لوحده وبعدها دمجهم مع بعضهم (ستحصل على شيء عندها مثل "سلك الترقيع" أو "حبل الترقيع")، هذه أبجديات ينبغي أن تكون على دراية بها.

أنا وصفت تصميم بايثون أنه مرقع! ولم أتِ بتركيب! وأنت كان كل كلامك كان على كلمة مُرقع لكن هربت ومسكت في هذا التركيب لما طلبت منك نفي أن الترقيع هو تحسين وتذكر طريقتك في معرفة ما هو مرقع وما هو لا، تذكر تعبيرك "واووو لقد رقعوا اللغة! يا لها من عشوائيّة!".

لكن جيد أننا وصلنا لهذه النقطة، يعني مشكلتك الآن مع تصميم مرقع وليس مُرقع نفسها، يعني أن تعترض على استخدام كلمة موجودة ومعناها معروف واصفًا بها كلمة كصفة وهذا التركيب غير مشهور، يعني مثلًا لو بيت تصميمه غُير كذا مرة وعدل أثاثه للتحسين، ستعترض على وصفي "معماره مرقع" لأنه كما تعلم صعب أن تجد شخصًا يستخدمها بهذه الطريقة. حسنًا من قال هذه الأبجاديات ومن أين جئت بها؟ المفترض أن تأتي بكتاب لغة يقول هذا! ولا ترد إنشائيًا ولا تسب من جديد صدقني الشخصنة لن تؤثر بي.

وأحضرت لي مثال من تقنيّة YAML وأخبرتني أنَّ هذا التعبير العربي ترجمته من عبارة "patched specification" وقلت لي حرفياً:

ولكن ليست مشكلة، ليست أوّل مرّة يتغيّر كلامك.

لحظة وما الخطأ هنا! حتى أذكر أنك اعطيتني رابط للنسخة السابقة وحتى هذا فيه تغيير لو كنت تعرف عن YAML اقرأ الجزء هذا الذي يكسر التوافقية (الغامق هو التعديل بين الأثنين).

Escaped ASCII form feed (#xAxC ) character.

تغير المحرف لإصلاح خطأ يكسر التوافقية أم لا!

(مهترئة، تُضاف فيها تعديلات لإخفاء عيوب، إلخ)

لا يوجد معجم يقول أن الترقيع يعني أخفاء العيوب المعجم يقول إصلاح العيوب، أنا لست مجبر على سماع معنى عامي!

نعم هذه أبجديات. عندما تأتي بتعبير لا يمكنك أخذ ترجمة كل كلمة فيه ووضعها كما هي ، فإذا فعلت ستحصل عندها على شيء شبيه بترجمة آلية رديئة، وأحضرت لك مثال

تعبير تصميم مرقع واضح وبيّن (اللغة تصميمه رُقعَ) وتعرف ما أقصده ولا داعي للدرعمة قلت لك أعطني هذه البديهيات كلامك ليس مصدر!

أنت صح ارفع الآن دعوى قضائية على معجم أكسفورد يالهم من حمقى! كيف يكتبون هذا العبث!

A small piece of code inserted into a program to improve its functioning or to correct a fault.

وأنت عند المحامي لا تنس رفع دعوى قضائية على مطوري YAML يالهم من حمقى هم الأخريين لم يشيروا إلى كسر التوافقية بالخط العريض!

وارفع دعوى على عبدالغني أبوالعزم عندما قال في معجمه تَرْقيعٌ- [رقع]، (مصدر: رَقَّعَ)، "تُحَاوِلُ تَرْقِيعَ ثِيَابِهَا البَالِيَةِ": رَتْقَهَا، إِصْلَاحَهَا.

وعندما يسألوك دليلك جادلهم وقل لهم هذه بديهيات يا متعلمين يا بتوع المدارس!

كُتّاب توصيف YAML سيقولون معك حق، هذه نسخة معدلة هذه نسخة معدلة (انظر إلى تاريخ إصدار الإصدار 1.2) ومَنْ الذي لا يجيد القراءة الذي قال عكس ذلك؟

نعم سيخالفون ما كتبوه بالحرف مرقعة (Patched) وسيقولون نقسم لك معدلة (Modified) والح** ابن الح** الذي كتب هذا سنعدمه، فأنت لا تعطي احتمال 1% أن كلامك يحتمل الخطأ وستتعبهم.

موضوع مرقع منتهي عندي أتيت لك بالمعاجم والأمثلة وأنت تتفلسف فقط لتثبت أنك صحيح، وأحبب أن أكتب هذا الرد لأريك كيف تغير الحقائق مرقعة أصبحت معدلة وسبحان الله!

علمت لماذا مستوى ترجمة MDN متدنٍ.

وهل ذكرتك يا أخي؟ يكاد المريب أن يقول خذوني!

فقط عبرت عن رأي آخر خارج الموضوع بعدما وجدتك لا تريد الإعتراف بلا مجمع ولا كلام انجليزي ولا عربي، وتخترع كلام من عندك!

مثلا في هذه الحالة مكتبة شهيرة تستخدم سلوك سيء لتعريف دالة في نطاق توريث عمومي، جافاسكريبت تغير اسم دالة مسودة فقط لعدم كسر التوافقية، هذا من نواحٍ سيء نعم، لكن الفكرة أنهم لا يكسرون التوافقية ولا يرقعون إلا على الرقاب بعكس بايثون (ترقيع ليست شتيمة :) ) [1] الفكرة أن ما يهمني أن الكود الليجسي لا أغيره كل فترة وتظهر تحسينات مع الوقت للتماشي مع العيوب التصميمة كـNull التي أصبحت من مزايا جافاسكريبت

طبيعي أنه لا يوجد تصميم كامل مكمل، الكثير من لأشياء في لغات البرمجة غير منطقية بالأساس -مثلا معظم لغات البرمجة التي أعرف بما فيها بايثون لن تجمع رقمين عائمين بطريقة صحيحة 0.2 + 0.2 مش هتساوي 0.4.

لكن وصفها أنها ميزة (ما افهمه جيدة أم سيئة في الكتابة وليس تصميم اللغة) يرجع إلى المجتمع وفي تلك الحالة Null أصبحت تستخدم ككائن ناقص غير معرف (في هذا استخدامات كثيرة مثلًا لو ستسخدم NodeJS ستجدها تعتمد أولا على ارجاع Null في حالة ما كان الخطأ غير معرف -قبل عصر الـPromise- وفي كثير من الواجهات البرمجية متعارف على أن Null تعني هذه البيانات غير موجودة مع ابقاء النوع Object في كل تلك الحالات) فلو كانت سيئة أو يوسليس يعني كنا سنستخدم undefined في مواضعها.

حذف Null أو تحويلها كارثة ستدمر كل موقع ويب يستخدم جافاسكريبت بدون استثناء ولماذا ونحن لدينا undefined!

صدقني توبة لن أستخدم مصطلح عربي مجددًا!

بالنسبة لجزئيّة جمع 0.2 مع 0.2 فلم أفهمه حقيقةً، مخرجه 0.4 في مفسر بايثون أو في مُحث الجافاسكربت (إلا إن كنت تقصد ذلك مجازياً).

آسف قصدت الضرب (*) ضرب العديدين سيخرج 0.04000000000000001 تقريبًا في معظم لغات البرمجة.

بخصوص Null وTypeof لاحظ أنك تتحدث عن الجانب التصميم الذي لا خلاف فيه أنه بالأصل خطأ وعيب في التصميم لا مشكلة هنا وكلامك صحيح 100%.

ما أتحدث عنه أن مجتمع جافاسكريبت يستخدم Null بجانب undefined وأصبح يعتبرها ميزة مفيدة كـObject ناقصة مثل المقابلة NuN (التي تخص الأرقام) لكن للكائنات، شاهد استخدامتها في NodeJS حتى تفهم قصدي على أنهم يستخدومنها كما هي ويجرون بـTypeof null.

مثلًا الدالة x ترجع ناتج بنوع Object عندما تعمل بشكل صحيح وإذا كان المرجع null فلا خطأ موجود.

إذن كلامك لا يعارض كلامي ولا العكس بل أنت تتحدث عن جانب آخر.

مواصفة جافاسكريبت القادمة ستملك تعريفًا للأعداد الصحيحة الكبيرة (64 بت) بدون كسر طريقة عمل الأرقام القديمة، وبدون فاصلة عائمة:

V8 أعلن أن التنفيذ الخاص به أسرع من الخاص بـC#، يعني كود مؤيد سيعمل فقط مع وضع n قبل الرقم في الإزاحة:

 1n << 32

هذا ما أتحدث عنه بخصوص مجتمع جافاسكريبت واضافة المميزات بدون ترقيع الكود السابق.


تسلية

مجتمع للترفيه والتسلية. ناقش واستمتع بالألعاب، النكت، الميمز، والتسلية العامة. شارك لحظاتك المضحكة، ألعابك المفضلة، وتفاعل مع أعضاء آخرين يبحثون عن المتعة والمرح.

76.5 ألف متابع