איפכא מסתברא: אתגר הפוך לכולנו! מה טוב בפלטפורמה האחרת?
-
שוב חרגנו מהנושא וחזרנו למלחמת ה"מה יותר טוב"
את זה עושים באשכול באיזה פלטפורמה תעדיפו להשתמש ליצירת תוכנה עם נתונים.
@ארכיטקטאחד הנושאים הקריטיים ביותר בהנדסת תוכנה שהולכים ונזנחים לאחרונה הוא לדעתי העניין של חיסכון במשאבים, מכיוון שמשאבי המחשוב נמצאים היום בשפע יוצא דופן, הרבה פלטפורמות לא מתייחסות לזה, אבל האמת איננה כך, תוכנה צריכה להיות סקאלביליטי מהתחלה, ואילו WPF היא בזבזנית משאבים כרונית, וגם דוט נט לא טומנת ידה בצלחת, וזאת אחת הסיבות שלי להתנגד לפלטפורמה הזאת.
אני ישמח אם תסביר למה PHP ו NodeJS לאטוחנות משאבים....
העובדה שאתה יכול לאתחל משתנים בלי להצהיר עליהם, היא אולי נוחה, אבל אומרת משהו....פורסם במקור בפורום CODE613 ב21/01/2014 01:43 (+02:00)
-
אז מה טוב בווב של דוטנט.
אני בזמנו רציתי לעשות שידור וידאו באינטרנט. שאני מעלה וידאו מהמחשב שלי והשרת מוריד את הודיאו לכולם.
בphp זה ממש מסובך בגלל שכל דף זה דף נפרד. ותהליך נפרד מה שאין כן בקובץ ashx זה עובד ממש יפה תסכלו על הקובץ לדוגמה.
<%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { // Comment out these lines first: // context.Response.ContentType = "text/plain"; // context.Response.Write("Hello World"); context.Response.ContentType = "image/png"; context.Response.WriteFile("~/Flower1.png"); } public bool IsReusable { get { return false; } } }
שרת iis יריץ את הקובץ אם נלך לנתיב שלו זה דומה לphp בקטע הזה.
וכשהוא יריץ אז הוא טוען את הקובץ ומריץ את הפונקציה ProcessRequest עם context שזה אובייקט שמכיל את כל מה שקשור לבקשה ולתשובה של הhttp.עכשיו מה שהכי מרתק פה שהשטח שמחוץ לפונקציה הוא שטח משותף כלומר אפשר להשים שם משתנה שיהיה זמין גם לבקשה הבאה שתבוא ממקום אחר.
מה שטוב פה לשידור וידאו שאני העלתי כל פעם קטע מהמחשב שלי ושמרתי אותו בקובץ כדי שהוא יהיה זמין למשתמשים הבאים. פה לא צריך את זה מספיק לשמור מחוץ לפונקציה.
אז דוד זה לא כל כך נכון ש "אם ווב מוצא חן בעיניך בגלל המודלריות שלו שכל דף זה עולם נפרד".כי זה לא כל כך עולם נפרד.
אז למה אני לא מתכנת בדוטנט.
בגלל שאפשר לעשות את כל זה גם בnodejs. וגם אני לא אוהב את הקשיחות של C#. בjs אני יכול להוסיף אלמנטים לאובייקט איך שבא לי.
var person = {}; person.firstname="John"; person.lastname="Doe"; person.age=50; person.eyecolor="blue";
פורסם במקור בפורום CODE613 ב20/01/2014 18:32 (+02:00)
-
יש הבדל גדול בין לא יודע את "ASP.NET MVC או Razor" לבין "לא יודע על כך דבר".
אני כתבתי דף אחד או 2 בaspx ואני אפילו סיפרתי לך על זה. ואמרתי לך שזה בעיקרון יותר טוב לדעתי מphp.אז להגיד שאני לא יודע על כך דבר זה שקר.
יש פה אי הבנה. כשכתבתי "לא יודעים דבר" על ה"פיתוח של דוט נט לווב" לא התכוונתי במילה פיתוח, את המובן של לפתח אפליקציה.
אלא את השדרוגים של הארכיטקטורה שמיקרוסופט הוסיפו.
סליחה לא התבטאתי ברור.
"לא יודע על כך דבר" נסוב על הפיתוח מאז ASP.NET 2 לבין כעת. ממילא זה נכון לגמרי לגבי מי שכתב דף או שתיים.פורסם במקור בפורום CODE613 ב20/01/2014 18:09 (+02:00)
-
@דוד ל.ט.
@magicode
@דוד ל.ט.
וmagicode לא יודעים על כך דברשקר.
שקר זו מילה ממש חריפה, אני לכל היותר מקשקש.
אתה פתחת פעם אתר ASP.NET MVC?
כתבת בו?
אתה יודע מה זה Razor? אתה יודע מה זה View Engines של MVC?אם ככה אני מתנצל.
יש הבדל גדול בין לא יודע את "ASP.NET MVC או Razor" לבין "לא יודע על כך דבר".
אני כתבתי דף אחד או 2 בaspx ואני אפילו סיפרתי לך על זה. ואמרתי לך שזה בעיקרון יותר טוב לדעתי מphp.אז להגיד שאני לא יודע על כך דבר זה שקר.
פורסם במקור בפורום CODE613 ב20/01/2014 17:41 (+02:00)
-
-
ארכיטקט, זה פשוט לא נכון.
הכל השערות מפוחדות חסרות טעם.
העובדה שכשאתה מריץ אפליקציה בWPF יש כמה רבבות מאפיינים גם הטרידה אותי, אבל:
א. תכלס זה עף כמו טיל על מחשבים ישנים.
ב. זה בכלל לא מאפיינים, זה פונקציות (מה שנקרא DP, מאפיינים תלויים), שכל עוד שלא קוראים להם הם לא תופסים אפי' ביט אחד בזיכרון (!!).
ג. אין אלטרנטיבה.אם ווב מוצא חן בעיניך בגלל המודלריות שלו שכל דף זה עולם נפרד, או בגלל סיבות אחרות, אז גם דוט נט מאפשרת לפתח לווב.
הפיתוח של דוט נט לווב הוא מטורף, יקיר וmagicode לא יודעים על כך דבר, גם אני לא, אבל אני שומע ורואה מאחורי הפרגוד פה ושם.פורסם במקור בפורום CODE613 ב20/01/2014 12:56 (+02:00)
-
לפי מה שאני מבין מהתשובה של רחמים אתה ממש לא צודק, הסקלביליות בדוט נט לא מובנית מהרגע הראשון, ובשלב מסויים בן אדם יכול למצוא את עצמו בנקודת אל חזור כשהאפליקציה שלו גודלת בצורה בלתי צפוייה, שזה אמנם צרות של עשירים אבל אני מאחל לכל אחד צרות כאלו.... בפלטפורמות כמו nodejs או יתר הפלטפורמות האינטרנטיות החדשניות, הם חשבו מראש מקדם על סקלביליות והכל בנוי בצורה של יכולת גדילה אינסופית. אני מדבר עכשיו אפילו על דוט נט עצמה ולא רק על wpf, שהיא כשלעצמה משאבת ביצועים, אם תחשוב כל פקד מסכן כמה מאפיינים יש לו, וכמה מנועים עובדים בפול גז מאחורי הקלעים כדי להפעיל אותו.
חוץ מזה, בעולם הווב מבחינת פקדים וגם מעוד הרבה בחינות, יש תקן בינלאומי, ומרוץ מטורף של גדולי וטובי התכנתים ברחבי העולם, על מנת לייעל ביצועים באופן דרמטי מדור לדור ומתקופה לתקופה (התחרות העולמית על שוק הדפדפנים, היא בעצם הנושא הזה עצמו!!!! כאשר כרום יצאה עם מנוע v8 [שאגב גם nodejs מבוסס על אותו מנוע] היא הצליחה להשיג את כל הדפדפנים מבחינת מהירות ואז היא הציתה מרוץ אדיר בתחום) כך שאני מפתח מערכת כננס על גבי ענק, אבל אצל מייקרוסופט אתה תלוי בחסדים של חברה מסחרית, שראשית היא מונופול יחיד בתחום, ושנית לך תדע מה השיקולים שלהם??? אולי הם מעדיפים ביצועים נמוכים וגרפיקה גבוהה כי זה יותר מוכר... בינתיים זה לא נראה שמייקרוסופט צועדת בכיוון הסקלביליות כשהם הוציאו את דוט נט הם נתקלו תוך שנתיים בבעיות שלא איפשרו להם לתכנת עבור מערכות גדולות..... בושה וחרפה אחר כך הם תיקנו את זה (ולך תדע איזה טלאים הם שמו שם)
פורסם במקור בפורום CODE613 ב20/01/2014 12:21 (+02:00)
-
לפי מיטב ידיעתי ונסיוני ה'בזבזנות' היא לא כי התעצלו לעשות את זה יותר טוב, אלא כי רצו להתאים את המחלקות השונות למגוון של צרכים, וכן העדיפו 'לבזבז' משאבים כדי לתת נוחות וקלות פיתוח למתכנת.
אגב גם בספריות של C++ שהן מוכנות ובאות עם המהדר, אם תשתמש בהם תגלה שהם יותר איטיות מאם הייתה בונה את אותם המחלקות לבד כפי שמתאים לך בתוכנה הנוכחית.
כל מחלקה שהיא גנארית היא עושה המון בדיקות [למניעת שגיאות ואבחון הטיפוסים וכדומה] בדרך כלל עד שהיא מגיעה לשלב הביצוע ולכן זה מאט, אבל אם אתה בונה מחלקות מיוחדות עבור התוכנית הספציפית שלך אתה יכול להגיע לביצועים גבוהים.דוגמא הכי פשוטה זה XAML שבא להקל על העיצוב של הממשק, אבל בסופו של דבר הוא מומר לקוד נמצא שאם הייתי כותב את הכל בקוד התוכנית שלך הייתה רצה יותר מהר וגם עולה יותר מהר, אבל זה כמובן לא שייך אפילו ב WINFORMS וכל שכן בריבוי המאפיינים והבינדינגים שיש ב XAML.
דוגמא נוספת זה BinaryFormatter שהוא גנארי לחלוטין ואין לך שום דבר לעשות חוץ מלזרוק לו אובייקט והוא כבר ישמור עליו, אבל אם תשתמש ב וBinaryWriter ותכתוב לבד פונקציה לשמירת כל אובייקט ואובייקט בדיסק הרי שזה יהיה פי אלף יותר מהיר גם בכתיבה וגם בקריאה!
ויש עוד המון דוגמאות מן הסוג הזה.פורסם במקור בפורום CODE613 ב20/01/2014 07:59 (+02:00)
-
אחד הנושאים הקריטיים ביותר בהנדסת תוכנה שהולכים ונזנחים לאחרונה הוא לדעתי העניין של חיסכון במשאבים, מכיוון שמשאבי המחשוב נמצאים היום בשפע יוצא דופן, הרבה פלטפורמות לא מתייחסות לזה, אבל האמת איננה כך, תוכנה צריכה להיות סקאלביליטי מהתחלה, ואילו WPF היא בזבזנית משאבים כרונית, וגם דוט נט לא טומנת ידה בצלחת, וזאת אחת הסיבות שלי להתנגד לפלטפורמה הזאת.
פורסם במקור בפורום CODE613 ב20/01/2014 01:06 (+02:00)