עבור לתוכן

למה משמשת היום שפת C ?

Featured Replies

פורסם

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

אולי פעם הדברים האלה היו יכולים להיות עשר

השאלה למה היום בשנת 2007 באמת משמשת שפת C, באיזה מקומות משתמשים בה, לאן ולמה היא יכולה להועיל? (זאת השאלה העיקרית?)

תודה רבה רבה,

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

פורסם

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

היא מועילה, כי היא שפה שדי קרובה למכונה בלי בפועל לכתוב קוד בשפת מכונה. אתה גם די יודע בגדול מה קורה בלי הפתעות שנלוות לתכונות של שפות קלות/גבוהות יותר (כמו אוסף אשפה שרץ, הרצת אינטרפטציה וכו').

פורסם

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

פורסם
  • מחבר

תודה רבה לשניכם על התשובות (:

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

כי פשוט עד כמה שהבנתי, לסקריפטים ולתוכנות קטנות בוינדוס בדר"כ משתמשים ב-VB וכו...

פורסם

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

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

תודה רבה לשניכם על התשובות (:

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

כי פשוט עד כמה שהבנתי, לסקריפטים ולתוכנות קטנות בוינדוס בדר"כ משתמשים ב-VB וכו...

אם יש משתמשי פורום שעוסקים בתחומים האלו, זה כדאי. גם הכרה טובה של שפה כזו מלמדת אותך יותר על איך המחשב עובד, איך מאוכסנים דברים בזכרון וכו'. גם לרוב אתה יכול לכתוב תוכנות שלא מסתמכות על דברים אחרים ששפות אחרות מתסמכות (virtual machine כמו .net או interpeter בשביל שפות P או ספריות dll שיהיו מותקנות כמו mfc/visual basic).

בגדול אבל כמו שאמרת, למרבית הפעולות הרגילות, יש שפות שיותר כדאיות להתעמק בהם מאשר C.

פורסם

למשל:

אני משתמש ב-C לחלק ממערכת בקרה על מערכת אופטיקה מסתגלת:

- עיבוד תמונה: זמן ריצה של קוד מקביל ב- MATLAB גדול בסדר גודל אחד מהמקביל ב- C.

- שליטה על חומרה ישנה: חלק מהמערכת האופטית היא מראה גמישה, אני שולט על המראה בעזרת ספריית מיפוי tvicport לחומרה ב-C.

כל הפונקציות מקומפלות לספריות MEX ב- MATLAB וככה ניתן לסגור חוג בקרה בזמן סביר (אולי :kopfpatsch:).

פורסם

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

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

רק תחשוב כמה קל לדוגמא לעשות memory leak ב C

משתמשים ב C הרבה בשביל לכתוב קוד עם דגש על ביצועים ויעילות.

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

פורסם

על עצמי -

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

אם צריך ממשק גרפי, אני משתמש בVB 6.

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

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

פורסם

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

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

בשביל הפרוייקט, לדוגמה אם הייתי בונה פורץ סיסמאות או תוכנה להתקפות MITM או backdoor אז C זאת אחלה שפה לעבוד איתה.

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

פורסם

חברה, אתם הולכים רחוק מדי. אנשים אוהבים לומר שעל C ו-C++ אבד הקלח, אבל עדיין עוד לא הגענו לשם.

מעל 90% מהתוכנות שאתם משתמשים בהם כתובות ב-C או ב-C++:

* ליבת מערכת ההפעלה שאתם עובדים איתה כתובה ב-C. שלא נדבר על דברים כמו מערכת הקבצים.

* הדפדפן שאתם משתמשים בו בזה הרגע כתוב ב-C++.

* גם תוכנת הדואר האלקטרוני שלכם כתובה ב-C++.

* ה-media player שלכם וכל ה-codec-ים שלו כתובים ב-C וב-C++.

* גם תוכנת ה-IM שלכם - אתם עובדים עם triallian או GAIM, נכון? :)

* גם הרבה תוכנות המקצועיות עדיין נכתבות ב-C או C++. תוכנות בסגנון Photoshop, Office וכו'.

* רוב המשחקים שאתם משחקים על המחשב כתובים ב-C++, לפעמים בשילוב עם שפת סקריפטים כגון LUA בשביל ה-game logic.

* רוב ה-DLL-ים שהרבה תוכנות במחשב שלכם עובדים איתם כתובים ב-C. כל הדרייברים שלכם, וכן directX, ו-openGL כתובים ב-C או C++.

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

* המודם שמחבר אותכם לאינטרנט כתוב ב-C. גם ה-router שלכם (אם יש לכם).

* המחשב(ים) ברכב שלכם כתובים ב-C (או assembly).

* במרכזיות הטלפונים, יחד עם עוד שפות כמו erlang (יש לכם מושג כמה מורכבת רשת הטלפונים)?

* יש בתוך ה-DVD שלכם DSP. הוא כתוב ב-C ואסמבלר. בלעדיו לא תוכלו לראות DVD-ים.

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

פורסם

אני מפתח EMBEDDED\RT בC בלבד.

פורסם

אחי סי אלף כל שפה אחת החזקות המהירות

היא שפה מאוד מהירה מבחינת ביצועים וקלות עבודה

ולמה משתמשים בה?

נגיד את רוצה עכשיו לא יודע להצביע לאתר שלך בטופ10

עשיתי לדוגמא בשפת סי תוכנה ש"לוחצת" על לחצן ההצבעה

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

למרות שמה שעשיתי זה להקל על תהליכים במחשב

השפה בנויה לבניית תוכנות מאוד מורכבות בדרך כלל חישובים מסובכים , פיסיקליים

חוץ מזה שילוב של סי עם שפות אחרות הוא עליון!!

פורסם

אחי סי אלף כל שפה אחת החזקות המהירות

היא שפה מאוד מהירה מבחינת ביצועים וקלות עבודה

ולמה משתמשים בה?

נגיד את רוצה עכשיו לא יודע להצביע לאתר שלך בטופ10

עשיתי לדוגמא בשפת סי תוכנה ש"לוחצת" על לחצן ההצבעה

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

למרות שמה שעשיתי זה להקל על תהליכים במחשב

השפה בנויה לבניית תוכנות מאוד מורכבות בדרך כלל חישובים מסובכים , פיסיקליים

חוץ מזה שילוב של סי עם שפות אחרות הוא עליון!!

בדקת יעילות? איך אתה יודע שדווקא בC מה שיצרת למעלה יעבוד הכי מהר?

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

היתרון המובהק בC לעומת C++ זה שהיא "נקיה" יותר.

פורסם

יש לציין שמתכנתים הם אנשים שמרנים לא פחות ואף יותר משאר בני התמותה, לא ממש בא להם ללמוד שפה חדשה, מה שהמתכנת למד באוניברסיטה זה מה שהוא רוצה לכתוב בו.

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

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

ולא אריץ את התכנה ב WIndows או UNIX אלא במערכת זמן אמת.

אולי אפילו אכתוב איזה משהו קטן באסמבלר..

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

אבל היא בסיס לימודי מצויין ממנו אחרכך ניתן לעבור לשפות גבוהות יותר, או נמוכות יותר.

פורסם

סיבוכיות של שפת מחשב נמדדת במספר המילים השמורות בה

יש לציין שמתכנתים הם אנשים שמרנים לא פחות ואף יותר משאר בני התמותה, לא ממש בא להם ללמוד שפה חדשה, מה שהמתכנת למד באוניברסיטה זה מה שהוא רוצה לכתוב בו.

הקשקוש הכי מצחיק ששמעתי בזמן האחרון

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים