יום רביעי, 13 באפריל 2011

097 Final Class 6

אוֹרי הוציא גימלים.
  • ראיונות עבודה: הם מוטעים מיסודם, אם הם מבוססים על שאלות אלגוריתמיות. מנגד, אפשר לכלול בראיון סדרה של מטלות תכנותיות המבוצעות ב Pair Programming.
  • bitorama.com של אלון קרן: תוכן ישראלי טוב למתכנתים, בהשראת האקר-ניוז של  ycombinator.
    • דוגמאות: ביטויים רגולרים להתאמות על מחרוזות, Ant לבניית תכניות ג'אווה.
    • יש גם Internal DSLs שממומשים בתוך השפה, הרבה פעמים תוך שימוש בממשקים זורמים. דוגמא לזה היא Rake: שפת ה build בעולם ה-Ruby.
    • לפעמים השימוש בשפות הללו חורג מעבר ליכולות שלהן, למשל: ניתוח של עמודHTML ע"י ביטויים רגולרים (נדון גם בפודקאסט של ג'ואל וג'ף). למי שלא בטוח שהוא שמע את כל ההסברים בנושא, הנה עוד כמה.
    • מרטין אודרסקי עובד כרגע על מחקר שהתיזה שלו היא שהפתרון לקשיים של תכנות מקבילי/מבוזר הוא בריבוי DSL-ים: אחד לכל סוג של בעיה. הוא (כמובן) סבור ששפת התכנות שלו, סקאלה, היא פלטפורמה נהדרת לפיתוח ה DSL-ים האלה.
  • ג'יימס גוזלינג עובר לגוגל
  • גילי מאד מרוצה מה Android SDK. מסתבר שהוא לא היחידי.
    • ניתן לפתח בג'אווה גם בצד הלקוח וגם בצד השרת.
    • קל יחסית להרים אפליקציה לאוויר ואפילו להרוויח?!
  • התפתח בפורום של SCIL דיון מעניין סביב פרסום שטוען שההבדלים בין מתכנתים (לפעמים עד כדי פקטור של פי 10) נובעים ממוטיבציה.
    • האם ההבדלים נובעים ממוטיבציה?
    • האם ההבדלים נובעים מיכולת התפתחות/למידה?
    • האם התגמול צריך להיות יחסי לתרומה?
    • איך בכלל מודדים מתכנת? (ברוקרים לעומת זאת, הרבה יותר קל)
  • מתקפת המנשרים: אחרי ה Agile Manifesto וה Craftsmanship Manifesto, קבלו את ה Motherfucker Manifesto.
  • זה מול זה
    • תיעוד או טסטים: כנראה שטסטים
    • תיעוד טוב או שמות טובים: שמות טובים מקלים מאד על הקריאות (אם כי חשוב לא להגיע לשמותארוכיםמדי). קנות' מצדד ב- literate programming: קוד צריך להיקרא כמו פרוזה (גם אם זה הופך אותו לארוך יותר).
    • אנוטאציות או קבצי קונפיגורציה: למרות ש פריסה מתמשכת מבטלת את הצורך לשלוט בתכנה דרך קבצים חיצוניים, ארז וערן עדיין מעדיפים להפריד בין האספקטים השונים.

הקובץ נמצא כאן האזנה נעימה

תגובה 1:

  1. הי,

    התכנית היתה מאוד מעניינת. רציתי להעיר כמה הערות:
    לגבי תכנות מקבילי, parallel, ו-concurrent, ההגדרה שאני מכיר היא הפוכה: ב-parallel computing מנסים לחלק בעיה גדולה להרבה חלקים שיהיה ניתן לחשב במקביל, וב-concurrent programming משתמשים במספר תהליכי חישוב שמתרחשים בו-זמנית, ויכולים לבצע אינטראקציה אחד עם השני. כלומר, אפשר לממש parallel computing ע"י concurrent programming, אבל concurrent programming יכול להתקיים גם במערכת עם מעבד יחיד.

    בקשר ל-literate programming, יש בלוג נחמד של דן פיפוני (http://blog.sigfpe.com A neighborhood of infinity). הוא כותב על נושאים במתמטיקה, פיסיקה, לוגיקה, עיבוד תמונה ועוד, וכמעט כל הפוסטים כתובים ב-literate haskell.

    אה, ואת המלה "tex" מבטאים "טֵך".

    חגי

    השבמחק