پارادایم های برنامه نویسی به زبان ساده

کل قضیه این نیست!سلام.این یه توضیحه به زبان ساده که فقط مفهوم رو متوجه بشید و یه دید کلی پیدا کنید.خیلی ها این بحث رو با خود زبان های برنامه نویسی اشتباه میگیرن. در واقع بیشتر زبان ها از بیشتر از یک پارادایم پشتیبانی میکنن.خب سر تیتر بخش های اصلی این مقاله:اصلا برنامه نویسی یعنی چه؟پارادایم یعنی چه؟پارادایم های مختلف برنامه نویسیقسمت اول: اصلا برنامه نویسی یعنی چه؟خب همونطور که من تو یه مقاله دیگم برنامه نویسی رو از دیدگاه حل مسئله تعریف کردم، اینجا هم به طور خلاصه میگم که برنامه نویسی یعنی اینکه ما میایم با استفاده از زبان های برنامه نویسی یه برنامه (یا نرم افزار) مینویسیم که این برنامه ما قراره یه مسئله ای رو حل کنه.حالا این برنامه ما یا یه اپلیکیشن موبایله، یا نرم افزار هدایت موشکه، یا نرم افزار آهنگسازیه و یا چیزهای دیگه.روند کلی کار به این شکله که ما:برنامه رو مینویسیم، که نتیجش میشه سورس کد (Source Code).بعد این سورس کد compile (یا Interpret !) میشه.و بعد هم که برنامه ما توسط CPU اجرا میشه.دیگه اینجا نمیخوام وارد جزئیات انواع زبانهای سطح پایین و بالا و انواع compiler ها و Interpreter ها و چیزهای دیگه بشم.خب حالا این پارادایم های برنامه نویسی چیا هستن و کجای کارن؟ بریم قسمت دوم برای جواب این سوال.قسمت دوم: پارادایم یعنی چه؟اگه میخوایم بفهمیم پارادایم ها کجای کارن اول باید ببینیم خود این کلمه «پارادایم» یعنی چه.خیلی ساده بخوام بگم، پارادایم یعنی «نحوه یا شیوه یا روش انجام کار». برای مثال بیاید یه «کار» رو در نظر بگیریم، مثلاً غذا خوردن. پارادایم های مختلف غذا خوردن میشن اینا:یکی میگه: من از قاشق و چنگال استفاده میکنم.یکی میگه: من با دست میخورم!یکی میگه: من غذا رو میریزم تو نان و میخورم.یکی میگه: من از این چوب ها که که چینی ها دارن استفاده میکنم!و غیره.یعنی در واقع هرکدام از این آدم ها به یه «نحوه یا شیوه یا روشی» غذا میخورن، در واقع هرکدام برای غذا خوردن یه «پارادایم» متفاوت دارن!حالا که فهمیدیم کلمه پارادایم یعنی چه، حالا نوبت اینه که بریم سراغ اینکه پارادایم های برنامه نویسی چی هستن اصلا؟تو برنامه نویسی هم پارادایم ها به همین معنی هستن، هرکدام یه جور «شیوه یا نحوه یا روش» هستن که ما ازشان استفاده میکنیم برای نوشتن الگوریتم ها یا برای «حل مسئله».حالا تو قسمت بعدی راجب این حرف میزنیم که پارادایم های برنامه نویسی چیا هستن، چند تا هستن و یه توضیح کلی و مفهومی راجب اونا میدیم.پارادایم های مختلف برنامه نویسیخب ما اگه خیلی دیگه بخوایم ریزبین باشیم به این نتیجه میرسیم که ۲ پارادایم کلی داریم. (شاید بعضیا بگن بیشتر از این تعداد داریم، راجب اونم انشاالله صحبت میکنم که ابهامی باقی نمانه).اینم از این ۲ پارادایم:پارادایم Imperativeپارادایم Declarativeخب، هرکدام از این پارادایم ها یه ویژگی اساسی و مفهومی دارن:ویژگی اساسی پارادایم Imperative اینه که یه جور حالت Sequential داره. یعنی که شما میای به کامپیوتر میگی که قدم به قدم چکار کنه. در واقع کلمه ''چطور'' اینجا مهمه، یعنی شما به کامپیوتر میگی ''چطور'' یه کاری رو انجام بده.ویژگی اساسی پارادایم Declarative اینه که یه جور حالت Declare کردن داره. یعنی چه؟ یعنی اینکه شما میای به کامپیوتر میگی چه چیزی میخوای. در واقع اینجا عبارت ''چه چیزی'' مهمه، یعنی شما فقط میگی ''چه چیزی'' میخوای و ''چگونه'' رو (برخلاف پارادایم Imperative) میسپاری به کامپیوتر! (به این سادگی ها و گل و بلبلی هم نیست البته!!!)خب الان پارادایم OOP یا همون شیء گرا یا پارادایم Functional، یا Logic پس کجای کارن؟ اونا هم یجورایی زیر مجموعه این ۲ تا گروه اصلی میشن.این عکس خیلی کمک میکنه به فهم درست موضوع:تقسیم بندی پارادایم های برنامه نویسی به همراه مثال داخل پرانتزالبته یه نکته خیلی مهم اینجا وجود داره:اصل قضیه به این شکله که معمولا زبان های برنامه نویسی که برای Production استفاده میشن (یعنی همین زبان های معروف!)، از چند پارادایم پشتیبانی میکنن (نه یکی). مثلا زبان Java یا ++C از پارادایم Functional هم پشتیبانی میکنن. حالا این پشتیبانی تو این زبان ها یا زبان های دیگه یا از طریق یه Library به زبان داده میشه یا اینکه کلا جزئی از ویژگی های خود زبانه که انشاالله تو نوشته های بعدی راجبش صحبت میکنم.انشاالله تک تک این پارادایم ها رو هم تو نوشته های بعدیم مفصل و به زبان ساده و با مثال توضیح میدم.امیدوارم کمک کرده باشه این مقاله به شما.مقاله های دیگه من تا اینجای کار هم اینها هستن:کتاب «دنیا بازیچه یهود» کتابی که هرکسی باید بخوانداصلا برنامه نویسی یعنی چه؟۲ کلمه اساسی و مهم برای برنامه نویس های تازه کار!