שC היא שפה פרוצדוראלית, זאת אומרת שאין פולימורפיזם, הורשה, וכימוס, כול הכתיבה נעשית דרך פונקציות.ההבדל הבא הוא שב-C יש פויינטרים והקצאת זיכרון, בשפות כמו Java וC# אין לך צורך בזה, יש GC שדואג להקצות ולשחרר זיכרון לכול האובייקטים שלך.
C++ היא האחות הקטנה והמשופרת של C, היא תומכת בצורה מלאה בתיכנות מונחה עצמים, מה שאומר שיש לך כימוס, הורשה ופולימורפיזם כמובן עם כול התכונות שמגיעות מC שזה אומר פויינטרים, ועבודה ישירה מול הזיכרון.
בין C לC++ מבחינת יכולת אין הבדל, מבחינת מהירות C יותר מהירה.
בין C לJAVA יש המון הבדלים, אחד מהם שכדי לרדת לרמת LOW LEVEL אתה תשתמש בC ולא בJAVA.
יש בטח עוד המון הבדלים שלא ציינתי
וקומפיילר טוב כדי לכתוב C וC++ זה Visual Studio כמובן.
בשביל JAVA יש לך את Eclipse החינמי.