لغات البرمجة المُناسبة لبرامج سطح المكتب العامة

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

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

رأيي كمستخدم ومبرمج أن أنسب لغات برمجة لعمل برامج سطح مكتب يتم توزيعها لعدد كبير من المستخدمين ليس لك علاقة إدارة بهم، هو استخدام لغات البرمجة التي ينتج عنها برامج تنفيذية طبيعية في أنظمة التشغيل المختلفة Native executables مثل لغة س++ ولغة أوبجكت باسكال، واللغات التي لا تصلح هي اللغات التي تحتاج لآلة إفتراضية VM مثل لغة جافا ودوت نت، واﻷسواء هي لغات الـ  scripting  التي تجبر المبرمج على وضع الملفات المصدرية للبرنامج عند المستخدم و تحتاج لتثبيت مفسر حتى يتمكن المستخدم من تشغيل البرنامج.

السبب وراء هذا الافتراض هو اﻵلي:

  1. أن اللغات التي تحتاج لآلة افتراضية تجبر المستخدم بتثبيت تلك الآلة وغالباً يكون هُناك نوع معين، مثلاً نُسخة معينة لمعمارية معينة، حيث أنها ليست من مكونات نظام التشغيل، إنما هي مكتبة لطرف ثالث third party، لاهي جزء من نظام المستخدم ولا هي جزء من مكتبات مطور ذلك البرنامج، ونفس القياس للغات البرمجة المُفسرة scripting. وفي المقابل فإن لغات البرمجة الطبيعية ينتج عنها برامج تنفيذية لنظام التشغيل لا تحتاج لمكتبات أو طبقة وسيطة حتى يعمل البرنامج، لذلك تكون سهلة التثبيت وتعمل مباشرة دون الحاجة لتثبيت إضافات.
  2. البرامج الطبيعية تكون سريعة حيث أنها برامج تنفيذية بلغة اﻵلة، أما المُفسّرة فهي غير تنفيذية ويتم تحويلها إلى لغة اﻵلة أثناء التنفيذ كذلك التي تحتاج لآلة افتراضية
  3. البرامج الطبيعية قليلة استهلاك الموارد خصوصاً الذاكرة، أما المُفسرة أو التي تحتاج لآلة إفتراضية فإن حجم اﻵلة اﻹفتراضية أو المفسر يكون كبير جداً ويستهلك ذاكرة أثناء تشغيل تلك البرامج

جربت عدة برامج طبيعية و أخرى  تحتاج لآلة افتراضية، مثلاً برنامج Transmission bit torrent وهو مكتوب بلغة سي، وهو برنامج خفيف وسريع، وفي المقابل جربت برنامج Vuze والذي يخدم نفس الغرض، إلا أنه بطيء ويستهلك ذاكرة كبيرة جداً وقد تسببت لي مرة في ارتفاع درجة حرارة الجهاز. أيضاً تشغيل برامج جافا لسطح المكتب ليست سهلة، أحياناً يتم تشغيل الملف المضغوط .JAR وأحياناً يتم تشغيل البرنامج بواسطة ملف script لكل نظام تشغيل، و أحياناً يكون هُناك برنامج تنفيذي طبيعي يقوم بتشغيل برنامج الجافا، اعتقد انه مكتوب بلغة سي في هذه الحالة، مثل أداة التطوير Eclipse المكتوبة بالجافا إلا أن بها ملف تنفيذي لتشغيلها في الغالب يكون مكتوب بلغة سي.

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

برنامج الجافا استهلك 30 ميغابايت من الذاكرة، بينما البرنامج المكتوب بواسطة فري باسكال/لازاراس  استهلك 7 ميغابايت فقط، ولم اُجرب برنامج مكتوب بالسي لكن أعتقد أنه سوف يكون اﻷقل استهلاكاً.

المقارنة الثانية لبرامج تعدت المليون سطر، مثل أدوات التطوير نفسها، وفي هذه المقارنة أداة التطوير NetBeans المكتوبة بلغة جافا، ولازاراس المكتوبة بلغة فري باسكال، وMonoDevelop المكتوبة بالنسخة المفتوحة من الدوت نت المسماة Mono

memory

احتلت الـ NetBeans المركز اﻷول في استهلاك الذاكرة حيث بلغت أكثر من 500 ميغابات، ثم MonoDevelop التي استهلكت 127 ميغابايت، ثم لازاراس التي استهلكت فقط 44 ميغابايت من الذاكرة. أيضاً الفرق في سرعة التشغيل كان شاسعاً. حيث احتاجت NetBeans إلى حوالي 16 ثانية لتعمل، أما لازاراس فقد احتاج لثانية واحدة فقط.

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

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

في الحقيقة هُناك أزمة في لغات البرمجة الطبيعية، حيث أن لغة البرمجة سي وسي ++ هي لغات قديمة ولا تواكب التطور الذي حدث في لغات البرمجة الحديثة عالية المستوى من حيث السهولة واﻹنتاجية، ويمكن قراءة هذه المقالة لأحد المبرمجين القُدامي للغة سي والذي يوضح أنها ليست لغة للمستقبل، كذلك فإن لغة فري باسكال غير مشهورة  بالقدر الكافي في سوق البرمجة، لذلك لجأت شركة مثل قوقل لمحاولة ردم هذه الهوّة بلغة البرمجة Go لكن لا أدري هل سوف تنجح أم في طريقها للفشل.

Advertisements

36 فكرة على ”لغات البرمجة المُناسبة لبرامج سطح المكتب العامة

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

    اعتبار النقاط التي طرحها يكون في المؤسسات والشركات اكثر منه عند المبرمجين الذي يعملون بمفردهم.

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

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

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

  3. السلام عليكم
    – تخيّل لو أن برنامج Eclipse أو Android Studio أو NetBeans كتبت بلغات أصلية غير جافا. نعم ستكون أكبر سرعة وأكثر كفاءة من حيث استغلال الموارد، ولكن من جهة أخرى ستكون دعاية سيئة جدا ضد جافا.

    – مايكروسوفت قدّمت مؤخّرا تقنية Native .Net لحلّ هذه القضية وإتاحة الفرصة لمبرجي بيئة دوت نت أن يقوموا بإنتاج برامج أصلية native .

    – كما أشار السيّد عبد الله توجد برامج كثيرة تعتمد على جافا و دوت نت، وأداؤها جيّد جدا، مثلا أنا أستخدم برامج مثل Paint.net (دوت نت) وبرنامج FreeMinde (جافا) وأجدهما مريحان.

    – برنامج مثل Skype وهو خليط بين C++ و Delphi (لغات تنتج كود أصلي) يستهلك مساحة كبيرة من الذاكرة ، كذلك الأمر مع Chrome و FireFox. والأمر هنا يتعلّق بسبب أن مطوّري هذه التطبيقات يقومون بحجز مسبق لمساحة كبيرة من الذاكرة من أجل التخزين المسبق فيها للبيانات وتسريع التعامل معها.

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

    – (فقرة دعائية) قمت مؤخرا بنشر برنامج لي eazypo.ca –محرّر لملفات الترجمة- وبرغم سرعته وخفته مقارنة بالبرامج المشابهة إلا أني لا زلت غير راض عنه. إنه هوس يصعب التخلّص منه.

  4. مرحباً بك أخ خالد شقروني، وشكراً على هذه المعلومات المفيدة.
    إذا وجدت برامج خفيفة وسريعة مكتوبة بالجافا أو الدون نت، فهي سوف تكون أخف واسرع إذا تمت كتابتها بلغات برمجة Native. أما بالنسبة للمتصفح FireFox فهو برنامج ضخم تصل عدد اﻷسطر الكود فيه إلى أكثر من 12 مليون سطر، تخيل لو تمت كتابته بلغة غير طبيعية.
    http://www.informationisbeautiful.net/visualizations/million-lines-of-code/
    أما إذا كانت البرامج صغيرة فيمكن أن تكون سريعة، لكن انتظرها حتى تتعقد لترى كيف تُصبح بطيئة.

    >– مايكروسوفت قدّمت مؤخّرا تقنية Native .Net لحلّ هذه القضية وإتاحة الفرصة لمبرجي بيئة دوت نت أن يقوموا بإنتاج برامج أصلية native .
    هذا أمر جيد، هل يمكنك وضع رابط للخبر؟

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

    توجد بعض النُسخ للدلفي مكتوبة بالدوت نت، أو بها أجزاء من الدوت نت، وهي من أسواء نُسخ دلفي تم إطلاقها على الإطلاق، فهي بطيئةً جداً، مثل دلفي 8، ودلفي 2006

  5. رابط الإعلان عن Native .Net:
    http://blogs.msdn.com/b/dotnet/archive/2014/04/02/announcing-net-native-preview.aspx

    أنا أيضا أفضّل أن تكون التطبيقات التي أستخدمها أو تلك ألتي أطوّرها أن تكون مستقّلة قدر الإمكان عن أية برمجيات/ترتيبات/ توصيفات خارجية، وأن تكون محمولة قدر الإمكان Portable.
    http://en.wikipedia.org/wiki/Portable_application

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

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

  6. اقتباس من رابط ميكروسوفت الذي أرسلته:
    Windows Store apps start up to 60% faster with .NET Native and have a much smaller memory footprint

    وهذا إثبات من ميكروسوفت أن البرامج الطبيعية أسرع في اﻹقلاع وتستخدم ذاكرة أقل

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

  8. These days we’re beating the really good C and C++ compilers pretty much always. When you go to the dynamic compiler, you get two advantages when the compiler’s running right at the last moment. One is you know exactly what chipset you’re running on. So many times when people are compiling a piece of C code, they have to compile it to run on kind of the generic x86 architecture. Almost none of the binaries you get are particularly well tuned for any of them. You download the latest copy of Mozilla,and it’ll run on pretty much any Intel architecture CPU. There’s pretty much one Linux binary. It’s pretty generic, and it’s compiled with GCC, which is not a very good C compiler.

    When HotSpot runs, it knows exactly what chipset you’re running on. It knows exactly how the cache works. It knows exactly how the memory hierarchy works. It knows exactly how all the pipeline interlocks work in the CPU. It knows what instruction set extensions this chip has got. It optimizes for precisely what machine you’re on. Then the other half of it is that it actually sees the application as it’s running. It’s able to have statistics that know which things are important. It’s able to inline things that a C compiler could never do. The kind of stuff that gets inlined in the Java world is pretty amazing. Then you tack onto that the way the storage management works with the modern garbage collectors. With a modern garbage collector, storage allocation is extremely fast.

    مقتبس من: ( masterminds for programming, James Gosling)

  9. شكراً لك أخ Azrak على هذا اﻹقتباس المهم. لكنه من شخص متحيز للجافا، James Gosling فهو من بنى هذه اللغة الرائعة. وفيه نقد لعمومية لغة C في تعاملها مع المعالجات المختلفة. لكن اﻵن نرى لغة دلفي مثلاً تستخدم مسجلات المعالج في تخزين المتغيرات مثل متغير الحلقات، لغرض السرعة، كذلك في باراميترات الدوال، وتم تحويل جزء من كود مكتبة النظام فيها إلى لغة أسمبلي، وقد كان هُناك تغيير ملحوظ في السرعة بعد دلفي 2006 بسبب هذه التغييرات حسب ما قاله لنا زملائنا الذين ما زالو يستخدمونها.
    لم تذكر لنا ماهو تاريخ هذه المقالة التي اقتبست منها؟

  10. >> لم تذكر لنا ماهو تاريخ هذه المقالة التي اقتبست منها؟ 2009 :
    http://www.amazon.com/Masterminds-Programming-Conversations-Creators-Languages/dp/0596515170

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

    أيضا يجب التفكير في الصيانة و قابلية التوسيع . دون نسيان التنقيح أو تصحيح الأخطاء .

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

    عموما البرامج الموجهة لاسطح المكاتب باتت للنسيان لان المستقبل هي الأجهزة المحمولة.

  11. إذاً لماذا لم يتم استبدال برامج لغة سي وسي++ بلغة جافا؟ هل تعرف متصفح واحد مكتوب بجافا؟ هل تعرف محرك قاعدة بيانات مكتوبة بالجافا؟
    إذا لم يتوقف الناس عن استخدام اللغات الـ Native في برامج سطح المكتب لصالح جافا وما يشابهها من المنصات فيبقى كلام James Gosling مجرد كلام نظري.

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

  12. بالمناسبة اﻵن استخدم جافا أكثر من أي لغة أخرى في كتابة برامج ويب وبرامج خدمات ويب، فهي في هذا المجال ليس فيها مشكلة بطء أو مشكلة استهلاك ذاكرة، حيث أن خدمات الويب والـ Servlets هي عبارة عن Classes صغيرة الحجم ربما تكون أفضل للـ JIT لتحويلها إلى برنامج ثنائي سريع. استخدمهما مع الـ Tomcat وهو مكتوب الجافا، وهو أفضل مخدم برامج Application server استخدمته حتى اﻵن، بعدما تصبح لي خبرة كافية به سوف أفرد له مقالة عن تجاربي معه بإذن الله.

  13. >> إذاً لماذا لم يتم استبدال برامج لغة سي وسي++ بلغة جافا؟ هل تعرف متصفح واحد مكتوب بجافا؟
    الجواب على هذا السؤال في تعلقي – قبل أن نرى ما هي اللغة المناسبة لبرمجت تطبيق معين وجبت معرفة نوعيته ومتطلباته و الموارد المتاحة . – متصفح ويب يحتاج إلى أداء عالي.

    >> هل تعرف محرك قاعدة بيانات مكتوبة بالجافا؟
    http://java-source.net/open-source/database-engines

    >> أما بالنسبة لكلامك أن البرامج الموجهة لأسطح المكتب باتت للنسيان وأن المستقبل هو للأجهزة المحمولة فهذا كلام يقوله غير المبرمجين …
    أنا أقصد الاستعمال العام لأسطح المكتب، وليس تطوير البرامج باستخدام برامج سطح مكتب. (أو ربما لم أفهمك ؟)

    ليس لدي أي تحيز لهذا أو ذاك ، أنا أعمل غالبا على تكنولوجيا الويب (html , javascript ,php) .
    لكني أرى أن الآلة الافتراضية تقترب أكتر فاكتر إلى ال- native

  14. >> الجواب على هذا السؤال في تعلقي – قبل أن نرى ما هي اللغة المناسبة لبرمجت تطبيق معين وجبت معرفة نوعيته ومتطلباته و الموارد المتاحة . – متصفح ويب يحتاج إلى أداء عالي.
    إذاً أنت تعترف أن برامج الجافا ليست ذات أداء عالي.

    >> لكني أرى أن الآلة الافتراضية تقترب أكتر فاكتر إلى ال- native
    نعم هذا صحيح، والدليل هذه المقالة التي تتكلم عن التطور في اﻷداء بالنسبة لمترجم جافا:
    http://en.wikipedia.org/wiki/Java_performance
    لكن لا تنسى أيضاً أن مترجمات اللغات الـ Native أيضاً في تطور مستمر لأجل optimization أفضل

  15. >>أنصحك بتحديت ال- jvm و-netbeans إلى الاصدار 8 و من اوركل ، وستلاحض الفرق في المردودية .

    استخدم NetBeans 8 منذ فترة طويلة لكن مع جافا 7. كُنت أتمنى أن تأتي Ubuntu 14.04 مع Java 8 لكن اعتقد أنه لم يتم إنتاج OpenJDK 8

  16. ال- ppa التي وضعته في تعليقي أعلاه ليس من اوراكل . يمكنك التجربة ، لا تنسى حدف جافا 7.
    أيضا القي نضرة على JSF لان Servlet لم تعد تستعمل .

  17. >ال- ppa التي وضعته في تعليقي أعلاه ليس من اوراكل . يمكنك التجربة ، لا تنسى حدف جافا 7.
    لماذا أحذف جافا 7؟ ألا يمكن تثبيت NetBeans من جديد واختيار Java 8 حيث أن جافا 6 وجافا 7 تعملان مع بعضهما بدون أي مشكلة، فقط اقوم بتغير خصائص البرنامج بإختيار آلة جافا اﻹفتراضي التي يعمل عليها ثم يقوم بإختيار المناسبة له.

    لم اسمع بالـ JSF ماهي؟

    ايضاً ماهو اﻹتجاه المستقبلي لخدمات الويب، هل هو Soap Web service أم RESTFull أم هناك شيء آخر؟
    وماهو مستقبل ال Swing وهل هُناك بديل له لإنتاج برامج سطح مكتب بلغة جافا

  18. >> ألا يمكن تثبيت NetBeans من جديد واختيار Java 8 حيث أن جافا 6 وجافا 7 تعملان مع بعضهما بدون أي مشكلة،
    بالتاكيد ممكن :
    sudo update-alternatives –config java
    أو:

    يمكنك أيضا إقلاع netbeans ب- :
    <netbeans –jdkhome > لم اسمع بالـ JSF ماهي؟
    https://www.youtube.com/channel/UCYbfWSZtJiXbNwJz7djy6ng

    >> ايضاً ماهو اﻹتجاه المستقبلي لخدمات الويب، هل هو Soap Web service أم RESTFull أم هناك شيء آخر؟
    هذا سؤال لبحت جامعي !! . Soap جد معقدة مقارنة مع REST ، أكتفي ب- AJAX + JSON .

    >> وماهو مستقبل ال Swing وهل هُناك بديل له لإنتاج برامج سطح مكتب بلغة جافا
    JavaFX –> http://en.wikipedia.org/wiki/JavaFX
    DEMO–> https://www.youtube.com/watch?v=ij0HwRAlCmo

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

    أشكرك على هذه المدونة فهي بحق رائعة لكن عندي سؤال محيرني إذا كان التوجه إلى native هو المستقبل فهل هذا يعني التخلي عن لغات قوية كالجافا و إذا كان الكلام صحيحا فما هو البديل من لغات البرمجة
    و هل بناء برنامج لسطح المكتب بلغة الجافا و مكتبة swing غير مجدي من ناحية الكفاءة و السرعة؟

  20. وعليكم السلام ورحمة الله وبركاته،
    الكلام محصور فقط على نوع معين من التطبيقات ينطبق فيها شرطان: أولهما أن يكون برنامج سطح مكتب، والثاني أن يكون برنامج عام اﻹستخدام. فإذا كان الهدف هو برنامج ويب أو خدمة ويب مثلاً فلا تنطبق عليه المقالة، وإذا كان موجه لمؤسسة مثلاً أيضاً لا تنطبق عليه المقالة.
    أما بالنسبة لمكتبة swing اعتقد أنه سوف يتم استبدالها بمكتبة JavaFX

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

    بدأتُ بالفعل في البرمجة بلازاروس على أوبونتو، منذ مدة قصيرة، وبدأت في إنشاء تطبيق ﻹدارة المحال التجارية، بسيط وسهل.
    فقط واجهتني بعض المشاكل التي لم أعرف طريقة حلها نظراً ﻷن البرمجة بفجول بيسك دوت نيت لازالت عالقة في ذهني.

    هل تعلم ما هي المشكلة التي وقعتُ فيها؟ البحث في جدول اﻷسماء من خلال مدخلات المستخدم في تكست بوكس 🙂 يعني تتم عملية البحث عن اﻷسماء التي تشبه المدخلات باستعمال المعامل Like.

  22. وجدت اليوم معلومة خطيرة جداً تثبت أن الجافا لا تصلح لبرامج سطح المكتب العامة. وهي إمكانية إعادة مصدر البرنامج من الملف التنفيذي للجافا. أي أنه عندما تقوم بتوزيع الـ JAR file يستطيع من يتحصل عليه إعادة مصدر البرنامج بواسطة Java decompiler وهذا هو موقعه:
    http://jd.benow.ca/

  23. السلام عليكم ورحمة الله وبركاته ،
    في الحقيقة وُجهت إلى هذه المدونة الرائعة من طرف أحد الإخوة ، و فعلا استمتعت و استفدت أيما استفادة.
    أخي الحبيب أطلب التوجيه فقط .
    أنا أستعمل الدلفي الإصدار 7 منذ مدة (بدأت بدلفي 3 منذ صدوره) لكن كل تطبيقاتي كانت متعلقة بقواعد البيانات paradox ثم Interbase .
    أود الانتقال من دلفي إلى لغة أخرى مجانية ومتعددت المنصات ، ووالله أنا محتار في اختيارها .
    1- هل أنتقل إلى lazarus و تخوفي منها ناتج عن شكل البرنامج المخيف (ابتسامة ) فلست أدري إن كان بالإمكان برمجة واجهات جميلة مثل الدلفي (أقصد السكين) و أيضا قلة الدعم .
    2- أو هل أنتقل إلى لغة جافا لشهرتها و كثر دعمها.
    جزاك الله خير الجزاء وأوفاه.

  24. مرحباً بك أخ توهامي
    اﻹصدار 7 من دلفي هو أشهر إصدار في الدلفي على اﻹطلاق، لكنه أصبح قديم جداً ولا يدعم الـ unicode
    كذلك البارادوكس قديمة جداً، يُمكنك استخدام SQLite بدلاً عنها.
    إذا اردت اﻹنتقال إلى لغة برمجة مفتوحة المصدر فاﻷفضل لازاراس لبرامج سطح المكتب وجافا لبرامج الويب وخدمات الويب كما فعلت أنا منذ تركت الدلفي، حيث إتجهت إلى كلا اللغتين.

  25. السلام عليكم،
    جزاك الله خيرا على متابعة أسئلة زوار مدونتك.
    أخي الحبيب ، بالنسبة للزاروس ، هل واجتك مشكلة تطوير برنامج لمختلف الشاشات (أقصد بذلك دقة الشاشة) ، فمثلا دقة شاشاتي هي 1024X768 ، لكن عند تثبيت برنامجي عند أحد زيائني وهو يستعمل دقة شاشاة أخرى و لتكن 1280X960 فيلاحظ أن برنامجي لا يتلائم مع دقة الشاشة الجديدة ،
    ووالله لقد اضطررت لعمل نفس البرنامج لكل دقة شاشة ، وهذا شيء متعب ، وذلك لأنني لم أجد الحل لحد الساعة.
    فما الطريقة المتبعة لديك ؟ أحسن الله إليك.
    عذرا ، سؤال آخر هل توجد مكونات لتحسين أو تجميل البرامج في lazarus.
    والله في عون العبد مادام العبد في عون أخيه.

  26. في الحقيقة لم تواجهني تلك المشكلة. دائماً استخدم الـ Anchors مثلاً أجعل المكونات ترتبط إلى يمين الشاشة في حالة أن الواجهة عربية، وعند تكبير وتصغير الشاشة تحافظ على موقعها.
    هل يمكنك إرسال صورة تحتوي على الشاشتين لمعرفة المشكلة؟
    ولا استخدم مكونات لتحسين أو تجميل البرامج سواء كان في لازاراس أو في دلفي. دائماً أُفضل استخدام اﻷدوات القياسية لتسهيل اﻹنتقال إلى نُسخ أحدث من أداة التطوير بدون اﻹعتماد على مكونات خارجية

اترك رد

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

WordPress.com Logo

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

صورة تويتر

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

Facebook photo

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

Google+ photo

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

Connecting to %s