همانطور که در مقاله برنامه نویسی چیست به زبانهای سطح بالا اشاره کردیم جاوا نیز یک زبان سطح بالا میباشد که امروزه به یکی از محبوبترین و فراگیرترین زبانهایی تبدیل شده است که برنامه نویسان از آن استفاده میکنند. این هشتپا پیر در سال 1995 توسط شرکت Sun Microsystem منتشر شد. در این مقاله قصد داریم تا Java را معرفی کنیم و به این مطلب اشاره کنیم که جاوا برای چه کسانی مناسب است و اصلا چرا باید جاوا را یاد بگیریم؟ پس با ترناو همراه باشید.
جاوا چیست
جاوا یک زبان چند منظوره، شیگرا، همزمان، مستقل از پلتفرم، مبتنی بر کلاس و … میباشد. شما یک بار کد Java را مینویسید و سپس روی هر ماشینی که میخواهید اجرا میکنید (“Write Once, Run Anywhere”). این زبان برنامه نویسی شبیه زبانهای C و ++C میباشد با این تفاوت که بسیار سادهتر است. اما این نکته نیز قابل ذکر است که جاوا فقط یک زبان برنامه نویسی نیست، بلکه یک پلتفرم نیز به شمار میآید. خالق این زبان جیمز گاسلینگ میباشد. در ابتدا این زبان بلوط (OAK) نام گرفت. علت این نامگذاری درخت بلوطی که در کنار اتاق کار جیمزگاسلینگ وجود داشت بود. اما بعدها نام این زبان به جاوا تغییر کرد.
(JVM) Java Virtual Machine یا ماشین مجازی جاوا چیست؟
حالا که تعریف جاوا را فرا گرفتید شاید برایتان این سوال پیش آمده باشد که چگونه ممکن است با یک بار نوشتن کد جاوا بتوانیم روی هر پلتفرمی آن را اجرا کنیم؟
یک بار بنویسید و آن را همه جا استفاده کنید
در مقاله برنامه نویسی چیست گفتیم که کد نوشته شده به هر زبانی، نیاز دارد تا به زبان ماشین ترجمه شود. اما جاوا اینگونه نیست. جاوا کدهای نوشته شده را به بایت کد (bytecode) تبدیل میکند. بایت کدها برای ماشین مجازی جاوا قابل فهم هستند. این بایت کدها با اجرا شدن روی ماشین مجازی جاوا به کد ماشین تبدیل میشوند. پس روی هر پلتفرمی که JVM را نصب کنیم میتوانیم کدهای جاوا را اجرا کنیم. JVM یک ماشین مجازی است که رایانه را قادر میسازد تا برنامههای جاوا را اجرا کند.
مدیریت حافظه سیستم
یکی دیگر از وظایف JVM مدیریت و بهینهسازی حافظه سیستم میباشد. در سال 1995 که جاوا متولد شد، زبانهایی که وجود داشتند منحصرا برای یک پلتفرم نوشته میشدند. از طرفی مدیریت حافظه سیستم نیز بر عهده برنامهنویسان بود. بنابراین میتوان JVM را انقلابی در این حوزه دانست.
جاوا برای چه کارهایی استفاده میشود؟
جاوا یک زبان برنامه نویسی بسیار محبوب میباشد که در زمینههای مختلفی میتوان از آن استفاده کرد از جمله:
- بانکداری: برای مدیریت معاملات
- خرده فروشی: برنامههای مدیریت فروشگاه (حسابداری) و یا رستوران
- فناوری اطلاعات: در حوزه فناوری اطلاعات نیز جاوا کاربرد دارد
- اندروید: اپلیکیشنهای اندرویدی با جاوا نوشته میشوند و یا از API های جاوا استفاده میکنند
- بیگ دیتا یک سری اطلاعات با حجم بسیار عظیم میباشد که با ابزارهای معمولی مدیریت دیتا نمیتوان آن را مدیریت کرد. جاوا در این زمینه نیز حرف برای گفتن دارد. Hadoop یکی از ابزارهای پرکاربرد جاوا در این زمینه میباشد.
اما فقط همین موارد نیستند! شما میتوانید Java را با تکنولوژیهای دیگری نیز از قبیل Spring,NodeJs,J2EE و … ترکیب کنید.
ویژگیهای مثبت و منفی جاوا
-
شی گرایی (Object-Oriend)
Java شی گرایی را در آغوش میکشد! شما نه تنها نوع داده و ساختار آن را مشخص میکنید بلکه مجموعه توابع را نیز تعریف میکنید. از مزایای شی گرایی میتوان به این موارد اشاره کرد که شما میتوانید شیهایی را که میسازید را در برنامههای دیگر نیز استفاده کنید. همچنین با استفاده از شیگرایی تعمیر و نگهداری کد آسان میشود.
-
MultiThreading (چند نخی)
در برنامه نویسی یک Thread (نخ) کوچکترین واحد پردازش است. Java به شما این امکان را میدهد تا برای به حداکثر رساندن استفاده از وقت پردازنده چند نخ را همزمان برای پردازش به پردازنده بفرستید. به این عمل MutliThreading میگویند.
-
مدیریت خودکار حافظه
برنامه نویسان Java درباره نوشتن کد برای مدیریت حافظه به لطف Automatic Memory Management (AMM) هیچ نگرانی ندارند. همچنین Garbage Collector (یک برنامه کاربردی که به صورت اتوماتیک کار تخصیص و سپس بازپس گرفتن حافظه را انجام میدهد) نیز در این امر سهیم است.
-
پرداخت اجباری نسخه تجاری
اوراکل اخیرا اعلام کرده است برای دریافت آخرین بهروزرسانیها شما باید با توجه به تعداد کاربران یا تعداد پردازندهها مبلغی را پرداخت نمایید. بنابراین شما اگر بخواهید از نسخه تجاری این زبان استفاده کنید ملزم به پرداخت مبلغی خواهید بود.
-
کد طولانی و پیچیده
از معایب جاوا کدهای طولانی و پیچیدگی آن میباشد. هنگامی که کد طولانی شود، طبیعی است که خوانایی آن نیز کم خواهد شد. همچنین برخی از قسمتهای کد نیاز دارند تا به خاطر سپرده شوند و با وجود کدهای طولانی این امر نیز بسیار دشوار خواهد بود. اگر Java را با رقیبش Python از لحاظ سینتکس مقایسه کنیم، خواهیم فهمید که کدی که با زبان پایتون نوشته شده است، بسیار خواناتر است.
-
رابط کاربری اپلیکیشنهای دسکتاپ
اگر بخواهید یک اپلیکیشن ویندوزی با Java بنویسید، هنگام طراحی رابط کاربری آن ممکن است با مشکل مواجه شوید. زیرا جاوا ابزار قدرتمندی برای این کار در نظر نگرفته است. بنابراین ساخت یک رابط کاربری جاوا برای دسکتاپ نیازمند تحقیقات زیادی خواهد بود.ب رای ساخت رابط کاربری، برنامه نویسان ابزارهای مختلفی را استفاده میکنند که مشخصا برای همان پلتفرم است. مثلا برای طراحی رابط کاربری بومی اندروید از اندروید استدیو استفاده میشود.
آیا جاوا برای من مناسب است؟
قبل از پرداختن به این موضوع ابتدا باید به شما بگوییم که جواب این سوال، نظر شخصی تیم فنی ترناو میباشد. پس پیشاپیش از اعتماد شما سپاسگزاریم. اگر شما تازه با دنیای برنامه نویسی آشنا شدهاید، ابتدا باید هدف خود را مشخص کنید. بله Java برای شما انتخاب مناسبی خواهد بود. چون Java بر پایه زبان C میباشد و با اینکه سینتکس آن ممکن است کمی پیچیده باشد ولی زبان سادهای است. ولی همه چیز به تصمیم شما برمیگردد، مثلا اگر میخواهید برنامهنویس وب شوید قطعا انتخابهای بهتری برای شما وجود خواهد داشت. اگر حرفهای یا در سطح متوسط هستید بازهم باید به هدف خود فکر کنید. آیا میخواهید به سمت برنامه نویسی اندروید یا موارد دیگری که در همین مقاله ذکر شد بروید؟ اگر پاسخ مثبت است شما بازهم باید تحقیق کنید و ببینید در زمینه مدنظرتان آیا زبانهای بهتری نیز وجود دارند؟ این نکته را نیز بدانید که قطعا یادگیری Java در بهبود منطق برنامه نویسی شما تاثیر بسزایی خواهد داشت.