اعلان Python سیکھنے میں کون کون دلچسپی رکھتا ہے

بلال

محفلین
سب سے پہلے تو یہ بتایا جائے کہ یہ پائیتھن ہوتی ہے یا ہوتا ہے؟ یہ ایسشین پائیتھن ہے یا کوئی اور ہے؟ یہ انٹرنیٹ پر دوڑتی ہے یا جنگلوں میں رینگتا ہے؟ پائیتھن سیکھنی ہے یا پائیتھن بننا ہے اس کا پتہ چلے تو پھر ہی کچھ بتا سکتے ہیں کہ ہم شرکت کریں گے یا نہیں۔ ;) آسان زبان میں کہوں تو پہلے تعارف کروائیے حضور۔

باقی واصف حسن بیگ صاحب آپ کی بات بالکل درست ہے۔ اصل چیز تو ”پرابلم سالونگ“ ہی ہے اس کے بعد پرگرامنگ کے نظریات و اسلوب آتے ہیں۔ پھر کہیں جا کر کسی زبان کا سینٹیکس آتا ہے۔ لہٰذا یہاں پائیتھن کا سینٹیکس سیکھتے ہیں اور آپ یا کوئی اور بندہ دوسرے دھاگے شروع کرے جہاں پر بنیادیں مضبوط کرتے ہیں۔ اس طرح جس نے بنیادیں مضبوط کرنی ہوئیں وہ بنیادیں مضبوط کر لے گا اور جس کی بنیادیں مضبوط ہو چکی ہیں وہ پائیتھن سیکھ لے گا۔
 
اگر ایک مخصوص پروگرامنگ زبان کی بجائے عام کمپیوٹر سائنس نظریات پر علمی بحث و مباحثہ کا ایک دھاگہ بنا لیا جائے تو میرے مطابق یہ زیادہ سود مند ہو گا۔ مثال کے طور پر ہم پروسیجرل یا امپیریٹو (procedural/imperative) اسلوب کو جاننے کی کوشش کریں۔ اس کے بعد ہم اوبجکٹ اورینٹڈ پروگرامنگ (Object-Oriented Programming - OOP) کے نشیب و فراز سمجھیں۔ پھر ایسپکٹ اورینٹڈ پروگرامنگ (Aspect-Oriented Programming) اور فنکشنل (Functional) اور کونکرنٹ پیراڈایم (Concurrent Paradigm) پر بھی نظر ڈالی جا سکتی ہے۔ ایک مرتبہ کمپیوٹر سائنس کے ان نظریات سے واقفیت حاصل کر لی جائے تو پھر کوئی بھی پروگرامنگ زبان سیکھنا محض اس کی سنٹیکس (syntax) سمجھنا رہ جاتا ہے۔

عام کمپیوٹر نظریات بلکہ عمومی پروگرامنگ نطریات پر اگر ایک دھاگہ شروع ہو گیا تو وہ بہت طویل اور صبر آزما ہو جائے گا۔ اس کی بجائے مختلف دھاگے کھولے جائیں اور ان میں ایک موضوع پر گفتگو ہو تو زیادہ بہتر رہے گا۔ خاص طور پر پروگرامنگ کے دھاگہ بغیر کسی زبان کے بہت پھیکا سا ہوگا اور لوگوں کی دلچسپی زیادہ دیر قائم نہیں رہے گی۔ اس کے علاوہ ایک زبان کے اصول و قواعد ہی نہیں اس کے استعمال کا طریقہ اور مخصوص پس منظر بھی اسے دوسری زبانوں سے جدا کرتا ہے۔ آپ اپنی رائے شامل رکھیں تو انشاءللہ ہم زبان کے ساتھ ساتھ دوسرے دھاگوں میں کمپیوٹر پروگرامنگ کے عمومی نظریات پر بھی گفتگو جاری رکھ سکتے ہیں۔ یہ کام مل جل کر ہو گا تو انشاءللہ سہل رہے گا اور بہت سے لوگوں کی معاونت سے ممکن بھی ہوگا۔
 
میرا مشورہ ہے کہ کسی بھی مخصوص زبان سے ماورا ہو کر کمپیوٹر سائنس کے عام پروگرامنگ تصورات زیر ِبحث لائے جائیں، ان میں ابتدا ہم ذیل کے موضوعات سے کر سکتے ہیں۔
  1. ڈیٹا کو محفوظ کرنے کی بنیادی اقسام (Basic Data Types)
    1. Numbers - Integers (Signed, Unsigned), Floats, Doubles
    2. Strings
    3. Boolean
    4. Arrays - Simple, Associative
  2. متغیرات (Variables) کے بارے میں
    1. جامد متغیرے (Static Variables)
    2. غیر جامد متغیرے (Dynamic Variables)
  3. Program Flow Control Constructs
    1. Conditional Constructs
      1. If...Then...Else...Else if
      2. Switch statement
    2. Looping constructs
      1. Do...While
      2. Do...Until
      3. For Loop
  4. فنکشن (Functions)
ان بنیادی تصورات پر جب سب کو عبور حاصل ہو جائے تو پھر ہم مختلف پروگرامنگ پیراڈائمز (Programming Paradigms) کو سمجھنے اور اس پر بحث کرنے کے قابل ہو جائیں گے۔ یہ بات ذہن میں رہے کہ مذکورِ بالا بنیادی تصورات سے آگاہی حاصل کئے بغیر کوئی بھی پروگرامنگ زبان سیکھنا سعی لاحاصل ہے۔



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

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

پائتھون کا مختصر تعارف:

پائتھون ایک عمومی ، ہمہ جہت ، ہائی لیول پروگرامنگ لینگویج ہے جس کی ڈیزائن فلاسفی کوڈ کا باآسانی پڑھا جانا ہے جسے پروگرامنگ میں Readability کہتے ہیں۔
پائتھون کی نحو (syntax) صاف اور بیانیہ ہے۔
پائتھون کی ایک بڑی اور معیاری لائبریری ہے ۔
پائتھون مختلف پروگرامنگ اسلوب (Programming Paradigms) کو اسپورٹ کرتی ہے جس میں

  • اوبجیکٹ اورینٹڈ Object Oriented oriented
  • امپیریٹو Imperative oriented
  • فنکشنل Functional oriented
  • ایسپکٹ Aspect oriented
  • Structured اسٹرکچر
 
پائتھون مکمل ڈائنامک ٹائپنگ (Dynamic Typing) اور خودکار میموری انتظام (Automatic Memory Management) پر مشتمل ہے ۔ خودکار میموری انتظام کی ایک مشہور قسم گاربیج کولیکشن (Garbage Collection) بھی ہے جو بہت سی دیگر جدید زبانوں میں استعمال ہوتی ہے جیسا کہ جاوا وغیرہ ۔
پائتھون ایک سکرپٹنگ زبان ہے مگر بہت سے غیر سکرپٹنگ سیاق میں بھی استعمال ہوتی ہے۔
پائتھون کو خودمختار پروگرام (stand alone executable)کے طور پر بھی کوڈ کیا جا سکتا ہے۔
پائتھون ایک Interpreted زبان ہے دوسری ہائی لیول زبانوں کے مقابلے میں جو کہ Compiled زبانیں کہلاتی ہیں مثلا جاوا ، سی ۔
پائتھون کے انٹرپریٹر (Interpreter)بہت سے آپریٹنگ سسٹم کے لیے میسر ہیں۔
 
پائتھون کی مختصر تاریخ

پائتھون کا پہلا اطلاقدسمبر 1989 میں منظر عام پر آیا گو اس پر کام 1980 کی دہائی کے اواخر میں شروع ہو گیا تھا۔ Guido van Rossum کو اس کا اصولی مصنف گردانا جاتا ہے جو کہ ہالینڈ کا رہنے والا ہے اور اس زبان کو ABC language کے پیشرو کے طور پر سامنے لایا۔ اب بھی پائتھون کی سمت طے کرنے میں Guido van Rossum کا کلیدی کردار ہوتا ہے اور پائتھون کمیونٹی نے اسے ایک دلچسپ خطاب Benevolent Dictator for Life بھی دے رکھا ہے ۔

2000 میں پائتھون کا دوسرا ورژن سامنے آیا جس میں garbage collector اور Unicode کی سپورٹ شامل تھی۔ اس سے بھی زیادہ اہم پیش رفت یہ تھی کہ ڈویلپمنٹ کا عمل شفاف اور کمیونٹی کے زیر سایہ ہونے لگا۔

2008 میں پائتھون کا تیسرا ورژن سامنے آیا جو کہ پچھلے ورژن کے ساتھ مطابقت نہیں رکھتا البتہ پچھلے دو ریلیزوں کی اس نئے ورژن کے ساتھ مطابقت کی گئی ہے۔

پائتھون کو 2007 اور 2010 میں سال کی پروگرامنگ لینگویج ایوارڈ (TIOBE index)بھی مل چکا ہے۔
 

رانا

محفلین
کوئی مجھے یہ بتائے گا کہ پائتھون کو دوسری زبانوں پر ترجیح کیونکر دی جائے؟ میرا مطلب ہے کہ اگر سنٹکس آسان ہونے کی وجہ سے تو وہ تو ایک دو اور زبانوں کا بھی آسان ہے جیسا کہ روبی وغیرہ۔ میں اسکا فیوچر اسکوپ جاننا چاہ رہاہوں۔ اور یہ کہ آیا اسکو ویب کے لئے زیادہ مفید سمجھا جائے یا جنرل پرپز کے طور پر۔
 
کوئی مجھے یہ بتائے گا کہ پائتھون کو دوسری زبانوں پر ترجیح کیونکر دی جائے؟ میرا مطلب ہے کہ اگر سنٹکس آسان ہونے کی وجہ سے تو وہ تو ایک دو اور زبانوں کا بھی آسان ہے جیسا کہ روبی وغیرہ۔ میں اسکا فیوچر اسکوپ جاننا چاہ رہاہوں۔ اور یہ کہ آیا اسکو ویب کے لئے زیادہ مفید سمجھا جائے یا جنرل پرپز کے طور پر۔

روبی سے زیادہ آسان syntax ہے اس کا اور مستقبل بھی اب تابناک نظر آ رہا ہے اور دوسرا یہ عمومی نوعیت کے لیے بھی مفید ہے اور ویب کے لیے بھی۔ روبی البتہ ویب پر اس کے مقابلے میں زیادہ کارآمد ہے۔

روبی کا بنیادی فلسفہ ہے کہ کسی بھی چیز کو کرنے کے ایک سے زائد طریقہ ہوتے ہیں۔

پائتھون کا بنیادی فلسفہ ہے کہ کسی بھی چیز کو کرنے کا ایک اور صرف ایک ہی واضح طریقہ ہونا چاہیے۔


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

دونوں زبانوں کے حامیوں کی گفتگو پڑھیں تو بتانا نا ممکن ہے کہ کونسی زبان بہتر ہے۔
 

عثمان

محفلین
عید کی وجہ سے توجہ بٹ گئی۔ ابھی کلاس میں واپس آتے ہیں۔ :)
اس مفید دھاگے کے لئے ایک بار پھر شکریہ۔ :)
 

وجی

لائبریرین
اچھی کاوش لگ رہی ہے
ہم بھی قاریوں میں شامل رہیں گے انشاء اللہ

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

عثمان

محفلین
اچھی کاوش لگ رہی ہے
ہم بھی قاریوں میں شامل رہیں گے انشاء اللہ

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

کم از کم امریکہ کینیڈا کی حد تک میں آپ کو بتا سکتا ہوں کہ یہاں آج کل کمپیوٹر سائنس اور پروگرامنگ کے سلسلے میں نئے طلبا کو یونیورسٹیز کی سطح پر آجکل یہی پائے تھن لینگوئج سکھائی جا رہی ہے۔ بلکہ پہلے سمیسڑ کا پہلا کورس ہی اس زبان کا تعارف ہوتا ہے۔ :)
 
پروگرامنگ دنیا سے متعارف کرانے کے لئے پہلے جاوا (Java) سکھائی جاتی تھی لیکن آج کل پائتھون (Python) پر زیادہ زور ہے جس کی عمومی وجہ اس کی پڑھنے اور سمجھنے میں آسانی اور اختصار ہے۔ لیکن یہ بات یہاں کہنا ضروری ہے کہ سی (C) زبان آپ کو پروگرامنگ کی باریکیوں سے روشناس کراتی ہے اور آپ کو ایک بہترین پروگرامر بننے میں مدد دیتی ہے۔ یہاں پر میں خصوصی طور پر سی (C) کی بات کر رہا ہوں جس کو سی پلس پلس (++C)، اوبجیکٹیو سی (Objective-C) اور سی شارپ (#C) سے گڈ مڈ نہ کیا جائے۔
 
چند سوالات میں خود ہی اٹھا لیتا ہوں کیونکہ باقی احباب شاید ابھی مصروف ہیں ۔

پائتھون اگر ہائی لیول لینگویج ہے تو لو لیول لینگویج کونسی ہوتی ہیں اور ہائی لیول اور لو لیول میں کیا فرق ہوتا ہے ؟

ڈائنامک ٹائپنگ کے علاوہ اور کونسی اقسام ہیں ٹائپنگ کی اور ان کی تعریف کیا ہے؟

Interpreter اور Compiler میں کیا فرق ہے ؟
 
Top