اکشن اسکریپت ۳ همزمان با فلش پلیر ۹ به جامعه برنامه نویسان معرفی شد . آمار ها و بازخورد های نشان می دهد جامعه فلش با رویکردی همراه با خشنودی از اکشن اسکریپت ۳ استقبال کرده اند .
با این همه هنوز گروه بزرگی از طراحان وجود دارند که از اکشن اسکریپت ۳ استفاده نمی کنند . بسیاری از موارد در اکشن اسکریپت ۳ وجود دارد که نیاز به کد نویسی بیشتری نسبت به همتای پیشین خود ، اکشن اسکریپت ۲ دارد . من امیدوارم در این مبحث به برخی از نگرانی ها در مورد اکشن اسکریپت ۳ پاسخ بدهم و این باور را برای کسانی که هنوز از اکشن اسکریپت ۲ استفاده میکنند ایجاد کنم تا زین پس در پروژه های خود منحصرا از اکشن اسکریپت ۳ استفاده نمایند .
ما متوجه شده ایم که دو نوع از برنامه نویسان برای اکشن اسکریپت وجود دارد . یک دسته را برنامه نویسان و توسعه دهندگانی تشکیل می دهند که قبلا با سایر زبان ها نظیر جاوا و سی شارپ کار کرده اند . برای این دسته یادگیری اکشن اسکریپت بسیار راحت است . به این دلیل که اساس اکشن اسکریپت ۳ ، به این زبان ها بسیار شبیه است . دومین دسته را برنامه نویسان رابط گرافیکی (interactive) و طراحان تشکیل می دهند . این دسته ، از اکشن اسکریپت برای طراحی رابط کاربر و یا متحرک ساختن بخشی از برنامه استفاده می کنند . این دسته معمولا از کد در تایم لاین بهره می برند و ممکن است تعداد کمی از آن ها از برنامه نویس شئ گرا اطلاعاتی داشته باشند و یا از آن استفاده کنند .من خودم زمانی از این دسته دوم بودم . در اینجا مخاطب ما افرادی ، غالبا از دسته دوم هستند که برای مهاجرت به اکشن اسکریپت ۳ مرددند .
پیشتر در نسخه ۴ فلش اکشن اسکریپت اعلام موجودیت کرد . آن زمان هدف آن کنترل رابط گرافیکی کاربر بود و دستور العمل های آن برای طراحان تا حد امکان ساده گشته بود . نسخه اولیه اکشن اسکریپت syntax بسیار متفاوتی نسیت به ECMAScript داشت اما بعد ها هر چه بیشتر ، به این زبان نزدیک شد .
اکشن اسکریپت ۱ در فلش پلیر ۵ معرفی شد که دستورات آن شباهت زیادی به مادرش ECMAScript داشت . با عرضه فلش پلیر نسخه های ۶ و ۷ این زبان در برخی موارد تغییراتی جزیی داشت ولی در اصل تغییری زیادی نکرد .
اکشن اسکریپت ۲ در فلش mx 2004 و فلکس ۱٫۰
معرفی شد . با این حال با فلش پلیر نسخه های ۶ و ۷ نیز سازگار بود . علت این امر این بود که اکشن اسکریپت ۲ در اصل یک زبان مستقل نبود و در لایه بالایی اکشن اسکریپت ۱ سوار شده بود . در نتیجه اکشن اسکریپت ۲ کارایی بالاتری ارائه نمی کرد و مانند اکشن اسکریپت ۱ بود .
در طول مراحل برنامه ریزی فلش ۹ مشخص شد که نمی توان موتور اکشن اسکریپت جدید را بر روی اکشن اسکریپت ۱ و ۲ استوار کرد . در نتیجه ادوبی شروع به بازنویسی کامل Actionscript Virtual Machine (AVM) کرد . نتیجه کار چیز بسیار بهتری به نام AVM2 بود . هدف این امر توسعه اکشن اسکریپت ۳ بر مبنای AVM2 بود . با اماده شدن این موتور اکشن اسکریپت ۳ ارائه شد .
در زیر عنوانی را در برتری و مزایای اکشن اسکریپت ۳ بیان میکنم .
تمامی نسخه های جدید فلش و فلش پلیر برای اکشن اسکریپت ۳ بهینه شده اند . تمام کار های بزرگ در حال حاضر منحصرا برای اکشن اسکریپت ۳ است و شما کار های زیادی را برای اکشن اسکریپت ۲ از طرف کار فرماها نمی بینید . بنابراین اگر کسب و کار شما مبتنی بر اکشن اسکریپت است ، یادگیری اکشن اسکریپت ۳ بسیار ضروری است .
توسعه دهندگان فلش ایده های داغی دارند ولی اغلب برای اجرا ی آن به دلیل محدود بودن فلش پلیر نا امیدند . اکشن اسکریپت ۳ تا ۱۰ برابر افزایش عملکرد نسبت به همتای قبلی خود دارد در بعضی از موارد این میزان بیشتر از این مقدار است . این بدین معنی است که در یک زمان شما دسترسی به اشیایی بسیار بیشتر و بزرگتری در برنامه خود خواهید داشت . اگر می خواهید برنامه هایی بدون محدودیت بنویسید اکشن اسکریپت ۳ هدف نهایی شماست .
به عنوان توسعه دهندگان فلش ما عاشق اسباب بازی ها و کار کردن با آن ها هستیم . چیدن اسباب بازی های کوچکتر در کنار هم پروژه های بزرگتر را می سازد .
اکشن اسکریپت ۳ شامل صدها API جدید برای کار کردن با چیز هایی مثل XML ، عبارات منظم ، سوکت های باینری و بهتر از این ها در اختیار داشتن کلاس ها و فضا های نامی منظم جهت استفاده در پروژه هاست .
توسعه دهندگان برنام های فلش از قابلیت های شئ گرایی موجود در اکشن اسکریپت ۳ بسیار خوشحال شدند . برنامه نویسی شی گرا در اکشن اسکریپت ۳ به طور محسوسی بهبود یافته . چیزهایی مثل کلاس های مهر و موم شده ، Pakeage ، NameSpace و مدیریت رویداد ها به کمک توسعه دهندگان آمده است . برنامه نویسی در اکشن اسکریپت ۳ بسیار به زبان های سطح بالا مانند جاوا و سی شارپ شبیه شده است . ویژگی های جدید باعث شده است برنامه های شما ساخت یافته ، منعطف ، خوانا و قابل تغییر باشد . برخی از این ویژگی ها شاید برای برنامه نویسانی که رابط گرافیکی را توسعه می دهند ، هم اکنون مورد نیاز نباشد . اما زمانی که شما بخواهید برنامه نویسی حرفه ای تری را تجربه کنید این موارد به مدد شما خواهند آمد .
ممکن است این یک نظر شخصی باشد ولی من کاملا آن را باور دارم . از هرکسی که با اکشن اسکریپت ۳ کار کرده است اگر بپرسید حاضر است به عقب بر گردد و پروژه ها را با اکشن اسکریپت ۲ انجام دهد ، پاسخی مبنی بر مثبت بودن این احتمال دریافت نمی کنید . نسخه های قبلی زبان ، بسیاری از اشکالات را به همراه دارند که حل آن ها ، در مقام مقایسه ، با اکشن اسکریپت ۳ آسان به نظر می رسد .
اگر بعد از خواندن تمامی این مزایا شما هنوز نمی خواهید با اکشن اسکریپت ۳ شروع به برنامه نویسی کنید ، مشکلی نیست . می توانید ادامه پروژه های خود را همچنان با اکشن اسکریپت ۲ ادامه دهید . اما در نگاه به عنوان یک پلتفرم ، فلش توسعه می یابد و تکنولوژی های جدید همگی برای اکشن اسکریپت ۳ در دسترس هستند .به عنوان مثال Adobe Flex 3 و Adobe Air به اکشن اسکریپت ۳ برای کار نیاز دارند . بنابراین اگر می خواهید با تکنولوژی های جدید ارتباط بگیرید ، انتخاب اکشن اسکریپت ۲ ، انتخاب گزینه درست نیست .
در اینجا به برخی از سوالات ، که در رویارویی با اکشن اسکریپت ۳ ، برای برنامه نویسان به وجود می آید را نگاهی می اندازیم و سعی میکنیم پاسخ مناسبی به این سوالات بدهیم .
پاسخ کوتاه این است که در بسیاری از موارد اکشن اسکریپت ۳ نیاز به کد بیشتری نسبت به اکشن اسکریپت ۲ ندارد . بیشتر مردم در مورد این سوال به یاد نحوه کد نویسی برای رویداد کلیک در مورد یک دکمه خاص و تابع add event listener می افتند . در این مورد ممکن است شما در ظاهر تعداد خط های بیشتری برای نوشتن کد نیاز داشته باشید ولی در عمل آن چند خط اضافی کد ، مسولیت بهتر ساختن مدیریت و خوانایی برنامه را به عهده دارند . اگر شما این مدل مبتنی بر اصول شئ گرایی را در سریع تر ساختن ، ساخت برنامه های خود درک کنید ، دیگر از این امر ایراد نخواهید گرفت .
متا سفانه این عمل با عث سردرگمی در پروژ های بزرگ می شود . در بسیاری از موارد این گونه پروژه ها بدون هیچ هسته مرکزی ، گسترش یافته اند .
شاید پیوست کد به اشیا ساده تر و سریع تر به نظر بیاید ، اما شما بدلیل اینکه کدی مرکزی در اختیار ندارید بسیار بیشتر زمان صرف گسترش ، نگهداری و خواندن برنامه خواهید کرد . به همین دلیل تیم توسعه فلش تصمیم به حذف این قابلیت در فلش و پروژه های اکشن اسکریپت ۳ گرفتند .
یکی از تصورات غلط در مورد اکشن اسکریپت ۳ ، این است که شما برای کد نویسی هر چیزی باید از کلاس ها استفاده کنید . در واقع این درست نیست . شما هنوز می توانید از اکشن اسکریپت در timeline استفاده کنید . این کاری است که من در خیلی از پروژه ها انجام می دهم . اما زمانی که شما احساس کرده اید که به برنامه نویسی شی گرا نیاز دارید ، مسیر آن برای شما هموار است .
من می توانم درک کنم که اکنون ممکن است این طور به نظر برسد . اما در عمل ادوبی اکنون زمان زیادی را برای توسعه فلش برای طراحان صرف می کند . اکشن اسکریپت ۳ ، برای توسعه دهندگان ضروری بود تا آن ها به سطح بعدی در فلش بروند . حال که اکشن اسکریپت به تکامل رسیده است ، ادوبی توان خود را بر روی طراحی ویژگی های بصری و انیمیشن گذاشته است . فقط کافی است به لیست امکانات فلش پلیر ۱۰ نگاهی بیندازید تا ببینید که اکثر قابلیت های جدید آن مانند ۳D ، فیلترهای سفارشی و مواردی از این دست در پاسخ به نیاز طراحان است .
برای باقی موارد می توانید سوالات خود را در هر سطحی ، اینجا مطرح کنید . مطمئن باشید به تک تک سوالات شما با دقت و روی باز پاسخ خواهیم داد .
در ۲۲ خرداد ماه سال ۱۳۸۹
سلام
مورد ۵ واقعا درست است.
در مورد نیاز به کد بیشتر در AS3 هم، فکر میکنم هر دو معتقد باشیم که با این وجود، سرعت کدنویسی در آن از AS2 بیشتر است.
مثل محیطهای توسعه .Net که حجم کد بیشتر شده، اما سرعت کدنویسی هم افزایش یافته.
در ۲۲ خرداد ماه سال ۱۳۸۹
در زمینه برنامه نویسی ، همیشه بین خوانایی کد و حجم آن رابطه معکوسی وجود داشته است . در این مورد به سینتکس vb و C نگاه کنید . VB دارای قابلیت خوانایی کد در سطح بسیار مطلوبی است ولی تعداد خطوط کد آن زیاد است . در عوض C خوانایی کمتر و کد های کمتری دارد .
در این میان سعی طراحان زبان های برنامه نویسی ، تلاش برای حفظ تعادل بین خوانایی و تعداد خطوط در زبان برنامه نویسی است .
در ۱۶ آذر ماه سال ۱۳۸۹
عالی ، خوانا ، دقیق
استفاده کردم
ممنون
در ۱۶ آذر ماه سال ۱۳۸۹
خوشحالم که برای شما مفید واقع شده است .