28

أي اللغات البرمجية أفضل؟! .. حسناً لا تغضب! :)

السلام عليكم :)

كنتُ أُتابع كثيراً حروبَ اللغات البرمجية المختلفة , والنقاشات الدائرةِ حولها .. والأسئلة المعتادة حولها: أي اللغات البرمجية هي الأفضل؟ وأيها الأسرع؟ وأيها الأقوى؟ وأيها الأشهر ..!!

يقضي المبرمج معظم وقته باحثاً عن لغةٍ برمجيةٍ مناسبةٍ ليتعلّمها , وفي طريق البحث يتناسى هدفه الأسمى من التعلم , ألا وهو الإنجاز ..

حتى أنه يُصبح ويُمسي حائراً بين اللغات , أيها أختار؟! الشهيرة PHP؟ أم المدللة Ruby؟ وما حال الثعبان Python؟

ما أود إيصاله بإختصار , أن الوقت الذي يضيع منك عبثاً باحثاً عن لغةٍ برمجيةٍ مناسبة , لو قضيته في تعلّم اللغاتِ الثلاثةِ لكفاك! ولتنقلت بينهم بحريةٍ متى شئت!

ألا لو تعلمون أن اللغة = وسيلة , وليست غاية ..

تعددت الوسائل , واختلفت الطرق , والغاية واحدة ..

أما لو فقدت الغاية , لضعت هائماً بين اللغات لا تدري أيها تختار!

كحالك الآن!


كُف عن البجْث يا صديق , استثمر وقتك في طلب العلم بدلاً من البحث ..

كُف عن الكلام يا صديق , وابدأ العمل ..

أرجوك :)

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

21

يقضي المبرمج معظم وقته باحثاً عن لغةٍ برمجيةٍ مناسبةٍ ليتعلّمها , وفي طريق البحث يتناسى هدفه الأسمى من التعلم , ألا وهو الإنجاز ..

هو بالأصح ليس مبرمج حتى الآن، المبرمج هو من يعرف منطق البرمجة "ليس هناك تخصص بالجامعات" مبرمج PHP او مبرمج C# انما مبرمج حتى لو كان لم يكتب كوداً في PHP او لغات الويب. الاهم من تعلم (لغة البرمجة) هو تعلم "منطق البرمجة".

كمثال، لو كان عندنا مبرمج قام بعمل تطبيقات عدة على PHP ! لن تصعب عليه مهمة تعلم وعمل تطبيقات مشابهه بلغات برمجة اخرى كـ Ruby و Python. بكلمات اخرى، تعلمك للغة برمجة واحدة (تستطيع من خلالها استيعاب منطق البرمجة) وذلك يسهل عليك الانجاز وسرعة تعلم لغات البرمجة الاخرى. لانها غالباً مبنية على منطق واحد.

لكل لغة برمجة: متغيرات، ثوابت ، الشروط، التكرارات، الدوال ...... الخ < هذه المبادئ تجدها في كل لغة برمجة وهي الاساس الذي تقوم علية اللغة. عند تعلمها من لغة واحدة! يبقى فقط (لتعلم اللغات الاخرى) مايسمى بـ syntax (أي: اسلوب بناء النص) وهو امر سهل جداً.

اما بخصوص ماهي افضل لغة برمجة ! تقاس افضلية لغة البرمجة على حسب المشروع فمثلاً قد تناسب لغة PHP مشروعي اكثر من Ruby والعكس قد يكون في مواقع اخرى. لأن لكل لغة برمجة (سلبيات لمشروعي، وايجابيات كذلك). فلن تعرف الفرق الحقيقي بين لغات البرمجة حتى تتعلمها.

شكراً لك خالد موضوع مهم، واعتذر عن الاطالة

صدقْتَ صدقْتْ .. كنت سأَضيف لها " المبرمج المبتدئ " , لكنّي لم أستطع تعديل النص :)


مُتعة البرمجة تكمن في كتابة الـ UML -منطق البرنامج- بعيداً عن لغة البرمجة .. أما كتابة الكود البرمجي بلغة البرمجة فهي مسألة حِرفية ليس إلا .. ولا ذكاءَ ولا دهاءَ ولا عبقريةَ في كتابتها :) ..

14

خطأً ، UML هي مجرد وسيلة لتوضيح افكارك وهيكله برنامجك، أغلب المهارات تكون في طريقة كتابتك للكود وليس شيء اخرـ وقليل منها يكمن في استخدام الأدوات المساعدة_.. فلا يوجد مقارنه بين شخص لديه دالة ب1000 سطر بينما شخص لديه دوال لا تتجاوز 5 اسطر .. الكود الأول سيء وسوف يقف في نقطة ما بينما الثاني قابل للتطوير والتصحيح بشكل اسرع وأفضل..

كيف تستخدم UML بشكل صحيح:

صحيح الـ UML ومنطق البرامج أو مانسميع معمارية البرنامج architecture هي مهمة جداً ولا ينجح فيها إلى مهندس البرمجيات أو المعماري أو المطور ذو الخبرة الكبيرة

لكن أيضاً كتابة الكود مع أنها حرفية كما قلت، فهي لا تقل أهمية عن المعمارية، فنظام مبني بمعمارية جدية لكن مكتوب بطريقة رديئة ربما لا يصلح لأن يعمل من اﻷساس.

الحرفي الناجح هو من يجمع بين اﻷمرين، تكون له نظرة مهندس البرمجيات من حيث كتابة أجزاء يمكن إعادة اﻹستفادة منها، وكتابة كود نظيف له مستقبل سهل التعديل، ومطبقة فيه قواعد البرمجة الهدفية بطريقة صحيحة وكل اﻷساليب الحديثة في مجال هندسة البرمجيات، واﻷمر الثاني وهو التمكن من اﻷدوات إبتداءً من نظام التشغيل ودواله المخفية وقواعد البيانات ولغات البرمجة وخفاياها وإنتهاءً بأداة التطوير.

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

14

أرى أن عنوان موضوعك يتحدث عن السؤال (اي اللغات افضل) بينما المحتوى يتحدث عن (البحث في أي اللغات انسب) ولا يصح الخلط بينهم

لأنني عندما أسأل عن أي اللغات انسب لحالتي، ففي الغالب اسأل ذلك لأن لدى هدف ما (للتقدم لوظيفة، الحصول على راتب اعلى، عمل مشروع بمواصفات ما، مجرد for fun، الخ) ولا أعرف ماذا أختار ..

ولأن التعلم له ضريبه (الوقت) ولا يستحيل احد انكار ذلك ، لذلك تحتاج للاختيار قبل الخوض في العملية فلا يوجد وقت لتعلم كل شيء..

من المهم جداً التركيز على أن تعلم لغه ما هي عملية سهله اذا كنت تعرف لغه اخرى، وربما تعلم لغه أخرى فقط لن يفيدك بالشكل الذي تتخيله خصوصاً لو كانت لها نفس ال Paradigm

لذلك السؤال الحقيقي هو يجب أن يكون: أي الPlatform أو ال Technology أتعلمها ؟ أو المناسبة لي حالياً ...

الPlatform حقيقة هي ما ستقضيه حتى تصبح متمكناً من الانتاج بشكل صحيح، لو نظرنا لل .NET سنجد C#, F# هي لغات ولكن الFramework والLibraries هي WPF, WCF, MVC, Web Form تعلم Visual Studio تعلم Databases الخ .. تعلم هذه الأمور لن يقل عن 8 اشهر على الأقل حتى لمبرمج خبير ب Platform أخرى مثلاً بال Java Ecosystem

لذلك النظرة يجب أن تكون حول ال Platform بشكل عامل (فاللغه جزء واحد فقط ) ، وهناك الكثير منها :

OS Platform مثل Windows, Android, Linux

Application Platform مثلاً Facebook, Drupal, Force.com

API Platform: مثلاً Twitter, Amazon, Google

Delivery Platform: مثلاً AWS, Azure, Heroku

هذه ال Ecosystem هي ما تجعل المبرمج مرغوباً به ، فلن اوظف شخص يعرف PHP فقط، ولكن سأوظف شخص يكتب تطبيقات facebook ويستخدم ال Twitter API ويعرف ال Windows Internal & API ويستطيع استخدام الAzure ، أو يستخدم ال Spring وله خبرة بها..

والEcosystem هي ما سوف تأخذ وقتك وسوف تتعبك لكي تتعلمها (لا تنسى ايضاً أنها تتطور وتتغير وتحتاج أن تحدث نفسك باستمرار)، لذلك ابحث واقضى بعض من الوقت قبل أن تأخذ القرار :)

لا أظن انك ستفلح في الحصول على الإجابة بالضبط ما لم تحدد المنصة والإختصاص الذي تريده. في كل مجال هناك عدة لغات فلا تقارن HTML مع C++

C++ لغة (برمجة) والموضوع يتحدث عن لغات البرمجة

HTML نعم هي لغة لكن ليست بلغة برمجة ! انما هي لغة توصيف. بينما لغات البرمجة (تتشابه في مفاهيمها)

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