שימו לב לסקר חדש.

erezsh

New member
מבדר קצת

שבעוד BASIC היא שפת תכנות, VB היא לא??
VB זה Qbasic עם הרבה מאוד תוספות. כלומר, עם הרבה מאוד אופציות של מחולל יישומים, אבל לא עם פחות שפת תכנות..
 

IdanR

New member
למען האמת...

לא הייתי בטוח אם אפשר בכלל לכתוב פרוצדורות בBASIC, מה שהופך את זה ל flow programming (בדומה לbatch files) ולא לתכנות פרוצדורלי. אני לא מכיר כל-כך את השפה העתיקה. :) אבל היא הייתה שפת תכנות - בכל מקרה, הקומפיילר היה לוקח קוד שכתוב בשפה הזאת, ומהדר אותה לשפת מכונה. קובץ שבד"כ יכול היה לרוץ בסביבת DOS. גם לא אמרתי במפורשות שVB זו לא שפת תכנות... אבל זה עונה להגדרה של מחולל יישומים, בכל מקרה. אולי, אם תרצה, מחולל יישומים שמשלב בתוכו שפה. השפה עצמה תלויה בסביבת העבודה שלה. זה ללא ספק אומר משהו. ואם אתה יכול ליצור חלון, לשים עליו כפתורים.. לשים תמונות, וכל מה שתרצה.. לקבוע את הגודל של החלון... איפה הוא יהיה על המסך, מה תהייה הכותרת שלו, ולפעמים אתה יכול אפילו לגרור לחלון הזה איזה ActiveX שמציג סרטים, או מנגן קבצי MP3. - וכל זה בלי בכלל לכתוב שורת קוד אחת, הרי יש לך כאן מחולל יישומים.
 

IdanR

New member
לא דיבתרי על QBasic אגב...

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

גם להדר קבצי EXE. הגרסה שהגיע עם הDOS היתה גרסה חלקית, שחסרה חלק נכבד מהתפקוד של הגרסה המסחרית (זו שנמכרה בנפרד).
 

DadleFish

New member
סדר בבלאגן

גם ב-BASIC וגם ב-QBASIC היה קונספט של SUBROUTINES. לגבי VB - מגיע הזמן שבו מחולל היישומים יותר גדול משפת התכנות שמאחוריו. מי שטוען ש-VB זו "שפת תכנות", אומר שגם השפות של MAYA, FLASH, ACCESS ו-DIRECTOR הן כולן "שפות תכנות".
 

ilankt

New member
...

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

vinney

Well-known member
עקרונית לא

אקסס כוללת את מודול VBA המלא, שמאפשר לך לכתוב כל דבר שם. יש לו גישה לקבצים ישירות, וגישה למסך ישירות, זה בערך כל מה שצריך, לא?
 

DadleFish

New member
ל-ACCESS ול-VB יש את אותן

היכולות, בזכות VBA שיש ב-ACCESS. פשוט ACCESS "מובילה" אותך בכיוון מסוים (...בניית אפליקציות בתוך ACCESS) ו-VB מובילה אותך בכיוון אחר (אפליקציות ל-WINDOWS באופן כללי). זה עדיין לא הופך את VB לשפת תכנות PER SE.
 
אני לא בטוח

אני לא בטוח שלשתיהן יש אותן היכולות: ב VB אפשר ליצור: ActiveX DLL ActiveX EXE ActiveX Document (שאני לא מכיר מישהו שבאמת עשה עם זה משהו) ActiveX Control אפליקציות מבוזרות ע"י COM (או +COM או DCOM) האם אפשר לעשות את זה באקסס (כולל התוספת לקומפילציה)? -לא נראה לי, אבל לא בדקתי עד הסוף. אני מתכנת VB כבר כמה שנים. פיתחתי מערכות מספיק יציבות ומתוחכמות עם VB. נכון, זה לא מערכות RealTime או פלטפורמות של משחקים, אלא מערכות מבוססות DB. אבל זה בדיוק היעוד של VB לדעתי. לגבי השאלה האם VB היא שפת תכנות. אז לדעתי: כן, זוהי שפת תכנות. לא מדהימה, קצת מוגבלת לעומת המתחרות, אבל טובה בנישה של תוכנות DB. ההגדרה שלי לשפת תכנות היא תחביר שניתן לקמפל. הבעיה העיקרית ב VB היא שאין אף קומפיילר חוץ מזה של MS, כך שאין באמת הפרדה בין השפה עצמה לסביבת הפיתוח שלה, למרות שעקרונית ניתן ליצור קובץ טקסט ולקמפל אותו ב CommandLine. אחת התגובות לפני התייחסה ל VB כסקריפט, ומתכנת ב VB ככזה שלא ממש יודע מה קורה מאחורי הקלעים. בעניין זה, עלי לומר שאמנם מתכנת VB לא מספיק יודע מה באמת קורה כאשר החלון נוצר על המסך, אבל מצד שני, יש מספיק אלגוריתמיקה מאחורי הקלעים כדי להפיק תוכנה ממוצעת. אז בסדר, מתכנת VB מקבל הרבה כלים שעוזרים לו להפיק אפליקציה של חלונות, ומה, מתכנת VCPP לא מקבל את MFC, או ספריות אחרות? בודאי שמקבל, וגם משתמש בהן. נכון, יש לו הרבה יותר כוח ויותר גמישות בספריות האלו. אבל מתכנתי VB יכולים לקבל אותו כוח תוך שימוש ב API של Windows. יש הרבה מאוד תחומים שבהם מתכנת VB יכול להגיע לאותן יכולות שמתכנת בסביבת פיתוח אחרת יכול להגיע אליהם (כל עוד אנחנו בסביבת חלונות), אבל אני מודה שלפעמים בצורה קצת עקומה. כאן אני מודה בפה מלא: VB אינה מושלמת, ועלולה להקנות הרגלי תכנות בעייתיים. אבל כאן השאלה הופכת להיות האם VB היא שפת תכנות/סביבת פיתוח טובה, ולא האם זוהי שפת תכנות. לסיכום: שפת תכנות, מבחינתי, היא תחביר ופקודות שאפשר להמיר לקובץ תוכנית (כמו EXE ב Windows). זאת לא הגדרה אקדמית, זאת הגדרה אישית שלי. לדעתי VB היא אכן שפת תכנות. שפה שבאופן פרקטי לא ניתן להפריד מסביבת הפיתוח שבאה יחד איתה (למרות שבאופן עקרוני - כן). שפה שעלולה להקנות הרגלי תכנות בעייתיים. ניתן ליצור ב VB מערכות עם 3 שכבות ויותר (לא נראה לי שזה אפשרי בסביבות כמו Flash). במשפט אחד: חבר'ה, VB זה לא רק GUI...
 
למעלה