پنجشنبه, ۱۱ بهمن, ۱۴۰۳ / 30 January, 2025
مجله ویستا
بررسی چهار IDE جاوا
برای دههها، برنامهنویسان در رویای محیطهای توسعهای به سر میبردند که ابزارهای یکپارچه قدرتمند موجود در آنها بتواند کارآمدی بالایی را فراهم نماید. نخستین محیطهای پیشرفته از این نوع در طی سالهای نخست دهه ۹۰ در انجمن یونیکس پدیدار گشت. اما ناتوانی پلاتفرمهای سختافزاری آن زمان در پشتیبانی نیازهای محاسباتی چنین محصولات پیچیدهای آنها را محکوم به شکست زودهنگام نمود. امروزه، با وجود ایستگاههای کاری توسعهگر که دارای پردازندههای ۳ گیگاهرتزی و رمهای ۱ گیگابایتی هستند، محیطهای قدرتمند میتوانند بدون وارد ساختن بار اضافی بر سختافزار اجرا گردند. در نتیجه این پیشرفت، طی چند سال گذشته شاهد ظهور محصولات قابل توجهی، از قبیل 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 قابلیتهای بسیاری را به آن افزوده است.
● 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 در این بررسی غنیترین محصول از لحاظ دارا بودن مشخصههای متعدد است. برای معماران سازمانی که خواهان تسلط یافتن بر رابط و ابزارها هستند، آن یک محصول برگزیده توسعه جاوا محسوب میگردد.
● 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 را دانلود کنید. هیچ گزینشی میان این دو محصول نباید بدون مقایسه سر به سر آنها صورت گیرد.
نویسنده: Andrew Binstock
مترجم: امین ایزدپناه
من به بررسی چهار 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 قابلیتهای بسیاری را به آن افزوده است.
● 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 در این بررسی غنیترین محصول از لحاظ دارا بودن مشخصههای متعدد است. برای معماران سازمانی که خواهان تسلط یافتن بر رابط و ابزارها هستند، آن یک محصول برگزیده توسعه جاوا محسوب میگردد.
● 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 را دانلود کنید. هیچ گزینشی میان این دو محصول نباید بدون مقایسه سر به سر آنها صورت گیرد.
نویسنده: Andrew Binstock
مترجم: امین ایزدپناه
منبع : علم الکترونیک و کامپیوتر
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست