EN

موستانگ، وحشیِ دوست داشتنی

جاوا اسکریپت

جاوا و جاوا اسکریپت - موستانگ
برنامه نویسی

جاوا و جاوا اسکریپت | چرا این نام گذاری؟

بسیاری تصور می کنند که چون جاوا اسکریپت ، عبارت جاوا را درون خود دارد، پس حتماً این دو زبان بگونه ای به هم مرتبطند! برنامه نویسان همیشه از این طرز فکر شکایت دارند. حتی بعضی معتقدند که این نام گذاری یکی از حقه های بازاریابی بوده. اما واقعیت این است که تاریخچه این دو زبان برنامه نویسی ، در مقطعی کوتاه با هم تداخل داشته است (در اوایل تاسیس شرکت Netscape). اما پس از آن، مسیر پیشرفت زبان های جاوا و جاوا اسکریپت چنان از هم جدا شد که حتی به شوخی گفته می شود که Java همانقدر به Javascript شبیه است که Ham به Hamster یا Hot به Hotdog. اما اگر این مقاله را می خوانید، احتمالاً می خواهید در مورد تاریخچه این دو زبان بیشتر از این ها بدانید. پس با موستانگ همراه شوید. اگر در زمان سفر کنیم و به حدود 6 سال قبل برویم، می بینیم که تنها یک تعریف ساده برای تفاوت جاوا و جاوا اسکریپت استفاده می شد به این صورت که: جاوا یک زبان برنامه نویسی همه منظوره است و جاوا اسکریپت برای برنامه های وب استفاده می شود تا آن ها را کارآمد تر و مملو از انیمیشن کند. اما حالا که زبان جاوا اسکریپت اینهمه پیشرفت کرده و به پرمصرف ترین زبان تبدیل شده است، به همین راحتی ها نمی توان این مقایسه را انجام داد. بیایید قبل از هر چیز نگاهی بیندازیم به حقایقی جالب درباره این دو زبان. حقایقی جالب درباره جاوا   جاوا در ابتدا با نام Oak خوانده می شد. وقتی بخش بازاریابی شرکت Sun متوجه شد که این نام قبلاً توسط یک شرکت کامپیوتری ثبت شده، اسم “جاوا” را انتخاب کرد. زبان جاوا ، در سال 1992 و کاملاً تصادفی متولد شد. آقای James Gosling به همراه تیمش، در آزمایشگاه شرکت Sun بر روی ساخت یک set-top box کار می کرد. آن ها زبان C را از روی دستگاه حذف کردند و در نهایت به زبان جدیدی رسیدند: جاوا (یا در آن زمان: Oak) اکنون جاوا دومین زبان محبوب برنامه نویسی است که در میان طراحان وب نیز بسیار طرفدار دارد. امروزه توسط 95 درصد از سازمان ها به عنوان زبان اصلی برنامه نویسی استفاده می شود. خیلی بیشتر از C و سایر زبان ها. تنها در یک سال، بیشتر از 1 میلیارد بار دانلود شد! امروزه جاوا روی 1 میلیارد دستگاه اجرا می شود (سیستم عامل اندروید هم از کتابخانه های جاوا استفاده می کند) حقایقی جالب درباره جاوا اسکریپت   در اولین سال های پیدایش اینترنت یعنی حدود 1990 ، Internet Explorer و Netscape Navigator دو مرورگر محبوبی بودند که توسط عموم مردم استفاده می شدند. تنها در 10 روز، برنامه نویسی بنام Brendan Eich ( که در شرکت Netscape کار می کرد) توانست یک زبان برنامه نویسی جدید طراحی کند که می توانست با دریافت ورودی از کاربر با او تعامل داشته باشد. او این زبان را LiveScript نامید و آن را درون مرورگر جاسازی کرد. این بدین معنا بود که مرورگر می توانست خودش دستورات کاربر را تفسیر یا interpret کند و دیگر لزومی به کامپایل کد و وجود plugin ها نبود. در همان زمان ها بود که زبان برنامه نویسی دیگری به نام جاوا ، در حال فراگیر شدن بود (جاوا برای همان کار به plugin احتیاج داشت). شرکت Netscape این فرصت را دید و زبان جدیدش را Javascript نامگذاری کرد. شباهت های جاوا و جاوا اسکریپت اگرچه جاوا و جاوا اسکریپت دو زبان کاملاً متمایز هستند، اما شباهت هایی هم وجود دارد که اگر علاقه مند به حوزه وب باشید، دانستنشان شاید بدرد بخورد. برنامه نویسی شی گرا (Object-Oriented Programming (OOP)) هر دو زبان امکان استفاده از اشیا و ارتباط بین آن ها را به برنامه نویس می دهند. در اینصورت هر دو به مفاهیمی نظیر inheritance ، encapsulation و polymorphism دسترسی خواهند داشت. برنامه نویسی Front-end هر دو می توانند در حوزه Front-end استفاده شوند. جاوا اسکریپت می تواند مستقیماً درون فایل html جاسازی شود ، در حالیکه جاوا می تواند بعنوان Java applet استفاده شود. برنامه نویسی Back-end هر دو زبان می توانند در برنامه نویسی سمت سرور هم استفاده شوند. جاوا سالیان درازی است که برای تکنولوژی های Back-end نظیر Apache، JBoss و WebSphere استفاده می شود. Node.js هم توانسته در این حوزه برای جاوا اسکریپ یک سکوی پرتاب شود. تفاوت های جاوا و جاوا اسکریپت جاوا یک زبان برنامه نویسی شی گرا است که در سال 1995 مورد استفاده قرار گرفت. در شرکت Sun Microsystems طراحی شد ولی بعدها توسط شرکت Oracle خریداری شد. برنامه هایی که توسط زبان جاوا نوشته می شوند، روی JVM یا ماشین مجازی جاوا (Java Virtual Machine) اجرا می شوند. در اینصورت می توانیم برنامه مان را روی پلتفرم ها و دستگاه های مختلف اجرا کنیم. جاوا اسکریپت یک زبان اسکریپتی شی گرا است (زبان اسکریپتی کامپایل نمی شود، بلکه در هنگام اجرا خط به خط interpret می شود). با استفاده از آن می توانید صفحات html را پویا کنید و افکت های ویژه ای به آن اضافه کنید. جاوا اسکریپت تا زمانیکه گوگل موتور خود (node.js) را معرفی نکرده بود، در مرورگرها قابل دسترس بود. جاوا و جاوا اسکریپت هر دو بطور کاملاً متفاوتی نوشته و اجرا می شوند و قابلیت های متفاوتی نیز دارند. جاوا در حوزه های مختلفی نظیر کارت های اعتباری ، برنامه نویسی اندروید و ساخت برنامه های دسکتاپ و برنامه های سازمانی استفاده می شود. در حالیکه جاوا اسکریپت بیشتر برای کارآمد تر کردن صفحات وب بکار گرفته می شود. جاوا اسکریپت می تواند جایگزین فلش شود. اگر چه بیشتر برنامه نویسان به شما می گویند که جاوا اسکریپت قابلیت های خیلی خیلی بیشتری از فلش دارد و می تواند از پس کارهایی خسته کننده نظیر ساخت انیمیشن در صفحات html بر بیاید. در نهایت به اختصار می توانیم بگوییم که: در زمینه موارد استفاده، جاوا بیشتر برای برنامه نویسی سمت سرور استفاده می شود، در حالیکه نوشتن اسکریپت های سمت کاربر (مثل validation ) مختص جاوا اسکریپت است. به عنوان یک مهندس کامپیوتر، بهتر است بدانید که دانستن هر دو زبان جاوا و جاوا اسکریپت برای رزومه کاری شما بسیار مفید خواهد

بیشتر بخوانید »
فریم ورک های جاوا اسکریپت - موستانگ
برنامه نویسی

فریم ورک های جاوا اسکریپت | بهترین ها

فریم ورک های جاوا اسکریپت، یکی از محبوب ترین پلتفرم ها برای ساختن برنامه است. برنامه هایی نظیر پیام رسان ها، فروشگاه های آنلاین، سایتها، اپلیکیشن های پردازشی و غیره. محصولتان چه کوچک باشد چه بزرگ، چه بخواهید front-end کار کنید چه back-end ، فرقی نمی کند! جاوا اسکریپت تقریباً برای هر پروژه ای مناسب است. اگر نام React و Angular را تا به حال شنیده اید، باید بگویم که اینها تنها دو مورد از انواع فریم ورک های جاوا اسکریپت هستند. پس با موستانگ همراه شوید تا با هم به معرفی بهترین فریم ورک های جاوا اسکریپت در حوزه طراحی وب بپردازیم. با محبوب ترین فریم ورک های جاوا اسکریپت آشنا شوید   احتمالاً نام سایت های معروف زیر را شنیده اید: Hulu Flickr Paytm WSJ Dictionary می دانید که این سایت ها از جاوا اسکریپت استفاده می کنند؟ پس در ادامه با ما همراه شوید تا با محبوب ترین و پر استفاده ترین فریم ورک های جاوا اسکریپت آشنا شویم.   1- AngularJS   Angular.js یک فریم ورک محبوب و متن باز برای کار front-end است که بیشتر برای توسعه ی وب اپلیکیشن های تک صفحه ای پویا یا dynamic single-page web application (SPA) استفاده می شود. بسیاری از سازمان های بزرگ، مثل PayPal ، LinkedIn ، Lego ، Hopscotch و غیره، از Angular JS برای طراحی رابط های کاربری خود استفاده می کنند. کاری که Angular JS انجام می دهد، اینست: Angular همزمان با لود کردن کامل صفحه، تمام محتوای آن را هم به مرورگر کاربر منتقل می کند. وقتی که محتوا دانلود شد، با کلیک روی یک لینک از صفحه، دیگر لازم نیست که کل محتوای صفحه از اول لود شود، بلکه فقط آن قسمت از صفحه آپدیت می شود.   مهمترین تفاوت بین سایت های سنتی و سایت هایی که از Angular استفاده می کنند، اینست که: Angular انتظار دارد که مرورگر، صفحه را بسازد. و این باعث می شود که بار کمتری روی سرور قرار بگیرد و در نتیجه صفحه سریع تر لود شود. Angular ، به دلیل استفاده از تکنولوژی JSON ، کار را برای پردازش های داینامیک و پویا راحت تر می کند. هر برنامه نویسی که دانش پایه برای طراحی فرانت اند را داشته باشد (یعنی دانستن HTML5 و جاوا اسکریپت) ، می تواند به راحتی و خیلی سریع Angular را هم بیاموزد. Angular در ابتدای کار، به TypeScript وابسته بود که باعث می شد تا در پروژه های متن باز پایدارتر عمل کند. ولی با آمدن نسخه های جدید، خیلی پیشرفته تر شده است. *می پرسید TypeScript چیست؟ تایپ‌اسکریپت یک زبان برنامه نویسی است که توسط مایکروسافت توسعه‌داده می‌شود. تایپ‌اسکریپت، پیشرفت‌داده‌شدهٔ جاوا اسکریپت است و بررسی نوع قوی و شئ‌گرایی واقعی را ذاتاً به آن زبان می‌افزاید. آندرس هجلزبرگ (پدر سی‌شارپ) در توسعهٔ تایپ‌ اسکریپت فعالیت داشته‌ است.   2- React   React در سال 2013 منتشر شد و یکی از بهترین فریم ورک های جاوا اسکریپت است که سریعتر از بقیه هم پیشرفت می کند. React برای طراحی رابط های کاربری (UI) برنامه ها استفاده می شود. معمولاً برنامه های بزرگ با تعداد کاربران فراوان، نظیر فیس بوک و اینستاگرام از React در طراحی UI خودشان استفاده می کنند. همیشه بین انتخاب Angular و React جنگ بوده است. React در مقابل Angular منعطف تر است، زیرا طراحان باید با کتابخانه هایی مستقل کار کنند و زمان پاسخ هم به مراتب بهتر است. هر پروژه React می تواند یک معماری متفاوت داشته باشد. React بیشتر برای قسمت View در معماری MVC استفاده می شود. با react ، هر زمان بخواهیم view را آپدیت کنیم، دیگر لزومی به وصل شدن به سرور و گرفتن یک view جدید نداریم. وقتی می خواهید برنامه ای طراحی کنید که چند view دارد، React JS بهترین انتخاب است. همان طور که میدانید، هر صفحه بوسیله چند ویجت یا کامپوننت ساخته می شود و استفاده از Angular اینجا پیشنهاد نمی شود، چون ممکن است پیچیدگی ها و مشکلات زیادی درست کند. اما React JS یک گزینه خوب برای ساختن صفحه هایی است که با ویجت و کامپوننت درست می شوند.     3- Ember.js   Ember هم یکی دیگر از فریم ورک های جاوا اسکریپت است که متن باز بوده، هم برای ساختن سایت ها و برنامه های یک صفحه ای استفاده می شود و هم برای برنامه های وبی بزرگ. وبسایت هایی نظیر LinkedIn ، Vine و Live از Ember بهره می برند. همچنین برای توسعه اپلیکیشن های دسکتاپ و موبایل هم می توان از آن استفاده کرد. یکی از جاهایی که به طور محسوس از Ember استفاده می شود، در Apple Music است. بر خلاف Angular و React که بیشتر منعطف و کمتر خودسر هستند، Ember خیلی خودسر است. یعنی چی؟ یعنی برای خودش کلی فرضیات دارد و طراح را مجبور می کند که این فرضیات را قبول کند! اگر از نظر آپدیت بخواهیم بررسی کنیم، Ember از خیلی از فریم ورک های جاوا اسکریپت جلوتر است. (بطور مداوم، ویژگی های جدیدی به آن اضافه می شود). از نظر پشتیبانی، Ember از Meteor بهتر است اما از نظر راحتی راه اندازی و نصب نه. Ember همچنین فریم ورک های Polymer و Mithril را شکست می دهد (بعنوان بهترین فریم ورک جاوا اسکریپت سمت کاربر یا client-side ).   چیزی که کاربران Ember را بیشتر از فریم ورک های دیگر جاوا اسکریپت خوشحال می کند، API کاربر پسندانه آن است. یعنی خیلی راحت می فهمیدش و می توانید با آن کار کنید. این ویژگی، این امکان را به شما می دهد که تابع های بسیار پیچیده را با روش هایی قابل فهم تر پیاده سازی کنید. در واقع همه چیز کاملاً فراهم شده تا به عنوان یک توسعه دهنده، بتوانید خیلی راحت و به سرعت یک پروژه را شروع کنید.   4- Vue.js   Vue.js در سال 2014 منتشر شد و به عنوان رو به جلوترین فریم ورک جاوا اسکریپت شناخته می شود. Vue یک فریم ورک سبک و رو به جلو است که بیشتر مفاهیمش از React JS و Angular JS سرچشمه می گیرد. استایل تمپلیت آن شبیه به Angular و پشتیبانی آن از کامپوننت ها، شبیه به React است. Vue می تواند

بیشتر بخوانید »