מתי נשתמש בכל שפה? במיוחד JAVA ו C#

למהככה2

New member
מתי נשתמש בכל שפה? במיוחד JAVA ו C#

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

תודה
 

Guy Yafe

New member
יש כל כך הרבה סיבות לשימוש בכל אחת מהשפות

אני אתמקד רק ב - C# מול JAVA
כל מה שאני כותב כאן מבוסס על חוויות אישיות שלי ועל דעה אישית (מוטה לטובת JAVA)
&nbsp
התחביר של C# אכן קצת יותר מוצלח משל JAVA, ובחלק גדול מהמקרים אזור הנוחות שלך הוא בהחלט שיקול משמעותי.
&nbsp
לJAVA יש Java Beans שמאפשרים כמעט את כל היכולות ש - get/set ב-C# נותנים, מה גם שהיום IDE ראוי לשמו משלים לך את החוסרים האלה.
&nbsp
טוענים שלJAVA יש ביצועים יותר טובים מל - .net ואני חושב שזה נכון.
&nbsp
אם אתה רוצה לפנות ישירות לAPI של חלונות, C# היא חד משמעית הבחירה עבורך.
&nbsp
אם אתה רוצה מערכת שהיא cross-platform, אז C# לא אפשרית בכלל.
&nbsp
לJAVA יש eco-system יותר רחב בכל מה שקשור לעבודה עם כלים חיצוניים וספריות חיצוניות, אז אם אתה מסתמך על שימוש מסיבי בכל NoSQL, Big Data, Math וכדומה, JAVA עדיפה.
&nbsp
אם יש לך צוות שהמומחיות שלו היא בשפה מסוימת או שאתה מקבל קוד קיים (וברמה גבוהה) שכבר כתוב בשפה מסויימת, כדאי לך להמשיך איתו.
&nbsp
בקיצור יש כל כך הרבה שיקולים לבחור בכיוון אחד על פני השני. אני בטוח שכל אחד שיגיב פה יוסיף עוד שיקולים ויחלוק על חלק מהשיקולים שהעליתי.
ההחלטה הזו היא לא חד משמעית, והרבה פעמים תמצא את עצמך מחליף שפת פיתוח (וזו ממה לא בושה).
&nbsp
בהצלחה
 

למהככה2

New member
תגובה נהדרת

נתת לי הרבה כיוונים
ברור שאפשר דרך IDE ללחוץ בכפתור הוא יצור לי SET GET , אבל עדיין הפונקציות האלה יכערו לי את הקוד+ כשצריך לעשות השמה/לקבל ערך צריך לפנות לSET ו GET שזה מכוער
יש לזה פתרון? להסתיר את זה כמו ב C#?

תודה
 

Guy Yafe

New member
מכוער זה עניין של השקפה

בJAVA אין מנגנונים כמו ב - C#.
JavaBean זה בסך הכל אובייקט JAVA שלכל אחד מהשדות שלו יש מתודות GET ו-SET תואמות.
זה לא חלק מהתחביר של השפה או מהAPI של JAVA, אבל כל כלי שמתבסס על REFLECTION (סריאליזציה, שפיכה לבסיס נתונים וכו') יודע להשתמש במתודות האלה על פי אותה קונבנציה.
 

BravoMan

Active member
אף פעם!

אף מתכנת, ואפילו אף חברת תוכנה, לא משתמשים בכל השפות.
יש סביבות הטרוגניות יותר, והטרוגניות פחות, אבל יש כ"כ הרבה דברים שנגררים עם שפה מסוימת, שלבחור בה בגלל פיצ'ר אחד מסוים, או אפילו אוסף פיצ'רים, לא יהיה הגיוני.
&nbsp
ולפעמים, מפתחי הפלטפורמה אליה אתה מכוון, בוחרים את השפה עבורך.
למשל, אם תרצה לפתח יישום ל-Android, לא תוכל להתחמק מ-Java.
(האמת שתוכל, אבל התוצאות לא יהיו יפות במיוחד)
&nbsp
אם תרצה לפתח ל-iOS, תצטרך לעבוד עם Obj C או Swift.
&nbsp
כמו ש-Guy כתב, יש המון שיקולים.
ואחד השיקולים החשובים שלא מוזכרים הרבה, הוא הכרות עם השפה.
לא פעם אומרים ש-C ו-++C הן יעילות יותר משפות כמו #C ו-Java כי הן קרובות לחומרה, אבל בפועל, אם אתה מפתח לא טוב, שלא מכיר את השפות או לא יודע אלגוריתמים בסיסיים, אתה יכול בקלות לייצר בשפות האלה קוד שיזחל.
&nbsp
עוד שיקול שלדעתי Guy לא הזכיר, הוא זמן פיתוח: מי שמפתח לפרנסתו, תמיד קצוב בזמן, ולפעמים עדיף להשתמש בשפה פחות "יפה" או פחות "יעילה" אבל לסיים את כתיבת הקוד יותר מהר.
&nbsp
דוגמה מעניינת לכך ראיתי בהרצאה של מהנדס בכיר מ-Facebook בכנס ++C של MS: הוא מספר, ש-FB עצמו מפותח ב-PHP, כי היא מאפשרת לכתוב את הכל מהר, ולא קשה למצוא מתכנתים שבקיעים בה.
&nbsp
אבל, כדי לתת את התפוקה הנחוצה בשרתים העמוסים של החברה, יש להם צוות מיוחד, שכל התפקיד שלו זה לפתח קומפיילר מ-PHP לגרסה מצומצמת ויעילה במיוחד של ++C, שייקח את כל הקוד PHP של FB אוטומטית יקמפל אותו ל-Native.
&nbsp
הוא סיפר שם על כמה אופטימיזציות מטורפות שהם עושים, כמו למשל הימנעות משימוש ב-vtables.
 
למעלה