بوابة الإنترنت الرقمية ADSLGATE

Amazon عنوان IP سرعة الإتصال الإعلان استعادة كلمة المرور
العودة   البوابة الرقمية ADSLGATE > بوابة البرامج وأنظمة التشغيل > بوابة البرمجة العامة
التسجيل التنبيهات لوحة التحكم مشاركات اليوم قوانين المنتدى الاتصال بنا مشاركات اليوم اجعل كافة الأقسام مقروءة




إضافة رد
 
أدوات الموضوع
قديم 12-03-2017, 10:40 AM كاتب الموضوع #1
Hajime No Ippo
بارز
 
الصورة الرمزية Hajime No Ippo
 






افتراضي أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





السلام عليكم


أدري إن هناك إجابة نموذجية و اللي هي حسب استخدامك و توجهك
أنا ما لي توجه حالي و لكني شخص أبي أتعلم أفضل لغة (تجاوزوا عن عدم دقة هذي الكلمة "أفضل") لأني أريد فهم البنية الداخلية لنظم المعلومات Information Systems
أنا حاليا مهتم بنظم المعلومات الإدارية و أريد أن أتمكن من التعامل معها إداريا و علميا ، تقنيا من حيث الهاردوير و السوفتوير
قاعد أدرس كورس تحليل النظم باستخدام منهجية Object Orient
و سبق أني قبل فترة بدأت في تعلم البايثون
لكن لما بدأت بدراسة تحليل النظم ، شعرت بأن لغة البايثون أقل من مستوى هذي المادة و أن لغة C++ أو الجافا أعلى مستوى منها ، و أريد أربط بين دراستي لتحليل النظم و التمكن من لغة برمجة توازي هذا اللي أدرسه
تصوري عن البايثون أنها لغة للمبتدئين ، و رغم أني أعرف أن لها تطبيقات مختلفة لكن أعتقد أن لغتي الـ C++ أو الجافا أوسع منها و أشمل
و حتى عند الشركات ، مهارة التمكن من لغة C++ أو جافا أهم (بحسب تصوري و أرجو التصحيح إذا كان تصوري غلط)


فما رأيكم ؟

 

 




Hajime No Ippo متصل الآن  
أشكر صاحب الموضوع رد مع اقتباس

قديم 12-03-2017, 10:07 PM #2
devil xp
مشارك
 
الصورة الرمزية devil xp
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





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

بايثون لغة كائنية مثل جافا و C++، لكن الفارق بينهم هو نظام أنواع البيانات typing، بايثون لغة ديناميكية dynamically typed يعني نوع بيانات المتغير تحدد أثناء التشغيل، بينما C++ و جافا لغات ستاتيكية statically typed نوع البيانات يحدد لحظة الترجمة، وأعتقد أن معظم المراجع في هندسة البرمجيات والتصميم الكائني تفترض لغة ستاتيكية لأنها تقريباً الأكثر استخدام في بناء الأنظمة المعقدة.

اللغات الديناميكة (بايثون، جافاسكربت، php، إلخ) أسهل وأسرع أنك تطور عليها في البداية، لكنها صعب تبني فيها مشاريع كبيرة، فصعب جداً (عكس مايدعي الكثير) أنك تقرأ برامجها، فلو حصلت متغير مثل foo ممكن يكون أي شيء! ، كثير من الأخطاء تتأخر وتظهر أثناء التشغيل بسبب ديناميكيتها، مزعج لما يشتغل برنامج وبعد كذا يوم يظهر أنك نسيت تكتب متغير صح، كونها لغات ديناميكية تحصل دعم بيئات وأدوات التطوير لها محدود، بيئة التطوير الجيدة تعمل static code analysis معقد عشان تساعدك، لكنه يبقى محدود جداً، فمثلاً هنا:

كود:
def foo():
    print(n + 1)
بيئة التطوير الجيدة ممكن تعطيك تحذير أن المتغير n قد يكون غير موجود، لكن ماتقدر تجزم 100% أن المتغير n غير موجود، أو أن نوعه يدعم العملية + مع عدد صحيح، هذا شيء يحدد أثناء التشغيل، لكن تبقى مثلاً ميزة أنك ماتحتاج لإعادة ترجمة التطبيق مع كل تعديل*، فقط عدل وشغل، لكن هذي الميزة ممكن كانت تهم أيام ماكانت الكمبيوترات بطيئة والي ظهرت اللغات الديناميكية مثل lisp بسببها، لكن أعتقد ماهي مشكلة حالياً خصوصاً أن فوائد التحقق من النوع أثناء الترجمة أكبر بكثير.

اللغات الستاتيكية مثل C++ وجافا و C# مصممة* بحيث أن نوع البيانات والقيم الي يأخذها المتغير تحدد أثناء الترجمة، هذي ميزة مهمة منها أن معظم الأخطاء البسيطة (والكثيرة) تكتشف أثناء الترجمة، تبقى الأخطاء المنطقية والأخطاء مثل الـnull referencing هذي صعب أن أداة تساعدك فيها، برضو تعقيد استخدام اللغة الستاتيكية هو المترجم، بينما بئية التشغيل أخف وأبسط بكثير أو حتى مايكون لها بيئة تشغيل مثل C/C++ (عشان كذا تستخدم في بناء أنظمة التشغيل، لأن نظام التشغيل أول مايقلع النظام مافيه نظام تشغيل يدعم البرنامج فضلاً عن بئية تشغيل)، بينما اللغات الديناميكية تحصل بيئة التشغيل معقدة وهذا له تكلفته على أداء برامجها.

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

حجة البعض ضد اللغة الستاتيكية أنك دائماً تحتاج تعرف النوع مسبقاً، لكن معظم اللغات الحديثة أضافت ميزة الـtype inference (وصلت حتى لـC++، جافا للأسف باقي ما وصلتها )، مثلاً في C# تقدر تكتب:

كود:
var foo = new MyFreakingVeryLongClassName();
بدلاً من:

كود:
MyFreakingVeryLongClassName foo = new MyFreakingVeryLongClassName();
والمترجم يقدر بسهولة لحظة الترجمة أن المتغير foo رايح يحتوي على متغير من النوع الطويل ذاك. فما عادت الحجة ذي لها معنى، برضوا وقت الترجمة ماهو مشكلة كبيرة، فمثل ماقلت الكمبيوترات حالياً أسرع بكثير، وعادةً المترجمات مع أدوات البناء تترجم الجزء الي تعدل من الكود والأجزاء الي تتأثر بهذا التعديل.

من ناحية هندسية، زي ماقلت ماتفرق اللغة، لكن فيه لغات تحط حدود تجبرك تلتزم فيها، فحتى لو كنت مبرمج جيد وتكتب كود نظيف، ماتضمن غيرك في نفس الفريق يسوي مثلك، برضو البرامج مهما كانت تحتاج تختبر زين عن طريق اختبار الوحدات unit testing واختبارات الـintegration، عشان تتأكد أنها تشتغل صح، فسهل أنك تصمم نظام وتكتب كود مفقع بأي لغة .

من ناحية الشركات والوظائف، C++ شائعة جداً في الدول الصناعية لكن عندنا ماتوكل عيش ، بتحصلها في اعلانات الوظائف، لكن كلها من طخة
:

عندنا بايثون لها وجودها بسبب أنظمة الـERP المجانية المكتوبة فيها، جافا و حالياً عائلة .NET خصوصاً C# هي المسيطرة.

مابين جافا وC#، أن C# تصميمها فعلياً فخم، ومتعوب عليها، اللغة ماتركز كثير مرة على التوفقية مع الإصدارات الأقدم، وأضافة أشياء وقواعد مفيدة للغة، جافا جيدة جداً لولا بعض النواقص الي تأخرت مرة ماوصلت لها، لكن ميزة تعدد الأنظمة تخلي الواحد يتسامح مع هذي النواقص، صحيح أن C# ممكن تشتغل على أي نظام حالياً، لكن المكتبات المهمة فيها مثل WPF و WCF تبقى على ويندوز فقط، فهذا يمنعك من الوصل لقطاع كبير من المستخدمين في حال لو كنت تبي تبني أنظمة تبيعها.

* على فكرة لاتخلط بين ديناميكية أو ستاتيكية اللغة وكون الطريقة الي تشتغل فيها، اللغة مجرد قواعد ومواصفات تصف معنى هذي القواعد ومكتبات اللغة، التطبيق مختلف، البرنامج الرسمي الي يستخدم لتشغيل برامج بايثون CPython "يترجم" برامج بايثون لحظة التشغيل لـbytecode ثم يشغلها، pypy مترجم ثاني يترجم برامج بايثون لكود آلة machine code يشتغل مباشرة على المعالج (مثل C/C++)،، معظم محركات جافاسكربت مثل V8 (مستخدم في كروم) و SpiderMonkey (مستخدم في فايرفوكس) تترجم جافا سكربت لكود آلة، قليل تحصل هذي الأيام لغة مفسرة، برضو مايشترط أن لغة ستاتيكية أنها تكون مترجمة، فيه مفسر لـC اسمه tcc، وقدر تبني مفسر لـC++ و جافا، لكن معظمها ماتتعدى تجارب ولاهي شيء جدي.

 

 



التعديل الأخير تم بواسطة devil xp ; 12-03-2017 الساعة 10:15 PM.
devil xp غير متصل  
16 Yes No
رد مع اقتباس

قديم 13-03-2017, 02:28 AM #3
Njoudii
مشارك
 
الصورة الرمزية Njoudii
 


Njoudii @Twitter
افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





تعلم C#
thank me later

 

 


Njoudii غير متصل  
1 Yes No
رد مع اقتباس

قديم 13-03-2017, 06:37 PM #4
NAIF221
مبدع
 
الصورة الرمزية NAIF221
 


NAIF221 @Twitter
افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





من رأيي , ان كان عندك المقدرة , توجه لعائله الـ C ,( جافا , سي شارب و ++C) حاول تتعلمها , راح تعطيك مفاهيم اقوى من البايثون , و اذا احتجت تشتغل بالبايثون راح تقدر تكتب كود بكل سهوله .
بالامس احتجت سكربت لموقع , حملت البايثون , اخذت ساعتين اتعلم الاساسيات و طلعت بالكود هذا



مع العلم ان مستواي بالجافا ممتاز و بالـ C++ ضعيف .

 

 

التوقيع

مطور تطبيقات Android
تطبيقاتي : قارئ الاسعار
نسعد بآرائكم



NAIF221 غير متصل  
Yes No
رد مع اقتباس

قديم 13-03-2017, 07:40 PM #5
mody alharbi
فعال
 
الصورة الرمزية mody alharbi
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





شخصيا انا شخص غير متخصص بالبرمجة

ولكني احتاجها في بعض مجالات عملي

استطعت ولله الحمد بكل سهولة تعلم السي بلس بلس

لعمل تطبيقات معينة في مجال عملي بكل دقة وجودة خلال فقط ثلاثة اشهر

وايضا تعلمت لغة الاسمبلي لعمل تطبيقات ابسط وايضا في مجال عملي مدة التعلم مقاربة للسي بلس بلس

الحكمة هنا ان تعلمي للغة السي جعل من السهل علي تعلم الاسمبلي مع الفرق الكبير جدا بينهم

والسبب اني بتعلمي لغة السي اصبح عندي منطق البرمجة العام واستطعت ان افكر كمبرمج

وهذا الشي ساعدني بتعلمي للاسمبلي فاصبحت اتعلم فقط الاوامر وبمعرفتي لكل امر

اجد ان له مقابل او مشابه في اللغة الاخرى وبكذا سهل علي تعلمها بشكل كبير

نصيحتي الان لك هي تعلم اللغة الاقرب لك حاليا ومع تمكنك منها سيصبح تعلم اللغات

الاخرى شي سهل بالنسبة لك

 

 

التوقيع
 Apple The one and only



mody alharbi متصل الآن  
4 Yes No
رد مع اقتباس

قديم 20-03-2017, 03:25 PM كاتب الموضوع #6
Hajime No Ippo
بارز
 
الصورة الرمزية Hajime No Ippo
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





open quote
devil xp
كل الي تقدر تسويه ببايثون تقدر تسويه بجافا وC++ والعكس صحيح، كلها لغات عامة الغرض الغرض ماهي لغات DSL متخصصة بشيء معين، كون لغة معينة شائعة في مجال معين يعني أنها مناسبة أو سهلة لهذا المجال، لكن مايعني أنها مصممة له، إذا أنت مرررة فاضي تقدر تبني مثلاً تطبيق ويب بـC++ .

بايثون لغة كائنية مثل جافا و C++، لكن الفارق بينهم هو نظام أنواع البيانات typing، بايثون لغة ديناميكية dynamically typed يعني نوع بيانات المتغير تحدد أثناء التشغيل، بينما C++ و جافا لغات ستاتيكية statically typed نوع البيانات يحدد لحظة الترجمة، وأعتقد أن معظم المراجع في هندسة البرمجيات والتصميم الكائني تفترض لغة ستاتيكية لأنها تقريباً الأكثر استخدام في بناء الأنظمة المعقدة.

اللغات الديناميكة (بايثون، جافاسكربت، php، إلخ) أسهل وأسرع أنك تطور عليها في البداية، لكنها صعب تبني فيها مشاريع كبيرة، فصعب جداً (عكس مايدعي الكثير) أنك تقرأ برامجها، فلو حصلت متغير مثل foo ممكن يكون أي شيء! ، كثير من الأخطاء تتأخر وتظهر أثناء التشغيل بسبب ديناميكيتها، مزعج لما يشتغل برنامج وبعد كذا يوم يظهر أنك نسيت تكتب متغير صح، كونها لغات ديناميكية تحصل دعم بيئات وأدوات التطوير لها محدود، بيئة التطوير الجيدة تعمل static code analysis معقد عشان تساعدك، لكنه يبقى محدود جداً، فمثلاً هنا:

كود:
def foo():
    print(n + 1)
بيئة التطوير الجيدة ممكن تعطيك تحذير أن المتغير n قد يكون غير موجود، لكن ماتقدر تجزم 100% أن المتغير n غير موجود، أو أن نوعه يدعم العملية + مع عدد صحيح، هذا شيء يحدد أثناء التشغيل، لكن تبقى مثلاً ميزة أنك ماتحتاج لإعادة ترجمة التطبيق مع كل تعديل*، فقط عدل وشغل، لكن هذي الميزة ممكن كانت تهم أيام ماكانت الكمبيوترات بطيئة والي ظهرت اللغات الديناميكية مثل lisp بسببها، لكن أعتقد ماهي مشكلة حالياً خصوصاً أن فوائد التحقق من النوع أثناء الترجمة أكبر بكثير.

اللغات الستاتيكية مثل C++ وجافا و C# مصممة* بحيث أن نوع البيانات والقيم الي يأخذها المتغير تحدد أثناء الترجمة، هذي ميزة مهمة منها أن معظم الأخطاء البسيطة (والكثيرة) تكتشف أثناء الترجمة، تبقى الأخطاء المنطقية والأخطاء مثل الـnull referencing هذي صعب أن أداة تساعدك فيها، برضو تعقيد استخدام اللغة الستاتيكية هو المترجم، بينما بئية التشغيل أخف وأبسط بكثير أو حتى مايكون لها بيئة تشغيل مثل C/C++ (عشان كذا تستخدم في بناء أنظمة التشغيل، لأن نظام التشغيل أول مايقلع النظام مافيه نظام تشغيل يدعم البرنامج فضلاً عن بئية تشغيل)، بينما اللغات الديناميكية تحصل بيئة التشغيل معقدة وهذا له تكلفته على أداء برامجها.

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

حجة البعض ضد اللغة الستاتيكية أنك دائماً تحتاج تعرف النوع مسبقاً، لكن معظم اللغات الحديثة أضافت ميزة الـtype inference (وصلت حتى لـC++، جافا للأسف باقي ما وصلتها )، مثلاً في C# تقدر تكتب:

كود:
var foo = new MyFreakingVeryLongClassName();
بدلاً من:

كود:
MyFreakingVeryLongClassName foo = new MyFreakingVeryLongClassName();
والمترجم يقدر بسهولة لحظة الترجمة أن المتغير foo رايح يحتوي على متغير من النوع الطويل ذاك. فما عادت الحجة ذي لها معنى، برضوا وقت الترجمة ماهو مشكلة كبيرة، فمثل ماقلت الكمبيوترات حالياً أسرع بكثير، وعادةً المترجمات مع أدوات البناء تترجم الجزء الي تعدل من الكود والأجزاء الي تتأثر بهذا التعديل.

من ناحية هندسية، زي ماقلت ماتفرق اللغة، لكن فيه لغات تحط حدود تجبرك تلتزم فيها، فحتى لو كنت مبرمج جيد وتكتب كود نظيف، ماتضمن غيرك في نفس الفريق يسوي مثلك، برضو البرامج مهما كانت تحتاج تختبر زين عن طريق اختبار الوحدات unit testing واختبارات الـintegration، عشان تتأكد أنها تشتغل صح، فسهل أنك تصمم نظام وتكتب كود مفقع بأي لغة .

من ناحية الشركات والوظائف، C++ شائعة جداً في الدول الصناعية لكن عندنا ماتوكل عيش ، بتحصلها في اعلانات الوظائف، لكن كلها من طخة
:

عندنا بايثون لها وجودها بسبب أنظمة الـERP المجانية المكتوبة فيها، جافا و حالياً عائلة .NET خصوصاً C# هي المسيطرة.

مابين جافا وC#، أن C# تصميمها فعلياً فخم، ومتعوب عليها، اللغة ماتركز كثير مرة على التوفقية مع الإصدارات الأقدم، وأضافة أشياء وقواعد مفيدة للغة، جافا جيدة جداً لولا بعض النواقص الي تأخرت مرة ماوصلت لها، لكن ميزة تعدد الأنظمة تخلي الواحد يتسامح مع هذي النواقص، صحيح أن C# ممكن تشتغل على أي نظام حالياً، لكن المكتبات المهمة فيها مثل WPF و WCF تبقى على ويندوز فقط، فهذا يمنعك من الوصل لقطاع كبير من المستخدمين في حال لو كنت تبي تبني أنظمة تبيعها.

* على فكرة لاتخلط بين ديناميكية أو ستاتيكية اللغة وكون الطريقة الي تشتغل فيها، اللغة مجرد قواعد ومواصفات تصف معنى هذي القواعد ومكتبات اللغة، التطبيق مختلف، البرنامج الرسمي الي يستخدم لتشغيل برامج بايثون CPython "يترجم" برامج بايثون لحظة التشغيل لـbytecode ثم يشغلها، pypy مترجم ثاني يترجم برامج بايثون لكود آلة machine code يشتغل مباشرة على المعالج (مثل C/C++)،، معظم محركات جافاسكربت مثل V8 (مستخدم في كروم) و SpiderMonkey (مستخدم في فايرفوكس) تترجم جافا سكربت لكود آلة، قليل تحصل هذي الأيام لغة مفسرة، برضو مايشترط أن لغة ستاتيكية أنها تكون مترجمة، فيه مفسر لـC اسمه tcc، وقدر تبني مفسر لـC++ و جافا، لكن معظمها ماتتعدى تجارب ولاهي شيء جدي.



شكرا أخوي devil xp على المشاركة الثرية
بأعتبرها نقطة مرجعية لي و من خلالها أقرا أكثر عشان أفهم تماما كل كلمة صعب علي فهمها


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



بالنسبة للـ ERP ، أنا قرأت كتاب في الـ ERP و لقيته يذكر أن الجافا مستخدمة في الإنتيقريشن (أو يمكن فهمي غلط )
من كتاب Enterprise Systems for Management
open quote
devil xp
كل الي تقدر تسويه ببايثون تقدر تسويه بجافا وC++ والعكس صحيح، كلها لغات عامة الغرض الغرض ماهي لغات DSL متخصصة بشيء معين، كون لغة معينة شائعة في مجال معين يعني أنها مناسبة أو سهلة لهذا المجال، لكن مايعني أنها مصممة له، إذا أنت مرررة فاضي تقدر تبني مثلاً تطبيق ويب بـC++ .

بايثون لغة كائنية مثل جافا و C++، لكن الفارق بينهم هو نظام أنواع البيانات typing، بايثون لغة ديناميكية dynamically typed يعني نوع بيانات المتغير تحدد أثناء التشغيل، بينما C++ و جافا لغات ستاتيكية statically typed نوع البيانات يحدد لحظة الترجمة، وأعتقد أن معظم المراجع في هندسة البرمجيات والتصميم الكائني تفترض لغة ستاتيكية لأنها تقريباً الأكثر استخدام في بناء الأنظمة المعقدة.

اللغات الديناميكة (بايثون، جافاسكربت، php، إلخ) أسهل وأسرع أنك تطور عليها في البداية، لكنها صعب تبني فيها مشاريع كبيرة، فصعب جداً (عكس مايدعي الكثير) أنك تقرأ برامجها، فلو حصلت متغير مثل foo ممكن يكون أي شيء! ، كثير من الأخطاء تتأخر وتظهر أثناء التشغيل بسبب ديناميكيتها، مزعج لما يشتغل برنامج وبعد كذا يوم يظهر أنك نسيت تكتب متغير صح، كونها لغات ديناميكية تحصل دعم بيئات وأدوات التطوير لها محدود، بيئة التطوير الجيدة تعمل static code analysis معقد عشان تساعدك، لكنه يبقى محدود جداً، فمثلاً هنا:

كود:
def foo():
     print(n + 1)
بيئة التطوير الجيدة ممكن تعطيك تحذير أن المتغير n قد يكون غير موجود، لكن ماتقدر تجزم 100% أن المتغير n غير موجود، أو أن نوعه يدعم العملية + مع عدد صحيح، هذا شيء يحدد أثناء التشغيل، لكن تبقى مثلاً ميزة أنك ماتحتاج لإعادة ترجمة التطبيق مع كل تعديل*، فقط عدل وشغل، لكن هذي الميزة ممكن كانت تهم أيام ماكانت الكمبيوترات بطيئة والي ظهرت اللغات الديناميكية مثل lisp بسببها، لكن أعتقد ماهي مشكلة حالياً خصوصاً أن فوائد التحقق من النوع أثناء الترجمة أكبر بكثير.

اللغات الستاتيكية مثل C++ وجافا و C# مصممة* بحيث أن نوع البيانات والقيم الي يأخذها المتغير تحدد أثناء الترجمة، هذي ميزة مهمة منها أن معظم الأخطاء البسيطة (والكثيرة) تكتشف أثناء الترجمة، تبقى الأخطاء المنطقية والأخطاء مثل الـnull referencing هذي صعب أن أداة تساعدك فيها، برضو تعقيد استخدام اللغة الستاتيكية هو المترجم، بينما بئية التشغيل أخف وأبسط بكثير أو حتى مايكون لها بيئة تشغيل مثل C/C++ (عشان كذا تستخدم في بناء أنظمة التشغيل، لأن نظام التشغيل أول مايقلع النظام مافيه نظام تشغيل يدعم البرنامج فضلاً عن بئية تشغيل)، بينما اللغات الديناميكية تحصل بيئة التشغيل معقدة وهذا له تكلفته على أداء برامجها.

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

حجة البعض ضد اللغة الستاتيكية أنك دائماً تحتاج تعرف النوع مسبقاً، لكن معظم اللغات الحديثة أضافت ميزة الـtype inference (وصلت حتى لـC++، جافا للأسف باقي ما وصلتها )، مثلاً في C# تقدر تكتب:

كود:
var foo = new MyFreakingVeryLongClassName();
بدلاً من:

كود:
MyFreakingVeryLongClassName foo = new MyFreakingVeryLongClassName();
والمترجم يقدر بسهولة لحظة الترجمة أن المتغير foo رايح يحتوي على متغير من النوع الطويل ذاك. فما عادت الحجة ذي لها معنى، برضوا وقت الترجمة ماهو مشكلة كبيرة، فمثل ماقلت الكمبيوترات حالياً أسرع بكثير، وعادةً المترجمات مع أدوات البناء تترجم الجزء الي تعدل من الكود والأجزاء الي تتأثر بهذا التعديل.

من ناحية هندسية، زي ماقلت ماتفرق اللغة، لكن فيه لغات تحط حدود تجبرك تلتزم فيها، فحتى لو كنت مبرمج جيد وتكتب كود نظيف، ماتضمن غيرك في نفس الفريق يسوي مثلك، برضو البرامج مهما كانت تحتاج تختبر زين عن طريق اختبار الوحدات unit testing واختبارات الـintegration، عشان تتأكد أنها تشتغل صح، فسهل أنك تصمم نظام وتكتب كود مفقع بأي لغة .

من ناحية الشركات والوظائف، C++ شائعة جداً في الدول الصناعية لكن عندنا ماتوكل عيش ، بتحصلها في اعلانات الوظائف، لكن كلها من طخة
:

عندنا بايثون لها وجودها بسبب أنظمة الـERP المجانية المكتوبة فيها، جافا و حالياً عائلة .NET خصوصاً C# هي المسيطرة.

مابين جافا وC#، أن C# تصميمها فعلياً فخم، ومتعوب عليها، اللغة ماتركز كثير مرة على التوفقية مع الإصدارات الأقدم، وأضافة أشياء وقواعد مفيدة للغة، جافا جيدة جداً لولا بعض النواقص الي تأخرت مرة ماوصلت لها، لكن ميزة تعدد الأنظمة تخلي الواحد يتسامح مع هذي النواقص، صحيح أن C# ممكن تشتغل على أي نظام حالياً، لكن المكتبات المهمة فيها مثل WPF و WCF تبقى على ويندوز فقط، فهذا يمنعك من الوصل لقطاع كبير من المستخدمين في حال لو كنت تبي تبني أنظمة تبيعها.

* على فكرة لاتخلط بين ديناميكية أو ستاتيكية اللغة وكون الطريقة الي تشتغل فيها، اللغة مجرد قواعد ومواصفات تصف معنى هذي القواعد ومكتبات اللغة، التطبيق مختلف، البرنامج الرسمي الي يستخدم لتشغيل برامج بايثون CPython "يترجم" برامج بايثون لحظة التشغيل لـbytecode ثم يشغلها، pypy مترجم ثاني يترجم برامج بايثون لكود آلة machine code يشتغل مباشرة على المعالج (مثل C/C++)،، معظم محركات جافاسكربت مثل V8 (مستخدم في كروم) و SpiderMonkey (مستخدم في فايرفوكس) تترجم جافا سكربت لكود آلة، قليل تحصل هذي الأيام لغة مفسرة، برضو مايشترط أن لغة ستاتيكية أنها تكون مترجمة، فيه مفسر لـC اسمه tcc، وقدر تبني مفسر لـC++ و جافا، لكن معظمها ماتتعدى تجارب ولاهي شيء جدي.



شكرا أخوي devil xp على المشاركة الثرية
بأعتبرها نقطة مرجعية لي و من خلالها أقرا أكثر عشان أفهم تماما كل كلمة صعب علي فهمها


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



بالنسبة للـ ERP ، أنا قرأت كتاب في الـ ERP و لقيته يذكر أن الجافا مستخدمة في الإنتيقريشن (أو يمكن فهمي غلط )
من كتاب Enterprise Systems for Management










 

 




Hajime No Ippo متصل الآن  
Yes No
رد مع اقتباس

قديم 20-03-2017, 03:33 PM كاتب الموضوع #7
Hajime No Ippo
بارز
 
الصورة الرمزية Hajime No Ippo
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





ما قدرت انسخ صورة من الكتاب ، يبي لها شغلانة
هذا النص المكتوب :


SAP continues to be a leader in many of the global organizations that promote the use of a common language such as the Organization for the Advancement of Structures Information Standards (OASIS) and the Java Community Process (JCP). Standards have been developed to help reduce the cost of integration and expedite the process.

 

 




Hajime No Ippo متصل الآن  
Yes No
رد مع اقتباس

قديم 20-03-2017, 03:36 PM كاتب الموضوع #8
Hajime No Ippo
بارز
 
الصورة الرمزية Hajime No Ippo
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





open quote
Njoudii
تعلم C#
thank me later



كأني فهمت أن الاستخدام الكامل لمميزات C# موجهة لتطبيقات ميكروسوفت





 

 




Hajime No Ippo متصل الآن  
Yes No
رد مع اقتباس

قديم 20-03-2017, 03:36 PM كاتب الموضوع #9
Hajime No Ippo
بارز
 
الصورة الرمزية Hajime No Ippo
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





شكرا لك Njoudi

 

 




Hajime No Ippo متصل الآن  
Yes No
رد مع اقتباس

قديم 20-03-2017, 03:37 PM كاتب الموضوع #10
Hajime No Ippo
بارز
 
الصورة الرمزية Hajime No Ippo
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





open quote
NAIF221
من رأيي , ان كان عندك المقدرة , توجه لعائله الـ C ,( جافا , سي شارب و ++C) حاول تتعلمها , راح تعطيك مفاهيم اقوى من البايثون , و اذا احتجت تشتغل بالبايثون راح تقدر تكتب كود بكل سهوله .
بالامس احتجت سكربت لموقع , حملت البايثون , اخذت ساعتين اتعلم الاساسيات و طلعت بالكود هذا



مع العلم ان مستواي بالجافا ممتاز و بالـ C++ ضعيف .

شكرا لك يا نايف

 

 




Hajime No Ippo متصل الآن  
Yes No
رد مع اقتباس

قديم 20-03-2017, 03:38 PM كاتب الموضوع #11
Hajime No Ippo
بارز
 
الصورة الرمزية Hajime No Ippo
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





open quote
mody alharbi
شخصيا انا شخص غير متخصص بالبرمجة

ولكني احتاجها في بعض مجالات عملي

استطعت ولله الحمد بكل سهولة تعلم السي بلس بلس

لعمل تطبيقات معينة في مجال عملي بكل دقة وجودة خلال فقط ثلاثة اشهر

وايضا تعلمت لغة الاسمبلي لعمل تطبيقات ابسط وايضا في مجال عملي مدة التعلم مقاربة للسي بلس بلس

الحكمة هنا ان تعلمي للغة السي جعل من السهل علي تعلم الاسمبلي مع الفرق الكبير جدا بينهم

والسبب اني بتعلمي لغة السي اصبح عندي منطق البرمجة العام واستطعت ان افكر كمبرمج

وهذا الشي ساعدني بتعلمي للاسمبلي فاصبحت اتعلم فقط الاوامر وبمعرفتي لكل امر

اجد ان له مقابل او مشابه في اللغة الاخرى وبكذا سهل علي تعلمها بشكل كبير

نصيحتي الان لك هي تعلم اللغة الاقرب لك حاليا ومع تمكنك منها سيصبح تعلم اللغات

الاخرى شي سهل بالنسبة لك


شكرا لك mody alharbi

 

 




Hajime No Ippo متصل الآن  
Yes No
رد مع اقتباس

قديم 21-03-2017, 12:56 PM #12
devil xp
مشارك
 
الصورة الرمزية devil xp
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





open quote
Hajime No Ippo
بالنسبة للـ ERP ، أنا قرأت كتاب في الـ ERP و لقيته يذكر أن الجافا مستخدمة في الإنتيقريشن (أو يمكن فهمي غلط )
من كتاب Enterprise Systems for Management



open quote
Hajime No Ippo
ما قدرت انسخ صورة من الكتاب ، يبي لها شغلانة
هذا النص المكتوب :


SAP continues to be a leader in many of the global organizations that promote the use of a common language such as the Organization for the Advancement of Structures Information Standards (OASIS) and the Java Community Process (JCP). Standards have been developed to help reduce the cost of integration and expedite the process.

المقطع دعائي يتكلم عن دور SAP في المساهمة في المعايير مع جهات مثل OASIS و JCP (هذي مجموعة إجراءات لابد من المرور فيها لأي جهة تبي تضيف أي شيء ويصير جزء من جافا أو تبي توحد شيء مثل المكتبات).

لكن ERP اسم لنوع من أنواع الأنظمة (وليس اسم منتج معين)، أنظمة الـERP ممكن تكتب بأي لغة مثلها مثل أي نوع من الأنظمة، هذي قائمة لأنظمة ERP منها المجاني ومنها التجاري.

 

 


devil xp غير متصل  
Yes No
رد مع اقتباس

قديم 26-03-2017, 09:33 PM #13
the leagnd
فعال
 
الصورة الرمزية the leagnd
 


the leagnd @Twitter
افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





مادام أنك مهتم ب Infotmation system, فحاول تتعلم لغه SQL

 

 

التوقيع
لاإله ألا الله محمد رسول الله



the leagnd غير متصل  
Yes No
رد مع اقتباس

قديم 14-04-2017, 04:35 PM #14
booge.ksa
بارز
 
الصورة الرمزية booge.ksa
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)







احد يعلمني ما علاقة لغة البرمجه بل الهكر

وهل تنصحوني بتعلمها ؟؟؟

 

 

التوقيع
░░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂
I███████████████████].
◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤...



booge.ksa غير متصل  
0 - 1 Yes No
رد مع اقتباس

قديم 15-04-2017, 08:34 AM #15
NAIF221
مبدع
 
الصورة الرمزية NAIF221
 


NAIF221 @Twitter
افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





open quote
booge.ksa


احد يعلمني ما علاقة لغة البرمجه بل الهكر

وهل تنصحوني بتعلمها ؟؟؟

لغات البرمجة هي الاساس , تقدر تكتب برامج مفيدة او تكتب برامج ضارة و يندرج تحت الضار التهكير و غيره .
هل ننصحك ؟
لا , لأن التهكير ما له فايدة غير السرقة و التخريب , غير ذلك تعلم البرمجة شيئ طيب

 

 

التوقيع

مطور تطبيقات Android
تطبيقاتي : قارئ الاسعار
نسعد بآرائكم



NAIF221 غير متصل  
Yes No
رد مع اقتباس

قديم 29-04-2017, 07:25 PM #16
هذرلوجيا
مشارك
 
الصورة الرمزية هذرلوجيا
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





شف وانا اخوك انا قد اشتغلت على نظام تشغيل وكنت ماسك جزئية الميموري منجمنت

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

 

 




هذرلوجيا غير متصل  
Yes No
رد مع اقتباس

قديم 12-05-2017, 07:21 AM #17
mhagr5
مشارك
 
الصورة الرمزية mhagr5
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





open quote
Hajime No Ippo
السلام عليكم


أدري إن هناك إجابة نموذجية و اللي هي حسب استخدامك و توجهك
أنا ما لي توجه حالي و لكني شخص أبي أتعلم أفضل لغة (تجاوزوا عن عدم دقة هذي الكلمة "أفضل") لأني أريد فهم البنية الداخلية لنظم المعلومات Information Systems
أنا حاليا مهتم بنظم المعلومات الإدارية و أريد أن أتمكن من التعامل معها إداريا و علميا ، تقنيا من حيث الهاردوير و السوفتوير
قاعد أدرس كورس تحليل النظم باستخدام منهجية Object Orient
و سبق أني قبل فترة بدأت في تعلم البايثون
لكن لما بدأت بدراسة تحليل النظم ، شعرت بأن لغة البايثون أقل من مستوى هذي المادة و أن لغة C++ أو الجافا أعلى مستوى منها ، و أريد أربط بين دراستي لتحليل النظم و التمكن من لغة برمجة توازي هذا اللي أدرسه
تصوري عن البايثون أنها لغة للمبتدئين ، و رغم أني أعرف أن لها تطبيقات مختلفة لكن أعتقد أن لغتي الـ C++ أو الجافا أوسع منها و أشمل
و حتى عند الشركات ، مهارة التمكن من لغة C++ أو جافا أهم (بحسب تصوري و أرجو التصحيح إذا كان تصوري غلط)


فما رأيكم ؟


لغة الباثون ماتقل عن اي لغة ثانية. لكن البايثون استخدامها كثير ف ال big data و الاختراقات اكثر من اي لغة ثانية. الجافا لغة برمجية بحته.

 

 

التوقيع
United State
Chicago / Illinois

If you are a programmer then you are a bilingual



mhagr5 غير متصل  
Yes No
رد مع اقتباس

قديم 26-05-2017, 10:48 AM #18
HexNAND
عضو جديد
 
الصورة الرمزية HexNAND
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





شوف باختصار,,

اغلب اللغات متقاربة
اللي يفرق انه الشركات احياناً تستثمر في لغة معينة وتطلب موظفين يتقنون اللغة هذي عشان ما تضطر تضييع الفلوس على نظام جديد بلغة مختلفة...
لكن ابسطها لك...

تبي تتعلم اساسيات البرمجة وكيف الجهاز يحول الإشارات الكهربائية الى اوامر وينفذها
Assembly Language
تعلم هاللغة غير حياتي حرفياً


تبي تبرمج انظمة تتحكم بالشبكات وتديرها,, خلك على البايثن او شوف لغة Go جديدة

تبي للآيقون,, شوف سويفت برضه توها جديدة مالها ظ£ سنين ولا السي#

تبي للآند رويد الجافا ولا السي#

تبي للوندوز اخف لغة الآن xaml + سي#

انترنت الأشياء,, برضه الجافا والسي#

تبي تبرمج للكلاود تعلم json

تبي تبرمج للإحصائيات وتحليلها R واعقد منها Haskell ,, لاكن بالنسبة لك انت متعلم بايثن,, ماراح تواجه صعوبة كبيرة..

حط باعتبارك ان الوندوز ظ،ظ آخر نظام للعميل,, لان العالم كله الآن متوجه للكلاود وانترنت الأشياء


وزي ماقلت لك,, اللغات متقاربة,, اقدر اكتب لك دالة بعشر لغات لله الحمد,, تؤدي نفس الوظيفة,, لكن اللي يقيد المبرمج الــــframework
كل شركه تتوسع في مجالها على حسب مايناسبها,,,,,

 

 




HexNAND غير متصل  
Yes No
رد مع اقتباس

قديم 26-05-2017, 01:16 PM #19
tony power
مبدع
 
الصورة الرمزية tony power
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





تعلم اكثر من لغة مافي شيء يمنع هو ليس طريق واحد على شان تحول لتعلم لغة أخرى

في مشاريع بلغات مختلفة مثلا جزء تطبيق موبايل بالجافا يتصل بسرفر ويب وصفحات php وينفذ بالخلفية سكربت بايثون على السرفر ويرجع النتيجة للتطبيق

 

 

التوقيع
http://i.imgur.com/nYS6yBe.jpg
يستمر الوحش الاسود في التهام الاخصر و اليابس بدون توقف



tony power متصل الآن  
Yes No
رد مع اقتباس

قديم 02-06-2017, 02:19 AM كاتب الموضوع #20
Hajime No Ippo
بارز
 
الصورة الرمزية Hajime No Ippo
 


افتراضي رد: أكمل على تعلم البايثون أم أحول إلى C++ أو Java ؟ (متعلم جديد)





أحسنتم ، بارك الله فيكم
معلومات متنوعة و ثرية
شكرا لكم فردا فردا
و تقبل الله صيامكم و قيامكم

 

 




Hajime No Ippo متصل الآن  
1 Yes No
رد مع اقتباس

إضافة رد

أدوات الموضوع

الانتقال السريع


الساعة الآن 05:32 PM.