Hussam.Alzahabi

لماذا مسمى جافا سكريبت نفس مسمى لغة جافا ؟؟ الجواب هنا

48 ردود في هذا الموضوع

نفس القصة تماماً مع ActionScript ، هي من نفس العائلة ، Ecmascript ، ونفس النمط تماماً ، و مع هذا يمكن أن تكتب بشكل صريح class بإستخدام كلمة محجوزة، لا توجد مشكلة .. مع أن key&value موجودة باللغتين .. ويبدو لي أنهما كلغتين قائمتان على هذا ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
لو فرضنا أننا نريد استبدال JS نهائياً ، فما أعرفه أن HTML5 و WebGL في الأخير هي عبارة عن مكتبات برمجية مكتوبة بلغة ++C/C ، ويتم إنشاء طبقة علوية بإستخدام JS ، فمثلاً WebGL ، في الأخير هي تعتمد على OpenGL التي هي عبارة عن imp يأتي من card graphics vendor ، مثل أنفيديا ، يعني أصلاً JS دورها هامشي ، إلى أي درجة هامشي ؟ لا أعرف ، لكن يظل هامشي ، ويمكن عمل imp لـ WebGl بأي لغة ، فالكود في الأصل ++C موجود .

قس على ذلك اي شيء آخر مثل Sockets ، هي كلها مكتبات مكتوبة بإستخدام ++C ، ويضعون فوقها شيء غبي يستطيع أن يتواصل مع JS .

طبعاً لم أرَ كود لكن تخمين ، وإذا كنت مخطئ صححوا لي :/ .

لو طبقنا هذه النظرة على لغات البرمجة لكنا لا زلنا نكتب البرامج بالاسمبلي ! الموضوع ليس بهذه الصورة , ولا يمكن النظر اصلا الى الموضوع بهذه الطريقة !

#Listing 7
//print.c
print(int i)
{
printf("%d\n",i);
}

//main.s
.globl main
main:
movl $123, %eax
pushl %eax
call print
addl $4, %esp
ret
http://linuxgazette.net/issue94/ramankutty.html

هل هذه يعني ان الاسمبلي هي افضل من سي لكتابة البرامج ؟ لا , بتاكيد لكل شيء مكانه !

تم تعديل بواسطه ahmad123
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

نفس القصة تماماً مع ActionScript ، هي من نفس العائلة ، Ecmascript ، ونفس النمط تماماً ، و مع هذا يمكن أن تكتب بشكل صريح class بإستخدام كلمة محجوزة، لا توجد مشكلة .. مع أن key&value موجودة باللغتين .. ويبدو لي أنهما كلغتين قائمتان على هذا ..

متفق معك, الClass مبدأ موجود في كل اللغات الغرضية التوجه, لكن في الJavascript تستخدم الClosures و Prototype عوضاً عنها, هذا لأن أصول اللغة مختلفة. لكن أنا ردي كان بالتحديد على مفهوم الinterface فهو غير موجود في جميع اللغات الDynamic تقريباً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

يا اخوان يجب التفريق بين scripting languages و programming languages يعني الطلب من javascript ان تمتلك language features الخاصة بجافا او سي بلص بلص يعد امر ساذج لان ذلك سيؤدي الى اضعاف اداء اللغة بشكل كبير فاللغة اصلا معدة لتكون لغة scripting وليست غير ذلك.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لازلت أريد أن أبحث في الموضوع عندما أتفرغ غداً ، خصوصاً رابط الأخ خالد + كلام الأخ أحمد عن HTML5 و علاقتها بجافاسكربت ، لكن :

يعني الطلب من javascript ان تمتلك language features الخاصة بجافا او سي بلص بلص يعد امر ساذج لان ذلك سيؤدي الى اضعاف اداء اللغة بشكل كبير فاللغة اصلا معدة لتكون لغة scripting وليست غير ذلك.

  • أولاً : هل يمكن أن أعرف كيف يعني تضعف الأداء ؟ من زين الأداء حتى يتم إضعافه ؟ ضع benchmark ، ودلائل واضحة أما مجرد التخمين فلا أستطيع أن أجعله يمر بسهولة :-/ .
  • ثانياً : ( بعيداً عن JS ) ، لا يعني لغة سكربت != OOP ( أحد خصائص Java أنها OOP ) ، توجد لغات سكربت تدعم OOP دعم شبه كامل ، مثل php و ActionScript ، يعني عندما يكون لديك لغة سكربت ، فيجوز أن تكون OOP بإجماع العلماء ..
  • ثالثاً : لا أحد يقول أننا نريد JS مثل Java ، من ناحية اللغة كلغة ومن ناحية VM .. الخ ، و لكن ما نريده هو شيء واحد تافه و بدائي ، مقروئية فقط !
  • رابعاً : لماذا Google طوّرت GWT ؟ هل لأن مبرمجيها أغبياء و لا يعرفون يتعاملون مع JS ؟ أريد جواب .
  • خامساً : من يحب JS و يعتقد أنها لغة المستقبل ، ليمضي أسبوعين في كتابة تطبيق ، مثل تطبيقات سطح المكتب المعروفة ، على سبيل المثال Paint ، بإستخدام Javascript فقط ( لا تستخدم jQuery ، ممنوع منعاً باتاً ) ، و بغرض التسهيل ، ادعم المتصفحات القياسية مثل Chrome و FF ، مع مراعاة استخدام أساليب برمجية جيدة .. الهدف من هذا ليس أن نعرف هل هذا ممكن أم لا ، فهذا شي مفروغ منه ، و لكن الهدف هو أن نشاهد العجينة النهائية التي ستظهر .
  • سادساً : أتركها إلى أن أكمل ما ذكرته في السطر الأول من هذا الرد ، لكن بشكل عام قضية أن جافاسكربت قصة ثانية و أسلوب ثاني و نمط مختلف ليست عذراً حتى لا تكون لغة واضحة ، والدليل ActionScript .

القضية مش قضية تحدي أو جدال ، و لكن هو شيء واضح ، وما أراه أنه مجرد اتباع لبعض الشركات ، فمثلاً ، عندما كانت MS تروج لـ SilverLight و استخدامها مع الدوت نت لتطبيقات الويب ، ظهر من يقول أنها هي المستقبل و أن Javascript دمية و ضعيفة ، و عندما دعمت MS لغة JS في IE9 و نظام تشغيلها الجديد، صارت JS هي المستقبل ..وهي الخيار الأفضل !

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أولاً : هل يمكن أن أعرف كيف يعني تضعف الأداء ؟ من زين الأداء حتى يتم إضعافه ؟ ضع benchmark ، ودلائل واضحة أما مجرد التخمين فلا أستطيع أن أجعله يمر بسهولة :-/ .

يا مشرف قسم الألعاب في المنتدى من المفروض انك تعلم أن oop يضعف الأداء في أي لغة وكلما كانت اللغة oop اكثر كلما زاد ادائها ضعفا ولا أريد أن اشرح لك لماذا ... فقط استخدم حبيبك جوجل وحاول تتعلم ... القضية حتى ليست خلافية.

وفقط من باب الفائدة اقرأ هذا الملف وهوا اول نتيجة بحث حول الموضوع ظهرت لي عند البحث على جوجل.

ثانياً : ( بعيداً عن JS ) ، لا يعني لغة سكربت != OOP ( أحد خصائص Java أنها OOP ) ، توجد لغات سكربت تدعم OOP دعم شبه كامل ، مثل php و ActionScript ، يعني عندما يكون لديك لغة سكربت ، فيجوز أن تكون OOP بإجماع العلماء ..

يا صباح الفل عليك ... اولا بالنسبة لـ php فمن المعروف للكبير وللرضيع في عالم البرمجة انك اذا اردت افضل اداء فيجب عليك استخدام procedural PHP وليس oop ... روح على حبيبك جوجل وابحث واتعلم.

ثانيا بالنسبة لـ ActionScript فيا صباح الفل عليك يا باشا فانت تقارن بين شيئين مختلفين ومقارنتك لهما دليل على انك مش فاهم ... على افتراض انك بتفهم انجليزي فأرجو منك أن تقرأ عن ActionScript من هنا لتتعلم انها compiled بينما javascript كما تعلم هي interpreted and run on-the-fly والفرق بينهما كبير وأرجوك استخدم جوجل وتعلم.

ثالثاً : لا أحد يقول أننا نريد JS مثل Java ، من ناحية اللغة كلغة ومن ناحية VM .. الخ ، و لكن ما نريده هو شيء واحد تافه و بدائي ، مقروئية فقط !

ما تجده أنت غير مقروء أجده أنا مقروء.

رابعاً : لماذا Google طوّرت GWT ؟ هل لأن مبرمجيها أغبياء و لا يعرفون يتعاملون مع JS ؟ أريد جواب .

يا سلام ولماذا Google طورت GO ؟؟؟ هل لان مبرمجيها أغبياء لا يعرفون التعامل مع C++ ؟؟؟ أريد جواب.

ما هذا المنطق ؟؟

خامساً : من يحب JS و يعتقد أنها لغة المستقبل ، ليمضي أسبوعين في كتابة تطبيق ، مثل تطبيقات سطح المكتب المعروفة ، على سبيل المثال Paint ، بإستخدام Javascript فقط ( لا تستخدم jQuery ، ممنوع منعاً باتاً ) ، و بغرض التسهيل ، ادعم المتصفحات القياسية مثل Chrome و FF ، مع مراعاة استخدام أساليب برمجية جيدة .. الهدف من هذا ليس أن نعرف هل هذا ممكن أم لا ، فهذا شي مفروغ منه ، و لكن الهدف هو أن نشاهد العجينة النهائية التي ستظهر .

في الماضي Javascript كان ينقصها developer tools لان ميكروسوفت لم تكن خلفها ... اما الان فكل شيء تغير وستظهر developer tools من ميكروسوفت لان وندوز ثمانية هنا.

سادساً : أتركها إلى أن أكمل ما ذكرته في السطر الأول من هذا الرد.

اتركها يا سيدي واتمنى ان تتاكد من معلوماتك قبل ان تشارك ... استخدم حبيبك جوجل.

واتمنى ان يستمر النقاش بدون حذف للردود بفعل اليد الخفية للمشرفين.

تم تعديل بواسطه عصام64
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لم يخطئ أحد عليك ،

اترك عنك التعليقات الجانبية السخيفة واحترم نفسك ،

يا مشرف قسم الألعاب في المنتدى من المفروض انك تعلم أن oop يضعف الأداء في أي لغة وكلما كانت اللغة oop اكثر كلما زاد ادائها ضعفا ولا أريد أن اشرح لك لماذا ... فقط استخدم حبيبك جوجل وحاول تتعلم ... القضية حتى ليست خلافية

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

عموماً بما أني قرأت هذا السطر ، أنا لن أبحث في جوجل ، هذه حيلة الضعيف عندما لا يجد مخرج يقول ابحث في جوجل ، أريدك أن تشرح لي بالتفصيل كيف أن oop سبب في البطئ ( بنفسك وبدون روابط خارجية أو اقتباسات ) ، ثم هل تريد أن تقول أنه لا توجد كلمة interface أو private في JS لأنها ستصبح بطيئة ، أبطأ من ++C ؟ الله يصلحك .

إضافة:

قرأت هذا السطر أيضاً ،

يا سلام ولماذا Google طورت GO ؟؟؟ هل لان مبرمجيها أغبياء لا يعرفون التعامل مع C++ ؟؟؟ أريد جواب.

سؤالك خطأ ، تقارن بين شيئين مختلفين ، المقارنة هي بين GWT التي تولّد JS و JS نفسها ، واضح ؟

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اترك عنك التعليقات الجانبية السخيفة واحترم نفسك ،

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

عموماً بما أني قرأت هذا السطر ، أنا لن أبحث في جوجل ، هذه حيلة الضعيف عندما لا يجد مخرج يقول ابحث في جوجل ، أريدك أن تشرح لي بالتفصيل كيف أن oop سبب في البطئ ( بنفسك وبدون روابط خارجية أو اقتباسات ) ، ثم هل تريد أن تقول أنه لا توجد كلمة interface أو private في JS لأنها ستصبح بطيئة ، أبطأ من ++C ؟ الله يصلحك .

الطفل الرضيع الذي مر ولو مرور الكرام على كورس برمجة في جامعة حتى لو في الصومال ( العزيزة على قلوبنا) يعلم ان oop ينتج عنه ضعف في الاداء وانه عبارة عن مساومة او مقايضة performace مع maintenance . بالنسبة للبحث عن جوجل فقد طلبت حظرتك benchmark ولذلك نصحتك بالبحث على جوجل لانك ستجد هناك بدل الواحد مليون واعطيتك ملف قم بتحميله واقرأه.

تم تعديل بواسطه عصام64
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اشرح لي بنفسك ، ليش تتهرب ، كيف OOP يسبب بطء ، إذا ما تعرف قل " لا أعرف ، سمعتهم يقولون كذا فقلته " ، أنا لا أعرف لماذا OOP تسبب بطء ؟ قد تسبب بطء إذا استخدمت dynamic polymorphism ، حسب معلوماتي المتواضعة ، و جافاسكربت أصلاً كلها على بعضها مش static ، كل شيء وقت التشغيل ..

بالمناسبة : يمكن ( كتابة و محاكاة ) OOP بإستخدام JS ، ، لكن الخلاف هو على السينتاكس السيء ، الرد كان أن JS لها نمط مختلف .. أرى كثير من المبرمجين يلجأون إلى مكتبة Prototype ( لا أعرف لماذا ) ، لكن يمكن لأنها تتيح لهم كتابة كائنات بسهولة أكثر ، class-based object ، كما هو وصفها في Wiki :

http://www.prototype...ass-inheritance

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

على العكس ما يطلبه الشمري رغم أني لا أوافقه الرأي, يزيد من إمكانية فرص الـ Optimization لدى JS Implementations لأن الأنواع ستصبح explicit و يمكن التحقق منها في كثير من الحالات. بينما في حالة الـ Prototype Inheritance كل "كائن" يجب أن يحمل معلومات عن الدوال. بينما في الحالة الكلاسيكية كما في Java و ++C على سبيل المثال معلومات الدوال لأي كائن من فئة معينة يتم استعلامها من الفئة و الكائن لا يحمل سوى متغيرات.

تم تعديل بواسطه Khaled.Alshaya
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جميل انتم تتناقشون وفى نقاشكم اخواني الكرام نقاشا فيه افادة

لماذا لا تحولون الاسلوب من اسلوب السخرية والاتهام

الى اسلوب الاخوة الاحباء وان تتكلموا فى نفس النقاط (سيكون الامر ممتعا واكثر اخلاقياsmile.gif)

تحياتي لكم اخوتي الكرام عصام وعبد الله الشمري

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اشرح لي بنفسك ، ليش تتهرب ، كيف OOP يسبب بطء ، إذا ما تعرف قل " لا أعرف ، سمعتهم يقولون كذا فقلته " ، أنا لا أعرف لماذا OOP تسبب بطء ؟ قد تسبب بطء إذا استخدمت dynamic polymorphism ، حسب معلوماتي المتواضعة ، و جافاسكربت أصلاً كلها على بعضها مش static ، كل شيء وقت التشغيل ..

السلام عليكم ورحمة الله وبركاته

لست متابع الموضوع بالكامل .... فقد كنت اقرا قراءة سريعة ووجدت هذا السؤال (لماذا OOP تسبب بطء ؟؟ )

واحببت ان اجيب عليه لتعم الفائدة باذن الله رب العالمين

فى البداية لابد من توضيح نقطة هامة جدا وهى ان البطء والسرعة امر نسبى يتعلق بالمقارنة

يعنى ال OOP بطيئة اذا كنت تقارنها بال Procedural

وسبب البطء هو تحويل الكثير من الامور الى العالمى الديناميكى (عالم ال Runtime)

بدلا من العالم الثابت (عالم ال Compiling)

الحاسب فى الاصل يستطيع تنفيذ مجموعة من التعليمات وهذه التعليمات تقسم لثلاثة اصناف

1 - تعليمات خاصة بالتعامل داخل المعالج CPU

2 - تعليمات خاصة بالتعامل مع الذاكرة Memory

3 - تعليمات خاصة بالتعامل مع وحدات الادخال والاخراج I/O

اذا كنت تبرمج بلغة الالة - او لغة قريبة منها مثل الاسمبلى

فان اى امر تكتبه يكون فى صورة شبه جاهز للتنفيذ المباشر

حيث يتكون اى امر من Operation Code + Data

وال Operation Code هنا هو رقم الامر حتى ينفذ

وال Data هى اى بيانات مطلوبة لتنفيذ هذا الامر

هذه البيانات Data قد تكون قيم Values وقد تكون عناوين Addresses

هذه العناوين قد تكون عنوان محدد فى ذاكرة الحاسب

وقد تكون عنوان نسبى من الذاكرة المخصصة للتطبيق الذى نقوم بعمله

لان البرنامج بالكامل لتنفيذه يكون داخل الذاكرة

فان الذاكرة الان تشتمل على (بيانات) بالاضافة الى (كود) يعمل على هذه البيانات بشكل مباشر (وغيرها من البيانات بشكل غير مباشر)

فى حالة ال Procedural Programming

فان مترجم اللغة اثناء ترجمة البرنامج يمكن ان يحدد العناوين الخاصة بكل اجراء فى الذاكرة

هذه العناوين ستكون عناوين نسبية للمكان الذى يوضع فيه التطبيق فى الذاكرة

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

كما ان المتغيرات الثابتة تحدد عناوينها ايضا وقت الترجمة

ويكون الذى يحدد بشكل ديناميكى فقط هى الذاكرة الديناميكية التى تحجز عند حاجة التطبيق لها

اى ان العناوين الديناميكية تستخدم هنا فقط فى حالة البيانات

وللدقة تستخدم مع الدوال ايضا ولكن الدوال الخارجية فى حالة استخدام مكتبات خارجية وقت التشغيل

فى حالة ال OOP

الامور التى تتعلق بال Objects تعلق حتى وقت التنفيذ

يعنى عندما تنشىء كائن فان جميع المعلومات (العناوين فى الذاكرة) تخصص وقت التشغيل

والكائن هنا يدمج بيانات او خصائص Properties والتى تحدد فى الكلاس عن طريق ال Attributes Section

بالاضافة الى دوال تعمل على هذه البيانات Methods

وانت حين تتعامل مع Object لديك الاحتمالات التالية

1 - Set Property

2 - Get Property

3 - Invoke method

اى اما تتعامل مع قيمة (تعدلها او تقراها) او تستدعى method

وتخيل الان السيناريو التالى

انك تريد ان تعدل على قيمة set property

هناك لديك اسم الكائن Object Name واسم الخاصية Property Name

اسم الكائن لابد ان يترجم الى عنوان فى الذاكرة (سيتم ذلك بشكل ديناميكى وقت التشغيل)

اسم الخاصية لابد ان يترجم الى عنوان فى الذاكرة المخصصة للكائن (سيتم ذلك بشكل ديناميكى وقت التشغيل)

اذن احتجنا للحصول على عنوانين بشكل ديناميكى - الاول عنوان الكائن والثانى عنون الخاصية

فى حين لو تم تمثيل الكائنات فى ال procedural على هيئة مصفوفات

وكانت المصفوفة static .... فسينتهى الموضوع وقت الترجمة

واذا كانت dynamic ... فستحتاج لعنوان المصفوفة فقط .... لان البديل عن اسم الكائن هنا هو ال index الذى قد تكتبه مباشرة او يكون فى متغير

اى ان استخدام ال OOP يضيف الكثير من العمليات لكى تتم وقت التشغيل وهذه العمليات معظمها عمليات بحث لايجاد العنوان الديناميكى

والله الموفق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم.

أولًا أريد أن أوضح أني لا أتحدث الآن كمؤيد و لا كمعارض للـOOP.

الرابط الذي وضعته أخي الكريم، حسب نظرتي السريعة عليه يستعمل PHP 4، و Zend Engine 1 (الخاص بـPHP 4) و مكتوب عام 2004، و من المعروف أن الاصدارات 3 و 4 من PHP، الـObject Orientation فيها امكانياته قليلة و دعمه غير كامل كذلك! و PHP 5 حسب المطورين للغة يحتوي على تعديلات جذرية في OOP (إن لم يكن بناءً جديدًا جذريًا ككل)، و الـOOP مدعوم بشكل كامل بدءً من PHP 5 كذلك.

فقط أردت التنويه على أن الرابط قديم نوعًا ما.. و أنه لعل الأمور مختلفة الآن!

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

في رأيي الشخصي كذلك، دعم أي شيء، و خصوصًا هنا الـProgramming Paradigms إما أن يكون كاملًا مقنعًا أساسيًا في اللغة، و إما فلا! فلا يمكننا أن نقارن (رغم تقارب اللغتين من نواح عديدة) بين OOP في لغة Ruby، و بين OOP في PHP!

و شكرًا.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لازلت أقرأ في المقال الذي نصح به الأخ خالد حول FP ، ( قراءة بتعمّق أو بطء في الاستيعاب لا أعرف :D ) , هناك نقاط حتى الآن :

  • المقال جميل و مؤثر خصوصاً عندما تحدث عن البداية الحقيقة لعصر الحاسب عبر النموذجين في 1930 ، و أيضاً بعد قراءته تذكرت Cpp 11 كبرت في عيني أكثر ، لغة فعلاً multi-paradigm ، و لكن هل كتابة التطبيق كامل بإستخدام FP عملي ؟ أرى FP صعبة ولست بحاجة لها في تطبيقات غير حساسة .
  • بخصوص JS ، هل هي Functional بمجرد أنها تدعم ** ( نسيت ماهي التسمية الصحيحة لـ ** لكن ممكن lambda function ؟ ) ؟ لا ! ،
  • أرى OOP الأفضل لكتابة التطبيقات و بنفس الوقت OOP بدون explicit keywords، ليس له معنى ،و كتابة كود OOP كما يحدث في JS ( لا يهمّني إن صار اسمه prototype-based objects ) أمر مزعج .

إضافة :

حذفت بعض أجزاء المشاركة ، الموضوع أخذ أكبر من حجمه :-) . ، نقرأ و نتعلم ونشوف .. و الله أعلم .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أرى OOP الأفضل لكتابة التطبيقات

اخى الحبيب

لاحظ نقطة مهمة جدا

الفرق بين ال FP وال OOP

ليس على مستوى How فقط

بل على مستوى ال What ايضا

ال FP تسهل امور مثل ال Debugging وال Unit testing

لكن الاخطر هو ال Concurrency وايضا امكانية تحديث النظام بدون توقفه

والجوهر يظهر فى ان القواعد الرياضية تطبق على الشفيرة المصدرية

مثل قواعد الجبر والاختصار ( تخيل اكواد تلاشى بعضها البعض ولا تنفذ ابدا لعدم الحاجة لتنفيذها)

لو على مستوى ال How (الطريق نحو الهدف) فان ال OOP افضل لاننا نتقنها اكثر

لكن لو دققت ستجد مفاهيم ال FP ابسط كثيرا ولكن تحتاج لتدريب عليها حتى تتعود عليها

لو على مستوى ال What نجاح ال FP ظاهر فى نوعية محددة من التطبيقات

وتبقى الحاجة لدراسة مقارنات عملية بين استخدام ال FP و ال OOP فى المجالات الاخرى

والله الموفق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

يجب التفريق بين scripting language و programming language وبين interpreted and run on-the-fly language وبين compiled languages ... لانه صراحة نقاش مع اغفال هكذا اساسيات (المفروض حتى سنة اولى كليه يعرفها) يجعل الحوار اهانه لمنتدى علمي معروف على شبكة الانترنت بحجم الفريق العربي.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
يجب التفريق بين scripting language و programming language وبين interpreted and run on-the-fly language وبين compiled languages ... لانه صراحة نقاش مع اغفال هكذا اساسيات (المفروض حتى سنة اولى كليه يعرفها) يجعل الحوار اهانه لمنتدى علمي معروف على شبكة الانترنت بحجم الفريق العربي.

ماهو الفرق أخ عصام بين الـ scripting و الـ "programming language", و بالمناسبة أي لغة يمكن بناء compiler أو Jitter أو interpreter لها. فما هو الفرق الذي تتكلم عنه؟!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
يجب التفريق بين scripting language و programming language وبين interpreted and run on-the-fly language وبين compiled languages

حتى JS ، صارت compiled ؟ تعتمد على JS engine ، مثل ما قال الأخ خالد ، اللغة شيء و الكومبايلر أو الانتربرتر شي ثاني ..

كتابة بعض العبارات باللغة الانجليزية دون أن يكون الهدف التعلّم ، لا يفيد .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الـ script هوا برنامج يعمل داخل برنامج أخر للتحكم به. يعني كمثال المتصفح عبارة عن برنامج يتم التحكم به من خلال الـ script ... البرنامج قادر على ان يعمل بذاته بينما الـ script لايعمل الا بوجود البرنامج الذي يحتويه. مثال اخر python و blender وغيره الكثير من الامثلة.

بما ان الـ script يعمل من خلال برنامج اخر فأدائه يكون دائما اقل من برنامج مكتوب مثلا بلغة برمجة كـ c/c++ .... اتصور نحن متفقون حتى الان.

ملاحظة: رح تقول لي انه هالتعريف غير صحيح لأن java و C# تعمل من خلال برنامج اخر فاقول لك ان التعريف صحيح لانه البعض وانا منهم يعتبر java و C# لغات سكربت.

ننتقل الى التعريف الثاني وهوا Interpreted Languages حيث يخزن البرنامج نصيا كما كتب ويتم تحليله وتحويله في وقت تشغيله يعني زي ما بحكوا بالانجليزي interpreted and run on-the-fly بينما compiled language يتم تحليل البرنامج بواسطة compiler وتخزينه قبل تشغيله (يعني عند التشغيل يكون البرنامج محلل وجاهز "سوف اتغاضى عن تفاصيل compiling فهناك فرق بين ناتج الـسي كومبايلر والجافا كومبايلر").

هذا يجعل الـ compiled language اسرع من الـ Interpreted Languages بكثير.

الان لنرجع الى javascript فبما انها يتوجب ان تعمل من داخل المتصفح فهي لغة script صح ؟؟؟ يعني رح تعاني من ضعف الاداء مقارنة بالبرامج العادية .... صح ؟؟؟

وبسبب طبيعة الويب متعدد المنصات توجب ان تكون javascript لغة Interpreted ... صح ؟؟؟

إذن javascript واجهتها مشاكل الأداء المنخفض الناتجة عن كونها scripting language وكونها Interpreted وبسبب هذا اتخذ مصممو اللغة القرار بجعل اللغة بسيطة ولا تحتوي abstractions عميقة كتلك الموجودة في لغات C++ مثلا فهاجس المطورين كان الاداء والاداء فقط.

يعني يا اخ Khaled.Alshaya تخيل قديش رح يصبح الاداء منخفض لو كان يتوجب على المتصفح تحليل abstractions التي يفرضها oop قبل تنفيذ كل سكربت .... اخواني اذا كانت C++ اقل اداء من لغة C بسبب oop abstractions فتخيلو كيف سيكون الوضع مع لغة script و كذلك Interpreted.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
الـ script هوا برنامج يعمل داخل برنامج أخر للتحكم به. يعني كمثال المتصفح عبارة عن برنامج يتم التحكم به من خلال الـ script ... البرنامج قادر على ان يعمل بذاته بينما الـ script لايعمل الا بوجود البرنامج الذي يحتويه. مثال اخر python و blender وغيره الكثير من الامثلة.

بما ان الـ script يعمل من خلال برنامج اخر فأدائه يكون دائما اقل من برنامج مكتوب مثلا بلغة برمجة كـ c/c++ .... اتصور نحن متفقون حتى الان.

ملاحظة: رح تقول لي انه هالتعريف غير صحيح لأن java و C# تعمل من خلال برنامج اخر فاقول لك ان التعريف صحيح لانه البعض وانا منهم يعتبر java و C# لغات سكربت.

حسب تعريفك فإن كل برنامج هو عبارة عن Script :lol:

الـ Executables عبارة عن Scripts للـ Abstract Machine المقدمة من قبل نظام التشغيل, و الـ Kernel عبارة عن Script للتحكم في المعالج الذي هو عبارة عن Abstract Machine!

المصطلحات دائماً ما تكون رمادية, و ليس هناك أبيض أو أسود :)

الان لنرجع الى javascript فبما انها يتوجب ان تعمل من داخل المتصفح فهي لغة script صح ؟؟؟ يعني رح تعاني من ضعف الاداء مقارنة بالبرامج العادية .... صح ؟؟؟

وبسبب طبيعة الويب متعدد المنصات توجب ان تكون javascript لغة Interpreted ... صح ؟؟؟

لا ليس من الضروري أن تكون مفسرة, هي في الحقيقة Jitted في معظم المنصات الحديثة. أي أن Java Script لها مترجمات "وقت التشغيل". موضوع الـ Implementation ليس له علاقة باللغة, لأنه يمكن بناء أي نوع Implementation تريده للغة بكل بساطة "حسب احتياجك" و تقديرك لاستعمال اللغة.

إذن javascript واجهتها مشاكل الأداء المنخفض الناتجة عن كونها scripting language وكونها Interpreted وبسبب هذا اتخذ مصممو اللغة القرار بجعل اللغة بسيطة ولا تحتوي abstractions عميقة كتلك الموجودة في لغات C++ مثلا فهاجس المطورين كان الاداء والاداء فقط.

يعني يا اخ Khaled.Alshaya تخيل قديش رح يصبح الاداء منخفض لو كان يتوجب على المتصفح تحليل abstractions التي يفرضها oop قبل تنفيذ كل سكربت .... اخواني اذا كانت C++ اقل اداء من لغة C بسبب oop abstractions فتخيلو كيف سيكون الوضع مع لغة script و كذلك Interpreted.

Java Script قد تكون بسيطة من ناحية الاستخدام(إذا افترضنا أنك تعرف ماهو الـ duck typing و الـ functional programming و خلافه) و لكنها من ناحية الـ abstraction عالية جداً مقارنة بأي لغة تريدها. هل بعد الـ Dynamic Typing هناك Abstraction :S

Javascript تمتلك قدرات OOP و لكنها على طريقة Smalltalk و ليس بالطريقة الكلاسيكية(Simula). الـ Abstraction الذي توفره Prototype OOP أعلى بكثير أيضاً من Classical OOP‍!

تم تعديل بواسطه Khaled.Alshaya
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

حسب تعريفك فإن كل برنامج هو عبارة عن Script :lol:

الـ Executables عبارة عن Scripts للـ Abstract Machine المقدمة من قبل نظام التشغيل, و الـ Kernel عبارة عن Script للتحكم في المعالج الذي هو عبارة عن Abstract Machine!

المصطلحات دائماً ما تكون رمادية, و ليس هناك أبيض أو أسود :)

ارجوك يا اخ Khaled.Alshaya لا تخلط الامور فقصدي واضح.

لا ليس من الضروري أن تكون مفسرة, هي في الحقيقة Jitted في معظم المنصات الحديثة. أي أن Java Script لها مترجمات "وقت التشغيل". موضوع الـ Implementation ليس له علاقة باللغة, لأنه يمكن بناء أي نوع Implementation تريده للغة بكل بساطة "حسب احتياجك" و تقديرك لاستعمال اللغة.

انا اتحدث عن وقت تطوير لغة javascript والقرارات التي واجهها مصممو اللغة وقت تصميمها ولست اتحدث عن المنصات الحديثة.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .