JAVA או .NET

הממ

(חח אני הולך לחטוף צעקות
), נראה שצריך להציג גם את הצד השני. קודם אני אציין שמעולם לא השתמשתי בג'אווה, ואני לא מת על מיקרוסופט. אבל בואו נודה בעובדות: מיקרוסופט היא חברה שבנתה בערך כל מוצר שלה על מוצר קיים. תו"ל העבודה שלהם הוא לקחת משהו, לחקות אותו, וכמה שזה ממש לא באופנה להגיד את זה, בדרך כלל פשוט לעשות אותו טוב יותר. הם עשו את זה עם DOS, הם עשו את זה עם Windows, וגם GC לא הם המציאו. כמה אנשים הזכירו פה ששימוש ב.NET זו חתונה קטולית ומיותרת עם מיקרוסופט. זה בהחלט נכון, אבל מצד שני, מיקרוסופט הוא לא באמת התאגיד הרשע שמטרתו בחיים זה להשקיע חלק נכבד ממשאביו בכדי לגרום למפתחים להשתמש ב.NET כדי לזרוק את הטכנולוגיה אחרי שנה ולדפוק את כולם (הם התאגיד הרשע, אבל אני בספק אם זו המטרה שלו). בוא נסתכל על שלוש השאלות שלך. מבחינת ביצועים, גם .NET וגם JAVA הם VMs, כלומר אם אתה רוצה לכתוב מערכת זמן אמת אתה לא תבחר בשתיהן. לעומת זאת, יש סיכוי שאת הגרסאות הבאות של ווינדווס למשל יבנו עם מנגנונים אינטגרליים להרצת קוד .NET (זה לא בלתי סביר תכל'ס, ומן הסתם גם אינטרס של מיקרוסופט), משהו שייתן יתרון מבחינת ביצועים ל.NET. מבחינת שוק עבודה, אי אפשר ממש לקבוע. יכול להיות באמת ש.NET תהיה טכנולוגיה כושלת שתעוף מהעולם לאחר זמן קצר, אבל אני בספק אם מיקרוסופט לא ילחמו כדי שזה לא יקרה. כיום, מתכנתי .NET נצרכים מאוד בשוק (היה על זה שרשור לפני כמה זמן). מבחינת קלות פיתוח, אני לא יודע, משום שלא השתמשתי בJAVA מעולם. אבל אם יש משהו שיותר קל לפתח בו מC#, נוכל להתחיל ללמד ילדים בגן להשתמש בו (שזה דרך אגב אחד הדברים שאני פחות אוהב בשפה, היא פשוט מנוונת). מבחינת סביבת WEB, מיקרוסופט די שמה לעצמה למטרה לעשות מהפך בעולם התוכנה ולהתחיל לגרום לפיתוח הרבה יותר מאסיבי של יישומי Web לעומת יישומים רגילים שיושבים במחשב (ו.NET כולל כלים לפיתוח מאוד קל ומהיר של Web Services וASP.NET שהם דברים חזקים מאוד) בכל מיקרה, סתם חשבתי להציג גם את הצד השני (לא שאני טוען שאני צודק בחלק או בכל מה שאמרתי, פשוט נראה היה שהדעה פה מאוד חד משמעית ואני לא בטוח שזה ככה). עכשיו אפשר להתחיל לצעוק
 

vinney

Well-known member
גם את הלוגיקה שלך אני לא מבין

פשוט תסביר לי מה טוב יותר... מה טוב יותר בDOS אל מול UNIX? מה טוב יותר בWINDOWS אל מול MacOS? מה טוב יותר בNET אל מול JAVA? מה טוב יותר בVS אל מול ECLIPSE? מה טוב יותר בIIS אל מול APACHE? מה טוב יותר בתקן סגור ולא ידוע מול תקן ANSII מבוקר? מה טוב יותר בלשלם תמלוגים על שימוש בפטנטים על דברים טריויאליים אל מול שימוש בקוד פתוח/חופשי? מה טוב יותר בלקנות אופיס ב2000 שקל ממיקרוסופט שעושה מליון דברים שלא צריך אל מול להוריד OPENOFFICE בחינם שעושה את מה שצריך וזהו?
 

voguemaster

New member
יש תשובות אבל הן נקודתיות

אין מה להשוות בין DOS ל-UNIX, נכון. יש מה להשוות בין WINDOWS לבין MACOS, מה לעשות שהמק נחלש ואין לו שום יתרון אמיתי על ה-PC יותר. יש שטוענים ש-NET טובה יותר מג'אווה. יש להם כל מיני טיעונים כאלו ואחרים ואתה יכול לשמוע את מרביתם בפורום של #C. מה ההבדל בין VS לבין ECLIPSE ? בוא נראה... VS שם אותה בכיס הקטן ? מה יותר טוב ב-IIS מול APACHE ? בוא נראה, APACHE בתור שרת WEB שם את IIS בכיס הקטן ?
. לעומת זאת IIS הוא שרת אירגוני בנוסף לכל (אפשר להתווכח עד כמה זה טוב באמת). תקן פתוח תמיד טוב יותר, אם הוא מבוקר ע"י גורם מתאים, נכון. קוד פתוח זה דבר נהדר, אבל לפעמים גם לא. אני יכול לפרט לכאן ולכאן, לא כ"כ רלוונטי. בוא נשווה את OFFICE ל-OPENOFFICE. אולי אנשים משלמים כסף בגלל ש-OPENOFFICE לא מתקרב ברמה ל-OFFICE ? החיים קשים, זה מה יש...
 

vinney

Well-known member
אנשים משלמים על OFFICE???

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

voguemaster

New member
ברור

אירגונים שעובדים איתו. אצלנו במשרד עובדים עם OO באופן קבוע, ואנחנו כולנו אנשי לינוקס. מה לעשות, זו לא אותה רמה עדיין.
 
לי יש יותר טוב../images/Emo70.gif../images/Emo9.gif../images/Emo26.gif

לי יש עותק חוקי וחינמי של MS-Office!...
 

justme5

New member
תסביר לי

איך בדיוק VS שם את ECLIPSE בכיס הקטן?.. כל מה שיש ועולה כסף ב VS יש בחינם ב ECLIPSE. ישנן תכונות שקיימות ב ECLIPSE ואולי VS ינסו לחקות אותן מתישהו (חיפוש מחלקה למשל...). בנוסף אינטגרציה עם זיליון כלים (הרצת פעם SQL-ים ל DB ישירות מה IDE? או profiling? או cvs? עבודה עם XML? ובכן, זה אפשרי
לא מדובר על התוסף ל ++C של ECLIPSE אלא על איכות פיתוח.
 
לא השוויתי כל דבר של מיקרוסופט

לכל דבר אחר. מה שאמרתי הוא שכאשר מיקרוסופט לוקחת משהו ומחקה, בדרך כלל היא עושה אותו טוב יותר מהדבר המקורי. במקרה הזה, .NET כמובן הוא חיקוי של JAVA. מבחינה כלכלית אתה צודק, הרבה פעמים עדיף באמת לקחת את הדבר הזול יותר, וOpenOffice זה אכן אחלה דבר. עם זאת, כשהתקנתי אותו אצל אמא שלי ואמרתי לה "תסתכלי איזה יופי, זה חינם" היא בכל זאת העדיפה את הOffice היקר של מיקרוסופט.
 

vinney

Well-known member
במאמר מוסגר....

אמא שלך קנתה את האופיס היקר של מייקרוסופט? כאילו, הלכה לחנות ושילמה אלפיים שקלים ? ויש לה את הדיסקים והאריזה והcertificate המקוריים? נכון שלא? אז כששניהם חינם, ברור שיעדיפו את MSOFFICE, גם אם זה תוך כדי עבירה
לגבי #C מול JAVA - אפשר להתווכח לפה ולשם, לי מספיק שקוד שכתוב בJAVA ירוץ על APACHE בUNIX, בדיוק כמו שהוא ירוץ על WINDOWS 2003, זאת בניגוד מוחלט ל#C.
 
המקרה הוא טיפה אחר

משום שהיה מדובר בעסק קטן (אם אני לא טועה 2-3 מחשבים). הייתה התלבטות אם לקנות את הOffice, אז הצעתי לנסות להתקין את הOpenOffice החינמי. בסופו של דבר הם העדיפו כן לשלם את הכמה אלפי שקלים (ככה זה עולה, לא) בשביל הOffice. מבחינה של איזה קוד ירוץ על מה, אני בהחלט מאמין שבעתיד תהיה לכל פלטפורמה .NET VM כזה משלה, וקוד דוט נטי ירוץ על כל הפלטפורמות (ודרך אגב יש הרבה שאומרים שמיקרוסופט בעצם יורה לעצמה ברגל כשהיא מאפשרת את זה). אני פשוט חושב שיותר מדי אנשים לא משתמשים בטכנולוגיות של מיקרוסופט משום שזה שלהם. להגיד "מיקרוסופט הם ארגון קפיטליסטי מרושע, וכל מוצר שלהם הוא דפוק ויש מוצרים פי אלף יותר טובים בקוד פתוח וחינמיים" זה קצת פסה. היום יותר באופנה להגיד "מיקרוסופט הם ארגון קפיטליסטי מרושע, אבל הם עושים גם דברים טובים". .NET זה אחד מהם.
 

nirtheking

New member
טוב ../images/Emo13.gif...

אני לא מאוהב במיקרוסופט אבל גם לא שונא את החברה. שתהיה בריאה וזהו. אבל באמת יש לה כלים טובים למתחילים (למקצוענים אני לא יודע - כי אני לא מקצוען
) כמו למשל האקסס - אמנם הוא מסד שולחני אבל עובד דיי יפה בוואב עבור אתרים קטנים של מתחילים או SQL SERVER שגם טוב עבור אתרים גדולים (לא משווה ל-ORACLE
) בקשר לירייה ברגל
אז זה דיי דפוק להמציא טכנולוגיה שהיא CROSS פלטפורם אבל כדי שהיא תעלה על מערכות הפעלה שהן לא ווינדואס אנשים יצטרכו לפתח את הקומפיילרים וכל הנלווה אליהם (ה-CLR, JIT...) בלי התערבות של מיקרוסופט (מה שבעצם להבנתי קורה עם פרוייקט מונו...) אתה מכיר את זה שאומרים למישהו שלא יעשה משהו והוא עושה דווקא לדעתי זה מה שקרה עם MS ו-SUN. כי כאשר SUN הוציעו את JAVA אז MS הוציאו את J#. לאחר מכן שאמרו להם "להרוג" את J# הם התחילו לפתח את .Net ואת C# כמעשה דווקא מול SUN. אני בחרתי ב-JAVA ותודה לכולם
אחד הטיעונים שהכי השפיעו עליי זה ה-VM. כרגע אין אותו VM ב.Net עבור לינוקס, מאק, סולריס ווינדואס שיריצו באופן דומה את הקוד ושיעמוד בגרסה החדשה. לעומת זאת ב-JAVA בכל גרסה חדשה יוצא JRE שמתאים לכל מערכת הפעלה. עוד אפשרות שחשבתי עליה זה הרצת היישומים באינטרנט - מלבד זאת שאפשר להשתמש ביישומוני JAVA (מה שלא קיים ב-C#) שימוש ב-JSP יהיה יותר רצוי לעבודה מול שרתי לינוקס מאשר ווינדואס (מה שהפוך לגבי .Net) ולכן עלויות לשרת איכסון יוזלו עבור האתרים שאני אבנה. לגבי שוק עבודה זה באמת בעיה כיום כי אני עדיין לא עברתי צבא (אפילו בגרות אין לי) זה רק כי התעניינתי כפרילנסר. לגבי ביצועים אז שמתי לב שזה תלוי במערכת ההפעלה כי למשל יישומי Open Office (שדוברו כאן בשרשור
) עולים/עובדים יותר מהר בלינוקס מאשר בווינדואס (לפי מה שראיתי) ואני יודע היטב ש-OO דורש התקנת JAVA עבור הפעלת אפשרויות מתקדמות וטובות
אז שוב תודה לכולם
 

demultiplexer

New member
האם אפשר בכלל להתחיל ללמוד c# בלי

לדעת JAVA ? כל הספרים שאני ראיתי מתבססים על ידע קודם בJAVA.
 

vinney

Well-known member
אין שום קשר

צריך ידע בסיסי או בJAVA או בC או ב++C, רק בגלל הדמיון בתחביר, עקרונית כולן מבוססות על C.
 
אני יודע C# ולא נגעתי בJAVA

C# לא שונה בכלכך הרבה מc++. פשוט לקחו את כל הAPI של ווינדווס, והפעם עשו אותו בצורה מונחית אובייקטים נכונה (בניגוד לMFC, יאכס
). כל הAPI (לפחות החלק שכבר ממומש ב.NET, וזה יחסית חלק נכבד) מחולק לך בצורה לוגית ונכונה, ברמה כזאת שאם בא לך להשתמש בSockets אבל אין לך מושג איזה קלאסים אתה צריך ואיפה הם נמצאים, יקח לך 2 דקות למצוא אותם (הממ, נראה לי שזה בNamespace שנקרא Net.. וואלה, נכון). בנוסף לקחו את כל המתודות הכלכך מגעילות האלו של הmfc שמורכבות מ10 פרמטרים ש5 מהם זה Null ובמקום זה עשו המון overloads יפים למתודות, והכל באמת עובד בצורה אינטואיטיבית בדרך כלל. הפיתוח הוא פשוט מהיר, ופשוט קל כלכך לעבוד עם דברים שאתה לא מכיר על ידי סתם משחק עם הNamespaces וחיפוש של דברים מעניינים. ובנוסף, יש הרבה טכנולוגיות חדשות שלא קיימות בAPI המקורי כמו שהוא (למשל remoting שזה כמו הdcom שהיה קיים. אני תכל'ס מעדיף sockets אבל זה רק אני ויש הרבה אנשים שאוהבים את זה
)
 

demultiplexer

New member
אז צריך לדעת C או C++

ז"א אם אני יודע JS ו ASP אני לא יכול להתחיל ללמוד c#. אני קודם צריך ללמוד C לא ?
 
כדאי שתלמד c++

משום שC# היא שפה מאוד OOPית (ובניגוד לcpp שאתה יכול לקחת דברים לאט, C# תפציץ אותך בעקרונות OOP כבר מההתחלה)
 

nirtheking

New member
עצם זה שיש לך ידע בסיסי

ומעלה ב-JS מבחינתך אתה כבר יכול להתחיל ללמוד שפות שמבוססות עליה כי בעצם זה *בערך* אותו דבר בסינטקס כי השפות המודרניות מבוססות על שפת C ו-JS גם מבוססת עליה. אתה יכול ללמוד גם C# מבלי לדעת שום שפה קודם לכן בגלל כשאתה לומד C# (או כל שפה אחרת) אתה לומד גם את היסודות שלה (שלרוב זה משותף מ-C)
 

demultiplexer

New member
צריך ללמוד קודם asp.net לא ?

ללמוד את האובייקטים ופריימוורק של asp.net ואז להתחיל c# ?
 

nirtheking

New member
הפוך.

קודם כל C# שזו אחת מהשפות ה-דוט-נטיות ואח"כ ללמוד ASP.NET
 
למעלה