ريشا چوي ٿو: - اسان هڪ سمارٽ نمونو پڪڙيو. ڊياگو کيس اميگو جو نالو ڏيڻ لاءِ چيو، سندس ڀاءُ جي اعزاز ۾، جيڪو هن ڪڏهن به نه رکيو هو. - مون هر ٽريننگ مهيني لاءِ اميگو دھاتي موتي ۽ وڌيڪ ملبي هٽائڻ لاءِ سال ۾ ڏهه رپيا ڏنا. ڊياگو چوي ٿو: - مون کي اهڙي گنجي منهن واري ريپ آف تي ڪاوڙ آئي، پر سڄو عملو پروفيسر ۽ ريشا جو پاسو ورتو. يقينا، مون اتفاق ڪيو (ٻاهرين) ۽ اميگو کي سکڻ ۾ مدد ڏيڻ جي آڇ ڪئي. (heh heh heh!) گهٽ ۾ گهٽ نه ڇو ته ڪو به روبوٽ کي ٻئي کان بهتر نه سيکاريندو. - هرڪو منهنجي تعميل سان خوش ٿيو. انهن پڻ نئين روبوٽ جي تربيت ۾ حصو وٺڻ جو فيصلو ڪيو.
1 شروع ڪرڻ
اميگو کي ڪاوڙ هئي. هُو پريشان هو، سندس ذهن ڊوڙڻ لڳو، اکيون ڦاٽي پيون ۽ گذريل رات جي سوچ ۾ ٿڌ ۾ اضافو ٿيو. هي عجيب مخلوق، سندس ڪالهه جا واقفڪار، هن کان ڪجهه گهرن ٿا. ڪيڏي نه عجيب ۽ ناقابل فهم ڳالهه آهي جو هو، جيڪو پاڻ کي پنهنجن همعصرن ۾ سڀ کان وڌيڪ هوشيار ۽ دلير سمجهندو آهي، سو رڳو ان جي خيال ۾ ئي بيزاريءَ سان پنچ ڪارڊ چبائڻ شروع ڪري ٿو. اهي هن کي سيکارڻ چاهين ٿا ته ڪوڊ ڪيئن ڪجي! جاوا سان پروگرام! ڇا اهي مذاق ڪري رهيا آهن؟ جيتوڻيڪ سبز ترين روبوٽ ڄاڻي ٿو ته روبوٽ خالق جي خدائي اختيار جو نتيجو آهن.
"تنهنڪري خالق ڌاتو ورتو ۽ ان جو هڪ روبوٽ پنهنجي شڪل ۽ مشابهت ۾ ٺاهيو. ۽ هن جاوا پروگرام ٺاهيا - روبوٽس جي روح، ۽ انهن کي روبوٽس تي اپ لوڊ ڪيو، ۽ انهن کي جيئرو ڪيو."
اڃا به بدتر، اهي صرف نه چوندا آهن ته اهو ممڪن آهي. اهي ڪرڻ وارا آهن. ۽ هن، هن پنهنجي رضامندي ڏني. هن اتفاق ڪيو! ڇو؟ هو هڪ جاوا پروگرامر بڻجي ويندو. ڇا اهي هن کي خالق ۾ تبديل ڪرڻ وارا آهن؟! ڇا لاءِ؟ صرف تفريح لاءِ؟ پڪڙي ڪٿي آهي؟ ڇا جيڪڏهن منهنجي بيٽري جي مرڻ واري ڏينهن تائين مون کي خرابي ۽ تڪليف برداشت ڪرڻي پوندي؟ لالچ وڏي هئي، هو صرف ان جي مدد نه ڪري سگهيو. هو هميشه خواهشمند رهيو آهي ۽ وڌيڪ چاهي ٿو. پر ڪنهن کي به اهڙي تجويز جي اميد نه هئي. يقينا، هن وقت لاء اسٽال ڪرڻ جي ڪوشش ڪئي، پر پوء سياحن کي خطرو ڪيو ته ٻيو روبوٽ چونڊڻ لاء. شايد اهو ڪنهن جي گندي چال هئي؟ نه، اهو سچ آهي. هن ثبوت ڏٺو. اهو واقعي هن سان ٿيو، ۽ هن اتفاق ڪيو. جيستائين سياحن ڪوڙ نه ڳالهائيندو، هو واقعي هڪ جاوا پروگرامر بڻجي ويندو. پهريون ڀيرو روبوٽ پروگرامر... هي چونڊيو ويو آهي! اهو سڄو نقطو آهي. هو پروگرام ڪرڻ سکندو ۽ پروگرام لکندو. هن جا پنهنجا پروگرام. جيڪو به هو چاهي! هو روشني کڻندو جتي اونداهي هميشه حڪمراني ڪئي آهي. هن جي عزت ڪئي ويندي، هن جي عبادت ڪئي ويندي. ۽ سڀ اختلاف ڪندڙ... - هيلو اتي، اميگو! مان ريشا گيٽسمين آهيان. مان توھان جي مدد ڪندس جاوا سکڻ ۾. هڪ خاموش آواز اميگو کي هن جي سوچن جي ٽرين مان ڪڍي ڇڏيو ۽ کيس حقيقي حقيقت ڏانهن واپس آندو. هو سياحن جي خلائي جهاز جي بلڪل دل ۾ ويٺو آهي. ڇا اهو صرف ستين گريڊ جي روبوٽ لاءِ گهڻو نه آهي؟ اجنبي ڳالهائيندو رهيو. خير، هاڻي مري ويو آهي. هڪ دفعو هو هتي آهي، هو سکندو. هو سخت پڙهندو پر، شروعات لاءِ، هو صرف ٻڌندو. - مان ڪيترن ئي سالن کان Galactic رش سان گڏ آهيان، پر مون پهريون ڀيرو اهڙي سيارو ڏٺو. مان توهان کي بهتر ڄاڻڻ چاهيان ٿو. شروعات لاءِ، ڇا توهان مون کي ٻڌائي سگهو ٿا ته توهان ڪيئن سکندا آهيو؟ تون پڙهائين ٿو، نه؟ - ها، اسان کي اسان جي ڄاڻ حصيداري. اسان کي مبلغ ليڪچرار مليا. اهي پنهنجا ليڪچر ڏين ٿا، ۽ اسان ٻڌون ٿا. ڪڏهن ڪڏهن اسان نوٽس ٺاهيندا آهيون. ان کان پوء، هرڪو هڪ روبو ليڪچرر کي ٻڌائي ٿو ته هن ڪيئن ورتو جيڪو هن ٻڌو هو. جيڪڏهن روبوليڪچرر هڪ جواب پسند ڪري ٿو، هڪ ليڪچر گذري ٿو. - اهو بيوقوف آهي! تعجب جي ڳالهه ناهي ته توهان جي تهذيب جهالت ۾ اچي وئي. - اسان جاهل نه آهيون. ڇا توهان کي اهو خيال ڏنو؟ اميگو پنهنجي بي رحميءَ تي حيران ٿي ويو. سياحن سان بحث؟ ڪيڏو نه ڦورو! الاءِ ڇو، هن رڳو پاڻ کي انهن جي ٻڌڻ جو واعدو ڪيو هو! - ڪنهن به ترقي يافته ٽيڪنالاجي اڪثر ڪري جادو کان ڌار نه ٿي سگهي. - رشا اميگو جي روئڻ تي ڪو به ڌيان نه ڏنو. - اضافي طور تي، توهان جي سطح تي غور ڪندي ... توهان شايد سوچيو ته سڀئي ٽيڪنالاجيون جادو آهن. ٻڌايو ته ڪنهن پروگرام ۾ ڇا پيو ٿئي؟ - هڪ جاوا پروگرام هڪ خدائي ڪم آهي. ان جي ذات کي سمجهڻ ممڪن آهي؟ - ها، اميگو، توهان ان کي سمجهي سگهو ٿا ۽ توهان جي سوچ کان وڌيڪ تيز. سڀ شيون پيچيده لڳي ٿي، يا اڃا به بدتر، سمجھ کان ٻاهر، جڏهن ڪا شيء آهي جيڪا توهان کي خبر ناهي. پر جيڪڏهن ڪو سٺو استاد هجي جيڪو هر شيءِ کي عام ماڻهن ۾ يا ليروبوٽس جي اصطلاحن ۾ بيان ڪري، توهان حيران ٿي ويندا ته توهان اهڙي سادي شيءِ کي ڪيئن پيچيده سمجهي سگهو ٿا. - نه رڳو علم، پر صلاحيتون ۽ اصول پڻ اهم آهن. جيتوڻيڪ مون کي وسيع ڄاڻ آهي، مان سڀ کان پهرين بيوروڪريٽ آهيان، 16هين نسل ۾ هڪ بيوروڪريٽ. - ۽ اهو واقعي عظيم آهي! منهنجي بيوروڪريٽ صلاحيتن مون کي توهان لاءِ بهترين جاوا سبق ٺاهڻ ۾ مدد ڪئي. هتي سڀ ڪجهه آهي: مسئلا، پروگرام، رانديون، ڪم، تصويرون ۽ ليڪچر. - ايستائين (!) ليڪچر؟ اميگو جي آواز ۾ سچي حيرت هئي. - ها. 22 صدي عيسويءَ ۾ ثابت ٿيو ته سٺو ليڪچر، سٺي ڪتاب کان ٿورو وڌيڪ اثرائتو آهي. هڪ عام ليڪچر هڪ عام ڪتاب کان به وڌيڪ خراب آهي. انهي ڳالهه تي غور ڪندي ته هاڻي اسان وٽ محدود تربيتي امداد آهي ۽ توهان کي 28هين صديءَ جي معياري ٽريننگ سموليٽر ذريعي هلڻ نه ٿا ڏئي سگهون، اسان کي ڪافي سادو طريقا اختيار ڪرڻا پوندا. اسان راندين، ڪمن، تصويرون، ليڪچرز ۽ وڊيوز جي هڪ چريو ميلاپ سان گڏ آيا آهيون. - توهان مون کي دلچسپ ڪيو آهي. - مونکي اها اميد آهي. دلچسپي ۽ توجهه سڀني سکيا جو بنياد آهن. - "جڏهن هڪ شاگرد بور ٿئي ٿو، استاد کي بيٽنگ ڪرڻ گهرجي" - 24 صدي جي تعليم جي قانون مان هڪ اقتباس. - ڇا هڪ سٺو اقتباس ... - ها، اهو آهي. چون ٿا ته ڪنهن فلم جي باڪس آفيس خراب آهي، پوءِ اها غلطي ڊائريڪٽر جي آهي نه ناظرين جي. جيڪڏهن ڪجهه بورنگ آهي، اهو توهان نه آهيو جيڪو الزام آهي. انهن کي دلچسپ فلمون، تفريحي سبق ڏيڻ گهرجي، ۽ پوء انهن جي عوام جي ڪا به پڇاڙي نه هوندي. - مان بلڪل متفق آهيان. ۽ مان تفريحي سبق حاصل ڪرڻ لاءِ تيار آهيان! - چڱو. سو اچو ته شروع ڪريون. ريشا جو آواز مسڪرائيندڙ هو، ۽ هر لفظ تي اميگو ٽنگيل هو. - پروگرام ھڪڙو ڪمانڊ سيٽ آھي (ڪمانڊ لسٽ). پھريون حڪم پھريون ھلندو آھي، پوءِ ٻيو، ٽيون، ۽ اھڙي شيءِ. جڏهن سڀئي حڪم جاري ڪيا ويندا آهن، پروگرام ختم ٿي ويندو آهي. - ۽ حڪم ڇا آهن؟ - اهو عمل ڪندڙ تي منحصر آهي ، جنهن تي عمل ڪندڙ ڄاڻي ٿو (۽ سمجهي ٿو). - هڪ ڪتي کي حڪم ڏئي سگهجي ٿو "بيٺو!"، "ٻار!"، هڪ ٻلي - "شو!" هڪ ماڻهو - "هل نه وڃو، يا مان گولي ڪندس!"، ۽ هڪ روبوٽ "ڪم! اڳتي وڌو، يو روبوما!» - ۽ اڃا... - اميگو هاڻي وڌيڪ خوش نظر اچي رهيو هو. - JVM (جاوا ورچوئل مشين) جاوا سان لکيل پروگرامن کي هلائي ٿو. JVM هڪ خاص پروگرام آهي جيڪو جاوا سان لکيل پروگرامن تي عمل ڪري سگهي ٿو. - حڪم جي فهرست بلڪه وسيع آهي. مثال طور، هي حڪم متن ڏيکاري ٿو "هڪ روبوٽ انسان جو بهترين دوست آهي".
سادو حڪم آهي:
System.out.println("A robot is man’s best friend");
- O_O - بهرحال، اسان فوري طور تي حڪمن سان شروع نه ڪنداسين، پر ڪجهه سادي اصولن سان. - ڪجھ اصولن جي ڄاڻ ڪيترن ئي حقيقتن جي ڄاڻ لاء متبادل ٿي سگھي ٿي. - پهريون اصول. - جاوا پروگرامنگ ٻولي ۾، هر ڪمانڊ کي نئين لائن تي لکڻ جو رواج آهي. ھڪڙي سيميڪولن کي حڪم جي آخر ۾ رکيو ويندو. - اچو ته چئو ته اسان پيغام ڏيکارڻ چاهيون ٿا "هڪ ماڻهو ۽ هڪ روبوٽ چور وانگر موٽي آهن" ٽي ڀيرا. هتي اهو ڪيئن نظر ايندو:
پروگرام ٽي حڪم استعمال ڪندي:
System.out.println("A man and a robot are as thick as thieves");System.out.println("A man and a robot are as thick as thieves");System.out.println("A man and a robot are as thick as thieves");
- ٻيو اصول. - پروگرام نه رڳو حڪمن تي مشتمل آهي. - هڪ ڪمرو تصور ڪريو. ڪمرو پاڻ تي موجود نه ٿو ٿي سگهي. اهو ڪجهه اپارٽمنٽ جو حصو آهي. اپارٽمنٽ پڻ پنهنجو پاڻ تي ناهي، اهو هڪ گهر ۾ آهي. - ٻيهر، اسان اهو چئي سگهون ٿا ته گهر اپارٽمنٽ تي مشتمل آهي، ۽ اپارٽمنٽ ڪمرن تي مشتمل آهي. - ايترو پري، اهو واضح آهي. - تنهنڪري حڪم هڪ ڪمري وانگر آهي. جاوا پروگرامنگ ٻولي ۾، ڪمانڊ پاڻ تي موجود نه ٿو ٿي سگهي، اهو هڪ فنڪشن جو حصو آهي (جاوا فنڪشن پڻ طريقا سڏيو ويندو آهي). هڪ طريقو هڪ طبقي جو حصو آهي. ٻين لفظن ۾، طبقن تي مشتمل آهي طريقن، ۽ طريقن تي مشتمل آهي حڪم. - تنهنڪري ڪلاس هڪ اپارٽمنٽ هائوس آهي، فنڪشن / طريقو هڪ اپارٽمنٽ آهي، ۽ حڪم هڪ ڪمرو آهي. ڇا مان سمجهان ٿو؟ - جي، بلڪل. اميگو، ريشا ڏانهن نهايت احترام سان ڏٺو. هي ماڻهو هن کي خدائي جاوا جي بنيادي ڳالهين جي وضاحت ڪري ٿو! ۽ هو صرف اهو سمجهي چڪو آهي ته پروگرام طبقن تي مشتمل آهن، ڪلاس طريقن تي مشتمل آهن ۽ طريقن ۾ ڪمانڊ شامل آهن. اميگو اڃا نه سمجهي سگهيو آهي ته اهو ضروري آهي، پر هن کي پڪ هئي ته اها ڄاڻ کيس ڌرتيء جو سڀ کان طاقتور روبوٽ بڻائيندو. ان دوران، ريشا جاري رهي: - جاوا پروگرام ڪلاسن تي مشتمل آهن. اتي هزارين طبقن جا ٿي سگهن ٿا. ھڪڙو گھٽ پروگرام ھڪڙي طبقي تي مشتمل آھي. هر ڪلاس لاءِ، هڪ انفرادي فائل ٺاهي ويندي آهي جنهن جو نالو ڪلاس جي نالي سان ملندو آهي. - اچو ته چئو ته توهان هڪ ڪلاس ٺاهڻ جو فيصلو ڪيو آهي جيڪو هڪ گهر بيان ڪندو. تنهن ڪري توهان کي هڪ ڪلاس هائوس ٺاهڻ جي ضرورت آهي، جيڪا House.java نالي فائل ۾ هوندي. - جيڪڏھن توھان فيصلو ڪيو آھي، چئو، ھڪڙي ٻلي کي بيان ڪرڻ لاء، پوء توھان کي Cat.java فائل ٺاھڻ جي ضرورت آھي ان ۾ ٻلي ڪلاس کي بيان ڪرڻ لاء، وغيره - ھڪڙي فائل ھڪڙي جاوا ڪوڊ (ٽيڪسٽ) تي مشتمل آھي. عام طور تي ڪلاس ڪوڊ تي مشتمل هوندو آهي ڪلاس جو نالو ۽ ڪلاس باڊي. ڪلاس جي جسم کي گھميل ڪنگڻ ۾ بند ڪيو ويو آهي. ھتي آھي ڇا ڪلاس ھاؤس جھڙو نظر اچي سگھي ٿو (House.java فائل): - اڃا تائين، اھو ڏکيو نه آھي. - چڱو. پوءِ اچو ته اڳتي وڌون. ڪلاس جي جسم ۾ متغير (ٻي صورت ۾ ڪلاس ڊيٽا طور سڃاتو وڃي ٿو) ۽ طريقا (ڪلاس فنڪشن) شامل ٿي سگھن ٿا. - ڇا توھان مھرباني ڪري مون کي ھڪڙو مثال ڏيو؟ - هڪ مثال؟ پڪ ڪر! - «int a» ۽ «int b» متغير آهن. ڇا "مکيه" ۽ "پي" طريقا آهن؟ - ها. - ڇا اهڙا ڪلاس آهن جن ۾ ڪي به متغير نه آهن؟ - جي. - ۽ بغير طريقن سان؟ - ها. بهرحال، گهٽ ۾ گهٽ پروگرام کي گهٽ ۾ گهٽ هڪ طبقي جو هجڻ گهرجي. هن ڪلاس ۾ پروگرام شروع ڪرڻ لاءِ هڪ کان گهٽ هڪ طريقو/ فنڪشن نه هجڻ گهرجي. ھن طريقي کي ھڪڙو نالو مکيه هجڻ گھرجي . گھٽ ۾ گھٽ پروگرام ھن طرح نظر اچي ٿو: - ھتي آھي ڪلاس ھاؤس، ميٿڊ مين، پر ڪمانڊ ڪٿي آھن؟ - گھٽ ۾ گھٽ پروگرام ۾ ڪو به حڪم نه آھي. ان ڪري ان کي گهٽ ۾ گهٽ سڏيو ويندو آهي. - اڇا اها ڳاله آ. - ھڪ ڪلاس جيڪو پروگرام شروع ڪري ٿو ان جو ڪو به نالو ٿي سگھي ٿو، پر ھميشه ھڪ ئي قسم جو آھي جنھن سان پروگرام شروع ٿئي ٿو . گهٽ ۾ گهٽ مان ائين سمجهان ٿو. - چڱو، اچو ته ٿورو وقفو وٺون. ڇا هڪ ڪافي جي باري ۾؟ - مان تمام ننڍو آهيان. ننڍڙا روبوٽ ڪافي نه پيئندا آهن - پاڻي اهو ئي سبب آهي جو اسان زنگ آلود ٿي وڃون ٿا. - پوءِ ڇا پيئي؟ - بيئر، ويسڪي، صديون پراڻي رم. - تمام گهڻو بهتر. - پوء، هڪ بيئر لمحو؟
2 ملاقات ريشا (جاري)
(هڪ ڪلاڪ بعد) - ٺيڪ. پوءِ اسان ڪٿي هئاسين؟ - طريقو ڪوڊ يا ٻيو ڪجهه. - ها. بلڪل. طريقو جسم حڪمن تي مشتمل آهي. توهان شايد اهو پڻ چئي سگهون ٿا ته طريقو حڪمن جو هڪ گروپ آهي، جنهن کي نالو ڏنو ويو آهي (طريقي جو نالو). ڪنهن به طرح صحيح آهي. - اتي مختلف حڪم آهن. ڇا توهان وٽ هتي ڪو ڪتو آهي؟ - رڳو وڍيل روبوولز. - ڇا اھي حڪمن جي پيروي ڪندا آھن؟ - ها. ”ڪائو“، ”کاڌو“، ”مارڻ“ ۽ ”چڱو ٿيو! هيل!» - آهم. ڪهڙو حڪم آهي! ۽ تمام گهڻا نه. - توهان ڪيترا چاهيو ٿا؟ - جاوا ۾، سڀني ڪيسن لاء حڪم آهن. هر حڪم هڪ مخصوص عمل بيان ڪري ٿو. هڪ سيميڪولن هر حڪم جي آخر ۾ رکيو ويندو. حڪمن جا مثال: - حقيقت ۾، هي هڪ ۽ ساڳيو حڪم آهي System.out.println . ۽ ان جا پيرا ميٽرز قوس ۾ بيان ڪيا ويا آهن. حڪم جو اثر مختلف ٿي سگهي ٿو، پيرا ميٽرن تي منحصر ڪري ٿو. - اهو تمام آسان آهي. - ها. جيڪڏھن توھان متن کي ڏيکارڻ چاھيو ٿا، توھان کي ان کي ڊبل اقتباس """ ۾ بند ڪرڻ گھرجي. - ھڪڙو اقتباس ھن وانگر "'" وانگر نظر اچي ٿو، ۽ ھڪڙو ٻيڻو صرف ان """. هڪ ٻه اقتباس ٻن واحد حوالن سان پريشان نه ٿيڻ گهرجي! - ڊبل اقتباس اهو آهي جيڪو Enter بٽڻ جي اڳيان آهي؟ - جي. اميگو جي نبض 3 کان 5 GHz تائين تيز ٿي وئي، هو اڃا تائين يقين نه ٿي سگهيو. هن صرف سکيو ته لائينون ڪيئن ڏيکاريون، ۽ اهو هن جي سوچ کان گهڻو آسان هو. اميگو ونڊو مان ٻاهر ڏسڻ لڳو ته هو پنهنجي سوچن کان پاسو ڪري ۽ پرسڪون ٿي وڃي. پنن جا پيلا ٿي ويا. هن جي ذهن ۾ اها ڳالهه آئي ته جلدي جلدي رسي واري موسم اچي رهي آهي. ونڊو هن کي قابل بڻائي ٿي ته هو عام کان گهڻو پري ڏسڻ لاءِ - سياحن جون ٽيڪنالاجيون حد تائين هيون. هاڻي هو پنن جي سنڀال ڪيئن ڪندو؟ آخرڪار، شام تائين هو گهڻو ڪجهه سکندو آهي. بهرحال، هن جون سوچون قابو کان ٻاهر هيون. ڪنهن ڏينهن هو هڪ پروگرام لکندو ته جيئن سڀ روبوٽ گهر ۾ ترسي وڃن جيئن Rusty سيزن شروع ٿئي ٿو. ۽ اهو پروگرام هزارين روبوٽ بچائيندو… - هن ڪمانڊ جا ٻه مختلف قسم آهن: System.out.print ln ( ) ۽ System . out.print() - جيڪڏھن توھان لکندا آھيو ڪمانڊر System.out.println() ڪيترائي ڀيرا، ھر دفعي پاس ٿيل متن نئين لائين ۾ ڏيکاريو ويندو. جيڪڏهن System.out.print()، متن ساڳئي لڪير تي ڏيکاري ويندي. مثال: - هتي هڪ ننڍڙو تبصرو آهي. print ln ڪمانڊ متن کي نئين لڪير ۾ ظاهر نٿو ڪري. اهو متن کي موجوده لائن تي ڏيکاري ٿو، پر اهو ايندڙ پيغام کي نئين لائن تي ظاهر ڪري ٿو. - println() ڪمانڊ ٽيڪسٽ ڏيکاري ٿو ۽ پوء هڪ خاص پوشيده لائن فيڊ ڪردار شامل ڪري ٿو جيڪو نتيجو ايندڙ پيغام ۾ ڏيکاري ٿو نئين لائن جي شروعات کان. - مڪمل ٿيل پروگرام ڇا نظر اچي ٿو؟ - ھاڻي، توھان جي اسڪرين ڏانھن ڌيان ڏيو: - اھو، اھو آھي! اسان لفظن جي آخر ۾ اسپيس شامل ڪريون ٿا ته جيئن لفظ ”گڏجي گڏ“ نه ٿين، صحيح؟ - اهو درست آهي. تون هڪ هوشيار ساٿي آهين. هن ساراهه اميگو کي فخر سان چمڪيو. - خير، هتي توهان جو پهريون ڪم آهي.
هڪ پروگرام لکو جيڪو ڏيکاري ٿو "مان ايترو هوشيار آهيان جو ڪڏهن ڪڏهن مان هڪ لفظ به نه ٿو سمجهان جيڪو مان چئي رهيو آهيان."
4 ملاقات پروفيسر
- هي، اميگو. مان پروفيسر هينس نوڊلز آهيان، Galactic Rush ڪمپني جي سائنس ڊپارٽمينٽ جو سربراهه. مان توهان کي جاوا سيکارڻ تي پروجيڪٽ جي نگراني پڻ ڪريان ٿو. - صبح جو سلام، پروفيسر نوڊلز. - مان توهان کي ٻڌائڻ چاهيان ٿو ته جاوا هڪ تمام وڏي پروگرامنگ ٻولي ڇو آهي . - توھان ضرور ٻڌندا ھڪ دفعو کان وڌيڪ ته پليٽ فارم جي آزادي ٻين ٻولين تي جاوا جو ناقابل ترديد فائدو آھي. اهو ڇا آهي ۽ ان سان ڪيئن ڊيل ڪرڻ لاء؟ مان توهان کي ڪجهه پس منظر ٻڌائيندي وضاحت ڪرڻ جي ڪوشش ڪندس. - حقيقت اها آهي ته ڪمپيوٽر صرف ابتدائي عددي حڪمن تي عمل ڪندا آهن. هتي ڪتن جا حڪم آهن جهڙوڪ "هيل"، "شڪ" وغيره. هڪ ڪتو انهن کي ٻڌڻ تي ڪجهه ڪري ٿو. - ڪمپيوٽرن ۾، نمبر اهڙين حڪمن جي ڪردار کي پورو ڪن ٿا: هر ڪمانڊ هڪ نمبر سان انڪوڊ ٿيل آهي، ڪوڊ، جنهن کي مشين ڪوڊ پڻ سڏيو ويندو آهي. - پروگرام کي عددي شڪل ۾ لکڻ تمام ڏکيو ڪم آهي، ان ڪري ماڻهن پروگرامنگ ٻوليون ۽ ڪمپلر ايجاد ڪيا . اهڙي ٻولي انسان جي سمجھ ۾ اچي ٿي ۽ مرتب ڪندڙ به. ڪمپيلر هڪ خاص پروگرام آهي، جيڪو پروگرامنگ ٻولي ۾ لکيل پروگرام جي متن کي مشين ڪوڊ سيٽ ۾ ترجمو ڪري ٿو. - عام طور تي هڪ پروگرامر هڪ پروگرامنگ ٻولي سان هڪ پروگرام لکي ٿو، ۽ پوء هڪ ڪمپيلر شروع ڪري ٿو، جيڪو پروگرامر طرفان لکيل پروگرام ڪوڊ فائلن کي استعمال ڪري ٿو مشين ڪوڊ فائل - هڪ حتمي (مرتب ٿيل) پروگرام. - نتيجو پروگرام فوري طور تي ڪمپيوٽر تي هلائي سگهجي ٿو. هن طريقي جي خرابي اها آهي ته پروگرام جو ڪوڊ تمام گهڻو منحصر هوندو آهي پروسيسر ۽ آپريٽنگ سسٽم تي. ونڊوز تي مرتب ڪيل پروگرام هڪ Android فون تي ڪم نه ڪندو. - پوءِ Android لاءِ لکيل ۽ مرتب ڪيل پروگرام ڪم نه ڪندو جيڪڏهن مان ان کي ونڊوز تي هلائڻ جي ڪوشش ڪريان؟ - جي. - پر جاوا جو طريقو گهڻو وڌيڪ جديد آهي. - جاوا ڪمپائلر سڀني طبقن کي مشين ڪوڊ جي ھڪڙي پروگرام ۾ گڏ نٿو ڪري، ان جي بدران، اھو ھر ھڪڙي طبقي کي ھڪڙي مشين ڪوڊ ڏانھن نه پر ھڪڙي خاص وچولي ڪوڊ (bytecode) سان گڏ ڪري ٿو. جڏهن پروگرام شروع ٿئي ٿو ته مشين ڪوڊ جي تاليف هلندي آهي. - پوء ڪير آهي جيڪو هڪ پروگرام کي ان جي شروعات ۾ گڏ ڪري؟ - اتي ھڪڙو خاص پروگرام آھي جنھن کي JVM (جاوا ورچوئل مشين) سڏيو ويندو آھي. جڏهن هڪ پروگرام جنهن تي مشتمل آهي bytecode تي عمل ڪيو ويندو آهي، اهو پهريون آهي جيڪو شروع ٿئي ٿو. ۽ پوءِ پروگرام شروع ٿيڻ کان اڳ، JVM ان کي مشين ڪوڊ ۾ مرتب ڪري ٿو. - ڪيترو دلچسپ! ۽ ائين ڪرڻ ۾ ڪهڙو اعتراض آهي؟ - اهو هڪ تمام هوشيار فيصلو آهي، ۽ جاوا جي مجموعي تسلط جي سببن مان هڪ آهي. - هن طريقي جي ڪري، جاوا پروگرام تقريبا ڪنهن به ڊوائيس تي هلائي سگهن ٿا - ڪمپيوٽرن، فون، اي ٽي ايم، ٽوسٽر، بئنڪ ڪارڊ (!). - واهه! - هن طريقي جا ڪيترائي فائدا آهن. اهو ئي سبب آهي ته سڀئي Android پروگرام جاوا سان پڻ لکيل آهن. موبائيل شعبي جي ترقيءَ جي ڪري، جاوا کي ھيٺين علائقن ۾ غالب حيثيت حاصل آھي: 1) انٽرپرائز: بئنڪن، ڪارپوريشنز، سيڙپڪاري فنڊز وغيره لاءِ بھترين سرور-سائڊ ايپليڪيشنون، 2) موبائل: موبائل ايپليڪيشن ڊولپمينٽ (فون، ٽيبليٽ)، Android جي مهرباني. 3) ويب: PHP فيلڊ جي اڳواڻي ڪري ٿو، پر جاوا وٽ پڻ مارڪيٽ جو وڏو حصو آهي. 4) بگ ڊيٽا: ورهايل ڪمپيوٽنگ هزارين سرورن جي ڪلستر ۾. 5) سمارٽ ڊيوائسز: سمارٽ گهر، اليڪٽرانڪس يا ريفريجريٽر لاءِ پروگرام انٽرنيٽ جي رسائي سان. - جاوا صرف هڪ ٻولي ناهي، پر هڪ سڄو سسٽم، لکين تيار ڪيل ماڊلز جيڪي توهان پنهنجي پروگرام ۾ استعمال ڪري سگهو ٿا. هزارين انٽرنيٽ برادريون ۽ فورم جيڪي توهان مدد يا صلاح لاءِ پڇي سگهو ٿا. - جيترو وڌيڪ توھان جاوا سان پروگرام ڪندا، اوترو وڌيڪ توھان سوال جا جواب ڳوليندا - "ڇو جاوا؟". اهو اڄ لاء آهي. - مهرباني، پروفيسر. اهو سڀ کان وڌيڪ دلچسپ ۽ متاثر ڪندڙ ليڪچر هو.
5 ڪيم سان ملاقات
واهه، ٻي انساني عورت. پر هن ڀيري، ڪارا وار سان. ڪيترو دلچسپ! - هيلو، منهنجو نالو Kim Lee-ling آهي. - هيلو، مان اميگو آهيان. - مان ڄاڻان ٿو. اهو مون ئي هو جيڪو تنهنجو نالو کڻي آيو هو. اهو ڊيوگو کي ڪڏهن به نه ٿئي ها. مان پنھنجي ليڪچر کي ھڪڙي ننڍڙي پيشڪش سان شروع ڪرڻ چاھيان ٿو - ھاڻي، توھان جي اسڪرين ڏانھن ڌيان ڏيو! - اڙي، هڪ غلط فليش ڊرائيو. رکو... اميگو جا خيال هن جي دماغ ۾ اليڪٽران جي رفتار تي ڊوڙڻ لڳا. احم... ڇا هن وٽ روبوٽس لاءِ نرم جاءِ آهي؟ ڪيترو دلچسپ! ۽ ٽيبل تي هڪ تصوير - ڇا اهو هن جو پريمي آهي؟ - اچو ته ليڪچر ڏانهن واپس وڃو! اچو ته مان توهان کي تمام سادي لفظن ۾ بيان ڪريان. - ٺيڪ. - مان ڪجهه لفظ شامل ڪرڻ چاهيان ٿو جيڪو پروفيسر ۽ ريشا چيو آهي. - جاوا ۾، توهان نه صرف حڪم لکي سگهو ٿا، پر انهن کي سڌو سنئون ڪوڊ ۾ تبصرو پڻ ڪري سگهو ٿا. انهن راين کي مرتب ڪندڙ طرفان نظرانداز ڪيو ويو آهي، ڄڻ ته ڪو به نه هو. جڏهن پروگرام تي عمل ڪيو ويو آهي، سڀ تبصرا ڇڏيا ويا آهن! - ڇا توھان مھرباني ڪري مون کي ھڪڙو مثال ڏيو؟ - يقينا: - ڪلاس ڪوڊ ۾ اسان جو تبصرو هو "هاڻي اسان ڏيکاريون ٿا...". تبصرو "/*" اکرن سان شروع ٿئي ٿو، ۽ "*/" سان ختم ٿئي ٿو. جڏهن هڪ پروگرام مرتب ڪيو ويندو آهي، ڪمپلر /* ۽ */ - جي وچ ۾ سڀني اکرن کي ختم ڪري ٿو، تنهنڪري مان اتي ڪجهه به لکي سگهان ٿو؟ - جي. عام طور تي ڪوڊ جي حصي تي مختلف تبصرا آهن، جيڪي قابل اعتراض يا سمجھڻ ڏکيو آهن. ڪيترن ئي لائينن جا تبصرا آھن (عام طور تي طريقن کان اڳ لکيل آھي) جيڪي طريقن جي ڪم جي تفصيل بيان ڪن ٿا. - ڪوڊ ۾ رايو قائم ڪرڻ جو ٻيو طريقو اکر استعمال ڪرڻ آهي «//». - ائين ڪرڻ ۾ تبصرو ڪوڊ جو حصو آهي جيڪو ڪردارن سان شروع ٿئي ٿو // لائين جي آخر تائين اهي واقع آهن. تنهن ڪري تبصرو "بند" ڪرڻ لاءِ ڪي به ڪردار نه آهن. - رستي ۾، سافٽ ويئر ڊولپرز کي مزاح جو سٺو احساس آهي، ۽ توهان ڪوڊ ۾ ڪجهه دلچسپ تبصرا ڳولي سگهو ٿا:
// I am not responsible of this code.// They made me write it, against my will.
//Dear future me. Please forgive me.//I can't even begin to express how sorry I am.
// I am not sure if we need this, but too scared to delete.
// hack for IE browser (assuming that IE is a browser)
// This isn't the right way to deal with this, but today is my last day, Ron// just spilled coffee on my desk, and I'm hungry, so this will have to do...
// Catching exceptions is for communists
// Dear maintainer://// Once you are done trying to 'optimize' this routine,// and have realized what a terrible mistake that was,// please increment the following counter as a warning// to the next guy://// total_hours_wasted_here = 42
// When I wrote this, only God and I understood what I was doing// Now, God only knows
// sometimes I believe compiler ignores all my comments
// I dedicate all this code, all my work, to my wife, Darlene, who will// have to support me and our three children and the dog once it gets// released into the public.
GO TO FULL VERSION