تفاوت میان زبان های برنامه نویسی و زبان های اسکریپت نویسی
امروزه مشخص نمودن مرزی میان زبان های برنامه نویسی و اسکریپت نویسی کمی دشوار شده است. بدین ترتیب، شاید بتوان گفت این دو مورد با هم تفاوتی نداشته و تفاوت قائل شدن میان آن ها کمی بی معنی است. اما اگر بخواهیم کمی بر روی این دو حساسیت به خرج دهیم می توانیم برای هر کدام ویژگی هایی را در نظر بگیریم…
در یک جمله می توان یک زبان اسکریپت نویسی را یک زبان برنامه نویسی تعریف نمود که نیازی به مرحله کامپایل ندارد. به عنوان مثال، قبل از اجرای یک برنامه ی نوشته شده به زبان C، ابتدا باید آن را کامپایل کنیم. اما هنگامی که یک برنامه به زبان JavaScript یا PHP می نویسیم، به راحتی می توانیم آن را اجرا نماییم. بنابراین می توان JavaScript را در دسته زبان های اسکریپت نویسی و زبان C را در دسته زبان های برنامه نویسی به شمار آورد.
زبان ها برنامه نویسی (Programming Languages) توسط مترجم ها (Compilers) به زبان ماشین به صورت مستقیم ترجمه میشوند .
ولی زبان های اسکریپت (Scripting Languages) توسط یک مفسر (Interpreter) تحت یک برنامه اجرا میشوند .
به طور کلی، برنامه هایی که کامپایل می شوند در مقایسه با برنامه هایی که تفسیر می شوند دارای سرعت اجرای بیشتری می باشند. به دلیل اینکه برنامه های کامپایل شده به زبان ماشین (۰ و ۱) تبدیل شده و همین امر باعث افزایش سرعت اجرای آن ها می شود. همچنین کامپایلر ها تنها یکبار کد نوشته شده را خوانده و مورد تجزیه و تحلیل قرار می دهند، اما مفسر ها با هر بار اجرای برنامه، کد را مورد بررسی قرار داده و برنامه را خط به خط اجرا می کنند. البته امروزه با توجه به وجود سخت افزار های قدرتمند و شیوه ها و متد های کد نویسی پیشرفته، این موضوع (سرعت اجرای برنامه) را نمی توان به عنوان مرزی میان زبان های برنامه نویسی و اسکریپ نویسی به حساب آورد.
نکته ی دیگری که باید به آن توجه داشت، محیطی است که برنامه ی نوشته شده در آن اجرا می شود. دلیل اهمیت محیط اجرایی این است که می توان یک مفسر برای زبانی مانند C طراحی کرده و از آن به عنوان یک زبان اسکریپ نویسی استفاده نمود. همچنین از سوی دیگر می توان یک کامپایلر برای زبانی مانند JavaScript طراحی کرده و از آن به عنوان یک زبان برنامه نویسی استفاده کرد. برای مثال، موتور JavaScript گوگل کروم (V8) بجای تفسیر کد های JavaScript، آن ها را کامپایل کرده و به زبان ماشین تبدیل می کند. همچنین برای زبان اسکریپت نویسی مانند Ruby امروزه تعداد زیاد کامپایلر طراحی شده است.
برخی از زبان های اسکریپت نویسی که نیازی به کامپایل ندارند عبارتند از:
Python، JavaScript، PHP، Bash، Perl
و برخی از زبان های برنامه نویسی که قبل از اجرا باید از مرحله ی کامپایل بگذرند عبارتند از:
C، C++، Java
حوزه های استفاده از هرکدام از این زبان ها می تواند با هم متفاوت بوده و یا همپوشانی داشته باشند. بنابراین نمی توان گفت که کدام یک از آن ها مخصوص چه حوزه ای می باشد. پیشنهاد می شود از هر دو در کنار هم استفاده کنید. پس بهتر است تنها به خود زبان توجه و آن را ارزیابی کرده و در نظر بگیریم که زبان مورد نظر به اندازه کافی مناسب کار ما می باشد یا خیر. چرا که هر زبانی دارای نقاط قوت و ضعف در محیط های و زمینه های مختلف می باشد. علاوه بر تمام این موارد، هیچگاه زبان مورد علاقه ی خود را فراموش نکنید.