13

استخدام لغة دلفي في برمجة تطبيقات الموبايل

  • ali mohamad

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

و ما هو الحل للتغلب على مشكلة الجحم الكبير للتطبيق في نظام الأندرويد ؟


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

لايوجد شيء اسمه قوة برمجة. هناك عدة مقاييس للغة البرمجة لعلك تقصد مستوى اللغة والذي يشير لمدى قربها من لغة الآلة.

لكن كل هذا لا علاقة له بالترجمة من لغة لأخرى. في الماضي كلامك كان صحيحاً فلا معنى ولا حاجة لترجمة لغة قريبة من لغة الآلة للغة أبعد. لكن الآن تغير الأمر فأنا أكتب برامجي بلغة البيسك وهي لغة منخفضة المستوى وتتحول إلى جافا وسي++ وسي شارب بل وحتى لـhtml5 وactionscript للفلاش

وهناك أمثلة أخرى كثيرة انتشرت مع انتشار مفهوم البرمجة متعددة الأنظمة المستهدفة.

هناك شىء اسمه لغة قوية و لغة ضعيفة.

لغة البيسك لغة مرتفعة المستوى High Level و ليست منخفضة المستوى, و يسمونها Level 4 بحسب بعدها عن لغة الالة, فكلما عزلتك لغة البرمجة عن الالة تصبح مستوى اعلى. فالاسمبلى مستوى ثانى و السى مستوى ثالث.

الجافا مثلا تعزلك تماما عن التحكم بالذاكرة و نظام التشغيل, لذا فان معظم البرامج الاحترافية التى نستخدمها يوميا تكتب على سى++ و سى و دلفى و لا تكتب على البيسك و الجافا و السى#. تمكنك هذه اللغات من التحكم بشكل دقيق فى الذاكرة و كل شىء كما أنه لا شىء يعمل فى الخلفية و يتسبب باختناقات و أداء غير متوقع مثل الGC.

دعك من احتياج هذه اللغات الى ألة افتراضية للتشغيل و هو ما يستهلك المزيد من قوة المعالج و المزيد من الذاكرة.

أنا ذكرت لغة بيسك لأقارنها بالأكشن سكربت والـhtml5 والجافا وهي كلها لغات مستواها أعلى (أو أضعف كما تقول) من البيسك فقط لأوضح أن موضوع ترجمة لغة يمكن أن يكون من لغة أعلى إلى أدنى أو العكس طالما هنالك حاجة لذلك.

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

أخي فادي لغة البرمجة هي أداة للوصول إلى هدف معين أو حل لمشكلة معينة ولو كانت تلك اللغات هي الأفضل لما اضطررت أنا وغيري لتعلم عدد كبير من لغات البرمجة. مايكروسوفت صنعت نظام تشغيلها بالسي والسي++ فلماذا طورت سي# وبنت تطبيقات بها؟ آبل أيضاً لماذا استخدمت لغة Obj C بدلاً من سي/سي++ نظامها المحمول؟ لماذا اختارت جوجل الجافا ودخلت في مشاكل قضائية إن كان لديها حل أفضل؟ خصوصاً وأن محرك جوجل يعتمد بشكل هائل على سي++ وكذلك هو الأمر مع كثير من منتجات جوجل.

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

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