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 ) مختص جاوا اسکریپت است. به عنوان یک مهندس کامپیوتر، بهتر است بدانید که دانستن هر دو زبان جاوا و جاوا اسکریپت برای رزومه کاری شما بسیار مفید خواهد

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

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

جاوا هنوز هم از محبوب ترین و پرکاربردترین زبان ها برای توسعه انواع اپلیکیشن های موبایل و وب است. انواع زیادی از فریم ورک های جاوا ساخته شده اند تا برنامه نویسان راحت تر و سریع تر بتوانند پروژه های خود را بسازند. وقتی از یک فریم ورک استفاده می کنید، دیگر نیازی به نوشتن کدهای پیچیده ندارید، بلکه می توانید از کدهای آماده آن استفاده کرده و تغییرات مورد نظر خود را بدهید (بدون نیاز به برنامه نویسی مجدد). در این صورت، فرآیند توسعه نرم افزار بسیار راحت تر می شود. با موستانگ در این مقاله هم قدم شوید تا تعدادی از بهترین فریم ورک های جاوا را بررسی کنیم. 1- اسپرینگ (  Spring ) | یکی از بهترین فریم ورک های جاوا   اسپرینگ ، یک فریم ورک سبک و ماژولار است که می توانید در هر لایه از پروژه خود از آن استفاده کنید. یکی از قدیمی ترین فریم ورک های جاوا است که برای تولید برنامه ها در سطح سازمانی یا enterprise مناسب است. در ابتدا اسپرینگ به عنوان ابزاری برای dependency injection یا تزریق وابستگی استفاده می شد. اما به مرور تبدیل به یک فریم ورک تمام عیار برای توسعه برنامه ها شد. Dependency injection یا تزریق وابستگی چیست؟ الگویی است جهت تزریق وابستگی های خارجی به یک کلاس به جای استفاده مستقیم از آن وابستگی ها در درون کلاس. به مثال زیر توجه کنید: class SendSingleSMS { private $gateway; public function __construct() { $configs = new Configs(‘gateway_attributes’); $this->gateway = new Gateway($configs); } public function send() { $this->gateway->sendSingle(); } } در اینجا کلاس SendSingleSMS به شیئی از کلاس Gateway وابسته است. ولی اگر متغیری به کلاس Gateway اضافه کنیم، چه می شود؟ مجبوریم تا کد تمام کلاس هایی که از آن استفاده می کنند ( مثل SendSingleSMS) را تغییر دهیم. با استفاده از تزریق وابستگی ، می توان کلاس بالا را به شکل زیر نوشت (در اینجا متغیری از نوع Gateway را به تابع سازنده تزریق می کنیم): class SendSingleSMS {    private $gateway;      public function __construct(Gateway $gateway)    {           $this->gateway = $gateway;    }      public function send()    {        $this->gateway->sendSingle();    } } فواید اسپرینگ : پشتیبانی از xml و annotation-based configuration قوی ، منعطف و سبک 2- هایبرنت ( Hibernate )   هایبرنت یکی از محبوب ترین و بهترین فریم ورک های جاوا در میان برنامه نویسان است. عمدتاً برای ارتباط با پایگاه داده استفاده می شود. چون می تواند این نوع از تسک ها را آسان تر و مرتب تر انجام دهد. هایبرنیت به راحتی کانفیگ و شخصی سازی می شود و مخصوص تکنیک ORM (Object Relational Mapping) است ( ORM تکنیکی است برای نگاشت داده های پایگاه داده به اشیا و کلاس ها و عملاً به برنامه نویس این امکان را می دهد که بدون نیاز به کد sql و از طریق اشیا به پایگاه داده دسترسی داشته باشد) تنها ضعفی که فریم ورک هایبرنیت دارد، اینست که به محض این که شما این فریم ورک ORM را باز می کنید، زمان بسیار زیادی می برد تا به آخرین جایی که کار می کردید برسید. فواید هایبرنیت : آخرین نسخه آن از پایگاه داده های noSql  پشتیبانی می کند ابزارهای برنامه نویسی بسیاری دارد، نظیر: Mapping editor و  Hibernate console در اصل برای RDBMS ( Relational DataBase Management System ) طراحی شده است در این قسمت از مانژ ، می توانید با نمونه کد های هایبرنیت آشنا شوید. 3- JSF ( Java Server faces ) یکی از بهترین فریم ورک های جاوا که مختص اپلیکیشن های وب است. هدف اصلی  JSF ، آسان کردن فرآیند طراحی رابط های کاربری وب است. JSF یک تکنولوژی طراحی است و بر پایه معماری MVC ( Model View Controller  ) بنا شده. معماری JSF بگونه ای است که منطق یا logic برنامه را از طراحی آن جدا می کند. فواید JSF : از xml  ( به جای جاوا ) در طراحی view ها ( یا رابط کاربری ) استفاده می کند می تواند برای هر client یک تگ منحصر بفرد بسازد کامپوننت های از پیش طراحی شده دارد     در این قسمت از مانژ ، می توانید با نمونه کد های JSF آشنا شوید.   اگر با زبان جاوا آشنایی ندارید و می خواهید در کمترین زمان ممکن با آن آشنا شوید، می توانید از این دوره رایگان آموزش جاوا استفاده کنید.   3- GWT  ( Google Web Toolkit ) GWT یک فریم ورک متن باز است که برای کار front end مناسب است و توسعه اپلیکیشن های front end را بسیار آسان می کند. طوری که با کمترین دانش برنامه نویسی ، می توانید رابط های کاربری بسیار زیبایی طراحی کنید. همان طور که از نامش مشخص است، گوگل توسعه دهنده این فریم ورک است و به دلیل قابلیت های منحصر بفردی که دارد، بسیار از آن استفاده می شود. برنامه های تحت وب بسیاری با استفاده از این فریم ورک جاوا نوشته شده اند، نظیر: Google Analytics ، Google Adsense و Blogger . فواید GWT: مستندات و پشتیبانی خوبی دارد پایدار است و قابلیت پشتیبانی از مرورگرهای مختلف را دارد با وجود آن، استفاده از API های گوگل آسان تر می شود 4- Dropwizard این فریم ورک جاوا ابزارهای مختلفی در اختیارتان می گذارد که می توانید به سرعت و با پیچیدگی کمتری، اپلیکیشن هایتان را طراحی کنید. متن باز است و برای ساخت سرویس های وب RESTFUL استفاده می شود (سرویس های وب RESTFUL یا Restful Web Services ، یک سرویس سبک و مقیاس پذیر ( scalable ) است که بر مبنای معماری REST کار می کند). فواید Dropwizard: پشتیبانی از بسیاری از کتابخانه های متن باز 5- Vaadin   Vaadin  یکی از بهترین فریم ورک های جاوا است که می توانید با استفاده از آن انواع برنامه های تحت وب را با کامپوننت های قابل شخصی سازی ( customizable ) بسازید. این فریم ورک از لحاظ کارایی با نمونه های قدیمی جاوا یا جاوا اسکریپت خیلی فرق می کند. Vaadin بسیار سبک است و تاکیدش بر روی کارایی ، تجربه کاربر ( UX )  و قابلیت دسترسی است. فواید Vaadin: می توانید رابط های کاربری غنی و قوی با آن بسازید

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