البرمجة الوظيفية functional programming عادت مؤخرا للانتشار بشكل كبير وأبرز مثال لها مكتبة @reactjs من فيسبوك. هذا الكتاب github.com رائع جدا لفهم طريقة البرمجة هذه. تحذير ⚠️: هذا الكتاب راح يقلب راسك 🙃 ويغير مفاهيم كثيرة خصوصا لو كنت متعود على البرمجة الشيئية OOP.
ملخص سريع لتاريخ البرمجة الوظيفية وعلوم الحاسب: هي نشأت كامتداد لفرع في الرياضيات يسمى lambda calculus والذي ابتكره عالم أميركي مشهور جدا في القرن العشرين اسمه Alonzo Church وذلك لتحديد ما يمكن حوسبته من المشاكل وما لا يمكن حوسبته (لا يمكن تسوي برنامج يحل المشكلة).
الونزو هو أستاذ ألان تورنق Alan Turing العالم البريطاني الشهير جدا الذي يعد الأب لعلوم الحاسب والذي ابتكر وسيلة أخرى أكثر شهرة لتحديد ما يمكن حوسبته وما لا يمكن وهي آلة تورنق الافتراضية او Turing Machine وقد ابتكرها في مرحلة الماجستير قبل التقائه فيما بعد بأستاذه الونزو تشيرش.
البرمجة الأمرية imperative هي امتداد لألة تورنق الافتراضية وهي الأكثر انتشارًا وسيادة منذ ظهور الحواسيب وحتى يومنا هذا ولكن كما ذكرت فإن البرمجة الوظيفية بدأت بالصعود وبقوة مؤخرا لانها تساعد في زيادة جودة البرامج وكذلك تسهيل المعالجة المتوازية parallel processing.
الزبدة ان الشخصين هذولا اشتغلوا مع بعض وهم من أسسوا علوم الحاسب (أو علوم حل المشاكل بالطرق الرياضية) وكان لهم مدرستين مختلفتين والمبرمجين ولغات البرمجة منقسمين اليوم بين المدرستين. طيب هم أصلا ليش بدأوا؟ نناقشها في تغريدات لاحقة
جاري تحميل الاقتراحات...