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

ما هي مميزات وعيوب الجافا ؟

مغلقرائج
بدأه مبرمج قديم في 19 يناير 2011 · 23 رد · 22,578 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

قرأت في أرجاء الإنترنت مقالات ومواضيع كثيرة للمقارنة بين لغات البرمجة والتي تحمل مواضيع مثل :

ما الأفضل حافا أو سي شارب ؟

ما هي أفضل لغة برمجة ؟

... إلخ من أمثالها من المواضيع

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

لذلك فإن السؤال الصحيح هو :

بالنسبة للغة الجافا : ما هي نقاط قوتها ،ما هي نقاط ضعفها وما هي المجالات التي تتميز فيها لغة الجافا عن غيرها من لغات البرمجة؟

وبالنسبة لنا نحن كعرب نستطيع إضافة مدى دعم الجافا للغة العربية.

أتشوق لسماع مشاركاتكم في هذا الموضوع وسوف أضيف بعض الملاحظات الشخصية لاحقا .

وشكرا لكم مقدما

تم تعديل هذه المشاركة بواسطة مبرمج قديم في 19 يناير 2011 في 20:13

#2

من اهم مميزات الجافا هى خاصيه المحموليه

اى يمكنك تشغيل اى برنامج بالجافا على اى نظام تشغيل

شرط الا يكون البرنامج متعمد على شىء فى النظام

والحمايه العاليه فى المواقع

وتميز الجافا فى تقنيه الويب

ومثال على المواقع المبرمجه بالجافا

http://www.cisco.com

فهى من كبرى وان لم تعد الاولى فى نظام الشبكات فى العالم ( طبعا الشبكات عاوزه حمايه عاليه )

من عيوبها الذى قد لا تذكر او تذكر لدى البعض هى الوقت بالنسبه لبعض اللغات

(ولكن اعتقد انه ممكن اهماله )

الكلام فى الجافا كتير

انظر ذلك قد يفيدك

http://www.arabteam2...showtopic=87865

http://www.arabteam2...showtopic=46795

وان شاء الله الاخوه هيفيدوك اكتر

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 19 يناير 2011 في 20:35

Software Developer
Mahmoudkelany.com


 

#3

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

Mahmoud Kelany كتب:

من اهم مميزات الجافا هى خاصيه المحموليه

اى يمكنك تشغيل اى برنامج بالجافا على اى نظام تشغيل

شرط الا يكون البرنامج متعمد على شىء فى النظام

هذه الخاصية جيدة ، لكن لي بعض التحفظ على هذا الموضوع ، لماذا ؟

1) في جافا : تكتب ملف (أو أكثر) مصدري وتحوله إلى برنامج (bytecode ) فيعمل هذا البرنامج على كل المنصات المدعومة من جافا بلا استثناء .

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

السؤال هنا هو : هل الجافا فعلا لها فعلا ميزة وتفوق -في هذه النقطة- على اللغات ال compiled ؟

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

فما رأيك ؟

Mahmoud Kelany كتب:

والحمايه العاليه فى المواقع

وتميز الجافا فى تقنيه الويب

ومثال على المواقع المبرمجه بالجافا

http://www.cisco.com

فهى من كبرى وان لم تعد الاولى فى نظام الشبكات فى العالم ( طبعا الشبكات عاوزه حمايه عاليه )

ربما تكون ميزة الجافا الرئيسية (والتي جعلتها اللغة رقم واحد في العالم في TIOBE ) هي كونها لغة برمجة رئيسية للإنترنت .

Mahmoud Kelany كتب:

من عيوبها الذى قد لا تذكر او تذكر لدى البعض هى الوقت بالنسبه لبعض اللغات

(ولكن اعتقد انه ممكن اهماله )

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

وأشكرك على التفاعل مرة أخرى

#4
مبرمج قديم كتب:

هذه الخاصية جيدة ، لكن لي بعض التحفظ على هذا الموضوع ، لماذا ؟

1) في جافا : تكتب ملف (أو أكثر) مصدري وتحوله إلى برنامج (bytecode ) فيعمل هذا البرنامج على كل المنصات المدعومة من جافا بلا استثناء .

لان لكل نظام من انظمه التشغيل JRE خاصه بها

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

ماا هو نفس السبب فى السوال السابق

ان لكل نظام تشغيل JRE خاصه به تقوم بترجمه الكود وتشغيله ( بشرط الا يكون مبرمج اعتمادا على نظام تشغيل معين يعنى Native methods للنظام )

السؤال هنا هو : هل الجافا فعلا لها فعلا ميزة وتفوق -في هذه النقطة- على اللغات ال compiled ؟

لم افهم سوالك

لكن اليس ان تكتب كود مره واحده ويعمل على جميع الانظمه التشغيل اليست هذه ميزه ؟؟؟

اذا اردت ان تقوم بعمل برنامج وتعبت فيه وتريد ان يعمل على جميع الانظمه

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

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

فما رأيك ؟

ميزة ايه التى لا تكاد تذكر ؟ الـ portability لا تكاد تذكر ؟؟؟

ربما تكون ميزة الجافا الرئيسية (والتي جعلتها اللغة رقم واحد في العالم في TIOBE ) هي كونها لغة برمجة رئيسية للإنترنت .

والميزه الاخرى هى الـ portability

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

قد يكون اعلى

فى تفكيرك ان يكون البرنامج لا يعتمد على نظام تشغيل معين

لكن الذى قصدته انها الكود يعمل على virtual machine وهذا يأخر التشغيل ولكن ليس بالشىء الملحوظ

وخاصه مع تقدم الاجهزه والتكنولوجيا

وأشكرك على التفاعل مرة أخرى

واتمنى من الاخوه الكرام التفاعل لكى تعم الافاده اكثر

اجابتى باللون الاحمر

بالتوفيق

Software Developer
Mahmoudkelany.com


 

#5

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

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

نأتي الآن لموضوعنا الأساسي :

Mahmoud Kelany كتب:

لم افهم سوالك

لكن اليس ان تكتب كود مره واحده ويعمل على جميع الانظمه التشغيل اليست هذه ميزه ؟؟؟

اذا اردت ان تقوم بعمل برنامج وتعبت فيه وتريد ان يعمل على جميع الانظمه

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

ميزة طبعاً ، ولكن ما هي تكلفة هذه الميزة ؟ (أنظر بقية المشاركة)

Mahmoud Kelany كتب:

ميزة ايه التى لا تكاد تذكر ؟ الـ portability لا تكاد تذكر ؟؟؟

نعم ، ستسألني طبعا كيف ؟ أوكي

الآن دعنا نتحدث بطريقة عملية ، وسأقسم كلامي إلى ثلاثة أقسام :

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

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

3- بالنسبة لتطبيقات الويب فالجافا لا يشق له غبار وليست بحاجة لأي ملاحظات .

فعليه يبرز لنا الأسئلةالتالية :

1- هل فائدة تعدد المنصات في جافا يستفاد منها عمليا (في الغالب) لتطبيقات الويب دون غيرها ؟ وإذا كان الجواب لا فكيف يكون ذلك عمليا ؟

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

3- هل يوجد للجافا IDEs محترمة مثل لغات برمجة أخرى (على سبيل المثال سي شارب) لأن أفضل ما وجدت هو النت بينز . في لغات برمجة ماكروسوفت يوجد إكمال تلقائي رائع جدا حتى إنك تكتب نصف الكلمات والباقي يكمله المحرر :) ، ويمكنك بضغط F1 الحصول على مساعدة على الكلمة التي عليها التحديد حيث يظهر لك مرجع كامل لما تحت المؤشر.

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

وشكرا لك مرة أخرى على التفاعل.

تم تعديل هذه المشاركة بواسطة مبرمج قديم في 20 يناير 2011 في 19:35

#6
مبرمج قديم كتب:

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

الشكر لله وحده

مفيش حاجه بس اللى ممكن اقوله بالنسبه لعدم المشاركه من بعض الاعضاء (لان الموضوع قد يكون مفروغ منه )

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

الجافا متخفيش فيها تطور سريع واى نعم هذا التطور لا يطغى على البرامج التى تم فعلها سلفا

يعنى فى الجافا فيه حاجه اسمها @deprecated يعنى ان هذه الداله او هذا المتغير

قد سيتم تجاهله بعد ذلك يعنى قول 15 سنه على ما تزال هذه الـdeprecated

نأتي الآن لموضوعنا الأساسي :

ميزة طبعاً ، ولكن ما هي تكلفة هذه الميزة ؟ (أنظر بقية المشاركة)

نعم ، ستسألني طبعا كيف ؟ أوكي

الآن دعنا نتحدث بطريقة عملية ، وسأقسم كلامي إلى ثلاثة أقسام :

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

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

3- بالنسبة لتطبيقات الويب فالجافا لا يشق له غبار وليست بحاجة لأي ملاحظات .

اخى الكريم

انت ممكن ان تبرمج برنامج وعندما يكبر او يتم تطويره

تجد انك تريد ان تستخدمه على اكثر من نظام

فالموضوع مناسب لك مستقبلا

فعليه يبرز لنا الأسئلةالتالية :

1- هل فائدة تعدد المنصات في جافا يستفاد منها عمليا (في الغالب) لتطبيقات الويب دون غيرها ؟ وإذا كان الجواب لا فكيف يكون ذلك عمليا ؟

اكيد يستفاد منها والا لم تكون هذه هى الميزه الاولى فالجافا

اعتقد ان انا لسه بدرس لكن حسب ما انا اشتغلت

كنت جربت برنامج Download جربته على الويندوز وشغال تمام

وكنت ف مره شغال على اللينوكس وعاوز انزل ملفات كبيره قولت استخدمه والحمدلله وفى بالغرض

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

فالان تجد ان هناك برنامج لا يعمل الا على XP فقط وان اردت ان يعمل على seven , Vista هتلاقى نفسك عاوز تعدل شويه حاجات وتنتج اصدار لهذه الانظمه

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

ماا احنا اتكلمنا فى هذه النقطه ان هذه الميزه امامك لكى تستخدمها فى اى وقت

لا طبعا فكره الاله الافتراضيه غير سيئه (هذه هى الميزه )

3- هل يوجد للجافا IDEs محترمة مثل لغات برمجة أخرى (على سبيل المثال سي شارب) لأن أفضل ما وجدت هو النت بينز . في لغات برمجة ماكروسوفت يوجد إكمال تلقائي رائع جدا حتى إنك تكتب نصف الكلمات والباقي يكمله المحرر :) ، ويمكنك بضغط F1 الحصول على مساعدة على الكلمة التي عليها التحديد حيث يظهر لك مرجع كامل لما تحت المؤشر.

لا بالنسبه للـIDEs هتلاقى حاجات كتير

عندك

Netbeans

Eclipse

Jcreator

.....

وبالنسبه للنت بينز هتلاقى فيه Documentation لكل متغير او كل كلاس فى الجافا

مثلا انظر هذه الصوره بالمرفقات

هتلاقى معظم الجافا كدا ارشادات لكل متغير ولكل كلاس

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

اخى الكريم اللغه العربيه

مدعمه فى الجافا

وهى تعمل بشكل كويس

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

من انتاج اشياء كثيره خاصه بك

هذا هو الرابط الذى تريده

http://www.arabteam2...howtopic=232176

وشكرا لك مرة أخرى على التفاعل.

post-217802-024691900 1295542745_thumb.p

المرفقات
paint.png

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 20 يناير 2011 في 20:07

Software Developer
Mahmoudkelany.com


 

#7

اسوء عيوب الجافا هو JNI

لابد من كتبابة كود C++ لكى تستخدم ال DLL .

تم تعديل هذه المشاركة بواسطة sameh mahmoud في 20 يناير 2011 في 20:24

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

403100468.gif

#8
Mahmoud Kelany كتب:

اكيد يستفاد منها والا لم تكون هذه هى الميزه الاولى فالجافا

اعتقد ان انا لسه بدرس لكن حسب ما انا اشتغلت

كنت جربت برنامج Download جربته على الويندوز وشغال تمام

وكنت ف مره شغال على اللينوكس وعاوز انزل ملفات كبيره قولت استخدمه والحمدلله وفى بالغرض

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

فالان تجد ان هناك برنامج لا يعمل الا على XP فقط وان اردت ان يعمل على seven , Vista هتلاقى نفسك عاوز تعدل شويه حاجات وتنتج اصدار لهذه الانظمه

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

Mahmoud Kelany كتب:

بالنسبه للنت بينز هتلاقى فيه Documentation لكل متغير او كل كلاس فى الجافا

مثلا انظر هذه الصوره بالمرفقات

هتلاقى معظم الجافا كدا ارشادات لكل متغير ولكل كلاس

جميل جدا ، هذه الصورة للنت بينز أم IDE آخر ؟

Mahmoud Kelany كتب:

اخى الكريم اللغه العربيه

مدعمه فى الجافا

وهى تعمل بشكل كويس

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

من انتاج اشياء كثيره خاصه بك

هذا هو الرابط الذى تريده

http://www.arabteam2...howtopic=232176

بالضبط ، هذا هو الرابط الذي قصدته .في نهاية الموضوع الاستنتاج كان أنه لا توجد طريقة سهلة للمبرمجين المبتدئين لتحويل أي عنصر من عناصر واجهة ال GUI لتعمل من اليمين لليسار بشكل كامل وبدون مشاكل. فجول بيسك 6 (وهي لغة قديمة جداً) كان فيها دعم الاتجاه من اليمين لليسار كامل !!!

فكيف يسمح مجتمع الجافا بذلك ؟

وشكرا لكم

#9
مبرمج قديم كتب:

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

وقلة قليلة (مثلك) من يستعملون أنظمة أخرى بشكل ثانوي أو حصري ، أين ميزة الجافا ؟

قله قليله من العرب

لكن كل الناس بالخارج كل شغلهم على الانظمه الاخرى

جميل جدا ، هذه الصورة للنت بينز أم IDE آخر ؟

اه هذه صوره للنت بينز

ودا احسن واحد من وجهه نظرى فى التعليم والمساعده

لكن هناك من يفضل الـ eclipse لكن على حد علمى انه موقوف التطوير فيه

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

المبتدئين لتحويل أي عنصر من عناصر واجهة ال GUI لتعمل من اليمين لليسار بشكل كامل وبدون مشاكل.

فجول بيسك 6 (وهي لغة قديمة جداً) كان فيها دعم الاتجاه من اليمين لليسار كامل !!!

فكيف يسمح مجتمع الجافا بذلك ؟

اخى الكريم واين دورك من الابداع ؟

ان كانت اللغه توفر لك كل شىء فاين دورك

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

اين التفكير ؟؟

كدا بالطريقه كأنك بتستخدم برنامج move maker فى عمل الصور

لكن ازاى بيعمل التاثير اللى عملته ع الصوره متعرفش

طيب لو المكون دا مش موجود عاوز تخترع حاجات جديده مش هتعرف

لانك متعود انك تلاقيها فاللغه

انك بامر معين تعملها

لكن انك مش تخلط بين عده امور وتعدل ف اكواد اخرى لكى تحصل على شكل معين

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

المشكله هي فى شريط الـ Title bar وليس فى اى شىء اخر

وتم حلها مع الـ LookAndFeels التى صنعها الاخوه الاخرون

يعنى ليها حل

كل مشكله وليها حل والحمدلله

بالتوفيق ان شاء الله

وشكرا لكم

sameh mahmoud كتب:

اسوء عيوب الجافا هو JNI

لابد من كتبابة كود C++ لكى تستخدم ال DLL .

بس كدا انت طغيت على المحموليه الخاصه باللغه

وبم ان ملفات الـ dll تعمل على الويندوز فقط

فاعتقد ان الـ C# افضل فى ذلك

Software Developer
Mahmoudkelany.com


 

#10
Mahmoud Kelany كتب:

اخى الكريم واين دورك من الابداع ؟

ان كانت اللغه توفر لك كل شىء فاين دورك

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

اين التفكير ؟؟

كدا بالطريقه كأنك بتستخدم برنامج move maker فى عمل الصور

لكن ازاى بيعمل التاثير اللى عملته ع الصوره متعرفش

طيب لو المكون دا مش موجود عاوز تخترع حاجات جديده مش هتعرف

لانك متعود انك تلاقيها فاللغه

انك بامر معين تعملها

لكن انك مش تخلط بين عده امور وتعدل ف اكواد اخرى لكى تحصل على شكل معين

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

المشكله هي فى شريط الـ Title bar وليس فى اى شىء اخر

وتم حلها مع الـ LookAndFeels التى صنعها الاخوه الاخرون

يعنى ليها حل

كل مشكله وليها حل والحمدلله

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

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

سأحاول العثور على "lookandfeels" من المنتدى شكرا لك .

#11
مبرمج قديم كتب:

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

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

سأحاول العثور على "lookandfeels" من المنتدى شكرا لك .

كانت المشكله الاساسيه فى الـ Title bar

وبعدها اتجهت الى مشكله الجداول

بالنسبه لكلامك فهو جميل

ولكن اللغه لم تضيف لك اعباء

بل هى تعطى لك الكثير من السماحيات التى تريديها فى برنامج

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

بالنسبه للـ LookAndFeel

لا تبحث تفضل :)

http://www.arabteam2...howtopic=227557

وانا استخدمت مكتبه منهم " طبعا دى اشكال مممكن تختار ما بينهم "

فيه اكثر من كدا حوالى 5 كمان لكن انا فضلت هذه الاشكال :)

وهذه صوره منها

post-217802-074330300%201278062466.png

ورابط المشروع

http://www.arabteam2...howtopic=224430

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 21 يناير 2011 في 00:43

Software Developer
Mahmoudkelany.com


 

#12

شكرا :)

#13

لا أدري إذا كانت ال cross platform ميزة حقيقبة في الجافا، أو حتى موجودة أصلا في بعض الأحيان، فكما يقول الكثيرون write once, run debug everywhere. ولعل من بين أكثر الأسئلة في جميع منتديات الجافا هو كيقية إنشاء ملفات exe أو كيفية تنفيذ برنامج جافا بدون ال jre.

شخصيا ما كان يعجبني في الجافا هو أنها لغة general purpose تتيح api للتعامل مع كثير من الميادين، الواجهات الرسومية، الشبكات، I/O ... وتريح المبرمج من مشاكل إدارة الذاكرة، كما أنها كائنية التوجه. لكن هذه الميزات موجودة في الكثير من اللغات والمكتبات، مثلا python و Qt على ما يبدو ... لذلك الأمر في النهاية مسألة ميول وأيضا حسب حاجة السوق أو الشركة التي تعمل بها

2
#14
herch كتب:

لا أدري إذا كانت ال cross platform ميزة حقيقبة في الجافا، أو حتى موجودة أصلا في بعض الأحيان، فكما يقول الكثيرون write once, run debug everywhere. ولعل من بين أكثر الأسئلة في جميع منتديات الجافا هو كيقية إنشاء ملفات exe أو كيفية تنفيذ برنامج جافا بدون ال jre.

شخصيا ما كان يعجبني في الجافا هو أنها لغة general purpose تتيح api للتعامل مع كثير من الميادين، الواجهات الرسومية، الشبكات، I/O ... وتريح المبرمج من مشاكل إدارة الذاكرة، كما أنها كائنية التوجه. لكن هذه الميزات موجودة في الكثير من اللغات والمكتبات، مثلا python و Qt على ما يبدو ... لذلك الأمر في النهاية مسألة ميول وأيضا حسب حاجة السوق أو الشركة التي تعمل بها

+1

كلام جميل :)

فعلا عندك حق فى هذه المميزات

لكن هل python و Qt ظهرت بعد الجافا ام قبلها

وهل توجد ميزه الcross platform بهما ؟

وفالاخر كما قولت هي مييول

يعنى انا كنت بدرس C++ فى الكليه لكن اكن احببها بالطريقه التى احببت بها الجافا ( هتجوزها قريب هههههه )

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 21 يناير 2011 في 12:13

Software Developer
Mahmoudkelany.com


 

#15
اقتباس

اسوء عيوب الجافا هو JNI

لابد من كتبابة كود C++ لكى تستخدم ال DLL .

استخدم JNA

1

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#16

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

ما يميز جافا هو كثرة المكتبات بها، على سبيل المثال احتجت الى xml/html parser ربما في دوت نت تجد 3 مكتبات بينما في جافا عدد كبير من المكتبات لهذه الوظيفة ، وعلى ذلك قس في كثير من الأمور،،

في بعض الأحيان بعد ان تشتهر المكتبة في جافا فيقوم بعض المبرمجين بعمل porting لهذه المكتبة للغات اخرى، مثلاً مكتبة JUnit وجدت أولأً على جافا ، حالياً هناك نسخة منها لدوت نت NUnit، أيضاً Lucene أولاً على جافا ثم Lucene.net على دوت نت ، أيضاً Hibernate على جافا أولاً ..والى الأن هناك الكثير من المكتبات لم يتم عمل بورت من جافا لدوت نت ، مثلأً مكتبة prefuse على سبيل المثال،،

هذه من ناحية المكتبات، أما من ناحية الكتب فأستطيع القول أن أغلب الكتب القوية والتي لها باع في مجال تطوير البرمجيات مكتوبة بجافا، مثلاً:

كتاب Clean Code للخبير روبرت مارتن مكتوب بجافا، هذا الكتاب أنصح فيه أي مبرمج يريد أن يحسن نفسه في ليصبح أكثر احترافية،

كتاب Agile Software Development: Principles, Patterns, and Practices لنفس المؤلف مكتوب بأمثلة جافا

بعد ذلك وعند انتشار الكتاب لدرجة رهيبة اعيدت نسخة منها بسي#:

Agile Principles, Patterns, and Practices in C#

هذا ما يحضرني الآن ولكن قد أستطيع جلب المزيد :) ، كثير من الكتب الجيدة مكتوبة بجافا، لأنها لغه سهله وتستطيع تعلمها بسرعة،،

نصيحتي لك تعلم الاثنين ، هكذا ستصبح أفضل ، تعلم سي# ثم انتقل لجافا ،، ولا بأس بتذوق سي++ مع كيوت :).

بالتوفيق،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#17

شكرا لكم

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

مسألة تعدد المنصات ليس لها قيمة عملياً لأن الجميع تقريبا يعمل على نظام واحد وهو وندوز. ومشكلة write once debug everywhere لا تمثل أية مشكلة لنفس السبب .

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

#18

أحس أن طريقة كلامك تغيرت قليلا :blink:

شخصيا لا أستعمل windows وتهمني مسألة ال cross platform، رغم عدم كماليتها

من قال لك أن دعم الإتجاه من اليمين إلى اليسار؟ يكفي المناداة على الطريقة applyComponentOrientation، ما الصعب في هذا

ضعف الآداء :blink: بالمقارنة مع ماذا؟؟ .NET. !!

أستعمل NetBeans منذ فترة طويلة للتطوير بالجافا والآن PHP، ولا أرى عدم الإستقرار الذي تتكلم عنه

وفي النهاية فالمجال الذي تستعمل فيه الجافا بكثرة والذي اكتسبت فيه قوتها هو التطبيقات المؤسساتية، وليس برامج سطح المكتب

تم تعديل هذه المشاركة بواسطة herch في 21 يناير 2011 في 19:13

1
#19
herch كتب:

أحس أن طريقة كلامك تغيرت قليلا :blink:

لا أبدا ، انظر المشاركة رقم 5 في هذا الموضوع

herch كتب:

شخصيا لا أستعمل windows وتهمني مسألة ال cross platform، رغم عدم كماليتها

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

herch كتب:

من قال لك أن دعم الإتجاه من اليمين إلى اليسار؟ يكفي المناداة على الطريقة applyComponentOrientation، ما الصعب في هذا

لم تنفع ( لا تعطي تحول للاتجاه أثناء كتابة النصوص ) وللمزيد حول هذه النقطة الرجاء الرجوع لوصلة الموضوع التي ذكره الأخ محمود الكيلاني في الأعلى

herch كتب:

ضعف الآداء :blink: بالمقارنة مع ماذا؟؟ .NET. !!

دلفي مثلا

herch كتب:

أستعمل NetBeans منذ فترة طويلة للتطوير بالجافا والآن PHP، ولا أرى عدم الإستقرار الذي تتكلم عنه

لا أتكلم عن نتبينز بل عن إكلبس ، وعموما هل توجد بيئة تطوير مقدمة من شركة أوراكل (صن سابقاً) ؟

herch كتب:

وفي النهاية فالمجال الذي تستعمل فيه الجافا بكثرة والذي اكتسبت فيه قوتها هو التطبيقات المؤسساتية، وليس برامج سطح المكتب

هذا ما توقعته

طيب ما هي لغة البرمجة المناسبة للمبرمجين الهواة أمثالي ؟ ويا حبذا لو كانت صالحة للتطوير لسطح المكتب + الويب

وشكرا لكم

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

مارأيك لو تقول لنا أنت ماهي احتياجاتك من اللغة واحنا نقول لك اذا كانت مناسبة أم لا :)


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#21

كنت اود ان ادخل في هذا النقاش ولكن يبدو أن الموضوع تشعب كثيرا wacko.gif

لاحظت في بدايه ردودك اخي العزيز صاحب الموضوع ان هناك نوع من الخلط ما بين مفاهيم الInterpreted languages وخصائص الجافا كلغه برمجه.

جافا أي نعم هي Interpreted language مثلها مثال %99,9 من اللغات البرمجيه الحديثه المعروفه.(لا اعرف لغه compiled إلا c و وc++ و Pascal حقيقه! .)

ملاحظاتك على هذا النوع من اللغات هو موضوع اخر .. ويدور حول compiled languages وinterpreted languages . وميزه كل نوع , وكيف ان كل نوع له مميزاته التي لا تتوفر مطلقا في الأخر .

مثال على ذلك :

في البيئه التطويريه (السرعه):

استخدام لغه interpreted هو الخيار الأمثل في البيئه التطويريه , لأنك غير مضطر لترجمه البرنامج بأكمله الى machine code كلما عدلت حرف في الكود! بينما العكس هو الصحيح في البيئه الإنتاجيه حيث compiled code هو اختيار قد يكون افضل .

السهوله في النقل:

تتميز اللغات الinterpreted بأن الinterpreter نفسه سهل التطوير وبالإمكان نقله (لأنه برنامج) وهو غير مرتبط بhardware configuration معين اي يمكن اعداد عده نسخ منه متوافقه مع جميع النظم وبسهوله.

الcompiler غير قابل للنقل لأنه مصمم لإنتاح machine code خاص بhardware configuration معين وبالتالي لا يمكن نقله. وبدون ذكر ان تصميم compiler تقريبا هو اعقد شيء في علم الكمبيوتر.

سهوله دمج عده اجزاء مكتوبه بلغات برمجه مختلفه :

وفق شروط معينه فإن هذه الميزه ممكنه للغات الInterpreted ومن الصعب تحقيقها في compiled languages .

هذا يجعل اللغات الinterpreted عمليه اكثر وقابله للنقل في عالم تدور فيه عمليه التطوير بسرعه الصوت ونعم سرعه التنفيذ تضل اقل ولكنها ليست مشكله إلا في حالات معينه عندما تكون اجزاء المليون من الثانيه مهمه جدا (هذه الحالات لا تشمل طبعا برامج سطح المكتب ولا مواقع الويب إعتياديه الوظيفه والهدف).

انا مبرمج سطح مكتب منذ اربع سنوات ولم اكتب برنامجا واحدا لغير نظام ويندوز ولم استخدم لغه غير جافا, ولم اشعر يوما ان برامجي معاقه مقارنه بتلك المكتوبه باللغات المحبوبه لويندوز (عائله .NET الكريمه) (لم يشتكي لي احد العملاء بسبب السرعه في التنفيذ! حتى الان!!)

بالتوفيق

3

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

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

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

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

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

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

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

#22
اقتباس

أحتاج لغة برمجة للأغراض العامة وفيها المواصفات التالية :

* لغة شائعة ( توفر الكتب والمراجع ، والمساعدة في المنتديات عند الحاجة) ==> الجافا توفر هذا الشئ بالفعل لكن أحياناً قد تصادف أشياء قد تتعبك في البحث عنها فتضطر لإنشاءها أو ايجاد حل لها بنفسك

* لا أريد لغة صعبة مثل لغة السي **** . ==> انت تتحدث الآن بالفعل عن الجافا :)

* بيئة البرمجة (ال IDE) يجب أن تكون سهلة وفيها المميزات التي تساعد المبرمج على الإنتاج. ==> هذا موجود بالفعل ولكن يعتمد على نوع الأنتاج اللي تقصده , فمثلما انت عارف فهذه اللغة مجانية وكذلك الـIDE's اللي تشتغل عليهم فلذلك لاتتوقع تلاقي أدوات مثل أدوات الدوت نت وكل شئ فيها Drag & Drop , ولكن توفر الأشياء الأساسية اللي قد يحتاجها المبرمج وبعد كذا تقدر تضيف لها انت مايحلو لك من أدوات سواء كانت من إنشائك مثلما تفضل أخونا محمود أو ممكن تلاقي أدوات Beans جاهزه في الأنترنت ممكن تضمنها مثل فكرة الـActiveX عندكم.

* يا حبذا لو كان فيها امكانية برمجة الألعاب (الثنائية الأبعاد) . <== في هذا الرابط الرد الشافي على سؤالك http://www.flyordie.com/

* دعم كامل للغة العربية (واجهة المستخدم من اليمين لليسار بشكل كامل دون مشاكل، الفرز ، المقارنة ... الخ) ==> مثلما قال لك الأخ محمود

* أداء جيد (البايثون مثلا أداءها غير مرضي) ==> ارجو ان تحدد أخي العزيز , وين بالضبط تقصد؟ وكيف؟ هل تقصد في التعامل مع الهارد وير أم مع النظام أو غيره؟

أنا بصراحة من رأيي تتعلم الدوت نت , فاللي يخرج من فجول بيسك للجافا أو من الدوت نت ما اعتقد انه بينسجم مع الجافا , انا أحد المهووسين بالجافا وما استغرب لو فحصت دمي وطلعت فصيلته (J+) ولكن أقولها لك بكل صدق اذا كان اهتمامك بالـDesktop Apps وغير مهتم بالويب ومايهمك تعدد المنصات وغيره وشغلك كان ماشي 100% مع الفجول بيسك وكل مايهمك هو انجاز عملك بأسرع وقت وبأسهل الطرق وبأداء جيد فأنصحك تتعلم الدوت نت , أما اذا كنت تحب التحدي والتميز ونيتك تتعلم مبادئ الـOOP بجد ولا تحب الطرق والحلول المختصرة والسهلة - التي يمكن لأي شخص أستعمالها حتى وان لم يكن تخصصه البرمجه - فعليك بالجافا , هذا رأيي فأن اصبت فمن الله وان اخطأت فمن الشيطان :)

تحياتي أخي

أخي محمود , توجد بالفعل منصات خاصة للأطفال والرجال ماكان قصده يغلط :)

تم تعديل هذه المشاركة بواسطة .S.T.A.L.K.E.R في 22 يناير 2011 في 21:53


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#23
tongue.gif


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#24

لن اتساهل في المرة القادمة ان انحرف الموضوع عن سياقه :)

1

هذا الموضوع مغلق.

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