بررسی IDE های جاوا

بازدید59.4kپست ها2آخرین فعالیت10 سال پیش
0
0

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

اما ناتوانی پلاتفرم های سخت افزاری آن زمان در پشتیبانی نیازهای محاسباتی چنین محصولات پیچیده ای آنها را محکوم به شکست زودهنگام نمود. امروزه، با وجود ایستگاه های کاری توسعه گر که دارای پردازنده های ۳ گیگاهرتزی و رم های ۱ گیگابایتی هستند، محیط های قدرتمند می توانند بدون وارد ساختن بار اضافی بر سخت افزار اجرا گردند. در نتیجه این پیشرفت، طی چند سال گذشته شاهد ظهور محصولات قابل توجهی، از قبیل Visual Studio .Net و Eclipse ۳.۰، بوده ایم که سطح IDEها را بالا برده اند.
ما به بررسی چهار IDE پیشرو برای توسعه جاوای enterprise (و ابزارهای همراه آنها) از شرکت Borland Software، شرکت IBM، شرکت Oracle، و شرکت Sun Microsystems پرداختم. این محصولات به شکلی جالب توجه سمبل های IDE متفاوت را به کار می برند.

محصول IBM مبتنی بر Eclipse ۳.۰ مجانی کدباز است، که مقبولیت زیادی در بین توسعه گران جاوا دارد؛ محصول Sun مبتنی بر پلاتفرم IDE کدباز رقیب یعنی NetBeans است؛ و محصولات Oracle و Borland بر مبنای رابط های کاربر اختصاصی ساخته شده اند.مجموعه های ابزارهای گردآوری شده در این محصولات به میزان قابل توجهی از فروشنده ای به فروشنده ی دیگر متفاوت است. من مجموعه ابزارهایی را برگزیدم که شامل مدل سازی، یکپارچگی وب به صورت ذاتی، و پشتیبانی J۲EE بودند – عناصر مهم هر پلاتفرم جاوا enterprise. این چهار IDE هر کدام در نوع خود قابل توجه هستند و نشان می دهند که تا چه حد تکنولوژی جدید در طی چند سال اخیر رشد داشته است.

● Borland JBuilder ۲۰۰۵ Enterprise Edition

JBuilder IDE نخستین IDE ماژولار بود که جاوا را پشتیبانی نمود. معماری آن به خوبی مستند شده و راهنماهای موجود برای نوشتن plug-in ها قابل فهم هستند؛ بسیاری از فروشندگان واسط و همکاران کدباز (open source) اقدام به نوشتن ابزارهای plug-in برای پلاتفرم نموده اند. Jbuilder در سه نسخه عرضه می گردد: نگارش شخصی یا Personal Edition، که به صورت مجانی قابل دانلود است، شامل IDE پایه و تعدادی ابزار اضافی از قبیل یک طراح GUI، چاچوب یکپارچه JUnit، و برخی آیتم های دیگر است؛ ویرایش توسعه گر یا Developer Edition، که گروهی از مشخصه های مختلف را گرد هم آورده است، به خصوص پشتیبانی XML و وب، servlet ها، JSP، و JSF (JavaServer Faces)؛ و ویرایش سازمانی یا Enterprise Edition، که سرویس های وب، J۲EE، پشتیبانی CORBA، و رسم نمودار UML را به مجموعه می افزاید. از بین این سه ویرایش، من JBuilder Enterprise Edition را مورد بررسی قرار دادم. به دلیل تکامل آن، این IDE در میان چهار IDE که در اینجا مورد بررسی قرار گرفتند بهترین بود: عمل پیمایش در آن بصری و ساده است، و کلیک کردن در میان کارها هرگز به بن بست یا پنجره های غیر منتظره منتهی نمی گردد.
در صورت مواجه شدن با مشکل، یک سیستم help در دسترس است – بهترین در میان چهار محصول دیگر. و برای توسعه گرانی که ترجیح می دهند کار را با آموختارها (tutorialها) آغاز کنند، Borland گزینه هایی واضح با طراحی خوب فراهم می نماید. پشتیبانی JBuilder برای مشخصه هایی که وجود آنها در یک IDE سازمانی high-end انتظار می رود ناب، هوشمندانه و کاربردی است. تنها استثنا تولید فایل برای Ant (یک ابزار کمکی ساخت کدباز که معمولا در جاوا مورد استفاده قرار می گیرد) است، که آزاردهنده می باشد. با چشم پوشی از این نقصان، محیط مزبور محیطی لذت بخش برای استفاده است.

فراتر از قابلیت IDE، JBuilder ۲۰۰۵ پشتیبانی برای برخی تکنولوژی های منحصربفرد، از قبیل یکپارچگی با CORBA، obfuscation کد، و تحلیل امنیت کد با استفاده از یک plug-in متعلق به Fortify را فراهم می آورد.Jbuilder همچنین به شکل قابل توجهی پشتیبانی برای XML و مشتقات بیشمار آن را تکمیل نموده است، و یک ویرایشگر HTML خوب به اضافه ی تعداد زیادی ابزار برای توسعه و تست سرویس های وب، و پشتیبانی برای J۲ME و WAP را فراهم آورده است. فرقی نمی کند که کدام تکنولوژی با پروژه شما در هم آمیخته است، به احتمال قریب به یقین JBuilder آن را پشتیبانی می نماید.

اما در هر صورت مدلسازی ضعیف است. بسته ی مزبور تنها دو نمودار UML را پشتیبانی می کند. این نقصان از آنجا ناشی می گردد که Borland اقدام به خریداری Together نموده است. Together یک بسته ی high-end مدلسازی است که شرکت در صورت نیاز شما به مدلسازی زیاد شما را به سوی آن هدایت می کند. از ابتدای ماه مارس، Borland یک مدل فروش را در پیش گرفته است که Together را با JBuilder و سایر ابزارهای Borland بر اساس نیازهای توسعه گر ترکیب می نماید. این مجموعه ی محصولات مبتنی بر وظیفه، که Core SDP نام گرفته است، اساس عرضه ی سازمانی Borland را از حالا به بعد شکل خواهد داد.

یک نکته جالب دیگر: در کنفرانس سالانه Eclipse در ماه مارس، Borland اعلام نمود که مجموعه ای از plug-inهای Eclipse را عرضه خواهد کرد که قابلیت های JBuilder ۲۰۰۵ را افزایش خواهد داد. شرکت تا کی به پشتیبانی دو GUI برای یک محصول ادامه خواهد داد مشخص نیست، اما از این اعلام این گونه به نظر می رسد که احتمالا JBuilder ۲۰۰۵ در نهایت به سوی Eclipse گام بر خواهد داشت. اگر این اتفاق رخ دهد، آن یک IDE عالی را رها خواهد ساخت، IDE ای که Borland قابلیت های بسیاری را به آن افزوده است.

0

● IBM Rational Software Architect ۶.۰

خط جدید محصولات Rational Software شرکت IBM جایگزین خانواده WebSphere Studio می گردد. RSA (Rational Software Architect) نسخه ۶.۰ – بر خلاف شماره نسخه اش-- نخستین نسل تحت نام جدید است. از میان مجموعه های متعددی که من مورد بررسی قرار دادم، RSA جامع ترین گزینه است. IBM نیز مانند Borland از مدل مبتنی بر وظیفه استفاده می کند. RSA ۶.۰ به صورت چند لایه ساخته شده است. نخستین لایه Rational Web Developer است، که بخش مهمی از قابلیت مدلسازی را با خود ندارد؛ زیر آن Rational Application Developer قرار دارد، که فاقد قابلیت های طراحی وب نما است. در پایین ترین سطح نیز Eclipse ۳.۰ قرار دارد، IDE مجانی جاوا-گرا که در حال کسب محبوبیت بسیار زیادی است.

متاسفانه، تقریبا تمامی کاستی های RSAها ناشی از این لایه پایینی است. اول از همه این که Eclipse یک رابط بصری نیست. تا وقتی که شما در طی یک مدت زمان طولانی با آن آشنا گردید، به احتمال زیاد به پنجره های غیر منتظره و بن بست بر خواهید خورد. IBM کار را با مجموعه ای از آموختارهای عالی ساده می نماید، اما همچنان پیمایش IDE در مقایسه با JBuilder ۲۰۰۵ یا Oracle JDeveloper دشوارتر است.رابط RSA همچنین به میزان قابل ملاحظه ای کندتر از دو محصول مذکور است. درست است که هرگز به سطحی نمی رسد که کاربران را از خود ناامید سازد، اما کندی آن محسوس است و فاقد سرعت موجود در سایر محصولات است، به خصوص در هنگام سوییچ میان view های یک پروژه (همچون رفتن از طراحی به کدنویسی).

بخشی از این کندی ناشی از میزان نرم افزاری است که IBM به دور هسته Eclipse گرد آورده است – مجموعه قابل توجهی از نرم افزارهای سازمان-گرا موجود بر روی ۱۴ عدد CD. این سرور کاربردی WebSphere شرکت IBM را به عنوان یک محیط تست، یک مجموعه نرم افزاری کامل برای توسعه پورتال های وب، و مدلسازی عالی و ابزارهای طراحی در بر می گیرد. ابزارهای مدلسازی ۹ نمودار UML را پشتیبانی می نماید – بیشتر از محصولات Borland و Oracle. این نمودارها می توانند برای الگوهایی که در بر می گیرند یا ممکن است در بر گیرند تحلیل گردند، همچنین برای چیزی که IBM آن را ضد الگوها می نامد – که در واقع اشکالات موجود در طراحی برنامه می باشند. برای مثال، کلاس هایی که ضعیف طراحی شده باشند با توصیف هایی از الگوهای طراحی مختل شده و نشانگرهایی که نشان می دهند چه چیز بایستی اصلاح گردد.در ترکیب با تحلیل کد مبتنی بر وظیفه IBM، این ابزارها به یک معمار کمک می کند که ببیند پروژه های خوب چگونه پیاده سازی گردیده اند و چگونه آنها با راهنماهای طراحی و نیازمندی های سایت مطابقت دارند. علاوه بر الگوهای ساختاری و شیءگرا، RSA توانایی شناسایی و تحلیل هفت Gang از چهار الگوی طراحی را دارد.

در حال حاضر تکنولوژی رابط وب برگزیده Rational، JSF است. یک تکنولوژی که فرایند پیاده سازی را تسهیل می نماید. ابزارهای RSA شامل یک ویرایشگر WYSIWYG برای JSF است که توسط SDOها (service data objectها) برای رابط های پایگاه داده پشتیبانی می گردد. RSA دارای پشتیبانی جزئی برای C/C++ است، به علاوه ی پشتیبانی کامل برای جاوا. ابزارهای مدلسازی می توانند کار تبدیل به C++ را انجام دهند و ابزارهای متعدد سورس کد می توانند C++ را مورد تحلیل قرار دهند. به هر حال، C++ IDE فاقد یک کامپایلر و دیباگر است، یعنی باید جداگانه تهیه و نصب گردند. اگر شما یکی از این ابزارها را در اختیار دارید می توانید آن را نصب نمایید، یا می توانید کامپایلرهای GNU C++ را برای این منظور دانلود کنید. این مشخصه ها همانند یک افزودنی عجیب و ناقص به نظر می رسند.
IBM RSA در این بررسی غنی ترین محصول از لحاظ دارا بودن مشخصه های متعدد است. برای معماران سازمانی که خواهان تسلط یافتن بر رابط و ابزارها هستند، آن یک محصول برگزیده توسعه جاوا محسوب می گردد.

0

● Oracle JDeveloper ۱۰.۱.۳

Oracle از به کار بردن مدل نسخه های مبتنی بر وظیفه ی IBM و Borland اجتناب ورزیده است و یک محصول high-end با یک قیمت پایین ارائه داده است. این شرکت از GUI خاص خود استفاده کرده که دارای یک طراحی بصری است. این رابط دارای جنبه دیگری است که من واقعا آن را دوست دارم: آن تنها محصولی است که ظاهری شیک دارد. با JDeveloper، من حس می کنم که در یک محیط کاملا تعاملی مشغول به کار هستم. زمانبندی تاخیرهای آغاز و سایر توابع بیانگر این مطلب است که کارآیی آن در یک ارتباط اساسی با Borland Jbuilder است، اندکی جلوتر از محصول Sun، و به میزان قابل توجهی سریع تر از RSA محصول شرکت IBM است. اما در سطح تعامل شخصی با IDE، Oracle سریع تر به نظر می رسد.

دستیابی به بسیاری از مشخصه های JDeveloper در مقایسه با محصولات رقیب ساده تر است، که این امر انجام کارها را سرعت می بخشد. Oracle همچنین یک سری موارد الحاقی جالب توجه را فراهم می آورد. نخستین مورد ابزاری است که یک تحلیل زمان اجرا از کد شما انجام می دهد. تحلیل مزبور بر اساس بررسی خود پیشنهادهایی را درباره کلاس هایی که می توانند نهایی گردند ارائه می دهد. این پیشنهادات فراتر از موارد معمولی هستند که تمامی IDE ها (شامل Oracle) همچنان که شما کد را تایپ می کنید فراهم می سازند، مواردی از قبیل نحوه بهینه سازی دستورات ورودی. در نسخه ویندوز، JDeveloper شامل JVM خاص خود است، که برای اشکال زدایی بهینه گردیده است. (در هر صورت، برای اهداف گسترش، Oracle به JVM سیستم رجوع می نماید.)
برای کار با سرویس های وب، JDeveloper یک ناظر TCP را فراهم می نماید که توسعه گران را قادر به بررسی تک تک پکت ها می سازد – ثبت انتقال آنها و آشکار ساختن داده های آنها. این ناظر همچنین امکان ویرایش و بازفرست یک پکت درخواست را مجاز می شمارد. سایر ابزارها در مجموعه توسعه نرم افزار Oracle پشتیبانی سطح بالاتری را برای سرویس های وب (از قبیل orchestration و BPEL یا Business Process Execution Language) فراهم می آورند. محدودیت عمده JDeveloper در مدلسازی UML است، جایی که محصول تنها چهار نمودار اصلی (activity، class، sequence و use case) را پشتیبانی می نماید. JDeveloper نمودارهای متعدد غیر UML از قبیل طراحی نمودار EJB و Struts را پشتیبانی می کند.
در حالی که این محصول از لحاظ تعداد مشخصه های ارائه شده در معماری سازمانی به پای IBM و Borland نمی رسد، Oracle JDeveloper تمامی قابلیت هایی را که اغلب توسعه گران نیاز دارند فراهم می نماید. و با وجود مزیت قابل توجه قیمت آن در مقایسه با دو رقیب دیگر، آن به احتمال قریب به یقین می تواند محصول برگزیده برای بسیاری از سایت ها قلمداد گردد.

● Sun Java Studio Enterprise ۷

در دهه ۹۰، تعداد اندکی از فروشندگان اقدام به عرضه ابزارهای توسعه همپای Sun نمودند. Sun نخستین شرکتی بود که نوآوری های بسیاری را ایجاد نمود، از قبیل توانایی تغییر کد در دیباگر و ادامه اجرا. به هر صورت، Sun هنگامی که به سراغ ابزارهای توسعه جاوا آمد قافیه را باخت، و به سایر فروشندگان اجازه داد بازاری را که در واقع متعلق به خودش بود از آن خود نمایند. عرضه JSE (Java Studio Enterprise) ۷ مخصوصا با هدف حضور مجدد Sun در بازار ابزارهای جاوا صورت گرفت. این شرکت تلاش فراوانی را صرف مهیا ساختن این محصول نمود و، در عمل، آن مشخصه های متعدد منحصر بفردی را عرضه کرد.

JSE بر پایه NetBeans بنا شده است، پلاتفرم کدبازی که با Eclipse رقابت می نماید. با وجود غلبه Eclipse، NetBeans یک پلاتفرم با ارزش است، که توانایی انجام تمام کارهایی که Eclipse می تواند انجام دهد را دارد. و همانند Eclipse، NetBeans از پشتیبانی توسعه گران plug-in بیشماری برخوردار است، اگر چه Eclipse دارای تعداد بیشتری پروژه های فعال plug-in است.

از بسیاری جهات، JSE منحصربفرد است: آن مشخصه های قابل توجهی را که سایر بسته ها فاقد آنها هستند فراهم می نماید، و آن فاقد برخی ابزارهایی است که سایر بسته ها ارائه می دهند. دو مشخصه بی نظیر و قابل ستایش JSE عبارتند از طرح ریزی اجرا و همکاری. کارکرد "همکاری" تمامی توسعه گران را با استفاده از JSE در یک جلسه خاص مشابه IM قرار می دهد و از این رو آنها می توانند پیغام ها و کد را با یکدیگر تبادل نمایند. پشتیبانی Whiteboarding نیز وجود دارد، و کانال های مجزایی برای مباحثات خصوصی و عمومی در آن موجود است. هنگامی که تنظیمات انجام شد، مشخصه همکاری به صورت خودکار در هنگام اجرای JSE اجرا می گردد، از این رو با نشستن برای انجام کار همه اعضای یک گروه فورا وارد تیم می شوند.مشخصه ی جذاب دیگر JSE شبیه ساز لود آن است. تست نمودن برنامه های توزیع شده کار دشواری است؛ آنها اغلب نیازمند تنظیم های پیچیده به منظور بازتولید لودهایی هستند که توانایی بازنمایی فعالیت دنیای واقعی را دارند. قادر بودن به تست کارآیی از درون JSE (با استفاده از تست لود داخلی آن) به معنی صرفه جویی زمانی قابل توجه برای توسعه گرانی است که بر روی برنامه های سازمانی کار می کنند.پشتیبانی Sun از نمودارهای بیشمار UML اگر چه منحصربفرد نیست اما جذاب است – از این لحاظ تنها RSA محصول IBM با آن برابری می نماید.
متاسفانه، از سایر لحاظ JSE دچار کاستی هایی است. آن Struts یا JSF را پشتیبانی نمی کند؛ در عوض، آن از WAF (Web Application Framework) خود SUN استفاده می نماید. آن یک جایگزین است که به سختی جذاب واقع خواهد شد، چرا که در حال حاضر تعداد بسیار زیادی تکنولوژی جاوا وجود دارد که در حوزه Web UI برنامه های سازمانی رقابت می کنند. در سطح کدنویسی، JSE پیشنهادهایی را برای بهبود کد ارائه می دهد. نهایتا، رابط دارای برخی جنبه های آشفته است، که این فکر را به ذهن می آورد که نسخه ویندوز JSE یک تبدیل مستقیم از نسخه Solaris است. برای مثال، یک سری پنجره ها برخی مواقع از شما در مورد مکان سیستم های فایل mount شده یا نقاط اتصال سوال می کنند. این اصطلاحات در دنیای ویندوز وجود ندارند، اما در یونیکس معمول هستند. این مساله از آنجا ناشی می شود که سیستم help هیچ کاری برای یاری رساندن به توسعه گر ویندوز برای درک چیزی که JSE در این پنجره ها خواهان آن است انجام نمی دهد.
JSE ۷ شرکت Sun را برای توسعه جاوای سازمانی در جایگاه مناسبی قرار می دهد. اما اگر شما نیازی به مشخه های بی نظیر آن ندارید – که واقعا هم جذاب هستند – سایر محصولاتی که در اینجا مورد بررسی قرار گرفتند گزینه های بهتری خواهند بود.

● توانایی ها

در حال حاضر هیچ زبان برنامه نویسی دیگری دارای چنین محیط های قدرتمندی (که در اینجا بررسی شد) نیست؛ حتی Visual Studio .Net ۲۰۰۳ در قیاس با آنها کم فروغ جلوه می نماید، اگر چه انتظار می رود Visual Studio .Net ۲۰۰۵ (که در شرف عرضه است) این فاصله را کاهش دهد. اما با وجود کیفیت و قابلیت های گسترده این چهار IDE، آنها فاقد عناصری هستند که از نظر من مدت ها پیش می بایست در آنها ایجاد می گردید. جای برخی کارکردهای کدنویسی ساده خالی است. برای مثال، چرا ما نباید قادر باشیم لیترال ها یا بسته های منبع را از لحاظ املایی بررسی نماییم؟ همچنین، مشخصه های پیشرفته تر تنها حداقل پیاده سازی ها را دارند. به عنوان مثال، سازندگان GUI برای Borland، Oracle، و Sun تنها کد Swing را تولید می نمایند، تقریبا چنان که گویی Standard Widget Toolkit وجود ندارد. به استثنای Borland، ویرایشگرهای XML هنگامی که می بایست قدرتمند باشند ضعیف ظاهر گردیدند، و همچنین ویرایشگرهای HTML. هیچ محصولی توانایی تولید تست های مهم واحد به روشی که ابزارهای واسط از قبیل Agitator انجام می دهند را ندارد. در عوض، این IDE ها بنیان ها (stub ها) را فقط برای JUnit تولید می کنند، حتی هنگامی که تست ها برای یک کلاس خاص واضح هستند.
همگامی با جدیدترین استانداردها نیز چالشی برای این محصولات محسوب می گردد. هر چند که همگی آنها در ۹۰ روز گذشته عرضه گردیده اند، اما فقط Borland پشتیبانی JDK ۱.۵ (یا ۵.۰) را شامل می شود. و تنها Borland با مدیریت کنترل سورس Subversion یکپارچه شده است، اگر چه Subversion آشکارا در حال به دست آوردن جایگاه خود به عنوان بهترین انتخاب در میان ابزارهای مدیریت سورس کد می باشد. همانگونه که می بینید، اگر چه اینها محیط هایی عالی به شمار می آیند، اما همچنان کارهای بسیاری وجود دارد که آنها می توانستند انجام دهند.

● ارزیابی گزینه های IDE

تنها راه برای خریداری تکنولوژی – چه سخت افزار باشد و چه نرم افزار – شناخت صحیح نیازهای خود است. شما در مورد IDE های جاوا ناگزیر به پیمودن این گام مقدماتی خواهید بود، چرا که این چهار محصول همگی به خوبی طراحی و پیاده سازی شده اند. یک ارتباط طبیعی میان محصولات Borland و IBM وجود دارد، زیرا آنها بسته هایی هستند که پروژه های بزرگ سازمانی را با پشتیبانی خاص برای معماران نرم افزار مد نظر قرار داده اند. در مورد هر دو، محصولات اضافی که توسط این فروشندگان به فروش می رسد می تواند قابلیت های بیشتری را فراهم آورند. از بین این دو، IBM دارای مشخصه های کامل تری می باشد، اما آن قدری کندتر اجرا می گردد و رابط آن کمتر از Borland بصری است.
اگر نیازهای شما تماما در سطح معماری نیستند، در این صورت JDeveloper شرکت Oracle انتخاب خوبی به شمار می آید، اگر چه Borland نیز در این حوزه رقیب شایسته ای می باشد. اگر قیمت را در نظر بگیریم، در این صورت Oracle برنده ی رقابت است. در حال حاضر، فقط Sun JSE ۷ می تواند برای آن دسته از توسعه گرانی که نیازمند مشخصه های بی نظیر آن یعنی تست بارگذاری، همکاری، و طرح ریزی هستند توصیه گردد. هر چهار فروشنده نسخه های مخصوص ارزیابی را برای دانلود مجانی در اختیار عموم قرار داده اند تا در صورت تمایل بتوانید اجرای آزمایشی آنها را تجربه نمایید. به هر حال، نصب، تنظیم، و تست این محصولات کار ساده ای نیست. پیشنهاد من این است که شما با محصول Oracle کار خود را آغاز نمایید، که نصب آن ساده تر از سایرین است، و در اغلب موارد بیشتر چیزهایی که نیاز دارید را فراهم می نماید.
اگر محدودیت های مدلسازی JDeveloper شرکت Oracle شما را محدود می سازد، من توصیه می کنم JBuilder شرکت Borland (Enterprise Edition) یا Rational RSA شرکت IBM را دانلود کنید. هیچ گزینشی میان این دو محصول نباید بدون مقایسه سر به سر آنها صورت گیرد.

دانشجویان کامپیوتر

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

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