سؤال

أنا جزء من المدرسة الثانوية الروبوتات الفريق, و هناك بعض الجدل حول اللغة التي لاستخدام برنامج الروبوت لدينا.نحن اختيار بين ج (أو ربما C++) و ابفيف.هناك إيجابيات لكل لغة.

ج(++):

  • تستخدم على نطاق واسع
  • الإعداد الجيد للمستقبل (معظم البرمجة المواقف تتطلب يستند إلى نص المبرمجين.)
  • يمكننا أن نتوسع ج codebase من العام الماضي
  • يسمح لنا أن نفهم بشكل أفضل ما لدينا روبوت يقوم به.

ابفيف

  • من السهل تصور تدفق البرنامج (كتل الأسلاك بدلا من الأسطر من التعليمات البرمجية)
  • أسهل لتعليم (المفترض...)
  • "مستقبل البرمجة الرسومية." (أعتقد؟)
  • أقرب إلى Robolab خلفية أن بعض أعضاء جدد قد يكون.
  • لا تحتاج إلى وثيقا تعرف ماذا يجري.ببساطة أقول وحدة للعثور على الكرة الحمراء ، لا أريد أن أعرف كيف.

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

أيضا:

  • هل تعتقد أن الرسومية لغات مثل LabVEIW هم مستقبل البرمجة ؟
  • هي لغة رسومية أسهل للتعلم من نصوص اللغة ؟ أعتقد أنه ينبغي أن يكون حول نفس القدر من صعوبة التعلم.
  • كما نرى نحن partailly متجذرة في مساعدة الناس على التعلم ، كم ينبغي لنا أن نعتمد على كتابتها وحدات ، وكم يجب أن نحاول الكتابة على منطقتنا ؟ ("جيد المبرمجين كتابة جيدة رمز كبير المبرمجين نسخ كبيرة من التعليمات البرمجية." ولكن لا يستحق كونه مبرمج جيد أولا؟)

شكرا على النصيحة!


تحرير:أود أن أؤكد على هذه المسألة أكثر:كابتن الفريق يعتقد أن ابفيف هو أفضل لسهولة التعلم والتعليم. هل هذا صحيح ؟ أعتقد أن ج يمكن أن تدرس بسهولة و المبتدئين على مستوى المهام لا يزال حولها مع C.أود حقا أن نسمع آرائكم. هل هناك أي سبب الكتابة حين{} يجب أن يكون أي أكثر صعوبة من خلق "في حين الصندوق؟" ليس هو فقط بديهية كما أن البرنامج التدفقات سطرا فقط تعديل من قبل الاتحاد الحلقات ، كما هو بديهية أن البرنامج يتدفق عبر الأسلاك ، فقط تعديل من قبل الاتحاد الحلقات!?

شكرا مرة أخرى!


تحرير:أنا فقط أدركت أن هذا يندرج تحت موضوع "اللغة المناقشة." أتمنى أن لا بأس, لأنه حول ما هو الأفضل بالنسبة فرع معين من البرمجة مع أهداف معينة.إذا لم يكن...أنا آسف...

هل كانت مفيدة؟

المحلول

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

ابفيف كبيرة لاستخدام ما كانت مصممة أصلا.أيأن تأخذ البيانات من DAQ بطاقات وعرضه على الشاشة ربما مع بعض التعديلات التلاعب في ما بينهما.ومع ذلك ، البرمجة خوارزميات لا يوجد أسهل و أود أن أقترح أنه أكثر صعوبة.على سبيل المثال ، في معظم اللغات الإجرائية أمر الإعدام عموما يتبع خط سطرا ، باستخدام الزائفة ملاحظه الرياضية (أي y = x*x + x + 1) بينما ابفيف تنفيذ هذا باستخدام سلسلة من السادس التي لا تتبع بالضرورة عن بعضها البعض (أيمن اليسار إلى اليمين) على قماش.

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

أعتقد أن بعض جوانب برمجة رسومية قد تصبح السائدة - استخدام الفرعية فيس يجسد تماما 'الصندوق الأسود' مدير البرمجة و يستخدم أيضا في لغة أخرى تجريدات مثل ياهو الأنابيب أبل الأوتوماتيكية - وربما بعض المستقبل الرسومية اللغة سوف تحدث ثورة في طريقة البرنامج ولكن ابفيف نفسها ليست نقلة نوعية ضخمة في لغة التصميم لا يزال لدينا while, for, if التحكم في التدفق, تلبيس, الحدث مدفوعة البرمجة حتى الكائنات.إذا كان المستقبل حقا سوف تكون مكتوبة في ابفيف, C++ مبرمج لن يكون الكثير من المتاعب العبور.

كما postcript أود أن أقول أن C/C++ هو أكثر ملاءمة الروبوتات لأن الطلاب لا شك سوف تضطر إلى التعامل مع جزءا لا يتجزأ من أنظمة التصميم بما في بعض نقطة.انخفاض مستوى المعرفة البرمجة (بت يسجل.... الخ) ستكون لا تقدر بثمن بالنسبة لهذا النوع من الشيء.

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

نصائح أخرى

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

و الآن يجب علي أن أمنع نفسي من كتابة 5 صفحة خرف ، لأنه بالنسبة لي ابفيف كان كابوسا.اسمحوا لي بدلا من ذلك في محاولة تلخيص بعض إيجابيات وسلبيات:

تنويه أنا لست ابفيف الخبراء ربما يقولون أشياء متحيزة خارج التاريخ أو مجرد خطأ عادي :)

ابفيف الايجابيات

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

ابفيف سلبيات

  • انها ربما أيضا سهلة التعلم.في أي حال, يبدو أن لا أحد يزعج حقا لتعلم أفضل الممارسات ، بحيث برامج سرعان ما تصبح كاملة ، لا يمكن إصلاحه الفوضى.بالتأكيد, هذا أيضا لا بد أن يحدث مع النص على أساس اللغات إذا كنت غير دقيق ، ولكن المنظمة انها أكثر من ذلك بكثير من الصعب أن تفعل الأمور في نصابها الصحيح في ابفيف.
  • هناك تميل إلى أن تكون القضايا الرئيسية في ابفيف مع إيجاد الفرعية فيس (حتى يصل إلى الإصدار 8.2 أعتقد).ابفيف لديها طريقتها الخاصة في معرفة أين تجد المكتبات الفرعية فيس, مما يجعل من السهل جدا لكسر تماما البرمجيات الخاصة بك.وهذا يجعل المشاريع الكبيرة الألم إذا لم يكن لديك شخص يعرف كيفية التعامل مع هذا.
  • الحصول على ابفيف للعمل مع التحكم في الإصدار هو الألم.بالتأكيد يمكن القيام به ، ولكن في أي حال كنت الامتناع عن استخدام المدمج في VC.تحقق من LVDiff عن ابفيف مهرجان دبي السينمائي الدولي أداة, ولكن لا أعتقد حتى عن دمج.

(آخر نقطتين جعل العمل في فريق على مشروع واحد من الصعب.ربما من المهم في هذه الحالة)

  • هذه الشخصية, ولكن أجد أن العديد من الخوارزميات لا تعمل فقط عندما المبرمجة بصريا. انها فوضى.
    • مثال واحد هو الاشياء بدقة متسلسلة;أن يحصل مرهقة جدا بسرعة.
    • إنه من الصعب أن يكون لمحة عامة عن القانون.
    • إذا كنت تستخدم الفرعي السادس على المهام الصغيرة (مثل انها ممارسة جيدة لجعل المهام التي تؤدي مهمة صغيرة, و ذلك لاحتوائه على شاشة واحدة), لا يمكنك أن تعطي لهم أسماء, ولكن لديك لرسم الرموز لكل منهم.أن يحصل مزعج جدا و مرهقة في غضون بضع دقائق فقط ، لذلك أصبح يميل جدا لا لوضع الأمور في الباطن السادس.انها مجرد الكثير من المتاعب.راجع للشغل:مما يجعل جيدة حقا رمز يمكن أن تأخذ المهنية ساعات.تذهب في محاولة لجعل فريدة من نوعها, على الفور مفهومة ، التعرف رمز لكل الفرعي السادس تكتب :)
  • سيكون لديك النفق الرسغي في غضون أسبوع.مضمونة.
  • @بريندان:سماع, سماع!

الملاحظات الختامية

كما "يجب أن أكتب بلدي وحدات" السؤال:أنا لست متأكدا.يعتمد على ضيق الوقت.لا يقضون وقتا على إعادة اختراع العجلة إذا لم يكن لديك إلى.فإنه من السهل جدا أن تنفق أيام على الكتابة على مستوى منخفض رمز ثم أدرك كنت قد نفد من الوقت.إذا هذا يعني أنك تختار ابفيف هذا.

إذا كان سيكون هناك طرق سهلة الجمع بين ابفيف ، مثل C++, أحب أن نسمع عن ذلك:التي يمكن أن تعطيك أفضل من كلا العالمين ، ولكن لا شك أن هناك.

ولكن تأكد من أنك وفريقك قضاء بعض الوقت في تعلم أفضل الممارسات.ينظرون إلى بعضهم البعض رمز.التعلم من بعضهم البعض.الكتابة صالحة للاستعمال, كود مفهومة.و يلهون!

و يرجى أن يغفر لي عن السبر منفعل وربما إلى حد ما متحذلق.انها مجرد أن ابفيف تم الحقيقي كابوس بالنسبة لي :)

أعتقد أن اختيار ابفيف أو لا يأتي إلى أسفل إلى ما إذا كنت ترغب في تعلم البرنامج في اللغة المستخدمة عادة مثل مهارة تسويق, أو فقط ترغب في الحصول على الاشياء القيام به.ابفيف تمكنك من الحصول على الاشياء القيام به بشكل سريع جدا و مثمر.كما أن آخرين قد لاحظ أنه لا سحرية مجانية لك من الاضطرار إلى فهم ما تفعله و من الممكن جدا لخلق فوضى غير مقدس إذا لم يكن - على الرغم من أن الروايات المتناقلة, أسوأ أمثلة سيئة أسلوب الترميز في ابفيف عادة ترتكب من قبل الناس الذين هم من ذوي الخبرة في نص اللغة يرفضون التكيف مع كيف ابفيف يعمل بسبب انهم يعرفون بالفعل كيفية برمجة, اللعنة!'

هذا لا يعني أن ابفيف البرمجة ليست مهارة تسويق, بالطبع ؛ فقط أنها ليست كتلة السوق مثل C++.

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

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

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

المكان الأكثر نشاطا حاليا للحصول على مزيد من المعلومات والمساعدة مع ابفيف ، وبصرف النظر عن الصكوك الوطنية الخاصة موقع و منتديات, يبدو أن الحمم.

هذا لا يجيب لك السؤال مباشرة ، ولكن قد ترغب في النظر في خيار ثالث من خلط في تفسير اللغة. لوا, ، على سبيل المثال ، بالفعل تستخدم في مجال الروبوتات.انها سريعة, خفيفة الوزن و يمكن تكوين تشغيل مع نقطة ثابتة أرقام بدلا من الفاصلة العائمة منذ أكثر ميكروكنترولر لا يكون FPU. وإيابا هو بديل آخر مع استخدام مماثل.

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

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

ابفيف هناك قوة أخرى (إلى جانب المكتبات) ، التزامن.انها امتحان اللغة, مما يعني أن وقت التشغيل يمكن التعامل مع التزامن بالنسبة لك.حتى إذا كنت تفعل شيئا عالية المتزامنة و لا أريد أن أفعل التقليدية التزامن ، ابفيف يمكن أن تساعدك هناك.

المستقبل لا تنتمي إلى الرسومية اللغات كما أنها تقف اليوم.وهو ينتمي إلى من يمكن أن تأتي مع تمثيل البيانات (أو آخر التزامن الصديقة نوع من البرمجة) هذا واضحة كما رسومية النهج ، ولكن أيضا parsable من قبل مبرمج الخاصة أدوات.

هناك دراسة نشرت الموضوع استضافته الصكوك الوطنية:

دراسة بيانية مقابلالبرمجة النصية التدريس DSP

على وجه التحديد يبدو في ابفيف مقابل MATLAB (بدلا ج).

أعتقد أن الرسومية اللغات فيل دائما تكون محدودة في والتعبيرية مقارنة النصوص منها.قارن يحاول التواصل في الرموز البصرية (مثل اللغز أو لغة الإشارة) إلى التواصل باستخدام الكلمات.

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

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

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

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

أكبر سقوط ابفيف, رغم أن, هو أن تخسر كل الأدوات التي المبرمجين يكتبون عن أنفسهم.

يتم تخزين التعليمات البرمجية كما فيس.هذه هي مبهمة ، الملفات الثنائية.هذا يعني أن الكود الخاص بك حقا ليس لك إنه ابفيف هو.لا يمكنك الكتابة الخاصة بك محلل, لا يمكنك كتابة رمز مولد لا يمكنك الآلي التغييرات عبر وحدات الماكرو أو البرامج النصية.

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

و نعم, لأنه الثنائية, لا يمكنك أن تفعل مهرجان دبي السينمائي الدولي/دمج/التصحيح مثل يمكنك مع نصوص اللغات.هذا الواقع جعل العمل مع أكثر من إصدار واحد من رمز المرعب من الصيانة.

عن طريق ابفيف إذا كنت تفعل شيئا بسيطا ، أو تحتاج إلى النموذج أو لا خطة للحفاظ على التعليمات البرمجية الخاصة بك.

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

(إذا كنت بحاجة DAQ المكتبات ، ني حصل C++.صافي إصدارات تلك أيضا.)

أول وظيفة هنا :) يكون لطيف ...

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

من حيث سهولة التعلم ، وهناك العديد العديد من الموارد هناك C/C++ و العديد من المواقع التي وضع اعتبارات التصميم و الأمثلة على الخوارزميات على أي شيء تقريبا كنت بعد متاحة بحرية.بالنسبة ابفيف المستخدم المجتمع ربما لم متنوعة مثل C/C++, و يستغرق قليلا من الجهد لفحص ومقارنة التعليمة البرمجية الموجودة في المثال (أن يكون لديك الإصدار الصحيح من ابفيف الخ) ...وجدت ابفيف من السهل جدا لالتقاط تعلم ، ولكن هناك المضايقات بعض ذكرتها هنا علاقة التوازي و العديد من الأشياء الأخرى التي تتطلب قليلا من الخبرة قبل أن تصبح على علم بها.

وبالتالي فإن الاستنتاج بعد كل هذا ؟ أود أن أقول أن كل اللغات هي جديرة بالاهتمام في التعلم لأنها فعلا تمثل اثنين من أنماط مختلفة من البرمجة و هو بالتأكيد جديرة بالاهتمام أن تكون على علم ويتقن على حد سواء.

يا إلهي, الجواب هو بسيط جدا.استخدام ابفيف.

لقد قمت ببرمجة النظم المضمنة لمدة 10 سنوات, و أستطيع أن أقول أنه من دون ما لا يقل عن بضعة أشهر من البنية التحتية (حريصا جدا على البنية التحتية!), سوف لا تكون مثمرة كما كنت في اليوم 1 مع ابفيف.

إذا كنت تقوم بتصميم روبوت ليتم بيعها واستخدامها في الجيش المضي قدما والبدء في مع ج - انه قرار جيد.

وإلا فإن استخدام نظام يسمح لك لمحاولة الخروج الأكثر متنوعة في أقصر فترة من الوقت.هذا ابفيف.

أعتقد أن الرسومية قد يكون اللغات لغة المستقبل.....لجميع أولئك مخصصا MS Access مطوري هناك.سوف يكون هناك دائما بقعة بحتة النصية المبرمجون.

شخصيا, أنا يجب أن نسأل ما هو متعة حقيقية في بناء الروبوت إذا كان كل ذلك بالنسبة لك ؟ إذا كنت مجرد قطرة 'العثور على الكرة الحمراء وحدة هناك وشاهد الأمر ؟ ما الشعور بالفخر سيكون لديك الخاص بك الإنجاز ؟ أنا شخصيا لن يكون كثيرا.بالإضافة إلى ما سوف يعلمك من الترميز ، أو من (مهم جدا) جانب من جوانب البرمجيات/الأجهزة واجهة الحرجة في الروبوتات ؟

أنا لا أدعي أن يكون خبيرا في هذا المجال ، ولكن اسأل نفسك شيء واحد:هل تعتقد أن ناسا تستخدم ابفيف إلى رمز المريخ روفرز?هل تعتقد أن أي شخص حقا بارزة في الروبوتات باستخدام ابفيف?

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

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

C/C++ يساوي إدارة الذاكرة الخاصة بك.عليك أن تكون السباحة في الذاكرة الروابط و القلق عنهم.تذهب مع ابفيف و تأكد من قراءة الوثائق التي تأتي مع ابفيف و احترس من شروط السباق.

تعلم لغة سهلة.تعلم كيفية البرنامج لا.هذا لا يغير حتى لو كانت لغة رسومية.ميزة الرسومية اللغات هو أسهل البصرية ماذا تفعل الكود بدلا من الجلوس هناك و فك حفنة من النص.

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

تنويه:لقد شهد ابفيف, ولكن لقد استخدمت بعض الرسومية الأخرى اللغات بما في ذلك WebMethods تدفق المنمذج, المحاكاة الديناميكية اللغات في الجامعة, er, معهد ماساتشوستس للتكنولوجيا الصفر :).

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

من ناحية أخرى, لا أعتقد C++ كبيرة من أجل الوضع الخاص بك أيضا.سوف تنفق المزيد من الوقت في تعقب مؤشر مشاكل إدارة الذاكرة مما كنت تفعل في عمل مفيد.

إذا كان الروبوت الخاص بك يمكن التحكم باستخدام لغة البرمجة (Python, Ruby, Perl, أيا كان) ، ثم أعتقد أنه سيكون خيار أفضل بكثير.

ثم هناك الهجين خيارات:

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

إذا ابفيف يسمح بذلك ، استخدام رسومية اللغة راسيا معا وحدات مكتوبة في اللغة النصية.

كنت في المدرسة الثانوية.كم لديك من الوقت للعمل على هذا البرنامج ؟ كيف كثير من الناس في مجموعتك ؟ هل تعلم C++ أو ابفيف بالفعل ؟

من السؤال أرى أن تعلم C++ و معظم الفريق لا.كما أنني أظن أن قائد المجموعة هو الادراك يكفي أن تلاحظ أن بعض أعضاء الفريق قد يكون للترهيب من قبل على أساس النص لغة البرمجة.هذا غير مقبول ، كنت في المدرسة الثانوية ، normies.أشعر كما لو عادي طالبات المرحلة الثانوية سوف تكون قادرة على فهم ابفيف أكثر بداهة من C++.أعتقد أن معظم طلاب المدارس الثانوية ، مثل السكان خائفون من سطر الأوامر.بالنسبة لك هناك أقل بكثير من الفرق, ولكن بالنسبة لهم هو الليل والنهار.

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

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

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

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

حظا سعيدا!

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

هناك شيء كبير وجدت السلبية في استخدام ابفيف بلدي التطبيقات:تنظيم تعقيد التصميم.كما physisist أجد ابفيف كبيرة على النماذج, أداة التحكم في التحليل الرياضي.لا يوجد اللغة التي يمكنك الحصول على أسرع وأفضل نتيجة ثم في ابفيف.اعتدت ابفيف منذ عام 1997.منذ عام 2005 تحولت تماما .NET framework, حيث أنه من الأسهل تصميم وصيانة.

في ابفيف بسيطة 'إذا' هيكل التي يمكن استخلاصها و يستخدم الكثير من المساحة على تصميم الرسوم البيانية.أنا فقط وجدت أن العديد من التطبيقات التجارية كان من الصعب الحفاظ عليها.أكثر تعقيدا التطبيق أصبح أكثر صعوبة القراءة.

أنا الآن استخدام النص laguages و أنا أفضل بكثير في الحفاظ على كل شيء.إذا كنت مقارنة C++ ابفيف وأود أن استخدام ابفيف ، ولكن بالمقارنة مع C# لا فوز

كما دائما, ذلك يعتمد.

أنا باستخدام ابفيف منذ حوالي 20 عاما حتى الآن ولم كبير جدا هذا النوع من الوظائف ، DAQ معقدة جدا التصور من جهاز التحكم لاختبار التعاقب.إذا لم تكن جيدة بما فيه الكفاية ، أنا متأكد من أن تحولت.وقال لقد بدأت الترميز Fortran مع punchcards و تستخدم الكثير من لغات البرمجة على 8 بت 'الأجهزة' ، بدءا Z80-على أساس منها.اللغات التي تراوحت بين المجمع الأساسية من توربو باسكال إلى C.

ابفيف كان تحسنا كبيرا بسبب الواسعة المكتبات البيانات احتياز والتحليل.واحد ولكن لتعلم مختلف paradigma.وأنت بالتأكيد بحاجة إلى كرة ;-))

لا شيء عن ابفيف (أو الكثير عن C/C++), ولكن..

هل تعتقد أن الرسومية لغات مثل LabVEIW هم مستقبل البرمجة ؟

لا...

هي لغة رسومية أسهل للتعلم من نصوص اللغة ؟ أعتقد أنه ينبغي أن يكون حول نفس القدر من صعوبة التعلم.

من الأسهل أن تتعلم ؟ لا, لكنهم هي أسهل شرح وفهم.

شرح لغة البرمجة يجب أن يفسر ما هو متغير (التي من الصعب المستغرب).هذا ليس مشكلة مع flowgraph/العقدي الترميز أدوات مثل ليغو Mindstroms واجهة برمجة أو الكوارتز الملحن..

على سبيل المثال ، في هذه معقدة إلى حد ما ليغو Mindstroms البرنامج - أنه من السهل جدا أن نفهم ما يجري في...ولكن ماذا لو كنت تريد الروبوت تشغيل INCREASEJITTER بلوك 5 مرات ، ثم دفع إلى الأمام لمدة 10 ثوان, ثم حاول INCREASEJITTER حلقة ثانية ؟ بدأت الأمور تصبح فوضوي جدا بسرعة..

الكوارتز الملحن الكبير حصول exmaple هذا السبب في أنني لا أعتقد الرسومية اللغات سيكون من أي وقت مضى "المستقبل"

فإنه يجعل من السهل جدا أن الاشياء باردة حقا (3D الجسيمات آثار, مع كاميرا يسيطر متوسط سطوع بكسل من كاميرا ويب)..ولكن من الصعب بشكل لا يصدق أن تفعل الأشياء سهلة ، مثل تكرار أكثر من العناصر من ملف XML أو متجر متوسط قيمة البكسل في ملف.

كما نرى نحن partailly متجذرة في مساعدة الناس على تعلم كم ينبغي لنا أن نعتمد على كتابتها وحدات ، وكم يجب أن نحاول الكتابة على منطقتنا ؟ ("جيد المبرمجين كتابة جيدة رمز كبير المبرمجين نسخ كبيرة من التعليمات البرمجية." ولكن لا يستحق كونه مبرمج جيد أولا؟)

التعلم هو أسهل بكثير كل تفسير وفهم لغة رسومية..

وقال أنصح متخصصة تستند إلى نص اللغة اللغة كما تقدم.على سبيل المثال ، الرسومات شيئا مثل تجهيز أو NodeBox.أنها "طبيعية" لغات (تجهيز جافا ، NodeBox هو بيثون) مع المتخصصة جدا, سهلة الاستخدام (ولكن بعبثية قوية) أطر متأصلة في نفوسهم..

والأهم من ذلك أنها تفاعلية جدا لغات, لم يكن لديك لكتابة مئات من خطوط فقط للحصول على دائرة على الشاشة..كنت اكتب فقط oval(100, 200, 10, 10) و اضغط على زر تشغيل و يبدو!هذا أيضا يجعل من السهل جدا إثبات وشرح.

أكثر الروبوتات ذات الصلة ، حتى شيء مثل الشعار سيكون مقدمة جيدة - كنت اكتب "إلى الأمام 1" و السلحفاة يدفع إلى الأمام مربع واحد..نوع "اليسار 90" و يتحول 90 درجة..ويتصل هذا الواقع ببساطة شديدة.يمكنك تصور ما كل التعليمات سوف تفعل, ثم محاولة الخروج منها والتأكد من أنه يعمل حقا بهذه الطريقة.

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

ويبدو أنه إذا كنت تحاول إعداد فريق للمستقبل في برمجة (C++) ما يكون الطريق الأفضل.وعد العامة لغات البرمجة المضمنة مع visual اللبنات لم يبدو أن تتحقق و أنا بدأت أتساءل عما إذا كانوا من أي وقت مضى وسوف.يبدو أنه في حين يمكن أن يتم ذلك عن مشكلة محددة المجالات ، تحصل مرة واحدة في محاولة حل العديد من المشاكل العامة على أساس النص لغة البرمجة من الصعب الفوز.

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

لقد بدأت مع ابفيف حول 2 منذ سنوات و الآن استخدامها في كل وقت لذا قد يكون متحيزا ولكن تجد مثالية لتطبيقات حيث الحصول على البيانات و التحكم المعنية.

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

ليس بالضبط مثل C/C++ لكن مماثل تنفيذ القياس والتحكم والتحليل باستخدام Visual BASIC يظهر معقدة و من الصعب الحفاظ على طريق المقارنة.

أعتقد أن عملية البرمجة هو أكثر أهمية من الفعلية ترميز اللغة و يجب عليك اتباع النمط توجيهية لغة برمجة رسومية.ابفيف المخططات كتلة تظهر تدفق البيانات (امتحان البرمجة) لذلك ينبغي أن يكون من السهل أن نرى إمكانات شروط السباق على الرغم من أنني لم أصب أي مشاكل.إذا كان لديك ج codebase ثم بناء عليه إلى dll تسمح ابفيف أن نسميها مباشرة.

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

معرفة برمجة رسومية لن تفيد أي مبرمج المستقبل بالتأكيد.ربما سيكون هناك فرص في المستقبل التي لا تتطلب سوى معرفة برمجة رسومية وربما بعض الطلاب يمكن أن تستفيد من بعض في وقت مبكر تجربة معها.من ناحية أخرى, أساس متين في مفاهيم البرمجة الأساسية التي يوفرها النصية النهج سوف تستفيد كل من الطلاب و بالتأكيد يجب أن يكون أفضل إجابة.

كابتن الفريق يعتقد أن ابفيف هو أفضل لسهولة التعلم التدريس.هل هذا صحيح ؟

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

أحد فرق جوهري - وبصرف النظر عن الرسم - أن الوقف هو الطلب القائم (تدفق) البرمجة.تبدأ من نتائج و أقول ما هو مطلوب للوصول الى ذلك.البرمجة التقليدية تميل إلى أن تكون حتمية (الذهاب العكس).

بعض اللغات يمكن أن توفر على حد سواء.أنا وضعت خاصية تعدد مكتبة لوا مؤخرا (ممرات) و أنها يمكن أن تستخدم على أساس الطلب البرمجة في خلاف حتمي البيئة.أعرف أن هناك نجاحا الروبوتات تشغيل معظمها في لوا هناك (مجنون إيفان في لوا يا ست).

هل كان لديك نظرة على Microsoft Robotics Studio?http://msdn.microsoft.com/en-us/robotics/default.aspx

لأنها تتيح البرمجة المرئية (VPL):http://msdn.microsoft.com/en-us/library/bb483047.aspx فضلا عن اللغات الحديثة مثل C#.أنا أشجعكم على الأقل نلقي نظرة على الدروس.

لي وجع ضد ابفيف (و Matlab في هذا الصدد) هو أنه إذا كنت تنوي تضمين التعليمات البرمجية في أي شيء آخر غير x86 (و ابفيف لديه الأدوات اللازمة لوضع ابفيف فيس على الأسلحة) ثم سيكون لديك لرمي قدر حصانا عند مشكلة كما يمكنك لأنها غير فعالة.

ابفيف عظيم أداة النماذج:الكثير من المكتبات سهلة سلسلة معا كتل, ربما قليلا من الصعب القيام به خوارزميات متقدمة ولكن ربما هناك كتلة ما تريد القيام به.يمكنك الحصول على وظيفة القيام به بسرعة.ولكن إذا كنت تعتقد أنك يمكن أن تأخذ تلك السادس و فقط ضعه على الجهاز كنت على خطأ.فعلى سبيل المثال ، إذا كنت جعل الأفعى كتلة في ابفيف لديك اثنين من المدخلات إخراج واحد.ما هو استخدام الذاكرة من أجل ذلك ؟ ثلاثة متغيرات قيمة البيانات ؟ اثنين ؟ في C أو C++ تعلم, لأنه يمكنك إما كتابة z=x+y أو x+=y وأنت تعرف بالضبط ما هو رمز تفعل و ماذا الذاكرة الوضع.استخدام الذاكرة يمكن أن ارتفاع بسرعة خصوصا (كما أشار آخرون) ابفيف للغاية موازية.حتى تكون مستعدة لرمي المزيد من ذاكرة الوصول العشوائي مما كنت اعتقد في مشكلة.و المزيد من قوة المعالجة.

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

الناس دائما مقارنة ابفيف مع C++ و يوم "أوه ابفيف عالية المستوى و قد بنيت الكثير في محاولة وظيفة الحصول على البيانات القيام dfft وعرض البيانات لذلك من السهل جدا في ابفيف حاول في C++".

أسطورة 1:من الصعب الحصول على أي شيء فعله مع C++ لأن في ذلك انخفاض مستوى ابفيف لديه العديد من الأشياء التي نفذت بالفعل.المشكلة إذا كنت تقوم بتطوير نظام الروبوتية في C++ يجب استخدام المكتبات مثل بنسف , pcl ..إلخ ويمكنك أن تكون أكثر ذكاء إذا كنت تستخدم برنامج إطار تصميم وبناء أنظمة روبوتية مثل روس (الروبوت نظام التشغيل).لذلك تحتاج إلى استخدام مجموعة كاملة من الأدوات.في الحقيقة هناك أكثر من ارتفاع مستوى الأدوات المتاحة عند استخدام روس + python/c++ مع المكتبات مثل بنسف pcl.لقد استخدمت ابفيف الروبوتات و بصراحة عادة تستخدم خوارزميات مثل برنامج المقارنات الدولية ليست هناك ليست مثل يمكنك استخدام المكتبات الأخرى بسهولة الآن.

Myth2:هو أنه من الأسهل أن نفهم لغات البرمجة الرسومية

ذلك يعتمد على الوضع.عند ترميز خوارزمية معقدة العناصر الرسومية سوف تأخذ قيمة مساحة الشاشة وسوف يكون من الصعب فهم طريقة.فهم ابفيف رمز عليك أن تقرأ أكثر من منطقة O(n^2) التعقيد في التعليمات البرمجية يمكنك قراءة فقط أعلى إلى أسفل.

ما إذا كان لديك أنظمة موازية.ROS تنفذ الرسم البياني على أساس الهندسة المعمارية على أساس subcriber/الناشر رسائل تنفيذها باستخدام الاستدعاء و من السهل جدا أن يكون لديك عدة برامج تشغيل والتواصل.الحاجة الفردية الموازية مكونات فصل يسهل التصحيح.وعلى سبيل المثال التنقل من خلال موازية ابفيف رمز كابوس لأن التحكم في التدفق يقفز شكل من مكان إلى آخر.في ROS لا صراحة 'رسم الخاص بك archietecture في ابفيف ، ولكن يمكنك لا تزال ترى في بلدي تشغيل الأمر روس تشغيل rqt_graph ( والتي سوف تظهر جميع العقد متصلة)

"مستقبل البرمجة الرسومية." (أعتقد؟)

لا أتمنى الحالي تنفيذ ابفيف لا تسمح الترميز باستخدام الأساليب النصية والرسومية الأساليب.( هناك mathscript , ولكن هذا هو بطيء بشكل لا يصدق)

من الصعب أن التصحيح لأنك غير قادر على إخفاء التوازي بسهولة.

من الصعب قراءة ابفيف رمز لأن هناك عليك أن تبدو أكثر من ذلك بكثير المنطقة.

ابفيف كبيرة من البيانات aq ومعالجة الإشارات ولكن ليس التجريبية الروبوتات, لأن معظم من ارتفاع مستوى مكونات مثل SLAM (المتزامن التوطين و رسم الخرائط), سحابة نقطة تسجيل نقطة سحابة تجهيز إلخ في عداد المفقودين.حتى لو كانت تفعل إضافة هذه المكونات فهي سهلة لدمج مثل روس ، لأن ابفيف هو الملكية ومكلفة أنها لن مواكبة مجتمع المصادر المفتوحة.

باختصار إذا ابفيف هو مستقبل الميكاترونيك أنا أغير المسار الوظيفي إلى الخدمات المصرفية الاستثمارية...إذا كنت لا يمكن أن يتمتع عملي أنا قد وكذلك كسب بعض المال التقاعد المبكر...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top