
معمولاً زبانهای برنامهنویسی را به دو دسته تقسیم میکنند. زبانهای برنامهنویسی سطح پایین و زبانهای برنامهنویسی سطح بالا.
زبانهای برنامهنویسی سطح پایین در واقع زبانهایی هستند که به زبان ماشین نزدیکتر هستند تا زبان انسان. کامپیوترها متأسفانه زبانهای انسانی مثل زبان فارسی یا زبان انگلیسی یا هر زبان دیگری که ما انسانها با آن صحبت میکنیم را نمیفهمند. زبان کامپیوترها صفر و یک است به هر زبان برنامهنویسی که به این زبان صفر و یکی نزدیکتر باشد زبان سطح پایین نامیده میشود.
نمونه واضح زبانهای سطح پایین زبان اسمبلی است. تقریباً میشود گفت اولین زبان برنامهنویسی و سطح پایینترین آن است. خودم هرگز با این زبان کار نکردم؛ اما سینتکس یا اصطلاحاً همان دستور زبان آن را تا حدی دیدهام و باید بگویم واقعاً زبان نامفهومی است. یک سری کلمات انگلیسی که برای کسی که تا حالا با این زبان کارنکرده کاملاً بیمعنا هستند.
مشکل دیگر زبانهای سطح پایین این است که کارهای بزرگ را نمیتوان با آن بهسادگی انجام داد. هزاران خط کد باید نوشته شود تا کامپیوتر یک سری دستورات ساده را اجرا کند. مثلاً برای نوشتن برنامهای که دو عدد را از کاربر دریافت کرده و حاصلجمع آن را نشان دهد، اگر با یک زبان سطح پایین کار کنید احتمالاً باید چند ده خط کد بنویسید تا بالاخره کامپیوتر بفهمد که دقیقاً چه کاری را باید انجام دهد. نوشتن برنامههای بزرگتر از آن و طراحی اپلیکیشنها یا سایتهای خیلی بزرگ پیشکش... .

برخلاف زبانهای سطح پایین اما زبانهای سطح بالا زبانهای برنامهنویسی هستند که برای کسی که زبان انگلیسی را تا حدی مسلط باشد کاملاً قابلفهم هستند. زبانهایی مثل سیشارپ، پایتون جاوا، جاوا اسکریپت، تایپ اسکریپت و تمام زبانهایی که امروزه بهصورت گسترده مورداستفاده قرار میگیرند همه زبانهای سطح بالا هستند. یادگیری زبانهای سطح بالا بسیار راحتتر از یادگیری زبانهای سطح پایین است و برنامههای بزرگ را بهراحتی میتوان با آن طراحی کرد. برای نوشتن یک برنامه ساده هم نیاز به نوشتن دهها خط کد نیست. بهعنوانمثال میتوان بهراحتی از کامپیوتر خواست که دو عدد از کاربر دریافت کرده و حاصلجمع آن را نشان دهد و تمام اینها فقط با نوشتن کمتر از ۱۰ خط کد انجام میشود.
البته زبانهای سطح بالا در لایههای زیرین خودشان باید به زبان قابلفهم برای کامپیوتر تبدیل شوند؛ ولی این کار را انسانها انجام نمیدهند؛ بلکه نرمافزارهای کوچکی به نام کامپایلر و یا اینترپرتر انجام این کار را به عهده دارند.
به زبان سادهتر، باید بگویم زبانهای سطح بالا نمیتوانند مستقیماً توسط کامپیوتر فهمیده و اجرا شوند. کامپیوترها فقط زبان مخصوص خودشان را میفهمند و بس. برای اینکه یک برنامه به زبان سطح بالا بتواند روی کامپیوتر اجرا شود باید اول به زبان کامپیوتر ترجمه شود. کار ترجمه این برنامهها را نرمافزارهایی به نام کامپایلر و اینترپرتر انجام میدهد.

بسته به اینکه زبان سطح بالا کامپایلری باشد یا تفسیری، این نرمافزار مترجم کامپایلر و یا اینترپرتر (مفسّر) نام دارد.
درباره اینکه فرق زبانهای کامپایلری با زبانهای تفسیری چیست صحبتی نمیکنم؛ چون یک بحث کاملاً تخصصی است.
دانستن همین نکته کافی است که در زبانهای کامپایلری تمام برنامه بهصورت یکجا و در قالب یک بسته واحد به زبان ماشین تبدیل و اجرا میشود؛ اما در زبانهای تفسیری برنامه بهصورت خطبهخط اجرا شده و هر خط بعد از خط بعدی به زبان ماشین تبدیل میشود. به همین دلیل در زبانهای کامپایلری خطایابی بهسرعت انجام میگیرد؛ اما در زمانهای تفسیری باید منتظر ماند تا برنامه به خط موردنظر برسد و بعد خطای آن خط مشخص شود.
ضمن اینکه سرعت اجرای برنامه در زبانهای کامپایلری بالاتر از زبانهای تفسیری است.
بااینحال زبانهای تفسیری هم محبوبیت خاص خود را دارند. زبان پایتون بهعنوان محبوبترین زبان برنامهنویسی هوش مصنوعی یکزبان تفسیری است.
به هر صورت این نرمافزار مترجم باید کدهای نوشته شده با زبان سطح بالا را به کدهای قابلفهم برای کامپیوتر ترجمه کند تا کامپیوتر بتواند آنها را اجرا کند.
یکی از این زبانهای سطح بالا زبان برنامهنویسی جاواست. همه ما کلمه جاوا را با اسم سیستمعامل جاوا میشناسیم؛ اما جاوا در واقع یکزبان برنامهنویسی سطح بالاست که هنوز هم در سطح وسیع کاربرد دارد و جالب است بدانید که خیلی از اپلیکیشنهای اندروید هم به زبان جاوا نوشته شده. در کل زبان جاوایی که از زبانهای محبوب برنامهنویسهای اندروید هست.
علاوه بر همه اینها جاوا یکزبان شیءگرا هم هست.
حالا باید درباره این صحبت کنیم که زبان شیءگرا دیگر چیست؟