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