تطوير البرمجيات: مراجعة تاريخية حتى يومنا هذا
لقد تميز تطوير البرمجيات بخصائص محددة منذ نشأته وحتى يومنا هذا. فمنذ البداية، انقسم عالم تطوير البرمجيات إلى قسمين: تطوير البرمجيات الحرة والمفتوحة المصدر، وتطوير البرمجيات الاحتكارية والمغلقة المصدر.
وأدى كل هذا بدوره إلى سباق محموم في كل عالم من عوالم البرمجيات الموزعة لإنتاج أنواع متشابهة من البرمجيات، مما أفضى في نهاية المطاف إلى أنواع متنوعة من التطبيقات. وهكذا، نشأت البرمجيات الموزعة من أول برمجيات نظام (SS) التي لا تزال مستخدمة حتى اليوم، ثم برمجيات البرمجة (SP)، وأخيراً برمجيات التطبيقات (AS). وتراوحت هذه التطبيقات الأخيرة بدورها من التطبيقات الأصلية التقليدية - أي القابلة للتثبيت والمخصصة لكل نظام تشغيل (OS) - إلى التطبيقات الموزعة المبتكرة التي تعمل عبر الإنترنت على تقنية سلسلة الكتل (Blockchain).

تطبيقات الكمبيوتر
في نفس الوقت تقريبًا الذي ولدت فيه أنظمة التشغيل SS، والتي كانت في الأساس نظام التشغيل نفسه ، وتضمنت برامج تشغيل الأجهزة، وأدوات النظام، وجميع تلك الأدوات المستخدمة للتحكم المحدد في خصائص الكمبيوتر، أي جميع تلك البرامج التي سهّلت إدارة عناصر الأجهزة (HW)، مثل: الذاكرة، والأقراص، والمنافذ، والأجهزة، والملحقات، وُلدت أيضًا أنظمة SP وSA.
تتضمن حزم البرامج منتجات برمجية يستخدمها المبرمجون لتطوير برامج حاسوبية أخرى باستخدام لغات برمجة و/أو قواعد بيانات مختلفة. وتشمل هذه الحزم عادةً محررات النصوص، والمترجمات، والمفسرات، والروابط، وأدوات تصحيح الأخطاء. كما تشمل بيئات التطوير المتكاملة، وهي حزم برمجية تجمع جميع الأدوات اللازمة المذكورة أعلاه في بيئة واحدة (عادةً ما تكون واجهة مستخدم رسومية) لتغطية دورة حياة تطوير البرنامج بالكامل.
وتشمل فئة التطبيقات البرمجية (SA) البرامج التي يستخدمها المستخدمون النهائيون لإنجاز مهمة ما. تتضمن هذه الفئة عادةً حزم برامج مكتبية، وبرامج تصميم جرافيكي أو برامج وسائط متعددة، وبرامج محاسبية أو إدارية، على سبيل المثال لا الحصر، جزءًا صغيرًا من جميع فئات التطبيقات التي يمكن العثور عليها في هذه الفئة. لذلك، فإن التطبيقات البرمجية، أو ببساطة التطبيقات، تتعلق بـ
أي برنامج يسمح للمستخدم النهائي بأداء مهام مختلفة على جهاز كمبيوتر أو كمبيوتر محمول أو جهاز لوحي أو هاتف محمول أو أنواع أخرى من المعدات أو المنصات التكنولوجية.

التطبيقات
في بدايات الحوسبة، كانت التطبيقات تتطلب تثبيتًا لاستخدامها، وكانت تعمل فقط ضمن نظام تشغيل أصلي محدد. مع مرور الوقت وتقدم علوم الحاسوب والتكنولوجيا، تطورت التطبيقات واكتسبت خصائص مثل قابلية النقل، والتوافق مع مختلف المنصات، والنمطية، وقابلية التوسع. لذا، لدينا اليوم أنواع عديدة من التطبيقات، تتراوح بين التطبيقات الأصلية التقليدية والتطبيقات الموزعة المبتكرة.
الرئيسية
كانت التطبيقات الأصلية، وهي تلك المطورة خصيصًا لنظام تشغيل معين، باستخدام حزمة تطوير البرمجيات (SDK) عادةً، أول ما تم ابتكاره. السمة الرئيسية لهذه التطبيقات هي تكاملها الكامل مع وظائف وميزات الجهاز أو المنصة، مما يُحسّن تجربة المستخدم. لذلك، تميل هذه التطبيقات إلى الظهور بشكل أفضل وأداء أفضل في بيئتها الأصلية، بالإضافة إلى تشغيلها بسلاسة وموثوقية أكبر. مع ذلك، غالبًا ما تكون تكلفة تطويرها أعلى إذا تطلب الأمر تطبيقًا جديدًا لكل إصدار من نظام التشغيل الأصلي.
مع تطور التكنولوجيا، ظهرت تطبيقات الويب، وهي تطبيقات تعمل مُدمجة ضمن صفحة ويب أو موقع إلكتروني عبر متصفح الإنترنت. لذا ، يمكن تشغيلها على أي متصفح إنترنت تقريبًا، وعلى أي نوع من أجهزة الكمبيوتر أو الأجهزة أو المنصات. ويمكن تنفيذ كل ما يُمكن فعله بصيغة الويب في صيغة التطبيق الأصلية القابلة للتثبيت.
نشأت التطبيقات الهجينة من دمج النهجين السابقين. وهي تطبيقات تُطوَّر باستخدام لغات برمجة شائعة في تطبيقات الويب، مما يسمح باستخدامها على منصات مختلفة ، مع قدرة التطبيقات الأصلية على الوصول إلى جزء كبير من ميزات الأجهزة في الحاسوب أو الجهاز أو المنصة التي تعمل عليها. بعبارة أخرى، تستفيد هذه التطبيقات استفادة كاملة من مرونة تطوير الويب وقابلية التطبيقات الأصلية للتكيف مع الأجهزة.
تقديم
يجري اليوم تطوير تطبيقات الويب التقدمية (PWAs). وهي عبارة عن صفحات ويب تستخدم تقنية Service Workers وغيرها من التقنيات، ما يجعلها أقرب إلى التطبيقات الأصلية وأقل شبهاً بتطبيقات الويب. فبينما تعمل تقنية Service Workers وغيرها من التقنيات في الخلفية، يعمل التطبيق نفسه داخل متصفح الويب.
أخيرًا، بدأت التطبيقات الحالية بالانتقال إلى صيغة التطبيقات الموزعة، والمعروفة أيضًا بالتطبيقات اللامركزية (DApps). هذه تطبيقات لامركزية تستخدم منصة سلسلة الكتل (البلوك تشين) لتمكين المستخدمين من التفاعل المباشر وإجراء المعاملات (الاتفاقيات) دون وساطة جهة مركزية تدير الخدمة. وبالتالي، في التطبيق اللامركزي، يُمثل كل مستخدم عقدة في شبكة لامركزية، حيث تعمل جميع العقد مجتمعةً كجهة توثيق عالمية لأي معاملة تُجرى على المنصة.
اختتام
إن عالم تطوير البرمجيات، المنغمس في صميم العلوم والتكنولوجيا، يتطور ويتقدم باستمرار. ومن ثم، انطلاقاً من البرامج القابلة للتثبيت (التطبيقات الأصلية)، ظهرت أشكال أخرى عديدة من التطبيقات (الويب، والهجينة، والتقدمية، والموزعة).
الأشكال التي ستفسح المجال قريباً لأشكال جديدة ومبتكرة من التطبيقات، والتي ستتأثر باستخدام التقنيات الحالية والمتغيرة ، مثل البيانات الضخمة والتعلم العميق والذكاء الاصطناعي، والتقنيات التي لا تزال تتغير مثل الحوسبة السحابية وتقنية البلوك تشين.