• 0
hazzoom

Hello World in Various .NET Syntax

سؤال

وأنا غارق في الكتب كعادتي وجدت هذا الكتاب Programming in the .NET Environment ,

فوجدت في أوآخر الفصل الأول من الكتاب مقارنه بين مثال Hello World بين اللغات :

#Python,C++,Visual Basic,COBOL,C

فانظروا !!!

في البايثون :

class HelloWorldPY:
   def __init__(self):
       self.message = "Hello World from Python!"
   def SayHello(self):
       _com_return_type_="System.Void"
       COR.System.Console.WriteLine(self.message)

if __name__=="__main__":
   AnObject = HelloWorldPY()
   AnObject.SayHello()

وفي الـ ++C :

#using <mscorlib.dll>
#using "Python.dll"
#using "HelloWorldPY.dll"

using namespace System;

__gc public class HelloWorldCPP: public HelloWorldPY
{
 public:
 void SayHello()
 {
   __super::SayHello();
   Console::WriteLine("Hello World from C++!");
 }
};

وفي حبيبي الفيجوال بيسك :

Imports System
Imports HelloWorldCPP

Public Class HelloWorldVB
Inherits HelloWorldCPP
 Overrides Sub SayHello()
   MyBase.SayHello()
   Console.WriteLine ("Hello World from Visual Basic!")
 End Sub
End Class

وفي الكوبول :

000010 CLASS-ID. HelloWorldCOB INHERITS HelloWorldVB.
000020 ENVIRONMENT DIVISION.
000030 CONFIGURATION SECTION.
000040 REPOSITORY.
000050     CLASS HelloWorldVB AS "HelloWorldVB".
000060 OBJECT.
000070 PROCEDURE DIVISION.
000080 METHOD-ID. SayHello.
000090 PROCEDURE DIVISION.
000100     INVOKE SUPER "SayHello".
000110     DISPLAY "Hello World from COBOL!".
000120 END METHOD SayHello.
000130 END OBJECT.
000140 END CLASS HelloWorldCOB.

وأخيرا في بنت عمنا الـ #C :

using System;

class HelloWorldCS: HELLOWORLDCOB
{
 override public void SayHello()
 {
   base.SAYHELLO();
   Console.WriteLine("Hello World from C#!");
 }
 public static int Main()
 {
   HelloWorldCS h = new HelloWorldCS();
   h.SayHello();
   return 0;
 }
}

فحمدت الله علي الفيجوال بيسك ,,,

تم تعديل بواسطه hazzoom
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

63 إجابة على هذا السؤال .

  • 0

ونحن ايضا نحمد الله على الفى بى

وصدق من قال (مقدرش احب اثنين علشان مليش قلبين الفى بى جوة فى قلبى والسى اجيب له قلب منين)

:) :) :)

اعذرونى تخــــــــــــــاريــــف صيــــــــــام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ايه يا عم عصام الحلاوه :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

توجد مقارنات خاطئة في هذه البرامج!

لاحظ أن الفئة التي برمجت في Python ترثها الفئة التي برمجت بـ C++، وبعد ذلك ترث الأخيرة VB وترث الأخيرة كوبول وترث الأخيرة سي شارب،!!

المثال يبدو أنه يوضح كيف تستطيع أن تبني برامجا تعتمد على بعضها في بيئة net ولا يقصد كيف تبني برنامج Hello World ! ولو أردت المقارنة أدرج أسرع شفرة لطباعة Hello World على الشاشة،، وأعتقد أن Python أسرع واحدةـ ولكن الشفرة في الأعلى أخذت تصنع شفرة فئة بالكامل حتى يتم وراثتها بباقي الفئات في اللغات الأخرى،،

أضف إلى ذلك،، أن شفرة VB قد أخفى عليك Main!! كيف تنفذ هذا البرنامج من غير أن تصنع New من هذه الفئة،، ولكن الكاتب أضاف Main في سي شارب!! عجبا!! تضيف شفرة زائدة في سي شارب وتحذف شفرة في VB حتى يقول الكاتب أن VB أفضل!

أضف إلى ذلك أن VB ورثت من سي ++ مباشرة،، ولو ورثت من Python كما يبدو لأضفنا جملة imports جديدة!

ونستطيع أن نكمل هذه المفارقات العجيبة من الكاتب!!

برنامج Hello World في Python هو:

print "Hello, world!"

لكن المؤلف صنع فئة كبيرة، وبها صانع أو منشئ، وأضاف إليها طريقة اسمها SayHello وصنع أيضا Main!! لاحظ أنه لم يصنع إلا SayHello في VB بعد وراثة كل شيء!

ولو أردنا أن نقارن فعلا، لوجدنا أن VB.Net من أكثر اللغات استخداما لكلمات ليس لها داعي من الأساس! Overidable MustOveride Overide هذه لوحدها أضحوكة، إذ لماذا كل هذه الكلمات في شيء تستطيع أن تفعله بدون ذكر هذه الكلمات،، (ربما تأتي بأسباب) لكنها تجعل عقبات كثيرة في وجه مبرمج VB حتى يتقن البرمجة غرضية التوجه!

ربما نضع أمثلة للمقارنة الحقيقة!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أنا أردت فقط المقارنه بين الـ Syntax وليس كيفية عمل الأمثله :D يا أخ أبو مازن , لأن الصراحه ليس لي أي خبرة في أي من اللغات الأخري , وانت عارف ومش محتاج اقولك :lol: خلي الطابق مستور :lol: وشكرا علي مداخلتك ,,,

تم تعديل بواسطه hazzoom
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذه ليست مقارنة بل مجرد مثال على تكامل جميع اللغات التي تعمل داخل ال.net

و كما قال الأخ أبو مازن الكود الأقصر على الاطلاق في كتابة الHelloWorld هو كود الPython

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
ولو أردنا أن نقارن فعلا، لوجدنا أن VB.Net من أكثر اللغات استخداما لكلمات ليس لها داعي من الأساس! Overidable MustOveride Overide هذه لوحدها أضحوكة، إذ لماذا كل هذه الكلمات في شيء تستطيع أن تفعله بدون ذكر هذه الكلمات،، (ربما تأتي بأسباب) لكنها تجعل عقبات كثيرة في وجه مبرمج VB حتى يتقن البرمجة غرضية التوجه!

:lol: فعلا الـ VB يوجد بها كلمات محجوزه كثيره لا داعي لها ويكون غالبا المساوي أو المقابل لتلك الكلمات في اللغات الأخرى هو الأقواس أو مثلا نقطتين فوق بعض ( Colon ) أو بعض الرموز الأخرى ولكن في كل الأحوال لا تكون كلمات كامله !

مثلا :

dIM thebooLEaN aS BoOLeaN = trUE
If tHeBoOLEAn = tRUe tHeN
doCaza1
doCaza2
doCaza3
eNd iF

تعمدت تشويه شكل الكلمات بالحروف الصغيره والكبيره لأن الـ VB غير حساسه :P

يمكن استبدال الكود السابق بالسي شارب هكذا :

bool theBoolean = true;
If(theBoolean){doCaza1;doCaza2;doCaza3;}

لاحظ أن في كود الـ VB استخدمت حوالي 6 كلمات من اللغه بينما في كود السي استخدمت 3 فقط لأن الأقواس تريحك من كتابة كلمات كامله ولم أكتب الكود في سطر واحد لأني أريده Readable :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
  فعلا الـ VB يوجد بها كلمات محجوزه كثيره لا داعي لها ويكون غالبا المساوي أو المقابل لتلك الكلمات في اللغات الأخرى هو الأقواس أو مثلا نقطتين فوق بعض ( Colon ) أو بعض الرموز الأخرى ولكن في كل الأحوال لا تكون كلمات كامله !

مثلا :

dIM thebooLEaN aS BoOLeaN = trUE
If tHeBoOLEAn = tRUe tHeN
doCaza1
doCaza2
doCaza3
eNd iF

تعمدت تشويه شكل الكلمات بالحروف الصغيره والكبيره لأن الـ VB غير حساسه :P

يمكن استبدال الكود السابق بالسي شارب هكذا :

bool theBoolean = true;
If(theBoolean){doCaza1;doCaza2;doCaza3;}

لاحظ أن في كود الـ VB استخدمت حوالي 6 كلمات من اللغه بينما في كود السي استخدمت 3 فقط لأن الأقواس تريحك من كتابة كلمات كامله ولم أكتب الكود في سطر واحد لأني أريده Readable  :D

لا حلوة منك دي يا معتز أصل الحق مش عليك الحق علي اللي وقفوا ساكتين و مفتحوش بقهم :lol: :lol:

طب بص كده

Dim theboolean As Boolean
If thboolean Then vbisthebest1: vbisthebest2: vbisthebest3

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

و سلملي علي ال #C و قلها بلاش تقطع الجوابات0

:D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اللهم اني صايم :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هههههههههه

ايه يا عم معتز هو انت تكتب ما تريد و تخفي ما تريد

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

و انت شفت لا اقواس و لا سيمي كولن و لا حاجة كل حاجة حلوة وواضحة هههههههه

الله يخليك يا فيبي.نت هههههههه

السلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الرك علي اللي بيكتب الكود :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

:lol: لا اله الا الله ... الواحد كان قافل بئه من فتره وكنا عايشين في سلام لكن انتوا كدا دايما يا بتوع الـ VB ... ... وهنعد نكتب بأه شعر تاني ونعمل حرب ويااااه ربي

اكتب الكود ده ::

لدينا متغير عددي اسمه x ومتغير boolean اسمه myBoolean ... ولدينا متغير عددي آخر اسمه y ونريد قيمة الـ y تساوي قيمة الـ x وبعد ذلك نضيف واحد للـ x اذا كان الـ myBoolean = true أما اذا كان myBoolean = false نريد أن يكون y يساوي الـ x وبعد ذلك نطرح من الـ x واحد ؟

الكود بالسي شارب بافتراض أننا قمنا بالاعلان عن myBoolean وعن x ::

int y = theBoolean ? x++ : x--;

بتكتبوه ازاى بالـ VB ؟

كان فيه كلام برده عاوز أنقله لكن خايف أنه ممكن يسبب قلق واله حاجه ::

the VB syntax and semantics is designed to attract less skilled programmers and, in combination with other factors examined above, this has created a culture that is populated with less skilled programmers. 
and because VB syntax and semantics make it more difficult to avoid common programming errors and hence to program well.

VB programmers, on the average, know less about good object-oriented, distributed, loosely coupled application design and development than C# programmers, on average. This is because their language has not supported these notions, so their culture has grown without them. Although these notions are supported now in VB, they are more slowly being adopted than in the C# culture because of cultural inertia.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اديني في التأليف يا معتز :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يعني ايه يا hazzom ؟ :unsure: أصل أنا مش من هنا

تم تعديل بواسطه معتز شمس
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مثل ماقال أبو مازن ..

وبصراحة كود السي# أريح كود للعينين من ناحية النظر إليه :P

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

قصدي منين جبت الكلام اللي انت مقتبسه ؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

:D vb حبيبي

Vb حياتي

ابرمج بيه في كل أوقاتي

vb .. vb

vb ينشط

vb يقوي

كوده جميل دايما علي بالي

vb ... vb

:lol: :lol: :lol:

في أحد الايام ذهب أحد المرضي الي الدكتور (و كان مبرمج #C) و سأله يا دكتور كل يوم و انا نايم بشوف احلام مرعبة

قاله خير يابني ان شاء الله

قاله بشوف أقواس بتجري ورايا و و علامات غريبة بتكعبلني و انا ماشي و حرف C كبير ماسك سكينة (sharp) أوي و عاوز يدبحني بيها و يرميني من ال class العشرين :D

بص الدكنور في عينيه لقاها مليانة شوائب مؤذية مثل {} و <> و ; و [ ]

قالوا مخبيش عليك حالتك خطيرة جدا انت مصاب بفيروس #C :lol: و لو استمريت علي كده الحلم حيبقي حقيقة و حتتدبهدل

قالوا و الحل يا دكتور

قالوا حكتبلك روشتة محترمة

VB.NET أقراص واحد الصبح وواحد بعد العشا بالليل

VB.NET حقن واحدة كل أسبوع

و فوار VB.NET عشان الحموضة لما ال #C تنغص عليك عيشتك

و طلع الراجل و نفذ الكلام و ربنا كتبله السلامة و عاش في تبات و نبات و خلف فيبيويين و فيبيويات و ان كان معايا شنطة كنت حطتلك فيها شوية كلاسات

وتوتة توتة فرغت الحدوتة، حلوة يا معتز و لا ملتوتة؟؟ :D

و علي فكرة فيه اعلان عندنا في مصر بيقول ايه

VB

العزم شديد

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

و الرزق يزيد

:lol: :lol: :lol:

كفاية عليكوا كده النهاردة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

والله العظيم فظيع :lol: :lol: :lol: :lol:

بس أوعوا حد ياخد الموضوع بحساسيه ونبدأ نحدف بعض بكلام زي الطوب :(

يعني كله يبقي بهزار بس خفيف زي كده ((( :lol: ))) ,,,

تم تعديل بواسطه hazzoom
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
:lol:  لا اله الا الله ... الواحد كان قافل بئه من فتره وكنا عايشين في سلام لكن انتوا كدا دايما يا بتوع الـ VB ...  ...  وهنعد نكتب بأه  شعر تاني ونعمل حرب ويااااه ربي

اكتب الكود ده ::

لدينا متغير عددي اسمه x ومتغير boolean اسمه myBoolean ... ولدينا متغير عددي آخر اسمه y ونريد قيمة الـ y تساوي قيمة الـ x وبعد ذلك نضيف واحد للـ x اذا كان الـ myBoolean = true أما اذا كان myBoolean = false نريد أن يكون y يساوي الـ x وبعد ذلك نطرح من الـ x واحد ؟

الكود بالسي شارب بافتراض أننا قمنا بالاعلان عن myBoolean وعن x ::

int y = theBoolean ? x++ : x--;

بتكتبوه ازاى بالـ VB  ؟

بنكتبه كده :P :P :P

Dim y% = IIf(myboolean, x = x + 1, x = x - 1)

بص يا معتز انا لو مكانك أهجر ال #C و أسمع أغنية كاظم أكرهها :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بتضحك على ايه يا حازم :angry:

Dim y% = IIf(myboolean, x = x + 1, x = x - 1)

هذا الكود لا يعمل ... لا يحقق الغرض الذي كتبته في مشاركتي السابقه ! فالـ y دايما بـ ZEROOOO يا VB مليانه BUGS + انه كود السي شارب أفضل طبعا على الأقل هو يعمل وأقصر وذلك لتوفر الـ ++ والـ -- .

أنا مش عارف ازاى بكلم ناس مش عندهم Operator Overloading لغاية دلوقتي !!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
بتضحك على ايه يا حازم  :angry:

Dim y% = IIf(myboolean, x = x + 1, x = x - 1)

هذا الكود لا يعمل ... لا يحقق الغرض الذي كتبته في مشاركتي السابقه ! فالـ y دايما بـ ZEROOOO يا VB مليانه BUGS + انه كود السي شارب أفضل طبعا على الأقل هو يعمل وأقصر وذلك لتوفر الـ ++ والـ -- .

أنا مش عارف ازاى بكلم ناس مش عندهم Operator Overloading لغاية دلوقتي  !!!

و بعدين بقي حنسيب المتعة التي لا تنتهي علي الجميل الرشيق ال VB و نرد علي الجماعة بتوع #C

و بعدين معتز اللي جر شكلي أدامكم و احنا لسا العيد مجاش بالاضافة الي اني رايح الجيش بكرة :s

ادي يا عم الكود قوللي مبيشتغلش و لا مبيحققش الغرض و خلي الطابق مستور احسن نتكلم عن ال Intellisense في ال #C و تبقي فضيحة ال #C بجلاجل :lol: :lol: ، اللهم دم علينا ال VB نعمة و احفظها من الزوال يا رب :D

Dim y% : If myboolean Then y = x + 1 Else y = x - 1

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ايه يا عم معتز انت زعلت ولا ايه :( يا باشا أنا ميرضينيش زعلك طظ في كله حتي الـ ... ولا بلاش :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا يا حزوم يا بهزرر :) وبعدين شايفين يا جماعه الكود الأول منفعش وبعين لما اكتشفوا انه مش شغال كتبوا كود تاني وده كله بجد بسبب ان الـ Syntax بتوقعهم في Bugs.

because VB syntax and semantics make it more difficult to avoid common programming errors and hence to program well.

ومع افتراض أن الكود سليم ( مع انه غير سليم ) فالكود ::

Dim y% : If myboolean Then y = x + 1 Else y = x - 1

لا يقارن أبدا بكود السي شارب ::

int y = theBoolean ? x++ : x--;

ومن يقول غير ذلك ... فهو :unsure:

عموما أيضا الكود لا يحقق ما قمت بكتابته !! اسمع مني مره أخرى مع افتراض أن الـ x = 5 ::

اذا كان الـ myBoolean = true ستكون الـ y تساوي 5 أيضا مثل الاكس وبعد ذلك تصبح الـ x = 6 ( يعني الـ x فقط هى التي تزيد واحد ).

اذا كان الـ myBoolean = false ستكون الـ y تساوي 5 أيضا مثل الاكس وبعد ذلك تصبح الـ x = 4 ( يعني الاكس فقط تقل واحد ).

أى في كل الحالات نريد أن الـ y = x وبعدها مباشرة تقل الاكس أو تزيد بمقدار واحد صحيح على حسب الـ myBoolean.

تم تعديل بواسطه معتز شمس
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انا حب فيك روح الاصرار يا معتز

و هاهي الضربة القاضية لل #C مع اني بحبها و الله بس الظروف حكمت بقي :D

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

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

قال مشتغلش قال، ده انا أشتغل عجلاتي لو مشتغلش مع احترامي لكل العجلاتية

يا حبيبي عشان الكود يشتغل لازم يتكتب كده

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim myboolean As Boolean = True
       Dim x As Integer = 5

       Dim y% = x : If myboolean = True Then x += 1 Else x -= 1
       MessageBox.Show(y)
       MessageBox.Show(x)

   End Sub

و طبعا السطر اللي قايمة عليه العملية كلها هو السطر الثالث و للمرة الثالثة سلملي علي ال #C للمرة الثالثة

قال مش شغال ده حتي الكومبايلر بتاعنا حديد * حديد :lol: :lol: :lol:

إرفعوا رؤسكم عاليا مبرمجين ال VB لأننا Top Developers :lol: :lol: :lol:

بص بقي يا عم معتز سؤالينك و اتجاوبوا :P

جاوبلي انت بقي علي السؤال ده

عندنا في حبيبتنا ال VB الجميلة لو عندنا فورم مالهاش شريط عنوان خالص Title Bar

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

يعني من أي حتة نضغط عليها كليك و نحركها تتحرك معانا

في ال VB حبيبي بنعمل كده

نعرف متغيرين
Dim x%, y%
و ده في حدث ال Form1_Mouse_down
If e.Button = MouseButtons.Left Then x = e.X : y = e.Y
وده في حدث ال Form1_mouse_move
If e.Button = MouseButtons.Left Then
           Me.Left = Me.Left + e.X - x
           Me.Top = Me.Top + e.Y - y
       End If

ال #C رأيها ايه بقي في الموضوع ده؟

و انا في الانتظار :D :D :D :P :P :P

تم تعديل بواسطه romantic_boy
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ايه يا عم أحمد انت جاي معانا ولا معاهم :lol:

In Form1_MouseMove Event : 
If e.Button = MouseButtons.Left Then Me.Left = Me.Left + e.X : Me.Top = Me.Top + e.Y

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

استني بس يا حزوم اما نشوف حيقول ايه انا ممكن أضغط الكود أكتر من كده كمان، دول عاوزين يبيعوا ميه في حارة السقايين، ده احنا مشهورين بالاكواد الSimple الصغيورة الجميلة اللي بتعمل حاجات كبيرة و فظيييييييييييييييييييييييعة

في انتظار عزيزي معتز :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .