CodeGym /جاوا بلاگ /Random-SD /اعتراض تي مبني بمقابله فنڪشنل پروگرامنگ. ڪهڙو بهتر آهي؟
John Squirrels
سطح
San Francisco

اعتراض تي مبني بمقابله فنڪشنل پروگرامنگ. ڪهڙو بهتر آهي؟

گروپ ۾ شايع ٿيل
جڏهن توهان جي پهرين ڪوڊنگ ٻولي طور جاوا سکڻ شروع ڪيو، توهان کي لازمي طور تي پروگرامنگ ۽ سافٽ ويئر ڊولپمينٽ بابت ڪجهه بنيادي بنيادي شيون سکڻ جي ضرورت پوندي. انهن مان هڪ آهي پروگرامنگ پيراڊمز ۽ انهن جي وچ ۾ فرق. فنڪشنل پروگرامنگ ۽ آبجیکٹ-اورينٽيڊ پروگرامنگ پروگرامنگ جا ٻه نمونا، يا انداز آهن، جن تي اسان اڄ هڪ نظر وجهڻ وارا آهيون، اهو سمجهڻ جي ڪوشش ڪري رهيا آهيون ته اهي سڀ ڇا آهن ۽ ڪيئن فنڪشنل پروگرامنگ ۽ او او پي مختلف آهن. پروگرامنگ پيراڊمز کي ڄاڻڻ ان بنيادي نظرياتي علم جو هڪ اهم حصو هوندو جيڪو ڪنهن به سنجيده پروگرامر جي ضرورت آهي، خاص طور تي جيڪڏهن هو سافٽ ويئر ڊولپمينٽ ۾ ڊگهي مدت جي ڪيريئر جو مقصد آهي. اعتراض تي مبني بمقابله فنڪشنل پروگرامنگ.  ڪهڙو بهتر آهي؟  - 1

هڪ پروگرامنگ مثال ڇا آهي؟

پر او او پي ۽ فنڪشنل پروگرامنگ (ايف پي) جي وچ ۾ فرق کي سمجهڻ لاءِ، اسان کي حقيقت ۾ هتي بنيادي ڳالهين کان شروع ڪرڻ جي ضرورت آهي ۽ واضح ڪرڻ گهرجي ته پروگرامنگ جو نمونو اصل ۾ ڇا آهي. پروگرامنگ پيراڊم هڪ طريقو آهي ڪوڊنگ ٻولين کي درجه بندي ڪرڻ جو، انهن جي خاصيتن جي بنياد تي، جنهن کي گڏ ڪري، هڪ نمونو يا انداز ٺاهي ٿو، ڪمپيوٽر جي پروگرامنگ جو هڪ خاص طريقو. ڪيتريون ئي خاصيتون هڪ پروگرامنگ پيراڊم جو تعين ڪن ٿيون، جن ۾ آبجیکٹ، ڪنٽرول فلو، ماڊيولرٽي، مداخلت يا واقعا وغيره شامل آهن. ۽ جيئن ته اهو ڪوڊنگ ٻولين سان آهي، هر پروگرامنگ پيراڊم جا پنهنجا فائدا ۽ نقصان آهن، نفعو ۽ نقصان، طاقت ۽ ڪمزوريون، جنهن کي توهان کي ذهن ۾ رکڻ گهرجي جڏهن پروجيڪٽ لاءِ ٻولي چونڊيو جيڪو توهان جي ذهن ۾ آهي.

OOP ڇا آهي؟

Object-oriented programming (OOP) ھڪ تصوراتي پروگرامنگ تمثيل آھي جيڪو شيون استعمال ڪري ٿو. هن ماڊل ۾، شيون استعمال ڪيون وينديون آهن انهن شين جي نمائندگي ڪرڻ لاءِ جيڪي توهان پروگرام ڪري رهيا آهيو. توهان اهو پڻ چئي سگهو ٿا ته OOP تجزيه استعمال ڪري ٿو ماڊل ٺاهڻ لاءِ حقيقي دنيا جي بنياد تي. ڪيتريون ئي مشهور پروگرامنگ ٻوليون OOP کي سپورٽ ڪن ٿيون، جن ۾ Java، C++، Python، ۽ PHP شامل آهن. ٻين اڳ ۾ قائم ڪيل پروگرامنگ پيراڊمز مان ڪيتريون ئي ٽيڪنڪون او او پي جو حصو آهن، جهڙوڪ ماڊلرٽي، پوليمورفيزم، انڪپسوليشن، تجريد، ۽ وراثت.

فنڪشنل پروگرامنگ ڇا آهي؟

فنڪشنل پروگرامنگ پڻ هڪ پروگرامنگ پيراڊم آهي، جيڪو ڪمن جو جائزو وٺڻ ۽ پروگرام ڪوڊ جي جوڙجڪ کي ترقي ڪرڻ تي ڌيان ڏئي ٿو، آخرڪار ڪنهن به تبديل ٿيندڙ رياستن ۽ تبديل ٿيندڙ ڊيٽا کان بچڻ. فنڪشنل پروگرامنگ اظهار جو جائزو وٺڻ جي باري ۾ آهي انهي ڳالهه کي يقيني بڻائڻ لاءِ ته ڪنهن فنڪشن جو آئوٽ پُٽ ساڳيو آهي، ان صورت ۾ جڏهن فنڪشن لاءِ ساڳيا ان پٽ ڏنا ويا آهن. اتي ڪيتريون ئي فنڪشنل ٻوليون موجود آهن، جن ۾ سڀ کان وڌيڪ مشهور ۽ وڏي پيماني تي استعمال ٿيندڙ عام لسپ، اسڪيم، ڪلوجور، وولفرم ٻولي، Erlang، Haskell ۽ ٻيا شامل آهن. اتي پڻ ڪيتريون ئي ٻوليون آھن جيڪي فنڪشنل پروگرامنگ کي سپورٽ ڪن ٿيون يا ھن پيراڊم مان ڪجھ لاڳو ڪيل خاصيتون آھن. C++، Python، Scala، PHP، Kotlin ۽ Perl انهن مان آهن. فنڪشنل پروگرامنگ پڻ ڪجھ سائنسي ۽ ٻين خاص ٻولين ۾ تمام ضروري آھي، جھڙوڪ انگن اکرن ۾ R، XML لاءِ XQuery/XSLT، يا مالي تجزيي ۾ J، K، ۽ Q.

OOP ۽ فنڪشنل پروگرامنگ جي مقابلي ۾

اها وضاحت گهڻي مدد نه ڪئي، ڇا اهو؟ اچو ته ان کي وڌيڪ بنيادي نقطه نظر کان ڏسڻ جي ڪوشش ڪريون. ڪنهن به ڪمپيوٽر پروگرام جا بنيادي بنيادي حصا ڪهڙا آهن؟ اهي ڊيٽا آهن (ڇا پروگرام کي ڄاڻڻ جي اجازت آهي) ۽ پروگرام ٿيل رويي (ڇا هن ڊيٽا سان ڪرڻ جي اجازت آهي). او او پي ۽ ايف پي جي ڪمپيوٽر پروگرامنگ تائين پهچڻ جي طريقي ۾ اهم فرق ڇا آهي؟ خير، OOP جو طريقو استعمال ڪري رهيو آهي ان ڊيٽا سان لاڳاپيل ڊيٽا ۽ رويي کي هڪ جاءِ تي گڏ ڪرڻ تي ڀاڙي ٿو، جنهن کي سڏيو ويندو آهي ”آبجڪٽ“. شيون استعمال ڪندي پروگرامرز کي اجازت ڏئي ٿو ته انهن جي پروگرامن جي ڪم کي آسان بڻائي. ٻئي طرف فنڪشنل پروگرامنگ جو چوڻ آهي ته ڊيٽا ۽ رويي کي ٻه مختلف شيون رهڻ گهرجن ۽ مجموعي وضاحت، آساني سان سمجھڻ وارو ڪوڊ، ۽ اعلي ڪوڊ ٻيهر استعمال ڪرڻ لاء الڳ نه ڪيو وڃي.

OOP ۽ FP جي وچ ۾ فرق

OOP ۽ FP جي وچ ۾ اختلافن کي واضح ڪرڻ لاءِ جيترو ممڪن هجي (هڪ نسبتاً مختصر مضمون ۾)، اچو ته ڪوشش ڪريون ته انهن ٻن پيراڊمز جي وچ ۾ بنيادي فرق هڪ هڪ ڪري بيان ڪريون.

1. تصور ۽ تعريف.

OOP شين جي تصور تي ٻڌل آهي جيئن هڪ ڊولپر پاران ٺاهيل هڪ خلاصي ڊيٽا جي قسم، ڪيترن ئي ملڪيتن ۽ طريقن کي شامل ڪري سگھي ٿو، ۽ شايد ٻين شين تي مشتمل هجي. FP جو بنيادي زور افعال جي تشخيص تي آهي، هر فنڪشن کي هڪ خاص ڪم انجام ڏيڻ سان.

2. بنيادي عنصر.

OOP ۾ بنيادي عنصر شيون ۽ طريقا آھن، ميوٽبل سان گڏ (ان کي ٺاھڻ کان پوء تبديل ڪري سگھجي ٿو) استعمال ٿيل ڊيٽا. FP ۾، افعال ۽ متغير بنيادي عنصر آھن، جڏھن ته افعال ۾ ڊيٽا ھميشه ناقابل تبديلي آھي (ان کي ٺاھڻ کان پوء تبديل نه ٿي ڪري سگھجي).

3. پروگرامنگ ماڊل.

او او پي لازمي پروگرامنگ ماڊل جي پيروي ڪري ٿو. FP بيان ڪيل پروگرامنگ ماڊل جي پيروي ڪري ٿو.

4. متوازي پروگرامنگ.

OOP متوازي پروگرامنگ کي سپورٽ نٿو ڪري. FP متوازي پروگرامنگ کي سپورٽ ڪري ٿو.

5. بيانن جو حڪم عمل ۾.

OOP ۾، بيانن کي عمل ڪرڻ دوران مخصوص طريقي سان ترتيب ڏيڻ جي ضرورت آهي. FP ۾، بيانن کي ڪنهن خاص حڪم جي پيروي ڪرڻ جي ضرورت ناهي جڏهن ته ان جي ڪامياب ٿيڻ لاء عملدرآمد.

6. رسائي جي وضاحت ڪندڙ.

OOP ٻولين ۾ ٽي پهچ جي وضاحت ڪندڙ آھن (اھڙا لفظ جيڪي ڪلاس، طريقن، ۽ ٻين ميمبرن جي رسائي کي مقرر ڪن ٿا): عوامي، نجي، ۽ محفوظ. FP-بنياد ٻولين وٽ ڪي به رسائي وضاحت ڪندڙ نه آھن.

7. لچڪدار ۽ ڊيٽا / ڪم شامل ڪرڻ.

لچڪدار OOP ٻولين جي بنيادي طاقتن مان هڪ آهي جيئن اهي موجوده پروگرام ۾ نئين ڊيٽا ۽ افعال شامل ڪرڻ جو آسان رستو مهيا ڪن ٿيون. FP ٻولين سان، توهان جي پروگرامن ۾ نيون شيون شامل ڪرڻ گهٽ آسان ۽ وڌيڪ پيچيده آهي.

8. ڊيٽا لڪائڻ ۽ سيڪيورٽي.

سيڪيورٽي هڪ ٻيو فائدو آهي اعتراض تي مبني پروگرامنگ جي طور تي OOP ٻوليون ڊيٽا کي لڪائڻ جي حمايت ڪن ٿيون، جيڪو آخرڪار محفوظ پروگرام ٺاهڻ جي اجازت ڏئي ٿو. اسان ان بابت ڳالهائي رهيا هئاسين ته جاوا کي محفوظ ٻولي ڇو سمجهيو وڃي ٿو (۽ جيڪڏهن اهو مڪمل طور تي صحيح آهي) هڪ الڳ مضمون ۾ ، رستي ۾. فنڪشنل پروگرامنگ سان، ڊيٽا کي لڪائڻ ممڪن ناهي، جيڪو توهان جي رستي ۾ هڪ وڏي رڪاوٽ آهي جيڪڏهن توهان FP ٻولي سان هڪ محفوظ پروگرام ٺاهي رهيا آهيو.

OOP بمقابلہ FP. ڪهڙو بهتر آهي؟

تنهن ڪري، جيڪڏهن OOP پروگرامنگ جو نمونو FP جي خلاف جنگ ۾ اچي ٿو، جيڪو هڪ کٽيندو؟ اهو هڪ مذاق سوال آهي، ظاهر آهي. پر جيڪڏهن اهو نه هو، اسان يقيني طور تي شرط لڳائي سگهون ٿا او او پي ڪيڪنگ ايف پي جي گدا (صرف ان ڪري جو جاوا او او پي جي ٽيم ۾ آهي). مذاق هڪ طرف، انهن طرزن مان هر هڪ بلڪه سڌو نفعو ۽ نقصان آهي. او او پي اهي ڏينهن وڌيڪ عام آهن ڇو ته هي انداز وڏي ۽ پيچيده منصوبن لاءِ تمام گهڻو بهتر ڪم ڪري ٿو. شيون ۽ طريقا عام طور تي آساني سان سمجھڻ وارا آھن، جيڪي OOP پروگرامنگ کي نسبتا آسان بڻائي ٿو جيتوڻيڪ مڪمل طور تي مڪمل شروعات ڪندڙن لاء. عام طور تي، اعتراض تي مبني پروگرامنگ حقيقت ۾ ڪم ڪري ٿي پٺتي جي آخر ۾ ترقي، ڇو ته جڏهن توهان ڪم ڪري رهيا آهيو ڪيترن ئي مختلف سسٽم ۽ پليٽ فارمن تي، OOP توهان کي هر شي کي پيڪ ڪرڻ جي اجازت ڏئي ٿو (هڪ اعتراض ۾) ۽ ڪنهن به غير مجاز پارٽي کان محفوظ رکو. لوئر ڪوڊ ٻيهر استعمال ڪرڻ ۽ امڪاني غير متوقع ضمني اثرات ۽ عملن تي اثر جيڪي OOP ڪوڊ ٿي سگھن ٿا، OOP ماڊل جي بنيادي نقصانن مان آھن. فنڪشنل پروگرامنگ، ٻئي طرف، سٺي آهي جڏهن پيچيدگي موجود آهي ۽ وضاحت ڪئي وئي آهي، تنهنڪري FP اڪثر ڪري استعمال ڪري سگهجي ٿو فرنٽ اينڊ ڊولپمينٽ ۾ جتي صاف ڪوڊ ۽ شفاف ڪم وڌيڪ اهم آهن، توهان کي غير متوقع ضمني اثرات کان سواء قابل اعتماد ڪارڪردگي حاصل ڪرڻ جي اجازت ڏئي ٿي. . جڏهن اهو پيچيده سسٽم جي ترقي تي اچي ٿو جيڪو ممڪن طور تي وسيع اسڪيلنگ جي ضرورت هوندي، ايف پي او او پي جي مقابلي ۾ گهٽ اثرائتو ۽ قابل اطلاق آهي.

تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION