السلام عليكم ورحمة الله وبركاتـه .
سؤالي هو , ماهي اللغات التي تتعامل مع العتاد ؟ ومالفرق بين لغة واخرى ؟
وماهي افضل لغة للتعامل مع الدوائر الالكترونية؟4
انا بإذن الله راح ادرس Computer System engineer فلابد اتقان لغة ولو اساسياتها . هل اللغات التي ذكرتها"بايثون,روبي" تتعامل مع الهاردوير"العتاد" ؟
بمعنى استطيع اعطاء اوامر للدائرة او الشريحة الالكترونية عن طريق لغة برمجية غير السي والسي ++ ؟
بحالتك تحتاج c/c++ بالإضافة لـ Assembly واساساً التخصص الذي ذكرت، سوف تدرس فيه هذه اللغات اعتقد ان اغلب الجامعات تدرس C بهذا التخصص بالاضافة لجافا وبعض الجامعات مؤخراً بدأت تبتعد عن جافا لصالح بايثون مع ابقاء C (على اي حال فكرة البرمجة بجافا او بايثون بالجامعات الهدف منها التثقيف البرمجي وليس اتقان اللغة هذه خصيصاً).
بايثون او روبي ممكن ان تتعامل مع نظام التشغيل "وبشكل ضيق/محدد" ، وليست مخصصة للتعامل مع العتاد مباشرة او نواة نظام التشغيل، هذه لغات لبناء تطبيقات سطح المكتب والويب (وممكن الجوالات الذكية بطريقة ما، لا علم لي فيها على اي حال)
لينكس كرنل تم بناءها بواسطة C، هذا يعني لبناء او برمجة اي تعريف Driver لاحدى مكونات الهاردوير ليعمل ويتعرف عليه لينكس كرنل يجب ان يكتب بهذه اللغة، ايضاً تحتاج للإلمام بشكل جيد جداً بالميكروبروسيسور، والثانية ايضاً سوف تدرسها بهذا بالتخصص الذي ذكرت.
انا لم افهم سؤالك الاخير جيداً بخصوص التعامل مع الدوائر الالكترونية لم تحدد نوع التعامل، على اي حال هناك فرق بين برمجة Driver للعتاد الفلاني وبين بناء العتاد نفسه، مصنع الهاردوير مثلا عند صنعة لـ Sound Card هو يقوم بصنع الجهاز Device ويقوم ايضاً ببناء Interface للتعامل مع الجهاز هذا، والانترفيس هو الذي يمكنك من بناء التعريف له وهو يقف بالمنتصف بين الجهاز وبين التعريف، التعريف ممكن يكون بلغات مختلفة وهذا فعلاً يعتمد على نظام التشغيل نفسه. كما يمكنك استخدام Assembly للتعامل مع جهاز ما.
يجب ان اذكر ايضاً انه يوجد نوعين اساسية للغات البرمجة:
Low-Level: لبناء انظمة التشغيل والتعريفات والتعامل مع العتاد مثال C, Assembly
High-Level: لبناء التطبيقات التي نؤدي بها ماهمنا اليومية مثال Python, Java, PHP
وبهذا الخصوص ايضاً يجب ان اذكر ان لغات High-Level تم بناءها بواسطة لغات Low-Level. لا اريد الدخول في مقارنات وتخصصات High/Low Level لانه نقاش طويل ماراح ينتهي لكن نقطة اخيرة سوف اذكرها بهذا الخصوص لتكون الفكرة واضحة اكثر.
لغات Low-Level تتعامل مع العتاد مباشرة لا تحتاج لمفسرات او مترجمات تترجم الكود. لغات High-Level تحتاج لمفسر، بمعنى برنامج كتب بلغة الجافا لن يعمل على نظام التشغيل الذي تستخدم اذا لم يكن لديك JRE منصب، لهذا نحن لا نستطيع بناء نظام تشغيل يعتمد على بايثون او جافا او روبي...الخ من لغات High-Level.
ملاحظة: ممكن استخدام لغات Low-Level لكتابة كود او وظيفة High-Level.
التعليقات