سلام دوستان. ببخشید دیر شد، خودم سعی دارم یک روز درمیان مقالات را آماده کنم، اما نمیدونم چرا انقدر زمان سریع میگذره و زود دیر میشه!.... خب بریم سراغ ادامه مقدمه و شروع بحث.
در حال حاضر تقریبا همه زبان های برنامه نویسی محبوب از شی گرایی پشتیبانی میکنند ، اما قطعا این تنها راه توسعه نرمافزار نیست. معمولا در اولین مراحل توسعه پروژههای سیستم های نرم افزاری و وقتی نوبت به انتخاب تکنولوژی مناسب برای نوشتن کد می رسد ، رنگ و بوی بحث ها وجه فلسفی بخود میگیره و همیشه یکی از اولین مباحث این است که کدام پارادایم برنامه نویسی را باید دنبال کرد. پس باید نگاه دقیق تری به آنها داشته باشیم.
متون زیر ترجمه ویرایش شده از مقاله Differences between Procedural and Object Oriented Programming است.
البته برنامه نویسی رویه ای تقریبا در پروژه ای حرفه ای و لارج اسکیل انجام نمیشه اما مرور و مقایسه اش خارج از لطف نیست.
برنامه نویسی رویه ای را می توان به عنوان یک مدل برنامه نویسی تعریف کرد که برگرفته از مفهوم فراخوانی رویه ای است که در آن عملیات یکی پس از دیگری و به ترتیب اجرا می شوند .رویه هایی که به عنوان روال ، زیرروال یا عملکرد ( routines- subroutines – functions) نیز شناخته می شوند، شامل یک سری مراحل محاسباتی هستند. در حین اجرای یک برنامه ، هر رویه خاص برحسب نیاز ممکن است در هر نقطه فراخوانی شود، این فراخوانی میتواند از سمت خودش باشد یا رویه های دیگر. از زبان های مطرح رویه ای میتوان به سی، فورترن، کوبول، بیسیک و پاسگال اشاره کرد.

برنامه نویسی شی گرا را می توان به عنوان یک مدل برنامه نویسی تعریف کرد که مبتنی بر مفهوم اشیا است. اشیا حاوی مشخصات / داده ها به صورت ویژگی و کد/ رفتارها به صورت متد هستند. در واقع در این پارادیم، نرمافزار ها با استفاده از مفهوم اشیایی که با دنیای واقعی تعامل دارند طراحی می شوند. زبان های برنامه نویسی شی گرا کلاس پایه هستند ، به این معنی که اشیا نمونه هایی از کلاس ها هستند. زبان های جاوا، سی پلاس پلاس ، سی شارپ ، رابی، پایتون، پرل، آبجکیتیو-سی، سوییفت، دارت و... زبانهای مطرح شی گرا هستند.

آبجکت-اورینتد یا همون شی گرا
پروسیجر اورینتد یا رویه ای
در ادامه به مثال هایی در این رابطه و مقایسه شی گرایی با برنامه نویسی فانکشنال خواهیم پرداخت.