خیلی وقتها وقتی کسی از من می پرسد که جاوا کار کنم یا دات نت ، باتوجه به شرایط فرد مذکور پاسخ دادن واقعا مشکل است. به همین دلیل در زیر کمی موضوع را باز می کنم ( توجه داشته باشی که موارد زیر برداشت شخصی من است ).
ازآنجا طیف بسار وسیع برنامه نویس های کشور افرادی هستند که به دانشگاه رفتهاند، بسته به اینکه در دانشگاه به آنها دات نت آموزش داده شده یا جاوا به یکی از این دو زبان بدون اینکه از قابلیت ها و یا فلسفه شان آشنا باشند گرایش پیدا می کنند. و پس از مدتی کار با آن زبان خاص به شدت بر روی آن پلتفرم خاص تعصب پیدا می کنند و هر کسی که با پلتفرم دیگر کار می کند ، رقیب و بضا دشمن و نادان فرض می شود.
این مشکل از طرفی بخاطر ضعف اساتید در دانشگاه ها در شناساندن پلتفرم ها و موضع گیری شدید آنها درقبال زبان های برنامه نویسی است. خیلی وقتها در دانشگاه ها دیده می شود که استیدی که جاوا کار می کنند به دانشجویانی که با دات نت کا می کنند اجحاف می کنند و یا طرف را ر موضعی قرار می دهند که بین زبان های برنامه نویسی کلا تغییر شغل را انتخاب کند. (با الفاضی مانند … هم شد زبان برنامه نویسی… فلان چیز بدرد فلان کار می خورد یا نمی خورد…. فلانی ها که اصلا چیزی نمی فهمند و .. ، این نکته کاملا بصورت دوطفه قابل لمس است.)
.netFramework
فارغ التحصیلان دانشگاهی هم از آنجا که در دانشگاه بدون دانش و بدون حق انتخاب یکی از دو پلتفرم را آموخته اند شروع می کنند به کار و توسعه در پلتفرم مخصوص به خودشان بدون اینکه اوقاتی را صرف تحقیق ومطالعه بر روی آموختن قابلیت ها و مزایای پلتفرم ها دیگر بیاندازند. و این بی دانشی به حدی زیاداست که معمولا از کوچکترین قابلیت های زبان دیگر هم کوچکترین اطلاعی ندارند ونوشتن یک برنامه ساده در زبان دیگر حکم قصاص برای آنها دارد.
به هر روی و از آنجا که بحث بیش از آنچه که می ادیشیدم به درازا کشید موارد زیر را متذکرم شوم. و از سایر دوستان هم خواهش می کنم که اگر مواردی به ذهنشان می رسد در بخش نظرات آن را با ما قسمت کنند.
Cross Platform : بسته بهاینکهبرنامه شما کجا باید اجرا شود باید اقدام به انتخاب کنید. مهمترین مزایای جاوا این است که کاملا آزاد است و در هر پلتفرمی اجرا می شود. گرچه دات نت هم با راه اندازی مونو قصد دارد به چنین هدفی برسد اما هنوز نمی توان بر موفقیت آن یقین داشت. از طرف دیگر بزرگان برنامه های آزاد برای دات نت کارها بستری با عنوان
Portable .net مهیا کردند که مانند جاوا در هر پلتفرمی اجرا می شود اما با کتابخانههای بسیار کم و محدود.
Open Source : جاوا یک پروژه کدباز است و این مشخص می کند که آینده خوبی دارد ، و از طرفی شرکت SUN دانلود آن را برای داخل ایرانی ها کاملا ممنوع کرده و شما با IP ایرانی قادر به دریافت جاوا از سایت SUN نیستید. از طرف دیگر مایکروسافت هم پس از دات نت ۳۰ کل فریم ورک خودش ر بصورت کدباز در اختیار عموم قرارداده و سایر کنترلهای الحاقی آن را هم بصورت کدباز پیش می برد که از قافله عقب نماند.
ایده تجاری (business Plan) شرکت : بسته به اینکه شما می خواهید در دنیای Copy Rightی ها و یا Copy Left ی ها زندگی کنید باید اقدام به انتخاب یکی از این دو زبان بکنید. جاوا بای برنامه های آزاد و کدباز و دات نت برای برنامه های تجاری با مجوز مناسب تر هستند.
رابط کاربری و ارتباط با کاربر : عموم برنامه های جاوا دارای فر های ضعیفتری نسبت به همتا های دات نتی خود هستند . جاوای ها مجبورند که زمان بسیار بشتری را برای طراحی رابط کاربری صرف کنند تا دات نتی ها. معمولا یک برنامه جاوایی با رابط کاربری قوی زمان، هزینه و کار بیشتری می برد تا همان رابط کاربری در دات نت. ( توجه کنید که بحث کنترل های الحاقی را در این قسمت داخل نکنید )
برنامه نویسی شی گرا : جاوا از اولین بان های شی گرا بود و خیلی ها به همین دلیل عاضقجاوا هستند در حالی که دات نت اصولا ر آن زمان وجود نداشت و C++ که هنوز هم عاشقان خود را دارد یکه تاز میدان بود. اما با ورود دات نت معادلات قدرت کمی تغییر کرد. زبان هایی مانند پایتون . روبی و سی شارپ به سرعت شی گرایی را در قالب خودشن گسترش دادند و هرکدام نسبت به دیگری در پیاده سازی تفاوت هایی را قایل شدند.
هزینه و مجوز : برنامه های دات نتی با هزیه های گزاف تولید می شوند بر خلاف جاوایی ها. ی بخش از این هزینه صرف تهیه IDE و پایگاه داده وسایر افزونه های مورد نیاز می شود که در دات نت بسیار گران قیت هستند و به همین دلیل برنامه نویس های دات نتی معمولا نسب به جاوایی ها حقوق کمتری می گیرند. چون در دنیای جاوا شما برای هیچ چیزی لازم نیست هزینه بپردازید، تقریبا نسخه رایگان همه چیز در دست است و شما به خوبی م توانید با آن کار کنید. و بههمین دلیل برنامه نویس های جاوا حقوق بیشتری می گیرند چون هزینه تولید نرم افزار در جاوا کمتر است.
IDE و سیستم های گزاش گیری : در دات نت Visual Studio چنان قدرت نمایی می کند که حتی سرسخت ترین هواداران جاوا هم آرزو دارند روزی با چنین IDE یی کار کنند. به همین دلیل به مزایای فوق العاده آن اشاره نمی کنم. از طرفدیگر در دنیای جاوا هنوز یک IDE قدرتمند ظهور نکرده.
NetBeans –
Intellij Idea –
eClipse و سایر آنها هنوز آن قدر قوی نشدند تا رقیب را از صحنه بدر کنند. خیلی ها با توجه به عاداتی که دارند اقدام به انتخاب می کنند. و حرفهای تر ها از eclipse خود این موضوع عدم کاربرپسند بودن IDE های جاوا ر بخوبی نشان میدهد. از طرف دیگ سیستمهای گزارش گیری جاوایی مثل
JBoss ( اگر اسمش را صحیح نوشته باشم ) هنوز نیمی از قدرت
Reporting Services و یا حتی
Crystal Reports را هم ندارند. گرچه در بعضی از موارد برتری هایی به این دو سیستم دارند اما در کل ضعیف تر هستند.
یکپارچگی : برنامه های دات نتی در هر بستری که باشند ( وب – ویندوز – موبایل و …) بصورت وحشتناکی یکپارچه هستند برعکس برنامه های جاوایی. از طرف دیگر برنامه هی جاوایی بخصوص در زمینه موبایل ( بخاطر Cross Platform بودن ) با دردسر بسیار کمتری اجرا می شوند.
موارد بسیار دیگری هم هست که می توان به آنها اشاره کرد که بخاطر به درازا کشیدن بحث از بیان آنها خودداری می کنم.