אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
1
סדנאות איתן לפיתוח באינטרנט
טכניקות ושפות תיכנות
אודי הלרudi@eitan.ac.il
ד"ר אריאל פרנקariel@cs.biu.ac.il
יולי2006
http://eden.eitan.ac.il
eitan-logo-main
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
2
“A programming language islow level when its programsrequire attention to theirrelevant” (Alan J. Perlis)
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
3
3
טכניקות ושפות תיכנות
מבוא
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
4
טכניקות ושפות תיכנות-מבואמהיא שפת תיכנות?
שפה מלאכותית בעלת יכולת לשלוט ולבצע מניפולציות על מכונה
לארגן ולעבד מידע
לבצע פעולות חישוביות ואלגוריתמים.
רוב שפות התיכנות הקיימות כיום הינן בעלות אב-קדום משותףבשםAlgol
אנו לא נדון כאן בהסטוריה של שפות.אתם מזומנים לבקר ב:
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
5
טכניקות ושפות תיכנות-מבואמהיא שפת תיכנות?
שפות פורמאליות לעומת שפות טבעיות
שפות פורמליות הן אובייקט מוגדר ע"י אדם.שפות טבעיות הןאובייקט אמפירי.כלומר:הכללים של שפות פורמליות נתוניםמראש.הכללים של שפות טבעיות הם בבחינת"חוקי טבע"שאנחנומעונינים לגלות,וייתכן שלעולם לא נבינם עד הסוף.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
6
ציר התפתחות
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
7
טכניקות ושפות תיכנות-מבואאלגוריתם-הגדרה
אלגוריתם מוגדל כסדרה סופית של צעדים לפתרון בעיה.
אלגוריתם שניתן להכרעה הינו אלגוריתם שיש לו פתרון.
אלגוריתם שאין לו הכרעהאין לו פתרון.בפועל זה אומר שהבעיה חסרת פתרון.
בתיכנות אנו משתמשים באלגוריתמים.
ישנם אלגוריתמים לחיפוש,למיון,לביצוע חישובים מתמטייים(כל פעולה חישובית עומדמאחוריה אלגוריתם),כייוץ ועיבוד מידע,לביצוע החלטה(למשל האםnהוא חיובי הואשלילי?)ועוד.
בעצם כל תוכנית מחשב היא אלגוריתם המכיל סדרה של פעולות לעיבוד,ברצף מסויים,על-ידי המחשב.
ישנם סוגים רבים של אלגוריתמים
אנו שואפים לשפר,לפשט ולייעל את האלגוריתם על-מנת להגיע לזמן ביצוע קצר ככלשאפשר.
למידע נוסף ראוhttp://en.wikipedia.org/wiki/Algorithm
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
8
טכניקות ושפות תיכנות-מבואשפות סימון
ידוע גם כ-Markup Language.
שפות המשולבות כביטויים בתוך הטקסט,המגדירות כיצד טקסטיראה ויאורגן.
אלו אינן שפות תיכנות(לכן אנו קוראים להם שפות סימון כי הן מסמנותטקסט ולא קובעות סדר של פעולות חישוב לביצוע)
שייכות לשפות מפרש,קרי הדפדפן הוא המכונה הוירטואליתהמעבדת ומציגה את המידע בהתאם לסימון בטקסט
SGML (Standard Generalized Markup Language( -סוג שלmetalanguage  (שפות לוגיות ולשוניות הבאות לתאר ביטוייםאודות שפות אחרות)
XMLHTMLXHTMLהינן דוגמא לשפות שנוצרו באמצעותSGML.
ראו גםCSS (גליונות סגנון).
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
9
טכניקות ושפות תיכנות-מבואשפות תסריטים(סקריפטים)
שפות תיכנות שנועדו לקצר את זמן הפיתוח
בשונה מהמחשבה שאלו שפות"חלשות",רובן שפות עשירות מאוד שאינן נופלותמאלו של שפות דוגמת ג'אווה ו-C
השוני המהותי נעוץ בכך ששפות אלו מפורשות,קרי,הקוד נשמר במתכונתAscii(טקסט)רגילה
תוכנה המותקנת בכל מחשב/שרת(לרוב יש מפרש לכל סוג של מערכת הפעלה),היא שמריצה את הקוד בזמן אמת,שורה אחר שורה,ומבצעת את התוכנית.
שוני נוסף הוא העדר ניהול זיכרון.על מנת לחסוך בקוד,שפות אלו נותנותשליטה מסויימת ברמות ניהול הזכרון וגישה למשאבי המחשב,למפרש
יש בכך חסרון,קרי,תשלום על קיצור זמן הפיתוח בוויתור על גמישות מוחלטתוהארכת זמן הריצה.
בין השפות במשפחה:ג'אווה סקריפטPHP,פייטון,רוביPerlActionScript
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
10
טכניקות ושפות תיכנות-מבואתיכנות מונחה עצמים
OOP – Object Oriented Programming
פרדיגמה תיכנותית מקובלת מאוד,במיוחד התחזקה בשני העשורים האחרוניםעם הופעת שפותC++ו-ג'אווה.
שפות אחרות התומכות הןC++PHPמגרסה4Perlמגרסה5,פייתון ועוד.
ההבדל המשמעותי בין תיכנות מסורתי לכוון עצמים נעוץ בחלוקה למחלקות(Class)במקום פונקציות.
כל מחלקה היא מעין תוכנית בפני עצמה,המתקשרת עם מחלקות אחרות,מנהלת את המשתנים שלה,מקבלת ומחזירה ערכים.
התיכנות המסורתי(פרוצדורלי)יכול להראות כאוסף של הוראות,פונקציות,ולרוב,בתוכניות גדולות,הופך לעיסת מקרוני
התיכנות מונחה העצמים בא לעשות סדר.
הוא מובן יותר,נקי יותר,קל יותר לתחזוקה
הכי חשובקל לפתח בו מיני-תוכניות(כל אחת היא מחלקה)לשימוש חוזר(re-use)ולקצר,משמעותית בחלק מהמקרים,את זמן הפיתוח.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
11
טכניקות ושפות תיכנות-מבואתיכנות מונחה עצמים(המשך)
פרדיגמתOOהינה  מוסדרת אך כללית.
יסודותיה עוד בשפתPDP-1משנת1960ו-Smalltalkמ-1970שטבעהלראשונה את המונחOOP.
כל שפה מיישמת בצורה מעט שונה את הפרדיגמה.
חלק מהשפות דוגמתPHPו-C++אינן שפותOOאמיתיות,מהבסיס,אלא ה-OOהוא הרחבה אפשרית.
שפות דוגמת ג'אווהC# (דוטנט)ופייתון פותחו מהייסוד כ-OOאשר עומדבבסיס הרעיון והיישום.
לקריאה נוספת:
ראו קורסים ב-C++ודוט נט המסבירים בעברית את הנושא
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
12
טכניקות ושפות תיכנות-מבואDesign Patterns
Design pattenrsולקשר לקורס של איתן בנושא
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
13
טכניקות ושפות תיכנות-מבואשפות מפרש לעומת מהדר
בצורה מאוד סכמטית,נחלק את השפות ל-3סוגים:
שפות מפרשרוב שפות התסריטים הינן מפרש.
בשיטה זו השפה נשמרת כטקסט ומורצת בזמן אמת על-ידי תוכנתמפרש המותקנת על המחשב(יש גרסת מפרש לשרת ולמחשב אישי).
שפות דוגמתPHPPerl,פייטון,ג'אווה סקריפט הינן שפות מפרש.
שפות מהדרשפות אשר עוברות קומפילציה.
אלו שפותObject Code (אוObject File)שהינןintermediateקריבלתי אמצעיות.
בעת ההידור השפה מתורגמת לשפת מכונה(binary file)מוכנה לעיבודב-CPU.
שפתC\C++הינן שפות מהדר.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
14
טכניקות ושפות תיכנות-מבואשפות מפרש לעומת מהדר(המשך)
Bytecode –סוג של טכניקת הידור,המשמשת שפות דוגמת ג'אווה,דוטנט ופלאש.
המשותף להן הוא שכדי להריצן יש צורך להתקין במחשב מכונה וירטואלית(VM).
במקרה של פלאש זה התוסף בדפדפן.
לג'אווה יש את ה-JREשמגיע כתוסף להתקנה או כתוסף לדפדפן.
לדוטנטזה מגיע עם מערכת ההפעלה או כתוסף שמורידים.
VMלרוב משתמשים בטכניקתJIT (Just in time compilatipn)
כל מפתח מהדר את התוכנית ל-bytecodeאשר מכיל סט של פקודות עבור המכונההוירטואלית,במקום למעבד(CPU)של מכונה ספציפית(יוניקס,לינוקס,מעבדי אינטלשגם ביניהם יש הבדל וכולי).
לכל מכונה ספציפית יש מכונה וירטואלית להתקנה אשר מיוחדת לו והיא שמתרגמת אתה-bytecodeלשפת מכונה.
ה-bytecodeיכול להיות מהיר יותר משיטת המפרש,הכל תלוי במכונה הוירטואלית בהמשתמשים.
ניתן לתאר את המכונה ה-VMכ-CPUבנוי מתוכנה במקום משבב חומרה.
ראו:Bytecode basics Bytecode (וויקפדיה באנגלית),Byte Code Engineering Library
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
15
טכניקות ושפות תיכנות-מבואAPI
ראשי תיבות שלApplication programming interface
המשותף למערכות הפעלה,שרתי תוכנהPlayStation,אופיס,וכיו"בלכולם ישAPI
ה-APIאומר למפתחים איך לעבוד,לגשת ולתקשר למוצר תשתית,בין אם הוא חומרה ובין תוכנה.
ה-APIהוא בעצם ספריה הכוללת את רשימת הפונקציותוהמשאבים שאותו מוצר מעמיד לרשות המפתחים וכיצד להשתמשבהן.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
16
טכניקות ושפות תיכנות-מבואשפות וה-Web
במה נשתמש בבואנו לפתח יישום ברשת האינטרנט?
כפי שדנו בפרק הפתיחה לקורס,פיתוח יישומים באינטרנט מצריך בעיקר טיפולבמידע,עיבודו והצגתו
אין צורך בשליטה ברמת הביט במערכות המחשב.לשם כך יש תוכנות שרת דוגמתשרתי אינטרנט,המבצעים את האינטרקציה הזו.
שפתC/C++אינן מתאימות לפיתוח באינטרנט.
זמן פיתוח ארוך,מסובך,מיותר ויקר
נשתמש בשפות תסריטים ושפות שפותחו ביעוד לאינטרנט
דוגמתASP.NetPHP
ג'אווה– JSP\Servletsשהן גרסה של ג'אווה לפיתוח יישומים באינטרנט.
וכמובןHTML,ג'אווה סקריפט וכיו"ב לתיכנות צד הלקוח(המשתמש)
אנו כן נשתמש בשפתC/C++וג'אווה לפיתוח מערכות שרת הדורשות מהירותעיבוד גבוהות ואבטחת קוד מוגברת.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
17
טכניקות ושפות תיכנות-מבואסוגי הפצת תוכנה
קנייני(Proprietary) –תשלום על קוד ההרצה(התוכנה).הקוד,לרוב,אינו נכלל או מסופק במסגרת תנאים מגבילים
תוכנה שיתופית(Shareware) –גרסה מוגבלת בחינם(לתקופהמסויימת,בהצגת פרסומות או אפשרויות).המשך שימוש בתשלום.לרוב קוד מקור אינו מסופק.
תוכנה חופשית(Freeware) –התוכנה חופשית,אינה ניתנתלמכירה,אך הקוד מוגן ואינו ניתן לשיתוף.
קוד פתוח(Open Source) –התוכנה חופשית והקוד ניתןלשיתוף.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
18
טכניקות ושפות תיכנות-מבואקוד פתוח(ותקנים פתוחים)
בסעיף זה נסביר את מודל הקוד הפתוח
זאת בנוסף להסבר שניתן בפרק הראשון אודות הבדלים משפטיים ביןנוסחים של זכויות יוצרים.
קוד פתוח אינו תחליף או מתחרה בפיתוח של קוד סגור
יש מקום לשניהם בהתאם לחסרונות וליתרונות שמביאה כל אחת מהשיטות.
קוד פתוח הוא מודל לפיתוח ורישוי תוכנה
יש להבדיל בין קוד פתוח לתקנים פתוחים
תקנים פתוחים תורמים לאיכות ותאימות של ובין מערכות,תחרות המביאהלקוד טוב יותר,נותנים יותר אפשרויות לבחירה בין אם הקוד סגור או פתוח.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
19
טכניקות ושפות תיכנות-מבואקוד פתוחמודל פיתוח
קבוצת מתנדבים(קהילה)מרוכזת סביב מפתח מרכזי
המפתח המרכזי יכול להיות חברה,מתנדב בעצמו שכותב את מרבית הקוד,קבוצה של מתנדבים או ארגונים
הקוד זמין ומאפשר תוצרים מבוססים(Derived Works)
קרי ניתן להשתמש בקוד כדי לפתח תוכנות שונות לחלוטין על ידי מפתחיםאחרים.
גם אם הרישוי לא מאפשר תוצרים מבוססים,הרי שהוא כן יאפשר פיתוחטלאים(patch)לתיקון באגים או תוספות/הרחבות ליישום
התוכנה ניתנת בחינם
אך שירות,תמיכה,התאמה אישית ללקוחיכולים להנתן בתשלום)
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
20
טכניקות ושפות תיכנות-מבואקוד פתוחמודל רישוי
מדול הקוד הפתוח מבוסס על מודל הרישוי ונגזר ממנו
רישוי וזכויות יוצרים עדיין קיימות בקוד פתוח
זאת בשונה מתוכנה הניתנת במסגרתPDאו נחלת הכלל,אלו אינן נחשבות לקודפתוח
זכויות יוצרים הן משהו בלתי מוחשי ועצמאי מהקוד
הן שייכות ליוצר המקורי של הקוד
אין צורך בלבקש רשות להשתמש בתוכנה או לבצע בה שינויים,כלע וד עומדיםבתנאי הרישוי ומציינים את המפתח המקורי
מודל הרישוי הינו כללי ואינו ניתן נקודתית לתוכנה
הוא אוטומטי ואינו דורש חתימה או הסכם מול המפתח/מפיץ.
ישנן צורות רבות של מודל רישוי
GNU GPLLGPLMITBSD,מוזילהIBMSUN,אפאצ'יAppleועוד.
ההבדלים מהותיים ביניהן,כפי שהוסבר בסעיף זכויות יוצרים בפרק הראשון.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
21
טכניקות ושפות תיכנות-מבואקוד פתוחיתרונות
יותר עיניים,פחות באגים
רק הקוד הטוב ביותר מגיע להצלחה ובגרות בשוק תחרותי
בגלל שהעניין העיקרי הוא יוקרה,מפתחים ישחררו רק קוד איכותי,קוד לא איכותי יוחלף,מתכנתניםפחות טובים יוחלפו עם הזמן על ידי טובים יותר.
האינטרנט מאפשר חשיפה ויצירת קהילה סביב הקודמצב שגם חברות של קוד סגור מנסותלאמץ ולחכות.
פועל יוצא מהמשפט שלעילמוטיבציה.מתכנתים עובדים בצורה יעילה יותר מתוך בחירה ולא רקבגלל שמשלמים להם.
צוותים רבים יכולים לעבוד על מודולים שונים,פזורים על פני הגלובוס.
מתכנתים יכולים לפתח תוספות והרחבות לקוד באופן חופשי,מה שתורם למינוף התוכנה
אין נעילת ספק(מצב הוא המערכת תואמת למערכת הפעלה מסויימת,למשל)
שחרור גרסאות חדשות ותיקונים בזמן קצר(בטא תמידי)
גרסאות חדשות משוחררות מתי שהמתכנתים חושבים שהיא יציבה ולא מתי שאנשי השיווקחושבים שצריך לשחרר.
עלות נמוכה של רכישה(העדר רישוי שנתי,לא כולל תחזוקה ואחריות שיכולים להנתן על ידי כלאחד ולא בלעדית על ידי החברה המפתחת)
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
22
טכניקות ושפות תיכנות-מבואקוד פתוחחסרונות
מבוי סתום
פרוייקט שלא מצליח להתרומם מבחינה קהילתית
התוכניתן נוטש עקב עיסוקים אחרים
הפרוייקט מגיע לסופו בלי גרסת המשך
הערהחסרון זה יכול להפוך ליתרון בהשוואה לחברה מסחרית,כאשר הקוד פתוחוחופשי
משפטים וחוזים
בלבול בין חוזים(אחידים)שונים(חשוב מאוד לשים לב ולהבין את המשמעות של כלחוזה)
חיוב ברוב החוזים שכל תוכנה המובססת על קוד מקור שהוא פתוח,תהיה גם קוד פתוח.
אי בהירות לגבי מצב משפטי בו קוד בתוכנת קוד פתוח לקוח או מבוסס מקוד מוגן בזכויות(ראו מצבSCOויוניקס) –מי משלם למי ומי נושא באחריות?
אי בהירות לגבי מצב בו חוזה של קוד פתוח יעמוד למבחן בבית משפט
נוסחי החוזים בקוד פתוח כתובים בלשון"העם"
מספר רב של אנשים המחזיקים בזכויות על קוד פתוח,בהתאם לתרומתם וההשלכות שלכל זה בשימוש עתידי שאינו קוד פתוח
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
23
טכניקות ושפות תיכנות-מבואקוד פתוחחסרונות(המשך)
תמיכה,אחריות,תחזוקה
אין מחוייבות של אף גורם להמשך פיתוח
כנ"ל לגבי אחריות על באגים,וירוסים,ביצועים
פיצול ואי התאמה בין גרסאות
פרוייקט המתפצל למספר כיוונים עם מפתחים שונים
נוצר חוסר התאמה בין הגרסאות ותיאום בין המפתחים
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
24
טכניקות ושפות תיכנות-מבואקוד פתוחסיכום
נושא הקוד הפתוח תפס תאוצה רבה בשנים האחרונות,עם התפתחותהאינטרנט,כאמצעי יעיל וזול
יש חשיבות גדולה מאוד כיצד אתם מתעדים לפתח את התוכנה ולהפיצה וישלתת לכך משקל גדול בבואכם לקודד.
אם זאת,חשוב לשים לב למספר נקודות
מחקר ופיתוח(R&D) –קוד סגור כאמצעי ומודל להחזרת ההשקעות הרבות(פטנטים?)
השגת מימון לפיתוח ממשקיעים או התבססות על תרומות?
מודל עסקיהאם המודל של מכירת שירותים/תמיכה/אחריות יכולים לתחזק חברההמעסיקה תוכניתנים?
מהן מטרות הפרוייקט וכיצד ניתן להשיגן?באמצעות קוד פתוח או סגור?
מה הסיכוי שיהיו תורמים לקוד ולא רק כאלו שיקחו(פרוייקטי נישה בעיקר)?
בעיקר חשוב להבין את המשמעויות החוקיות והמודל העסקי.
לא תמיד יש קשר בין הרעיון לביצוע!
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
25
טכניקות ושפות תיכנות-מבואקוד פתוחלעיון נוסף
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
26
26
טכניקות ושפות תיכנות
שפות הידור
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
27
טכניקות ושפות תיכנותשפות הידורC
השפה הנפוצה ביותר בעולם לפיתוח יישומי מערכת(מערכות הפעלה,שרתים,יישומיתשתית)
פותחה בראשית שנות ה-70כהמשך לשפתB,במקור עבור יוניקס.
רבים מן השפות אחריה התבססו עליה.
השפה הינה פרוצדורלית,גמישה,ונחשבת כשפה שהחליפה את אסמבלר בכתיבת ישומימערכת עקב היותה מינימליסטית  ומופשטת.
היותהlow levelמאפשרת לה להיות קרובה למכונה ולבצע פעולות ברמת ביט ורכיבמדוייק כגון שליטה על הזכרון,אמצעי האחסנה,מעבד ועוד.
יתרונה הגדול של שפתCהוא ביכולת לצרוך משאבים נמוכים דוגמת זיכרון,במהלךהריצה והעיבוד.
לכןCמאוד נפוצה בפיתוח מערכות הפעלה משובצות למכשירים ניידים דוגמת טלפוניםסלולריים.
בנוסף,השפה ניכנה בניידות רבה וביכולת להידור על מחשבים שונים בשינויים מינורייםלקוד,מה שהפך אותה לשפה הנפוצה ביותר לכל פלטפורמה שקיימת.
ראו קורס בנושא בספריית איתן.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
28
טכניקות ושפות תיכנותשפות הידורObjective C
שילוב של שפתC (שפה מבנית)עםSmalltalk  (מונחית עצמים הדורשת מכונהוירטואלית)
בשונה מ-Smalltalk,ניתנת להידור.
ידועה גם בתורObjCאוObj-C
קומפקטית יותר מ-C++ (שתי גישות שונות להרחבת(C
פותחה ב-1982ובהמשך אומצה על-ידי אפל כשפת פיתוח מרכזית ל-Mac OSX
Objective C++היא הרחבה של אפל לכתיבת קוד משולבObjCעםC++
ראו:
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
29
טכניקות ושפות תיכנותשפות הידור++C
הוצגה לראשונה בשנת1985כהרחבה לשפתC.
שילוב של שפתCעם פרדיגמות שלOO,אך לא רק.
רוב הפונקציות שנבנות ב-Cיכולות לרוץ בלי בעיות גם במהדרים שלC++.בחלקמהמקרים קיים שוני.
השפה נהיתה הנפוצה ביותר לפיתוח יישומים בסביבת מיקרוסופט(בשונה מ-Cשנשארה נפוצה ביוניקס/לינוקס).
לשפה יש ספריות הרחבה המאפשרות לקצר זמן פיתוח.
השפה בעיקר מפותחת תוך שימוש בכלים ויזואלים(IDE)שהידוע ביניהם היאVisual Studioשל מיקרוסופט
ראו גרסה מוקטנת להורדה בחינם.
מהדרים נפוצים אחריםBorlandBloodshed Dev-C++ (בחינם),עוד...
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
30
טכניקות ושפות תיכנותדלפי
ידוע גם בתורObject PascalאוDelphi programminglanguage
גרסה מודרנית של חברת בורלנד לפסקל(Turbo Pascal)הכוללתOOP (כוון עצמים)
ההידור מתבצע לסביבת דוטנט,חלונות,לינוקס
ראו:
קורס איתן(ישן במקצת אבל נותן את הבסיס)
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
31
טכניקות ושפות תיכנותג'אווה
שפה ותשתית תיכנותית,מאוד נפוצה,שפותחה על-ידי חברת סאןבראשית שנות ה-90.
עקרונות בסיסיים:
כוונת עצמים(OO)טהורה.
מהודרת ל-bytecode.באופן עקרוני אותו קוד יכול לרוץ באמצעותJavaVirtual Machine (ה-JVMהוא חלק מJRE – Java RuntimeEnvironment)על מערכות הפעלה שונות(write once, run anywhere)
תומכת ביוניקס/לינוקס/חלונות/Mac OS,טלפונים סלולריים ומשולבים ועוד.
Garbage collectionעוקב אחר מחזור החיים של עצמים וכאשר אין להםשימוש יותר,מוחק ומפנה באופן אוטומטי מקום בזיכרון.
מתכנניה רצו לקחת את כל ה"דברים הטובים"מ-C++
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
32
טכניקות ושפות תיכנותג'אווה(המשך)
השפיעה רבות על פיתוח פלטפורמת דוטנט בידי מיקרוסופט.
3גרסאות עקריות:
Java EE לפיתוח יישומים ארגוניים.
Java SE לפיתוח ישומים לשולחן עבודה(מחשב אישי/נייד וכולי)
Java ME לפיתוח יישומים לטלפונים סלולריים/חכמים,מחשבי כף-ידוכיו"ב.
ידועות גם בתורJ2ME, J2EE, J2SE
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
33
טכניקות ושפות תיכנותג'אווה(המשך)
Java Frameworks
J2SEלשים דיאגרמה של הפריימוורק וכנל לJ2EEו-J2ME
כלי פיתוח
כלי פיתוח בקוד פתוח
JVM
JSFוטכנולוגיות נוספות של ג'אווה
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
34
טכניקות ושפות תיכנותג'אווהApplet
יישומון ג'אווה הינה תוכנית ג'אווה המהודרת לבייט-קוד.
בכל עת שהדפדפן מבקש להריץ את יישומון הג'אווה,קוד הבייט-קוד(.class)מוטען מהשרת לסביבת הדפדפן ומורץ על-ידי המכונההוירטואלית(JVM)הפנימית בדפדפן.
התגappletבשפתHTMLמשמש לקריאה ליישומון.
יישומון הג'אווה מוגבל מאוד ואין לו גישה למשאבי המחשב האישיאו למתן פקודות כלשהן לדפדפן.
גרסתJVMלדפדפנים מפגרת אחרי הגרסאות למחשב האישיבאימוץ שינויים ושיפורים בשפה.
נטסקייפ/פיירפוקס נותנים תמיכה מלאה לג'אווה.אינטרנטאקספלורר,החל מגרסה6.0 –חלש.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
35
טכניקות ושפות תיכנותג'אווהServlet and JSP
טכנולוגיה מקבילה ל-CGIו-ASP.
Java Servletהינן תוכניות ג'אווה בצד השרת.
JSP (ראשי תיבות שלJavaServer Pages)הינה הרחבהשלJava Servlet.אלו הם תגים מיוחדים ופונקציות(הנקראותScriptlets)לשילוב בקודHTML.
הטכנולוגיה כיום נפוצה מאוד בפיתוח אתרי אינטרנט.
נתמכת על-ידי כל שרתי המארג(Web)והיישומים.
ראוTomCatServlet.com.
ראו קורס בנושא מספריית איתן.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
36
טכניקות ושפות תיכנותג'אווהאתרים נבחרים וכלי פיתוח
ראו אקליפס בהמשך
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
37
טכניקות ושפות תיכנותASP.net
שם כולל לסדרה של טכנולוגיות לבניית יישומי אינטרנט.
למרות השםASP,אין קשר בינה לביןASPבמתכונתה הישנה.
חלק מפלטפורמת.Netשל מיקרוסופט.
ASP.netאינה שפה אלא מתודולוגיה.
השפות שמשתמשים בהםC# (הנפוץ ביותר), VB.net (לשעברVisual basic), Jscript.netאך גם שפות כמו פייתון ו-Perl.
מיקרוסופט ניסתה לפשט את תהליך הפיתוח תוך שימוש בפקדים(controls)וספריה עשירה של פקדים ומחלקות מוכנות.
פלטפורמת דוט נט,בדומה לג'אווה,מהדרת תוכניות ל-Bytecode(קבציDLL).
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
טכניקות ושפות תיכנותASP.net
Native Code
.NET Code
ApplicationApplication
Host (IIS)Host (IIS)
ASP.NETASP.NET
PagePage
ASP.NET RuntimeASP.NET Runtime
ASP.NETASP.NET
ServiceService
HTTPHTTP
HandlerHandler
HTTP ModuleHTTP Module
Global.asaxGlobal.asax
HTTP ModuleHTTP Module
Http Context
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
39
טכניקות ושפות תיכנותASP.net (המשך)
ראו אתרים בספריית איתן לטכנולוגיה זו:
לימודASP.net
לימוד שפתC#
לימודWinforms.net
כלי פיתוח נבחרים:
Visual Studio(קיימת גרסה מוקטנת בחינם)
SharpDevelop (חינם)
ראוSharptoolboxלכלי פיתוח ויישומים לדוטנט
ראו גם פרוייקט מונו ו-DotGnuלפיתוח דוטנט בלינוקס/יוניקסואחרים.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
40
טכניקות ושפות תיכנותASP.net (המשך)
CLR –דיאגרמה
.net platform –דיאגרמה
.net frameworks –דיאגרמה
Base class library
MFC
Windows server systems –דיאגמה
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
41
41
טכניקות ושפות תיכנות
שפות סימון
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
42
טכניקות ושפות תיכנותHTML
ראשי תיבות שלHyperText Markup Language.
שפת ייצוג(לא תכנות)של מרכיבים(טקסט,תמונהוכיו"ב)בדפי מארג(Web).
הייצוג מתבצע תוך שימוש בתגים קבועים(HTMLהינהשפה סטטית,בה שמות התגים מוגדרים בשפה).
השפה מוגבלת מאוד.
גרסתה האחרונה היא4.01 (XHTMLמחליפה אותה).
ראו קורס לימוד בספריית איתן.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
43
טכניקות ושפות תיכנותXML
ראשי תיבות שלExtensible Markup Language.
HTMLמתרכזת בהצגת מידע וכיצד הוא יראה.
XMLמתרכזת בתיאור מידע ומה הוא אותו המידע.
תגים ב-XMLאינה קבועים מראש וניתנים להגדרה בהתאם למידע.
כיוםXMLהיא התקן לאחסון מסמכים ברשת ולהעברתם בין סוגי חומרה ותוכנהשונים.
XMLמאפשרת להפריד בין תוכן לתצוגה ובכך לבנות אתרים שונים בעיצובםומותאמים לסביבות עבודה שונות,עם אותו התוכן.
על בסיסXMLניתן לפתח ופותחו מגוון עצום של שפות מוגדרות בעלות תגיםקבועים דוגמתRSSMathMLGMLRDFScormועוד.
טכנולוגיות ופרוטוקולים רבים דוגמתSOAPמשתמשים ב-XML.
ראו:קורסXMLבספריית איתןXML.com,אואזיס,מיפרטXML.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
45
טכניקות ושפות תיכנותXHTML
ראשי תיבות שלeXtensible HyperText Markup Language .
יעודה לשלב בין היכולות שלHTMLלעוצמה שלXML.
בעצם,יעודה הוא להפוך אתHTMLלשפה דינמית היכולהלהגדיר סוגי מידע כמו גם לשלוט בדרך הצגתם.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
47
טכניקות ושפות תיכנותגיליונות סיגנון(Style Sheets)
טכנולוגיה וקבוצה של שפות,הבאה להגדיר כיצדמרכיבים בדף אינטרנט יבוטאו,יתנהגו ו/או יוצגובמסך/בדפוס.
השפה הנפוצה ביותר מבין אלו שפותחו היאCSS.
שפתXSLמשלימה את שפתCSSומיועדת עבורXML.
ראו פרקים קודמים בקורס זה ללמידה נוספת.
ראו קורס בנושא מספריית איתן
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
48
טכניקות ושפות תיכנותגיליונות סיגנון(קישורים)
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
49
49
טכניקות ושפות תיכנות
שפות תסריט לצד לקוח
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
50
טכניקות ושפות תיכנותDOM
ראשי תיבות שלDocument Object Model
מרכיב בסיס בתיכנות מודרני של יישומים ואתרים מתקדמים
מתוקנן ונתמך על-ידי כל הדפדפנים המודרניים
DOMהואAPIכוון עצמים לגישה למסמכיHTMLו-XML
הדפדפן עצמו בונה את דף האינטרנט(מכלול הנתונים/תגים/אובייקטים)כעץ ומאפשרבאמצעות אותוAPI,ושפות תיכנות כג'אווה-סקריפט/Jscriptגישה פרטנית
כך ניתן להוסיף ולעדכן תוכן,להוסיף שורות לטבלה,ולעדכן את כל מבנה ה-HTMLוה-XML,באופן חיי
לפני שה-DOMאומץ,היה צורך לבנות סקריפט בשרת שיקבל את הפעולה הרצויה,יבצע אתהשינוי,ויקרא לדף מחדש.
DOMחוסך לנו זמן רב ומאפשר עדכון מרכיבים מסויימים בדף(בשילובXMLוג'אווה-סקריפט)ללא קריאה לדף מחדש,וחיכוי אופן פעולת תוכנות על מחשב אישי.
ראו
סעיףAJAXבהמשך.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
51
טכניקות ושפות תיכנותDHTML
ראשי תיבות שלDynamic HTML.
מושג המייצג שילוב של4טכנולוגיות:
HTML.
JavaScript
CSS
DOM
מתאר שילוב של טכנולוגיות בצד הדפדפן,הבאות להפוך דפיHTMLלדינמיים והידודיים.
הרחבה של המושג כוללת תכנות בצד השרת(ASPPerlPHP,מסדי נתונים וכיו"ב)כמו גם פלאש,יישומוני ג'אווה ועוד.
ראוAJAX
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
52
טכניקות ושפות תיכנותJava Scriptו-JScript
שפת תסריטים(Scripting)לצד של הלקוח(דפדפן).
אינה קשורה ל-Java !  (שתי שפות שונות בתכלית)
משתלבת בקוד ה-HTMLומאפשרת דינמיות,שליטה והצגה שלמרכיבים שונים.
פותחה על-ידיBrendan Eichעבור נטסקייפ(במקור נקראהlivescript).
Jscript,השונה במעט מג'אווה סקריפט,היא שם מסחרי שלמיקרוסופט עבור דפדפן אקספלורר התומכת ב-VB.
שתיהן מבוססות על התקן העולמי שנקראECMAScript.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
53
טכניקות ושפות תיכנותJava Scriptו-Jscript (קישורים)
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
54
טכניקות ושפות תיכנותJSON
ראשי תיבות שלJavaScript Object Notation
למרות שהיא מבוססת על התקן של ג'אווה סקריפט(ECMA 262),JSONהיא שפה בפני עצמה
שפה בעלת מבנה מפושט וקל ליישום המשמשת לחילוף/סינכרוןמידע/תוכן
אומצה לשימוש נרחב ב-AJAX/Web services
נתמכת בשפות רבות,ביניהם ג'אווה סקריפטC#,ג'אווהPHPPerl,פייטון,רובי ועוד.
אתר ביתhttp://www.json.org/
ראו גםYAML
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
55
55
טכניקות ושפות תיכנות
שפות תסריט לצד שרת
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
56
טכניקות ושפות תיכנותCGI
ראשי תיבות שלCommon Gateway Interface
פותח במקור בשנת1993במכוןNCSA.
ראו פרק ראשון"מה זה אינטרנט?"למידע אודות פרוטוקול מנשק השערהמשותף.
כיום אנו נמנעים משימוש בפרוטוקול זה(פרט לסיומתexe)וטכנולוגיותעדכניות כגוןPHP,דוטנטJSPוכיו"ב נכנסו.
Mod_perlמאפשר להריץ תוכניותplכמוPHPלמשל.
Fast CGIבא להתגבר על בעיית מהירות הריצה ועיבוד חוזר של יישוםCGI(אחת מן המגבלות החמורות של הפרוטוקול).
CGI.pm –ספריה לשפתPerl,נפוצה מאוד,המשמשת לבניית יישומי אינטרנטומספקתAPIלקלט/פלט מול שרת האינטרנט.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
57
טכניקות ושפות תיכנותISAPI
התשובה של מיקרוסופט ל-CGIולטענתה בדבר חוסר יעילותווצריכת המשאבים הניכרת שהוא דורש
צריכה זו באה לידי ביטוי באיתחול מחדש של כל יישום בכל פעם שהוא נקראלשימוש
כאשר מדובר בישומי אינטרנטפעולה זו יכולה להתרחש באופן שוטףולגרום לעומס והאטת המערכת כולה.
ISAPIמשולב בשרת האינטרנט של מיקרוסופטIIS.
מספקAPIלמפתחים לכתוב את תוכניותיהם כך שיתאימו לתקן זה.
ראוmod_isapiעבור שרת האינטרנטApache
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
58
טכניקות ושפות תיכנותSSI
ראשי תיבות שלServer-Side Include.
פקודת שרת בקוד ה-HTMLהמאפשרת שילוב דינמי של מידע.
קבציHTMLהמכילים פקודותSSIהם בעלי סיומתshtml.
שרת האינטרנט מבצע עיבוד לדף ה-HTMLומבצע את פקודות ה-SSI.
ל-SSIאוסף נרחב של הוראות המאפשרות שילוב תוכנו של קובץאחד בתוך השני(שימושי בתבניות),הרצת תסריטים ושילוב תוכנםבדף ה-HTMLועוד.
לא מומלץ לשימוש מסיבות אבטחה
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
59
טכניקות ושפות תיכנותPerl
ראשי תיבות שלPractical Extraction Report Language.
מבוססת על צירוף של מספר שפות ליוניקס,ובכללןC.
פותחה בשנות ה-80עבור מנהלי שרתים ביוניקס.
שולבו בה יכולות מאוד מתקדמות לטיפול בטקסט ויחד עם זאת,קלות שימוש וגישה לקבצים.
התאימה כמו כפפה ליד כאשר המארג(Web)התחיל.
הקבצים מורצים מספרייתCGI
קורס בנושא מספריית איתן.
כלי פיתוחKomodoOpen Perl IDE,PerlEdit
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
60
טכניקות ושפות תיכנותPHP
ראשי תיבות שלPHP Hypertext Preprocessor
שפת תסריטים(סקריפטים)המבוססת על התחביר(syntax)שלC,ג'אווה ו-Perlוקלה מאודללמידה.
משמשת בעיקר ליצירת דפיHTMLדינמיים עם קישור למסדי נתונים,בעיקר בסביבת יוניקס.
דפיHTMLהמכילים קודPHPמסתיימים ב-php.ומורצים ע"י השרת ליצירת דפיHTML.
נתמכת על-ידי כל שרתי האינטרנט הנפוצים.
ראו:
קורס בנושא מספריית איתן
PHP Editorsלמידע על כלי פיתוח.
PHP eclipseלשילובPHPבסביבת אקליפס
PEAR - PHP Extension and Application Repository
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
61
טכניקות ושפות תיכנותRubi
שפת מפרש כוונת עצמים
כל אובייקט,אפילו מחלקה,הם עצמים.רובי מסתכלת על כל העולם מבעדלמשקפייOO
בשימוש בעיקר בתחום פיתוח תוכנה בקוד פתוח
שואבת את מקורתיה מפרל,פייטון ואחרות.
פותחה באמצע שנות ה-90על-ידי היפני יושיקו"Matz"מטסומטו.
המוטו שלו היה לפתח שפה שהתיכנות בה יכוון לאנשים,המשתמשים,ולאפיתוח תוכנה מכוונת צרכי מכונה.
לטענתוהמחשב הוא העבד,ולא צריך לפתח תוכנה שתרצה אותו אלא תרצה אתהמשתמשים.
כלי פיתוחArachonoMondrianFreeRIDEKomodo
ראוRDTלשילובIDEותוסף לאקליפס
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
62
טכניקות ושפות תיכנותPython
נקראה על שם הגיבור בסדרת מונטי פייטון.
שפת תסריטים(סקריפטים)כוונת-עצמים(Object Oriented)שפותחה עוד בשנת1990.
תומכת בספריות הרחבה רבות,כוללMFC.
מיועדת לכתיבת תוכניות שירות ולעיתים כ"דבק"לחיבור בין רכיבי תוכנה לקודC\C++ .
בשל תחכומה,קלות ומהירות הפיתוח,רבים המעדיפים לפתח בה תוכניותלאינטרנט.
במובנים רבים,ג'אווה ו-C#דומות לפייטון.
ראוZopeWingwareKomodo
Jythonהוא פייטון שכתוב בג'אווה להרצה ושילוב בתשתית ג'אווה
PyDev תוסף לאקפליס(ראו בהמשך)לתמיכה בפייטון
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
63
טכניקות ושפות תיכנותASP
ראשי תיבות שלActive Server Page.
דפיHTMLהמכילים קודJscriptאוVBScriptמסתיימים ב-.aspומורצים ע"י ה-IISליצירת דפיHTML.
חלק מטכנולוגייתISAPIשל מיקרוסופט.
הוצגה לראשונה בגרסה3שלIIS.
התשובה של מיקרוסופט לשפותPHPו-JSP.
כיום נמצאת בגרסתASP.netהנותנת תמיכה לשפותC#,C++ועוד.
ראו קורס בנושא מספריית איתן
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
64
טכניקות ושפות תיכנותVB Script
ראשי תיבות שלVisual Basic SCRIPT.
שפת תסריטים(סקריפטים)מבית מיקרוסופט.
נפוצה מאוד בשימוש לפיתוח באינטרנט במסגרתASP.
שפתVBScript (כמו גםJscript)היא חלק ממשפחת הסקריפטים שלחלונות(Windows Script Host)ותומכת ב-ActiveX.
כיום בגרסתvb.net
ראו קורס בנושא מספריית איתן.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
65
טכניקות ושפות תיכנותWAP
Wireless Application Protocol
המקביל הקומפקטי לפרוטוקולHTTP,להעברת תוכן למכשירי קצה ניידים(רשתות סלולריות)
פותח במהלך1997בהקמת פורוםWAPעל-ידי מובילות השוק(נוקיה,אריקסון,מוטורולה ו-openwave).כיום חלק מ-OMA
המטרה לאפשר ריצת יישומיWebבטלפונים סלולריים בעלי זכרון קטן ומעבד חלש)
טכנולוגייתMicro Browser -הדפדפן המצוי בטלפונים סלולריים להרצתWAP\XHTML.
WAP 2.0משתמש ב-HTTPובעתיד כנראה שיעלם והאינטרנט במכשירי קצהניידים יהיה כמו בנייחים(עם התחזקות מכשירי הקצה).
שפת הפיתוח היאWML (Wireless Markup Language)
מבוססת על תקןXHTML-MP (Mobile profile -צורה בסיסית שלXHTMLלמכשירי קצה ניידים)
WMLScriptמקביל לJavaScript
תמיכה בWML CSS
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
66
טכניקות ושפות תיכנותWAP -המשך
בפרוייקטים רבים חשוב לנו לאפשר גישה ליישומים ממכשירי קצהשונים(מכשירי כף-יד להם יש מסך מוקטןWAPוכיו"ב)
IBM,אורקאל,מיקרוסופט וחברות רבות נוספות מציעות שרתים וכליםמשלימים להתאמת אתרים לגישה מסוג זה.
 
 
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
67
טכניקות ושפות תיכנותטכנולוגיותMac OS X
למרות שמחשבי מקנטוש הינם זן נדיר בישראל,בעולם הם מאוד נחשבים,ונציין כאןבקצרה את הטכנולוגיות של אפל.
שפת סקריפטים המרכזית(והיחידה)של אפל.
יחודה בשימוש בשפה טבעית(let x be 100למשל)
יעודה לתקשר ולשלוט ב/בין יישומים,רשתות,ישומי רשת(web services),מסדי נתונים ואף במערכתההפעלה.
Mac OS Xתומך במספר סביבות פיתוח/APIמרכזיות:
Cocoa -סביבת פיתוחAPIכוון עצמים עבורMax OS X
Carbon -אוסף ספריותAPIלפיתוח ואינטגרציה ב-Mac OS X
שפת הפיתוח המרכזית היאObjective C\C++
POSIX -סדרת תקנים להגדרתAPIעבור תאימות מערכות יוניקס,ש-Mac OS Xנמצא עליהן
ג'אווה
WebObjects שרת יישומי ג'אוווה לאינטרנט עם תמיכה מובנית ביישומי רשת(Web services) .
Xcodeהוא סביבת הפיתוח(IDE)של אפל(כמוVisual Studioשל מיקרוסופט)
סביבות הפיתוח השונות לאינטרנט תומכות בפייטוןPerl, PHPJSP
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
68
טכניקות ושפות תיכנותטכנולוגיותMac OS X -קישורים
Mac OS Forge (אתר המרכז את כל נושא הקוד הפתוח)
WOCode (webobject resource center)
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
69
טכניקות ושפות תיכנותActionScript
שפת תיכנות לפיתוח יישומים וסרטים באדובי פלאש(בעבר מקרומדיה פלאש).
מבוססת על תקןECMAScript 262 (עליה מבוסס ג'אווה סקריפט ודומה לה).
כלי הפיתוח הואFlash MX (flash 8)
בעזרתActionScriptניתן לבנות ולייצר סרטוני ויישומי פלאש דינמייםואינטראקטיביים מורכבים,עם התממשקות למסדי נתונים ומערכות שונות.
כבר בגרסה2של פלאש בשנת1997,נכללו פקודות לשליטה על הסרט.
אלו היו בסיסיות ורק בגרסה5של פלאש,בשנת2000,הוצגהActionScript1.0
בשונה מג'אווה סקריפטActionScriptמוכוונת יותר לסרטים מאשר לתצוגתדפדפן/מסמכים/טפסים
ActionScript 2.0כוללת תמיכה בOOP (כוון עצמים)
ביוני2006הציגה אדובי אתActionScript 3.0בגרסת פלאש9
ראו פרק מולטימדיהפלאשSWF
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
70
טכניקות ושפות תיכנותActionScript –אתרים נבחרים
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
71
71
טכניקות ושפות תיכנות
כלי פיתוח
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
72
טכניקות ושפות תיכנותכלי פיתוחEclipse
תשתית,קהילה,סביבת פיתוח(IDE)ומסגרת ניהול פיתוח תוכנה המפותחים במסגרתקוד פתוח/חופשי ע"י ארגון אקליפס
יסודו במחקר שלIBMבשנת2001ומאוחר יותר הצטרפו חברות מובילות מעולם התוכנה
במקור אקפליס יועד כסביבה לג'אווה,אך כיום יש לו תוספים רבים לשפות וטכנולוגיותרבות.
אקליפס יועד לפיתוח תוכנהrich-client (קרי יישומים מלאים לשולחן העבודה,בשונה מ-thin clientליישומים קלים לאינטרנט)
במסגרת היותו קוד פתוח,ישנן הרחבות לפיתוח יישומי אינטרנט
אקליפס נחשבת לסביבה מובילה ובעתיד מוצרים רבים של חברות תוכנה דוגמת בורלנד,יהיו מבוססים עליה.
ראו:
PDT תוסף לפיתוחPHPבסביבת אקליפס
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
73
טכניקות ושפות תיכנותכלי פיתוח– Eclipse (המשך)
תמונות של אקליפס
קורס לימוד על אקליפס?
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
74
טכניקות ושפות תיכנותכלי פיתוח– Visual Studio
תללל
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
75
טכניקות ושפות תיכנותהבטחת איכות
QA
מהלךReview
Checklist
ועוד
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
76
טכניקות ושפות תיכנות ערפול וקידוד קוד מקור
ערפול קוד(Code Obfuscation)היא אחת מהשיטות להגנה על קוד מקור
מפני העתקה והפצה על-ידי גורמים בלתי מורשים
שמירה על קניין רוחני
מניעת גילויים של נקודות תורפה בקוד וניצולם.
בחלק מהשפות דוגמת ג'אווה ודוט-נט,המטרה היא למנוע הינדוס לאחור(Reverse engineering)מה-Bytecode
מכונה בדוט-נטCommon Intermediate LanguageאוCIL/MSIL).
לשפתPHPיש מקודדים ומערפלים דוגמתZend Guardורבים אחרים.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
77
טכניקות ושפות תיכנותערפול וקידוד קוד מקור(המשך)
בתחום ישומי הווב,במיוחד קוד ג'אווה סקריפט
שילוב של קוד ג'אווה סקריפט המונע צפיה בקוד,אך שיטה זו ניתנת לעקיפה בקלותיחסית ולרוב חוסמת את צירוף המקשיםright-clickבעכבר.
עירפול קוד הג'אווה סקריפט וקוד ב-HTMLכולו בצד הלקוח
http://www.stunnix.com/prod/jo/ (נחשב למובילShareware)
http://www.jasob.com/ (מסחרי)
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
78
78
טכניקות ושפות תיכנות
מקורות מידע
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
80
טכניקות ושפות תיכנותמאגרי קודיםKrugle
קרוגל הוא מנוע חיפוששרוצה להיות גוגולכשיהיה גדול.
החידוש שלוהוא רץ עלמאגרי קוד פתוח ומאנדקסאותם
ניתן לבחור מבין למעלה מ35שפות,מה רוציםלחפש,ומקבלים את הקודהמתאים לפי פונקציות/מחלקות,מבנה עצי שלהתוכנית/פרוייקט,ניתןלהוסיף הערות ועוד.
לגוגל יש תשובה,ראוGoogle codesearch
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
82
טכניקות ושפות תיכנותקהילות מפתחים
פורומים לאופיסSQL,שרתים,אבטחה ומוצרים נוספים,עם תמיכהומענה של מיקרוסופט ישראל
לפורומים באנגלית,ראו פורטליםמרכזיים למפתחים
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
83
טכניקות ושפות תיכנותשונות
כלום
אוסף של קישורים שימושיים למפתחים
כל מיני דוגמאות במבחר שפות וישומיגוגל,כיצד לבצע ולפתור בעיות
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
84
84
טכניקות ושפות תיכנות
סיכום
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
85
טכניקות ושפות תיכנותסיכום
אנו סקרנו בפרק זה מגוון רחב של שפות תיכנות
רובן שפות לפיתוח בצד שרת(server side)
PHP,פייטון,ג'אווהC,רובי וכיו"ב
וחלקן שפות לפיתוח ותצוגה בצד לקוח(client side)
HTML,ג'אווה סקריפטCSSוכיו"ב
לא סקרנו שפות פיתוח גרפיות דוגמתSVGופלאש
SVGהינה וראיציה שלXMLוסקרנו אותה בפרק מולטימדיה.
פלאש הינה שפת גרפיקה ווקטורית עם שפת סקריפטים בשםActionScript
ActionScriptדומה מאוד ל-VBוג'אווה סקריפט
שתי הטכנולוגיות מיועדות לתצוגה בצד לקוח,אך הפיתוח והיצירה שלשתיהן יכול להעשות מתוך מסדי נתונים ותוכנות שרת המייצאות בתצורותאלו לשם תצוגה גרפית.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
86
טכניקות ושפות תיכנותסיכום(המשך)
בהמשך הסיכום נדון בהשוואה בין שפות וכיצד לבחור את השפההנכונה עבור הפרוייקט שלכם.
אנו לא נדון באיזו שפה טובה יותר עבורכם מאחר וזו שאלה לאמקצועית ולא נכונה.
ראוי לציין שישנה הרבה דיסאינפורמציה ולוחמה פסיכולוגית במהשקשור להבדלים בין שפות פיתוח
באם אתם חדשים בעולם התיכנות,תמיד טוב להתחיל משפתכוונת עצמים ושבסביבתכם יהיה מי שיעזור לכם ומכיר את אותהשפה.
תחשבו לכיוון שפות דוגמת פייטון,דוט-נט וג'אווה.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
87
טכניקות ושפות תיכנותסיכוםטרנדים בתעסוקת תוכניתנים
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
88
טכניקות ושפות תיכנותסיכום-השוואה בין שפות
רבים נוטים לבצע השוואה בין השפות השונות.
מי יותר מהירה,מי יותר חזקה,מי יותר...
הנושא לא רק שהוא בעייתי מאוד,הוא גם לרוב לא רלוונטי בעליל
בעייתי בגלל שונות חומרה:קונפיגורציה ואופטימיזציה שונה של מחשב(AMDמול אינטל למשל)יכולה לשנות את התוצאות לגבי כל שפה.
בעייתי בגלל שונות תוכנה:גרסאות,מערכת הפעלה,תוספים אלו ואחריםוקונפיגורציות שונות של סביבת העבודה.
מגבלת ניידות:לא כל השפות עובדות על כל פלטפורמה(דוטנט כדוגמא)
חברות דוגמת סאן ומיקרוסופט נוטות לתכנן את מערכות ההפעלה שלהןבהתאם לשפות הפיתוח(ג'אווה ודוטנט בהתאמה)כך שיתנו יתרון בייתי.
במקרה של סאן,המתכננת ובונה שרתים(ומעבדיSparc),הדבר בא לידיביטוי גם לטובת ג'אווה.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
89
טכניקות ושפות תיכנותסיכום-השוואה בין שפות(2)
לא אחת אנו פוגשים סטודנטים ותלמידים השבוים בשפה אחת ורואים בה חזותהכל מתוך מחשבה כי הם מסוגלים להתמקצעות רק בשפה אחת.
לעיתים זה מרחיק לכת לכדי איזו שפה יותר מבוקשת בשוק המסחרי.
שאלות והנחות אלו שגויות מן היסוד.
בתיכנות מקצועי אנו משתמשים במגוון רחב מאוד של שפות וטכנולוגיות.
בכדי להיות תוכניתן טוב,חשוב להיות עם ראש פתוח,להכיר שפות אחרות.
אנו נשתדל בסעיף זה לתת מספר אבחנות מקצועיות יותר כיצד לבחור אתהשפה הנכונה לפרוייקט.
נקודה חשובה שכדאי לשים אליה לבברגע שלומדים את הבסיס של תיכנותושולטים בשפה אחת,קל מאוד לבצע הגירה ולהתמקצעות בשפה אחרת.
רוב השפות מעתיקות אחת מהשניה,חולקות רעיונות דומים ומספקות מסגרת דומהלפיתוח(ספריות,כלי פיתוח,מבנה שפה,הגדרות שפה,צורת עבודה ועיבוד שלשפה).
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
90
טכניקות ושפות תיכנותסיכום-השוואה בין שפות(3)
נקודות שאינן תלויות במתכנת:
דרישות הלקוח(הוא המשלם והוא הקובע).
אינטגרציה-לקוח מעדיף להמשיך בקו הטכנולוגי המתחבר ליתרהמערכות שברשותו.
באופן כללי ככל שמעורבים יותר משתנים כך יש פחות בחירה אפשריתבין הטכנולוגיות.
יכולות של השפה להתאים לדרישות הפרוייקט
להיכן מיועד הפרוייקט:אינטרנט?מחשב אישי?ארגוני?כף-יד/סלולר?
יכולות עיבוד גרפי(ג'אווה/C++חזקות כאן)
יכולות עיבוד נתונים והתממשקות למסדי נתונים ושפות אחרות.
האם נדרש עיבוד זמן אמת(Real Time)?שפתC/C++חזקות
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
91
טכניקות ושפות תיכנותסיכום-השוואה בין שפות(4)
נקודות לחשיבה בעת בחירת שפה:
שפת מפרש לעומת שפת מהדר
דינמיות ומהירות פיתוח  לעומת מהירות ואבטחה.
ניידות/הגירה
האם המערכת צריכה לעבוד על פלטפורמות שונות? (ג'אווה ו-PHPמאודהגירות לעומת דוטנט למשל)
אבטחה ותמיכה ב-Garbage collection.
האם ללקוח חשוב שהקוד יהיה בלתי פריץ(C\C++)לעומת שפות כמוPHPופייטון שקל יותר להשיג את קוד המקור.
תמיכה בשפה וקבלת עזרה
ספריות מוכנות,פורומים,קלות תחזוקה והבנה של הקוד.
סדנאות איתן לפיתוח באינטרנט
פרק תשיעי
eitan-logo-small
אודי הלר/ד"ר אריאל פרנק.  ©כל הזכויות שמורות
92
טכניקות ושפות תיכנותסיכום-השוואה בין שפות(קישורים)