چرا جاوا زباني جالب است؟
قسمت دوم
- مرور قسمت اول
ساده: Simple
جاوا يك زبان ساده است. طراحان جاوا سعي در اين داشتند تا زباني بوجود بياورند كه برنامه نويسان بتوانند به سرعت آن را ياد بگيرند. بنابراين تعداد ساختارهاي اين زبان تقريبا كم است. هدف ديگر طراحي اين زبان اين بود كه به منظور راحتي انتقال آن، آن را طوري طراحي كنند كه براي عدهي زيادي از برنامه نويسان آشنا باشد. اگر شما يك برنامه نويس C يا C++ هستيد، خواهيد فهميد كه جاوا از بسياري از ساختار هاي C و C++ استفاده ميكند .
براي اينكه اين زبان را هم به طور ساده و هم آشنا و ملموس و هم كوچك نگه دارند بسياري از خصوصيات C و C++ را در آن حذف كردند. اينها خصوصياتي بودند كه باعث ميشدند برنامه نويسي ضعيفي صورت بگيرد يا آنهايي بودند كه به ندرت در برنامه استفاده ميشدند. براي مثال جاوا از دستور goto استفاده نميكند، در عوض از دستورهاي break , continue در مواقع نياز استفاده ميكند.
جاوا از سر فايلها(header files) استفاده نميكند و پردازشگر C را هم حذف كرده است. به اين دليل كه جاوا يك زبان شي گرا است، ساختارهاي C مثل struct , union از آن برداشته شده است. جاوا حتي بارگذاري مجدد و خواص چندگانه ارث بري از C++ را هم حذف كرده است. شايد مهمترين پارامتر ساده بودن جاوا عدم استفاده اين زبان از اشاره گرها باشد. اشاره گرها يكي از بيشترين موجوديتهاي دردسرساز در C , C++ هستند. چون جاوا ساختمان ندارد و آرايهها و رشتهها اشياء آن هستند، بنابراين احتياجي به اشاره گر نيست. جاوا به طور خودكار آدرسدهي و دسترسي به محتواي موجود در يك آدرس را براي شما انجام ميدهد.
قدرتمند: Robust
جاوا براي نوشتن نرم افزارهاي قدرتمند و بسيار ايمن ساخته شده است. جاوا هنوز هم به طور قطع نرم افزار ها را تضمين نميكند. تقريبا هنوز هم امكان نوشتن برنامههاي مشكل ساز در جاوا وجود دارد، هرچند كه جاوا برخي از انواع مشخص خطاهاي برنامه نويسي را حذف كرده كه به طرز چشمگيري نوشتن نرم افزارهاي ايمن را آسان تر كرده است .
جاوا يك زبان تايپ شده قدرتمند است، كه اجازه چك شدن مشكلات و خطاهاي تايپي را در زمان كامپايل ميدهد. جاوا بسيار قويتر از C++ تايپ شده است كه بسياري از خصوصيات انعطاف پذير در زمان كامپايل را از C به ارث برده است. مخصوصا هنگام اعلان توابع، جاوا به مدل اعلان صريح احتياج دارد. اين مسئله ما را از اينكه كامپايلر ميتواند خطاهاي زمان اعلان را بدست آورد، مطمئن ميكند. مسئلهاي كه منجر به ايجاد برنامههاي ايمنتري ميشود.
يكي از چيزهايي كه باعث شده كه جاوا ساده باشد عدم وجود اشارهگر ها ومحاسبات بر روي آنها است. اين ويژگي حتي قدرت جاوا را هم با از ميان بردن يك كلاس سراسري اشاره گر افزايش ميدهد.
ايمن: Secure
يكي از دلايل پرطرفدار بودن جاوا اين است كه يك زبان ايمن است. اين ويژگي مخصوصا به خاطر طبيعت توزيع شدهي آن بسيار مهم است. بدون وجود امنيت شما قطعا نميخواهيد كه يك كد را از يك سايت تصادفي اينترنت بارگذاري كنيد و به آن اجازه اجرا شدن روي كامپيوتر خودتان را هم بدهيد. اين دقيقا همان چيزي است كه مردم هرروز با يك كد جاوا انجام ميدهند. جاوا به صورت ايمن طراحي شده و چندين لايه كنترل امنيت به وجود ميآورد كه شما را در برابر كد هاي خطرساز محافظت ميكنند و به كاربر اجازه ميدهد كه برنامههاي ناشناخته را با خيال راحت اجرا كند .
كدهاي بايتي خراب يا خطرساز ممكن است از ضعفهاي اجرايي در مفسر جاوا سوء استفاده كنند. لايهاي كه در اينجا ما را به طور ايمن محافظت ميكند، مدل جعبه شني (Sand box) است: كدهاي ناشناخته در يك جعبه شني قرار ميگيرند جايي كه ميتوانند به صورت ايمن اجرا شوند، بدون اينكه هيچ صدمهاي به بقيه اجزاء يا محيط جاوا بزنند .
وقتي يك برنامه كاربردي يا ديگر كدهاي ناشناخته در جعبه شني در حال اجرا است، چند محدوديت در مورد كاري كه ميتواند انجام دهد، وجود دارد. واضحترين اين محدوديتها اين است كه هيچ دسترسي به هيچ يك از فايلهاي محلي سيستم وجود ندارد. در جعبه شني محدوديت ديگري هم وجود دارد كه به وسيله كلاس مديريت امنيت اعمال ميشود. اين مدل در ابتدا از اينكه سيستمهاي امنيتي را نصب كردهايد يا نه، مطمئن ميشود، چرا كه همه كلاسهاي جاوا نياز به عمليات حساسي مانند دسترسي به سيستم فايل را دارند . اگر فراخواني به وسيله يك كد ناشناخته به صورت مستقيم يا غير مستقيم انجام شد، مدير امنيت مورد استثناء را ميفرستد و عمليات صورت نميگيرد .
و سرانجام در جاوا 1-1 يك راه حل ممكن ديگر براي مشكلات امنيتي وجود دارد، به وسيله ضميمه كردن يك امضاء ديجيتالي به كد جاوا كه اصل آن كد ميتواند به صورت پنهاني و نهفته ساخته شود. اگر شما اعتماد خود را به يك شخص يا يك سازمان مشخص كرده باشيد، كدي كه امضاء آن هويت مورد اعتماد روي آن قرار دارد، ايمن و مطمئن است. حتي زمانيكه در حال بارگذاري شدن در شبكه است و ممكن است حتي بدون جلوگيري توسط جعبه شني اجرا شود.
عملكرد سطح بالا: High Performance
جاوا يك زبان تفسير شده است ، بنابر اين هرگز به سرعت زبان كامپايل شدهاي مثل C نخواهد بود . كد C كامپايل شده 10 برابر سريع تر از كد هاي تفسير شدهي جاوا اجرا ميشود. اما قبل از اينكه به خاطر اين موضوع مايوس شويد، آگاه باشيد كه اين سرعت بيشتر از آن چيزي است كه براي برنامههاي پرسرعت، كاربردهايGUI (Graphical User Interface ) ، برنامههاي برمبناي شبكه، جايي كه برنامه كاربردي معمولا آماده براي اجرا شدن است، انتظار براي كاربر كه يك دستوري اعمال كند و يا انتظار براي دريافت از شبكه، لازم است .
به علاوه قسمتهايي كه به سرعتهاي بالا نياز دارند، كه كارهايي از قبيل الحاق رشتهها و مقايسه را انجام ميدهند، با كد محلي جاوا اجرا ميشوند .
علاوه بر اين كارايي، بسياري از مفسرهاي جاوا اكنون شامل كامپايلرهاي فقط در زمان ” just in time ” نيز هستند كه ميتواند كدهاي بايتي جاوا را براي هر نوعCPU در زمان اجرا به كد ماشين ترجمه كند.
اگر شما خواهان اين هستيد كه قابل حمل بودن كد ها را قرباني بهبود در سرعت آن كنيد ، ميتوانيد بخش قابل توجهي از برنامه خود را در C و C++ بنويسيد و از روش هاي مخصوص جاوا براي مشترك كردن با اين كد محلي جاوا استفاده كنيد.
چند نخ كشي شده: Multitbreaded
در يك برنامه كاربردي بر مبناي GUI شبكهاي، مثل مرورگر وب، تصور اينكه چند چيز بتوانند به طور همزمان اجرا شوند، آسان است. يك كاربر ميتواند همزمان با اينكه دارد يك صفحه وب را ميخواند به يك كليپ صوتي گوش دهد و همزمان در پس زمينه مرورگر يك عكس را بارگذاري كند.
جاوا يك زبان چندنخ كشي شده است، كه از چندين رشته اجرايي (گاهي پردازش سبك وزن خوانده ميشود) پشتيباني ميكند و ميتواند چندين كار را انجام دهد. يكي از مزيتهاي چندنخ كشي شده اين است كه عملكرد سطح بالايي براي كاربردهاي گرافيكي براي كاربر فراهم ميكند.
اگر شما سعي كرده ايد كه با نخ ها در C و C++ كار كنيد، ميدنيد كه كمي مشكل است. جاوا برنامه نويسي با نخا را بسيار آسانر كرده است، با به وجود آوردن زبان درون ساخته شدهي كه از نخها پشتيباني ميکند. بسته jana.lang يك كلاس بوجود آورده است كه از روش هايي براي شروع و پايان يك نخ، و مرتب كردن ترتيب گره ها در ميان چيزهاي ديگر، پشتيباني ميكند .
به دليل اينكه جاوا استفاده از نخها را بسيار ساده ميكند، كلاس جاوا در شماري از جاها از اين نخها استفاده ميكند. براي مثال هر برنامه كاربردي كه انيميشن اجرا ميكند، از نخ ها استفاده كرده است.
No Comments Yet
هنوز دیدگاهی داده نشده.
دیدگاهتان را بنویسید:





