چرا من از زبان برنامه نویسی جاوا استفاده می کنم

یکشنبه 31 شهریور 1398

زبان برنامه نویسی جاوا یکی از بهترین زبان های برنامه نویسی دنیا است، در این مطلب قصد دارم دلایل استفاده از زبان برنامه نویسی جاوا را به شما توضیح دهم.

 چرا من از زبان برنامه نویسی جاوا استفاده می کنم

من از سال 1997 استفاده از زبان برنامه نویسی جاوا را شروع کردم، مدت زیادی طول نکشید که نسخه 1.1 زبان برنامه نویسی جاوا منتشر شد، از همان موقع به طور کلی من از برنامه نویسی به زبان جاوا واقعا لذت می بردم، اگر چه من اعتراف می کنم که این روزها از اسکریپت های گرووی نیز به اندازه کدهای زبان برنامه نویسی جاوا لذت می برم.

من با پیش زمینه ای که از زبان های برنامه نویسی پاسکال، PL/1، فرترن و سی داشتم چیزهای زیادی پیدا کردم که در مورد جاوا دوست دارم، جاوا اولین تجربه من در زمینه برنامه نویسی شی گرا بود، در آن زمان من حدود بیست سال بود که برنامه نویسی می کردم و قطعا من ایده هایی درباره این که چه چیزی در برنامه نویسی مهم است و چه چیزی مهم نیست داشتم.


دیباگ کردن ویژگی اصلی یک زبان برنامه نویسی( بخش اول)

من واقعا از هدر رفتن وقت بر سر دیباگ کردن اشتباهاتی که بر سر بی دقتی خودم به وجود آمده اند متنفر بودم علی الخصوص در روزهایی که برنامه نویسی به زبان فرترن بر روی mainframe های IBM صورت می گرفت. یکی دیگر از مشکلات بسیار ظریف که امروزه از بین رفته است فراخوانی یک subroutine با استفاده از عدد صحیح 4 بایتی بود که انتظار دو بایت را داشت. در برخی از معماری های کوچک این اغلب تبدیل به یک باگ خوش وضع می شد که قابل حل بود اما در معماری های بزرگ ارزش دو بایت بالا معمولا و نه همیشه صفر بود.

 زبان برنامه نویسی جاوا


دیباگ کردن ویژگی اصلی یک زبان برنامه نویسی( بخش دوم)

دیباگ کردن در محیط batch همواره ناخوشایند بود، این کار از طریق dump های هسته و یا دستورات پرینت صورت می گرفت که حتی خود این دستورات می توانستند اشکالاتی که در آن بخش وجود دارد را جا به جا کنند و یا حتی باعث از بین رفتن آن ها شوند.

بعد از آن تجربیات ابتدایی من با زبان پاسکال ابتدا در MTS و بعد از آن با استفاده کردن از همان کامپایلر MTS بر روی IBM OS/VS1 بود که برنامه نویسی را برای من راحت تر کرده بود. Typing استاتیک و بسیار قدرتمند پاسکال بخش بزرگی از دلایل موفقیت این زبان بود و هر کامپایلر پاسکال که من از آن استفاده می کردم از بررسی های ران تایم بر روی محدوده های آرایه استفاده می کرد، بنابراین باگ ها در همان شروع کار تشخیص داده می شدند. زمانی که ما در سال 1980 کارهای خود را به سیستم های یونیکس منتقل کردیم ارسال کدهای پاسکال کار بسیار ساده ای بود.

 زبان برنامه نویسی جاوا


پیدا کردن سینتکس های مناسب( بخش اول)

مهم ترین دلیلی که من بسیار زیاد زبان برنامه نویسی پاسکال را دوست داشتم این بود که کدهای من به صورت کلمه ای بودند و به نظر می رسید که سینتکس این زبان به نوعی مبهم بود، به عنوان مثال از قطعه کد زیر:

if … then begin … end else … end

به جای:

if (…) { … } else { … }

در زبان برنامه نویسی سی و زبان های مشابه استفاده می شد. انجام برخی از کارها در زبان برنامه نویسی پاسکال بسیار سخت بود و انجام همان کارها در سی راحت تر بود. اما نکته ای که وجود داشت این بود که من با شروع کار کردن با زبان سی همان اشتباهاتی را مرتکب شدم که درباره زبان پاسکال مرتکب شده بودم، به عنوان مثال پایان آرایه ها همچنان برای من خطا ساز بود. این گونه خطاها در ابتدا نمایش داده نمی شوند ولی بر روی اجرای کد من تاثیر می گذاشتند. خوشبختانه من دیگر در محیط batch برنامه نویسی نکردم و بعد از آن نیز ابزارهای فوق العاده ای برای دیباگ کردن به وجود آمد، در آن زمان زبان برنامه نویسی سی به من انعطاف پذیری بیش از حدی داده بود.

 زبان برنامه نویسی جاوا


پیدا کردن سینتکس های مناسب( بخش دوم)

زمانی که من awk را کشف کردم متوجه شدم که نقاط مشترک زیادی با زبان سی دارد، در آن زمان بسیاری از کارهای من شامل انتقال فیلدهای داده ها و تولید گزارشات بود. من متوجه شدم که می توانم میزان زیادی از این کار را به سرعت با awk انجام دهم و علاوه بر این بسیاری از کارهای دیگر که با خط فرمان یونیکس انجام می شد را نیز می شد با awk انجام داد که از جمله آنها می توان به مرتب سازی، sed، کات کردن، متصل کردن، پیست کردن، Comm و .... اشاره کرد. در اصل این ابزار امکانی مشابه با رابط مدیریت کننده دیتابیس برای فایل های متنی که به صورت ستونی بودند را ارائه داده بود، در واقع فیلدهای داده های ما نیز شبیه به همین دیتابیس بود. البته توجه داشته باشید دقیقا با همان فرمت نبود، در بیشتر مواقع داده ها باید از یک رابط دیتابیس یا از یک سری از فرمت های دودویی به داخل فرمت ستونی بارگذاری می شدند.

 زبان برنامه نویسی جاوا


پیدا کردن سینتکس های مناسب( بخش دوم)

مدیریت رشته ها، عبارت های منظم و آرایه های associative به عنوان حالت طبیعی این ابزار توسط awk پشتیبانی می شدند( این در واقع یک پیپ لاین انتقال داده بود) که این موضوع کار من را بسیار راحت تر کرده بود. زمانی که من به فایل های داده دودویی، داده ساختارهای پیچیده و عملکردهای قطعی نیاز داشتم باز هم به سراغ زبان برنامه نویسی سی می آمدم. اما هر چه بیشتر از awk استفاده می کردم پشتیبانی از رشته ها را در زبان برنامه نویسی سی ناامید کننده تر می دانستم. با گذشت زمان من تنها زمان هایی که مجبور بودم از زبان سی استفاده می کردم.

 زبان برنامه نویسی جاوا


زبان برنامه نویسی جاوا سطح مناسبی از abstraction را دارا است( بخش اول)

بعد از تمامی این اتفاقات زبان برنامه نویسی جاوا وارد بازار شد، زمانی که از بیرون به آن نگاه می کردید یک زبان فوق العاده بود، یک سینتکس پراکنده که یادآور زبان سی بود یا حداقل می توان گفت بهتر از پاسکال و زبان های مشابه ساخته شده بود. این زبان به صورت strongly typed بود بنابراین بسیاری از خطاهای برنامه نویسی در زمان کامپایل به شما نشان داده می شوند. به نظر نمی رسید که برای ادامه دادن با زبان برنامه نویسی جاوا نیازی به سطح بالای شی گرایی باشد که این یک نکته بسیار خوب بود چرا که من در آن زمان به سختی با الگوهای طراحی شی گرایی ارتباط برقرار می کردم. اما حتی در اولین روزها نیز من ایده هایی که درباره مدل بسیار ساده وراثت بود را بسیار دوست داشتم.( جاوا به شما اجازه وراثت واحد با استفاده از اینترفیس های مختلف برای پارادایم های مختلف را فراهم می کند.)

 زبان برنامه نویسی جاوا


زبان برنامه نویسی جاوا سطح مناسبی از abstraction را دارا است( بخش دوم)

نکته جالبی که درباره زبان برنامه نویسی جاوا به نظر می رسید این بود که دارای یک کتابخانه غنی به صورت فانکشنال بود که تمامی نیازهای من را تامین می کرد. من به سرعت متوجه شدم که علاقه مند به این موضوع شدم که هم داده ها و هم متدها به صورت یکجا در اشیا گنجانده شده اند. این موضوع دقیقا مانند آن بود که به صورت مستقیم و صریح با داده ها تعامل داشته باشیم که خیلی بهتر از آن بود که از طریق آرگومان های کنترل نشده به متغیرهای گلوبال دسترسی داشته باشیم.

از آن زمان زبان برنامه نویسی جاوا تبدیل به یک ابزار همه کاره برای من شده است، البته من هنوز هم گاهی اوقات با استفاده از awk کدنویسی می کنم و یا از ابزارهای خط فرمان یونیکس استفاده می کنم که از جمله این ابزارها می توان به مرتب سازی و کات کردن اشاره کرد، دلیل استفاده من نیز این است که استفاده کردن از آن ها در چنین مواردی بسیار راحت تر است. امروزه زبان برنامه نویسی جاوا به صورت کامل جای زبان برنامه نویسی سی را برای من پر کرده است.

 زبان برنامه نویسی جاوا


زبان برنامه نویسی جاوا سطح مناسبی از abstraction را دارا است( بخش سوم)

علاوه بر موارد بیان شده زبان برنامه نویسی جاوا با گذشت زمان بهبود پیدا کرده است، اول از همه عملکرد آن بهبود پیدا کرده است، برخی از قابلیت های بسیار مفید به آن اضافه شده است مانند کار کردن با منابع  و دستور try که باعث می شود تا کدهای شما بسیار مرتب تر باشد و تا حدود زیادی از نوشتن کدهای نامرتب و به اصطلاح کثیف در زمان تعامل با خطاهای کار کردن با I/O جلوگیری می کند. Lambdas نیز یک امکان فوق العاده است که به شما این امکان را ارائه می دهد که بتوانید توابع را تعریف کنید و به عنوان پارامتر ارسال کنید که از این روش به جای رویکرد قدیمی که نیاز داشت تا شما یک کلاس یا یک اینترفیس تعریف کنید تا این تابع را میزبانی کنید استفاده می شود. stream ها نیز امکان دیگری هستند که می توانید از آن ها استفاده کنید که رفتارها و عملکردهای تکراری را در توابع محصور می کند، یک پیپ لاین بسیار کارآمد برای انتقال داده ها ایجاد می کند که استفاده از آن بسیار راحت است.

 زبان برنامه نویسی جاوا


زبان برنامه نویسی جاوا بهتر و بهتر خواهد شد

تعداد زیادی از طراحان این زبان برنامه نویسی به دنبال روش هایی هستند که تجربه استفاده از آن را برای توسعه دهندگان بهبود ببخشند، برای من این موضوع یک جذابیت فوق العاده است، در حال حاضر ویژگی های زیادی هستند که استفاده از آن ها من را به وجد می آورد، یکی از این تلاش ها باعث به وجود آمدن زبان برنامه نویسی گرووی شده است، زمانی که من به یک مشکل کوچک برخورد می کنم گرووی می تواند راه حلی مناسب برای حل مشکل من باشد، نکته دیگر درباره این زبان این است که سازگاری خوبی با زبان برنامه نویسی جاوا دارد. برای من گرووی همان نقشی را ایفا می کند که زبان برنامه نویسی پایتون برای بسیاری از افراد دیگر ایفا می کند. یک زبان جمع و جور، راحت برای استفاده expressive که از لیست ها و دیکشنری ها پشتیبانی می کند. علاوه بر این من از Grails نیز استفاده می کنم که از گرووی استفاده می کند تا یک فریم ورک ساده تحت وب را ایجاد کند تا با استفاده از آن بتوان اپلیکیشن های بسیار جالبی نوشت.

 زبان برنامه نویسی جاوا


جاوا همچنان متن باز است؟

اخیرا پشتیبانی رو به رشد زبان برنامه نویسی جاوا از OpenJDK شرایط مناسبی را برای استفاده از جاوا فراهم کرده است. امروزه بسیاری از شرکت ها مانند آمازون، Adopt OpenJDK و Redhat از این زبان استفاده می کنند. بنابراین پیش بینی می شود که زبان برنامه نویسی جاوا همچنان متن باز باقی بماند.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 1k بازدید
  • 0 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید