++C נגד VB

lior654

New member
++C נגד VB

כבר הרבה שנים שאני מתכנת אך ורק במשפחת C רבתית ++ C/C++/VC, אף פעם לא התעסקתי עם Visual Basic אשמח לקבל השוואה קטנה בין שני השפות הללו. והאם כדי לנסות VB. הבנתי שזו שפה הרבה יותר קלה. (תבניות מוכנות) לעומת C, לא?
 

nirtheking

New member
עם VB אתה יכול לעבוד רק על WIN

כאשר במשפחת C אתה יכול לעבוד על כל מיני מערכות הפעלה. (ואם אני לא טועה ב-VC++ אי אפשר)
 

lior654

New member
תגובה

אפשר עוד קצת פרטים בכל זאת, נסה לשכנע אותי למה כדי לי לעבוד גם עם VB.
 

gilad g

New member
../images/Emo45.gif

VB איכסה של שפה
 

nirtheking

New member
המורה שלי חושבת אחרת ../images/Emo10.gif

היא מעדיפה ללמד אותנו VB על פני JS או JAVA ולמה? כי היא אומרת שצריך ידע קודם בתכנות
שטויות
בשביל JS מספיק לדעת לחשוב קצת
 
VB זאת שפה מצויינת

בשביל לעשות תוכניות פשוטות יחסית במהירות, עם GUI נחמד. כלומר אם אתה רוצה משהו מתוכנית שתמיר לך טקסט הפוך כזה (כמו שפעם היה באינטרנט) לטקסט רגיל עד תוכנית שתתחבר לdb פשוט ותשלוף לך כמה רשומות ותעשה איתם משהו אז vb זה אחלה. אבל ברגע שאתה רוצה לבנות דברים מורכבים באמת הבעיה איתה שזו לא שפה מקומפלת, ולכן היא מאוד מאוד איטית לעומת cpp. בנוסף יש לך הרבה פחות שליטה כי הדברים שם באמת מגיעים מוכנים. אם אתה יודע cpp ורוצה לתכנת GUI יותר בקלות (לעומת הmfc שבטח יכעסו עלי אבל אני אישית די שונא), לך על C#. בנוסף C# עובדת מהר יותר מVB. דרך אגב, כל מה שכתבתי מדבר על VB ולא VB.NET שהיא כמובן זהה לC# (למרות שעדיין הייתי ממליץ לך את C# אם אתה כבר יודע C)
 
ולא נותר לי אלא לצטט מדריך שאמר...

להשתמש ב - MFC כדי ליצור GUI זה סאדו מזוכיזם. ועכשיו ברצינות: גם אני לא מת על VB, אבל יש לה כמה יתרונות על MFC, כמו יצירה ושילוב של פקדי ACTIVE-X, פי 1000 יותר פשוט. חשוב לזכור, ש - MFC רץ על מכונה וירטואלית, כך שבכל מקרה אין לו את המהירות של C++ שרצה ישירות על החומרה.
 
אני מניח שהתכוונת

שלvb יש כמה יתרונות על c# (לא mfc), ושc# רצה על מכונה וירטואלית. אז בקשר לטענה הראשונה, יכול להיות שאתה צודק, אני רק אומר שאם הבחור כבר יודע c ואני מניח שאם הוא מתעניין בvb הוא רוצה ליצור GUI יותר בקלות אז שילך על c#. בקשר לטענה השנייה, אפשר לקמפל קוד c# לשפת מכונה (אני לא יודע איך עושים את זה אבל יודע שאפשר, זה נקרא engine משו), ואז זה ירוץ כמו c++..
 
האמת שהתכוונתי ל - MFC

שגם רץ על מכונה וירטואלית שמופעלת ע"י מערכת WINDOWS. אגב, מי שיודע C++ כבר יודע VB. הוא רק צריך ללמוד לכתוב Function ו - End Function... את כל השאר אפשר למצוא ב - HELP.
 

סומבודי

New member
MFC??

איזו סיבה הגיונית יש להשתמש ב-MFC כעת בימי ה.NET? בכל מקרה, מצטרף לדברי גלעד. VB = איכסה.
 
הכוונה היא...

שמערכת WINDOWS מנהלת את משאבי הזיכרון, המעבד והחומרה ומתווכת בין האפליקציה לחומרה. מבחינה זו זו מכונה וירטואלית.
 
C# עובדת בדיוק באותה מהירות

שתי השפות מקומפלות לאותו IL וההבדל ביניהן הוא בעיקרו סינטקטי.
 

yuval k

New member
גישה לא נכונה

עם השפה אתה יכול לעבוד בכל קומפיילר שהוא - אם מישהו יכתוב קומפיילר ל-VB ללינוקס, אין שום סיבה ש-VB תעבוד רק על Windows. כנ"ל לגבי C - זה שמישהו כתב לה קומפיילר ל-Windows ומישהו אחר ל-Unix ומישהו אחר ל-Macintosh לא אומר כלום על השפה - ודווקא עם VB.net, קבצי הרצה שקומפלו על חלונות יכולים לעבוד על לינוקס, דרך mono (תוכניות C שקומפלו על חלונות לא תעבודנה על לינוקס בכלל, דרך אגב).
 

tc2000

New member
VB vs VC

אמרו פעם על ההשוואה בין VB ו-VC: מה שקל - קשה, ומה שקשה - קל! כל מילה נכונה!
 
../images/Emo41.gifבניגוד לטענות המומחים כאן:

1. C# ו-vb.net רצות בדיוק בדיוק באותה מהירות וההבדל הכמעט יחיד ביניהם הוא סינטקטי. 2. הרצה ראשונה של תוכנת .net אכן יותר איטית אבל לאחר הרצה של כל מקטע קוד הוא מקומפל (בהתאם לסוג המעבד הספציפי ובהתאם לinstruction set הייחודי שלו לעיתים) ובריצה הבאה הוא ירוץ בדיוק באותה מהירות שבה הוא היה רץ אם הוא היה כתוב בcpp (כי הוא כבר לא עובר קומפילציית JIT אלא קיים עבור המקטע קוד מכונה). 3. לכל שפה יש את השימושים שלה ואין טעם להשוות - מי שכותב אפליקציה שמטרתה העיקרית למשל עבודה עם DB (וממש לא דווקא DB קטן כפי שציין כאן אחד החברים) עם ממשק משתמש רב חלונות עדיף שלא יעז לחשוב לכתוב את זה בCPP. אני בימים אלו עובד בפרוייקט דומה שאם היה נכתב חס וחלילה בCPP הוא ככל הנראה היה נמצא במצב של 10% ממה שהוא כיום. C או CPP מתאימות יותר לתכנות Low level כמו real time/embedded, תכנות תקשורת ברמת הביטים, DSP וכד'. מתכנת שבא לנסות לכתוב תוכנת RT בVB הוא אידיוט אך כך גם מתכנת שבא לכתוב תוכנה חלונאית high level בCPP שאינה ממש דורשת את זה כי אין שום טעם להתעסק בביטים ופויינטרים אלא אם כן יש בכך צורך. 4. צריך להבחין בין VB6 לבין VB.NET. הקשר המרכזי בין VB6 לVB.NET הוא זה שלשתיהן יש פחות או יותר אותו תחביר ואותן פונקציות בסיסיות אבל חוץ מזה ההבדל הוא פשוט עצום. הרעיון בvb.net הוא עצם העבודה עם הframework של ה.net על כל המשתמע מכך. מיותר לציין שהframework לא מכיל רק פונקציות להיפוך stringים כפי שהזכיר כאן אחד החברים אלא דברים קצת יותר מורכבים ומקיפים שמאפשרים תכנות OO יעיל ומהיר בתחומים רבים. אני אפילו לא אנסה לפרט כאן מה מכיל הframework, בשביל זה יש ספרים עבי כרס.
 
למעלה