مار خوش خط و خال در ردایِ جاوا اسکریپت

نوشته شده توسط رامین در ۱۹ شهریور ۱۳۹۳

یکی از مشکلاتِ اصلی آدم‌هایی که برنامه‌نویسیِ سمتِ سرور و یا تحتِ کنسول می‌کنند این است که گهگاه بنا به دلایلی یک‌دفعه مجبور می‌شوند بروند سراغِ چیزهایی مثلِ اینترفیس، اینجاست که برنامه نویس احساس می‌کند واردِ سرزمینِ عجایب شده و با نمایش دادنِ یک Alert با جاوا اسکریپت چنان ذوقی می‌کند گه انگاری مرزهایِ علم و دانشِ بشری را به‌کلی جابجا کرده و بابی جدید در علوم یومیه گشوده. این موضوع وقتی هیجان‌انگیز تر می‌شود که برنامه‌نویس پایتون با آشنایی خیلی کم با جاوا اسکریپت بخواهد یک چیزی شبیه به این در بیاورد (قبل از ادامه کلیک کنید!)
کافی است کدِ صفحه را ببینید تا متوجه شوید که این قسمت با زبانِ پایتون  نوشته‌شده است.
تعجب کردید؟ درآوردن چنین چیزی با jquery-ui خیلی پیچیده است برایِ شخصِ من ولی همین را با کیفیتی مشابه می‌توانم با چند خطِ پایتون شبیه‌سازی کنیم. ولی رازِ داستان چیست؟

wallpaper_rayman_raving_rabbids_2_04_800


قسمتِ اول: رازهایِ شعبده‌باز
برایِ این شعبده‌بازی نیاز به ابزاری مختلفی دارید ولی شوربختانه دختر موبلوند غربی بالباس نامناسب جهت گول زدنِ بیننده‌ها از ملزوماتِ کار به‌حساب نمی‌آید (هرچند امیدوارم در حقه‌هایِ بعدی بتوانیم از آن‌ها استفاده کنیم). در اینجا ما به یک مفسرِ پایتون در مرورگر نیاز داریم و این کار را می‌توانیم با کتابخانه‌ای مانندِ brython انجام دهیم. در حقیقت brython به ما اجازه می‌دهد تا کدهایِ پایتونیِ خود را به‌صورت client-side اجرا کنیم و در حقیقتِ جایگزینی است برایِ جاوا اسکریپت.

قسمتِ دوم: پشتِ صحنه
فرض کنید می‌خواهیم یک عبارت از کاربر دریافت کنیم و در یک Alert نمایش بدهیم. نظرِ شما در مورد استفاده از کدِ زیر چیست؟

 

این کد و خروجی را می‌توانید در این آدرس ببینید.

قسمتِ سوم: مصائب وسیع
خب ما به ازایِ هر چیزی که به دست می‌آوریم می‌بایست چیزی را از دست بدهیم و مهمترین چیزی که اینجا از دست می‌دهیم سرعتِ اجراست. brython به طرز رعب‌انگیزی از جاوا اسکریپت کندتر است، برایِ درک کردنِ بهتر فرض کنید شما در محل کاردارید با مودمی که ۵ نفر به آن متصل هستند به‌صورت محلی کانتر بازی می‌کنید (این جاوا اسکریپت بود) در حالتِ دوم شما یک شبکه‌ی ضعیف با ده‌ها کاربر دارید که بازی‌هایِ مختلفی انجام می‌دهند (این در حقیقت خوابگاهِ کنفرانسِ زنجان بود ولی شما فکر کنید brython بوده است:)). اگر هنوز متوجهِ اختلاف نشدید پیاده‌سازیِ یک کد را با جاوا اسکریپت و brython مقایسه کنید.

پیاده‌سازی با : ‫brython

پیاده‌سازی با : جاوا اسکریپت

ولی چرا با توجه به اینکه

  • همه‌یِ کتابخانه‌هایِ پایتون را پشتیبانی نمی‌کند
  • سرعت بسیار کمی دارد
  • ابزاری برایِ عیب‌یابیِ اسکریپت وجود ندارد

همچنان ممکن است کسی از آن استفاده کند؟
پاسخ ساده است

  • این ابزار با زبانِ پایتون نوشته‌شده و ساده است
  • به‌شدت نسبت به جاوا اسکریپت خواناتر است
  • حجمِ زیادی از امکاناتِ پایتون را در اختیارِ ما قرار می‌دهد

همین موارد بهانه‌یِ کافی را به ما می‌دهد که در مواردی که تفاوتِ سرعت آن‌چنان قابل‌لمس نیست از این استفاده کنیم تا کدی پایتونی‌تر از قبل داشته باشیم و این چیز نسبتاً بامزه‌ای می‌تواند باشد.

در همین‌جا از خانم susan tan تشکر می‌کنم به خاطر اینکه تا قبلِ از این نمی‌دانستم یک ژاپنی چطور انگلیسی صحبت می‌کند:) در ادامه اینکه پیشنهاد می‌کنم اسلایدهای خانمِ susan tan را در کنفرانسِ پایتون ۲۰۱۴ مونترال ببینید.

Python In The Browser: Intro to Brython from Susan Tan

۳ دیدگاه برای “مار خوش خط و خال در ردایِ جاوا اسکریپت”

  1. راستش اگه بخوای سینتکس تمیز تر بگیری و نزدیک به پایتون هم باشد من کافی اسکریپت رو ترجیح میدهم
    http://coffeescript.org/

  2. ArashM گفت:

    الان دقت کن که برای اجرای همین کد ساده‌ات هم نزدیک به ۷۰۰ کیلوبایت دانلود لازم بود که خب خیلی زیاده برای صفحه‌ای که هیچی نداره.
    همونطوری که محمد گفت کافی‌اسکریپت خیلی بهتره.
    کلا الان زبان‌هایی که به جاوا اسکریپت کامپایل میشن خیلی زیادن و چون در نهایت به جاوا اسکریپت تبدیل میشن سرعت بیشتری تو تفسیر کد تو مرورگر دارن. برای روبی هم هست که میای روبی می‌نویسی بعد کامپایل میشه به جاوا اسکریپ http://opalrb.org احتمال زیاد باید چیزهای مشابه برای پایتون هم باشه. فقط مسئله اینجا کیفیت کد تولید شده است.

دیدگاه‌تان را ارسال کنید ...