CodeGym /مدونة جافا /Random-AR /اختيار لغة البرمجة
John Squirrels
مستوى
San Francisco

اختيار لغة البرمجة

نشرت في المجموعة
تعرفت على البرمجة لأول مرة في المدرسة، في دروس حول علوم الكمبيوتر. وتتكون هذه من بعض التفسيرات المملة لكيفية عمل أنظمة الأعداد n-ary. وبالطبع، كان هناك اختبار يتطلب منك كتابة موقع الويب الخاص بك. في ذلك الوقت، بدا لي أنه لا يمكن أن يكون هناك مهنة أكثر مملة. كم كنت مخطئا! لسوء الحظ، لا يقدم برنامج علوم الكمبيوتر في المدرسة الثانوية صورة كاملة عن عمل تكنولوجيا المعلومات، ولا يشرح كيفية اختيار لغة البرمجة. قبل أن يسأل "ما هي لغة البرمجة التي يجب أن أتعلمها؟"، يجب على المبتدئ أن يتعرف على اللغات الموجودة وكيف تختلف عن بعضها البعض. اختيار لغة البرمجة - 1

عتبة الدخول: عالية، منخفضة، متوسطة

يتحدث المبرمجون غالبًا عن "عتبة الدخول" - وهو مفهوم يعكس مقدار الجهد المطلوب لأي "مطور مبتدئ" لإتقان لغة برمجة بشكل جيد بما يكفي لكتابة أول برنامج جاد له أو لها والعثور على وظيفة. تتكون "عتبة الدخول" من معرفة:
  • خصوصيات بناء الجملة والفروق الدقيقة في اللغة
  • المكتبات
  • الخوارزميات وهياكل البيانات.
يمكن أن يسمى العمل في Excel نوعًا من البرمجة. بالمناسبة، برنامج المكتب المألوف هذا ليس بالبساطة التي يبدو عليها. بالنسبة لمستخدم واحد، قد يكون حد الإدخال هو القدرة على إنشاء جدول. لسبب آخر، قد يكون معرفة الصيغ المعقدة ووحدات الماكرو. وفي كلتا الحالتين، هذه العتبة صغيرة. بعد ذلك تأتي أشباه اللغات، مثل برمجة 1C . ثم هناك أبسط اللغات التي يمكن تعلمها، على سبيل المثال PHP . علاوة على ذلك، لدينا لغات ذات بناء جملة أصلي (عادة ما تكون مشتقة من اللغة الإنجليزية) ولا تتطلب منك التعامل مع إدارة الذاكرة، على سبيل المثال Java و JS . ثم هناك اللغات التي تتطلب معالجة دقيقة للغاية للذاكرة وهياكل البيانات والخوارزميات، على سبيل المثال، C و C++ . ربما تتمتع اللغات الناشئة متعددة النماذج، على سبيل المثال، Scala ، بأعلى عتبة دخول، لأن إتقانها يتطلب منك التعمق في العديد من نماذج البرمجة. ولكن قبل أن تختار لغة، يجب أن تقرر ما تريد القيام به بعد ذلك: التطوير للويب أو المؤسسة أو سطح المكتب أو الأجهزة المحمولة .

الويب أم لا الويب؟

ويب

يمكن تقسيم مبرمجي الويب إلى مطوري الواجهة الأمامية والواجهة الخلفية . يجب أن تفهم ما تعنيه هذه المصطلحات. ويشارك مطورو الواجهة الأمامية في جانب العميل، أي ما يراه المستخدم. تتعلق "الواجهة الخلفية" بمعالجة البيانات وتخزينها - وهي جزء من الخدمة التي يتم تشغيلها على الخادم. بالنسبة لمطور الواجهة الأمامية الذي يقرر لغة البرمجة التي يجب تعلمها، تعد أطر عمل JavaScript وJavaScript (Angular JS وReact وغيرها) ضرورية. لهجات JS، مثل CoffeeScript وTypeScript، ليست شائعة مثل اللهجات الأصلية، ولكنها قد تكون مفيدة أيضًا. يوجد أيضًا Flash AS، وكان هناك JScript وVBScript، لكن الديناصورات فقط هي التي تتذكر هذا =) بالإضافة إلى كل هذا، تحتاج إلى فهم HTML و CSS . اختيار لغة البرمجة - 2يعتقد العديد من المبتدئين أن JavaScript وJava هما نفس الشيء تقريبًا. لا تخلط بين هذه اللغات. كان يُطلق على JS سابقًا اسم "LiveScript" ولم يحصل على اسمه الحالي إلا بسبب شعبية كلمة "Java". بالنسبة لمطور الويب الخلفي ، تعد PHP وPython وRuby وPerl وJava مناسبة. أريد هنا التركيز على PHP (سنتحدث عن اللغات الأخرى لاحقًا). PHP هي واحدة من أسهل اللغات للتعلم، ولها عتبة دخول منخفضة. وفقًا لاستطلاع رأي لمطوري الويب المشهورين، تكتسب روبي شعبية ببطء ولكن بثبات - فهي محبوبة لإيجازها وجمالها.

ليس الويب (المؤسسة، سطح المكتب، الهاتف المحمول)

لقد قمت عمدا بدمج لغات البرمجة التالية في هذه الفئة باسم غريب. يمكنك استخدام معظمها لكتابة تطبيقات المؤسسات وسطح المكتب وحتى الأجهزة المحمولة. Python هي لغة برمجة موجهة للكائنات سهلة الفهم وقد أصبحت شائعة بشكل لا يصدق مؤخرًا بسبب نمو التعلم الآلي (ML): يستخدم مطورو ML لغة Python على نطاق واسع. يعد تعلم الآلة مجالًا جديدًا إلى حد ما في مجال تكنولوجيا المعلومات، وعلى الرغم من أننا رأينا بالفعل أنه يؤتي ثماره، إلا أنني لن أتسرع في هذه الصناعة عند اختيار لغة برمجة. أولاً، ستحتاج إلى فهم ممتاز للرياضيات. ثانياً، قد تمر موجة الشعبية بنفس الطريقة التي مرت بها "البلوكتشين" أو "تقنية النانو". ومع ذلك، قد تتذكر أن بايثون تُستخدم في تطوير الويب. C++ : لغة كلاسيكية حيث يتم بناء كل شيء على عامل التشغيل "plus-plus". هذه اللغة هي سلف جميع لغات البرمجة الشيئية الشائعة، ويجب على المبتدئ بالتأكيد الانتباه إليها. تمت كتابة العديد من التطبيقات الشائعة باستخدامه. لكن الفرصة الممتازة "لإطلاق النار على قدمك" والتركيب الذي يصعب فهمه تقلل من احتمالية أن يتقن المبتدئ هذا المستودون في البرمجة. Kotlin ، التي تشبه Java بالنسبة لمحبي موسيقى الجاز، هي مزيج مجنون من OOP والبرمجة الوظيفية. لقد حظي بشعبية كبيرة مؤخرًا نظرًا لحقيقة أن المطور ذي الخبرة الذي ينتقل من Java إلى Kotlin يمكنه تحسين إنتاجيته بشكل جدي. سيشعر المطور ذو الخبرة بالارتياح بسرعة في لغة البرمجة هذه. بالمناسبة، الأمر نفسه ينطبق على Scala، لكن Kotlin تحظى بشعبية كبيرة في عالم Android. جافا سهلة التعلم للمبتدئين. خاصة بمساعدة CodeGym =) يعد بناء جملة Java مفهومًا وعلى الرغم من وجود خطر "إطلاق النار على قدمك"، إلا أنه ليس أمرًا بالغ الأهمية.

OOP أو POP؟

النهج الإجرائي

يتضمن النهج الموجه نحو الإجراءات كتابة برنامج يتكون من بيانات متسلسلة يمكن تجميعها في كل موحد لحل مجموعة محددة من المشكلات بشكل فعال. وتشمل هذه اللغات C و PureBasic و Pascal . بمعنى آخر، اللغات التي تجلب اليأس لطلاب المدارس الثانوية والطلاب الجامعيين. هناك أيضًا لغة GO الصغيرة نسبيًا . ومع ذلك، فإن الإلمام باللغات الإجرائية مفيد جدًا للمطور المحتمل. لقد جاء انغماسي في اللغات الإجرائية مع نظام Wolfram Mathematica والبحث الجامعي. الخوارزميات الصحيحة والإجراءات البسيطة، التي تتحرك خطيًا من بداية البرنامج إلى النهاية، أتاحت لي حساب القيم ذات الصلة بالفيزياء النظرية الحديثة. لغة البرمجة "المتسلسلة" هذه هي فقط ما يساعدك على فهم أنه في بعض الأحيان يكون من الأسهل كتابة تعليمات برمجية تؤدي العمليات الحسابية يدويًا. يوفر تعلم البرمجة الموجهة نحو الإجراءات (POP) تدريبًا خوارزميًا جيدًا، والذي يرغب صاحب العمل دائمًا في رؤيته في المرشح للوظيفة. بالتأكيد كل شيء في مجال تكنولوجيا المعلومات مبني على أساس اللغات الإجرائية، لذا لا تقلل من شأنها. بالمناسبة، غالبًا ما يعتقد المبتدئون الذين يقررون لغة البرمجة التي سيتعلمونها أن لغات OOP فقط هي التي تدعم تعدد مؤشرات الترابط. هذا ليس صحيحا. تسمح لغات البرمجة الإجرائية أيضًا بإجراء حسابات متوازية. اختيار لغة البرمجة - 3

النهج الموجه للكائنات

عادةً ما يكون أولئك الذين بدأوا باللغات الإجرائية على دراية جيدة بالرياضيات والخوارزميات وهياكل البيانات (بسبب تركيز الجامعات التقنية على هذه المجالات). ومع ذلك، فإن الواقع اليوم هو أن المبرمجين الناجحين هم عادةً أولئك الذين أتقنوا نهجًا مختلفًا في البرمجة: النموذج الموجه للكائنات. تتيح لك أيديولوجية OOP بناء أنظمة عالمية حقيقية. ومن سمات هذا النهج تشابهه مع العالم الحقيقي:
  • تتفاعل الكائنات المختلفة مع بعضها البعض وتوجد بشكل مستقل عن بعضها البعض.
  • الكائنات لها تسلسل هرمي ويمكنها أن تتبنى أو تغير سلوك أسلافها.
  • يمكنك استخدام المفاهيم المجردة، ولكن الكائنات الموجودة بالفعل فقط هي التي يمكنها التفاعل.

مثال

اللغات الموجهة نحو الإجراءات هي أدوات لحل مشاكل محددة. إذا تغيرت مهمتك، ولو بشكل طفيف، فمن المحتمل أن تضطر إلى قضاء الوقت والجهد في إعادة كتابة جميع الخوارزميات.

تخيل برنامجًا يصف وكالة لبيع السيارات والشاحنات، الجديدة والمستعملة. في اللغة الإجرائية، تحتاج إلى تحديد الوظائف التي تعالج إدخال أو إخراج البيانات لكل كيان: سيارة جديدة، وشاحنة جديدة، وسيارة مستعملة، وشاحنة مستعملة. ماذا تقدم OOP؟ باستخدام النهج الموجه للكائنات، نحتاج فقط إلى تحديد فئة أساسية للمركبة تخزن الخصائص المشتركة بين جميع أنواع المركبات:

  • يصنع
  • إزاحة المحرك
  • قوة حصان
  • سنة
  • جديدة أو مستعملة
  • سعر

وطرق استقبال المعلومات وإرسالها. ثم نقوم بإنشاء كائنات ترث خصائص فئة المركبة: السيارة والشاحنة. وهي تحتوي على معلومات تتعلق تحديدًا بهذه الأنواع من المركبات، بالإضافة إلى طرق الإدخال/الإخراج.

وفجأة، قررت إدارة الوكالة توسيع التشكيلة من خلال تقديم الدراجات النارية أيضًا. في إطار النهج الإجرائي، سيتعين علينا إعادة إنشاء كل المنطق للدراجات النارية الجديدة والمستعملة، بينما تتيح لنا لغة OOP ببساطة إنشاء فئة دراجات نارية جديدة ترث جميع خصائص فئة المركبات الفائقة وتحتوي على تحسينات خاصة بالدراجات النارية.

وماذا سيحدث إذا أضفنا مركبات مختلفة؟ سيتطلب التنفيذ الإجرائي عملاً أكثر من OOP. علاوة على ذلك، كلما كانت التشكيلة أكبر، قل عدد العمليات التي تتضمن الكائنات المطلوبة.

إذن، OOP هو أسلوب برمجة يتيح لك دمج البيانات والأساليب في كيان واحد والعمل معهم ككائن موحد. يمكن ترتيب الكيانات في تسلسل هرمي والتفاعل مع بعضها البعض دون الخوض في تفاصيل التنفيذ الداخلي لبعضها البعض. سأشير إلى ثلاثة أسباب تجعل OOP هو النهج الأكثر تقدمية بالنسبة لي:
  1. يتضمن OOP التطوير المستقل للوحدات الفردية، مما يسمح للمبرمج أو الفريق باختيار طريقة وحدود الاتصال وتبادل المعلومات.
  2. تعد قراءة التعليمات البرمجية المقسمة إلى وحدات صغيرة أسهل بكثير من قراءة الإجراءات المتجانسة. ونتيجة لذلك، يمكن لأي شخص خارجي أن يفهم التعليمات البرمجية الخاصة بك بسرعة، وبالمثل، يمكنك الانضمام إلى مشروع جديد إذا لزم الأمر.
  3. يمكن تغيير فئة واحدة دون التأثير على تفاعل فئة أخرى، ولكن مثل هذا التغيير يمكن أن يؤثر على التسلسل الهرمي للكائنات التابعة. بمجرد أن تتقن هذا الأسلوب، يصبح توسيع البرنامج وتعديله أمرًا تافهًا.
تذكر أن أحد الأساليب لا يتعارض مع الآخر، لكن OOP لا يزال أعلى في التسلسل الهرمي. فلماذا أوصي بجافا؟ أود أن أسلط الضوء على الأسباب التالية:
  1. عبر منصة.

    تعمل Java في كل مكان بفضل جهاز Java الظاهري (JVM). إحدى المزايا الرئيسية لهذه اللغة هي طبيعتها متعددة المنصات: لا داعي للتفكير في المكتبة التي تريد إضافتها أو في بنية معالج معين. "اكتب مرة واحدة، اركض إلى أي مكان."

  2. توثيق.

    توجد قاعدة توثيق هائلة: وثائق Oracle الرسمية، وبوابات التدريب، ومجتمع يتطور باستمرار. يمكن العثور على إجابات لمعظم الأسئلة التي تنشأ أثناء التطوير في بضع دقائق. الشيء الرئيسي هو فهم ما يجب إدخاله في محرك البحث =)

  3. شعبية.

    Java هي لغة البرمجة الأكثر شعبية في العالم: بالإضافة إلى مطوري Android والويب المذكورين أعلاه، يكتب كل مطور مؤسسي تقريبًا بلغة Java. تشير المؤسسة إلى التطوير الداخلي للشركات اللازم لتلبية احتياجات الشركات الكبيرة.

    في كل عام، يتوقع الكارهون "موت جاوة". يقولون: " سوف تتوقف Oracle عن دعمها. أنت تضيع وقتك تمامًا. " هذا غير صحيح! يعدون بإصدار إصدارات جديدة من Java كل ستة أشهر.

    بالنسبة لي، كانت تعبيرات لامدا في Java 8 ثورية وملهمة، ناهيك عن الإصدارات الجديدة! أنا أعمل حاليًا على مشروع "تراثي"، لذلك لا أتعمق في أحدث الابتكارات، لكن الحقيقة هي أن Java لا تزال على قيد الحياة.

    اختيار لغة البرمجة - 4
  4. ذكري المظهر.

    على مدى السنوات الأربع الماضية، استحوذ نظام Android باستمرار على أكثر من 80% من سوق الهواتف المحمولة . تعمل أجهزة التلفزيون ومشغلات الوسائط وحتى أنظمة المعلومات والترفيه في السيارة على نظام التشغيل هذا. ويتم تطوير التطبيقات لنظام التشغيل هذا بشكل أساسي في Java. فقط تخيل الآفاق التي تنفتح. عندما حصلت على وظيفة كمطور Android، تساءلت عن قيمة المنتج الذي كنت أقوم بتطويره؟ وكما تبين، كان السعر حوالي 5 دولارات في السنة. وهذا يطرح السؤال، "فمن أين تأتي الأموال لهذا المكتب، والرواتب، وغرفة الوجبات الخفيفة، وطاولة بينج بونج، والروبوتات، والامتيازات الأخرى؟ الجواب يكمن في الحجم: تطبيقنا لديه 20 مليون مستخدم.

  5. الرواتب.

    والآن أهم ما في الأمر: أن راتب مطور Java هو من بين أعلى الرواتب في الصناعة. ففي النهاية، أنت تخطط لدراسة البرمجة لغرض محدد: الحصول على وظيفة جيدة.

شعبية لغة البرمجة

هناك مصادر رسمية للمعلومات، فلننتقل إليها. وفقًا لـ TIOBE ، احتلت Java المرتبة الأولى اعتبارًا من أكتوبر 2019. وفي تصنيف PYPL ، احتلت Java المرتبة الثانية، متقدمة بفارق كبير عن JS وتنافس لغة Python العصرية.

خاتمة

عندما يفكر المبتدئ في اختيار لغة برمجة، فهذا ما يجب عليه الانتباه إليه:
  • الشعبية (تحتل Java باستمرار مكانة رائدة)
  • عتبة الدخول (بالنسبة لجافا، فهي متوسطة: يحتاج أصحاب العمل إلى مجموعة واسعة من المهارات)
  • المواد المتاحة (مرحبًا بك في CodeGym =))
  • مجالات التطبيق: كلما زاد عدد المجالات التي تستخدم فيها لغة البرمجة، زاد عدد المتخصصين المطلوبين في السوق. لقد ذكرت بالفعل كيف تدعم Java التطوير عبر الأنظمة الأساسية، لكنني لا أتعب من تكرار ذلك أبدًا.
بالطبع، هناك مطبات في كل مكان، لكن من يتخذ خطوة يتحرك للأمام: أنت وحدك من يستطيع أن يقرر لغة البرمجة التي سيختارها. حظا سعيدا في التعلم!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION