#C בלבולי ביצים ? או לא.

מהתרשמותי משפת csharp , ניתן לקטלג אותה כחיכוי של java . ומשום כך java עדיפה שכן היא תומכת בהרבה טכנולוגיות על בסיס קוד פתוח. מה גם שסביבת הפיתוח שלה ( forte) חינמית,התיעוד נוח יותר,ומה שאתה לא צריך אתה לא מוריד, האתר של sun יותר מובן ונח מהאתר של microsoft. זו דעתי. האם יש מבינכם הגולשים מתכנת/ת החושב/ת אחרת? האם יש דברים ב csharp שעדיפים על java?

האם יש דברים ב csharp שעדיפים על java? הכוונה Net.

כן והרבה (בדיוק כמו שיש דברים ב Java שעדיפים על Net.). חפש באתר הלא נוח של MS ותמצא...

ההתייחסות שלך לעניין היא ילדותית ולא רצינית

סביבת פיתוח לא בוחרים רק לפי מחיר הקומפיילר, ובטח לא לפי נוחות האתר.. הדוט נט רץ על סביבת מיקרוסופט וזה בעצם אומר הכל. זה אומר תמיכה נרחבת בשרתי מיקרוסופט (NT/XP) שירותי רשת (על IIS) בסיס הנתונים SQL SERVER והעיקר: סביבה אחידה שרצה על חלונות בלי צורך במכונות וירטואליות למיניהם. הביצועים עדיפים על JAVA (הקוד מתקמפל בזמן אמת ואז רץ כקוד מכונה רגיל) ועוד ועוד. לעומת זאת JAVA מציעה סביבה כמעט בחינם והכי חשוב זה רץ על כל פלטפורמה. גם לה יש הרבה שרתים שתומכים בסביבה: Webspher, WebLogic ועוד רבים, בסיסי נתונים כמו ORACLE וסביבת J2EE באופן כללי נוחה לעבודה. הבעיה היא בעיקר בביצועים.

גישה מיקצועית/מסחרית .

מכל מה שכתבת עולה ששפת java עדיפה. אך הוספת שההבדל הוא בביצועים. לטובת מי ההבדל ואיזה הבדל,ב java הקוד מקומפל ל byetcode בעוד שב csharp הוא מקומפל ע"י jit ו exe , שתי השפות אינם מתאימות לתיכנות realtime . אז לאיזה ביצועים אתה מתכוון? ולגבי המחיר: sql server עולה כסף? visual #c עולה כסף? כדי לתכנת רכיב com זקוקים ל vs.net שגם עולה כסף? כדי לעבוד עם uml אנו זקוקים ל Visio שעולה כסף? עד עכשיו הגעתי ל 4000$ ליחיד. ב java כלי פיתוח מסחריים ניתן להשיג את כל מה שהזכרתי ב 600$. ואם נתעקש אז גם בחינם. דוגמא: שרת apache . רכיבי javabeans mysql. uml מובנה. עבודה עם xml ללא כלי חיצוני. אם הביצועים דומים למחיר יש משמעות. אלא אם כן הביצועים אינם שווים. אני לא חושב שזו גישה ילדותית .

האם יש דברים ב csharp שעדיפים על java? הכוונה Net.

כן והרבה (בדיוק כמו שיש דברים ב Java שעדיפים על Net.). חפש באתר הלא נוח של MS ותמצא...

לא הבנתי את תשובתך.

כשתיכנתו את java לא נתנו מענה לכל שפות התיכנות. הכוונה היתה לפתח שפת OO שאינה תלויה בסביבת עבודה ,ללא סירבול (הורשות מרובות מצביעים) ואלגנטית (ממשקים , אוספים,תמיכה מרובה בפרוטוקולים מובנית ) אני מתייחס לשפת cshrap כשפה ולא כחלק מ net . מי שמתכנת בשפה זו בוחר בה ביגלל מאפיינים שבואתה מידה הוא ייבחר ב java . עברתי על האתר של microsoft ולא מצאתי התייחסות לנקודה זו, אלא תמיד הם מערפלים נקודה זו בהתייחסות ל net בכללותו. השפה שהכי תושפע לדבריהם היא vb , אך לדעתי אין להתייחס אליה בתור שפת OO. כנס לאתר של sun עבור עליו, כנס אח"כ לאתר של microsoft , תראה מה יותר נוח. עוד נקודה: ה documentation של net framework הוא online , של java אינו כך. אני לא יודע מה מידת הידע שלך בתיכנות java או cshrap , אך אם אתה מתכנת בשפות אלו אתה תבין את כוונתי

גישה מיקצועית/מסחרית .

מכל מה שכתבת עולה ששפת java עדיפה. אך הוספת שההבדל הוא בביצועים. לטובת מי ההבדל ואיזה הבדל,ב java הקוד מקומפל ל byetcode בעוד שב csharp הוא מקומפל ע"י jit ו exe , שתי השפות אינם מתאימות לתיכנות realtime . אז לאיזה ביצועים אתה מתכוון? ולגבי המחיר: sql server עולה כסף? visual #c עולה כסף? כדי לתכנת רכיב com זקוקים ל vs.net שגם עולה כסף? כדי לעבוד עם uml אנו זקוקים ל Visio שעולה כסף? עד עכשיו הגעתי ל 4000$ ליחיד. ב java כלי פיתוח מסחריים ניתן להשיג את כל מה שהזכרתי ב 600$. ואם נתעקש אז גם בחינם. דוגמא: שרת apache . רכיבי javabeans mysql. uml מובנה. עבודה עם xml ללא כלי חיצוני. אם הביצועים דומים למחיר יש משמעות. אלא אם כן הביצועים אינם שווים. אני לא חושב שזו גישה ילדותית .

לפי תשובתך אני רואה שאתה דווקא מבין דבר או שניים בנושא

במו שציינתי מקודם, JAVA כסביבה היא ללא ספק זולה בהרבה. לגבי הביצועים: יש גם תוכנות שהן לא RT שדורשות ביצועים גבוהים. בחברה בה אני עובד, עשינו הסבה מפיתוח רכיבים שרצים על שרתי מיקרוסופט (COM) לשרתי JAVA. הבעיה העיקרית שנתקלנו בה, זה שכל האפליקציה רצה יותר לאט. כשמדובר ב100000 משתמשים זה משמעותי אם הזמן תגובה הוא 2 שניות או 7 שניות. גם מבחינת המתכנת יש שינויים. אם אתה רוצה לפתח תוכנת מדף לחלונות אין שום סיבה להשתמש בJAVA. כל הגישה לAPI של מערכת הפעלה היא בעייתית מאוד בJAVA. לעומת זאת תוכנות Web שיושבות על שרת, עדיף לדעתי JAVA וזאת משום שאפשר בקלות לעבור לשרת או מערכת הפעלה אחרת וכמובן המחיר.

לא הבנתי את תשובתך.

כשתיכנתו את java לא נתנו מענה לכל שפות התיכנות. הכוונה היתה לפתח שפת OO שאינה תלויה בסביבת עבודה ,ללא סירבול (הורשות מרובות מצביעים) ואלגנטית (ממשקים , אוספים,תמיכה מרובה בפרוטוקולים מובנית ) אני מתייחס לשפת cshrap כשפה ולא כחלק מ net . מי שמתכנת בשפה זו בוחר בה ביגלל מאפיינים שבואתה מידה הוא ייבחר ב java . עברתי על האתר של microsoft ולא מצאתי התייחסות לנקודה זו, אלא תמיד הם מערפלים נקודה זו בהתייחסות ל net בכללותו. השפה שהכי תושפע לדבריהם היא vb , אך לדעתי אין להתייחס אליה בתור שפת OO. כנס לאתר של sun עבור עליו, כנס אח"כ לאתר של microsoft , תראה מה יותר נוח. עוד נקודה: ה documentation של net framework הוא online , של java אינו כך. אני לא יודע מה מידת הידע שלך בתיכנות java או cshrap , אך אם אתה מתכנת בשפות אלו אתה תבין את כוונתי

אז זהו שלא ממש

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

User 32 צודק. אבל ...

1) C# היא רק סינטקסט כל היכולות שלה (Threading,GC,OO) נימצאים ב CLR שהוא הבסיס ל Net. לכן כל היכולות הם יכולות של ה CLR ולא של שפה מסוימת. אולי זה ישמע לך מבעית אבל גם VB.Net היא OO בדיוק כמו Java, כן בגלל ה CLR. 2)קוד ה IL שמופק הופך ל X86 או לקוד מכונה אחר בצורה שונה ויותר יעילה מזאת של Java. גם היכולות הפנימיות של ה CLR חזקות יותר משל JAVA. לדוגמה שירשור מחרוזות ב net. על תחנת Compaq עם מעבד אחד ו500MB זכרון עובד פי שתיים יותר מהר מאותו שרשור ב Java (שימוש ב StringBuilder) על תחנת Sun עם 4 מעבדים וטונות זכרון. זה לא קורה בגלל ש MS הם גאוני הדור אלה בגלל שבמשחק של חתול ועכבר הם האחרונים שאמרו את המילה. בכדי להפוך את הפסקה ליותר סקסית - ישנם גם שמועות מאוד מבוססות שהמעבדים החדשים של Intel יפרשו את ה IL כשפת מכונה טבעית. (הם כבר קוראים ל IL כשפת מכונה מונחת עצמים) 3) ל CLR יש יכולות חדשות אשר לא קיימות ב Java לדוגמה Attributes. תכונה זאת מאפשרת לכותב הקוד להסביר את כוונותיו לגבי הקוד ולמשתמש בקוד לקרוא את הכוונות האלו בזמן ריצה ולפעול לפיהם. עוד פעם זה בגלל שהם יצאו אחרונים ותו לא. 4) אני עובד במקום שמשתמש בשני הכלים יחד ושניהם יכולים להגיע פחות או יותר לאותם תוצאות. ההבדלים הם בדרך כלל מידת הידע והניסיון של המפתחים אבל ... בשביל לעשות את אותו דבר ההשקעה של המתכנת ב Net. הרבה יותר קטנה מה שמביא אותנו לפאן הכלכלי. אני לא יודע מאיפה המחירים שאמרת. הארגון שאני נמצא בו ואחרים שאני בקשר איתם משקיעים סכומים הרבה יותר גדולים ברשיונות לכלי פיתוח ב Java לשרתי SUN ולכלי TP Monitor או Web שונים. בקיצור השקעה רבה יותר שלא נדבר על מפתחים אשר העלויות שלהם גבוהות יותר ממפתחי Net.. וכן במצב הכלכלי של היום כל אחד נותן דין וחשבון על מה הולך הכסף, אלה אם כן הוא מוותר על משרתו מראש - ואני לא מתכוון לעשות את זה.

מסכים עם כל מילה (כמעט..)

C# זה אכן רק סינטקס של הCLR אגב, לא רק VB אלא אפילו ASP בסופו של דבר מתקמפל לאותו IL. לכן מההתחלה זה נראה לי לא רלוונטי הדיון אם C# כשפה בלבד עדיפה על JAVA לדעתי (ואחרי שעבדתי עם שתי הסביבות) הביצועים המשופרים של מיקרוסופט נובעים בעיקר מהעובדה שהקוד מתקמפל לשפת מכונה אמיתית פעם אחת בלבד (הכוונה לקטע קוד שנכנסים אליו) ומאז והלאה הוא רץ כקוד מכונה לכל דבר. JAVA לעומת זאת, עובר תמיד דרך הVM מה שבהכרח מאיט את הריצה. המחירים שמשקיעים בJAVA הם גדולים גם אצלינו (עשרות רשיונות לJBUILDER ומכונות SUN) אבל ארגון שבוחר אסטרטגית בJAVA טהור יכול לחסוך הרבה עלויות. אם ישתמשו בLINUX (חיסכון של 100 דולר למכונה) Star Office (עוד כמה מאות דולרים פחות), שרתים (טוב גם IIS בחינם אבל JAVA נותן יותר מבחר), המעבר ממערכות הפעלה שונות (החיסרון הגדול של מיקרוסופט) ועוד ועוד..

Linix - הלוואי והיה מנמר אחד בארץ שהיה מוכן רק לבדוק ... דרך אגב אתה מכיר AppDomain. יש לי קושיה קשה בנושא...

צר לי, לא מכיר את זה

תודה

עבור לעמוד
בחזרה לפורום
כרגע בפורום זה: אין משתמשים רשומים
עבור לפורום:
תיכנות
בחר
בחר