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

هل سأستخدم السي بلس بلس في العمل

مغلق
بدأه eng mohamed في 16 فبراير 2006 · 13 رد · 1,301 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لو سمحتم أريد اجابة عن هذا السؤال

ما الفرق بين كل من

visual basic

c++

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

أريد المقارنه بينهما فى مجال العمل

مجال الاستخدام

ملاحظة ان مجال البرمجيات فى العالم العربى ضئيل جدا

انا اعيش فى مصر و لا اعرف ايهما سيفيدنى

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

و لكنى اعشق البرمجة و لغات البرمجة

اعتقد ان الاجابة عن هذة الاسئلة ستفيدنا جميعا بدلا من بذل الوقت فى تعلم ما لن يفيدنا

و شكرا مقدما

ENG.MOHAMMED

تم تعديل هذه المشاركة بواسطة Sultan_Althibity في 16 فبراير 2006 في 19:25

#2

بالنسبة لواقع البرمجيات في عالمنا :D ....

فالمطلوبة هي الفيجوال بيسك والاوراكل ولا شيء آخر .......

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

هذا عـن واقعـنا لا أدري عـنكم في مصر .... ولكن لا أعتقد أنه مختلف عـن حالتنا وإن اختلف فبشيء يسير ........

اقتباس
اعتقد ان الاجابة عن هذة الاسئلة ستفيدنا جميعا بدلا من بذل الوقت فى تعلم ما لن يفيدنا

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

تم تعديل هذه المشاركة بواسطة Sultan_Althibity في 16 فبراير 2006 في 19:37

#3

عذرا يا أخ سلطان بس الواقع في مص يختلف قليلا :D

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

بالنسبة لسي بلس بلس فهي مطلوبة بالسوق المصري بشكل كبير فالعديد من الشركات العالمية لها فروع في مصر و بتطلب هذه اللغة

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

كما أن vb6 قد إنتهى تماما ووقفت ميكروسوفت الدعم له و له مئات العيوب التي لا يسع المجال لذكرها هنا

شيء أخر صغير إذا أردت الإحتراف فعليك بسي بلس بلس لأنه لا يوجد شيء إسمه إحتراف في فيجوال بيسيك

تم تعديل هذه المشاركة بواسطة usama707 في 16 فبراير 2006 في 21:14

#4

في العالم العربي لن تستطيع تحديد اللغة الاكثر استخداما

لكن اعتقد ان العالم العربي يستخدم لغة C++ بشكل كبير جدا

منقطع من حين لاخر

#5

السي بلس بلس أقوى من البيسك بشكل كبير الفرق بينهما بأقل شرح ممكن

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

أما بالنسبة الى الصعوبة فأن السي بلس بلس أصعب لأنها تتعامل مباشرة مع نظام التشغيل وأحيانا مع الأسمبلي ولكن .

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

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

وأنصحك أحترف السي بلس بلس ومن ثم تعلم البيسك .

#6

شكرا اخوانى على ردودكم الوافية يعلم الله كم أفدتونى و جزاكم الله خيرا

و قد جاءت ردودكم على هواى فأنا عاشق لسى بلس بلس بالرغم من صعوبتها

#7

شيء جيد أن أرى محبوبتي الغالية :D تجد من يدعـمها على الاقل عـندكم ...... وليس فقط في العالم الغربي !!!!!!!!!!!........

السي بلس بلس لغـة الأقوياء وليست لغـة الضعفاء ......... في السي بلس بلس أما إن تقوم بكتابة تطبيق قوي أو تقوم بكتابة تطبيق مهلهل ........ كما حدث مع أحد خبراء السي بلس بلس في المنتدى (لن أذكر اسمـه :D ) .............

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

#8

السلام عليكم

هههههههه أستاذي Sultan_Althibity أرجوا أن تلقى محبوبتك في المستقل القريب أذا لم تكن متزوج .

لكن أخي هل تدري أن السي بلس بلس أقل أمانا من البيسك .

السي لا تأخد الكثير من الذاكرة , عكس البيسك .

أتدري لما هي أقل أمانا لأنها أقرب الى لغة الاسميبلي أكثر من غيرها .

وهل تدري لماذا البيسك أكثر أمانا من السي , لأنها لا تتعامل مباشرة مع ال api , بالعكس أنها تتعامل مع لغة خاصة بها , وهذه اللغة أسمها المراجع , وأن المراجع تتعامل مع ال api , لذلك هي أكثر أمانا من السي .

#9
iemad كتب:
السلام عليكم

هههههههه أستاذي Sultan_Althibity أرجوا أن تلقى محبوبتك في المستقل القريب أذا لم تكن متزوج .

لكن أخي هل تدري أن السي بلس بلس أقل أمانا من البيسك .

السي لا تأخد الكثير من الذاكرة , عكس البيسك .

أتدري لما هي أقل أمانا لأنها أقرب الى لغة الاسميبلي أكثر من غيرها .

وهل تدري لماذا البيسك أكثر أمانا من السي , لأنها لا تتعامل مباشرة مع ال api , بالعكس أنها تتعامل مع لغة خاصة بها , وهذه اللغة أسمها المراجع , وأن المراجع تتعامل مع ال api , لذلك هي أكثر أمانا من السي .

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

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

يا ترى إيه الشركة إللي قصدك عليها ؟

يا عزيزي السي بلس بلس ليست ملكا لأحد وهي لغة Standard من قبل ال ISO و ال ANSI و هي مش ملك حتى ل Bjarne Stroustrup إللي إخترعها

و لكن في بعض الشركات بتعمل Compilers ليها زي ميكروسوفت و بورلاند

إنت بتتكلم عن المراجع (Refrences)

طيب مين أصلا إللي قاللك إن المراجع غير موجودة في السي بلس بلس ؟؟؟ ده المراجع من أهم الإضافات في السي بلس بلس

طيب بالنسبة للapi

مين إللي قالك إنك لازم تتعامل معاها مباشرة ؟؟؟ ذي ما الفيجوال بيسيك 6 له مكتبة خاصة بيه سي بلس بلس ليها العديد من المكتبات برضه ذي STL و في مكتبات للGUI ذي MFC و wxWidgets

طيب حاجة تانية بالنسبة للapi يا ترى إنت فاكر إن عدم تعامل فيجوال بيسيك معاها مباشرة ده ميزة له ؟؟؟

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

طيب أنا نفسي أشوف مبرمج فيجوال بيسيك يعرف حاجة عن مثلا ال Interprocess Communication و ال Pipes أو ال API Interception أو ال Device Drivers أو COM (ماتجيش تقولي إحنا عندنا نقدر نعمل ActiveX Controls في فيجوال بيسيك 6 و إننا كده فاهمين COM :lol: )

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

مش فاهم الحتة دي يعني إيه تتعامل مع المراجع و المراجع تتعامل مع ال api :huh:

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

الثغرات بتكون غلطة أو هفوة من المبرمج و بعض المترجمات بتحاول تنبهه ليها زي في ال Visual C++ 8 ممكن تخليه يحاول ينبهك لل Buffer Overflow

أنا عايز مبرمج فيجوال بيسيك يعرف يعني إيه Buffer Overflow -_-

طيب حاجة في الأخر بس يا ترى Visual Basic يعني إيه ؟

Visual يعني مرئي ظهرت مع الويندوز يعني فيه نماذج و نوافذ و كده يعني

طيب Basic

دي بقه يعني Beginner's All-purpose Symbolic Instruction Code

شايف أول كلمة ؟؟؟ Beginner's يعني لغة خاصة بالمبتدئين

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

#10

ياريت محدش يفهم كلامي غلط أنا مبهاجمش حد أنا بهاجم الفيجوال بيسيك 6

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

تم تعديل هذه المشاركة بواسطة usama707 في 25 أبريل 2006 في 18:45

#11

برغم أحترامي ليك يا أسامة و لكن كثير من المبرمجين أبدعوا برامج بالفيجوال بيسك تتحدي الجميع , المسئلة هنا ليست قوة بل في رأي أحتياج :

ما معني هذا الكلام ؟؟؟

أنا أبحث عن سرعة الأنتاجية و قلة التكلفة

لا يهمني سوي مستخدمي ويندوز 32-bit

لا أحدد في مشروعي دعم أنظمة التشغيل الأخري

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

أن تغيرت أهداف المشروع لدعم انظمة التشغيل الأخري

و قوة البرنامج و سرعته و أستقراره مع نظام التشغيل

سوف يكون الجواب c , ++c , asm

أن بحثت عن دعم أنظمة التشغيل الأخري و سرعة الأنتاجية سوف أتجه ل .net , mono

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

مثال بسيط جدا شركتي تريد برنامج يعمل dos لن أفكر في vb4dos حتي فعتقادي أن qbasic أقوي من vb4dos

سوف أفكر في c , c++

شركتي تريد برنامج للعمل مع linux لن أفكر في vb أبد

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

أنا عن نفسي في طريقي لترك البيسك و لكن هناك مشكلة عندي :(

هذه هي مشكلتي ( ; ) , ليس أكثر و لا أقل :(

عمرو عيسي

#12
اقتباس
أنا أبحث عن سرعة الأنتاجية و قلة التكلفة

في هذه الحالة يمكن إستخدام Visual Basic.NET بدلا من Visual Basic 6 :)

باين إن المشكلة الاساسية هي نوعية البرامج أكتر من فيجوال بيسيك نفسه

اقتباس
أنا عن نفسي في طريقي لترك البيسك و لكن هناك مشكلة عندي sad.gif

هذه هي مشكلتي ( ; ) , ليس أكثر و لا أقل sad.gif

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

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

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

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

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

#13

السلام عليكم

أخي الحبيب أنا لم أقصد ان يكون كلامي شديد

لكني أتمنى منك الذهاب الى الموقع التالي :

معايير في تقييم لغات البرمجة

وتنتقي منه كتاب بعنوان ( معايير في تقييم لغات البرمجة ) , كتاب جميل يقوم بعمل مقارنة بين لغات البرمجة وتوضيح الفروقات بينها .

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

مثال أفرض أنني أريد أن أعمل برنامج يقوم بوظيفة عرض الدروس للتلاميذ بشكل بسيط .

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

هل يعلم أن الواجهة المرئية تستنزف أكواد كثيرة لعمل ذلك؟

هو لا يدري ما يحصل وراء الكواليس .

قاعدة أساسية لمقارنة الكفائة بين اللغات , كلما كانت اللغة قريبة الى لغة الكومبيوتر كلما كانت أكثر كفائة , ولكنها أصعب عند كتابة الكود , لأنك تتعامل بأقرب ما يمكن الى لغة الكومبيوتر .

- لغة C++: من أهدافها القوه والتحكم, تتميز بالكثير من التعقيد, ولها سرعة مميزة في التنفيذ.

- الدلفي: والهدف هو التركيز على برمجة النوافذ , وزيادة الإنتاجية, مميزة في برامج E_Business

- الجافا: تسعى لقابليه النقل بدون أهتمام كبير بالسرعة, مطرزه بالعديد من مزايا القوّة, مميزة في التطبيقات الموزعة والويب .

- VB : تهدف إلى السهولة وسرعة التطوير . وتبسيط برمجة النوافذ , مميزة في تطبيقات أوفيس .

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

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

ومن قال لك أن البيسك لا يتعامل مع ال API , أن البيسك له مكتبة خاصة لل API .

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

وأستطيع التعامل مع النافذة كاملا من خلال API بكل شئ في النافذة أي شئ تريده مباشرة .

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

How to use named pipes for interprocess communication in Visual Basic .NET or in Visual Basic 2005

أو المقالة التالية :

Inter process communication using registered messages from Visual Basic

أما بالنسبة الى Buffer OverFlow لو ليك قلب تقرأ التالي أقرأ لتعلم أننا لسنا نيام !!!!!!!!!!!!!

1 -الـ Buffer Overflow

2- المعالجه(Proccess)

>-----------------

3- إدارة الذاكره (Memory management)

>--------------------------------

4 - استغلال ماذكر في الـ Buffer Overflow

أخي أما حول Buffer Overflow : هي عبارة عن برمجة سيئة أو بمعنى أخر برمجة تحمل الاخطاء .

أو يوجد ثغرة يمكنك أستغلالها من نوع Buffer OverFlow مثل التي حدثت لخادم IIS لمايكروسوفت .

الثغرات تعرف باسم Exploites

1.الاختراق عن طريق الضعف الامني في السي جي اي ولا اظن احد في زمننا هذا لا يعرف ماهي.

2.ملفات السي بلس بلس و هي الاكثر احترافاً والاكثر انتشاراً فا أغلب الثغرات تعمل عليها.

3.ملفات البيرل.

عموما، يحدث Buffer Overflow عندما يظهر برنامج ما متغيّر بحجم ثابت (على سبيل المثال،حجم 20 بايت) و القيمة التي خصّصت إلى هذه المتغيّر أكبر من حجم المتغيّر.

2-المعالجه(Proccess):

>----------------<

إنّ الوحدة الوظيفية الأساسية في حاسوب يعمل هي عملية المعالجه (Proccess).في الحاسوب هنالك العديد من العمليات ونظام التشغيل مسؤول عن تقسيم القوّة التي تجعل العديد من العمليات تعمل في نفس الوقت في الحاسوب.

ليس هناك شيء إسمه "متعددالعمليات Multi- proccesses" صحيح... كيف اذن؟؛ انَّ وحدة المعالجة المركزية(CPU) تنتقل بين العمليات كلُُ على حده بسرعة كبيره بحيث تبدو مثل العديد من المهام التي تعمل في وقت واحد،

اذا تبدو لنا كأن العمليات تعمل في وقت واحد وهذه من خدع الحاسوب التي يؤديها علينا ..

كلّ عملية لها عنوان فاضي من الذاكره ، ولايمكن لأي عمليةآخرى تدخل في هذا المكان الفاضي من الذاكرة. وهذا يرشدنا الى شي اخر يجب ان تفهمه وهو:

3- إدارة الذاكره (Memory management):

>------------------------------<

تدير أنظمة التشغيل-operating systems-الحديثة ذاكرة افتراضية virtual memory(تخيلية).

ذلك يعني بأنّه لايمكن لأي تطبيق (برنامج مثلا) الوصول مباشرة إلى الذاكرة الحقيقية.لماذا؟؟

انظمة التشغيل Operating System تمتلك جدول تخطيط "تحويل العناوين الحقيقية من الذاكرة الى عناوين افتراضية(تخيلية)" .

وعندما تقوم ذاكرة الـ OS (نظام التشغيل)بتحديد مكان في الذاكرة لبرنامج معين لتشغيله ،يأخذ البرنامج العنوان التخيليّ فقط ، وليس العنوان الطبيعي.

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

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

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

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

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

4 - استغلال ماذكر في الـ Buffer Overflow

>---------------------------------<

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

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

وأخيرا كلمة المبتدأ Beginner :

دعنا لا ننظر الى أحدنا الآخر على أنه مبتدأ , كلنا مبتدئين أخي الحبيب .

وأتمنى أن أكون مثلك ذات يوم . :)

#14
اقتباس
ومن قال لك أن البيسك لا يتعامل مع ال API , أن البيسك له مكتبة خاصة لل API .

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

وأستطيع التعامل مع النافذة كاملا من خلال API بكل شئ في النافذة أي شئ تريده مباشرة .

أنا لم أقل أن فيجوال بيسيك لا يمكنك من التعامل مع ال Windows API و لكن تواجهك بعض الصعوبات

مثلا في السي لكي نتعامل مع ال Windows API ما عليك إلا أن تقوم بعمل Include لملف ال Header و تصبح قادر على إستعمال كل ال Structures و إستدعاء الدوال

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

أنا فاكر أن تركي العسيري و هو حاصل على لقب MVP (Microsoft Valuable Developer) في الفيجوال بيسيك قال مرة أنه

‏3) تقنية المرآة ‏Mirroring

كان حلمي استخدام تقنية المرآة في ‏VB6‎‏ لتطوير واجهات استخدام عربية السمات ‏وخالصة المعاني، ولكن مع -الاسف الشديد- نهاية هذا الحلم اكتشفتها بعد الاستيقاظ من ‏منامي، حيث تتطلب هذه التقنية (حتى تعمل بشكل صحيح) تغيير نمط النافذة الموسع ‏Window Extended Style‏ لحظة انشاء النافذة ‏Create، و ‏VB6‎‏ لايدعم حدث الانشاء، حيث ‏ان اول احداثه هو ‏Load‏ والذي ‏‎‎يتم تفجيره بعد انشاء النافذة‎‎، اما ان حاولت ‏استخدام المشيد ‏Initialize‏ فلن يفيدك ذلك، اذ ان هذا المشيد يتبع لكائن النافذة ‏Form ‎Object‏ وسيتم تنفيذه ‏‎‎قبل الانشاء الفعلي للنافذة‎‎‏.‏

اقتباس
مرت الأيام، وقمت بمراسلة الكثير من المبرمجين طالبا من يعطف علي بكم شيفرة ‏مصدرية، ولكن كل الاجابات تقول لا يمكنك الا توديع النماذج والعودة الى الاجراء ‏CreateWindow‏ (وهو احد اشهر اجراءات ‏API‏).‏

قضيت اكثر من اسبوع، وكتبت برنامج يستخدم الاجراء ‏CreateWindow‏ حتى زاد عدد ‏الشيفرات المصدرية عن المئات، وبعد تفكير جدي في الموضوع اكبر، اكتشفت ان العودة ‏الى ‏نومي واكمال مشاهدة الحلم افضل بعشرات المرات!

لن اطيل الحديث عن معاناتي (الي ايده في المية مش زي الي ايده في النار)، ولكن ‏سأبشركم ببساطة ان لحظة انشاء النافذة يمكنك قنصها في ‏Windows Forms .NET‏ بـ ‏VB.NET‏ عن طريق الخاصية ‏CreateParams‏ وهي قابلة لاعادة القيادة ‏Overridable‏.

و يمكنك قراءة الموضوع بأكمله هنا /index.php?showtopic=79686

فتخيل قدر المعاناة التي يعانيها مبرمج الفيجوال بيسيك في التعامل مع ال Windows API

و بصراحة معظم مبرمجي الفيجوال بيسيك يا إما بيخافوا من ال Windows APIs يا إما بيكرهوها

يمكنك مع ذلك و بصعوبات كبيرة إستخدام الWindows APIs و لكن كم مبرمج فيجوال بيسيك إستخدمها ؟؟؟

يعني كم نسبة مبرمجي الفيجوال بيسيك الذين إستخدموا في يوم من الأيام ال API Interception أو ال Pipes أو ال Multithreadig

اقتباس
وأخيرا كلمة المبتدأ Beginner :

دعنا لا ننظر الى أحدنا الآخر على أنه مبتدأ , كلنا مبتدئين أخي الحبيب .

وأتمنى أن أكون مثلك ذات يوم . regular_smile.gif

أنا لم أقل أبدا أنك مبتدأ و أني المحترف ولن أقل شيء كهذا كما قلت كلنا مبتدئين و أنا مبتديء مثلك تماما أنا كنت فقط أترجم إسم اللغة

"لا يظل الرجل عالما ما طلب العلم فإن ظن أنه علم فقد جهل"

أنا فقط أقول أن لغة لغة الفيجوال بيسيك صممت لتعليم المبتدئين و يمكنك أن تراجع هذا الرابط http://en.wikipedia.org/wiki/BASIC

و سأقتبس منه جزء

اقتباس
It was originally designed in 1963, by John George Kemeny and Thomas Eugene Kurtz at Dartmouth College, to allow students not in science fields to use computers.

يعني أنها صممت في البداية أصلا لتسمح للطلبة الذين ليسوا في مجال العلم لإستخدامها

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

و بالنسبة لل Security مرة أخرى فتظهر أهميتها في المشاريع الكبيرة ك Database Management Systems و Web Servers إلخ ... التي لن يظهر فيها فيجوال بيسيك في أي يوم من الأيام و كما قلت من قبل الSecurity هي مسئولية المبرمج

هذه بعض معايير التقييم بين اللغات

Scale: أي هل اللغة صالحة لمشاريع كبيرة ? هل تقبل اللغة أن تتعامل مع وحدات ترجمة مختلفة من مبرمجين مختلفين كمكتبات dll مثلا كمجرد مثال

Modularity : هل اللغة تصلح لتقسيم المشروع إلى وحدات مستقلة و العمل عليها

Reusability: هل تدعم اللغة إعادة إستخدام وحدات البرامج في مشاريع أخرى

Reliability: هل اللغة تمكنك من إيجاد الأخطاء بسرعة و إصلاحها

Efficiency: هل اللغة قابلة على العمل بكفاءة ؟ لأن بعض لغات ال OOP تتسبب في runtime overhead كما أن Garbage Collector أيضا قد يتسبب في بطء البرنامج

Readability: هل اللغة تسهل عملية قرائتها بسهولة ? لأن بعض اللغات تجبر المبرمج على كتابة أكواد تشبه الطلاسم

Avaliability of Compilers and Tools: هل يتوافر للغة مترجمات و أدوات تسهل عملية البرمجة ?

Familarity: هل المبرمجين معتادين على هذه اللغة ?

Portability: هل الكود يسهل نقله من Platform إلى أخر بسهولة

Level: بعض المشاريع تحتاج low-level programming languages بينما الأخر يحتاج high-level programming languages

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

بالنسبة لل Scale فلا يصلح فيجوال بيسيك للمشاريع الكبيرة أبدا لذا لم نرى و لن نرى في يوم من الأيام مشروع كبير أو 3D Game كبيرة بالفيجوال بيسيك

Modularity: مدعومة في سي بلس بلس بشكل أكبر

Reusability: مدعومة في الإثنين

Efficiency: لا مجال للمقارنة بين كفاءة و سرعة السي بلس بلس و بين الفيجوال بيسيك

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

Avaliability of Compilers and Tools: أظن أن سي بلس بلس تفوز في هذه الحالة فلها العديد من المترجمات مقدمة من العديد من الشركات بعضها مجانية و بعضها تجارية أما فيجوال بيسيك 6 فلم أسمع في يوم من الأيام عن مترجم فيجوال بيسيك 6 غير مقدم من ميكروسوفت

Familarity: لها علاقة بتعود المبرمج على اللغة أكثر من اللغة نفسها

Level: سي بلس بلس تفوز في هذه الحالة أيضا لأنك تستطيع كتابة مشاريع low-level بها كما تستطيع أيضا كتابة مشاريع high-level

بعكس فيجوال بيسيك 6 الذي لا يصلح في التعامل إلا مع ال high-level كما أنه أيضا ليس Object Oriented بل Object-Based لأنه لا يدعم الوراثة

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

تم تعديل هذه المشاركة بواسطة usama707 في 27 أبريل 2006 في 15:13

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

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