השוואת שפות תכנות

השוואת שפות תכנות

אני לא בטוח שזהו הפורום הנכון, אבל אני לא מצליח לעלות על דעתי מקום טוב יותר להתיעץ בו. אז ככה: אני מנסח מסמך דרישות מערכת לתכנה מחליפה. הגרסה הנוכחית של התכנה כתובה בVB5, והיא מממשת מישק משתמש למערכת כלשהי, ותקשורת במגוון פרוטוקולים, ומישק CGI עבור שרת WEB. השפה VB5 (וממשיכתה הטבעית, VB6) הוכרזו כ"לא נתמכות" למערכות הפעלה SERVER2003 ומעלה. לכן אני מנסה לבחור שפה אחרת להמשך הפיתוח. נראה לי שהאפשרויות העומדות בפני הן: 1. VB.NET, C#, .NET - הבעיה שלי עם סביבות אלו, היא מוגבלותן היחסית. לאחר בדיקה קצרה (על גרסת ההתנסות של .NET), אין אפשרות להמיר את הקוד, ויהיה עלי לכתוב אותו מההתחלה. סביבת הפיתוח אינה זולה, ואין מהדר שיכול להכין את הקבצים לסביבת עבודה כלשהי פרט לחלונות, וגם אז - רק לגרסות החדשות יותר (חלק מהמערכת לא יוכל לעבוד על חלונות 98, או על חלונות 2000 ככל הנראה). ברור לי ששרותי תקשורת אינם ניתנים לכתיבה בקלות בVB.NET. אולי ב-C# (דורש בדיקה). 2. C++, C - כמובן שאין המרה של הקוד. מפני שנדרשת גם כתיבה של GUI, תידרש עבודה מול TOOL-KIT כלשהו כדוגמת MFC, ATL, GTK, QT ... . להערכתי הליך הכתיבה הנפוי עתיד להיות איטי באופן נכר מזה המופעל על VB (אין אפשרות להעריך בטויים משורת פקודה כדוגמה). 3. JAVA - הבעיה - חשש מאיטיות (לא ידוע לי על מהדר ל-NATIVE שעובד על CLASSES ממש גדולים), בעיות מוכרות של "זליגת" זכרון מהVM, מה שעשוי לגרום לקריסה, וחשש שבעתיד הפעלת ישומי וישומוני JAVA לא תתאפשר על מערכות הפעלה של מיקרוסופט. האם למישהו יש המלצות, תוספות, קללות לא מוכרות? (למעלה כתבתי בעקר את החסרונות של כל שפה, ורק את השפות שהבאתי בחשבון מבחינתי, יתכן שמחמת חוסר מודעות לשפות נוספות שמושיות לצורך הנושא).
 
גוץ יא קצוץ

וואלה, אתה גאון. זרוק את כל הקוד ותתחיל מחדש. יא מפגר. הכי פשוט - תמשיך להשתמש במה שעובד, עד שתראה שלא עובד. (תכנות שנכתבו ב-VB4 אפילו עדיין רצות על SERVER2003. ממה אתה חושש?
 
תודה, בדקתי.

א. עדיין אין FRAMEWORK מלא. ב. יש איומים מצד בעלי תפקידים במיקרוסופט לתבוע את מארגני הפרויקט ובראשותם נובל בגין הפרת פטנטים על חלקם בפיתוח מונו. זאת למרות שההגדרות נרשמו ע"י מיקרוסופט בEMCA כהגדרות לפיתוח נוסף (לכאורה זה מתיר לעשות פרויקט כדוגמת מונו, אבל למי יש יותר עו"ד?).
 

gmorphus

New member
כל כך הרבה שטויות במקום אחד

אתה באמת מכיר את כל השפות האלה שאתה מדבר עליהן? בכלל בדקת שהמערכת שלך באמת לא עובדת בSERVER2003 או שאתה סתם זורק? C#, .NET, VB.NET - מוגבלות?!?!? אתה באמת מאמין בזה? שטויות... וחוץ מזה, אני חושב שהמרת קוד מVB5 לVB.NET לא תהיה מסובכת מידי אבל אני לא באמת יודע. אתה באמת צריך שהמערכת שלך תעבוד על 98? ולמה זה לא יעבוד ב2000 אם אתה משתמש ב .NET מה הקשר???? שירותי תקשורת זה כל הרעיון ב.NET! למה נראה שהם "אינם ניתנים לכתיבה בקלות"? בקיצור, אין לי מושג מאיפה השגת את כל המידע הזה שאתה מדבר אבל רובו לא נכון.
 
בהחלט חסר לי ידע.

(לפי פרסומים רשמיים של מיקרוסופט) - VB6 וקודמותיה לא נתמכות על SERVER2003. במציאות התכנה כן רצה, אבל אני לא יודע מה יקרה בעתיד, לאחר מספר עדכוני אבטחה. "שרותי תקשורת" - הכוונה לתקשורת RT מול מערכות EMBED. אני מקבל בתקשורת (נניח טורית) מערך בתים שמיצג STRACT שמקורו ב-C על מערכת הEMBED, וממיר אותו ל-TYPE תואם של VB (המצב כיום). חלק מהפקודות שאני משתמש בהן לצרכי לא זמינות ב (VB.NET אם כי כן זמינות ב-C#). המרת הקוד תוך שמוש בממיר האוטומטי של .NET יוצרת קוד לא שמיש, ולא כל כך קריא (ניסיתי), והמרה ידנית שלו כרוכה בכמות עבודה הדומה להמרתו ל-JAVA (המרתי ידנית חלק קטן מהקוד לJAVA וחלק לVB.NET כדי לדעת במה זה כרוך). שרשי הקוד המקורי נכתבו ב-GWBASIC, והומרו מספר פעמים עד היום ל-QBASIC, לאחר מכן לVB2 ולבסוף לVB5, כמובן תוך תוספות רבות בכל שלב. חלונות 98 - מפני שחלק גדול מהלקוחות עדיין משתמשים במחשבים שרכשו עם המערכת לפני מספר שנים, ומצפים לקבל עדכונים כחלק מהשרות, יהיה עלי לפתח בסביבה הניתנת להרצה גם על 98, או להחזיק במקביל שתי מערכות - אחת לצורך עדכונים למערכות ותיקות, השניה למערכות חדשות. משהו ששכחתי - רצוי שפה שניתן להמיר אוביקטים ויזואלים שלה בקלות לHTML, כיום כל אוביקט ויזואלי שאני מוסיף, עלי להוסיף בנפרד לפרויקט ה-CGI התומך במערכת (אם ע"י כתיבתו כאוביטק JS, או ע"י בניתו כיישומון JAVA והטמעתו בתוך אוביקט JS, וזה די מסבך את העבודה).
 

vinney

Well-known member
תשמע, תראה

תתחיל מזה שכל מה שזמין ב#C, זמין גם בVB.NET, ולהיפך, מדובר בשני סינטקסים של אותן ספריות פונקציונליות, אין בינהם שום הבדל. לגבי המרת נתוני תקשורת - לא ברור לי מה זה ממיר אוטומטי של NET, אבל לכתוב המרות כאלה זה באמת 5 דקות עבודה, לא משנה אם זה בא מSERIAL, או PARALLEL או SOCKET או USB, או מכל כיוון עתידי אחר, וזה נכון לא רק לNET, אלא לכל שפת תכנות נורמלית. STRUCTים (עם U) שנוצרים לך בEMBEDDED, אתה יכול לעבד עם אותו הקוד גם תחת ++C בNET (בMANAGED) ולשלב אותו בפרוייקט שלך, שינוי במערכת המשובצת ידרוש רק החלפת ספריה אצלך וקימפול מחדש, ולא כתיבה מחדש כמו שזה עכשיו. לגבי 98 - מי שמשתמש ב98 עדיין - דמו בראשו, מייקרוסופט עצמה לא תומכת בה יותר, יש גבול כמה אחורה ניתן לתמוך. שישדרגו ל2000. לא ברור לי למה אתה צריך HTML במערכת שהיא כולה GUI, מה אתה עושה איתו שם? בכל מקרה, בNET (וגם בMFC וVB) יש פקד המאפשר הצגת HTML על בסיס IE.
 
תודה, נתת לי כוון כללי.

נראה לי שאלך על C# לפחות מפני ש-VARPTR לא זמין בVB (לפחות לא מצאתי התיחסות אליו בMSDN), ואני מניח שיש מצביעים בC#. אם לא - חלק מהפונקציות תכתבנה ככל הנראה ב-C++/C. קיים "אשף יבוא" בסביבת .NET, ואליו כוונתי כאשר התיחסתי ל"ממיר אוטומטי". המערכת כיום תומכת בהעברת חלקים ספציפיים (ודי נרחבים) מהGUI לשרת WEB דרך מישק CGI, ובשאיפה התוצאה על כל דפדפן מודרני (IE, FF , OPERA והמבוססים עליהם) נראית דומה ככל האפשר למה שרואה המשתמש המקומי. אני לא יכול להרשות לעצמי לוותר על הלקוחות שכבר יש להם מערכות, או לדרוש מהם להחליף את המחשב (קשה לי להאמין שPII עם 64 MB יתמוך בחלונות XP, שלא לדבר על העלויות - מי ישלם את עלות הרשיון המעודכן). הפקד הממיר בMFC נותן תוצאות "מוזרות" בהמרת קוד, בעקר אם מנסים להציג בדפדפנים שאינם מבוססים על המנוע של IE. בכל מקרה, אבדוק את המנוע של .NET לנושא.
 
למעלה