در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
قابلیتهای ویژه AS3 از جمله قدرت بالا و شییگرایی، این زبان را به انتخاب مناسبی برای بسیاری از برنامهنویسان تبدیل کرده است. پلتفرم اکشناسکریپت Adobe Flash Player نام دارد و حاصل برنامهنویسی وب با AS3 بهفرم فایلهای SWF در صفحات وب تعبیه میشود. با اینحال AS3 کاربردهای گسترده و گوناگون دیگری نیز دارد که اغلب از نظرها دور ماندهاند. برخی از برنامههای کاربردی پایگاه دادهها مانند آلفا فایو و برنامههای کاربردی روباتیک و حتی برخی کیتهای کنترلی ازقابلیتهای این زبان بهرهمند شدهاند.
پیدایش
اکشناسکریپت در ابتدا توسط شرکت ماکرومدیا طراحی شد. در سال 2005 پس از آنکه ادوبی مالکیت ماکرومدیا را بهدست آورد، مالکیت AS3 را نیز دراختیار گرفت. طراحی اولیه اکشناسکریپت بهمنظور کنترل پویانماییهای دوبعدی ساخته شده در ادوبیفلش که پیش از آن ماکرومدیافلش نامیده میشد، انجام شد. سپس نسخههای بعدی قابلیتهای دیگری را به این نسخه اولیه افزودند که امکان توسعه بازیهای تحت وب و برنامههای کاربردی اینترنتی پیچیده با قابلیتهای چندرسانهای (مانند ویدیو و صدا) را فراهم میکند. اکشناسکریپت در آغاز پیدایش، تنها یک زبان اسکریپتنویسی بود و سه نسخه اول آن تنها شامل یک سری امکانات بسیار ابتدایی برای تعامل میان برنامه و کاربر در اختیار برنامهنویس قرار میدادند. توسعهدهندگان کدهای فلش در ابتدا تنها قادر بودند دستورات ابتدایی را که "action" نامیده میشدند در برنامه قرار دهند و این دستورات را به دکمهها یا فریمهای برنامه متصل کنند. مجموعه این دستورات عبارت بودند از: کنترلهای جهت و دستورات سادهای مانند "play"، "stop"، "getURL" و "gotoAndPlay".
با انتشار Flash 4 در سال 1999 این مجموعه دستورات ساده به یک زبان اسکریپتنویسی کوچک تبدیل شد. قابلیتهای جدیدی که به این مجموعه دستورات اضافه شدند عبارتند از: متغیرها، عبارات، عملگرها، عبارات شرطی و حلقههای تکرار. در زبان اکشناسکریپت، مجموعه دستورات "اکشنها" نامیده میشوند.
نسخههای پیشین این زبان (AS1, AS2)، امکان خلق برنامههای کاربردی اینترنتی برجستهای را برای طراحان و توسعهدهندگان این نوع برنامهها فراهم کردند. اما اینکه اکشناسکریپت 0/3 را تنها نسخه بعدی نرمافزار بدانیم، بهمعنای دستکم گرفتن قابلیتهای آن است؛ چرا که نرمافزار کنونی بهمراتب پیشرفتهتر، قدرتمندتر و تواناتر از نسخههای قبلی است. اکشناسکریپت 0/3 امکان ایجاد برنامههای بزرگتر و پیچیدهتر را با سرعت بیشتر و کارایی بالاتر فراهم میکند.
ویژگیها و قابلیتها
اکشناسکریپت 0/3 از دوبخش تشکیل میشود: زبان برنامهنویسی که هسته اصلی آن را تشکیل میدهد و Flash Player API. بخش زبان بلوکهای ساختاری اصلی زبان برنامهنویسی نظیر عبارتها، ساختارهای شرطی، حلقههای تکرار و تبدیل انواع را تشکیل میدهد در حالیکه Flash Player API از کلاسهایی ساخته شده است که توابع خاص فلشپلیر را در دسترس برنامهنویس قرار داده و آنها را به نمایش میگذارند.
اکشناسکریپت 0/3 میزبان ویژگیهای جدید و قدرتمندی است که میتوانند فرایند توسعه کد را بهمیزان قابل توجهی سرعت بخشند. اکشناسکریپت با پشتیبانی از عبارات منظم عملیات قدرتمند متعددی را بر روی فایلهای متنی امکانپذیر میسازد. برای مثال ECMAScript یا E4X، که برای XML طراحی شده است، فایلهای XML را به یک نوع دادهای ساده و قابل درک تبدیل کرده و بهاین ترتیب پردازش XML را بهنحو چشمگیری آسان میکند. در اکشناسکریپت 0/3 ابزار جدیدی تحت عنوان Display List API ارایه شده است که کار با اشیای ویژوال را ساده و قابل اطمینان میکند. مدل استاندارد مدیریت رویدادها موسوم به DOM شیوه گفتگوی اشیا با یکدیگر و پاسخگویی آنها به یکدیگر را در زمان اجرا بهبود بخشیده است. این موارد فقط بخش کوچکی از قابلیتهای اکشناسکریپت 0/3 را تشکیل میدهند.
قابلیتهای زبان
اکشناسکریپت 0/3 وجوه زبان هسته اکشناسکریپت 0/2 را با استاندارد ECMAScript سازگار ساخته و قابلیتهای جدید یا گسترش یافتهای را به زبان افزوده است. در اکشناسکریپت 0/2 بسیاری از موارد خطای زمان اجرا بدون اطلاع برنامهنویس و در سکوت از برنامه حذف میشدند. به این معنا که فلشپلیر آن دسته از اجزای ویژوال برنامه را که کد آنها دارای خطاهای قابل چشمپوشی بود، نشان نمیدادند. این مورد از مزایای اکشناسکریپت در مقایسه با نسخههای اولیه JavaScript به شمار میرفت، زیرا جاواسکریپت از حذف این موارد خودداری میکرد و اجزای ویژوال مانند Dialog boxها را بههمان شکل ناقص در جستجوگر وب نشان میداد. با این حال فقدان سیستم گزارش خطا، دیباگ کردن برنامههای اکشناسکریپت را دشوار میساخت. در اکشناسکریپت 0/3 برای حل این مشکل چارهاندیشی صورت گرفته است و سیستم دیباگ بهبود یافته، با دنبال کردن مسیر خطاها در پشته برنامه، خطا را با ذکر شماره خط مربوط گزارش کرده و رفع آن را بهسرعت ممکن میسازد.
مزایا و معایب
مهمترین مزیت پلتفرم فلش این است که وب سایت طراحی شده با استفاده از آن در همه ماشینها و تحت همه سیستم عاملهای موجود، منظره یکسانی دارد. فلش امکانات منحصربهفردی را برای کنترل رابط کاربر در اختیار برنامهنویس قرار میدهد. اکنون فلش به سیستمی بیرقیب برای طراحی سایتهایی که پویانماییهای سنگین دارند، تبدیل شده است. قابلیت پخش مجدد فایلهای صوتی و ویدیویی توسط کاربر بدون نیاز به نصب plug-inهای اضافه از دلایل این بیرقیب بودن است. از مزایای دیگر اکشناسکریپت میتوان به پشتیبانی زبان از امنیت نوع دادهای، که نگهداری کد را آسان میکند اشاره کرد. کدنویسی در این زبان از دیگر زبانهای برنامهنویسی بهمراتب سادهتر است. توسعهدهندگان کد میتوانند کدهایی با کارایی بالا و پاسخ گویی مناسب به نیازهای کاربر بنویسند.
هماکنون بزرگترین اشکالی که به این سیستم وارد است، قابل مشاهده نبودن فایلها روی ابزارهای دیگر مانند تلفن همراه و کنسولهای بازی است. از سوی دیگر، برخی از برنامهنویسان و اعضای جامعه فلش، اکشناسکریپت 0/3 را "سخت" و پیچیده توصیف میکنند. آنها ادعا میکنند که درک و یادگیری آن بهمراتب سختتر از نسخههای قبلی است و این مساله در مورد برنامهنویسان و دانشجویانی که پیشتر با نسخههای قبلی کار نکردهاند، جدیتر است تا آنجا که برخی از استادان دانشگاهها به تدریس AS1 و AS2 بهجای AS3 روی آوردهاند. از سوی دیگر برنامهنویسان حرفهای مدعی هستند که میزان کدی که باید برای انجام هر عملی نوشته شود، بهمراتب بیش از زبانهای دیگر است و همانطور که همه ما میدانیم، سرعت اجرای برنامه با تعداد خطوط آن رابطه مستقیمی دارد. بنابراین کارایی برنامههای نوشته شده با استفاده از AS3 به مهارت و تجربه برنامهنویس بستگی دارد.
با این همه بررسیهای دقیق گروهی از اعضای جامعه فلش نشان میدهد که آنچه ترس و واهمه برنامهنویسان را در پی داشته است، حجم انبوه ویژگیهای جدیدی است که در AS3 ارایه شدهاند و مبنای واقعی ندارد. بهعنوان مثال، نوعهای دادهای درAS1 بسیار ساده و از اساسیترین نوعهای دادهای هستند که عبارتند از: String که کاراکترهای منفرد و رشتههایی از کاراکترها را میپذیرد، Number که هر نوع داده عددی را پشتیبانی میکند، Boolean که یک نوع دادهای باینری ساده است و Object که با استفاده از آن هر نوع داده پیچیدهای را میتوان تعریف کرد. با استفاده از Object میتوان متدها، توابع و اشیای دیگر را تعریف کرد و یا آنها را گروهبندی کرد. در حالی که در AS3، بیش از پانزده نوع دادهای وجود دارد که برخی از آنها مانند MovieClip انحصاری هستند و در زبانهای دیگر یافت نمیشوند.
از آنجایی که برنامههای کاربردی مختلف از تواناییها و قابلیتهای متفاوتی استفاده میکنند، انجام هیچ پروژهای مستلزم تسلط به همه این قابلیتها نیست و هر برنامهنویسی باید به تناسب نیازهای خود در ارتباط با پروژهای که در دست اجرا دارد تنها بخشی از این قابلیتهای جدید را فرا گیرد. بهعنوان مثال، اگر بخواهیم یک برنامه کاربردی با ویژگیهای منحصربهفرد ایجاد کنیم آنچه لازم است بدانیم برنامهنویسی شییگرا و کار با قالب کاری مربوط به برنامههای کاربردی است که ایر (AIR) نامیده میشود. در این صورت ما نیازی به دانستن توابع مربوط به کار با فایلهای ویدیویی مانند play() و stop() نداریم.
مشکل عدم دسترسی یا مشاهده فایلها در تلفنهای همراه با استفاده از پلتفرم موسوم به Flash Light مرتفع شده است. فلشلایت فناوری است که اختصاصا برای تلفنهای همراه و دستگاههای الکترونیک بهوجود آمده است و از فلش و اکشن اسکریپت پشتیبانی میکند. نسخه کنونی فلشلایت، که Flash Light 3 نام دارد، از Flash 8 و ActionScript 2.0 و همچنین پخش مجدد ویدیوهای .FLV پشتیبانی میکند. اما مساله مربوط بهعدم قابلیت حمل کد همچنان بهقوت خود باقی است و بهنظر میرسد تا رسیدن به یک سیستم واحد که مانند جاوا مستقل از پلتفرم روی هر سیستمی قابل اجرا باشد راه و زمان درازی در پیش است.
آوید افضل
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
گزارش «جامجم» درباره دستاوردهای زبان فارسی در گفتوگو با برخی از چهرههای ادب معاصر
معاون وزیر بهداشت: