اینها سوالاتی است که هر برنامه نویسی در شروع کارش با آنها کلنجار میرود. خیلی ها ممکن است سالها فقط روی اینکه چه زبانی را انتخاب کنند وقت بگذارند و هیچگاه برنامه نویسی را شروع نکنند! مثلا خودم حدود یک سال طول کشید تا تصمیم بگیرم روی چه زبانی بیشتر کار کنم ولی خوشبختانه بالاخره شروع کردم. واقعیت این است که همان طور که هر کسی را بهر کاری ساختند، هر زبانی را برایی ساختند! هر زبان برنامه نویسی برای کار خاصی مناسبتر است و باید بسته به نیاز خودمان، زبان مناسب را انتخاب کنیم. واقعیت مهمتر این است که آنچه اهمیت دارد، یادگرفتن یک زبان برنامه نویسی است، چرا که وقتی یک زبان را خوب یاد گرفتید، یادگیری سایر زبانها، به یک سرگرمی مفرح تبدیل میشود!
کلا زبانهای برنامه نویسی را به دو دسته مهم میتوان تقسیم کرد: زبانهای برنامه نویسی دسکتاپ و زبانهای برنامه نویسی وب؛ زبانهای برنامه نویسی دسک تاپ برای تولید نرم افزارهای کاربردی مثل برنامه های آفیس، نرم افزارهای اتوماسیون اداری، نرم افزارهای چند رسانه ای و هر چیزی دیگری که فکرش را بکنید! و بتوان روی کامپیوتر شخصی اجرا کرد، استفاده می شوند. از سوی دیگر زبانهای برنامه نویسی وب به طور خاص برای تولید وب سایتهای پویا و نرم افزارهای تحت وب استفاده می شوند. در هر دو گروه زبانهای متعددی وجود دارد که هر کدام مزایا و معایبی دارد:
زبانهای برنامه نویسی وب خود به دو دسته سمت خدمتگزار (یا سرور) و سمت کاربر (یا کلاینت) تقسیم میشوند. زبانهای HTML، CSS و جاوا اسکریپت زبانهایی هستند که برای طراحی صفحات وب استفاده می شوند و تمام کدها در سمت کاربر اجرا می شود. از سوی دیگر زبانهایی مثل ASP.net، PHP و JSP برای پویا ساختن صفحات وب (مثلا تعامل با کاربر) استفاده شده و به منظور امنیت و سرعت بهتر، در سمت سرور اجرا میشوند. برای کسی که قصد دارد برنامه نویسی وب را یاد بگیرد، یاد داشتنCSS و HTML الزامی است ، جاوا اسکریپت مستحب موکد است و یاد داشتن یکی از زبانهای سمت سرور واجب عینی است. از میان زبانهای سمت سرور، مشهورترین، محبوب ترین و امن ترین آنها PHP است، آسانترین آنها ASP.net میکروسافت است و JSP هم که مبتنی بر جاوا است جزء زبانهای حرفه ای به حساب میآید! فعلا قصد پرداختن به زبانهای تحت وب نداریم.
در زمینه برنامه نویسی دسکتاپ، زبانهای ++C، دلفی، #C (سی شارپ)، ویژوال بیسیک، جاوا و زبان جدید التاسیس #J مهمترین زبانهای قابل ذکر هستند. در این میان زبانی مثل ویژوال بیسیک شاید از همه ساده تر باشد و برای بسیاری از برنامه های کاربردی مناسب است. لیکن اگر برنامه شما نیاز به سرعت و کارایی بالایی دارد گزینه مناسبی نیست.
دلفی نیز که بر پایه زبان پاسکال شیءگرا بنا شده است، ساده و در عین حال کارآمد است. مهمترین ویژگی دلفی وجود کامپوننتهای متعددی است که روند برنامه نویسی را تسریع و تسهیل می کند. لیکن دلفی محدودیتهایی برای کار با پوینترها دارد که اگر نیاز به انجام کارهای پردازشی سنگین و کار زیاد با حافظه دارید کارتان را با مشکل روبه رو می کند. مشکل دیگر دلفی عدم پشتیبانی از یونیکد است که برای ما فارسی زبانان از نان شب هم واجبتر است.
جاوا یک زبان قدرتمند و کاملا شیءگراست. معمولا نرم افزاریها سراغ این زبان می روند (شاید به دلیل اینکه جزء دروس دانشگاهی آنهاست). مهمترین ویژگی این زبان این است که مستقل از سیستم عامل است و فایلهای خروجی آن روی لینوکس و ویندوز کار می کند. امروزه بسیاری از نرم افزارهای موبایل نیز با J2ME نوشته می شود. فایلهای خروجی جاوا برای اجرا نیازمند سکوی J2RE هستند.
#C و سکوی دات نت: می توان گفت تقلید بزرگی از جاوا است، چرا که همانند جاوا کاملا شیءگرا بوده و فایلهای خروجی آنها برای اجرا نیازمند سکوی دات نت هستند. #C که امروزه گل سرسبد زبانهای تحت دات نت است در تولید برنامه های تحت ویندوز و ارتباط با پایگاههای داده جزء زبانهای پیشرو است.
و اما C++: فرزند خلف C، زبانی شیءگرا، سریع، حرفهای و سخت. بیشتر برای کارهای پردازشی استفاده میشود و غالبا سیستم عاملها توسط C و ++C نوشته میشوند، چرا که بر خلاف سی شارپ و جاوا نیازمند سکوی خاصی نیستند و خروجی آنها کد ماشین خالص است. ++C تقریبا قابل حمل (پرتابل) است! یعنی از آنجا که در تمام سیستم عاملها پشتیبانی میشود کدهای ++C را می توانیم با اندک تغییراتی (البته گاهی وقتها بیش از اندکی) در هر سیستم عاملی کامپایل کنیم.
در این سایت تاکید بر ++C خواهد بود، لیکن سایر زبانها هم بی نصیب نخواهند بود.