מה עדיף?

dagon

New member
"מה עדיף?" היא לא השאלה הנכונה

בגלל שמבחינה טכנית, עובדתית JScript עדיפה (שימי לב, gemini, המילה היא JScript כשזה נוגע ל-engine של MS ו-Javascript כשזה נוגע ל-engine של NS, אף פעם לא Java script - אין חיה כזאת). את יכולה לשאול "מה ההעדפה האישית שלך", כאן יכולים להכנס טעמי נוחות ובורות. אבל האמת היבשה היא ש--פשוט-- JScript עדיפה, מכיוון שלכמה אנשים יש בעיה עם אנגלית, הנה תרגום קצר של הנקודות במאמר (לא כולל את ה-performance tests, אלה ברורים מהגרפים): * ל-VBS אין תמיכה ב-short circuit condition, זה אומר שגם אם תנאי מסויים החזיר false היא תמשיך לתנאי הבא במקום לצאת מהתנאי. יש כאן הפסד ביצועים גדול ככל שהתנאים יותר גדולים, וגם איבוד פונקציונליות חשוב וסיבוכיות קוד ללא שום צורך. אין צורך לציין ש-JS תומכת ב-short circuit. * VBS לא תומכת בהוספת מתודות ותכונות לקלאסים או אובייקטים אחרי שהם הוגדרו, זה אומר שאין יכולת להרחיב קלאסים של ברירת מחדל (RegExp ב-VBS). * VBS מטפלת במערכים בצורה נוראית, ReDim כל פעם שגודל משתנה היא רק דוגמה אחת. JS תומכת במערכים דינאמיים מלאים וגם ניתן ליצור associative arrays (מין dictionary יעיל פי כמה). * ל-VBS יש ממשק "שטוח" ופשוט, כל המתודות שוכבות להם בסקופ הגלובאלי. JS היא מבוססת אובייקטים, לכל data type (מחרוזת, מספר, בוליאני וכו´) ואובייקט יש את המתודות והתכונות שנוגעות אך ורק לו ונשאבות מהקלאס שלו. * VBS איטית מאוד בהמרת סוגי נתונים יחסית ל-JS. * JS מעריכה תנאים הרבה יותר מהר מ-VBS (ככל שיש יותר תנאים הפער גדל). * ל-JS יש סינטקס דומה ל-C, התוצאה היא קוד הרבה יותר קצר ולעניין מ-VBS, ולרוב הרבה יותר קריא לאנשים בעלי רקע מוקדם בתכנות. * VBS לא תומכת בתנאים טרנאריים (שבהם ניתן להשתמש inline). כמובן ש-JS תומכת בהם בצורה מלאה. * ל-VBS אין אפילו הערות על פני מספר שורות, ניתן לשים הערה רק על שורה יחידה בכל פעם. * VBS לא תומכת בפרמטרים אופציונליים לפונקציות, תמיד יש חובה לשלוח את כולם, JS תומכת בהם. * ב-JS יש יכולת להכריז על משתנה ולתת לו ערך באותו הזמן, VBS לא תומכת בהשמה כאשר משתנה מוגדר. * ל-VBS יש מכניזם קטן ולא יעיל לטיפול בטעויות. JS תומכת ב-try ,catch, throw ו-finally. התוצאה היא טיפול מדוייק ותמציתי בכל טעות - בכל סקופ. * JS תומכת ב-RegExps מילוליים, תכונה שנותנת יצירה מהירה יותר, קצרה יותר וטובה יותר של RegExp. כמובן, VBS לא תומכת ב-RegExps מילוליים, האפשרות היחידה היא שימוש בקלאס ה-RegExp האיטי והכבד (ראו גראף - JS מהירה פי 12.5!). * VBS מתייחסת באופן שונה להשמה של אובייקטים והשמה של משתנים רגילים, JS מתייחסת אליהם שווה בשווה. * מכיוון שרוב האנשים משתמשים ב-JS גם בצד הלקוח, הרבה יותר קל להשתמש באותה השפה גם בצד השרת, זה גם נותן את היתרון של שימוש חוזר בקוד. * אין אפשרות לרשת מקלאסים. ואלה רק חלק מהיתרונות ש-JS מציעה בהשוואה למגבלות ש-VBS מציעה. אין ספק ש-JS עולה על VBS מבחינה טכנית ומבחינת ביצועים, המשתנה היחיד שנשאר הוא הניסיון (או חוסר הניסיון) של המתכנת. מתכנתים חסרי ניסיון (או בעלי ניסיון ב-VB) יעדיפו את VBS מכיוון שהיא נראית יותר כמו אנגלית ופחות כמו שפת תכנות. לכן הם יראו אותה כאופציה הקלה ביותר להגיע לתוצאות. אפילו שהתוצאות יהיו הרבה יותר טובות בשימוש ב-JS. בקיצור, כל מי שרוצה להתפתח הלאה (זה יעזור כשיתחילו לעבור ל-NET.) מ-VBS מוזמן לקחת ספר או מדריך טוב, ולהתחיל להבין את היופי של JS.
 

זהר פלד

New member
אבל....

פה בדיוק נופלת הבעיה... איפה אפשר למצוא ספר או מדריך טוב? (אני יודע, כבר אמרת שאתה לא מכיר, אבל אולי מישהו אחר?)
 

dagon

New member
אממ..

המדריך ל-OOP שמרקו הביא, למשל, היה לא רע בכלל.. אני בטוח שאפשר למצוא עוד כאלה דרך חיפוש מושכל בגוגל. מבחינה רשמית, יש הרבה יותר חומר וספרים על JS מאשר חומר על VBS.. הבעיה היא לעשות פילטר לחומר הטועה והמטעה. ואתה יודע, אתה יכול לקפוץ ישר למים עם ה-reference, ולשאול שאלות כשאתה נתקל בבעיה או סתם "איך אפשר לעשות את זה בצורה טובה יותר".
 

roee

New member
ופה בדיוק הבעייה דגון!

יש מי שלא יודע מהו החומר המטעה והמוטעה ואז יצא שכרו בהפסדו.... [למרות שתמיד אפשר לשאול]
 

neatsun

New member
טוב, זו הקללה שטמונה

בברכה שקוראים לה אינטרנט. יש כל כך הרבה מידע, והבעייה היא לסנן ולדעת במה לבחור, ומה לזרוק לפח. זה בטח לא קשור רק ל jscript. ראיתי הרבה חומר על vbscript, על ASP, על מה לא.. שהיה מטעה יותר ממסייע. עדיין, לדעתי, העודף והשפע במידע עדיף על חוסר! הבסיס, בכל אופן, הוא ה reference שמספק מידע עובדתי, ואליו אפשר להתייחס כ "אמת" (למרות שגם הוא לא נקי מטעויות..) אני חושבת גם, שככל שמתקדמים, מפתחים יכולת שיפוט ובקורת לגבי טיב המידע המוצע. (זה אמור היה לעודד...אני מקווה שזה מה שזה באמת עושה :)
 

dagon

New member
חומר טועה ומטעה..

יש על כל דבר ודבר לצערינו, לא רק על JS. החוכמה היא לזהות את רמת הסבירות של החומר.. אם תיקח את ה-reference של MS, או תקרא מאמרים בעניין ב-MSDN _סביר_ שתמצא פחות חומר מטעה מאשר בסתם מאמר באתר נטוש. קשה מאוד לטעות כשעובדים ישירות עם ה-reference, יש שם עובדות מוצקות, הבעיה היא שאין שם דוגמאות מתקדמות או best practices (שלא לדבר על תכונות שהן undocumented). אבל על דברים כאלה באמת אפשר לשאול בפורום..
 

philips

New member
דיון מעניין!!!

הממ...נהניתי עמוקות לקרוא את דבריהם של דגון וניצן וגם של נחום.. אוסיף רק משהו קטן לגבי COM PLUS... אומנם נושא ה POOLING ונושאים אחרים מיושמים ברמת ה OLDEDB או ODBC ולכן ניתן בשקט לעבוד ישירות מול ADO בלי לשחק עם COM+... אבל חלק מיתרונותיו של COM+ הם בשכבה הלוגית - BUSSINESS LOGIC... (שהיא חלק בסיסי מכל אפליקציית NTIER) שם ניתן ליצור רכיב COM מדומה שיחלוק בנטל ביצוע פעולות לוגיות מורכבות..ואילו כל נושא ה DATABASE כבר סודר בשבילך
אגב....כחסיד SUN ו JAVA...הייתי מציע לכל מי ששוקל פיתוח ENTERPRISE APPLICATION ..... להתעניין/לקרוא ללמוד את נושא ה JAVA2 ENTERPRISE EDITION.. כשם ש JSCRIPT יכולה ללמד את VBS כמה שיעורים בעבודה יעילה ומהירה יכולה גם ה J2EE ללמד את ה WIN DNA ,מספר שיעורים באותם הנושאים ובעיקר בנושא הגמישות.... אומנם סטיתי קצת מהנושא, ולכן אחזור על דברי מההתחלה... ישר כוח לדיונים עניינים כדוגמת זה!!
 

dagon

New member
טיפה על J2EE ו-NET.

אוקיי, טיפה לפני זה, לגבי ה-business tier, דבר זה ניתן לביצוע גם ב-script בעזרת חילוק הקוד לקלאסים של data, logic ו-presentation, אין כאן _חובה_ להשתמש ב-COM, והוא אפילו מכביד בצורה מסויימת. כפי שכבר אמרתי (ו-MSDN מאחורי
), הביצועים יהיו טובים יותר משל +COM ברוב המקרים. כמה נקודות על JSP: - מה Sun חושבים על הטכנולוגיה שלהם. - איך ASP.NET משתווה ל-best practices של JSP. - מה חושבים מומחי השוק. אני חושב ש-Java באמת שפה יפה, אני חושב ש-Sun עשו המון טעויות שיווקיות ועסקיות איתה ואני חושב שהיא לא תחזיק מעמד מול NET. שלמדה מהמגבלות והטעויות של Java ופתחה את הדרך הלאה. גם אני מחבב דיונים כדוגמת אלה, חבל שהם קורים לעיתים רחוקות כל כך
.
 

philips

New member
המממ...

סחטיין על התגובה המהירה והשליפה ממאגר ה LINK....חשבתי שרק אני נוהג לעשות דברים כאלו... ככלל אני מסכים....לגבי טענותייך ולגבי המאמרים...אבל התעלמת מ-2 קונספטים חשובים: 1. תאימות J2EE לחברות/פלטפורמות אחרות , נושא שלא ברור איך .NET תנהג איתו... - גמישות גדולה מאוד... 2. יכולותיה של JAVA בכלל לשרוד , הן לדעתי טובות מאוד... ובהתאם לכך גם יכולותיה של J2EE.... ועובדה שכוחה רק עולה... בנוסף גם אציין את המקרה המעניין שפעם היית צריך להסב את התוכניות שלך /ידיעת השפות שלך בהתאם לחליל של MICROSOFT.... ואילו היום הם מגמישים את עצמם בשבילך....ראה ערך J#...... כולי תקווה שהמגמה הזו שלהם לא תגנוב יותר מדי מתכנתים משוק ה JAVA...
 

philips

New member
ואגב...

אני תמיד מעדיף מחקרים של גופים בלתי תלויים לגבי ההבדלים (אם תשים לב מי חתום על חלק מהמאמרים ששלחת....) ברור שבאתר בחסות/של מיקרוסופט יפורסמו מאמרים כאלו...
 

dagon

New member
קונספציות..

1. MS כבר הודיעו על גירסת NET. שתשוחרר לפלטפורמת BSDI, וסביר מאוד תהיה יכולה לרוץ בקלות גם על FreeBSD, NetBSD ו-OpenBSD. אבל זו רק הקצפת, לא הדובדבן. אנשי ה-Linux גם הם מאמצים את NET., יש שני פרוייקטים מרכזיים שעובדים על Open source .NET ל-Linux שכמובן יתורגמו לכל פלטפורמה אפשרית אחרי שיעבדו.. ראה את Mono למשל, הפרוייקט המרכזי יותר שמתבסס בחלקו על ה-API של Gnome. אז כמו שאפשר לראות, NET. הולכת להיות תואמת וגמישה ביותר. 2. זה דווקא דבר טוב (אפילו שמבט קצר ב-#J טיפה מאכזב), אני אישית מעדיף ללכת עם #C. אבל כל היופי של NET. הוא שאתה הולך עם השפה שנוחה לך, לא לחברה המפתחת.. ועם Java אין יותר מדי ברירות
. 3. אכן ה-pet shop פורסם ע"י מייקרוסופט, _אבל_ הקוד במלואו מסופק לך, אף אחד לא מצפה ממך להאמין למילה שלהם, קח את הקוד ותעבור עליו בעצמך.
 

philips

New member
המממ

המממ...נכון...אבל.. להזכירך - התאמת J2EE לכל פלטפורמה ויצרן לא הייתה בין ליל... לוקח המון זמן לבצע דברים כאלו ול J2EE יש פור די גדול.. במיוחד ש NET רק בחיתוליה... רק לשם הבהרה...אין לי שום דבר נגד .NET ואפילו הרבה בעד.. אני טוען כבר במשך 4 שנים שנמאס מ MFC ושטויותיו וצריך להתקדם לשפות כמו JAVA או C#... אומנם .NET נוחה בכך שאתה יכול לפתח במה שבא לך וזה ירוץ בכל מצב.. אך גם ישנם פרוייקטים בפיתוח (כמו אלו של .NET) המאפשרים הסבה אוטומטית של ACCESS ל JAVA או VISUAL BASIC או C... או כל דבר אחר... C# ו JAVA הן דומות למדי..... ואני אוהב את שתיהן.. השורה התחתונה היא לדעתי שמה שלא יהיה , שני הצדדים ישתפרו ובסופו של דבר מי שירוויח מכל הסיפור יהיו המתכנתים....--> והמשתמשים..
 
למעלה