الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إلى كل من يشكك في قدرة الجافا في التعامل مع العتاد

بدأه M.Allaw في 27 فبراير 2010 · 25 رد · 1,773 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

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

هذه مقاطع فيديو على الـYoutube ترد على كل من يشك في قوة الجافا في التعامل مع العتاد :) :

World's First Java-Controlled Industrial Robot

Java controlled LED matrix Sign

Little car controlled by java program with keyboard

Ac Motor Control on Internet by using JAVA and DS80C400

SolarRobot HD

I Love You Java

1


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#2

حلوين جداً و خصوصاً فديو ال robot ال بيرسم و العربة المتحركة .

لكن أنت بتقرأ من ايه لمواضيع الجافا مع ال hardware

---------------------

شكراً أخ محمد

#3

Thanks

#4

بصراحة , رد ولا اروع للمشككين . مشكووور :)

بحثت عن قلمي البارحة فلم أجدة!

...............

لم أجد سوى لوحة المفاتيح هذة

.............

تتطلع إلي بشفقة..

.............

أكاد أسمعها .. تقول (ألم يسمع بGoogle ؟!؟؟)

#5

لا أحد يرد إلا بالشيفرة يا أخ محمد

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

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

أشكركم جميعاً على مروركم :)

علاء حبيبي تعال هنا , أنا منزل الموضوع مخصوص هذا عشانك tongue.gif

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

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

وبعدين من قال انه لازم أكون قد برمجت روبوتات بنفسي عشان أقول انها قويه ولا ركيكه , مثلاً الكل يعرف مدى قوة الجافا في التعامل مع الإنترنت والويب و..إلخ

وانا عمري ماأستخدمت الـJ2EE بكل مشتقاته , فهل هذا يعني اني لازم أقول أن الجافا ضعيفه في مجال الأنترنت ؟ وكذلك الـJ2ME إذا سألتك عن امكانية الجافا في التعامل مع التلفونات وانت ماقد اشتغلت عليها وقلتلي انها قويه في هذا المجال , فهل تعتبر طلبي منطقي ان قلتلك اعطيني كود برمجته انت او أثبتلي بكود wink.gif?

أكيد بتقول لي ان أكبر دليل على كلامك هو ان أغلب التلفونات اللي نستخدمها برامجها معتمده على الجافا بشكل أساسي , فانا أقول لك ان أكبر دليل على قدرة الجافا على التعامل مع هذا المجال هي المقاطع اللي شفتها وأول مقطع فيه الأب الروحي للجافا بنفسه James Gosling يقدم الروبوت هذا المبرمج بالكامل باستخدام الجافا


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#7

أنا أعرف أنك تضع هذا الموضوع لأجلي يا محمد

يبدو لي أنه لم يتضح لك كلامي

أنا كنت أقصد أن ما وضعه هؤلاء ليس كفاية يا محمد

نحن نعرف J2me ونعرف إمكانياته

لكن هل تعرف ما الذي قام به هؤلاء للقيام بهذه البرامج

عن نفسي لا أعرف لهذا لا يمكنني أن أحكم

على كل أتمنى لو كانت جافا تساعد في كل المجالات

وسأكون سعيد جداً

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#8

يا اساذ علاء سامحني ان كان هناك جهل فيما اقوله فهو بناء على ما اعرفه

ما المشكلة في التعامل مع مثل ما عرض في المشاهد المذكورة طلما ان كل ما فى الامر هو ارسال data (شوية اصفار ووحايد ) عبر منفذ usb ؟؟؟؟ و استقبال بعض ال data احيانا

هل ارسال و استقبال البيانات عبر ال usb او الطابعة يشكل معضلة للجافا ؟؟؟

منتظر ردك

تم تعديل هذه المشاركة بواسطة sameh mahmoud في 28 فبراير 2010 في 00:46

سبـــــحــــان الله و بحمده سبحان الله العظيم

403100468.gif

#9

يمكن الأخ علاء يقصد البطء المفترض في java لا يؤهلها للتعامل مع hardware مثل c++

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

تم تعديل هذه المشاركة بواسطة Dr.Robert في 28 فبراير 2010 في 02:35

بحثت عن قلمي البارحة فلم أجدة!

...............

لم أجد سوى لوحة المفاتيح هذة

.............

تتطلع إلي بشفقة..

.............

أكاد أسمعها .. تقول (ألم يسمع بGoogle ؟!؟؟)

#10
اقتباس
لكن هل تعرف ما الذي قام به هؤلاء للقيام بهذه البرامج

عن نفسي لا أعرف لهذا لا يمكنني أن أحكم

اها فهمت قصدك , فعلاً الله اعلم اي تقنيه أستخدموا بالضبط وقد تكون منصه مخصصه لهذا الغرض , لكن اللي فرحني في الموضوع انها مبنيه 100% بالجافا على حسب قولهم وما استخدموا فيها أي Native Invocation

وهذا اعطاني الأمل في انهم قد يدمجوا هذه المكاتب أو التقنيات الجديده للjdk حقنا.

هو أكبر عيب في الجافا أنها مجزئة , مثل الكلمات المتقاطعه , لها مكاتب جباره لكن المشكله كل واحده بوادي , وهذا مايجعل الكثيرين يميلوا للـدوت نت لأنها تجمع كل مكاتبها في framework واحد.

أتمنى من شركة أوراكل أن تحل هذه المشكله , صدقني ياعلاء لو انحلت بتصبح أعظم لغة في تاريخ البشريه ولو انها كذا في نظري سواءاً انحلت هذه المشكله ام لا :)


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#11
اقتباس
يمكن الأخ علاء يقصد البطء المفترض في java لا يؤهلها للتعامل مع hardware مثل c++

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

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

ماعلينا , بطئها مقارنة بالأكواد اللي كنا نضطر نكتبها في السي++ تعتبر قمة الرفاهية smile.gif

ما أنكر ان السي جباره وقوتها لاتوصف, لكنها المشكله تعذبك إذا حبيت تبني واجهات ونظام متكامل :( , فما الفائده إذا بنيت تطبيقاتي كلها underdos? ولا لازم أستخدم win32 API بنفسي لأجل أظهر رساله أو أظهر نافذه صغيره.

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

تم تعديل هذه المشاركة بواسطة M.Allaw في 28 فبراير 2010 في 07:50


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#12
اقتباس
اساذ علاء سامحني ان كان هناك جهل فيما اقوله فهو بناء على ما اعرفه

ما المشكلة في التعامل مع مثل ما عرض في المشاهد المذكورة طلما ان كل ما فى الامر هو ارسال data (شوية اصفار ووحايد ) عبر منفذ usb ؟؟؟؟ و استقبال بعض ال data احيانا

هل ارسال و استقبال البيانات عبر ال usb او الطابعة يشكل معضلة للجافا ؟؟؟

منتظر ردك

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

لعلمك بالنسبه للتعامل مع الأجهزة المتصله بالـusb توجد حزمه لهذا الغرض أسمها JUSB ولكنها منفصله برضه عن الـjdk وتستخدم أيضاً الـJNI :(

تم تعديل هذه المشاركة بواسطة M.Allaw في 28 فبراير 2010 في 04:18


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#13

أعتقد أن منطق سامح أقنعني

فعلاً ما الحاجة في هذه الأفلام إلى لحزمة wrapper تقوم بتغليف المنفذ port

وتمكنك من القراءة منه أو الكتابة عليه

مازالت هناك نقطة السرعة وهذه أؤيد فيها الأخ مازن يمكننا الاستغناء عن السرعة لأسباب كثيرة tradeoff

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

ويبقى الموضوع موضوع trade-off

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

حتى لا يعتبروك من الحوثيين ويسجنوك :lol:

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#14

الله وأكبر أخييييييرا انتصرت على علاء الصالحي وأقنعته كخخخخخخخخخخخخخ

اقتباس
وأقول للحج محمد إياك أن تستخدمها في برمجة الدبابات

حتى لا يعتبروك من الحوثيين ويسجنوك laugh.gif

كأنك تقرأ أفكاري laugh.gif


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#15

ألف مبروك يا محمد

وعلاء الصالحي بشر يخطئ ويصيب

ولا مانع لديه أبداً من أن يقول أنه مخطئ

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#16

أكيد طبعا كلنا نخطئ سبحان الله وحده المعصوم :), وانت صدقت اني فرحان ني انتصرت الموضوع مزح happy.gif

أسعدني من جد مرورك :)


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#17

عندي سؤال

حسب علمي ان JVM مبرمجة بلغة ++C

فهل هذه البرمجيات للربوت و غيره تستخدم JVM ؟ اذا كانت تستخدمها فان الجافا لا تخاطب الHardware مباشرة

انما عن طريق ال JVM اللذي بدوره يحولها ال machine language و اللذي هوه بالاصل ++C

تحياتي .

please check these information

C to bytecode compilers

#18

أخ محمد !

بالنهاية كل شيء سيعود إلى المعالج على شكل أصفار وواحدات !! :)

كود الجافا -سواء للتعامل مع العتاد أم لا- يتم ترجمته من أولاً إلى ByteCode ثم يتم تفسير هذا الـ ByteCode وتنفيذه من قبل JVM

بالطبع التنفيذ يعني أن ترسل بعض الأصفار والواحدات إلى المعالج ... لغة الآلة ... ومن الواضح أن المعالج لن يفهم الـ ByteCode مباشرة !

وهذا يعني أنه عند استخدامك لجافا ستكون دائماً على صلة غير مباشرة مع العتاد !

ليس المهم أن تكون الصلة مباشرة أم لا ! المهم أنك تستطيع التحكم بالعتاد من دون أن تهتم بماهية هذا العتاد.

وهذا من أهم مزايا جافا ... بل هذا هو الاتجاه العام للتقنية هذه الأيام! وعلى نفس المبدأ تعمل بيئة الـ .net !

#19

السلام عليكم,

جميل جداً,

اقتباس
فهل هذه البرمجيات للربوت و غيره تستخدم JVM ؟ اذا كانت تستخدمها فان الجافا لا تخاطب الHardware مباشرة

انما عن طريق ال JVM اللذي بدوره يحولها ال machine language و اللذي هوه بالاصل ++C

هذا النوع من البرمجيات يسمى Real-time Systems. لا يعني أنه سريع, و لا أن كل ما كان الكود أسرع كلما كان أفضل,

كل ما يعنيه أن "وقت" تنفيذ الكود يجب أن يكون Deterministic. بمعنى آخر, الـ GC و الـ Polymorphism لا يمكن استخدامهما, لأن المبرمج

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

في الغالب, لن يكون هناك VM على الـ Embedded System إلا لو كان مصمم النظام يريد أن يخرج نظاماً يميل إلى الجنون أكثر من العقلانية :lol:

ببساطة ربما يتم تحويل كود الـ Java إلى Machine Code و من ثم وضعه في الـ Robot.

أعتقد أنك تحتاج إلى إزلة الـ GC و الـ Polymorphism و الـ Exceptions لكي تصبح Java لغة Deterministic! لا أكثر.

و رجاءً لا تدخلوا ++C في الموضوع :P

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

و مستخدمة في برمجيات المحطة الفضائية الدولية, و معظم الأقمار الإصطناعية :)

تحياتي...

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 2 مارس 2010 في 19:08

#20

لا أعتقد يا خالد أن robot في الفيديو الأول بحاجة أن يكون Real-time Systems

ما المشكلة لو تأخر تنفيذ الأمر بعض الملالي من الثاني

(على أساس أن جمع ملي ملالي :lol: )

لن تحصل مصيبة ما

بالنسبة لأمثلة على Real-time Systems الطائرة مثلاً لو انحرفت في الوقت المناسب قد لا تصطدم بطائرة أخرى

المفاعلات النووية Real-time Systems فاللعب معها يسبب كارثة قصوى

لكن الرجل الآلي الذي عرض في الصورة لا أهمية للوقت فيه بحيث تحصل كارثة لو تأخر تنفيذ أمر ما

على كل جافا تحتوي على specification لـ Real-time Systems

لكني لا أعلم إذا كان هناك من قام ببناء هذا الـ specification

أظن أنه JSR1

وحتى لو كان هناك من بناه فلا أتوقع أن يكون مجاني بأي حال من الأحوال

عن نفسي مازلت أظن c++ و c أقوى من جافا بكثير في أمور العتاد

تحياتي

تم تعديل هذه المشاركة بواسطة علاء الصالحي في 3 مارس 2010 في 07:55

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#21
اقتباس
لا أعتقد يا خالد أن robot في الفيديو الأول بحاجة أن يكون Real-time Systems

ما المشكلة لو تأخر تنفيذ الأمر بعض الملالي من الثاني

الـ Robot عبارة عن Hard Real Time System. بمعنى آخر, يحتاج إلى التحكم في وقت التنفيذ أكثر من الـ Digital Receiver الذي نشاهد عليه القنوات الفضائية على سبيل المثال,

و الذي يعتبر Soft Real Time System.

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

الـ Robots لا تحتمل هذا النوع من التأخير, لأنها تحرك أجزاء ميكانيكية. بغض النظر عن كون الـ Robot لعبة أو طائرة حربية مقاتلة.

بالمناسبة, أعتقد أن هناك توجه نحو الـ Deterministic GC و لكن لا أعرف فيها إلا قليلاً, أو بالأصح مثل الأطرش في الزفة في هذا الموضوع :lol:

مصممو Google Go وعدوا بتصميم أحدها, و لكن حتى الآن لم يصدر جديد, و ربما تستطيع Java أن تحصل على شيء مماثل, ربما قبل Go حتى.

تحياتي...

#22

ليش من اللي قلل من شأن الـc++ , احنا كلنا كنا من مبرمجين السي++ ومن عشاقها وهي اللغه الأم لمعظم اللغات , لكن هذا لا يعني أن الجافا ضعيفه


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#23
اقتباس
ليش من اللي قلل من شأن الـc++ , احنا كلنا كنا من مبرمجين السي++ ومن عشاقها وهي اللغه الأم لمعظم اللغات , لكن هذا لا يعني أن الجافا ضعيفه

يا أخ M.Allaw, أنا أمزح لا أكثر, أعتذر للجميع إن كان كلامي فهم بطريقة أخرى :)

#24

لا بالعكس والله مافي اي شئ :) حياك الله حبيبي في أي وقت والقسم قسم ك فحط فيه براحتك happy.gif


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#25
اقتباس
لـ Robot عبارة عن Hard Real Time System. بمعنى آخر, يحتاج إلى التحكم في وقت التنفيذ أكثر من الـ Digital Receiver الذي نشاهد عليه القنوات الفضائية على سبيل المثال,

و الذي يعتبر Soft Real Time System.

أخي خالد, هذا ما أسعي له, كيف لي أن أتعلم أنظمة تشغيل الوقت الحالي ؟

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…