جاوا کیا ہے ؟

انٹرنیٹ سے کسی بھی حوالے سے وابستہ ہر شخص نے کسی نہ کسی صورت جاوا کا تذکرہ سن رکھا ہوگا لیکن بعض اوقات ایسا محسوس ہوتا ہے جیسے جاوا کے حوالے کچھ نہ کچھ کنفیوژن موجود ہے ۔ اس تناظر میں مجھے جاوا کے سلسلے میں ایک پوسٹ کی ضرورت محسوس ہوئی تاکہ اردو بلاگ پڑھنے والوں کے ذہن میں جاوا کے حوالے سے موجود کسی بھی سوال کا جواب دیا جاسکے۔

جاوا پروگرامنگ لینگویج، جاوا پلیٹ فارم، جاوا اسکرپٹ اور جاوا اپلٹ وہ عمومی فقرے ہیں جو کم و بیش تمام لوگوں کے سننے میں آتے ہیں اور عام طور پر انہیں ایک دوسرے سے متعلقہ ہی سمجھا جاتا ہے۔ گو کے ان تمام چیزوں کا آپس میں گہرا تعلق ہے لیکن پھر بھی کہیں نہ کہیں ہر چیز کا ایک الگ مقصد اور جداگانہ حیثیت بھی ہے جس کو میں اس پوسٹ میں اجاگر کرنے کی کوشش کروں گا۔

جاوا کی مختصر تاریخ
یہ ان دنوں کی بات ہے جب سی پروگرامنگ لینگویج کا طوطی بولا کرتا تھا لیکن سی یا سی پلس پلس سے متعلقہ مسائل کے حل کے لیے کوششیں جاری تھیں۔ سی کے ساتھ سب سے بڑا مسئلہ اسکو ہر ہارڈ ویر اور آپریٹنگ سسٹم کے لیے الگ سے کمپائل کرنا تھا۔ اسکے علاوہ سی کی پروگرامنگ کی اپنی پیچیدگیاں بھی تھیں۔۔ 1991 میں جیمز گوزلنگ (بابائے جاوا) نے پہلی دفعہ جاوا پروگرامنگ لینگویج کی بنیاد رکھی اور اسکا پہلا مقصد فرم ویر یا سیٹ ٹاپ باکس سافٹ ویر لکھنا تھا۔ پہلے پہل اسکا نام “اوک“ رکھا گیا جو گوزلنگ کے آفس کے باہر ایک درخت کے حوالے سے تھا بعد میں اسکا نام جاوا رکھ دیا گیا۔ اس حوالے سے مختلف کہانیاں سنائی جاتی ہیں لیکن کافی اور انڈونیشیا کے جزیرے جاوا کا تعلق ہی نام کابنیادی ماخذ گردانا جاتا ہے۔ جاوا کی پہلی پبلک ریلیز 1995 میں آئی اور اسکو “ایک دفعہ لکھو اور ہر جگہ چلاؤ“ کے نعرے کے ساتھ لانچ کیا گیا۔

تعارف
جب ہم عام طور پر “جاوا“ کا لفظ استعمال کرتے ہیں تو دراصل ہم تین اہم چیزوں کی بات کرتے ہیں
اولاً۔ جاوا پروگرامنگ لینگویج
دوئم ۔ جاوا ورچوئل مشین
سوئم۔ جاوا کامن کلاس لائبریری

جاوا پروگرامنگ لینگویج دراصل کسی بھی کمپیوٹر لینگویج کی طرح قواعدوضوابط کا ایک سلسہ ہے جسکی مدد سے ہم کامن کلاس لائبریری کو استعمال کرتے ہوئے جاوا ورچوئل مشین پر چلانے کے لیے پروگرامز لکھتے ہیں۔

آپ اسکو تینوں اجزاء کی سادہ ترین تعریف یا تعلق کہہ سکتے ہیں۔ کیونکہ اس بلاگ کا مقصد جاوا پر تفصیلی روشنی ڈالنا ہے چناچہ میں سرسری ذکر پر اکتفا نہیں کروں گا بلکہ تمام اجزاء کو ایک ایک کرکے بیان بھی کروں گا، وہ قاری جنکو اسکی تفصیل میں دلچسپی نہ ہو اگلے پیرائے پر جاسکتے ہیں۔

جاوا پروگرامنگ لینگویج
جاوا کا سلسہ نسب پہلی ہی پشت پر سی سے جا ملتا ہے اسی لیے کہا جاتا ہے کے جاوا دراصل سی پلس پلس پروگرامرز نے سی پلس پلس پروگرامرز کی آسانی کے لیے ہی بنائی ہے چناچہ اس کے قواعد ضوابط تقریبا وہی ہیں جو سی کے ہوتے ہیں جیسے کے اسٹیٹمنٹ کا خاتمہ، بلاک کا آغاز و اختتام یا جاوا پروگرام لکھنے کے لیے لوئر کیس کا استعمال۔ جاوا ایک آبجیکٹ اورینٹد لینگویج(او۔او۔پی) ہے یعنی اسکی تمام پروگرامنگ صرف اور صرف او۔او۔پی کے تحت ہی ہوسکتی ہے۔ جاوا میں لکھے پروگرامز کو جاوا ورچوئل مشین پر چلانے کے لیے جاوا کمپائلر سے اسکا بائنری کوڈ بنایا جاتا ہے جسے بائٹ کوڈکہتے ہیں۔ آپ نے اکثر اپنے کمپیوٹر پر کلاس ایکشٹینشن کی فائلیں دیکھی ہونگی دراصل یہ بائٹ کوڈ ہی ہوتا ہے۔

جاوا ورچوئل مشین
جاوا ورچوئل مشین دراصل جاوا کا دل ہے۔ اسی کو استعمال کرتے ہوئے جاوا “ایک دفعہ لکھو اور ہر جگہ چلاؤ“ کے نعرے کو عملی شکل دے پاتی ہے۔ جاوا ورچوئل مشین دراصل بائٹ کوڈ کو اصل کمپیوٹر پر رن کرنے کا کام انجام دیتی ہے۔ کیونکہ اصل کمپیوٹر اپنی ساخت اور اسمبلی لینگویج کے اعتبار سے مختلف ہوتے ہیں چناچہ ہر پلیٹ فارم کے لیے الگ جاوا ورچوئل مشین درکار ہوتی ہے جیسے کے جاوا ورچوئل مشین ونڈوز کے لیے ۔ یا جاوا ورچوئل مشین ایپل میک کے لیے وغیرہ وغیرہ۔ کیونکہ جاوا ورچوئل مشین کی ان پٹ بائٹ کوڈ ہوتا ہے چاہے اسے کسی بھی پلیٹ فارم پر چلائیں چناچہ آپ کسی بھی پلیٹ فارم پر جاوا کا کمپائل کوڈ کسی اور پلیٹ فارم پر بغیر ری کمپائل کیے چلا سکتے ہیں کیونکہ ورچوئل مشین کے لیے بائٹ کوڈ ہمیشہ یکساں رہتا ہے ۔ جبکہ دوسری کمپائلڈ لینگویجز کے لیے ایسا نہیں ہے اور تقریبا یہی چیز اب ڈاٹ نیٹ پلیٹ فارم کے لیے بھی استعمال کی جاتی اور ڈاٹ نیٹ نے اس سے بھی آگے بڑھ کر لینگویج کی سیلیکشن سے بھی آزادی دے دی ہے ۔۔ اس پر میں پھر کسی بلاگ میں گفتگو کروں گا۔

جاوا کامن کلاس لائبریری
جاوا کامن کلاس لائبریری دراصل پہلے سے تیارشدہ وہ کوڈ ہے جو عام طور پر پروگرامز میں استعمال کیا جاتا ہے۔ عمومی طور پر انہیں لینگویج کا حصہ گردانا جاتا ہے لیکن تیکنیکی حوالے سے دیکھیں تو دراصل یہ بھی ایک پروگرام ہی ہے جو جاوا لینگویج کو استعمال کرکے بنایا جاتا ہے ۔

جاوا ورچوئل مشین اور کامن کلاس لائبریری کو ملا کر جو سافٹ ویر ماڈیول بنتا ہے اسے ہم جاوا رن ٹائم کے نام سے جانتے ہیں۔ یعنی آگر آپ کو اپنی مشین پر صرف جاوا کی اپلیکیشنز چلانی ہیں تو پھر آپ کو کم از کم جاوا ورچوئل مشین اور کامن کلاس لائبریری درکار ہوگی جسکا مشترکہ نام جاوا رن ٹائم ہے۔ جاوا میں ایپلیکیشنز لکھنے کے لیے آپ کو رن ٹام کے ساتھ ساتھ کمپائلر اور متعلقہ ٹولز بھی درکار ہونگے جن کا مشترکہ نام جاوا سافٹ ویر ڈیویلپمنٹ کٹ یعنی جاوا ایس ڈی کے ہے۔

کلاس لائبریری کی بنیاد پر جاوا کی کئی ڈسٹریبیوشنز دستیاب ہیں جنکو جاوا اسٹینڈرڈ ایڈیشن (جاوا۔ایس۔ ای)، جاوا انٹرپرائز ایڈیشن (جاوا ۔ای۔ ای) اور جاوا موبائل ایڈیشن (جاوا۔ ایم ۔ای) کے نام سے جانا جاتا ہے اور عام طور پر جاوا پلیٹ فارم کے نام سے پکاراجاتا ہے۔ جاوا ایس ای جیسا کے پہلے بیان کیاگیا کے کامن کلاس لائبریری ہے جسکی مدد سے عمومی پروگرامز اور ایپلٹ (ویب براوزر میں چلنے والی جاوا اپلیکشن) لکھی جاتی ہیں۔ جاوا ای ای کی مدد سے ویب اور انٹرپرائز اپلیکشنز جن میں سرولیٹ، ای جے بی اور جے ایس پی جیسی اپلیکشن لکھی جاتی ہیں اور موبائل ایڈیشن میں موبائل فونز اور ہینڈ ہیلڈز کے لیے اپلیکشن تیار کی جاتی ہیں۔

جاوااسکرپٹ
اگر آپ سے سوال کیا جائے کے اردو کس اسکرپٹ میں لکھی جاتی ہے تو آپ کا جواب ہوگا عربی اسکرپٹ میں ۔ تو کیا اردو عربی ہے؟ جی نہیں ۔۔ اسی طرح جاوا اسکرپٹ بھی صرف دراصل جاوا اسکرپٹ میں لکھی جاتی ہے یعنی اسکے حروف تہجی جاوا سے مستعار لیے ہوئے ہیں لیکن اسکا اور جاوا کا تعلق بس یہیں ختم ہوجاتا ہے۔ جاوا اسکرپٹ نیٹ اسکیپ کی تیار کی ہوئی اسکرپٹنگ لینگویج ہے جو کے کسی بھی جاوا اسکرپٹ سمجھنے والے ویب براؤزر پر رن کی جاسکتی ہے ۔ اسکرپٹنگ لینگویج کو کمپائل کر کے بائنری یا بائٹ کوڈ میں تبدیل کرنے کی ضرورت نہیں ہوتی کیونکہ انکو رن ٹائم پر اسکرپٹنگ انٹرپریٹر لائن با لائن چلاتا ہے۔ عمومی طور پر جب یہ کہا جاتا ہے کہ اپنے براوزر میں جاوا ایکٹو کرلیں تو مقصد جاوا اسکرپٹ انٹر پریٹر ایکٹو کرنا ہوتا ہے۔ جبکہ جاوا ایپلٹ چلانے کے لیے آپ کے براؤزر میں جاوا رن ٹائم کا ہونا ضروری ہے۔ جاوا اسکرپٹ اور جاوا لینگویج کی پروگرامنگ ایک دوسرے سے بہت مختلف ہے لیکن جاوا لینگویج کے نئی ورژن میں جاوا پروگرامز میں مختلف اسکرپٹنگ لینگویج کو چلانے کی سپورٹ بھی شامل کردی گئی ہے یعنی آپ جاوا پروگرامز میں جاوا اسکرپٹ بھی رن کرسکتے ہیں۔

امید ہے اس طویل بلاگ سے جاوا کے بارے میں جاننے کی خواہش رکھنے والوں کو کئی سوالات کے جواب مل گئے ہونگے۔ مزید کسی چیز کے بارے میں تفصیل درکار ہو تو تبصرے کا فارم حاضر ہے۔ مزید تفصیلات کے لیے مندرجہ ذیل لنکس کارآمد ہوسکتے ہیں

وکی پیڈیا
جاوا کی آفیشل سائٹ
دی سرور سائڈ

آپ کے تبصرے۔ اب تک کل تعداد ۔ (7)

محمد شاکر عزیز

December 5th, 2007 at 10:09 pm    


بہترین معلوماتی تحریر تھی۔
پس موضوع: یہ فونٹ لینکس پر نہیں چلتے۔ جبکہ ونڈوز پر موزیلا میں بہت بمباسٹک رزلٹ ہیں ان کے۔ ایسا ہی پاک نستعلیق کے ساتھ بھی ہوتا ہے لینکس پر۔:(

راشد کامران

December 5th, 2007 at 10:22 pm    


شکریہ شاکر۔۔ یہ فانٹس لینکس میں بھی بہترین رزلٹ دیتے ہیں۔۔ مسئلہ رنڈرنگ انجن کا ہے ۔۔ مختلف ڈسٹریبیوشنز میں پانگو انیبل اور ڈس ایبل کا مسئلہ آتا ہے ۔۔ یعنی فائر فاکس کا مسئلہ ہوتا ہے۔۔ میں نے انکو ریڈ ہیٹ، یوبنٹو اور ماندریوا میں چیک کیا ہے ایک جیسے ہی آتے ہیں۔۔ اگر اردو نسخ ایشیا ٹائپ درست آئے تو یہ بھی صحیح دکھائی دیتے ہیں۔

بدتمیز

December 5th, 2007 at 11:53 pm    


سلام
میں‌ کتنے عرصے سے آپ سے کانٹیکٹ کرنے کا سوچ رہا تھا۔ لیکن سستی آڑے آ جاتی تھی۔ ابھی بھی دوپہر سے رات ہو گئی۔
آپ نے بی بی سی اردو کی ویب سائیٹ پر وہ کوڈ دیکھا ہے جو اہم خبروں کو اردو میں ایسے ظاہر کرتا ہے جیسے ٹائپ ہو رہی ہوں۔
کیا آپ اس کو اس قابل بنا سکتے ہیں کہ وہ بلاگ کی حالئہ پوسٹس ایسے ظاہر کرے؟ اس کو آپٹمائز بھی کر سکے کہ اگر کسی کا بلاگ تین چار سال پرانا ہے تو وہ حالئہ نہیں لیکن اس دن کسی بھی سال میں جو جو پوسٹس ہوں وہ اس طرح نظر آئے؟
سب کے لئے نہ صحیح جب بھی وقت ملے آپنے بلاگ کے لئے ہی یہ ضرور بنا لیں۔

ساجداقبال

December 6th, 2007 at 6:29 am    


شکریہ راشد بھائی اتنی مفید تحریر کا۔

راشد کامران

December 6th, 2007 at 12:55 pm    


بدتمیز (صاحب) میں بالکل یہ کام کرسکتا ہوں اور اپنے لیے ہی تمام اردو بلاگز کے لیے کیوں نہیں۔۔ بس تھوڑا وقت دیں کیونکہ آج کل میں وطن عزیز کے دورے کے سلسلے میں مصروف ہوں ۔۔ جنوری کے وسط میں انشاء اللہ یہ کام ہوجائے گا۔

ساجد اقبال صاحب ۔۔ تحریر پسند کرنے کا شکریہ۔۔

نبیل

December 7th, 2007 at 3:42 am    


راشد کامران، اس مفید تحریر کے لیے بہت شکریہ۔
اردو کو انٹرنیٹ پر اپنی جگہ بنانی ہے تو اس قسم کی مزید تحریریں سامنے آنی چاہییں۔

محمد شمیل قریشی

December 23rd, 2007 at 11:47 am    


راشد کامران ، بہت خوب ۔ آپ کی تحریر میں کمال کی روانی ہے ۔ مجھے بھی ان ہی لوگوں میں سمجھیۓ جن کو اس لنگویج کے سلسلے میں بہت سے ابہام رہے ہیں ۔ یہ تحریر بہت سوں کی جاوا کے سلسلے میں غلط فہمی کو دور کرے گی ۔

اس بارے میں اپنی رائے کا کھل کر اظہار کریں

Name *

Mail *

Website