המלצה - לימוד Java בהנאה

  • פותח הנושא ID3D
  • פורסם בתאריך

ID3D

New member
המלצה - לימוד Java בהנאה

שלום לכולם, בגלל שאין פה פורום ג'אווה הבנתי שזה המקום הכי מתאים לפרסם את מה שמצאתי היום. חיפשתי קצת חומר בנושא אינטיליגנציה מלאכותית (לנאום בשיעור אנגלית שלי מחר...) ומצאתי דבר פשוט מגניב. קוראים לזה Robocode וזה פרוייקט של IBM ו AlphaWorks (או שאלפאוורקס היא מחלקה של IBM, לא חשוב) שמטרתו לגרום לאנשים ללמוד ג'אווה ברמה בסיסית ומעלה תוך כדי שהם נהנים. מיד אחרי שמורידים תוכנת ממשק קטנה ועוברים על כמה דפים באתר, אפשר להתחיל לתכנת לך רובוט בשפת ג'אווה שיחסל את הרובוטים האחרים בזירה. אפשר גם לתכנת כמה רובוטים, לראות מי מהם ינצח ואז להעלות את הרובוט לאתר של המשחק ולהשתתף בתחרויות שנערכות בו מדי פעם. הרובוט הוא טנק פשוט שיכול לזוז, לסובב את הקנה, למצוא מטרות בעזרת הראדאר ולירות. באתר כתוב שהם מתכננים שיפורים שיעשו את המשחק יותר כיפי. אז אם אתם חובבי אינטילגניצה מלאכותית, יודעים ג'אווה או רוצים ללמוד ויש לכם זמן פנוי, הייתי מציע לכם לנסות את המשחק באתר הבא: http://robocode.alphaworks.ibm.com בחינם, בלי הרשמה, בלי שטויות, רק לומדים קצת ג'אווה ונהנים.
 

DNile

New member
אחחח, משרות סטודנטים..

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

ilankt

New member
חחח אני בטוח שהוא לא עושה את זה כדי

לקבל כסף... למה אתה כ"כ אנטי?
 

neko

New member
../images/Emo127.gif אכן, אני מכיר את הROBOCODE,

וזה דבר חמוד ביותר.
 

neko

New member
למה, דווקא שפה מאד מתאימה:

OBJECT ORIENTED ועדיין יחסית פשוטה.
 

neko

New member
למה להשמיץ ככה סתם?

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

אלדד28

New member
אני אומר עובדות יבשות.

בכל שפה שמסתירה מהמשתמש מנגנונים מטורפים כמו GC ו-JITC, לתוכניתן אין שליטה. אין שום קשר ל-LOW LEVEL.
 

neko

New member
הממ... למה אתה צריך שליטה בGC

כשאתה כותב תו"ל לחימה לרובוט-טנק? JITC זה ה-Just in time compiler, שזה בעצם סוג של אינטרפטר (לא בטוח, לא זוכר...), לא? אתה, כנראה, עובד עם דברים שדורשים שליטה. רוב התוכניתנים היום לא... (זאת הדרך היחידה להבין את ההסתייגות שלך מהשפה הנפלאה הזאת).
 
לפני שזה נהיה מכוער

אני חייב ללהדגיש את העובדה שיש דברים שעבורם JAVA טובה, ויש דברים שעבורם שפות אחרות טובות. יכול להיות שאם מחפשים שליטה, היא תימצא בשפה אחרת, וכו' - זה מאוד תלוי בהקשר. בכל מקרה, אובייקטיבית, זה לא נכון ש*רוב* התוכניתנים לא צריכים שליטה. עדיין C/C++ הן השפות הפופולריות ביותר.
 

neko

New member
אני מסכים, ואני גם מכיר את העבר

של אלדד28\27\26 ... לגבי JAVA. אני פשוט מנסה להעביר לו את המסר שהנסיון שלו, כנראה עם תכנות מערכות שבהן היעילות והגישה ל-LOW LEVEL קריטיים, לא מייצג אפילו את רוב עולם התוכנה כיום...
 

אלדד28

New member
אתה בטוח שאתה מכיר אותי?

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

yaishb

New member
J2EE מכיר?

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

voguemaster

New member
זה סוחב וחצי

וכבר ראיתי מערכות מסוימות שמשתמשות בג'אווה ורצות היטב!
 

אלדד28

New member
תראה,

העניין הוא פשוט מאוד. זה לא שיש לי משהו נגד שפות כמו JAVA, זו פשוט עובדה מציאותית פשוטה. נכון, אם אתה כותב צעצוע, זה לא ממש חשוב. הייתי משתמש ב-JAVA כשפה לימודית, או כשפה להרמת PROTOTYPE חביב שמראה את כוונת המשורר. יש לי נסיון רע מאוד עם JAVA בפרוייקטים מציאותיים, מהמון בחינות. היא גם איטית, היא גם כבדה מאוד (מבחינת מקום שהפלט שלה תופס), ובנוסף לזה היא פועלת בצורה מאוד, מאוד לא דטרמיניסטית. עכשיו, אני אפתח קצת את העניין, ובזאת אפרוש מהדיון הזה כי הוא ממצה את עצמו עבורי. 1. השפה הזו היא איטית. זה לא משנה כמה אנשים יצוצו פה פתאום ויזרקו כל מיני מבחני benchmark מטופשים. עוד בגן לימדו אותנו ששפת תכנות, ככל שהיא יותר עילית, כך כל פקודה בה מתורגמת ליותר דברים. זה טרייד-אוף פשוט של זמן תמורת פשטות הקוד. 2. השפה הזו היא כבדה. טוב, את זה אני לא אטרח להסביר. כל מי שניסה לקמפל פעם קובץ JAVA לקובץ CLASS יודע כמה זה שוקל, שלא לדבר על זה שצריך JVM. 3. השפה מפקיעה שליטה. ולא, אני לא מדבר על גישה LOW LEVEL. לא כל תוכנה צריכה LOW LEVEL. אני מדבר על משהו הרבה יותר בסיסי. רוב התוכנות לא יכולות להרשות לעצמן להיעלם מדי פעם מהעולם, לפרוש הצידה ולנקות זבל. זה פשוט לא מקובל. אם הייתה לתוכניתן איזושהי שליטה מושלמת ב-GC, זה עוד היה איכשהו מתקבל על הדעת. אבל כשאין לך שום שליטה - לא בגודל של הזבל, לא בכמות שלו, לא בסוג שלו, לא בזמן שהוא מתנקה - זו לא תוכנה שמתנהגת בצורה קונסיסטנטית. זה תוכנה שבה RACE CONDITIONS יהיו עוד יותר קשים לדיבוג ממה שהם בדרך כלל. עכשיו, הסתייגות: רוב מערכות ההפעלה אינן RT. ברוב המקרים, אין דטרמיניזם במה שקורה בכל מקרה. העניין הוא שיש רמות של נונדטרמיניזם. ב-C הדטרמיניזם הרבה, הרבה יותר גבוה מאשר ב-JAVA, ולו מהסיבה שהשפה עצמה לא מוסיפה לך במאומה לחוסר השליטה. הדבר היחיד שמפריע הוא מערכת ההפעלה - וזה משהו נשלט. אם זה לא מוצא חן בעיניך, אתה פשוט מחליף מ"ה. כמו שאינגו אמר, רוב התוכניתנים בהחלט רוצים ונדרשים לשלוט בתוכנה שלהם. לא סתם אין שום נהירה המונית לשפה הנפלאה הזו. ואני מסכים, היא באמת שפה נפלאה. בעיקר בגלל שהיא נכתבה על ידי גוף אחד ויחיד בצורה מסודרת, בניגוד ל-++C/C שהיא שפה שהתפתחה לה אט אט.
 

zeevb

New member
סליחה ?

איטיות - כבר מזמן לא. חוסר שליטה - מה חסר לך? פוינטרים? זה באמת מביא לחוסר שליטה...
 

אלדד28

New member
סלחתי.

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