פיתוח בסביבת חלונות (WINDOWS)

פיתוח בסביבת חלונות (WINDOWS)

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

יבגניי34

New member
החשוב הוא מה הטכנולוגיה שאתה מתעסק בה. אם זה ASP/cshtml

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

אין שום קשר ללינוקס/חלונות.
 

BravoMan

Active member
בוא נגיד זאת כך:

יש סיבה מדוע MS עבדה מאוד קשה כדי לאפשר לארח מכונות Linux על תשתית ה-Asure שלה, עד כדי כך שבחודש מסוים לפני שנתיים בערך היא הפכה לתורמת הקוד הגדולה ביותר ל-kernel של לינוקס.
&nbsp
ובצורה יותר ישירה:
כן, בהחלט כדאי להכיר את Linux ואת הטנולוגיות הרלוונטיות שרצות עליה (גם אם חלקן Crossplatform).
חוץ מהפרט הזעום ששרתים מסוג זה כבר מהווים את הרוב בשוק, והפרט הזעום שהרבה מאוד clients מבוססים על הסביבה הזו בתצורות שונות, ידע בפלטפורמות שונות אף פעם לא מזיק, אבל כניסה לנישה ספציפית כן.
 

Grosseto

New member
אני חייב להודות שלא הבנתי את ההסבר בשתי הדרכים שניסית

 

BravoMan

Active member
זה בסדר, הוא לא נועד בשבילך


 

choo

Active member
כל טכנולוגיה מצליחה, עולה ויורדת לפי גרפים יחסית סדירים

&nbsp
(כמובן יש יוצאי דופן - אני מתעלם מהם לצורך העניין)
&nbsp
בהתחלה של עליה חזקה בגלל הייפ, ואז דעיכה כי ההייפ לא מוצדק, ואז היא מבשילה לאיטה ומתחילה לצמוח שוב עד שהיא עוברת מסה קריטית וצומחת בפראות, ובשלב מסויים כבר הרבה יותר קשה לצמוח (כי "כיסית את השוק" ואתה גדל בקצב של כניסת לקוחות חדשים לשוק), ובשלב מסויים הטכנולוגיה נעשית מורכבת מדי והמתחרים מתחילים "לאכול" לה נפח שוק, או שהגבינה זזה למקום אחר (במקרה של חלונות - עליית המכשירים הניידים והמשובצים-הגבוהים מכיוון אחד, והמאיסה של הלקוחות העסקיים בכליאה למיקרוסופט), והתמונה משתנה לאובדן נתח שוק (שזה לא אומר בהכרח ירידה בכמות ההתקנות הקיימות - אלא ירידה בכמות ההתקנות החדשות), והדעיכה הזו עשויה להימשך במשך שנים ארוכות.
&nbsp
איפה נמצאת חלונות בגרף הזה? שאלה טובה. אם תסתכל על מה מיקרוסופט עושה כיום - היא מתמקדת בהעברת בסיס המכירות שלה לענן ובמרדף אחרי אמאזון. בכל מה שקשור לשירותי אופיס ואאוטלוק - עדיין אין לה מתחרים שמתקרבים אליה, אבל לגבי מה שקשור לשרתים - *דומני* שהם בירידה (כשקונים מהם שירותי אופיס בענן, בצורה עקיפה קונים מהם שירותי שרת, אבל מאחר והתשלום הוא אחד לכל החבילה - קשה לאמר מה בפועל הוביל למכירה - האופיס, ה-exchange, שירותי שיתוף הקבצים או משהו אחר).
&nbsp
עכשיו נשאלות כמה שאלות:
א. עד כמה אתה מומחה חלונות? כל שהמומחיות שלך גדולה יותר, יש לך יותר מה להרויח בטווח הקצר אם תישאר שם.
ב. באיזה תחום אתה עוסק בפועל? "תוכנה לחלונות" לא אומר כמעט כלום. האם מדובר באתרי וואב? בשרתי העברת קבצים? בתוכנה בתחום עיבוד תמונה? דימות רפואי? ניהול מחסנים?
&nbsp
להחליט לעבור לטכנולוגיה אחרת, אחרי שפיתחת מומחיות משמעותית בטכנולוגיה מסויימת, זה משהו שצריך לעשות בלב שלם, אחרת תהיה במצב שאתה "לא פה ולא שם". ספציפית כדי להגיע למצב של "לשחות בלינוקס" יש צורך בסדר גודל של 2-3 שנים של עבודה מהותית עם מערכת ההפעלה (להבדיל ממישהו שמפתח קוד אפליקטיבי ומעבר לסביבת הפיתוח והדיבוג כמעט לא לומד דבר על המערכת עצמה). אגב, על פי נסיוני, חלק ניכר מהמפתחים בסביבת לינוקס מכירים אותה בצורה שטחית יחסית, וזה מספיק טוב להם, ביחס להשקעה הנדרשת כדי להפוך באמת למומחה לינוקס שמסוגל לתמוך בעצמו ובאחרים). חלק פשוט עסוקים מדי ברמה האפליקטיבית מכדי להיכנס לסביבת מערכת ההפעלה, חלק עושים "מה שאמרו להם" ולא אמרו להם ללמוד באמת את מערכת ההפעלה ברמה מעמיקה, וחלק משום שזה לא מעניין אותם.
&nbsp
אפשרות אחרת היא לעבור תחום בתוך הסביבה המיקרוסופטית, למשהו שיותר תואם להליכי הרוח בשוק (כלומר מעבר לענן, אם כיום אינך עובד בתחום הענן). בצורה הזו אתה ממשיך למנף חלק מהידע הטכנולוגי שיש לך כיום, ורוכש ידע חדש בתחום מתפתח (כמה מתפתח? מיקרוסופט מסתירים את זה היטב בדוחו"ת הכספיים שלהם בערבבם מכירות מוצרי ענן עם מוצרים שאינם מוצרי ענן בנתון אחד, או בעירבוב מספר שווקים שונים בנתון אחד. למש כמה עולה שוק הענן הגנרי שלהם שבו לקוחות מריצים אצלם מכונות וירטואליות גנריות, לעומת השוק בו הם מוכרים שירותי אופיס ואקסצ'יינג' לעסקים? לא תוכל לגלות את זה מהדוחו"ת שלהם)
 
אני מודה לך מאוד על התשובה המפורטת, להלן

תשובות לשאלותיך:

א. אין לי מומחיות. עברתי בכלל מעולם הRT כי חיפשתי הסבה, ואני תוהה אם זו הסבה נכונה לטווח הארוך.

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

ג. לגבי "לא פה ולא שם" - אחת הסיבות שחיפשתי הסבה היא חוסר האמון שלי בשוק הRT אמבדד בטווח של 20 שנה קדימה. דווקא לאחרונה אני מתחיל לפקפק בזה ונוטה לחשוב שהשוק הזה לא ייעלם ב100 השנים הקרובות.
 

BravoMan

Active member
תראה, אם המחשבה היא "20 שנה קדימה"

אז הדבר היחיד שאתה יכול להסתכל עליו הוא כזה:
&nbsp
Microsoft, גדולה ככל שתהיה, היא רק חברה אחת.
גורל מוצריה קשור אליה בלעדית.
&nbsp
Linux היא מערכת הפעלה שמשותפת למאות, ואולי אלפי חברות שונות ברחבי העולם, ותמיד יכולות להצטרף עוד חברות.
גורל של המערכת הזו וה-Ecosystem החופשי שבנוי עליה אינו קם ונופל עם חברה אחת ספציפית.
&nbsp
וזה הדבר היחיד שיש לו איכשהו משמעות לטווח כזה, בתעשייה דינמית כמו שלנו.
 

BravoMan

Active member
ואני מדבר על כלל ה-Ecosystem שבתוכו אתה עובד

Linux היא רק חלק מהבסיס של ה-Ecosystem הזה, ויש עוד שלל מוצרים "לא מיקרוסופטים" שנהנים מאותו חוסר תלות בחברה בודדת עקב הטבע החופשי שלהם.
&nbsp
הבעיה העיקרית עם MS היא המודל העיסקי שלה, שמחייב את כל המוצרים שלה, לא רק מערכת הפעלה אלא גם קומפיילרים, כלי פיתוח, וכל היתר, להיות סגורים ובשליטתה הבלעדית.
&nbsp
לכן, אם אתה קושר את עצמך לסביבה הזו, אתה קושר את גורלך לגורל החברה הזו בשוק הספציפי בו אתה עובד
&nbsp
אני לא מדבר כאן על האם MS תהיה קיימת עוד 20 שנה.
אני מדבר על היכן היא תהיה בתחום העיסוק שלך עוד שנתיים?
&nbsp
אני מפתח בתחום שהיום נקרא "Mobile" אבל כשהתחלתי בו, הוא עוד היה חלק מ-Embedded, ו-MS שלטה בו.
ואז באו Apple ו-Google וזרקו אותה על התחת מהתחום הזה.
&nbsp
היום אנחנו עשור אחרי, ו-MS עדיין לא הצליחה לחזור לתחום הזה, למרות שזה התחום הכי חם היום.
&nbsp
למזלי, התחלתי לפזול החוצה מהסביבה שלה קצת לפני שזה קרה, אז המעבר לא היה קשה במיוחד עבורי.
&nbsp
ממליץ לך בחום לעשות את אותו הדבר.
 

bismark1

New member
זה מאוד תלוי בתחום

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

BravoMan

Active member
תחום תמיד מכתיב את ה-tool chain

אני לא יודע למה בדיוק אתה קורא "תחומים אפליקטייביים", אבל לרוב השימושים של VS ו-gcc יהיה לך מאוד אכפת באיזה מהם אתה עובד, כי שניהם מכוונים לתוצרים שמאוד תלויים בפלטפורמה.
&nbsp
(אם נהיה הוגנים, זה לא נכון להשוות בין VS שהוא IDE מלא, ל-gcc שהוא רק קומפיילר).
&nbsp
דוגמה טובה יותר היית יכולה להיות מפתח Java, שיעבוד באותם כלים בלי קשר למערכת הפעלה, אבל אפילו כאן ניתן למצוא את ה-"מסביב" ולראות היכן יהיה לו נחמד יותר.
&nbsp
ניקח לדוגמה משתמש מסוים פה, שכותב יישומי Desktop עם ספריה ארכאית מתה מסוימת בת 3 אותיות.
אם מחר לקוח שלו יחליט שאין לו שום סיבה לבזבז כסף על מחשב שולחני חזק מספיק להריץ Windows ועל רישיונות בהתאם רק כדי לדבר עם כרטיס חומרה מסוים, והוא רוצה לחבר את הכרטיס הזה ל-Raspberry \ Cromebook \ טאבלט סיני ב-200 ש"ח שיש לו USB host (לא חסרים כאלה במקרה), מה יעשה אותו משתמש?
&nbsp
לא כ"כ קשה לשבור את MS נקודתית:
&nbsp
(אני מדגיש "נקודתית" כי זו חברה ענקית שחולשת על המון תחומים, ואני לא חושב שמישהו יכול פשוט לקום ולשבור אותה לגמרי).
&nbsp
לפני כמה חודשים ראיתי ווידאו מכירות על "גרסה מיוחדת של Windows 10 לבתי ספר" ש-MS הפיקו.
בפועל, הדבר היחיד שבאמת מיוחד בגרסה הזו, זה עלות הרישוי המאוד זולה שלה, שמטרתה לנסות לשכנע בתי ספר שרואים מלא תוכנה חופשית (as in free speach not free beer) שעונה לצרכים שלהם וגם יותר חינוכית, בכל זאת להישאר בגן הסגור של MS.
&nbsp
זוכר את ה-Windows 7 Starter?
איזו חברה שמכבדת את עצמה תשקיע זמן פיתוח כדי להוריד שורה בתפריט שמאפשרת החלפת טפט, וזאת כדי שתוכל לבקש מחיר נמוך יותר על הרישיונות ולהיכנס לתחום שגם ממנו היא כמעת עפה על התחת?
&nbsp
ואני שמח שהזכרת את Apple:
אפשר לומר ש-Apple היא זו שיצרה את שוק ה-Mobile כפי שאנו מכירים אותו כיום.
&nbsp
ועדיין, תוך 4 - 5 שנים, היא התדרדרה מ-100% בשוק שהיית חלוצה בו, ל-20% - 15%.
&nbsp
למה?
בדיוק בגלל השליטה המוחלטת - Google הלכה לכיוון ההפוך, והצליחה לקחת ל-Apple את השליטה בשוק.
&nbsp
אז עם מי בדיוק יישר קו היום מפתח או חברה שמעוניינים להגיע להכי הרבה משתמשים?
&nbsp
כמו למשל Supercell שמ-3 משחקים חינמיים לחלוטין, שהם בכלל משחק וחצי בפועל, הצליחו להביא רווחים של 3 מיליארד דולר בשנה שעברה...
יש להם מספיק כסף כדי להפיק פרסומות עם ליאם ניסן!
 

bismark1

New member
אני חושב שאתה מערבב

הדוגמה של ג'אווה שנתת היא בדיוק מה שאני מכוון אליו, ברור שיש העדפות אישיות וייתרונות אובייקטיבים למערכות שונות אבל למפתח כזה, כל עוד הוא לא עושה משהו מאוד ספציפי למ"ה, לא יקרה שום דבר רע מקצועית בגלל פיתוח מעל מ"ה X כי מה שהוא מוכר למעסיקים זה לא מומחיות במ"ה.
רוב הקוד שאני כותב היום הוא ++C, ספציפית עם אוריינטציה לראייה ממוחשבת/ML - ממש לא מזיז לי לעבור בין חלונות ללינוקס (עד כדי העדפות אישיות וכמה דברים שונים בין הסביבות שצריך להתרגל אליהם), כנ"ל לגבי הסקריפטים שאני מריץ בפייתון - 99% מהידע רלוונטי לכל מ"ה. המצב של מי שמושקע במערכת ההפעלה שונה מהבחינה הזו - אם אתה מומחה win internals ואתה רוצה להיות מומחה לינוקס אתה זורק למעשה חלקים גדולים של הידע שלך, כנ"ל אם אתה איש RT מומחה ל-vxWorks (וכן, כנ"ל אם אתה מומחה MF-פיכס).

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

BravoMan

Active member
אולי באמת קצת נסחפתי הצידה

אבל יש לי שתי מילים בשבילך:
#pragma once

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

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

אז אולי אתה לא צריך לדעת OS internals כדי לכתוב קוד ML, אבל אם אתה רוצה שהסביבה באמת לא תהיה דאגה שלך, אתה צריך לבנות את הקוד בצורה מאוד מסויימת.

גם כשעובדים ב-Python ו-Java לא הכי קל להתחמק ממערכת הפעלה.
במקרה, יצא לי לכתוב יישום שולחני שהיה צריך לרוץ על Windows ו-Linux, ואכן בחרתי ב-Python ו-PyGtk כדי לממש אותו.

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

בכל מקרה, אם השאלה היא "האם כדאי ללמוד לינוקס", אולי צריך קודם כל לבקש חידוד מה זה בדיוק "ללמוד לינוקס"?

האם אנחנו מדברים על שימוש בסיסי, על רמה של Power User, על הכירות עם מבנה כללי של המערכת ושיתות עבודה עליה, או על להפוך למפתח kernel?

וכמובן, יש עוד הרבה דברים באמצע, זו סקלה די חלקה.

אישית, אני חושב שכל מפתח תוכנה שמכבד את עצמו צריך להכיר מערכות מבוססות Linux לפחות ברמה של שימוש בסיסי, ועדיף ברמה של Power User.

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

bismark1

New member
ודאי, אבל הנקודה היא מה קורה עם הידע

לא ניסיתי לטעון ש-++C היא cross platform ברמה של write once אלא שאם המומחיות שאתה מביא (אפליקטיבית - תקשורת/עיבוד תמונה/פיננסים/מערכות מידע/בקרה וכו' ו/או טכנית - ארכיטקטורה/אלגוריתמים/חישוב מבוזר וכו') מנותקת ממערכת ההפעלה אז רוב הידע שלך נשאר רלוונטי גם כשאתה צריך לזוז מסביבה לסביבה. בקונטקסט הזה, התשובה להאם כדאי "ללמוד לינוקס" או "לעבור ללינוקס" תלויה בסוג המומחיות שאתה רוצה לפתח.

עם המשפט האחרון שלך אני מסכים.
 

ipv6

Member
אתה יכול לתת דוגמאות קונקרטיות?

על איזו התנהגות לא מוגדרת הסתמכת, באיזו קומפלייר זה עבר בסדר ובאיזה אכלת אותה?

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

ויצא לי לעבוד בחברות Low level-יות יחסית (הרבה יותר מעיבוד תמונה או ML) ובכולן, רב הצוותים לא היו צריכים להכיר את מערכת ההפעלה מעבר לידע בסיסי.
היו תשתיות שכתבו צוותים יעודיים ועיקר העבודה הייתה הלוגיקה של המוצר עצמו. המוצר לא היה Cross platform אבל לדעתי כמות הקוד שבאמת תלויה ב-OS הייתה מיעוט יחסית זניח. אני לא יכול להגיד כלום על הקושי של להריץ את המוצר על OS אחר אבל ביום יום היה מעט שימוש ב-API של מערכת ההפעלה אלא בתשתיות פנימיות.

אני כן מסכים איתך שהיכרות של לינוקס הן ברמת ה-power user והן ברמת ה-beginning linux programming היא חשובה, למהנדסים.
לאלגוריתמאים זה כנראה לא קריטי.
 
למעלה