بقيه در ادامه
اما ديري نپاييد كه گرماي بازار بازينويسي قطعيت اين سخن را دچار ترديد کرد. هرچند بسياري، بازيها را زيرمجموعهاي از همان کار قبلي ميدانستند و توليد بازيها نيز کمکم از عهده يک يا دو نفر خارج و هر بازي به يک پروژه برنامهنويسي و طراحي تبديل ميشد اما در اين کهکشان ايده و ابزار، منظومه ديگري در حال شكلگيري بود.
شرکت خلاقيتمحور اپل که تا پيش از سال 2005 تنها نمونههاي خاصي از رايانههاي روميزي و دستي و سرور را توليد ميکرد، پوست انداخت و با رونمايي از محصولات جديد خود تعاريف و معادلات بازار رايانهها را تغيير داد. پيش از اينکه به اصل موضوع برسيم، يادآور ميشويم که شرکت اپل با توليد دستگاه آيپاد که يک پخشکننده موسيقي است، توانسته بود واژه پادکست را به دنياي اطلاعرساني بيفزايد و اين کاري بود که شرکتهايي مثل سوني که واکمن را سالها قبل ساخته بودند، نتوانستند انجام دهند.
محصولات جديد اپل بهخصوص آيفون و آيپادتاچ زيرساخت منحصربهفردي بودند براي توسعه يک واژه بهنام APP.
برنامه کاربردي چيست؟
APPكهمخففapplicationprogram است، برنامه کاربردي ترجمه شده و البته معادلسازي خوبي هم هست.
نکته: واژه application ريشه در کلمه apply دارد که بهمعناي کاربرد، اعمال و درخواست اعمال است Wikipedia.
برنامههاي کاربردي که امروزه از آن صحبت ميشود، ديگر شکل و شمايل برنامههاي قديمي را ندارد. يعني نه مانند آنها هستند و نه خاصيتشان با آنها يکي است. قديمترها برنامهها معمولا يا پرحجم بودند يا براي منظور خاصي طراحي شده و با شرايط خاصي اجرا ميشدند اما امروزه همه سازندگان اين برنامهها سعي ميكنند از چنين اشکالاتي کم کرده و برنامه را با رويه کاربري روانتر و آسانتر تهيه کنند.
تا پيش از به بازار آمدن برنامههاي کاربردي روي سيستمعاملهاي هوشمند امروزي اين واژه بهشکلapplication براي برنامههاي پرکاربرد و روزمره استفاده ميشد. چيزي مانند برنامه ورد يا اكسل. دركل، برنامههايي که بهمنظور خاصي ساخته ميشدند را به اين نام ميشناختند. آن زمان چنين برنامههايي قابليتهاي چنداني نداشتند اما با هوشمند شدن سيستمعاملها و پيشرفت زيرساخت سختافزاري وسايل محاسباتي اين رويه تغيير زيادي کرد و برنامههايي مانند سري آفيس مايکروسافت از قالب يک سري نرمافزار محدود خارج شدند اما همچنان به آنها اپليکيشن ميگويند.
برنامههاي کاربردي کوچک امروزي يا همان App، هم در اسم و هم در عمل ازapplication کوچکتر هستند و App معمولا به برنامههايي گفته ميشود که داراي حجم کمي بوده و براي منظور خاصي تهيه ميشوند. مانند برنامهاي براي ضبط و پخش موسيقي يا برنامهاي براي تنظيم ساعت غذا يا تبديل واحد پول و هزاران كار ديگر.
بسياري از اين نرمافزارها کاربرد روزانه دارند و کاربر هر روز با آنها سروکار دارد. دسته ديگر براي مواقع خاصي كاربرد دارند؛ مانند زمان روي دادن حوادث يا بيماري و دسته آخر نيز براي تفريح و سرگرمي هستند. تمام برنامههاي کاربردي براي انجام کارهاي روزانه و ادامهدار طراحي نشدهاند و برنامههاي کمکي يا برنامههاي کاربردي سودمند که با واژه utilities شناخته ميشوند نوع ديگري از نرمافزار هستند.
ساختار
يک برنامه کاربردي براي هر كاري ميتواند استفاده شود اما ميتوان آنها را به دو دسته کلي تقسيم کرد. دسته اول برنامههاي محلي هستند که محدود به کاربرند و لزوما با دنياي خارج ارتباطي ندارند؛ مانند برنامه ماشينحساب. دسته دوم ابزارهاي اشتراکي (share were) هستند که با اتصال به يک منبع اطلاعاتي مثل يک سرور خاص يا اينترنت، اطلاعاتي را ارسال و اطلاعاتي را دريافت ميکنند. دسته اول مانند برنامههاي معمولي در رايانه عمل ميکنند و منابع اطلاعاتي و محاسباتي را با خود دارند اما دسته دوم معمولا داراي دو نسخه هستند: يک نسخه کاربرclient و يک نسخه منبعserver که نمونه پرکاربرد آن برنامههاي پيامرساني مانند Yahoo Messenger يا Gtalk است.
برنامههاي اشتراکي در پشت پرده با استفاده از استانداردهاي تعريف شده در شبکه و بنا بر تنظيمات برنامهنويس با سرور خود ارتباط برقرار ميکند و بدون اينکه کاربر درگير جريان کار تبادل داده باشد، اطلاعات را ارسال و دريافت ميکند. تمام پيچيدگيهاي نرمافزار در پشت رابط نمايش کاربر يا همان API پنهان است و اصولا همين موضوع کار را ساده ميکند.
هر Application program interface داراي قوانين و استانداردهاي زيادي است که ميتوان براي هرکدام کتاب نوشت، اما خلاصه امر آنکه ظاهر يک برنامه و آنچه ميبينيد را API ميگويند و البته به آن واسط گرافيکي کاربر يا همان GUI ميگويند.
هر App چه از جنس برنامههاي اشتراکي باشد يا صرفا از يک منبع اطلاعاتي غيرمحلي اطلاعاتش را دريافت کند بهنوع خاصي از اطلاعات نياز دارد که سير اين دادوستد اطلاعاتي را يک خدمت يا همان سرويس ميگويند. بسياري از اين نوع برنامهها برنامههاي خدماتي هستند که منابع اطلاعاتي يا خدماتي براي گسترش و توسعه فعاليت خود را توليد ميکنند. نمونه بارز اين نوع Appها برنامههاي اعلام وضعيت آب و هوا يا خبررسانهايي هستند که نمونههايي از آنرا روي sidebar يا مجموعههايي مثل google desktop ميتوانيد ببينيد. اين ريزابزارها با استفاده از زيرساخت يک سيستمعامل که ميتواند با هر ساختاري باشد (موبايل، رايانه روميزي يا لپتاپ با هر نوع سيستمعاملي) تهيه ميشود و در يک محيط مناسب ميتواند داده دريافت و ارسال کند.
آياAppها از تمام برنامههاي ديگر مستقل هستند؟
پاسخ در يك كلام منفي است، اما درباره استقلال برنامههاي کاربردي کوچک يا همان App بايد گفت اين برنامهها ميتوانند براي کارآمد شدن يک برنامه جامع يا برنامه کاربردي ديگر طراحي شوند و حتي ميتوانند قسمتي از کار آن برنامه را به عمد مختل کنند. بهعنوان مثال برنامه جامعي مانند فايرفاکس يا بسياري از انواع مرورگرهاي اينترنتي داراي کارکردهاي زيادي هستند اما با برنامههاي کاربردي کوچک غيرمستقلي که با نام Add-ons يا افزونه شناخته ميشوند، ميتوان کارکردهاي بسيار زيادي به اين نرمافزار افزود و محيط را بنابه خواستههاي خود تغيير داد.
در همين برنامه نيز افزونههايي براي ايجاد فيلتر روي برخي سايتها يا بر حسب نوع کاربر ميتوان ايجاد کرد که کاربري افراد از اينترنت به رويه خاصي صورت بگيرد. بهعنوان مثال اگر کاربري با سن کمتر از 13سال پاي رايانه نشست، نتواند از کلمات خاص يا سايتهاي خاصي استفاده کند يا افزونه کتابياب که هم روي مرورگرهاي اينترنتي بهصورت نوار جستجو نصب ميشود و هم بهصورت يک نرمافزار کوچک و مستقل بهطور مستقيم روي سيستمعامل نصب ميشود. نمونه اين نرمافزارها براي کارکردهاي ديگر بسيار زياد است.
نکته: فراموش نکنيد افزونهنويسي يا توليد اين نرمافزارها کار غيرممکني براي کاربران ايراني نيست و قابل توجه آنکه يکي از مديران پروژه فايرفاکس آقاي "احسان اخگري" دانشآموخته دانشگاه شريف است که رسما در بنياد موزيلا-کانادا مشغول بهکار است و از چند سال پيش در توسعه فايرفاکس نقش داشت. درباره زيرساخت برنامهنويسي و طرح کسبوکاري که شرکتي مانند اپل را از همين ريزبرنامهها به هزارميليارد تومان سود خالص رسانيد را در آينده شرح خواهيم داد.
سعيد نوري آزاد