برو به محتوای اصلی
مزدک صدقی
مدیر مارکتینگ و شبکه‌های اجتماعی
سال گذشته پرسیده شده

تفاوت اسکریپت با زبان برنامه‌نویسی چیست؟

من کجام؟ اینجا کجاست؟

در جوابکو می‌تونید در مورد هر موضوعی سوال کنید، به سوالای بقیه جواب بدید و تجربتون رو به اشتراک بگذارید!

نبی
برنامه نویس

تعریف علمی و کلاسیک 

اگر خیلی علمی و آکادمیک به قضیه نگاه کنیم، بر اساس یک تعریف کلاسیک، پاسخ بدین صورت است: 

زبان‌های برنامه‌نویسی (Programming Languages) توسط مترجم‌ها (Compilers) به زبان ماشین به صورت مستقیم ترجمه می‌شوند.

ویژگی‌ها:

  • همه کدهای برنامه را یک جا می‌خواند و آن‌ها را به کد ماشین تبدیل میکند.
  • سرعت بررسی نسبت به مفسر پایین‌تر است ولی فقط یک‌بار کد را بررسی می‌کند.
  • نیاز به تولید کد میانی دارد پس نیاز بیشتری به رم دارد.
  • ابتدا کد را بررسی می‌کند و سپس خطایابی، که باعث می‌شود خطایابی طولانی‌تر شود.
  • اجازه اجرای برنامه تا رفع خطا را نخواهد داد.

انواع زبان‌های برنامه‌نویسی: C, C++, C#, Java, Basic, ... 

ولی زبان‌های اسکریپت (Scripting Languages) توسط یک مفسر (Interpreter) تحت یک برنامه اجرا می‌شوند.

ویژگی‌ها:

  • هر دستور را در واحد زمان می‌خواند و بعد از تبدیل آن به زبان ماشین اجرا میکند و هنگامی که دستور اجرا می‌شود مفسر خط بعدی را می‌خواند.
  • سرعت بررسی سریعتر است ولی برای دفعات بعد نیز نیاز به بررسی مجدد دارد.
  • نیازی به تولید کد میانی ندارد و رم کمتری مصرف می‌کند.
  • در هنگام بررسی و اجرا خطاها را شناسایی می‌کند.
  • اجرای برنامه دارای خطا نیز امکان‌پذیر هست.

انواع زبان‌های اسکریپت‌نویسی: JavaScript, PHP, Lua, Perl, Python, Ruby, VBScript, ... 


تأثیر پیشرفت تکنولوژی 

اما با پیشرفت تکنولوژی کمی این تعاریف درهم پیچیده شده است! 
به طور مثال، موتور جاوا اسکریپت V8 در مرورگر گوگل کروم، به نوعی کدهای جاوااسکریپت را در لحظه به زبان ماشین کامپایل می‌کند تا سرعت اجرای کدها افزایش یابد اما این در حالی است که زبان جاوااسکریپت در دید بسیاری از برنامه‌نویسان، یک زبان اسکریپتینگ است. با توجه به اینکه گفته می‌شود که زبان‌های اسکریپتینگ از سرعت کمتری نسبت به زبان‌های برنامه‌نویسی کامپایل شونده برخوردارند، به نظر می‌رسد که با این فناوری به کار گرفته شده در مرورگر گوگل کروم، این مشکل سرعت پایین هم حل شده باشد. 


باورهای غلط عامیانه 

بر اساس باورهای غلط، گفته میشود که کدهای یک برنامه الزاماً با یک زبان برنامه‌نویسی نوشته می‌شوند و به مجموع آن برنامه و کدها، یک اسکریپت اتلاق می‌شود و حتی اسم PHP یا جاوااسکریپت به عنوان یک زبان برنامه‌نویسی برده می‌شود در حالی که طبق تعاریف آکادمی یک زبان اسکریپت‌نویسی می‌باشند. 
در هر حال این تعاریف جا افتاده‌اند و بکار بردن آن‌ها در سطح جامعه اگرچه غلط است اما خنده‌دار نیست! 

ناشناس

در ساده‌ترین حالت اینجوری میشه گفت که یک اسکریپت عملا یک برنامه یا نیمچه برنامه‌ای هست که یک اجتماعی از عملکردهای مختلف رو برای شما فراهم میکنه و مشتمل بر صدها؛ هزاران و یا میلیون‌ها خط کد و یا فایل و سورس کد از چندین زبان برنامه‌نویسی هستش که با هم تحت یک سیستم واحد و نظام‌مند با پردازش و پالایش اطلاعات ورودی یک اطلاعات خروجی رو برای شما فراهم میکنند. 

اما زبان برنامه‌نویسی به خودی خود و به تنهایی نمیتونه کاری بکنه. تجمیع زبان‌های برنامه‌نویسی هستش که میتونه یک چیز بهم مرتبط رو بوجود بیاره. مثال ساده‌تر این هستش که هر زبان برنامه‌نویسی رو یک جز از موارد تشکیل دهنده ساختمان مثل آجر، سرامیک، گچ و... در نظر بگیرید. یک آجر خونه‌ای نمیسازه ولی با در کنار هم قرار گرفتن آجرهاست که خونه تکمیل میشه.

Behzad babai
Modir proje samanh ertebat baran

اسکریپت چیزی هست که با یک زبان برنامه‌نویسی یا یک فریم‌ورک از زبان برنامه‌نویسی نوشته میشه. برای مثال وب‌سایت فروش غذا در نظر بگیریم، اگر این وب‌سایت استفاده از زبان برنامه‌نویسی PHP و فریم‌ورک Laravel نوشته شده باشه میتونیم بگیم این وب‌سایت یک اسکریپت فروش غذا هست (اگر بخوایم ارائه بدیم به دیگران).