السلام عليكم ورحمة الله
في الحياة المهنية والتي تتطلب عملاً فنياً، مثل البرمجة، إدارة الشبكات، أنظمة التشغيل وغيرما من اﻷعمال المختلفة، تجد هُناك نوعان من الناس، النوع اﻷول هو شخص يعمل بأقل تفكير، يكون مجهوده البدني أكثر من الذهني، لا يحب تطوير عمله. والنوع الثاني هو شخص يفكر أكثر مما يعمل، يُراجع طريقة العمل بين الفينة واﻷخرى، يُخطط لتغيير الطريقة، دوماً هُناك طريقة أفضل لإنجاز أي عمل، والشيء المهم أنه يقرأ المعلومات اﻷساسية لأي موضوع تقني، أي يعطي صبغة أكاديمية للعمل الذي يقوم به. ولشرح ذلك أضرب مثال كان في يوم أمس.
لدينا تطبيق لنظام أندرويد، وهو نظام تشغيل جديد على الشركة، لم نطور برنامج أندرويد من قبل، فبدأنا بتثبيت أدوات التطوير، وهي أداة مبنية على Eclipse. سارت اﻷمور بنجاح والحمد لله، وقد كان معنا مبرمج كانت لديه خبرة سابقة في هذا المجال. طلبت من المبرمجين أمس أن يعرفوا أساسيات نظام اﻷندرويد، ماهي بنية النظام، وكيف أن برامج جافا تُعتبر برامج Native في منصة أندرويد بينما تحتاج إلى آلة إفتراضية في باقي اﻷنظمة، وماهي المكتبات التي يستخدمها، وكانت هذه اﻷجوبة في الويكيبيديا.
لابد للمبرمج أن يتعرف على أساسيات التقنيات التي يستخدمها، ولماذا هذه التقنية أفضل من تلك، فلايكفي أن يكون السوق هو الذي يحكم استخدام تقنية دون أخرى، فللدور اﻷكاديمي نصيب في دراسة كُل منتج وبيان محاسنه ومساوئه، كذلك عرض تاريخ هذه التقنية وسرد قصة نجاحها وفشلها، فربما نتستخدم تقنية قد انتهت، كما حدث لي من قبل عند قيامي بتجربة مخدم CVS والذي قضيت فيه يوماً كاملاً في تثبيته وربطه بأدوات التطوير، وفي النهاية عندما قرأت عنه وجدت أن تطويره قد توقف، حيث صدرت آخر نُسخة في عام ٢٠٠٨. فكان هذا سبب تركي له والبحث عن خيار آخر كان الـ subversion لكن هذه المرة قرأت عنه أولاً وتأكدت أنه مازالت تنتج عنه نُسخ جديدة، ثم قُمت بتجربته.
نتمنى أن يكون جميع قُراء هذه المدونة من النوع الثاني والذي يحب معرفة أصل الأشياء وأصل التقنيات وليسوا مستخدمين عاديين كل همهم أن تعمل البرامج واﻷنظمة والعتاد دون أن تكون لهم الرغبة في كيفية عمل مثل هذه اﻷشياء.
احياناً يجد اﻹنسان نفسه يقرأ عن كل مايحيط به وليس فقط مجاله، مثلاً عندما يتعطل جزء من السيارة فأول مايتبادر لنا هو قراءة ماهو هذا الجزء، وماهو اسمه العلمي وماهي أهميته وكيف نعرف أنه قد تلف، وماهو العمر اﻹفتراضي له، فأحياناً مثل هذه المعلومات يجهلها عدد كبير ممن يعملون في مجال تصليح السيارات وذلك لعدم توفر وسائل المعرفة لديهم أو عدم رغبتهم في المعرفة من اﻷصل.
النوع الثاني إذا كانو مطوري برامج فبهذه الطريقة هم يسيرون في اﻹتجاه الصحيح لأن يصبحوا مهندسي برمجيات
من اي الصنفين تصنفني؟ 😛
يوجد Virtual Machine لبرامج الاندوريد و هي ليست Native
تتحول إلى Dalvic Executable في النهاية وهي لاتحتاج لـ Virtual Machine
هذا ماقرأته في الموسوعة. اﻵلة اﻹفتراضية هي وسيط أثناء عملية الترجمة والربط
>>من اي الصنفين تصنفني؟
لا استطيع تصنيفك بدقّة، أحياناً تكون من النوع الثاني وأحياناً تكره النوع الثاني. لكنك لست من النوع اﻷول
بالمناسبة النوع اﻷول لا يقرأ المدونات
انظر في الصورة Dalvik Virtual Machine اي يبقى ال Binnary الناتج يحتاج إلى من ينفذه و يسمى Virtual Machine
هو طبعا مختلف عن ناتج الجافا العادي و لكن يبقى Byte Code و ليس ARM4
إذا ماتفسير هذه العبارة:
Android uses the Dalvik virtual machine with just-in-time compilation to run Dalvik ‘dex-code’ (Dalvik Executable), which is usually translated from Java bytecode.
ولمذا يُسمى Native
عبارة just-in-time compilation هي تعني أن الكود Interpreted للأسف، هذا يعني أنه ليس Native