Because I have a lot of respect and appreciation for Noam, I'll respond :)

I haven't used Django so I can't comment on it.

When I *did* use TurboGears (about 2 years ago), what I really liked was:

   - flexibility
      - Great "component architecture": e.g. we started with Kid templating
      moving to Genshi. We could have used Django templating too :)
      - Rolling our own was easy, magic was optional - at least it was
      trivial to use our own DB layer.
      - simplicity (trivial code for nontrivial app)

URL mapping wasn't built-in -- the URLs were mapped to classes and methods
-- but that didn't bother us at all then. Maybe I'd feel differently now
(it's hard for me to be objective, I'm using something a lot
worse<http://www.asp.net/>now).

2008/8/11 Noam Raphael <[EMAIL PROTECTED]>

> בתאריך 10/08/08, מאת orip <[EMAIL PROTECTED]>:
> > I've written a non-trivial production app in TurboGears and it was
> >  awesome.
> >  I can't testify about Django, maybe it's better, but had to even the
> >  score regarding TurboGears. :)
> >
> מאחר שאני מאוד מעריך את אורי, ואני חושש שמה שהוא כתב עלול לגרום לאנשים
> אחרים שמעריכים אותו להשתמש ב-TurboGears, החלטתי לפרט קצת למה לא להשתמש
> ב-TurboGears. הכל על סמך ניסיוני מלפני איזה שנה וחצי, אז אם משהו השתפר
> בינתיים, או סתם התבלבלתי, תסלחו לי.
>
> * קסם - הפילוסופיה של TG, מניסיוני, היא קודם לחשוב איך ייראה הקוד של
> השרת ואז לחשוב אילו שפצורים פיתוניים צריך לעשות כדי לממש את זה. התוצאה
> היא שאם כותבים בדיוק את מה שמתכנני TG חשבו עליו מקבלים קוד נחמד מאוד,
> אבל אם פתאום צץ צורך במשהו לא הכי סטנדרטי, ומנסים להבין איך לממש אותו,
> צריך להיכנס לקוד של decorator שיוצר פונקציה שעוטפת פונקציה אחרת שהיא
> שיטה של מטא-קלאס... בקיצור, איכסה. לעומת זאת, התכנון של Django הוא
> יחסית פשוט ומובן, לפחות בשבילי. גם התיעוד שלו (שהוא מצויין) מסביר קודם
> את העיקרון, איך הדברים עובדים באמת, ואז אילו קיצורי דרך יש.
>
> * שפת תבניות לא מוצלחת - TG משתמש ב-XML שמשלב בין HTML להוראות עיצוב
> של התבנית. היה לי די מסורבל לכתוב בשפה הזאת, לא הבנתי איך קורים בה כל
> מיני דברים (שימוש בתבנית-על כללית לאתר, למשל), והיה די מעצבן להתמודד
> עם שגיאות תחביר. חוץ מזה, אי אפשר להשתמש בשפה הזאת לכתיבת תבניות למשהו
> שהוא לא HTML. השפה של Django הרבה יותר פשוטה, נוחה לכתיבה, ונוחה
> לדיבוג.
>
> * מודולריות יתר - בשביל להתקין את TG צריך להתקין די הרבה ביצי פיתון.
> זה נכון שהן מותקנות אוטומטית ע"י easy_install (קסם אחר שאני לא מבין),
> אבל לי יותר נוח בלי הרבה דברים מותקנים שאני לא יודע מאיפה הם מגיעים.
> זה גם גורם להרבה קוד עטיפה שמציק כשמנסים לברר מה דברים עושים, ומעצבן
> כי בשביל להסתכל על הקוד בתוך הביצים, שלא לדבר על לערוך אותו, צריך עוד
> שפצורי easy_install שיותר טוב בלעדיהם. חוץ מזה, למי פונים עם בעיות,
> למפתחי החבילה או למפתחי TG? ב-Django כל מה שצריך נמצא בתוך חבילת פיתון
> אחת, והכול טוב ויפה.
>
> * URL-ים מייצגים אובייקטים - יש איזה עניין מוזר ב-TG, שיוצרים הייררכיה
> של מחלקות שמתאימה להייררכיה של ה-URL-ים של האתר. אצלי זה דרש די הרבה
> קוד מיותר של ליצור מחלקה שמעתיקה מחלקה אחרת, רק בשביל שזה יהיה מסודר
> כמו שרציתי. ב-Django פשוט מגדירים איזה URL מתאים לאיזו פונקציה שתטפל
> בו, וזה פשוט ונוח.
>
> * שרת לא סטנדרטי - TG משתמש בשרת HTTP כתוב בפיתון בשם CherryPy. זה
> אומר שבשביל שרת רציני צריך להפעיל שרת CherryPy, ושרת Apache, ושהאחד
> ידבר עם השני, וזה דורש עבודה. Django משתמש ב-WSGI, שזה מין תקן לכתיבת
> תוכניות שמדברות עם שרת אינטרנט, והתוצאה היא ששרת ה-Apache דואג לכם
> לתהליך של הפיתון וחוסך לכם עבודה. הוא יכול גם להריץ כמה תהליכים
> במקביל, שזה יכול לעזור לדעתי. אגב, זה מאפשר להשתמש ב-Django על Google
> App Engine, למי שזה מתאים לו.
>
> * מספר משתמשים - לדעתי, אם אין לך סיבה טובה אחרת, עדיף ללכת עם העדר.
> גם כי יכול להיות שהעם יודע מה הוא עושה, וגם כי יש יותר סיכוי שאנשים
> כבר נתקלו בבעיה שלך ופתרו אותה. הרושם שלי הוא שהרבה יותר אנשים משתמשים
> ב-Django. והרי מספרים ששלפתי: בקבוצת Django ב-google groups חברים
> 10305 משתמשים, ובקבוצת TG חברים 3487. חיפוש "python django" בגוגל (בלי
> גרשיים) נותן 3,580,000 תוצאות, ואילו חיפוש "python turbogears" מניב
> 641,000.
>
> אני מקווה שזה יעזור למישהו להגיע להחלטה הנכונה (TurboGears, כמובן...)
>
> לילה טוב,
> נעם
>



-- 
Check out my blog: http://orip.org
_______________________________________________
Python-il mailing list
[email protected]
http://hamakor.org.il/cgi-bin/mailman/listinfo/python-il

לענות