שיחה:תכנות מחשבים

תוכן הדף אינו נתמך בשפות אחרות.
הוספת נושא
מתוך ויקיפדיה, האנציקלופדיה החופשית
תגובה אחרונה: לפני 8 שנים מאת IKhitron בנושא תכנות למתחילים

שפות תכנות[עריכת קוד מקור]

זה רק אני או שהחלוקה המוצעת בדף נראית מעט "מופרכת"?

ממתי HTML/XHTML הן שפות תכנות? CGI מוגדר בכלל כממשק בין שרת ווב לתוכנות חיצוניות.

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

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

או להפך, אין שום סיבה שלא יהיה ניתן לכתוב interepter לשפה כמו C.

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

משתמש:idansof

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

משתמש:costello


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

אולי כדאי לעשות טבלת השוואה לפי מבחר קטגוריות, משתנים סטטיים/דינאמיים, weak/strong typing, פרוצדורות, כיוון עצמים, וכן הלאה.

משתמש:idansof

מתודולוגיות[עריכת קוד מקור]

  • שיטות התיכנות המפורטות אינן נחשבות כמתודולוגיות בהנדסת תוכנה. רנדום 17:00, 2 בספטמבר 2006 (IDT)תגובה
  • תיאור תהליך פיתוח התוכנה כקווי אליבא דמודל מפל-המים הוא הטעיית הציבור, לא פחות. רנדום 13:00, 9 בספטמבר 2006 (IDT)תגובה
    • זה פשוט לא נכון, יש שפות תכנות פרוצדורליות ויש מתודולוגיה פרצדורלית. זה אמנם קשור מאוד אבל לא זהה, אפשר לעבוד במתודלוגיה מונחת עצמים גם בשפה פרוצדורלית (אף על פי שמניסיון זה הרבה פחות נוח).
    • לא הבנתי מה הבעיה עם התיאור, הוא בעיקרון נכון תמיד, כמובן שזה מודל תיאורטי ובפועל העניינים מסתבכים (למשל המערכת מושלמת בחלקים). טרול רפאים 13:08, 9 בספטמבר 2006 (IDT)תגובה

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

נוטה להסכים עם אוריון[עריכת קוד מקור]

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

כהערת אגב אוסיף ששמו של הספר לא מרמז על דבר. ספר שבו שלושה עמודים עוסקים בדיון אודות פונקציות ה-floow וה-ceiling לא בדיוק מחזק את הטענה שמדובר באמנות. המתעתקשיחה 02:24, 1 ביולי 2007 (IDT)תגובה

כשמישהו יתלה על קיר ביתו תוכנת מחשב, אסכים להודות שמדובר באומנות. לעת עתה, זה שספר כלשהו, שכאמור לעיל הנו טכני ולא פילוסופי, מעיד על היות התכנות אומנות לא מספיק בעיני. אוריון 22:14, 3 ביולי 2007 (IDT)תגובה
ואגב, במשפט "The Art of Computer Programming " המלה Art כוונתה קרוב לוודאי אוּ‏מנות, לא אוֹ‏מנות. אוריון 22:21, 3 ביולי 2007 (IDT)תגובה

מי הוא מתכנת[עריכת קוד מקור]

"העוסקים בתחום אינם נדרשים להסמכה רשמית כלשהי כדי לכנות את עצמם 'מתכנתים' או אף 'מהנדסי תוכנה'" ? אני נעלב... מה בעניין תואר "מהנדס"? --‎Shambler21:14, 4 ביולי 2007 (IDT)תגובה

לא הבנתי למה נעלבת... הכתוב בערך מתאר הלכה למעשה את המצב בענף: גם מי שכתב שורת קוד ב-Visual Basic, רשאי לכנות את עצמו "מתכנת" או אף "מהנדס תוכנה", וכידוע, יש כאלה העושים כן :-) הבעיה כמובן היא העדרה של תוכנית הסמכה תקנית למקצוע. רנדום 21:25, 4 ביולי 2007 (IDT)תגובה
כנראה אני מפספס משהו - מה בנושא B.Sc? מוכר לפנקס המהנדסים!.... --‎Shambler00:23, 5 ביולי 2007 (IDT)תגובה
אני לא מבין מה אתה נעלב. יש מתכנתים רבים שעובדים במקצוע בלי שום הסמכה רשמית. זה המצב בפועל. יש כמובן גם כאלה עם הסמכה רשמית. המעסיקים (אלו שמבצעים את הדרישה) אינם דורשים תמיד תעודות רשמיות. אפשר אולי להגיד שהמשפט לא מדוייק שכן מי שמכונה מהנדס תוכנה בדרך כלל הוא בעל BSC או מהנדס. האזרח דרור 16:45, 5 ביולי 2007 (IDT)תגובה
אני לא באמת נעלב, לא לדאוג. אני רק אומר שלא ראיתי אף אחד שמציג את עצמו בתור מהנדס תוכנה והוא לא מהנדס, לפחות. --‎Shambler17:57, 5 ביולי 2007 (IDT)תגובה
בערך מהנדס יש הסבר על המותר והאסור בתחום זה. דוד שי 18:40, 5 ביולי 2007 (IDT)תגובה
צודק, אני מציע להעביר את הדיון לדף השיחה של הערך, ולאורו לשנות את המשפט הנ"ל. ‎Shambler18:44, 5 ביולי 2007 (IDT)תגובה
שיניתי. דוד שי 18:59, 5 ביולי 2007 (IDT)תגובה

שפות זרות?[עריכת קוד מקור]

האם אפשר לכתוב תכנה בשפה שהיא לא אנגלית? מישהו ספר לי שהוא כותב תכנות בדיאלקט סיבירי כלשהו. שונרא - שיחה 17:31, 3 בינואר 2009 (IST)תגובה

תוכנה אינה נכתבת באנגלית, היא נכתבת בשפת תכנות, שלה אוצר מילים (מצומצם למדי) משלה. שפות התכנות הנפוצות מתבססות על אוצר מילים שמקורו באנגלית, אך אין מניעה טכנית להמיר את אוצר המילים בכזה שמקורו בשפה אחרת. למעשה, בעת כתיבת מהדר אין קושי רב להוסיף לו יכולת להחליף, בהתאמה חד-חד ערכית, את אוצר המילים שלו באוצר מילים אחר (ומוזר שלא שמעתי על מהדר שיש בו אופציה זו). זכורה לי גרסה של לוגו, שבה אוצר המילים המקורי הוחלף באוצר מילים שמקורו בעברית, למשל "קדימה" במקום FORWARD. לוגו נועדה לילדי בית הספר היסודי, ולכן חשוב בה במיוחד להתאים את אוצר המילים לזה המוכר לילד. דוד שי - שיחה 18:27, 3 בינואר 2009 (IST)תגובה

תכנות למתחילים[עריכת קוד מקור]

אני כבן 50 ומעוניין להכיר את העולם של מדעי המחשב, חברים יעצו לי להתחיל ללמוד את שפת c כמעין מבוא לעולם התכנות. האומנם? האם יש ספר מבוא טוב ונוח למתחילים? תודה לעונים. 85.250.46.198 19:49, 1 במרץ 2016 (IST)תגובה

דעה אישית ולא מחייבת אף אחד: לא. שפה ממש לא מתאימה לכך. יגאל (בקשת עזרה, IKhitron ושיחה) 19:50, 1 במרץ 2016 (IST)תגובה
תודה, אם כן, מה כן מתאים? 85.250.46.198 19:53, 1 במרץ 2016 (IST)תגובה
שוב, דעה אישית ולא מחייבת. רק מתוך ניסיון של מי שמלמד עקרונות שפות תכנות באוניברסיטה שנים רבות - כשפה ראשונה עדיף לקחת שפה שאין בה "מוזרויות" שמשנות את המשמעות, נקרא לזה ככה, אלא שפה שמה שרואים בה זה מה שקורה (בבלשנות קוראים לזה שפות פונטיות). מתכנת מנוסה ידע במה מדובר כי הוא יכול להשוות בראש, אפילו בלי לחשוב, אותם דברים בשפות שונות. אני הייתי ממליץ להתחיל מ-java, מ-scheme, או אולי אף מ-logo (רק אחת מהן, בסדר עדיפות יורד). לאחר מכן אפשר לעבור ל-c. יגאל (בקשת עזרה, IKhitron ושיחה) 19:58, 1 במרץ 2016 (IST)תגובה
תודה רבה לך, אם כן, איזה אתר (גם באנגלית) או איזה ספר היית ממליץ? 85.250.46.198 20:04, 1 במרץ 2016 (IST)תגובה
זה כבר לא אליי. אני מלמד ממערכי שיעור שנכתבו "מהזיכרון". אולי מישהו אחר יענה. יגאל (בקשת עזרה, IKhitron ושיחה) 20:06, 1 במרץ 2016 (IST)תגובה
שפת c היא האחרונה שהייתי חושב עליה כמבוא לעולם התכנות. זו שפה קשה מאוד למתחילים שרוצים לדעת יותר מאשר Hello world. ללימוד עצמי אני ממליץ על לוגו, אף שאיננה שפה פרוצדורלית סטנדרטית. אפשרות ממוסדת יותר היא לקחת קורס מבוא באוניברסיטה הפתוחה. דוד שי - שיחה 07:06, 2 במרץ 2016 (IST)תגובה
אפשר גם לקחת קורס ב-coursera. יש שם קורסים למתחילים ב-python ואולי בעוד שפות. אינג. יונה ב. - שיחה - הבה נכחילה 08:13, 2 במרץ 2016 (IST)תגובה
תודה רבה לעונים. 93.173.132.0 08:37, 2 במרץ 2016 (IST)תגובה
https://www.codecademy.com/ ―אנונימי לא חתםמש:אנונימי 00:00, 10 בינואר 2000 (IST)תגובה
אני אישית לא מת על ג'אווה כשפה למתחילים: לעניות דעתי צריכים לכתוב שם יותר מדי דברים לא מובנים כדי להתחיל לקבל תוצאות (נסה להסביר מהי המשמעות של כל דבר בתוכנית Hello world). מהבחינה הזו אני מעדיף את פייתון. Tzafrir - שיחה 12:12, 2 במרץ 2016 (IST)תגובה
אני דווקא חושב שכל דבר שם מובן מאליו. ומעולם לא למדתי פייטון כי אני לא סובל את הרעיון מאחוריו. יגאל (בקשת עזרה, IKhitron ושיחה) 13:01, 2 במרץ 2016 (IST)תגובה
למה הכוונה, אם אפשר לשאול? (אני גם לא יודע פייתון, אבל מכיר שפות אחרות) עופר קדם - שיחה 04:59, 3 במרץ 2016 (IST)תגובה
אפשר. הדקדוק שלה. אם מוסיפים רווח נוסף בין שתי מילים שמורות, המשמעות של הקוד המשתנה. יגאל (בקשת עזרה, IKhitron ושיחה) 15:11, 3 במרץ 2016 (IST)תגובה
תוכל להרחיב על כך? אני כותב בפייתון (לצרכי הדלים) כבר הרבה שנים, ומעולם לא נתקלתי במה שאתה מתאר. אני גם לא מצליח למצוא שום אזכור לכך בגוגל. תומר א. - שיחה - משנה ויקיפדית 18:11, 3 במרץ 2016 (IST)תגובה
אוכל להביא דוגמה:
num = float(input("Enter a number: "))
if num >= 0:
    if num == 0:
        print("Zero")
    else:
        print("Positive number")
מול
num = float(input("Enter a number: "))
if num >= 0:
    if num == 0:
        print("Zero")
else:
    print("Positive number")
אני לא אומר שזה רע אובייקטיבית, זה פשוט עושה רע לי אישית. יגאל (בקשת עזרה, IKhitron ושיחה) 19:24, 3 במרץ 2016 (IST)תגובה
זה רע אובייקטיבית. תוכנה היא יצור חד-ממדי: רצף של תווים שהקומפיילר יודע לקרוא. לרשות המחשב עומדים תווי-רווח מכמה סוגים שאי אפשר להבדיל ביניהם בעין (רווח רגיל, טאב, סוף שורה). ההבדל בין שתי הדוגמאות שהבאת אינו ניתן להצגה חד-ממדית בלי שימוש בתווים המיוחדים האלה (בגלל האפשרות להוסיף רווחים בסוף שורה), ולכן במעבר לתצוגה לעין-אנוש ההבדל מופיע אך ורק במבנה הדו-ממדי. כלומר, הוספנו ממד שלם, בלי להרוויח שום דבר. עוזי ו. - שיחה 15:36, 4 במרץ 2016 (IST)תגובה
אתה אמרת. יגאל (בקשת עזרה, IKhitron ושיחה) 15:53, 4 במרץ 2016 (IST)תגובה
וביננו, אם היו אומרים לי לבחור במה לעבוד - פייטון או intercal, התשובה היא not obvious. יגאל (בקשת עזרה, IKhitron ושיחה) 16:17, 4 במרץ 2016 (IST)תגובה
פייתון (מונטי ולא מאנינג). לעוזי: הרווח הוא חסכון בשורות. שים לב שעוד הרבה לפני פייתון, ככה בדיוק כתבו פסאודו קוד בכל מיני דוגמאות. ומהסיבה הזו כמעט כל תוכניתן סביר בכמעט כל שפת תכנות סבירה משתמש בפועל בעימוד. אז למה לא לוותר על היתירות? תרגם את הדוגמאות שלך ל־C או כל שפה דומה:
char* num_test(int num) {
  if (num >= 0)
    if (num == 0)
        return "Zero";
  else
    return "Positive number";
  return "A number";
}
מול
char* num_test(int num) {
  if (num >= 0) {
    if (num == 0) {
        return "Zero";
    }}
    else
      return "Positive number";
  return "A number";
}
בתוכנית הראשונה היישור מרמז על כך שה־else הוא מה־if החיצוני. בפועל נדמה לי שהוא מה־if הפנימי, אבל לא זכור לי בדיוק. במקרה השני היישור שוב מטעה וזאת למרות נוכחותם של סימני {}, מכיוון שהשימוש בהם לא לגמרי סטנדרטי (ולא, לא צריך להעיר לי שהקוד הזה לא מתקמפל. שמתי לב).
התוכניות הללו מדגימות איך תוכניתנים בפועל מסתכלים קודם על היישור ורק לאחר מכן על הסימנים התחביריים האמתיים. Tzafrir - שיחה 18:29, 7 במרץ 2016 (IST)תגובה
לא ברור לי מה אתה מנסה להוכיח באמצעות דוגמא שאינה מתקמפלת. אפשר להשוות דוגמאות שכן מתקמפלות, שבהן ההצגה הגרפית סותרת לכאורה את תחביר השפה, ולשאול איך יבין *אותן* מתכנת מן השורה. אני חולק על ההנחה שרוב מכריע יטעה רק בגלל העימוד. עוזי ו. - שיחה 18:53, 7 במרץ 2016 (IST)תגובה
ערכתי קצת, ועכשיו הן נבנות (עם האזהרה המתבקשת). התוספת שנדרשה הייתה הטיפול במקרה שבו לא החזרתי כלום. כמוכן שיניתי במקצת את הדוגמה השנייה. וכמובן שיש טעויות מפורסמות שנגרמו מסיבות דומות. Tzafrir - שיחה 19:42, 7 במרץ 2016 (IST)תגובה
ההזחה אמורה לעזור בקריאה, לא בהדרה. יגאל (בקשת עזרה, IKhitron ושיחה) 19:57, 7 במרץ 2016 (IST)תגובה

חזרה לשאלה המקורית: התגלגל לידי ספר בשם: Code Complete בתרגום לעברית של אשר ברק, ואף על פי שהספר מיועד לאנשי מקצוע ותיקים מצאתי בו עניין רב, ושאלתי היא האם יש ספרים דומים בעברית? כלומר, ספר שנותן מידע מעמיק לצד דיון פשוט ביסודות. תודה לעונים.109.186.37.7 18:58, 5 במרץ 2016 (IST)תגובה

כיוון שאתה שואל על מדעי המחשב, ולאו דווקא על תכנות, אני ממליץ בחום על ספריו של דוד הראל, "פרקי יסוד במדעי המחשב" ו"אלגוריתמיקה: יסודות מדעי המחשב". דוד שי - שיחה 22:50, 5 במרץ 2016 (IST)תגובה
מבחינת פשטות - שפת ה־BASIC כשמה כן היא - תחביר בסיסי פשוט מאוד, זו הייתה שפת התכנות הראשונה שלי שנלמדה בחוג (לאחריה נלמדו לוגו ופסקל במסגרות בית-ספריות, בפועל עוסק כיום בעיקר בשפת הסקריפטים BASH). נת- ה- - שיחה 23:03, 5 במרץ 2016 (IST)תגובה