JavaRush /جاوا بلاگ /Random-UR /پروگرامنگ زبان کا انتخاب

پروگرامنگ زبان کا انتخاب

گروپ میں شائع ہوا۔
مجھے سب سے پہلے اسکول میں کمپیوٹر سائنس کی کلاسوں میں پروگرامنگ کا سامنا کرنا پڑا۔ یہ n-ary نمبر سسٹم کے اصولوں کی کچھ تھکا دینے والی وضاحتیں تھیں۔ ٹھیک ہے، ایک امتحان کے طور پر، مجھے اپنی ویب سائٹ لکھنا پڑا. پھر مجھے ایسا لگا کہ دنیا میں اس سے زیادہ بور کرنے والی سرگرمی نہیں ہے۔ میں کتنا غلط تھا! بدقسمتی سے، اسکول کمپیوٹر سائنس کا نصاب IT کے کام کی مکمل تصویر فراہم نہیں کرتا، اور یہ واضح نہیں ہے کہ پروگرامنگ زبان کا انتخاب کیسے کیا جائے۔ پروگرامنگ زبان کا انتخاب - 1یہ سوال پوچھنے سے پہلے کہ "کون سی پروگرامنگ زبان سیکھنے کے لیے منتخب کی جائے"، ایک مبتدی کو اپنے آپ کو اس بات سے آشنا ہونا چاہیے کہ کون سی زبانیں موجود ہیں اور ان میں کیا فرق ہے۔

داخلے کی حد: اونچی، کم، درمیانی۔

پروگرامرز کے درمیان، آپ اکثر "داخلے کی دہلیز" کے بارے میں سن سکتے ہیں - ایک ایسا تصور جو کسی فرد "جونیئر" کو اپنا پہلا سنجیدہ پروگرام لکھنے اور نوکری تلاش کرنے کے لیے کافی سطح پر پروگرامنگ زبان میں مہارت حاصل کرنے کے لیے درکار کوششوں کی عکاسی کرتا ہے۔ "داخلے کی حد" علم پر مشتمل ہے:
  • نحو کی خصوصیات اور زبان کی باریکیاں؛
  • لائبریریاں
  • الگورتھم اور ڈیٹا ڈھانچے.
درحقیقت ایکسل میں کام کرنے کو بھی ایک قسم کی پروگرامنگ کہا جا سکتا ہے۔ ویسے، یہ واقف دفتری پروگرام اتنا آسان نہیں جتنا لگتا ہے۔ ایک کے لیے، داخلے کی حد ایک میز بنانے کی صلاحیت ہوگی، دوسرے کے لیے - پیچیدہ فارمولوں اور میکرو کا علم۔ کسی بھی صورت میں، یہ حد چھوٹی ہے. اس کے بعد نیم زبانیں آئیں: مثال کے طور پر، 1C پروگرامنگ۔ پھر - سیکھنے کے لیے سب سے آسان زبانیں: مثال کے طور پر، PHP ۔ اس کے بعد مقامی (عام طور پر انگریزی سے ماخوذ) نحو والی زبانیں ہیں جن کو میموری کے ساتھ دستی تعامل کی ضرورت نہیں ہے: مثال کے طور پر Java , JS ۔ پھر ایسی زبانیں ہیں جن کے لیے میموری، ڈیٹا ڈھانچے اور الگورتھم کو انتہائی احتیاط سے سنبھالنے کی ضرورت ہوتی ہے: مثال کے طور پر، C ، C++ ۔ نوجوان کثیر تمثیل والی زبانوں میں داخلے میں شاید سب سے زیادہ رکاوٹ ہے، کیونکہ ان میں مہارت حاصل کرنے کے لیے آپ کو دیگر پروگرامنگ زبانوں میں ایک سے زیادہ کتے کھانے کی ضرورت ہے: مثال کے طور پر، Scala ۔ لیکن سب سے پہلے، زبان کا انتخاب کرتے وقت، آپ کو فیصلہ کرنا چاہیے کہ آپ آگے کیا کرنا چاہتے ہیں: ویب، انٹرپرائز، ڈیسک ٹاپ یا موبائل ایپلیکیشنز تیار کریں۔

ویب یا نہیں ویب؟

ویب

ویب پروگرامرز کو فرنٹ اینڈ اور بیک اینڈ ڈویلپرز میں تقسیم کیا جا سکتا ہے ۔ یہ سمجھنے کے قابل ہے کہ ان شرائط کا کیا مطلب ہے۔ "فرنٹ اینڈ" ڈویلپرز نام نہاد کلائنٹ سائیڈ سے ڈیل کرتے ہیں - جو صارف دیکھے گا۔ "بیک اینڈ" سروس کا سافٹ ویئر اور ہارڈ ویئر حصہ ہے - جو سرور پر چلتا ہے۔ فرنٹ اینڈ ڈویلپر کے لیے یہ فیصلہ کرنے کے لیے کہ کون سی پروگرامنگ زبان کا انتخاب کرنا ہے، جاوا اسکرپٹ اور اس کے فریم ورک کا ہونا ضروری ہے : انگولر جے ایس، ری ایکٹ اور دیگر۔ JS بولیاں اپنے والدین کی طرح مقبول نہیں ہیں، لیکن یہ مفید بھی ہو سکتی ہیں: CoffeeScript، TypeScript۔ فلیش AS بھی ہے، اس سے پہلے JScript اور VBScript موجود تھے، لیکن صرف ڈایناسور ہی یاد رکھتے ہیں کہ =) اس کے علاوہ، آپ کو HTML اور CSS کو سمجھنے کی ضرورت ہے ۔
پروگرامنگ زبان کا انتخاب - 2
بہت سے ابتدائیوں کا خیال ہے کہ JavaScript اور Java تقریباً ایک ہی چیز ہیں؛ ان زبانوں کو الجھن میں نہیں ڈالنا چاہیے۔ جے ایس کو "LiveScript" کہا جاتا تھا اور لفظ "جاوا" کی مقبولیت کی وجہ سے اس کا موجودہ نام بالکل ٹھیک ہے۔ پی ایچ پی، ازگر، روبی، پرل، جاوا ویب بیک اینڈ کے لیے موزوں ہیں۔ یہاں میں پی ایچ پی کی طرف توجہ مبذول کرانا چاہوں گا - ہم دوسری زبانوں کے بارے میں بعد میں بات کریں گے - سیکھنے کے لیے آسان ترین زبانوں میں سے ایک، جس میں داخلے کی حد کم ہے۔ روبی، واقف ویب ڈویلپرز کے سروے کے مطابق، آہستہ آہستہ لیکن یقینی طور پر مقبولیت حاصل کر رہی ہے: اسے اپنی اختصار اور خوبصورتی کی وجہ سے پسند کیا جاتا ہے۔

غیر ویب (انٹرپرائز، ڈیسک ٹاپ، موبائل)

میں نے خاص طور پر ان پروگرامنگ لینگویجز کو اس طرح کے عجیب نام کے ساتھ ایک زمرے میں گروپ کیا ہے۔ ان میں سے زیادہ تر کو انٹرپرائز، ڈیسک ٹاپ، اور یہاں تک کہ موبائل ایپلیکیشنز لکھنے کے لیے استعمال کیا جا سکتا ہے۔ Python ، سمجھنے میں آسان OOLP، حال ہی میں مشین لرننگ کی ترقی کی وجہ سے ناقابل یقین حد تک مقبول ہوا ہے : اس کے پیروکار بڑے پیمانے پر Python کا استعمال کرتے ہیں۔ ایم ایل آئی ٹی میں کافی نوجوان علاقہ ہے، اور اگرچہ پہلا پھل پہلے ہی موصول ہو چکا ہے، میں پروگرامنگ لینگویج کا انتخاب کرتے وقت اس صنعت میں جانے کی جلدی نہیں کروں گا۔ سب سے پہلے، آپ کو ریاضی میں بہت اچھا ہونا ضروری ہے. دوم، مقبولیت کی لہر اسی طرح چل سکتی ہے جیسے "بلاک چین" یا "نینو ٹیکنالوجی" کے ساتھ۔ اس کے علاوہ، جیسا کہ آپ کو یاد ہے، Python ویب ڈویلپمنٹ میں استعمال ہوتا ہے۔ C++ : کلاسک، سب کچھ "پلسز" کی بنیاد پر بنایا گیا ہے۔ یہ زبان تمام مقبول OOLPs کی پیشوا تھی، اور ایک ابتدائی شخص کو اس پر ضرور توجہ دینی چاہیے۔ بہت سی مشہور ایپلی کیشنز اس پر مبنی ہیں۔ لیکن "اپنے آپ کو پاؤں میں گولی مارنے" کا زیادہ امکان اور سمجھنے میں مشکل نحو اس امکان کی نفی کرتے ہیں کہ پروگرامنگ کے اس ماسٹوڈن میں مہارت حاصل کرنے والے کسی نوخیز شخص کے۔ کوٹلن - جاوا برائے ہپسٹرز - OOP اور فنکشنل پروگرامنگ کا ایک پاگل مرکب۔ حال ہی میں اس حقیقت کی وجہ سے مشہور ہے کہ ایک تجربہ کار ڈویلپر جو جاوا سے کوٹلن میں سوئچ کرتا ہے اپنی پیداواری صلاحیت کو نمایاں طور پر بہتر بناتا ہے۔ ایک تجربہ کار ڈویلپر جلد ہی اس زبان کا عادی ہو جائے گا۔ ویسے تو اسکیلا پر بھی یہی لاگو ہوتا ہے لیکن کوٹلن اینڈرائیڈ میں مقبول ہے۔ جاوا ایک ابتدائی کے لیے سیکھنا آسان ہے۔ بشمول، جاوا رش کا شکریہ : یہ یہاں تھا کہ میں نے پروگرامنگ زبان کا انتخاب کرنے کا طریقہ سمجھا =) جاوا نحو واضح ہے، "اپنے آپ کو پاؤں میں گولی مارنے" کا امکان ہے، لیکن اہم نہیں۔

OOP یا POP؟

طریقہ کار کے نقطہ نظر

طریقہ کار پر مبنی نقطہ نظر میں ترتیب وار بیانات پر مشتمل ایک پروگرام لکھنا شامل ہوتا ہے جسے مسائل کی ایک مخصوص حد کو مؤثر طریقے سے حل کرنے کے لیے ایک مکمل میں جمع کیا جا سکتا ہے۔ ان زبانوں میں شامل ہیں: C ، PureBasic اور Pascal ۔ وہی جو ہائی اسکول اور جونیئر طلباء میں مایوسی لاتے ہیں۔ ایک نسبتاً نوجوان GO بھی ہے ۔ تاہم، طریقہ کار کی زبانوں سے واقفیت ممکنہ ڈویلپر کے لیے بہت مفید ہے۔ میرے لیے طریقہ کار کی زبانوں میں غرق کرنا ریاضی کے نظام (Wolfram) اور یونیورسٹی کی تحقیقی سرگرمیوں سے وابستہ ہے۔ درست الگورتھمک نقطہ نظر اور سادہ طریقہ کار کی بدولت، پروگرام کے آغاز سے اس کے اختتام تک لکیری طور پر آگے بڑھتے ہوئے، میں ان اقدار کا حساب لگانے کے قابل ہو گیا جو جدید نظریاتی طبیعیات سے متعلق ہیں۔ یہ ان "تسلسل" زبانوں کی بدولت ہے کہ آپ یہ سمجھنا شروع کر دیتے ہیں کہ بعض اوقات کوڈ لکھنا اپنے آپ پر شمار کرنے سے زیادہ آسان ہوتا ہے۔ PPP کا مطالعہ اچھی الگورتھمک تربیت فراہم کرتا ہے، جسے ایک آجر تقریباً ہمیشہ کسی امیدوار میں ملازمت پر رکھنا چاہتا ہے۔ IT میں ہر چیز اور ہر چیز کی بنیادیں طریقہ کار کی زبانوں پر استوار ہوتی ہیں، اس لیے انہیں کم نہ سمجھیں۔ ویسے، ابتدائی جو فیصلہ کرتے ہیں کہ کون سی پروگرامنگ زبان سیکھنے کے لیے منتخب کی جائے اکثر یہ سوچتے ہیں کہ ملٹی تھریڈنگ OOP کا خصوصی اختیار ہے۔ یہ غلط ہے. طریقہ کار پروگرامنگ زبانیں آپ کو متوازی حساب کتاب کرنے کی بھی اجازت دیتی ہیں۔
پروگرامنگ زبان کا انتخاب - 3

آبجیکٹ پر مبنی نقطہ نظر

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

مثال

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

Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:

  • Марка
  • Объем двигателя
  • Мощность
  • Год выпуска
  • Новый or б/у
  • Цена

И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода.

Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения.

А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми.

Итак, ООП — это стиль программирования, позволяющий объединять данные и методы одной сущности и работать с ними How с цельным an objectом. Сущности могут выстраиваться в иерархии и взаимодействовать между собой, не вдаваясь в подробности внутренней реализации друг друга. Для себя я выделяю три причины, по которым ООП — более прогрессивный подход:
  1. ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.

  2. Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.

  3. Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
Нужно помнить о том, что один подход не противоречит другому, но иерархически ООП всё же находится выше. Собственно, почему я рекомендую именно Java? Я бы выделил следующие причины:
  1. Кроссплатформенность.

    Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».

  2. Документация.

    وسیع ترین دستاویزات کی بنیاد: سرکاری اوریکل دستاویزات، تربیتی پورٹلز، مسلسل ترقی پذیر کمیونٹی۔ ترقی کے دوران پیدا ہونے والے زیادہ تر سوالات کے جوابات چند منٹوں میں مل سکتے ہیں، اہم بات یہ سمجھنا ہے کہ سرچ انجن میں کیا ٹائپ کرنا ہے =)

  3. مقبولیت

    جاوا دنیا کی سب سے مشہور پروگرامنگ لینگویج ہے: مذکورہ بالا Android اور ویب ڈویلپرز کے علاوہ، تقریباً ہر پہلی بار انٹرپرائز ڈویلپر جاوا میں لکھتا ہے۔ انٹرپرائز ایک اندرونی ترقی ہے جو بڑی کارپوریشنوں کی ضروریات کے لیے ضروری ہے۔

    ہر سال، نفرت کرنے والے "جاوا کی موت" کی پیشین گوئی کرتے ہیں، وہ کہتے ہیں: " اوریکل اس کی حمایت کرنا چھوڑ دے گا، اور عام طور پر آپ بکواس کر رہے ہیں ۔" یہ غلط ہے! جاوا کے نئے ورژن ہر چھ ماہ بعد جاری کرنے کا وعدہ کیا گیا ہے۔ تازہ ترین ورژن کی سب سے اہم اختراعات اور خصوصیات یہاں پڑھی جا سکتی ہیں ۔

    میرے لیے، جاوا 8 میں لیمبڈاس ایک انقلاب اور ایک دریافت تھی، نئے ورژن کا ذکر نہیں کرنا! اب میں ایک "ریٹروگریڈ" پروجیکٹ پر کام کر رہا ہوں، اس لیے میں اختراعات میں دلچسپی نہیں لیتا، لیکن یہ حقیقت ہے کہ جاوا زندہ ہے۔

    پروگرامنگ زبان کا انتخاب - 4
  4. انڈروئد.

    اینڈرائیڈ نے گزشتہ 4 سالوں سے موبائل فون مارکیٹ کے 80% سے زیادہ پر اعتماد کے ساتھ قبضہ کر رکھا ہے ؛ TVs، میڈیا پلیئرز اور یہاں تک کہ کاروں میں میڈیا سسٹم بھی اس آپریٹنگ سسٹم کے تحت کام کرتے ہیں۔ اور اس OS کی ترقی بنیادی طور پر جاوا میں کی جاتی ہے۔ ذرا تصور کریں کہ کیا امکانات کھل رہے ہیں۔ جب مجھے ایک اینڈرائیڈ ڈویلپر کے طور پر نوکری ملی، تو مجھے دلچسپی پیدا ہوئی: میں جس پروڈکٹ کو تیار کر رہا ہوں اس کی قیمت کتنی ہے؟ معلوم ہوا کہ قیمت فی سال تقریباً $5 ہے۔ ایک معقول سوال پیدا ہوا: اس دفتر کے لیے تنخواہ، کوکیز، ٹینس ٹیبل، روبوٹس اور دیگر "اچھی چیزوں" کے لیے فنڈز کہاں سے آئے؟ یہ مقدار کا معاملہ ہے: ہماری ایپلیکیشن کے 20 ملین صارفین ہیں۔

  5. تنخواہیں

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

پروگرامنگ زبان کی مقبولیت

پروگرامنگ زبان کا انتخاب کرتے وقت، آپ کو سیکھنے کے حتمی مقصد کے بارے میں سوچنے کی ضرورت ہے - اپنی پہلی نوکری حاصل کرنا۔ مختلف زبانوں کی مقبولیت کا اندازہ لگانے کے لیے، میں ایک مقبول بھرتی پورٹل پر گیا اور ماسکو کے لیے مختلف درخواستوں کے لیے خالی آسامیوں کی تعداد کو دیکھنا شروع کیا۔ آپ ذیل میں نتائج دیکھ سکتے ہیں۔
جاوا: 277
python: 227
php: 188
c#: 147
c++: 131
روبی: 40
scala: 24
کوٹلن: 20
حال ہی میں مقبول ازگر بھی جاوا سے آگے نہیں نکل سکا۔ لیکن یہ ساپیکش ڈیٹا ہیں: ایک مخصوص شہر، ایک مخصوص دن۔ سرکاری ذرائع ہیں، آئیے ان کی طرف رجوع کرتے ہیں۔ اکتوبر 2018 تک، TIOBE کے مطابق، جاوا پہلے نمبر پر ہے۔ PYPL درجہ بندی میں ، Java دوسرے نمبر پر ہے، JS سے بہت آگے اور "فیشن ایبل" Python کا مقابلہ کرتا ہے۔

نتائج

پروگرامنگ لینگویج کا انتخاب کرتے وقت ایک ابتدائی کو کس چیز پر توجہ دینی چاہیے:
  • مقبولیت (جاوا مستقل طور پر ایک اہم پوزیشن پر قبضہ کرتا ہے)؛
  • داخلے کی حد (جاوا کے لیے - اوسط: آجر کے لیے مطلوبہ صلاحیتوں کی حد کافی وسیع ہے)؛
  • دستیاب مواد (روسی زبان میں JavaRush سے ملتا جلتا کوئی پورٹل نہیں ہے، لہذا، ہتھیلی سے اندازہ لگایا جاتا ہے کہ کون =))؛
  • درخواست کے شعبے: جتنی زیادہ صنعتوں میں پروگرامنگ زبان استعمال کی جا سکتی ہے، مارکیٹ میں اتنے ہی زیادہ ماہرین کی ضرورت ہوتی ہے۔ میں پہلے ہی کراس پلیٹ فارم کے بارے میں بات کر چکا ہوں، لیکن میں اسے دہراتے ہوئے نہیں تھکوں گا۔
بلاشبہ، ہر جگہ خرابیاں ہیں، لیکن جو چلتا ہے وہ سڑک پر عبور حاصل کر لے گا: صرف آپ فیصلہ کر سکتے ہیں کہ کون سی پروگرامنگ زبان کا انتخاب کرنا ہے ۔ آپ کی پڑھائی میں اچھی قسمت!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION