jamejamonline
صفحه نخست عمومی کد خبر: ۲۲۶۶۷۸   ۰۸ دی ۱۳۸۷  |  ۱۶:۱۶

این هفته به معرفی زبانی می‌پردازیم که برای بسیاری از برنامه‌نویسان نا‌آشناست. این زبان که ‌Groovy‌ نام دارد، نخست سال 2003 معرفی شد. گرووی، یک زبان شیی‌گرا است که برای پلت‌فرم جاوا نوشته شده و از آن به‌عنوان جایگزینی برای زبان برنامه‌نویسی جاوا استفاده می‌شود. گرووی زبانی دینامیک و پویا است و ویژگی‌هایی مشابه پایتون، روبی، پرل و ‌Smalltalk‌ دارد. از این زبان همچنین می‌توان به عنوان یک زبان اسکریپت ‌نویسی برای پلت‌فرم جاوا استفاده کرد. ‌ ‌

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

ویژگی‌ها

گرووی دارای ویژگیهایی است که در جاوای استاندارد یافت نمی‌شود. از جمله این ویژگی‌ها می‌توان به نوع‌ داده‌ های دینامیک و تغییر کاربری اپراتورها اشاره کرد. دستور زبان گرووی در مقایسه با جاوا فشرده‌تر و کوچک‌تر است. از ویژگیهای بارز و قابل توجه گرووی پشتیبانی آن از زبان‌های مختلف ‌Markup‌ مانند ‌XML‌ و ‌HTML‌ است. این قابلیت امکان تعریف و کار با انواع مختلفی از داده‌های ناهمگون را با دستور زبان دقیق و روش برنامه‌سازی هم شکل فراهم می‌کند. کد گرووی باز است و تقریبا تمام ‌IDE‌ های کد جاوا از کد گرووی نیز پشتیبانی می‌کنند و این امر برنامه‌نویسی با گرووی را آسان می‌کند.

تاریخچه

جیمز استراکان در آگوست سال 2003 برای اولین بار در وبلاگ خود در مورد توسعه زبان جدیدی به نام گرووی نوشت. پس از آنکه فرآیند استانداردسازی پایان یافت، ژانویه  سال 2007 نسخه استاندارد گرووی با عنوان ‌1.0 Groovy‌ منتشر شد. به فاصله زمانی اندکی پس از نسخه 1.0،  نسخه 1.1 در ماه دسامبر 2007 منتشر شد. این نسخه بلافاصله به نام ‌1.5 Groovy‌ نامگذاری شد تا تغییرات مهم و بزرگ ایجاد شده را به وسیله این تغییر نام منعکس کند. ‌ ‌

اهداف

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

جاوا یا گرووی؟

تاکنون، زبان برنامه‌نویسی جاوا جایگاه خود را به عنوان زبان برنامه‌نویسی استاندارد پلت‌فرم جاوا، بدست آورده است. این زبان به مدت تقریبا نه سال،  نیازهای برنامه‌نویسان را به بهترین شکل ممکن برطرف کرده است، اما جاوا نمی‌تواند و نباید تمام نیازهای همه گروه‌های برنامه‌نویسان را که پروژه‌ها و اهداف متفاوتی را دنبال می‌کنند برآورده سازد. چرا که زبانی با این مشخصات بخش بزرگی از قابلیت‌های خود را به نفع پاسخ‌گویی به همه کاربران از دست می‌دهد و تضعیف می‌شود. زبان جاوا مانند زبانهای ‌C++‌ و ‌C#‌، به شدت ساخت یافته است. این نوع زبان‌ها که گاه زبان‌های قراردادی نامیده می‌شوند، برای حل بسیاری از مسایل مناسب هستند اما پاسخگوی  همه مشکلات نیستند. زبان‌های قراردادی بسیار نکته‌سنج و خرده‌گیر هستند به این معنی که کوچک‌ترین اشکال در نوشتن برنامه، کامپایل کردن کد را ناممکن می‌سازد. اگرچه این دقت بیش از حد،  نتیجه اجرای کد را قابل پیش‌بینی می‌سازد، اما از سوی دیگر از سرعت کار برنامه‌نویس می‌کاهد. ‌ ‌

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

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

اما چرا گرووی؟ چرا ‌ Jython‌ و ‌JRuby‌ برای دستیابی به این هدف مورد استفاده قرار نگرفتند؟ امروزه زبان‌های متعددی برای اجرا روی ماشین مجازی جاوا طراحی شده‌اند. گرووی به این دلیل بهترین انتخاب است که از پایه و اساس برای پلت‌فرم جاوا طراحی شده است. از سوی دیگر، دستور زبان آن برای توسعه‌دهندگان برنامه‌های جاوا آشنا است. گرووی برخی از بهترین ویژگیهای پایتون، روبی و اسمال‌تاک را پیاده‌سازی می‌کند. جایتون و جی‌روبی نمونه‌های بسیار درخشانی از پشتیبانی پلت‌فرم جاوا از دیگر زبان‌های برنامه‌نویسی موجود هستند. با این وجود جایتون و جی‌روبی تنها درگاه ‌(Port)‌ هایی هستند که ارتباط جاوا را با زبان‌های دیگر ممکن می‌سازند. دستور زبان این درگاه‌ها برای طراحان جاوا ایجاد نشده است و حتی مجموعه کتابخانه‌های استفاده شده برای پیاده‌سازی آنها با آنچه که برای برنامه‌نویسی جاوا استفاده می‌شود متفاوت است. در مقابل گرووی برای توسعه‌دهندگان جاوا طراحی شده است و پایه و اساس آن بر مبنای ‌API‌های استاندارد پلت‌فرم جاوا استوار است. ‌ ‌

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

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

ارسال نظر
* نظر:
نام:
ایمیل:

یادداشت

بیشتر
نقطه طلایی

نقطه طلایی

یک) عکس را خیلی وقت است گذاشته‌ام. جایی که همیشه جلوی چشمم باشد. پشت عکس، بابا با خودکار آبی و خط شکسته نستعلیق نوشته: «باغ اکبرآقا- نوروز۱۳۶۵ - با محمدمهدی جان».

از دکتر نجیب تا دکتر غنی

از دکتر نجیب تا دکتر غنی

حملات و ترورهای مرگبار در سراسر افغانستان به امری روزمره بدل شده‌است. هر کسی هم می‌تواند هدف باشد.

رشته ‌کوه‌هایی به نام پدر

رشته ‌کوه‌هایی به نام پدر

از یک سنی به بعد، دیگر شخص و انسان نیستند. تبدیل می‌شوند به یک مفهوم. یک مکتب، یک تفکر. بعضی وقت‌ها با یک من عسل نمی‌شود خوردشان.

گفتگو

بیشتر

پیشنهاد سردبیر

بیشتر
یک عصر متفاوت

در مرحله نیمه‌نهایی عصرجدید چه اتفاقاتی افتاد؟ به همراه جزئیاتی از چگونگی برگزاری مرحله پایانی

یک عصر متفاوت

پیشخوان

بیشتر