كاربردهاي جاوا
javaJava تنها يک زبان نيست بلکه يک ماشين معماري و يک محيط کاربردي و يک محيط پياده سازي و ...است امروزه بيش از 2.5ميليون وسيله در سراسر دنيا از تكنولوزي Java بهره مي برند. انگيزه اوليه ابداع Java نياز به يك زبان مستقل ازمحيط زيربنايي (platform-independent) بود كه بتواند نرم افزارهايي توليد نمايد كه قابليت كاربرد در وسائل مصرفي الكترونيكي مختلف نظير اجاقهاي مايكروويو و كنترل از راه دور را داشته باشند . [1] كاربردهاي آن:
1. درعمدهء سيستم عامل ها ازUnix, Linux, Macintosh, Windows NT و مرورگرهايي مانند CyberDog, HotJava, Internet Explorer, Mosaic, Navigator, Opera و Netscape به کار مي رود.
2. کاربردهاي Java همچنين در سيستم هاي توکار(embedded controllers) و کارت هاي هوشمند(Smart Card) و دستگاه هاي صنعتي (چاپگر و روبات و دوربين) و انواع جواهرات(حلقه و ساعت مچي) که از JVM بهره مي برند و سخت افزارهاي واسط مي باشد.
توانايي مررگرها در اجراي Java applets باعث عمومي تر شدن اين زبان شده است. توسعه دهنده ها با فعاليت در AJAX قصد گسترش دادن در زمينه انيميشن را دارند.
Java اغلب در كاربردهاي پيچيده مانند Yahoo! Games و video player در زمينه هاي چندگانه به كار مي رود. از نرم افزارهاي محبوب در اين قسمت به شمار مي آيد. همچنين زبان اسکريپتي به نامJSP که براي وب و بر روي وب سرور Apache-Tomcat اجرا ميشود نيز وجود دارد که همان جاواست.
بيشترين کاربرد جاوا در اجراي بازي هاي آنلاين، چت با ديگر کاربران در محيط هاي گفتگويي که به زبان جاوا نوشته شده اند، ديدن تصاوير 3D و ... مي باشد. بيشتر اين نرم افزار ها و بازي ها نيز از داخل مرورگر ها قابل اجرا بوده و به اصطلاح "applets" و يا ريزبرنامه ها ناميده مي شوند.
در ميزكار Java اغلب كمتر به کار ميرود. به چند دليل:
Java application اغلب حافظهء بيشتري نسبت به موارد مشابه خود مي گيرند و علت آن هم سربار زمان اجراست.
واسط هاي گرافيكي كاربر براي كاربردهاي Java همراه با راهنماي واسط انساني كه كاربر به آنها عادت كرده نيست و Font smoothing در حالت پيش فرض غيرفعال است و باعث مي شود نوشته با كيفيت پايين به نظر برسد.
ابزارهاي آماده رايگان در Java Development Kit به اندازه اي قدرتمند نيست تا به آساني كاربردهاي خود را بسازد. در حالي كه انواع نرم افزارهاي رايگان و قدرتمند نسخه هاي متنوع Java Runtime باعث شده يك كاربر براي هر نسخه كاربردهاي موردنياز آن را نصب كند. كاربردهاي Java در موبايل محبوبيت بسياري دارد.
توسعه دهنده مي تواند برنامه هاي Java را منتشر كند بدون اين كه حق امتيازي پرداخت كرده باشد. برنامه هاي Java گسترهء عمل وسيع تري دارند و روي گوشي ها ي با مدل ارزان تر محبوبيت زيادي دارند. هم چنين مي توان به ايجاد آزاد كاربردي مانند Opera Mini اشاره كرد كه بيشتر GSM (سيستم كلي براي ارتباطات موبايل)بدون سيم در همهء جهان از Java استفاده مي كنند. نسخه هاي زياد از availability بر روي اكثر ميزكارها وجود دارد.
طبق آمار Network World: در بررسي اخيري كه توسط IDC در ميان بيش از 450 مجري IT انجام شد، مشخص گرديد كه 70 درصد از اين افراد قصد دارند استفاده از Java را افزايش داده و يا آن را ادامه دهند.
اخيرا پروژه اي در IBM در حال توسعه است كه در زمينه IDE فعاليت مي كند.نام آن Eclipse است اين اجتماع كد باز بر روي توسعه سكوها و كاربردهاي frameworks فعاليت مي كند.
--------------------------------------
قابليتها
برخلاف ساير زبانهاي كامپيوتري ، Java ، پشتيباني توكار از برنامه نويسي multithreading را فراهم مي كند . واژهها در جاوا بسيار گسترده ميباشند ولي به دليل طبقهبندي بودن آنها هيچ مشکلي در فهم ايشان وجود ندارد. جاوا در سه ماژول زير انتشار مييابد: الف.(JSE) که مخفف Java Standard Edition ميباشد.اين SDK، ابزارها، runtime ها و API هايي براي نوشتن برنامه ميباشد. همچنين شامل JDK و JRE ميشود. البته اين دو براي نوشتن برنامه لازم ميباشند.(الزامي است) ب.(JEE) که مخفف Java Enterprise Edition است. در واقع اين گزينه ترکيب تعدادي تکنولوژي در يک معماري با يک مدل برنامه نويسي فراگير ميباشد.به زبان برنامهنويسي يک کتابخانه بزرگ است. پ.(JME) که مخفف Java Micro Edition ميباشد. يک هدفمندي بهينه شده JRE که محدوده عريضي از محصولات مصرف کننده را در بر ميگيرد. به عنوان مثال شامل کار با انواع تلفن ازجمله موبايل ميباشد.به زبان برنامهنويسي يک کتابخانه در مورد موبايل است.
يک برنامهنويس نياز به ابزارها و ترکيبهاي مهندسي نرمافزار دارد. جاوا تمام اين ترکيبها را به صورت توکار درون خود دارد. زبان جاوا کتابخانهها و کلاسهاي بيشماري دارد. به طوريکه اگر کاري را با زبان ++C در ??? خط انجام ميدهيد ميتوانيد همان پروژه را در ?? خط انجام دهيد. يکي ديگر از خواص جاوا شي-گرا بودن آن است بهطوريکه نميتوان حتي يک تابع در آن تعريف کرد. همه اين خواص دست در دست هم داده و مدت زمان کد زني را پايين ميآورند. از ديد مهندسي نرمافزار زمان يک رکن است. و وقتي که زمان کمتري براي يک پروژه صرف گردد، يک برگ برنده براي آن پروژه محسوب ميگردد. از ديگر قابليتهاي آن ميتوان از کلاسهايي که بر روي موبايل کار ميکنند نام برد. سادهسازي يکي ديگر از قابليتهاي اين زبان است به طوريکه جاوا فاقد اشارهگر ميباشد. البته از ديدي ديگر اين فقدان يک ضعف محسوب ميشود.
---------------------------------------
جاوا در آينده
سلام
دنياي كامپيوتر و ارتباطات - يكي از بحث برانگيزترين موارد در زبان جاوا و تكنولوژيهاي مرتبط با آن كارآيي جاوا (Java Performance) است. زبان جاوا كه توسط ماشين مجازي (Java Virtual Machine) اجرا ميشود در ابتداي معرفي به علت استفاده از ماشين مجازي براي اجرا نسبت به ساير زبانهايي كه كد اجرايي محلي سيستمعامل را توليد ميكنند همانند C/C++ سرعت كمتري داشت. با گذشت زمان و رشد تكنولوژيهاي بكار رفته در ماشين مجازي، با توجه به پايداري بي همتاي جاوا، شاهد رشد چشمگير كارآيي در زبان جاوا بودهايم، به صورتي كه هماكنون كارآيي در جاوا و تكنولوژيهاي وابسته به آن در بالاترين سطح ممكن در بين ساير تكنولوژيهاي رقيب است. اين در حاليست كه در مورد ساير مشخصههاي اين زبان همچون پايداري، قابليت توسعه و هزينه ناچيز توليد ساير رقبا حرفي براي ارائه ندارند.
در اينجا به گزارش سايت fasterj.com كه از ارائه دهندگان راهكارها و توصيههاي بهبود كارآيي و بازده در محصولات توليد شده در جاواست ميپردازيم كه در آن دنياي كارآيي جاوا در سال گذشته بررسي شده است. بررسي وقايعي كه در سال گذشته در دنياي جاوا در ارتباط با بحث كارآيي به وقوع پيوست بيشتر از همه در پنج قسمت نمايان بوده است. كه شامل جاوا نسخه6، مديريت ظرفيت (Java Capacity)، انجمن جاوا يك (JavaOne)، عموميت جاوا و آخرين و جالبترين مورد حركت به سوي سورس باز شدن جاوا بودهاست.
Java6
جاوا 6 در پايان سال 2006 ارائه شد. حركت بزرگ در كارآيي جاوا 6 بلوغ در امكان مانيتورينگ و عيبيابي در آن بود. در ابتداي سال گذشته جامعه جاوا در سمينارها و از طريق بلوتنهاي رسمي با اينگونه امكانات و قابليت جاوا 6 آشنايي يافتند. در حقيقت اين امكان مانيتورينگ و عيبيابي در جاوا 5 افزوده شده بود، اما در جاوا 6 گسترش يافت و به تكامل رسيد. و هم اكنون زمان آن رسيده است كه بر پايه اين امكانات، ابزارهاي متنوع بهبود كارآيي در كد جاوا را كه به صورت سورس باز ارائه ميشوند، شاهد باشيم. ابزارهايي كه در گذشته فقط به صورت تجاري و با قيمتهاي گزاف در دسترس بودند، هم اكنون در جامعه سورس باز جاوا رشد يافته و عموميت پيدا نمودهاند.
از جمله اين ابزارها ميتوان به Glassbox و Netbeans profiler اشاره نمود. علاوه بر آن جاوا 6 قابليتهايي را در بهبود سرعت اجرا در ماشين مجازي و نيز در مديريت حافظه (garbage collector) تدارك ديده است به گونهاي كه در هر قسمتي شاهد افزايش سرعت اجرا و بهبود كارآيي پروژههاي جاوايي اجرا شده با نسخه 6 جاوا هستيم. قابليت جديد ديگري كه از سال گذشته قابل استفاده ميباشد نوعي پشتيباني از حافظه heap است كه به كمك آن ميتوان توانايي برنامههاي پروفايلر را كه كارآيي كد جاوا را اندازهگيري ميكنند افزايش داد. اين امكان كه در سال 2007 به جاوا افزوده شده است (اما در ليست رسمي قابليتهاي جاوا 6 نيست) با كمك در آناليز حافظه احتمالات رخداد خطاي مشهور كمبود حافظه OutOfMemoryError را مشخص ميسازد.
مديريت ظرفيت
با وجود آنكه مباحث مديريت ظرفيت از گذشته نيز مطرح بوده است، در سال 2007 مورد توجه و اهميت ويژه صنعت قرار گرفت. مباحث مديريت ظرفيت كه به بزرگ شدن اندازه برنامهها و نرمافزارها ميپردازد با ورود شركتهاي بزرگ به اين مقوله تعاريف جديدي در ابعاد مديريت تراكنشها و مانيتورينگ و اندازهگيري كسبوكارها به وجود آورده است. در ديدگاه جديد سختافزار اهميت بيشتري نسبت به گذشته يافته است و بنابراين تست كارآيي و مجازيسازي مورد توجه قرار گرفته است. اين توجه ويژه بر مباحث كارآيي نشاندهنده توقع خاص صنعت از توليدكنندگان براي پرداختن بيشتر به آناليز كارآيي و بهبود كارآيي در محصولات خود ميباشد. در گذشته اكثر توصيههاي بهبود كارآيي مربوط به توسعه و ارتقا تجهيزات سختافزاري به كار رفته در سرويسدهندگان بزرگ بوده است و سختافزار و هزينههاي جانبي آن اصليترين هزينه راهاندازي اينگونه مراكز سرويس به شمار ميرفت. اما در حال حاضر هزينه صرفهجويي شده به علت بهبود كارآيي در عملكرد نرم افزاري سيستم با كل هزينههاي مربوط به بروزرساني سختافزاري رقابت ميكند.
انجمن جاوا يك
انجمن جاوا يك همانند رسم گذشته خود، جلسات متعددي در مباحث كارآيي جاوا در سال گذشته برگزار كرد كه اين نشستها خروجي قابل توجهي در بر نداشت. در اين ميان JavaFx شايد يك استثنا باشد. JavaFX نوعي جاوا (ماشين مجازي) است كه در آن كارآيي از مهمترين پارامترهاي طراحي به شمار ميرود. بنابراين اين انتظار وجود دارد كه با ورود ابزارهاي مبتني بر آن، محصولات جاوايي با كارآيي بسيار بالا توليد و در دسترس قرار گيرد. از ديگر نقطهنظرهاي مورد توجه قرارگرفته در انجمن توجه شركت سان (Sun) به موارد كارآيي در بسته JRE توزيع شده براي كاربران نهايي (end user) است. در اين تلاش شركت سان ضمن افزايش كارآيي JRE ارائه شده، از حجم آن براي download نيز كاسته و زمان اجرا آن را نيز كاهش داده است. تركيب JRE جديد و JavaFX بازار نرمافزارهاي روميزي (Desktop)، توليد سريع و نرمافزارهاي اينترنتي نسل جديد را هدف قرار دادهاند.
از ديگر اعلانات انجمن در آن سال، تبليغات براي جاوا در دنياي توسعه نرمافزارهاي اينترنتي نسل جديد بود كه در عمل به چند پارگي بازار بين تكنولوژيهاي رقيب همانند Adobe Flex/AIR، Silverlight و AJAX و در دنياي روميزي ويژوال بيسيك، دلفي، سي شارپ، C، C++ و Swing منجر شد و شعار Swing بزرگترين بازار توليدكنندگان روميزي به سوي C# جهت گرفت. با وجود اخبار نااميدكننده فوق شايد آمار ارائه شده كلي از جاوا در سال 2007 بسيار جلوه كننده به نظر برسد. وجود شش ميليون برنامهنويس جاوا، چهار ميليون ابزار Blu-Ray جاوايي، هفت ميليون ابزار set-top جاوا، بيش از دو ميليون گوشي موبايل با قابليت اجراي جاوا، دو و نيم ميليون كارت الكترونيكي جاوا و بيش از 700 ميليون كامپيوتر كه جاوا نصب نمودهاند نقطه عطفي از گستردگي و عموميت جاوا در سطح جهاني باشد.
عموميت زبان
جاوا موقعيت مسلم خود به عنوان زبان برنامهنويسي شماره يك در سال 2007 را نسبت به نزديكترين رقيب خود يعني C/C++ به خوبي حفظ نموده است. C/C++ رقيبي است كه در اين اواخر شاهد ركود نسبي آن بودهايم. موضوع مورد بحث در اينجا مقايسه كارآيي زبان جاوا در مقابل C/C++ است. نكته بسيار مهم آن است كه جاوا هيچ كمبود عمدهاي در مباحث كارآيي نسبت به C/C++ به جز در برخي از موارد خاص ندارد، اما اين امر جلوگيري از ادعاهاي طرفداران C/C++ مبني بر سرعت بيشتر C/C++ را نكردهاست. با اين وجود رويه موجود در دنياي انجمنهاي حرفه IT به گونه است كه در دراز مدت يا تفاوت عمدهاي در سرعت بين آندو نخواهند ديد يا اصولاً توجهي به اين تفاوت سرعت نخواهند داشت.
در مورد ساير زبانها، سال 2007 شاهد رشد حيرتانگيز زبان Ruby بود اما به نظر نميرسد كه پشتيبانان اين زبان، قصد ماجراجويي جدي دراز مدت در بازار Enterprise و كارآيي داشته باشند. تنها روند قابل شناسايي دراز مدت در اين مقوله C# بود كه آن هم به آهستگي پيش ميرود و قابل پيشبيني است كه زماني دومين رتبه زبان برنامهنويسي را به خود اختصاص دهد. سرانجام به نظر ميرسد كه اين جاواست كه با حملات خود، معروفيت خود را به جوامع قبولانده است، عملي كه هيچ زبان برنامهنويسي ديگر قدرت انجام آن را ندارد. با توجه به سياستهاي جديد شركت سان و توجه عمده آن شركت بر روي جاوا و سرمايهگذاريها وسيع در جاوا، بعيد نيست كه حتي نام اين شركت نيز به Sun Java تغيير داده شود. البته نام تجاري جاوا از زبان برنامهنويسي جاوا مجزاست اما آنقدر به يكديگر مربوط هستند كه نشاندهنده پشتيباني زبان توسط نام تجاري باشد!
كارآيي جاوا و دنياي سورسباز
جاوا به دنياي سورسباز وارد شده است و اين ورود فقط از نقطه نظرهاي كارآيي نيست. اما نكته قابل توجه وفور چارچوبهاي ارائه شده براي مباحث كارآيي در دنياي سورسباز است. چارچوبهايي براي گسترش مقياس در جاوا همانند Hadoop، چندين چارچوب دستهبندي و شبكهبندي (Griding) همانند Drools يا GridGain، چارچوبهاي پردازش موازي و مانند آن، كشهاي چندگانه توزيع شده، چارچوبهاي مبتني بر NIO و انواع Non-blocking hashmap، توجه ويژه و ارائه كتابخانههاي متعدد بر روي همزماني پردازش با volatile و دهها مورد چارچوب و ابزار ديگر كه بر مقولههاي مختلف پيچيدگيهاي توليد نرمافزارهاي حرفهاي و enterprise پرداختهاند. به طور قطع هيچ زبان برنامهنويسي ديگري وجود ندارد كه با اين گستردگي به صورت سورس باز بر مباحث كارآيي و ابزارهاي مقياسپذيري نرمافزار پرداخته باشد.
علاوه بر فوق ميبايست ابزارها و پروژههاي انجام شده در بخش غير سورس باز از سوي شركتهايي همانند IBM با تمركز بر روي پردازش همزماني (Real-Time Class Analysis, lock analyser, Dump Analyzer) و در دنياي اينترنت با بررسي شتابدهندههاي خاص گوگل، يا قابليتهاي خاص بهبود نمايش صفحات براي كاربران در ياهو كه متمركز بر افزايش سرعت در download و نمايش بودهاند را اضافه نماييم. اين نمونههاي موفق از كسب وكار چگونگي تلفيق تكنولوژيها و زبانهاي متفاوت براي خلق كارآيي را نمايش ميدهد. سال 2007 شايد از موفقترين سالها براي كارآيي در جاوا بوده است.
منبع : http://www.iranian-it.net/
++++++++++++++++++++
تکنولوژی J2EE
>>
http://www.aictc.com/c/portal/layout?p_l_id=PUB.1.483
------------------
تکنولوژی NET.
>>
http://www.aictc.com/c/portal/layout?p_l_id=PUB.1.484
-----------------