بيئة التطوير ولغات البرمجة الجديدة

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

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

حاولت قبل عدة أيام تجربة لغة البرمجة Go , فقمت بتثبيت المترجم بسهولة، ونسخت أول برنامج وقمت بترجمته بسهولة، لكن بحثت عن المحرر، فوجدت أن احد الخيارات هو Eclipse فقمت بتثبيت الـ plugin goclipse لكنه تطلب جافا 8، قمت بتثبيتها لكنه لم يعمل، فتوقفت عن تجربة لغة البرمجة Go

أذكر أني قبل فترة طويلة حاولت تعلم لغة جافا أو تجربتها على اﻷقل، فكل مرة أحاول ذلك مع أداة التطوير Eclipse لكن كُنت أفشل في إيحاد طريق البداية ، فهي بيئة تطوير معقدة، وغير جاهزة، دائماً تحتاج لتثبيت Plugins حتى تعمل بها ميزة معينة. لكن بعد فترة اطلعني أحد الزملاء على NetBeans وكانت النتيجة فورية في تشغيل البرامج مباشرة، فتعلمت اللغة في وقت وجيز، أصبحت أكتب برامج مرتبطة بقواعد بيانات، وكتبت برامج ويب وخدمات ويب.

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

حاولت مرة عمل برامج أندرويد، لكن الـ Eclipse أيضاً لم تساعد في ذلك. علمت اﻵن أن قوقل تخلت عن الـ Eclipse واعتمدت أداة التطوير IntellJ بدلاً عنها كبيئة تطوير لبرامج اﻷندرويد. ربما هذا يكون دافع لمعاودة الدخول إلى برمجة الموبايل إذا كان لدي وقت.

Advertisements

19 فكرة على ”بيئة التطوير ولغات البرمجة الجديدة

  1. هده من الاسباب التی جعلتني اتجه إلی ما يسمی hybrid application في ال Front-end
    و ترک java, PHP .. فقط لل Bake-end

  2. ال go لا تحتاج إلى بيئة ضخمة، يكفي محرر بسيط و هو متوفر liteide يكفي انه يؤمن ميزة ال debug حتى يكون جيد بالنسبة لي
    و يمكن تعلمها بسرعة من موقع https://gobyexample.com/
    استغرقني الامر اسبوع واحد معاها

    العقدة كانت مع ال D لا يوجد حتى محرر بسيط لها، فقط plugin لل visual studio أو MonoDevelop يعني يتطلب تنزيل برامج اخرى كثير كي استطيع العمل عليها، حتى استطعت ان اعمل debug احتاج مني الامر اكثر من شهر

  3. قمت بتحميل liteide لكن لم تعمل في لينكس، حدث الخطأ التالي:

    Cannot mix incompatible Qt library (version 0x40806) with this library (version 0x40801)
    Aborted (core dumped)

  4. ضع ردك هنا…صراحة لا احب استخدام بيءات تطوير ف محرر نصوص+كمبايلر+منقح يكفيان ب رءيي ل تصميم برامج ظخمة

    ربما هاذ الامر يعود الا اني بدءت حياتي البرمجيت بستخدام محرر نصوص (استخدم محرر ايماكس)
    ب النسبة ل لغة go هي لغة جيدة و قوية ف مع انه جديدة كتم كتابت بها برامج عملاقة مثل دوكر
    تعلمت هاذه اللغة ب يوم فهي سهلة جد ربما لءن قواعدها اغلبها مءخوذة من لغة سي(تعلمت سي في طفولتي اذكر كان عمري 10 سنة تقريبً)

  5. مرحباً بك أخ علي. قرأت عنك في اﻹنترنت في مقابلة أو خبر يتكلم عنك، لا أذكر بالضبط.

    الأخ زاهر ماهو رأيك بلغة Go

  6. لغة Go تشبه التيربو باسكال 3
    الميزة الوحيدة انها متعددة المنصات
    اما عن الذاكرة و السرعة فذلك لانها في بدايتها، وهذا اسلوب Google لجذب المستخدمين

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

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

    و على العكس فاللغات التي تدعمها أو تنشأها المؤسسات التجارية تهتم بالبيئات التطويرية المتكاملة و جذب أنظار المطورين و الشركات بغني بيئتها و سهولتها
    و لكن على الرغم من ذلك شركة ما يكروسوفت ضمن توجهاتها الجديدة غيرت طريقة التطوير في asp 5 فبدﻻ من إنشاء مشروع أصبح التطوير يعتمد على شجرة من المجلدات لتمكن المطورين من استخدام أي محرر غير فيجوال ستوديو. و ذلك لأنهم يريدون جعل أدواتهم متعددة المنصات
    و هذا الرابط به شرح عن التغير في asp 5:

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

  9. ليس فقط المحررات، ايضا لا يتم العناية بان تصدر اللغة التحليل للنص البرمجي بشك يمكن قراءته من اي محرر اخر لعمل autocomplete التكميل التلقائي، مما تضطر المحررات لعملها من طرفها و تكون احيانا غير متزامنة مع تطور لغة البرمجة.

  10. التكميل التلقائي تتفوق به أدوات تطوير مثل NetBeans و Visual Studio وربما النُسخ الجديدة من الدلفي.
    إعادة صياغة الكود refactory ايضاً اصبحت من اﻷشياء اﻷساسية، حتى لازاراس اصبح موجود فيها، لكن بها بعض المشاكل قمت بالإبلاغ عنها في احدى المرات وقاموا بإصلاح المشكلة. لكن لاتزال بها عيوب إذ يتم احياناً نسيان بعض المتغيرات من تعريفها كباراميترات للدالة، فهي بذلك تتطلب عملاً يدوياً، أما في NetBeans فنادراً ما تحتاج هذه العملية للتصحيح من المبرمج.

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

    بالنسبة لي اعتبر اي خدمة تضيفها البيئة تقوم على كتابة كود نيابة عن المبرمجة هي نقطة ضعف في اللغة نفسها، كلما كتبت البئية اكثر كل ماكانت لغة البرمجة ضعيفة اكثر بالنسبة لي.

  12. بالنسبة لي اعتبر اي خدمة تضيفها البيئة تقوم على كتابة كود نيابة عن المبرمج هي نقطة ضعف في اللغة نفسها، كلما كتبت البئية اكثر كل ماكانت لغة البرمجة ضعيفة اكثر بالنسبة لي.

    هل يدخل في كلامك هذا الـ templates فبدلاً من فتح ملف جديد فارغ يقوم المحرر بإضافة المكتبات التي تحتاج إليها في هذا النوع من الملفات، مثل أن يكون الملف يُمثل Servlet class.
    كمثال آخر عند فتح برنامج جديد من نوع program في بيئة لازارس تتحصل على هذا الكود:

    program Project1;
    
    {$mode objfpc}{$H+}
    
    uses
      {$IFDEF UNIX}{$IFDEF UseCThreads}
      cthreads,
      {$ENDIF}{$ENDIF}
      Classes
      { you can add units after this };
    
    begin
    end.   
    
  13. اول مفهومين بالبرمجة يتم تعليمهم للاطفال، هو تسلسل تنفيذ الاوامر، ثم الحلقات (كنت في السابق اعلم القفز حاليا تجازوتها)
    الحلقات هي اول فائدة من فوائد فلسفة اللغة
    مثلا طلبت من اطفالي طباعة جملة معيةن 10 مرات
    نفذوا المسألة من خلال النسخ واللصق، ثم طلبت منهم ان يطبعوها 50 مرة، فتأففوا، عندها علمتهم استعمال الحلقة FOR
    تم اختصار الكود بشكل كبير، عدنا الى الوظائف القديمة و شرحت لهم كيف يتكم اختصار الكود.

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

    و أن ال opp احد اهدافها اختصار كم كبير من الكود، و هكذا.

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

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

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s