ABA


"שאלה: מהם היתרונות של C על VB שהיא מבוקשת יותר?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #12368 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 12368
NoBuddy
חבר מתאריך 2.7.02
14473 הודעות
   23:25   20.08.05   
אל הפורום  
  שאלה: מהם היתרונות של C על VB שהיא מבוקשת יותר?  
 
   תודה.



                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתה מתכוון C++ MO 21.08.05 01:13 1
     תגדיר טובה. bizho 21.08.05 21:26 10
     זה לא נכון . אופירוש 22.08.05 11:18 13
  ב-C ובעיק ב-CPP יש הרבה אפשריות אשר לא ניתנות בכלל לביצוע ב-VB WIZARD 21.08.05 04:00 2
     אתה יכול לומר גם מה האפשרויות האלה אחי? MO 21.08.05 04:03 3
         C++ היא מונחית עצמים לחלוטין VB היא לא כל כך Daniel16 21.08.05 10:37 4
             ברצינות?! הייתי בטוח שVB גם מונחה עצמים MO 21.08.05 12:40 5
                 C# היא מונחית עצמים טהורה Daniel16 21.08.05 15:01 6
                 VB זאת שפה מונחת אירועים nesher  21.08.05 16:50 7
                 השפה אולי לא טהורה, bizho 21.08.05 21:28 12
                     צודק במאה אחוז . C++ עשתה מהפך בדרך העבודה של תוכניתנים אופירוש 22.08.05 11:19 14
             הכול קשקוש bmaorlo  21.08.05 19:50 8
                 שטויות אם יש בוא תגיד לי איך מגדירים מחלקה שיורשת? Daniel16 21.08.05 20:51 9
                 אתה לא צודק , אין הורשה ב - VB , לא משנה כמה תנסה ... אופירוש 22.08.05 11:20 15
                 ניראה לי שהוא מתבלבל בין VB ל VB.NET Daniel16 22.08.05 11:47 16
         דרייברים. מערכות הפעלה. תוכנה בסדר גודל של וורד bizho 21.08.05 21:27 11
             ניתן גם לכתוב אפליקציות גדולות ב VB שירוצו בזמן סביר.. אופירוש 22.08.05 12:51 17
                 יפה אחי צרף תקוד שלך בקשה MO 22.08.05 14:13 18
                     פרסמתי כהודעה בפורום . אופירוש 22.08.05 16:25 19

       
MO

   01:13   21.08.05   
אל הפורום  
  1. אתה מתכוון C++  
בתגובה להודעה מספר 0
 
   כי VB יותר טובה מC בטוח
אבל נראה לי שC++ מבוקשת יותר בגלל שיש יותר מתכנתים בVB מאשר בC++


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bizho

   21:26   21.08.05   
אל הפורום  
  10. תגדיר טובה.  
בתגובה להודעה מספר 1
 
   C יותר מהירה, ואפשר לעשות בה בכל.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
אופירוש

   11:18   22.08.05   
אל הפורום  
  13. זה לא נכון .  
בתגובה להודעה מספר 1
 
   אין לך שום דרך לקבוע ששפה מסוימת יותר טובה מהשניה כאשר הם באות לתת פתרונות אחרים לגמרי .
אחת מיועדת לאלגוריטמיקה , ושליטה מלאה בקוד שלך ובניהול הזיכרון , והשניה באה לתת מענה לפיתוח מהיר של אפליקציות מבוססות Windows .

מילא אם היית משווה בין C ל - C++ , אז עוד היה ניתן להתווכח על זה ...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
WIZARD

   04:00   21.08.05   
אל הפורום  
  2. ב-C ובעיק ב-CPP יש הרבה אפשריות אשר לא ניתנות בכלל לביצוע ב-VB  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MO

   04:03   21.08.05   
אל הפורום  
  3. אתה יכול לומר גם מה האפשרויות האלה אחי?  
בתגובה להודעה מספר 2
 
   תן כמה דוגמאות


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Daniel16

   10:37   21.08.05   
אל הפורום  
  4. C++ היא מונחית עצמים לחלוטין VB היא לא כל כך  
בתגובה להודעה מספר 3
 
   ב VB אין אפשרויות כמו הורשה ובנאים וכל מה שקשור לתיכנות מונחה עצמים
ועוד הבדל הזמן ריצה של VB הוא הרבה יותר איטי משל C++


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MO

   12:40   21.08.05   
אל הפורום  
  5. ברצינות?! הייתי בטוח שVB גם מונחה עצמים  
בתגובה להודעה מספר 4
 
   טוב אני עוד מתכנת חדש בVB.. יש עוד מה ללמוד =\

אבל C++ לא מונחה עצמים לחלוטין, חסרים כמה דברים בשביל שהשפה תהיה טהורה

דוגמא לשפה מונחית עצמים טהורה היא RUBY


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Daniel16

   15:01   21.08.05   
אל הפורום  
  6. C# היא מונחית עצמים טהורה  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
nesher 

   16:50   21.08.05   
אל הפורום  
  7. VB זאת שפה מונחת אירועים  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bizho

   21:28   21.08.05   
אל הפורום  
  12. השפה אולי לא טהורה,  
בתגובה להודעה מספר 5
 
   אבל בהחלט ניתן לתכנת בה OO בצורה שלמה. זה שאפשר לתכנת בה גם בצורה פרוצדורלית - זה רק בונוס.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
אופירוש

   11:19   22.08.05   
אל הפורום  
  14. צודק במאה אחוז . C++ עשתה מהפך בדרך העבודה של תוכניתנים  
בתגובה להודעה מספר 12
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bmaorlo 
חבר מתאריך 13.4.03
4770 הודעות
   19:50   21.08.05   
אל הפורום  
  8. הכול קשקוש  
בתגובה להודעה מספר 4
 
   גם בVB יש הורשה יש בנאים .
רק לגבי זמן תגובה אתה צודק במקצת.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Daniel16

   20:51   21.08.05   
אל הפורום  
  9. שטויות אם יש בוא תגיד לי איך מגדירים מחלקה שיורשת?  
בתגובה להודעה מספר 8
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
אופירוש

   11:20   22.08.05   
אל הפורום  
  15. אתה לא צודק , אין הורשה ב - VB , לא משנה כמה תנסה ...  
בתגובה להודעה מספר 8
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Daniel16

   11:47   22.08.05   
אל הפורום  
  16. ניראה לי שהוא מתבלבל בין VB ל VB.NET  
בתגובה להודעה מספר 8
 
   VB.NET היא אכן מונחית עצמים טהורה אבל אנחנו מדברים פה על VB6


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
bizho

   21:27   21.08.05   
אל הפורום  
  11. דרייברים. מערכות הפעלה. תוכנה בסדר גודל של וורד  
בתגובה להודעה מספר 3
 
   שתרוץ בזמן סביר.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
אופירוש

   12:51   22.08.05   
אל הפורום  
  17. ניתן גם לכתוב אפליקציות גדולות ב VB שירוצו בזמן סביר..  
בתגובה להודעה מספר 11
 
   ערכתי לאחרונה בתאריך 22.08.05 בשעה 13:23 בברכה, אופירוש
 
אבל , הבעיה ב - VB , שהיא לא בשלה מספיק כדי לעמוד בעומס .
ז"א , שלתוכניתן לא מנוסה (ז"א שאין לו לפחות שנתיים + ניסיון בעבודה רצינית ב - VB ולא חובבנות בבית ...) , אין סיכוי להרים מערכת גדולה .

הרכיבים של VB , למשל ה - Collection , ה - RS של ADO , ה - Dictionary והפקדים הוויזואלים (נתתי רק דוגמא , יש עוד מיליון ...) לא כתובים מספיק טוב כדי לעמוד בעומס של אפליקציות גדולות , הם לא נועדו לכך ...

אפילו סינטקס בסיסי ב - VB ירוץ לאט מאוד אם לא יודעים לכתוב אותו בצורה נכונה ומבינים את כל מה שקורה מאחורה .
צריך להיות תוכניתן מנוסה מאוד , כדי להכנס לתחום של ביצועים ולהבין מה קורה מאחורה .


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

כתבתי רגע קטע קוד שמראה את הבעייתיות של השרשור ב - VB .
למי שאין VB ולא יכול להריץ את הקטע קוד , צירפתי את התוצאה שלו בסוף ההודעה .


Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Sub Command1_Click()

Dim strTempString As String

strTempString = BadConcatString(1000)
strTempString = BadConcatString(3000)
strTempString = BadConcatString(5000)
strTempString = BadConcatString(10000)
strTempString = BadConcatString(20000)

End Sub

Private Function BadConcatString(lngStringsToConcat As Long) As String
On Error GoTo Err_Handle

' משתנה זמני לשרשור המחרוזת
Dim strTempString As String
' מונה לולאה
Dim lngCount As Long

' יצירת Collection שיכיל את האיברים לשרשור
Dim colTest As Collection
Set colTest = New Collection

' מילוי ה - Collection בכמות האיברים שהועברה בפונקציה
For lngCount = 1 To lngStringsToConcat
colTest.Add ("OfirConcatTest" & lngCount)
Next

' שליפת זמן נוכחי ממערכת ההפעלה - ב - milliSeconds
Dim dblTickCount As Double
dblTickCount = GetTickCount

' השרשור מתבצע בפועל , בעזרת התו השמור - &
For lngCount = 1 To lngStringsToConcat
strTempString = strTempString & colTest.Item(lngCount)
Next

' הדפסת התוצאה לחלון ה - Immediate ובדיקת זמן ביצוע הפעולה
Debug.Print "Bad Concat for " & lngStringsToConcat & " Strings took " & GetTickCount - dblTickCount & " ms ."

' החזרת המחרוזת המשורשת לפונקציה הקוראת
BadConcatString = strTempString

' קטע קוד שמתבצע תמיד, גם כאשר יש שגיאה - משמש לשחרור אובייקטים
Clean_Up:
Set colTest = Nothing

Exit Function

Err_Handle:
MsgBox Err.Number & " : " & Err.Description

GoTo Clean_Up
End Function

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

למי שאין VB , צירפתי את התוצאות .


Bad Concat for 1000 Strings took 15 ms .
Bad Concat for 3000 Strings took 203 ms .
Bad Concat for 5000 Strings took 1235 ms .
Bad Concat for 10000 Strings took 4937 ms .
Bad Concat for 20000 Strings took 27109 ms .

כמו שאתם רואים , שרשור 5000 מחרוזות קצרות לקח יותר משניה !!!
אתם אולי רגילים לכתוב אפליקציות קטנות , והנתון אולי לא משפיע עליכם , אבל באפליקציות גדולות הנושא קריטי ביותר .

אתם יכולים לראות כמה זמן לוקח לשרשר 20000 מחרוזות ... זה כבר הופך להיות בלתי הגיוני .
בכוונה לא שמתי 30000 , בגלל שהזמנים נהיים יותר מידי מטורפים (כ - 80 שניות) .

בקיצור , צריך לדעת לכתוב ב - VB , ולא כל אחד שקרא ספר יכול לכתוב אפליקציות נורמליות .

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

בהצלחה .

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

שם חשבו (כמעט) על הכל . (גם על שרשור מחרוזות )


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MO

   14:13   22.08.05   
אל הפורום  
  18. יפה אחי צרף תקוד שלך בקשה  
בתגובה להודעה מספר 17
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
אופירוש

   16:25   22.08.05   
אל הפורום  
  19. פרסמתי כהודעה בפורום .  
בתגובה להודעה מספר 18
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net