تعریف علمی و کلاسیک
اگر خیلی علمی و آکادمیک به قضیه نگاه کنیم، بر اساس یک تعریف کلاسیک، پاسخ بدین صورت است:
زبانهای برنامهنویسی (Programming Languages) توسط مترجمها (Compilers) به زبان ماشین به صورت مستقیم ترجمه میشوند.
ویژگیها:
- همه کدهای برنامه را یک جا میخواند و آنها را به کد ماشین تبدیل میکند.
- سرعت بررسی نسبت به مفسر پایینتر است ولی فقط یکبار کد را بررسی میکند.
- نیاز به تولید کد میانی دارد پس نیاز بیشتری به رم دارد.
- ابتدا کد را بررسی میکند و سپس خطایابی، که باعث میشود خطایابی طولانیتر شود.
- اجازه اجرای برنامه تا رفع خطا را نخواهد داد.
انواع زبانهای برنامهنویسی: C, C++, C#, Java, Basic, ...
ولی زبانهای اسکریپت (Scripting Languages) توسط یک مفسر (Interpreter) تحت یک برنامه اجرا میشوند.
ویژگیها:
- هر دستور را در واحد زمان میخواند و بعد از تبدیل آن به زبان ماشین اجرا میکند و هنگامی که دستور اجرا میشود مفسر خط بعدی را میخواند.
- سرعت بررسی سریعتر است ولی برای دفعات بعد نیز نیاز به بررسی مجدد دارد.
- نیازی به تولید کد میانی ندارد و رم کمتری مصرف میکند.
- در هنگام بررسی و اجرا خطاها را شناسایی میکند.
- اجرای برنامه دارای خطا نیز امکانپذیر هست.
انواع زبانهای اسکریپتنویسی: JavaScript, PHP, Lua, Perl, Python, Ruby, VBScript, ...
تأثیر پیشرفت تکنولوژی
اما با پیشرفت تکنولوژی کمی این تعاریف درهم پیچیده شده است!
به طور مثال، موتور جاوا اسکریپت V8 در مرورگر گوگل کروم، به نوعی کدهای جاوااسکریپت را در لحظه به زبان ماشین کامپایل میکند تا سرعت اجرای کدها افزایش یابد اما این در حالی است که زبان جاوااسکریپت در دید بسیاری از برنامهنویسان، یک زبان اسکریپتینگ است. با توجه به اینکه گفته میشود که زبانهای اسکریپتینگ از سرعت کمتری نسبت به زبانهای برنامهنویسی کامپایل شونده برخوردارند، به نظر میرسد که با این فناوری به کار گرفته شده در مرورگر گوگل کروم، این مشکل سرعت پایین هم حل شده باشد.
باورهای غلط عامیانه
بر اساس باورهای غلط، گفته میشود که کدهای یک برنامه الزاماً با یک زبان برنامهنویسی نوشته میشوند و به مجموع آن برنامه و کدها، یک اسکریپت اتلاق میشود و حتی اسم PHP یا جاوااسکریپت به عنوان یک زبان برنامهنویسی برده میشود در حالی که طبق تعاریف آکادمی یک زبان اسکریپتنویسی میباشند.
در هر حال این تعاریف جا افتادهاند و بکار بردن آنها در سطح جامعه اگرچه غلط است اما خندهدار نیست!