מה צופן העתיד ל C# ?

S h a r k 1 8

New member
מה צופן העתיד ל C# ?

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

אז מה דעתכם? יש לשפה עתיד?
 
אקח סיכון ואתנבא שהעתיד לא טוב

היא מידי תקועה בתוך העולם של עצמה. אני באמת אוהב את השפה הזו אבל מרגיש לי שהיא תקועה בעבר.
 

nocgod

New member
אני מאוד לא מסכים איתך - אשמח אם תפרט ותסביר למה אתה חושב כך

מה זאת אומרת תקועה בעולם של עצמה?
ודווקא היא תקועה בעבר? מקבלת עדכון גרסא כל שנה בערך עם פיצ'רים חדשים ושיפורים.
ביניהם C#6, roslyn או בכלל המעבר ל dotnet core או native compilation

אני מתכנת דוטנט, מתעסק בעוד כמה שפות מהצד (נגיד Go), נוגע ומתעניין בטכנולוגיות כמו docker swarm ו mesos איך אפשר לשלב איתן עם dotnet core, ופייר בינתיים לא רואה יותר מידי בעיות חוץ מכאבי גדילה של framework חדש שלדעתי יפתרו בשנה הקרובה.

אם שואלים אותי מה העתיד צופן ל C#:
עם הזמן יכניסו לשפה עצמה יותר פיצ'רים של שפות פונקציונליות.
בתקווה שבשנים הבאות יעשו phase out ל .net framework וישאר רק .net core.
בשנה הבאה הולך לצאת עדכון נוסף לשפה (גרסא 7) עם כמה פיצ'רים מאוד יפים ומעניינים.

נכון יש לשפה שם רע בגלל הקשר שלה למיקרוסופט, אבל מיקרוסופט עצמם עשו חושבים לגבי השפה והFW שלהם והוציאו אותם ל OS, דואגים לעדכן docker images עם הFW החדש שלהם באופן קבוע.
אפשר לראות את השינוי פאזה הזה בכמה דברים אחרים של MS שלא קשורים לשפה, כגון השת"פ עם Mesos, או האפשרות לעשות deploy ל docker swarm מתוך ה market ב Azure וכד'...

לא הייתי רץ לקבור את #C או דוטנט, ולא הייתי דן אותם לאבדון.
 
מרגיש לי שרוב הדברים המודרנים משתמשים בהם בשפות אחרות

לא איזה סטטיסטיקה מבוססת אבל זו התחושה שלי.
מה ההבדל אגב, בין .net framework ל-.net core?
אני אגב לא משווה אותה ל-JAVA שהיא שפה גרועה במיוחד.
JAVA אגב בנחיתה משמעותית בשימוש, הרבה יותר מהירידה של C#, אם כי היא עדיין משמעותית נפוצה יותר. מה שמשאיר אותה רלוונטית זה בעיקר אנדרואיד.
https://www.google.com/trends/explore?date=all&q=java,c#
 

BravoMan

Active member
אתה כנראה מסתכל רק על מודעות בישראל.

אני לא מכיר אף פרויקט גדול בכותרות שכתוב בשפה הזו.
&nbsp
הבעיה הכי גדולה שלה לדעתי, כמו שאוהב להתווכח כתב, (אם הבנתי אותו נכון), זה שהשפה הזו לא ממשה את הבטחת ה-cross platform שלה.
&nbsp
אז נכון - יש את mono, ו-MS לאט לאט פותחת עוד ועוד חלקים של NET., אבל כל זה מעט מידי מאוחר מידי.
#C בנויה לניצול מלא רק על פלטפורמות Windows, ומה לעשות שהפלטפורמות האלה היום ממודרות לנישות מאוד ספציפיות.
 

vinney

Well-known member
40% שם מפתחי אפליקציות ווב

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

אם תסתכל על הנתונים של ״סטודנטים״ תראה ש#C נמצאת אי שם מאחור ובערך באותם המספרים כמו ״Android״ (מכיר שפת תכנות כזאת? אני לא).
 

BravoMan

Active member
נחמד, אבל אני חושב שזה יותר מייצג:

http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages
&nbsp
12 מטריקות מפוזרות על 10 מקורות שונים.
זה קצת "מטה-מחקר", אבל נראה הגיוני.
&nbsp
ושוב - אתה מוזמן לתת שם של פרויקט תוכנה ידוע שבנוי בשפה הזו.
נגיד משהו טרנדי כזה כמו docker, או אולי איזה רכיב openstack או אולי פלטפורמה סלולרית שבה זו השפה הרשמית והעיקרית ושנתח שוק שלה לא נספר על אצבעות יד אחת
 

S h a r k 1 8

New member
סבבה. אז בקישור שאתה העלית

C# ממוקמת במקום ה-6. זה עדיין מיקום מאד גבוה.
לגבי לתת שמות של תוכנות מוכרות שנכתבו בC# - מצטער, אני לא באמת מכיר באיזה שפה נכתבה כל תוכנה.
&nbsp
 

BravoMan

Active member
אתה לא צריך להכיר כל תוכנה.

יכולתי להתווכח עם 6 מתוך 10 זה מכובד או לא, אבל אני אגיד לך משהו פשוט יותר:
&nbsp
תסתכל על לינוקס ה-kernel עצמו:
כנראה פיסת התוכנה הכי נפוצה בעולם: 95% ממחשבי על מריצים אותה, 68% משרתים מריצים אותה, 80% מטלפונים חכמים מריצים אותה, ואין לי מושג אפילו כמה סטרימרים, טלוויזיות, מערכות בידור במטוסים ורכבים, פאקינג מקררים, מריצים אותה.
&nbsp
הנה בקלות דוגמה למה שפת C העתיקה והמצומצמת יחסית עדיין כ"כ פופולרית.
&nbsp
לחלופין, ניקח JavaScript, שפה שאני פשוט לא סובל - הסינטקס מגעיל, וברור שהיא לא תוכננה מראש לשימוש המשמעותי שנעשה בה היום.
קראתי פעם שבמקור, זו היית אמורה להיות דרך פשוטה לאפשר למעצבי Web שאינם מתכנתים ליצור תפריטים נפתחים.
&nbsp
ועכשיו?
אתה פותח Google Docs ויש לך עורך תמלילים עשיר אם אפשרות שיתוף ב-Live בתוך הדפדפן שלך. רוצה לנחש במה הוא כתוב?
וזה עוד לפני שניגע ב-Node וחבריו צד שרת.
&nbsp
Java כנראה גם היית במקום לא כ"כ טוב היום, לולא Google בחרה בה כשפה ראשית וכמעת יחידה לפלטפורמה הסלולרית שלה, והפלטפורמה הזו חולשת על כ-80% משוק הטלפונים החכמים היום.
&nbsp
אפילו Objective-C שכמעת הפכה לממצא ארכאולוגי קיבלה זריקת החייאה זמנית כש-Apple בחרה בה כשפה בלעדית לפלטפורמה הסלולרית שלה, שלזמן קצר שלטה ב-100% מהשוק שלה.
&nbsp
האם אתה מסוגל לתת דוגמה משמעותית אחת כזו עבור #C?
משהו אחד שהיא מפורסמת בגללו?
&nbsp
אגב, אם תשים לב, יש משהו משותף בין כל השפות שהזכרתי ש-#C אינה חולקת:
כל השפות הללו הן בעלות סטנדרט פתוח ומתועד במלואו.
ויש יותר ממימוש אחד מלא שלהן.
&nbsp
זה משהו שעד היום לא קרה ל-#C. למרות כל המאמצים שנעשו, ולמרות שינויים מרחיקי לכת בהתנהלות של MS.
&nbsp
וזו הסיבה שאני חושב שמרחף סימן שאלה גדול וכבד מעל השפה הזו.
 

S h a r k 1 8

New member
אבל, אבל, אבל...

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

BravoMan

Active member
כן, אתה בהחלט צודק...

בכמה אפליקציות Desktop אתה ובני משפחת שאינם מפתחי תוכנה משתמשים?
&nbsp
כלומר, כאלה שאינן נגני ווידאו שרובם זה קודקים native.
או משחקים AAA שרובם זה OpenGL ומנועים אחרים שהם בד"כ ++C
או דפדפן, או MS Office (שאני חושב שהם בעצמם לא כותבים ב-NET., אם כי יהיה מעניין אם זה מהצב)?
&nbsp
נתח שוק בטוח יש. אפילו לקובול יש עדיין נתח שוק.
השאלה רק מה הגדול של הנתח הזה...
 

S h a r k 1 8

New member
הדרך הכי פשוטה היא פשוט להסתכל על מודעות הדרושים

ממה שאני רואה הדרישה לידע ב C# מופיעה באותה כמות כמו הדרישה לידע ב Java.

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

marvin2

New member
StackOverflow נחשב ?

הוא כולו בנוי בדוט נט.
&nbsp
(ואגב MS היא התורמת קוד המרכזית לפרויקט של דוקר)
 

BravoMan

Active member
אכן, דוגמה טובה, אבל כולו? ממש כולו?

יש #C צד לקוח?
&nbsp
אגב, היה גם חודש שבו MS היית התורמת הגדולה ביותר ל-Linux Kernel (כשהזרימו דרייברים לווירטואליזציה שלהם).
זה לא היה קשור ל-#C, והיות ו-docker כתוב ב-go, אני מניח שגם התרומות שם אינן קשורות ל-#C.
 

nocgod

New member
כן - הכל כתוב ב#C אפילו "צד לקוח"

http://meta.stackexchange.com/quest...-are-used-to-build-the-stack-exchange-network

דרך אגב הם גם כתבו את אחד הקליינטים היותר טובים שיש ל redis עבור .net

אתה צודק כשאתה אומר שאומנם התרומות של מיקרוסופט אינן קשורות ישירות ל #C כאשר הם תורמים לפרוייקטים כמו docker או mesos וכד'. אתה אבל מפספס את מהות התרומות - לפני כמה שנים (באלמר) לא היה סיכוי לפתיחות כזאת, היום לעומת זאת (נאדלה) הדחיפה של מיקרוסופט קדימה מראה את שינוי התפיסה של מיקרוסופט בכל מה שקשור לטכנולוגיות לינוקס ובכללי איך הם רואים את ה.net framework.

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

rj111

New member
זה לא נראה לי נכון

יש קליינטים שכתובים ב-C#.
הקליינט של stackoverflow רץ על על דפדפן וזה מריץ רק javascript.
לדעתי המשקל של ממשק וובי בדפדפן עם javascript ילך ויגדל - הוא ג'נרי ולא תלוי מערכת הפעלה, היכולות של הדפדפנים ב-HTML5 הולכות וגדלות עם הזמן וכלי התוכנה הולכים ומשתפרים (למשל ממשק עם ספריית bootstrap).
 

nocgod

New member
מה נראה לך לא נכון? שהקליינט סייד "כתוב" ב #C?

ברור שהוא לא כתוב ב #C, מצד שני הוא כן כתוב ב ASP.Net MVC 5 באמצעות מנוע Razor3, שהוא כידוע חלק מ ASP.net MVC...

וסתם שתדע - רוב האינטרנט הוא לא הדפדפן אלא הסרוויסים שרצים ברקע, או ה APIs שנותנים שירותים. ה FrontEnd שאתה רואה בדפדפן הוא לרוב לא כל האפליקציה אלא רק הפנים שלה. ככה ש"הנבואה" שלך לא רלוונטית בכלל לעתיד השפה.
 

BravoMan

Active member
אה, סליחה, לא ידעתי שיש מימוש #C ל-jquery, חידשת לי!


"מעת מידי, מאוחר מידי" זו בדיוק השאלה.
&nbsp
נכון - נאדלה, לפחות כלפי חוץ, ממש שונה מבולמר, אבל האם הוא גם שונה כלפי פנים?
בינתיים, רואים MS משחררת קוד ולא מלכלכת על לינוקס במקומות בהם היא חלשה וטכנולוגיות קוד פתוח חזקות, ואין להם ברירה - לשחק לפי הכללים או לאבד לקוחות.
&nbsp
אבל האם MS באמת שינת משהו בהתנהלות העסקית שלה?
האם למשל היא וויתרה על פטנטים (או לפחות שינת תנאי רישוי) ב-OOXML פורמט המסמכים השקר פתוח שלה, שלפני כמה שנים היא דחפה ל-ISO בעזרת שוחד וסחיטה, רק כדי להילחם בחלופה של OpenDocument foundation?
&nbsp
למה לא נפתח כל הקוד של NET., כדי שהוא יוכל לקבל מעמד cross-platform שווה ל-Java (כמה שהיא לא בוגרת וכל השטויות הללו)?
&nbsp
מה בעניין חשיפת API חבויים של מערכות הפעלה, כמו אלו שנתנו בזמנו ל-IE יתרון מהירות על כל דפדפן צד שלישי ב-Windows?
&nbsp
אני חושב שהמבחן הכי חשוב של MS החדשה ונאדלה יגיע אם וכאשר יצרן מחשבים גדול, נניח Dell, ינסה שוב לשווק לציבור הרחב מחשבים עם הפצת לינוקס מותקנת מראש.
כשהם ניסו זאת לפני כמה שנים הם מהר מאוד נאלצו להוריד את העמוד באתר שלהם שפרסם את המוצר, כי MS איימה לבטל את חוזה רישיונות שלהם, מה שכמובן אף יצרן שולחניים וניידים עד היום עדיין לא יכול להרשות לעצמו.
&nbsp
אני חושב שמצב כזה יהיה מבחן אמתי לראות האם יש שינוי מדיניות ב-MS שאומר שהם הולכים לנסות להתחרות בהגינות - ע"י אספקת מוצרים איכותיים בתנאים הגיוניים, או שבסה"כ מדובר בעבודת תלאים שנועדו לעצור את הדימום שפרויקטי קוד פתוח מוצלחים גורמים ל-MS.
 

nocgod

New member
אתה יודע טוב מאוד למה התכוונתי כשאמרתי שגם ה FE "כתוב" ב #C

למה היא לא משחררת את כל .net?
כי לא כל .net הוא רלוונטי לכל המערכות הפעלה, כרגע פורסם רק מה שרלוונטי לכל מערכות ההפעלה או עבר פיתוח מחדש כדי להתאים לכולם (נגיד כמו EF): (מה לעשות לאף אחד בלינוקס לא אכפת מ WPF)
הקומפיילר,
NetStandard,
Asp.net (כולל בתוכו מימוש של MVC, EF, WebHooks ועוד הרבה דברים)
יש עוד הרבה דברים שנפתחו - חוץ מהראשים של אנשים בחוץ שנשארו נעולים בדעתם.

היום אתה יכול ב#C לפתח webapp או consoleapp/service בלינוקס בלי שימוש ב mono ודברים אחרים, יותר מזה אפילו אתה אפילו לא צריך להתקין מראש את ה clr במערכת הפעלה שאליה אתה מתכנן. (כמובן שלא צריך גם VS או מכונת וינדוס לתהליך הפיתוח)

אגב לגבי מחשבי לינוקס על dell: יש להם גם מחשבי chrome book וגם מחשבי ubuntu... אומנם זה לא אותו המגוון כי הדרישה נמוכה בהרבה... אבל להגיד שאין? שטויות במיץ. שים גם לב שמדובר בניידים מאוד חזקים שמריצים אובונטו, לא סדרות פח אשפה אלא מחשבי XPS או Precision קח לדוגמא:
1
2
3
4
ואני לא מבין למה לעזאזל MS צריכה לפרסם את כל הקוד של דוטנט? כי אדוני רוצה? זכותם המלאה לשמור את כל הקוד לעצמם אם בא להם (כמו שאורקל לא מפרסמת את שלה לדוגמא אלא רק את ה openJDK, ואני מניח שמאותם הסיבות).

איך זמינות הקוד מקור של שפה או פריימוורק קשורה בכלל לעצם היכולות של השפה להיות cross platform?
 
למעלה