רשומהלך תִלמד JavaScript

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

לך תלמד JavaScript.

נכון פתוח לך עכשיו חלון של ג'ימייל? באיזה שפה אתה חושב שזה כתוב? ב JavaScript (פלוס CSS)

כשאומרים AJAX למה מתכוונים? נכון, ל JavaScript.

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

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

לקריאה נוספת: Steve Yegge (עכשיו בגוגל)

JavaScript is probably the most important language in the world today.


פורסם ב 22 באוקטובר 2006 19:46 במדור טכנולוגיה תגובות נעולות

התגובות מתפרסמות על דעת ובאחריות כותביהן בלבד.

ליאור הנר  [אתר]  בתאריך 10/22/2006 9:00:10 PM

שילמד PHP

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

מוסיף  [אתר]  בתאריך 10/22/2006 9:17:33 PM

אפרופו PHP

הבטחתי למצוא מישהו/מישהי לחצי משרה בתחום באוניברסיטת תל-אביב.

המייל שלי פתוח למעוניינים.

שחר  [אתר]  בתאריך 10/22/2006 9:20:18 PM

בוא נסביר כמה דברים...

העיצוב והGUI של GMAIL מבוסס על גישת פיתוח העונה לשם AJAX ומטרתה לאפשר ניווט באתרים ללא callback.
הדבר מבוצע באמצעות 2 דברים:
1. שפת צד"ש (החלק העיקרי). זה יכול להיות החל מCGI וכלה בדוט.נט, פסגת טכנולוגיית הפיתוח.
2. JavaScript, כמו שאמרת, באמצעות אובייקט שנקרא XmlHttp. רוצה לדעת מה השם המלא? Microsoft.XMLHTTP - ולמה זה השם, תשאל? כן, מיקרוסופט הייתה הראשונה שפיתחה את האובייקט שמאפשר לממש AJAX. בהמשך, נוצרו עוד מספר גרסאות, אבל כמעט ולא משתמשים במשהו אחר חוץ מהרכיב של מיקרוסופט.

הפלטפורמה שמאפשרת את המימוש המוצלח ביותר של יכולות AJAX כיום, היא Microsoft AJAX Library, שעובדת עם JS ועם .NET.

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

שחר.

שחר  [אתר]  בתאריך 10/22/2006 9:22:01 PM

ובלי קשר...

עצוב שאדם שסיים תואר ראשון בפילוסופיה, נאלץ לעבור הכשרה מקצועית נפרדת, במקצוע אחר, בשביל שיוכל להתפרנס ואין לו אפשרות ראוייה להתפרנס מהלימודים שלו.

דור  בתאריך 10/22/2006 9:48:28 PM

עוד כמה הסברים

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

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

חנן - עם שאר הדברים ששחר אמר אני מסכים לחלוטין. בחברה "גדולה ומשעממת" מפתחים גם בדוט.נט, גם בג'אווה, גם ב++C וגם בjavascript. ככה זה.
כל החברות ה"מגניבות" להגדרתך עובדות עם משהו מאחורה, בין אם מדובר בדוט.נט, בג'אווה, php, ruby או השד יודע מה. גוגל בעצמם שחררו לפני מספר חודשים ערכת פיתוח ל AJAX בג'אווה (מפתחים בג'אווה, מקבלים קוד javascript להרצה בלקוח).
אני לא מאמין שקיים "תוכניתן javascript" אמיתי. אין דבר כזה. תיכנות לצד לקוח לא שווה כמעט כלום בלי צד השרת, וממשקים יפים נקראים כך מסיבה טובה - הם ממשקים לדבר האמיתי.

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

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

שחר  [אתר]  בתאריך 10/22/2006 10:00:26 PM

.NET vs. J2EE

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

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

דור  בתאריך 10/22/2006 10:46:00 PM

אשמח אם תבאר

היכן לדעתך "שיטת העבודה שונה, הרעיון שונה, הרמה הטכנולוגית שונה".
אני בכלל לא מדבר כאן על לטובת מי, כי זה לא העניין. בד"כ זה לטובת מי שהגירסה המעודכנת ביותר שלו חדשה יותר.

שתיהן מתבססות על שפות דמויות ++C, המנסות לפשט את הבעייתיות שלה ולעשות חיים כלים לתוכניתן. שתיהן עובדות על VM וניהול זכרון אוטומטי. שתיהן ביטלו את הקונספט של פוינטרים. התחביר של #C וג'אווה שונה רק במקרים ספורים מאוד (is במקום instanceof, או base במקום super). שתיהן מספקות פלטפורמה נוחה לפיתוח מבוסס ווב (JSP ו- ASP.NET) שמאפשרות שילוב של שפות על אמיתיות באוריינטציה של דפי html (בניגוד ל asp ו php שבנויות על שפות סקריפטינג). לשתיהן מנגנון reflection. שתיהן פונות חזק לתחום ה enterprise. ויש כמובן עוד הרבה נקודות דמיון אחרות שקצרה היריעה מלהכילן.

כמובן שיש גם הבדלים. דוט נט עבדה מלכתחילה על מספר שפות המקומפלות לקוד ביניים אחד, בעוד ג'אווה לא שם (וספק אם תהיה בעתיד). ג'אווה חזקה מאוד בקרוס-פלטפורמיות (ראה http://en.wikipedia.org/wiki/List_of_Java_virtual_machines, ובל נשכח את התמיכה הרחבה מאוד ב JME), בעוד דוט נט עדיין לא שם וספק אם הם רוצים להיות. וכמובן שיש עוד הבדלים, חלק מהותיים קצת יותר או קצת פחות, אבל לדעתי לא מדויק להכריז ששיטת העבודה והרעיון שונים, שכן הם מאוד דומים, במיוחד בהתחשב לשאר טכנולוגיות המחשוב היום.

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

יוחאי עילם  [אתר]  בתאריך 10/23/2006 9:55:45 AM

כמה הערות מהנסיון שלי

אני קצת חוזר על דברי האחרים...

- javascript זה אחלה, אבל כאמור זה רק בצד ה client . אי אפשר להפרנס רק מידיעת javascript. חובה לדעת לפתח גם בשפה שהיא בצד ה server כמו php , asp.net ורבות וטובות .

אני עצמי מפתח .net שלא מכיר את j2ee ככה שאני לא יודע מה יותר טוב.

לגבי Ajax , צד ה client הוא javascript אבל צד
השרת יכול להיות כל דבר. אני אישית מצאתי את ספריית ה ajax.net של בחור גרמני בשם שוורץ לנוחה ביותר לעבודה. יכול להיות שספריות בשפות אחרות יותר או פחות נוחות. לא יודע.

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

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

צאלה כץ  [אתר]  בתאריך 10/23/2006 11:30:00 AM

גם לתוכניתני ג'אווה יש ביקוש עצום כעת

אך האמת הקשה והחותכת היא שלרוב הטכנולוגיה מהווה רק חלק קטן מעבודת התוכניתן, נניח 20%. בסופו של דבר, רובה המכריע של העבודה יהיה בשפת תכנות בת הדור השלישי. נראה לי שמי שמתחיל היום, מוטב שיתחיל ב-C# או ב-JAVA ולא ב-PHP.

שחר  [אתר]  בתאריך 10/23/2006 11:50:52 AM

הפרדה שגוייה בין טכנולוגיה לשפה

C# היא שפה שמאפשרת לממש את טכנולוגיית הדוט.נט. אי אפשר להפריד בינהם.

הידיד  [אתר]  בתאריך 10/23/2006 2:18:41 PM

באמת שלא התכוונתי....

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

התגובות שבעיקר היו מעניינות היו של:

שחר:
"נ.ב. יכול להיות שזה יפתיע אותך, אבל רוב
זמן הפיתוח מושקע בלוגיקה של צד-שרת"

דור:
"לדעתי, העצה הנכונה לחברך צריכה להיות
"תלמד לתכנת""

יוחאי עילם (שתי תובנות):
"avascript זה אחלה, אבל כאמור זה רק בצד ה client . אי אפשר להפרנס רק מידיעת javascript. חובה לדעת לפתח גם בשפה שהיא בצד ה server כמו php , asp.net ורבות וטובות"
ו-"הדרך היותר קלה להשתלב בהייטק היא דווקא דרך משרת QA"

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

קשה לבחור, קשה.
נראה לי שאאלץ להכריע בין "תלמד תכנות" לבין "QA היא הדרך הקלה ביותר להשתלב בענף".

חנן, תודה שהעלתה את הנושא לדיון.

נהיה בקשר,
איתי

צאלה כץ  [אתר]  בתאריך 10/23/2006 3:40:50 PM

שחר

כשתצטרך לגרום לפתרון מבוסס .NET לרוץ על שרת שאינו חלונות (כלומר לתרגם אותו לג'אווה/EE), תגלה שיש הבדל גדול בין שפת #C למסגרת הפיתוח .NET :)

שחר  [אתר]  בתאריך 10/23/2006 3:54:57 PM

צאלה

לצערי, נאלצתי לעשות את זה. זה היה כרוך במאבק, אבל בסוף התאפשר.
C# ודוט.נט אינן מופרדות, ולא משנה כל ה"מסביב". קוד C#, קוד VB.NET, קוד J#, קוד Cobol.net - כולם מתקמפלים בסופו של דבר לMSIL, שפת ביניים משותפת לכל הדוט.נט ואם הם תוכננו ונכתבו בצורה זהה, על אף שהסיטנקס שונה, עדיין, הMSIL יהיה שווה.
כל השפות הללו קשורות לדוט.נט, כל הקוד של השפות הללו יורץ עם רכיבי הריצה של דוט.נט.

לידיד, בד"כ באמת לומדים JavaScript ביחד. אם תלמד דוט.נט (נניח, קח קורס לMCPD או MCTS) בסופו של דבר, אני מניח שייצא לך לעבוד עם AJAX באמצעות MS Ajax Library ואז באמת תכיר גם את JavaScript יותר לעומק, גם במהלך העבודה הרצופה עם ASP.NET.

מצד שני... מי אמר שאתה רוצה להתעסק ב WEB? אתה לא אמרת, חנן לא אמר... אז אולי תשקול ללמוד על Win Application, Mobile Applications וכו', וכל זה קיים במסגרת דוט.נט.
אני אעשה קצת פרסום עצמי... הנה אתר שלי:
www.devarea.be בנושא דוט.נט. הנה כמה מדריכים:
http://www.devarea.be/Front/NewsNet/reports.asp?reportId=138370
http://www.devarea.be/Front/Newsnet/reports.asp?reportId=138859
http://www.devarea.be/Front/Ne....t/sections.asp?sectionId=49419
http://www.devarea.be/Front/Ne....t/sections.asp?sectionId=51282
http://www.devarea.be/Front/Newsnet/reports.asp?reportId=147234

תהנה.

שי  בתאריך 10/23/2006 4:46:07 PM

צאלה

בשביל זה יש את מונו
http://www.mono-project.com/

שי  בתאריך 10/23/2006 5:01:15 PM

ועוד משהו על שפות תכנות

במבט מלמעלה, אפשר לחלק את שפות התכנות לשתי מחנות: הפרוצדורליות, והפונקציונליות.

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

לא פעם אני חושב שאין משמעות אם למתכנת יש נסיון דווקא ב-C או ב-Java. מתכנתת טובה תוכל ללמוד שפה חדשה בכמה שעות, ואחרי שבוע כבר תדע להזהר מרוב הפחים.

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

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

שחר  [אתר]  בתאריך 10/23/2006 5:02:02 PM

לא נשלח משום מה...

מונו מוגבל.
הוא עכשיו בסדר יחסית עם גרסא 1.1. על הפנים עם גרסא 2. עכשיו, יוצאת גרסא 3. לא רואה איך הוא מתמודד איתה בצורה טובה.

שחר  [אתר]  בתאריך 10/23/2006 5:07:01 PM

שי

אתה דיברת על פרוצדורליות ופונקציונאליות. לא ממש הבנתי את ההבדלה שאתה עושה.
דוט.נט, וגם JAVA בעיקרה, הם Object Oriented מה שאומר, שהמערכת (בתכנון נכון) תהיה יותר קלה לתחזוקה (אחד המבחנים הכי בסיסיים והכי קשים, הוא שאם אני רוצה להוסיף יכולת כלשהי, במערכת שכתובה נכון ובצורה אידיאלית - אני לא אצטרך למחוק ו/או לערוך קוד קיים רק לכתוב קוד חדש).
אפשר עוד הרבה להרחיב בנושא של OOP, להיכנס ל Design Patterns ולדיונים בנושאי ארכיטקטורה - אבל זה לא הדיון.

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

אפשר למצוא עוד רשימות בארכיון, או לחזור לראש העמוד.