هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389...

36
ﻧﻮﻳﺴﻲ ﺑﺮﻧﺎﻣﻪ ﻫﺎي زﺑﺎن ﺑﺮرﺳﻲ ﺗﺎﺑﺴﺘﺎن1389 ﭘﺮوژه ﻋﻨﻮان: و ﻳﻜﺪﻳﮕﺮ ﺑﺎ آﻧﻬﺎ ﻣﻘﺎﻳﺴﻪ و ﻧﻮﻳﺴﻲ ﺑﺮﻧﺎﻣﻪ ﻫﺎي زﺑﺎن ﺑﺮرﺳﻲ ﻣﻨﺎﺳﺐ ﻧﻮﻳﺴﻲ ﺑﺮﻧﺎﻣﻪ زﺑﺎن اﻧﺘﺨﺎب ﺑﺮاي راﻫﻜﺎر اراﺋﻪ درس ﻋﻨﻮان: اﻃﻼﻋﺎت آوري ﻓﻦ اﺳﺘﺎد ﻧﺎم: ﺣﺠﺎرﻳﺎن ﻣﺴﻌﻮد دﻛﺘﺮ ﻛﻨﻨﺪه ﺗﻬﻴﻪ: ﻣﺘﺤﺪﻳﻦ آزاده

Upload: others

Post on 12-Jan-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

:عنوان پروژه

بررسي زبان هاي برنامه نويسي و مقايسه آنها با يكديگر و

ارائه راهكار براي انتخاب زبان برنامه نويسي مناسب

فن آوري اطالعات:عنوان درس

دكتر مسعود حجاريان:نام استاد

آزاده متحدين: تهيه كننده

Page 2: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

:تاريخچه زبان هاي برنامه نويسي

:نويسي داراي نسل هاي مختلفي مي باشند كه به ترتيب عبارتند از زبان هاي برنامه

در اين زبان كه تنها زبان قابل فهم براي كامپيوتر مي باشد از ارقام صفر و يك : بوجود آمد 1940زبان ماشين كه در اواخر دهه : نسل اولاين زبان محسوب مي شوند و جهت ايجاد كدهايي براي به عنوان عاليم اوليه استفاده مي شود و ارقام صفر و يك در حقيقت الفباي

.دستورالعمل ها بكار مي روند،به طوري كه هر دستورالعمل به صورت رشته اي از صفر و يك ها نوشته مي شود

ساده نمودن اين زبان در واقع همان زبان ماشين است، با اين تفاوت كه جهت: بوجود آمد 1950زبان اسمبلي كه در اوايل دهه : نسل دومبوجود آمد كه در آن، از حروف براي كد گذاري كدهاي 1950كار برنامه نويس، كدهاي سمبليكي به نام كد نيمانيك در اوايل سال هاي

اين كدها توسط نرم افزار هاي به خصوصي بنام . زبان ماشين استفاده شد كه اين كدها در ريزپردازنده هاي مختلف با يكديگر تفاوت دارند .سمبلر به زبان ماشين تبديل مي گردند تا قابل درك براي ماشين باشندا

به اين زبان ها زبان هاي رويه اي يا . بوجود آمدندو اولين زبان اين نسل فرترن بود 1950زبان هاي سطح باال كه در اواخر دهه : نسل سوم .را تشريح نمايدرويه گرا نيز گفته مي شود زيرا برنامه نويس بايد چگونگي اين عمليات

اين زبان ها بسيار شبيه به زبان هاي طبيعي مي باشند و برنامه نويس بوسيله برنامه هايي كه به اين زبان ها ) 70اواسط دهه : (نسل چهارمكامپيوتر مي مي نويسد به روشي ساده تر از زبان هاي ديگر با كامپيوتر ارتباط برقرار مي نمايد، گويي در حال صحبت كردن معمولي با

به اين زبان ها زبان هاي غيررويه اي نيز گفته مي شود زيرا برنامه نويس بدون تشريح چگونگي عمليات، خواسته خود را مطرح مي . باشد به عنوان مثال از اين نسل مي توان به زبان. يعني به كامپيوتر مي گويد چه مي خواهد، ولي چگونگي انجام عمليات را نمي گويد. كند

ADA به اين زبان ها، زبان هاي فوق باال نيز گفته مي شود. اشاره نمود.

:در كل زبان هاي برنامه سازي به دو دسته تقسيم مي شوند

Low level languagesزبان هاي سطح پايين -1

High level languagesزبان هاي سطح باال -2

زبان هاي سطح پايين

Page 3: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

اين زبان ها وابسته به ماشين و سخت افزار هستند، بطوري . به دور از زبان طبيعي و محاوره اي انسانزبان هايي هستند در سطح ماشين و كار كردن با اين زبان ها مشكل است و خطا يابي و بررسي برنامه ها به سهولت امكان . كه هر ميكروپروسسور زبان خاص خود را داراستزبان هاي سطح پايين . مه هاي نوشته شده به اين زبان ها با سرعت بااليي اجرا مي شوندپذير نيست، ولي به علت نزديكي به ماشين، برنا

:به دو دسته تقسيم مي شوند

.زبان ماشين -1

.اسمبلي -2

زبان هاي سطح باال

در زبان طبيعي زبان هايي هستند نزديك به زبان طبيعي و محاوره اي انسان كه در آن ها از عاليم، حروف و كلمات آشنا و بكار رفته كه اين امر بوسيله نرم افزار هاي بخصوصي وترها شوندياين زبانها احتياج به ترجمه و تصوير دارند تا قابل درك براي كامپ. استفاده مي شود

كامپيوترها قابل سخت افزار نيستند و با اندكي تغيير در كليه ،زبان هاي سطح باال وابسته به ماشين . بنام كامپايلر و مفسر انجام مي گيردكاركردن با اين زبان ها آسان تر . البته شرط قابل درك بودن اين زبان ها براي كامپيوترها وجود مفسر با كامپايلر مي باشد. اجرا مي باشند

.ام مي گيردجراحت تر اناست و نسبت به زبان هاي سطح پايين خطايابي و بررسي برنامه ها

:آغاز گرديد و متداولترين آن ها عبارتند از 1950واسط دهه توليد زبان هاي سطح باال از ا

FORTRAN,COBOL,PL/1,BASIC,LOGO,PSCAL,C

C

طراحي شد و امروزه UNIX به منظور تكميل و باز نويسي نسخه اوليه سيستم عامل 1970در اوايل دهه BELL در آزمايشگاه C زبانيك زبان سطح باال است ولي غالبا به عنوان زبان برنامه نويسي سيستم و يا براي رفع C گر چه. بوجود آمده است C نسخ مختلفي از زبان

همچنين بسياري از نرم افزارهاي اساسي كامپيوتر به اين . نيازهايي كه در گذشته به كمك زبان اسمبلي برطرف مي شدند استفاده مي شود .شواري استفراگيري اين زبان براي مبتديان كار د. زبان نوشته مي شوند

LOGO

گرچه اين زبان جهت استفاده دانشجويان به منظور كارهاي علمي . عرضه شد MIT در دانشگاه 1960اين زبان توسط سيمور پاپرت در دهه .طراحي گرديد، ليكن آن را به عنوان اولين زبان آموزشي جهت پرورش مهارت و خالقيت بچه ها مي شناسند

.رنگ ها، ايجاد تصاوير متحرك در اين زبان بسادگي انجام مي شودرسم خطوط گرافيكي، كار روي

LISP

ارائه گرديد و روي داده هاي غير (AI) به منظور پشتيباني تحقيق در زمينه هوش مصنوعي 1959-1960توسط جان مك آرتي در سال .ي گيردنبز مورد استفاده قرار م AUTO CAD عددي كار مي نمايد و جهت برنامه نويسي در محيط

Page 4: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

ALGOL

تا كنون عرضه شده است كه از جمله مي ALGOL نسخ مختلفي از. معرفي گرديد و يك زبان علمي مي باشد 1958اين زبان در سال استفاده مي شود، ولي در اروپا اين زبان از محبوبيت ALGOL بجاي FORTRAN در آمريكا معموال از. را نام برد ALGOL 68 توان

.ار استويژه اي برخورد

PASCAL

و اوايل 1960اين زبان كه به افتخار بلز پاسكال دانشمند فرانسوي قرن هفدهم ميالدي، پاسكال نامگذاري شده است در اواخر سال هاي اين زبان از قدرت بااليي در اجراي امور علمي و .توسط پروفسور نيكالس ويرث در انستيتو فني فدرال سوئيس مطرح گرديد 1970توسط 1983برخوردار است و در بسياري از مدارس و كالج هاي دنيا جهت آموزش برنامه نويسي تدريس مي گردد و در سال تجاري

.سازمان استاندارد ملي آمريكا بصورت استاندارد در آمد

ADA

را بخاطر ADA خانم. ناميده شد ADAاين زبان به افتخار نام دختر لرد بايرون كه همكار چالز بابيج در زمينه طرح ماشين تحليلي بود، .برنامه هايش به عنوان اولين برنامه نويس در جهان مي شناسند

وزارت دفاع آمريكا تحقيقاتي را پيرامون طراحي 1975در سال . اين زبان به منظور سرويس هاي نظامي در وزارت دفاع آمريكا تهيه گرديدبود كه در ADA كامپيوتر و برنامه نويسان نظامي باشد آغاز كرد كه ماحصل كار آن ها زبانيك زبان عمومي كه مورد استفاده فروشندگان

.توسط سازمان ملي استاندارد آمريكا به صورت استاندارد در آمد 1983اين زبان در سال . عرضه گرديد 1980سال

Basic

ه خاطر ساختار ساده اي كه دارد از محبوبيت فوق العاده اي در اين زبان ب. بيسيك به معني زبان همه منظوره براي افراد مبتدي مي باشديك زبان محاوره اي امكان ارتباط مستقيم بين انسان . تم هاي محاوره اي و اشتراك زماني استفاده مي شودسدر سي. جهان برخوردار است

ني با كامپيوتر ندارد پس از مدت كوتاهي مي تواند يك فرد مبتدي كه آشنايي چندا. و كامپيوتر را در حين اجراي برنامه فراهم مي نمايدوارد كردن داده اي ورودي بسيار ساده بوده و برنامه نويس الزم نيست . دستورهاي اين زبان را فرا گرفته و اقدام به نوشتن برنامه بنمايد

همچنين ايجاد . زبان در اختيار استخروجي برنامه باشد زيرا فرمت هاي خروجي قابل استفاده توسط اين ) فرمت(نگران دستورهاي در اولين ميكرو كامپيوترها مورد BASICبه خاطر سادگي اين زبان، . تغييرات و اضافه كردن داخل برنامه بيسيك بسادگي انجام مي شود

ش نو آموزان مي استفاده قرار گرفت و تا كنون نيز محبوب ترين زبان سطح باالي مورد استفاده در اين سيستم هاي شخصي براي آموزتوسط پروفسور جان كمني و توماس كورتز در كالج دارتموث بوجود آمد و هدف آن ها از 1964و 1963زبان بيسيك بين سال هاي . باشد

Page 5: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

عليرغم اينكه در بيسيك اوليه از . ايجاد زبان بيسيك اين بود كه كليه دانشجويان رشته هاي مختلف بتوانند آن را بسادگي فرا گيرندمعين و محدودي استفاده مي شد، ليكن سازندگاه كامپيوتر دستورات متعددي را به آن افزودند و از نظر سخت افزاري امكانات تتورادس

و كامپيوتر خود را افزايش دادند تا بتوانند با ساير سازندگان كامپيوتر رقابت نمايند، لذا امروزه نسخه هاي متعددي از بيسيك وجود دارداستاندارد فوق به حدي ساده است كه نسخه هاي . ارائه نمود 1978اندارد آمريكا نسخه اي از آن را بنام نسخه پايه در سال سازمان است

اينك از دانش . قابل دسترسي است GWBASIC, QBASIC, TURBO BASIC,VISUAL BASIC گسترش يافته آن از قبيل .همچنين اين زبان در امور تجاري و مديريت كاربرد دارد. ده مي نمايندآموزان مدارس تا مهندسان هواپيما از اين زبان استفا

COBLOL

كوبول به معني زبان تجاري مي باشد كه براي پردازش فايل ها بوجود آمد و هم اكنون براي كارهاي تجاري با حجم زياد مورد استفاده بسياري از نمايندگان دولت آمريكا و سازندگان و استفاده كنندگان كامپيوتر و دانشگاه ها گرد هم آمدند تا زبان 1959در سال . قرار مي گيرد

مشخصات اين زبان چند ماه بعد توسط . به اتمام رسيد 1960حاصل كار آن ها در ژانويه سال . مناسب براي پردازش فايل ها را بوجود آورنداستانداردي براي ANSI سازمان. كامپايلر زبان كوبول براي امور تجاري عرضه شد 1961رسيد و در سال سازمان انتشارات دولتي به ثبت

زبان كوبول بهتر از ساير زبان هاي برنامه نويسي . نسخه جديدي از آن نيز عرضه شد 1974تهيه كرد و در سال 1968زبان كوبول در سال لفبايي از قبيل نام، آدرس و ساير مشخصات ديگر مي باشد و محدوديت آن اين است كه براي قادر به انجام عمليات بر روي كاراكتر هاي ا

.انجام عمليات پيچيده رياضي مناسب نمي باشد

PL/1

هاما در اوايل ده. همانطور كه مالحظه نموديد زبان هاي اوليه از قبيل فرترن و كوبول به منظور حل مسائل علمي، تجاري تهيه گرديدندكار خود را بر روي زباني كه قابليت فرترن و كوبول را تواما داشته باشد IBM 360 و يك كميته از استفاده كنندگان IBM شركت 1960

.كار تهيه اين زبان به پايان رسيد 1960ناميده شد و در اواسط دهه PL/1 آغاز نمودند كه

PL/1 بول بهره جست و سازمان استاندارد آمريكانيز مانند يك زبان علمي از برخي تكنيك هاي فرترن و كو (ANSI) 1976در سال ور ساخته شد كه جايگزين فرترن و كوبول گردد زبان پرقدرتي مي باشد و به اين منظ PL/1عليرغم اينكه. استانداردي براي آن تهيه كرد

موفقيت مورد نظر را PL/1 اشد مشكل است، لذاليكن از آنجايي كه فراهم نمودن تكنيك هايي كه قادر به انجام امور علمي و تجاري ب .با توجه به اينكه فراگيري اين زبان نيز ساده نيست مي رود كه به تدريج به دست فراموشي سپرده شود. كسب ننمود

Page 6: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

( Formula Translation ) FORTRAN

IBM ه منظور ايجاد يك زبان علمي در شركتبه سرپرستي جان باكوز ب 1954فرترن اولين زبان سطح باال است كه توليد آن در سال

با استفاده از اين زبان حل معادالت . ميليون دالر هزينه برداشت 5/2معرفي گرديد كه بالغ بر IBM 704 روي 1957شروع و در سال د استفاده قرار مي گيرد و اين زبان در اكثر كامپيوترهاي بزرگ و كوچك مور. رياضي بسيار آسان گرديد و بسيار مورد استقبال قرار گرفت

براي آن شروع شود كه يكي از آن ها را نسخه پايه و ديگري را 1962همين استقبال فوق العاده سبب شد تا كار تهيه استاندارد در سال رفت و اين اولين مورد پذيرش سازمان استاندارد آمريكا قرار گ 1966استاندارد زبان فرترن در سال . نسخه كامل يا گسترش يافته مي نامندبرنامه هايي كه به اين زبان در يك كامپيوتر نوشته مي شود معموال به سادگي در ساير كامپيوترها . زباني بود كه به صورت استاندارد درآمد

قبيل مقايسه اي و ساير دستورات اساسي از/ فرترن نيز از دستورات ورودي، خروجي، محاسباتي، منطقي . نيز قابل استفاده مي باشد

READ ،WRITE ،GOTO و STOP همانطور كه از اين دستور ها در زبان انگليسي انتظار مي رود استفاده مي شود.

از ضعف . زبان فرترن قابليت حل مسايل رياضي و آماري را دار مي باشد، لذا بسياري از برنامه هاي اين مقوله به اين زبان نوشته مي شونددنبال كردن منطق برنامه مشكل تر از ساير زبان هاي سطح باال مي باشد و اين زبان براي پردازش فايل ها هاي اين زبان اين است كه

.نمي باشد، لذا براي پردازش فايل ها و استفاده در امور تجاري زبان سطح باالي ديگري بوجود آمد به نام كوبول

:دسته بندي زبان هاي برنامه نويسي

Functional Languages مثال براي نوشتن . ن هاي ساخت يافته به زبان هايي مي گويند كه از ساختار منظم كه توسط توابع ايجاد شده اند برخوردار هستند زبا

در برنامه بنويسيم كه دو عدد را بگيرد و با هم جمع كند و اين تابع را addبرنامه اي كه مي خواهد دو عدد را باهم جمع كند تابعي به نام :برخي از زبان هاي ساخت يافته در زير نوشته شده اند. ديگرمان هم استفاده كنيمهاي

Haskell: يك زبان برنامه نويسي كامال ساخت يافته.

ML: يك زبان برنامه نويسي استاندارد كه نگارش هاي مختلفي دارد.

Erlang: يك زبان ساخت يافته با كاربرد صنعتي.

K&J: قابليت هاي آرايه اي قوي دو زبان برنامه نويسي با.

APL: يك زبان برنامه نويسي ساخت يافته بر پايه آرايه ها .

LISP: البته از اين زبان به بعد برنامه نويس شي گرا مطرح شد. يك زبان برنامه نويسي ساخت يافته.

C: اين زبان به عنوان اولين زبان برنامه نويسي سيستمي مطرح است.

.هم از اين گروه هستند Basicو Pascalزبان هايي مثل .پرداختند LISPو MLسال اخير كميته برنامه نويسي ساخت يافته بجاي ارائه زبان جديد به ارتقاي زبان هايي مثل 20در

Page 7: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

Object Oriented Language

و هم . زبان ها شي محسوب مي شودزبان هاي شي گرا زبان هايي هستند كه بر پايه اشياء ساخته ونوشته مي شوند همه چيز در اين

بوجود آمده اين زبان ها در واقع نسل Object Oriented Programmingيا OOP عرض با اين زبان ها نوعي برنامه نويسي به نام :جديد زبان هاي برنامه نويسي هستند

Simula: اولين زبان برنامه نويسيoo عرضه شد 1960كه در سال.

++C: قيقت تركيبي از برنامه نويسي سيستمي و شي گرا استاين زبان در ح.

Perl: يك زبان برنامه نويسي تحتUNIX كه براي ساخت وب سايت هاي پويا بكار مي رود.

PHP: زبان برنامه نويسي سمت سرور كه در سالهاي اخير محبوبيت زيادي كسب كرده است.

Java: زبان برنامه نويسي محصول شركتSun .نيز از اين جمله اند... و VBو ASPتعداد زبان هاي برنامه نويسي واقعا زياد است

Scripting language

.زبان هاي متني زبان هايي هستند كه نحوه نگارش آنها به زبان طبيعي نزديك است .نداين گونه زبان ها معموال پيچيدگي هاي انواع ديگر را ندارند و مي توان گفت ساده تر هست

TCL: ياTickle پدر بزرگ زبان هاي متني

Perl: يك زبان متني است كه قابليت شي گرا دارد

Java Script: محبوبترين زبان برنامه نويسي متني در حال حاضر براي برنامه نويسي سمت مشتري در صفحات وب.

Python: زبان برنامه نويسي قدرتمند با قابليت شي گرايي بسيار قوي براي برنامه نويسي سمت مشتري در صفحات وب.

Logical Language

زبان هاي برنامه نويسي منطقي به نوعي سردم دار سبك جديدي از برنامه نويسي هستند كه در علوم مختلف كاربرد دارد

Prolog: ايجاد شد 1972متني كه در سالاولين زبان برنامه نويسي.

Mercury: زبان برنامه نويسي منطقي ديگر...

Page 8: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

: و موارد كاربردويژگي هاي زبان برنامه نويسي دلفي

Delphi در مقابل 6پس از شكست ويژوال بيسيك .يكي از موفق ترين ابزارهاي توسعه نرم افزار براي ويندوز در دهه گذشته بوده استو فراگير شدن محيط توسعه شركت بورلند در ميان توسعه دهندگان ويندوز، مايكروسافت به فكر ساخت يك محيط 2002در سال 7دلفي

ي دنيا و حتي در در اكثر شركت هاي نرم افزار 7دلفي . در آن زمان دلفي دوران طاليي خود را مي گذراند. توسعه مجتمع مناسب افتاد 2003اين محبوبيت با آمدن ويژوال استاديو . همين ايران خودمان به اولين انتخاب براي توسعه نرم افزارهاي تحت ويندوز تبديل شده بود

م كه به برنامه نويسان امكان توسعه نر 2005و ويژوال استاديو 2.0مايكروسافت با ارائه دات نت فريم ورك . هنوز هم ادامه داشت .افزارهاي تحت ويندوز و تحت وب را به بهترين شكل مي داد توانست در اين رقابت دلفي را پشت سر بگذارد

به ضعيف ترين شكل ممكن توسط شركت بورلند، اكثر توسعه دهندگان دلفي را از آن نا اميد كرد و به فكر 2006و 2005ارائه دلفي پس از آن شركت بورلند توسعه دلفي را به يكي از شركت هاي . جاوا ترغيب نمود مهاجرت به يك محيط توسعه ديگر مثل دات نت و

توسط اين شركت روح تازه اي به پيكر نيمه جان دلفي دميده شد و 2007با ارائه نسخه . واگذار كرد CodeGearزيرمجموعه خود به نام را به شركت CodeGearبورلند شركت 2008ر سال د. بسياري از برنامه نويسان ويندوز را به استفاده از آن تشويق نمود

Embarcadero technologies دلفي با نام 2009فروخت تا نسخهEmbarcadero Delphi 2009 نسخه . به بازار وارد شود . بود 7موفق ترين انتشار دلفي پس از دلفي 2009

اين سئوال پش Embarcaderoتوسط شركت 2010با ارائه دلفي با خواندن اين مقدمه نسبتاً طوالني و خالصه اي از تاريخچه دلفي و

آيا هنوز هم دلفي محيط توسعه قابل اعتماد و مناسبي براي انجام پروژه هاي نرم افزاري هست يا خير؟مي آيد كه

ت ويندوز دلفي انتخاب مناسبي براي توسعه نرم افزارهاي تح 2010نسخه .است“ بله”ساده ترين جواب به اين سئوال جواب

اين محيط زمان توسعه پروژه شما را كاهش مي دهد و با ابزارها و كامپوننت هاي آماده اي كه دارد توليد يك برنامه تحت ويندوز را . استبرنامه هاي دلفي بر خالف . دلفي داراي خصوصيات جديد و ويژگي هاي مناسبي است 2010نسخه . براي هر برنامه نويسي آسان مي كند

است كه به stand-aloneهاي مبتني بر دات نت و جاوا به هيچ پيش نيازي وابسته نيستند و خروجي دلفي يك فايل اجرايي برنامه .مراتب سريع تر از خروجي هاي محيط هاي ويژوال استاديو و جاوا اجرا مي شود

اكثر كامپوننت هاي . اي پشتيباني مي كند ، صفحه لمسي و اشارهdirect 2Dمثل 7از تمامي قابليت هاي جديد ويندوز 2010دلفي VCL سازگاري كامل داشته باشند 7در اين نسخه طوري تغيير كرده اند كه با ويندوز .Delphi Prism هم قابليت نوشتن برنامه هاي

.مبتني بر دات نت را به زبان دلفي به برنامه نويسان مي دهد

Page 9: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

به طور مثال . مناسبي براي شما باشيد يا خير، كامالً بستگي به نوع پروژه و موقعيت شما داردمي تواند انتخاب 2010اما اينكه واقعاً دلفي بهترين 2010سرور بنويسيد، شك نكنيد كه دلفي /اگر مي خواهيد يك نرم افزار مبتني بر پايگاه داده ها تحت ويندوز و به صورت كالينت

حت وب كه از وب سرويس هم استفاده مي كند و ساختار پيچيده اي دارد توليد كنيد، اما اگر مي خواهيد يك برنامه ت. گزينه براي شماستاما . دلفي مي تواند بهترين انتخاب باشد Win32در كل براي توسعه نرم افزارهاي مبتني بر . نمي تواند انتخاب خوبي باشد 2010دلفي

.دبراي توسعه مبتني بر دات نت يا وب نمي تواند انتخاب مناسبي باش

اين در حالي است كه هزينه نرم . نكته ديگري كه وجود دارد اين است كه در ايران موقعيت هاي شغلي براي دلفي به ندرت پيدا مي شوداما به علت نبود . افزارهايي كه با دلفي نوشته مي شوند به مراتب پايين تر از نرم افزارهايي است كه با ابزارهاي مايكروسافت توليد مي شوند

نون كپي رايت در ايران، اكثر شركت هاي نرم افزاري سعي مي كنند از گران ترين تكنولوژي ها و ابزارها براي توليد نرم افزار خود قاهر چند در خارج از كشور هم وضع به همين صورت است و اكثر شركت ها از ابزارهاي مايكروسافت و اوراكل استفاده مي . استفاده كنند

جود قانون كپي رايت شركت ها و افرادي زيادي نيز پيدا مي شوند كه به علت هزينه پايين تر دلفي از آن براي توسعه كنند اما به علت و .پروژه هاي خود بهره مي برند

نامه اينكه يك برنامه نويس فقط به يك ابزار و يك زبان بر. در آخر به اين نكته توجه داشته باشيد كه هر ابزاري را براي هدفي ساخته اندهنوز يك ابزار و يك زبان همه منظوره كه بتواند پاسخگوي تمام نيازهاي برنامه نويسي باشد وجود . نويسي وابسته باشد اصالً خوب نيست

دلفي ابزاري عالي و مناسب براي اضافه كردن به . شما بايد بر اساس موقعيت و نياز خود از اين ابزارها و زبان ها استفاده كنيد. ندارد !ارهاي برنامه نويسي شما خواهد بودابز

بيتي مبتني بر سيستم عامل هاي 32و كامال شيء گرا براي توسعه برنامه هاي ) ويژوال(محيط برنامه نويسي بصري 7بورلند دلفي

در ويندوز و با استفاده از دلفي مي توانيد برنامه هاي كاربردي بسيار قوي و انعطاف پذير ايجاد كرده و آن ها را. ويندوز و لينوكس مي باشد .وكس انتشار دهيدلين

اين كلمه . خوانده مي شود RADمحيط دلفي در اصطالح . ط دلفي ابزارهاي سريع و ساده بسياري در اختيار برنامه نويسان قرار ميدهدمحيدلفي شامل ابزارهاي سريع طراحي برنامه، . و به معني توسعه كاربردي سريع است Rapid Application Developmentمخفف

.اي از پيش ساخته شده و كتابخانه اي از اجزاي نرم افزاري استويزاردهاي برنامه نويسي، قالب ه :دلفي شامل دو كتابخانه مجزا براي ويندوز و لينوكس است

The Visual Component Library – VCL : اين كتابخانه شامل اجزايي است كهAPI هاي ويندوز را در خود . كپسوله كرده اند

Page 10: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

The Borland Component Library for Cross-platform – CLX :

) اين نوع از برنامه ها در ويندوز و لينوكس قابل اجرا هستند. (را خود كپسوله نموده اند Qt Libraryكه اين كتابخانه اجزاي

.ميمي پرداز 7به شرح مختصري از قابليت هاي محيط دلفي بخشدر اين

) :IDE(محيط توسعه مجتمع

شامل تمامي IDEاين . دلفي در مقابل شما نمايان مي شود IDEوفتي دلفي را باز مي كنيد بالفاصله محيط توسعه مجتمع يا به اختصار .ابزارهاي مورد نياز براي طراحي، توسعه، تست، و انتشار برنامه مي باشد

Form Designer : براي طراحي رابط كاربري برنامه Component palette :اي دسترسي به كامپوننت هاي بصري و غير بصري قابل استفاده در برنامه بر Object Inspector : براي مشاهده و مديريت خصوصيات اشياء و رويدادهاي مربوط به هر يك Object TreeView : براي نمايش و مديريت روابط منطقي ميان اجزاي برنامه Code Editor :نامه براي نوشتن و ويرايش كد بر Project Manager : براي مديريت بر روي فايل هاي پروژه

طراحي برنامه هاي كاربردي

از برنامه هاي سودمند كوچك گرفته تا برنامه هاي . بيتي را طراحي و اجرا نمائيد 32با استفاده از دلفي مي توانيد هر نوع برنامه در حين طراحي رابط . تجاري و نرم افزارهاي توزيع شده با استفاده از بورلند دلفي نسخه هفت قابل توسعه و تعميم هستند

كدهاي مربوط به طراحي را به صورت خودكار توليد مي كند و Form Designerدر پشت پرده كاربري برنامه توسط دلفي، زماني كه شما مشخصات كامپوننت ها و اجزاي بصري و غير . نيازي به نوشتن كدهاي طراحي به صورت دستي نخواهيد داشت

ت شما را روي سورس كد برنامه اعمال به صورت خودكار تمامي تغييرا Form Designerبصري برنامه را تغيير مي دهيد، شما به راحتي مي توانيد سورس برنامه خود را توسط هر ويرايشگر . كردن برنامه خواهد بود Re-Buildميكند و تنها زحمت شما

دلفي Code Editorباز كرده و تغيير دهيد اما بهترين ويرايشگر براي اين كار ويرايشگر داخلي دلفي يا ) Notepadمثل (متني .است كه با داشتن خصوصيات منحصر به فرد بهترين گزينه براي شما خواهد بود

Page 11: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

Component Paletteشما به راحتي مي توانيد با استفاده از زبان دلفي كامپوننت هاي خود را ساخته و آن ها را به قسمت

.سفارشي نمائيد را به دلخواه خود Component Paletteدر صورت نياز مي توانيد . اضافه كنيداين نوع از برنامه ها بايد . همچنين مي توانيد برنامه هايي توليد كنيد كه هم در ويندوز و هم در لينوكس قابل انتقال و اجرا باشند

شامل كالسهايي است كه قادرند در دو CLXكتابخانه . نوشته شوند Cross-Platformبا استفاده از كتابخانه بورلند براي .مل ويندوز و لينوكس بدون هيچ مشكلي كار كنندسيستم عا

ايجاد پروژه هاي نرم افزاري

پروژه شامل . هر گاه كه شما در دلفي شروع به نوشتن برنامه اي مي كنيد در واقع در حال ايجاد يك پروژه نرم افزاري هستيدبعضي از اين فايل هاهنگام طراحي برنامه . دهندتعدادي فايل مرتبط با هم مي باشد كه در نهايت برنامه كاربردي را تشكيل مي

.ساخته مي شوند و بعضي ديگر به صورت خودكار در هنگام كامپايل برنامهدلفي مشاهده كنيد و از همان جابه مديريت پروژه Project Managerشما مي توانيد محتويات پروژه تان را در پنجره

قالب يك پروژه و انجام كارهاي گروهي از ديگر مزاياي مديريت پروژه در محيط امكان تركيب پروژه هاي مختلف در . بپردازيد .دلفي است

خطايابي آسان

داخلي است كه در ) Debugger(دلفي شامل يك خطاياب . يكي از مباحث مهم در توسعه نرم افزارها، مبحث خطايابي استلفي از جمله كنترل اجراي تبه شما امكانات مخ Debugger اين. پيدا كردن و رفع خطاهاي پروژه به شما كمك بسياري مي كند

قادر به شناسايي خطاهاي Debuggerاين . برنامه، مشاهده مقادير متغيرها و داده ها و تغيير دادن آن ها را به شما مي دهد .است Logical Errorsو برخي از خطاهاي منطقي Runtime Errorsهنگام اجرا

توزيع برنامه كاربردي

و زبان هاي تحت دات نت، برنامه هايي توليد مي كند كه بدون هيچ پيش نيازي در سيستم Visual Basicدلفي برخالف اين مزيت بسيار بزرگي است كه دلفي با تكيه بر آن صدها هزار توسعه دهنده را جذب خود كرده . عامل ويندوز اجرا مي شوند

Page 12: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

.است .نياز خواهيد داشت Kylixس به براي توزيع برنامه هاي دلفي روي لينوك

كدام نسخه دلفي؟

به بازار آمده است و 2001اين نسخه در سال . محصول شركت بورلند آشنا شديد 7در اين نوشته شما با خصوصيات دلفي نسخهال از توزيع با اينكه هفت س. تا به حال برنامه هاي بسيار زيادي بوسيله اين محيط براي سيستم عامل ويندوز نوشته شده است

در ايران . اين نرم افزار مي گذرد اما هنوز هم براي توسعه نرم افزارهاي مختلف و محصوالت قدرتمند مورد استفاده قرار مي گيردالبته استفاده از . براي توليد محصوالت خود بهره مي برند 7بسياري از شركت هاي كوچك و بزرگ نرم افزاري از دلفي نسخه

در توسعه برنامه هاي كاربردي هر روز كمرنگ تر مي شود اما در 7ان در حال كاهش است و حضور دلفي اين محصول در جهچون بسياري از شركت هاي دولتي و بعضاً خصوصي در ايران امكانات سخت افزاري بسيار . ايران هنوز براي استفاده جا دارد

و Microsoft .NETو استفاده از تكنولوژي هاي روز دنيا همچون پائيني دارند، شركت هاي نرم افزاري امكان تغيير تكنولوژي JAVA را ندارند و قدرت و شجاعت اين ريسك را هم ندارند.

آخرين نسخه دلفي است كه شركت 2007اما براي كساني كه هميشه دنبال جديدترين ها هستند، نسخهCodeGear يكي از .اين نسخه به راحتي در بازارهاي ايران پيدا مي شود. آن را توليد و توزيع كرده است Borland مجموعهشركت هاي زير

:و كاربردهاي آن ADA ويژگي هاي زبان برنامه نويسي

Ada ويژگي هاي قابل توجه از .مي شود اهداف استفاده ارائه شده است و كماكان براي همان نهفته و بالدرنگ براي سيستم هاي Ada، ،و دسته بندي استثناء پردازش موازي، چك زمان اجرا، تايپ قويgenericها مي باشد. Ada 95 برنامه نويسي شي پشتيباني براي

.ترا اضافه كرده اس ++C قالبهاي مشابه و مخابره پويا گرا، شامل

مديريت حافظه بر يك شكل محدود از Ada .استفاده نمي كند حافظه مديريت براي جمع آوري زباله نوعاً از Ada سازي هاي پيادهكامپايل شناسايي شود كند، كه اجازه ي بعضي از موارد دسترسي به حافظه ي تخصيص نيافته را كه بايد زمان را پشتيباني مي اساس ناحيه

.مي دهد

Ada و اشكال هاي قابل سرريز بافر هاي موقع اجرا را به منظور جلوگيري از دسترسي به حافظه ي تخصيص نيافته، خطاهاي چكشامل ابزارهايي براي كمك به تغيير همچنين Ada .اين چك ها مي توانند براي افزايش كارآيي از كار بيافتد. انجام مي دهد اجتناب ديگر

.ي گسترده اي دارد استفاده ارتباطات هوايي، تسليحات و فضاپيما بحراني مانند ن زبان در سيستم هايبه همين دليل، اي. برنامه است

Page 13: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

كند كه قابل شناسايي تا زمان اجرا مي تعداد زيادي از چك هاي زمان كامپايل براي كمك به جلوگيري از اشكاالت را حمايت در ضمن .صريح دارد كه به كد اصلي اضافه شود چك هايدر بعضي ديگر از زبان ها نيست، يا نياز به

يكي از. دارد غير معمول است محتواي رايگان در اين كه سازماندهي بين المللي براي استاندارد سازي بين استانداردهاي Ada زبان تعريف

مول است كه برنامه نويسانيك مرجع مع )شناخته شده "RM" يا "مرجع دستي"به عنوان كتاب(نتايج آن اين است كه سند استاندارد

Ada زبان هاي برنامه نويسي ديگر را همين ترتيب به عنوان كتاب درسي استاندارد، براي جزئيات تكنيكي به آن متوسل مي شوند به .كند آماده مي

Adaاهداف طراحي زبان

Ada هدف طراحي شده بود 3در ابتدا براي:

)Program reliability and maintenance(قابليت اطمينان و نگهداري برنامه -1

)Programming as a human activity(برنامه نويسي به عنوان يك فعاليت انساني -2

)Efficiency(كارايي -3

اين تجديد نظر زبان طراحي شده بود كه انعطاف پذيري و قابليت توسعه بيشتر ، كنترل اضافي براي مديريت حافظه و همزماني و . يج هاي استانداردگرا در جهت پشتيباني از نواحي كاربردي را مي نمايد پك

، در از ويژگيهاي زبانها اين است كه با قابليت اعتماد باال و نگهداري ساده به خوبي انتشار يابند از اين رو اهميت بر روي اعتماد برنامه داشتند كه متغير ها به صورت صريح تعريف شوند و نوع آنها مشخص براي مثال نقش هاي زبان نياز . حالت نوشتن قرار داده شده بود

از آنجا كه نوعهاي يك متغير مشابه است ، كامپايلرها مي توانند از اينكه عمليات بر روي متغير ها با خصوصيات الحاق شده . شوند

راي واحد هاي مختلف برنامه پشتيباني مي كنند زبانها اغلب از كامپايلهاي مجزا ب. ها سازگار است مطمئن باشند objectبراي نوع .تا توسعه و نگهداري برنامه آسان شود واز همان درجه چك كردن داخل واحد ها براي چك كردن بين واحد ها استفاده ميكند

و واحد ها Taskها ، Packageواحد هاي برنامه شامل زير برنامه ها . تركيب يك يا چند واحد برنامه ايست Adaيك برنامه .هاي محافظت شده است

هر واحد برنامه معموال شامل دو بخش است

Page 14: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

1- Specification :باشد شامل اطالعاتي است كه بايد توسط واحد هاي ديگر قابل ديدن

2- Body:شامل جزيات پياده سازي است كه نيازي نيست براي ديگر واحدها قابل ديدن باشد.

.صورت نرمال از واحد هاي برنامه هاي كتابخانه براي امكانات كلي استفاده ميكندبه Adaيك برنامه

همه كتابخانه ها با يك روش سلسله مراتبي ساختاربندي ميشوند، اين تجزيه منطقي يك زير سيستم را به مولفه هاي فردي اش .خانه اي كه نياز دارد را ذكركندمتن واحد برنامه كامپايل شده مجزا بايد نام واحدهاي كتاب. تجزيه مي نمايد

(Open Source)تعريف برنامه هاي متن باز

ديده مي شود، ذهن كاربران به سمت آزاد و رايگان بودن يك نرم افزار مي رود، اين در حالي است كه نرم اوپن سورس هر وقت نامي از

بخش مهمي از سود صنعت نرم در حقيقت . افزارهاي اوپن سورس مي توانند فروخته شوند و به صورت تجاري از آن ها استفاده شود

سود مالي نرم افزارهاي اوپن سورس در اكثر مواقع از فروش . مي شودافزار جهان از طريق نرم افزارهاي اوپن سورس تامين

مدل تجاري اوپن سورس به جاي تمركز بر روي فروش خود نرم افزار، بر . سرويس هاي مربوط به آن ها بدست مي آيد

ن پشتيباني فني و از نگاه مشتريان جدي، يك محصول نرم افزاري بدو .روي فروش خدمات مربوط به آن نرم افزار تاكيد دارد

هر چقدر هم مشخصات يك محصول نرم افزاري با نيازهاي يك مشتري هماهنگ باشد، باز هم . خدمات نگهداري هيچ ارزشي نداردنرم افزار آزاد و كدباز به صورت پيش فرض هيچ . مشتري نياز به ايجاد در تغييرات در نرم افزار و هماهنگ كردن آن با شرايط خود را دارد

اين نكته به صراحت در تمام مجوزهاي آزاد ذكر . ني براي درست كار كردن محصول و جوابگو بودن نيازهاي يك مشتري نمي دهدتضميبنابراين اگر كاربري واقعاً به يك نرم افزار اوپن سورس رايگان نياز اساسي داشته باشد حاضر خواهد بود براي خدمات پشتيباني، . شده است

.نجام تغييرات هزينه كندآموزش، نگهداري و ا

شركت هاي معروف و .يك مدل تجاري پذيرفته شده و سود آور در سطح جهان است Open Sourceمدل تجاري

از اين شركت هاي معروف مي توان به چند نمونه اشاره . تاثيرگذار زيادي در دنياي نرم افزار از اين مدل براي سود آوري استفاده مي كنند :كرد

Page 15: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

شركتCanonical را به صورت رايگان عرضه مي كند، در حالي كه قراردادهاي پشتيباني تجاري مي اوبونتوسيستم عامل بندد

Novell سيستم عاملOpenSUSE را رايگان مي دهد، اماSUSE Linux Enterprise را مي فروشد Mozilla و شركت هاي ديگر دارد گوگلرا مجاني مي دهد، و براي سودآوري قراردادهاي همكاري با فايرفاكسمرورگر Adobe محصولFlex خود را رايگان عرضه مي كند، اما محيط توسعه آن را مي فروشد Microsoft خود را رايگان مي دهد، در حالي كه محيط توسعه آن را مي فروشد دات نتپلت فرم MySql مجاني است، اما براي داشتن پشتيباني و قابليت هاي اضافي بايد پول بدهيد Oracle نرم افزارOpenOffice را رايگان عرضه مي كند، و نسخه تجاري آن يعنيStarOffice را مي فروشد كه مشاهده مي كنيد شركت هاي بزرگ دنياي نرم افزار از اين مدل براي سودآوري محصوالت خود استفاده مي كنند همانطور

مدل تجاري اوپن سورس يك مدل تجاري مطمئن و پايدار براي رسيدن به سود آوري بلندمدت و اين يعني

. استتريان به محصول نرم افزاري وابسته كردن مشرمز موفقيت اين مدل تجاري در .در صنعت نرم افزار است

به طور مثال بنياد موزيال كاربران حرفه اي وب را به مرورگر فايرفاكس وابسته كرده است و در كنار آن قراردادهاي پرسودي با اين كار اصالً غير اخالقي نيست، موزيال يك محصول با كيفيت را به صورت . شركت گوگل و ديگر شركت ها بسته است

.در اختيار كاربرانش قرار مي دهد و در قبال آن بدون ايجاد مزاحمت خاصي براي اين كاربران، درآمد كسب مي كندرايگان

نرم افزاري . در اكثر مواقع مجوز اوپن سورس باعث پيشرفت يك محصول نرم افزاري و محبوب شدن آن ميان كاربران مي شودمي گيرد و اين يعني يك ماركت خوب براي سازندگان آن محصول كه كه محبوب شود، به طورگسترده مورد استفاده قرار

پول درآوردن از راه اوپن سورس نه تنها بد نيست بلكه فوايد بسيار زيادي براي صنعت نرم . پتانسيل بااليي براي سودآوري دارد

به طور .ستايجاد فرصت هاي شغلي يكي از فوايد مهم مدل تجاري اوپن سورس ا. افزار در سطح جهان دارد

همه مي توانند به رايگان نسخه اي از اين محصول اوپن . را در نظر بگيريد WordPressمثال نرم افزار مديريت محتواي وردپرس با داشتن حجم عظيمي از پوسته . سورس را دريافت و روي هاست خود نصب كنند و وب سايت خود را مديريت كنند

ري از افراد و شركت هاي به همين دليل بسيا. ها و پالگين هاي رايگان باز هم براي وب سايت هاي حرفه اي كافي نيستسايت هاي نيرويابي و . كوچك به كار طراحي پوسته و پالگين براي وردپرس مشغول هستند و از اين راه پول در مي آورند

خيلي ها . كافيست سري به اين سايت ها بزنيد. كاريابي پر است از شغل هاي مربوط به طراحي پوسته و پالگين براي وردپرسوردپرس نمونه اي از ده ها . شي سازي و توسعه وردپرس بر اساس نيازهايشان به شما پول خوبي بدهندحاضرند براي سفار

CMS مدل . اوپن سورسي است كه باعث ايجاد فرصت هاي شغلي بسيار زياد براي طراحان و توسعه دهندگان وب شده استي را پيدا خواهيد كرد كه CMSه طوري كه كمتر جوابگو بوده، ب CMSتجاري اوپن سورس به خوبي در زمينه نرم افزارهاي

!موفق باشد اما اوپن سورس نباشد

Page 16: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

. و مظلوم است در حالي كه مدل تجاري اوپن سورس يك مدل بسيار موفق و سودآور در سطح جهان است، در ايران مدلي غير حرفه اينداشتن . اين مدل براي كسب درآمد استفاده نمي كندغير حرفه اي به اين معني كه در ايران كسي يا شركتي به صورت حرفه اي از

فرهنگ استفاده از نرم افزار، چه تجاري و چه اوپن سورس در ميان مردم عامي و حتي كاربران حرفه اي كامپيوتر در ايران يكي از داليل ايران در مورد مدل تجاري اوپن عدم آگاهي مديران و حتي متخصصان صنعت نرم افزار . مهم استفاده نكردن از اين مدل تجاري است

.سورس به عالوه دليل قبل باعث شده تا استفاده از اين مدل تجاري موفق در ايران كار مشكل و گاه غير ممكني باشد

در يكي از ابزارهايي كه. با فراگير شدن وب و وب سايت هاي اينترنتي، ابزارهاي گوناگوني براي توليد برنامه هايي مبتني بر وب عرضه شدزبان PHP. بوده است PHPاين چند سال اخير توانست قسمت اعظمي از بازار توليد نرم افزارهاي تحت وب را تسخير كند بي شك

اسكريپت نويسي ساده اي است كه شامل كتابخانه ها و توابع نقريباً كاملي براي استفاده در برنامه هاي تحت وب است و كمتر نيازي در توانست در اين چند سال عالقه مندان فراواني را جذب خود كند و پروژه هاي PHP. نتوان آن را رفع نمود PHPبا وب يافت مي شود كه

.به اين زبان نوشته شده اند وردپرسبسيار قدرمتند و معروفي همچون

PHP ال تغييرات زيادي كرده است و فريم ورك هاي بسياري براي هرچه سريع تر نوشتن برنامه هاي تحت از نسخه هاي اوليه تا به ح

به شما كمك مي كند تا وب سايت هاي خود را PHPيك فريم ورك . وب توسط شركت ها و افراد مختلف عرضه شده است

.سريع تر و مناسب تر از هميشه بسازيد

:و كاربردهاي آن PHPويژگي هاي زبان برنامه نويسي

. يكي از محبوبترين و قدرتمند ترين زبان هاي متن بازدنياست كه بيشتر در موارد وب و سرور ها استفاده ميشود PHP زبان برنامه نويسي .توسط آقاي لردورف ساخته شد 1994ميباشد در سال hypertext preprocessor اين زبان كه نام آن مخفف كلمه

PHP توسعه دهندگان به سراغ آن آمدند و تغييرات كوچك و بزرگي را در آن اعمال كردند ، البته زبان PHP بتدايي زبانبعد از ساختن ا

و پرل دارد و اين موجب شده هست تا برنامه نويسان بيشتر سراغ آن بروند و محبوبيت بيشتري نسبت به C شباهت زيادي به زبان هاي .ديگر زبان ها دارد

4آن 5ودر آخر ورژن 2000سال 4سال بعد و ورژن 2آن 3پي اچ پي منتشر شد و ورژن 2انتشار نسخه اول يك سال بعد ورژن بعد از منتشر شد و تا به حال ورژن جديد ديگري منتشر نشده است 2004سال بعد يعني

Page 17: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

php5كارايي زياد ووسعت بسيار) براي پايگاه داده(ن شي گرا زبا هايي مانند پشتيباني از كه آخرين ورژن اين برنامه است كه داراي ويژگي .آن است

.خواهند ديد 6البته به گفته ي خود سازندگان كاربران ويژگي هاي بسيار مهمي را در ورژن

ات زيادي اين زبان برنامه نويسي خدمت زيادي به كاربران اينترنت كرده است و از زماني كه اين زبان متولد شد در جامعه مجازي تغييرو مامبو هست كه شما هم MyBB انجام شد ، همچنين نرم افزار هاي تحت وب بسياري ساخته شد كه محبوبترين و مشهور ترين آنها

.ميتوانيد آنها را به رايگان دانلود كنيد و روي سايت خود نصب كنيد

به بعد شباهت آن بيشتر به زبان جاوا اسكريپت كشيده 5ه دارد ولي از نسخ C همانطور كه در قبل گفتيم اين زبان شباهت زيادي به زبان شده هست و باز محبوبيت بيشتري در بين برنامه نويسان پيدا كرد و اين باعث شده تا برنامه نويسان برنامه هاي قدرتمند خود را در كوتاه

.ترين زمان ممكن طراحي كنند

:برخي از ويژگي هاي اين زبان

دي از اسكريپت نويسي به گرافيكامكان تغيير نوع كاربر*

MySQL *امكان استفاده و اتصال به انواع پايگاه ها مانند

امكان اجرا بر روي اكثر سيستم عامل ها مانند ويندوز و لينوكس*

PHP برخي از فرم ورك هاي

Zend Framework : اين فريم ورك كه از طرف سازندگانPHP عرضه شده است، يكي از كاملترين فريم ورك هايPHP است .مثل سرويس هاي گوگل، 2.0داراي توابعي براي تامين امنيت وب سايت هاي شما و همچنين توابعي براي استفاده از سرويس هاي وب

.تمركز دارد 2.0رك بر روي ساخت وب سايت هاي كاربردي و وب سرويس ها با رويكرد وب اين فريم و. ياهو، آمازون و فليكر است

CakePHP : يكي از قدرتمند ترين فريم ورك هايPHP با روش استفاده آسان و پشتيباني از مدل هاي طراحي MVC وORM . اين .توسعه و كدنويسي را به حداقل ممكن مي رساند و كمك مي كند تا برنامه هاي تحت وب قدرتمندتري بسازيدفريم ورك زمان

Qcodo : فريم ورك اوپن سورس برايPHP 5 سعه دهندگان تو. كه به شما در ساخت وب سايت هاي كاربردي كمك بسياري مي كندبه جاي اينكه هفته ها وقت خود را صرف كارهاي تكراري بكنند، مي توانند به سادگي از توابع از پيش تعريف شده در اين فريم ورك بهره

Page 18: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

اين فريم ورك كامالً بر اساس برنامه نويسي شيء گرا پياده سازي شده است و پلت فرمي براي ايجاد سريع برنامه هاي تحت وب . ببرند .راهم مي كندف

Symfony :انتخاب اين فريم . يك فريم ورك قدرتمند داراي كالس هاي متعدد كه ساختن وب سايت هاي پيچيده را آسان تر مي كندبسياري از . ورك به شما كمك مي كند تا بدون دردسر برنامه هاي تحت وب خود را توسعه دهيد و آن ها را زودتر از انتظار بقيه آماده كنيد

.ن فريم ورك استفاده مي كننداز اي PHPتوسعه دهندگان

Seagull : فريم ورك اوپن سورس كه با مجوزBSD به توسعه دهندگان . ده استتوزيع شPHP امكانات و ابزارهاي مختلفي ارائه مي PHPهمچنين اين فريم ورك قابليت هاي خوبي براي توزيع برنامه هاي . كند تا برنامه هاي خود را هر چه سريع تر و كاراتر توليد كنند

.د و داراي اجتماع كاربري مناسبي استدر اختيار برنامه نويسان قرار مي ده) Local host(روي وب يا به صورت محلي

Solar : فريم وركي براي نوشتن سريع وب سايت هايي است كه باPHP 5 اين فريم ورك از مدل هاي طراحي . ساخته مي شوند .پشتيباني مي كند) Localization(تجاري پشتيباني مي كند و به صورت توكار از بومي سازي

Prado :ه ساختن برنامه هاي تحت وب به زبان فريم وركي است بر اساس كامپوننت كه شما را قادر بPHP با قابليت هاي برنامه .نويسي شيء گرا مي كند

Codeigniter : يكي از قدرتمند ترين فريم ورك هايPHP با كارايي باال است كه به توسعه دهندگان امكان ساخت وب سايت هايي .اين فريم ورك داراي آموزش هاي مناسب و مستندات بسيار است تا شما هر چه آسان تر نحوه ي كار با آن را ياد بگيريد. را مي دهد

AjaxAC :ولوژي فريم ورك اوپن سورس براي استفاده از تكنAjax در برنامه هاي مبتني برPHP است.

xAjax : كتابخانه اي از كالس ها براي استفاده از تكنولوژيAjax در زبانPHP با اين كتابخانه كالس مي توانيد با استفاده از . است

.قدرتمند و با بازدهي باال بنويسيد برنامه هاي تحت وب PHPو CSS ،HTMLجاوا اسكريپت،

همه آن ها سعي كرده اند با فراهم . نوشته شده اند PHPفريم ورك هاي بسياري تا به حال براي : PHPديگر فريم ورك هاي

شما بايستي با توجه به نيازهاي خود يكي از اين . آوردن توابع و كالس هاي الزم، زمان توسعه را براي برنامه نويسان به حداقل برسانندين فريم ورك ها در برنامه هاي تحت وب خود پس از مدتي كه از ا. فريم ورك ها را انتخاب كرده و سپس نحوه ي كار با آن را ياد بگيريد

.استفاده كنيد، متوجه كارايي و صرفه جويي در زمان و هزينه خواهيد شد

:كاربردهاي آن و ويژگي هاي زبان برنامه نويسي پيتون

Page 19: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

1990در سال (Guido van Rossum) نويسي سطح باال، شيءگرا و تفسيري است كه توسط گيدو ون روسوم پايتون يك زبان برنامه .طراحي شد

ها با زبانهاي تفسيري پرل، روبي، گرا است كه در ويژگي اين زبان از زبان هاي برنامه نويسي تفسيري بوده و به صورت كامل يك زبان شي .كند ال مشابهت دارد و از مديريت خودكار حافظه استفاده مي سي تاك و تي اسكيم، اسمال

2.5.2اين زبان ) 2008مارس (كنوني ٔنسخه. گردد افزار پايتون مديريت مي يافته است و توسط بنياد نرماي بازمتن توسعه پايتون پروژه .است

(CWI) در موسسه ملي تحقيقات رياضي و رايانه 1998يعني در كريسمس سال . پايتون در يك محيط آموزشي ايجاد و توسعه يافته است

بود و در زمان بيكاري خود بر روي پروژه شخصي خود يعني پايتون كار مي CWI پژوهشگر دردر آن زمان گيدو يك . در شهر آمستردامبراي مدتي نسبتاً طوالني پايتون توسط موسسه ملي تحقيقات و . منتشر شد 1991اولين نسخه عمومي از پايتون در ماه فوريه سال . كرد

تيم توسعه دهنده پايتون به آزمايشگاه 2000تا اينكه در سال . يافت سعه ميامريكا تو واقع در رستون اياالت متحده (CNRI) ابتكاراتنام پايتون از برنامه مورد عالقه سازنده آن يعني مونتي پايتون كه يك برنامه كمدي انگليس بود گرفته شده . هاي پايتون منتقل شدند

. استپشتيباني مي ... ايي چون وراثت، چند شكلي، سربار گزاري عملگر و شرفتهگرا است و از ويژگي هاي پي نويسي شي پايتون يك زبان برنامه

هاي نوشته شده در زبانهاي هاي پايتون كه لقب چسب را براي پايتون به ارمغان آورده امكان استفاده از كد ها و كالس يك از ويژگي. كند

. است پايتون عهده به اصلي بدنه نوشتن فقط و جدا كد قطعات چسباندن كار كه در حقيقت است جاوا پالس و پالس ديگري چون سيتوانيد متن آن و خود برنامه را به رايگان از اينترنت دريافت يا مي .هست(open source) باز نويسي رايگان و متن پايتون يك زبان برنامه

. در توسعه آن همكاري كنيد

مجازي ماشين . شود اجرا و همگرداني پردازشگري هر روي بر مجازي صورت به تواند مي شده نوشته سي قابل حمل چون پايتون با زبان

نصب آن روي پايتون كه ديگري افزار سخت و سيستم عامل هر يا مكينتاش يا لينوكس روي تغيير بدون سپس و بنويسيد مفسرويندوز (

. كنيد اجرا باشد

: مثال براي ( سيستمي هاي زبان و ) ال، اسكيم، پرل سي تي :براي مثال ( نويسي تفسيري هاي برنامه پايتون زباني چند رگه است كه از زبان

زباهاي قدرت و ها ويژگي و نويسي تفسيري هاي برنامه زبان كار راحتي و سادگي تمام بنابراين . شده مشتق ) و جاوا پالس، سي پالس سي

. داراست را پايين سطح

و اي كتابخانه توابع از مي توان يا و . كنيد استفاده پايتوندر و جاوا پالس، سي پالس سي شما مي توانيد قطعه از كد را در زباني چون

با برنامه نويسي معمولي هر زبان متفاوت مي ) ماژول(البته نوع اين نوع برنامه نويسي . كرد استفاده COM API چون هايي كامپوننت

) دروني سازي(مي توان از كد هاي پايتون در زبانهاي ديگر نيز استفاده كرد . باشد

Page 20: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

:و پيتون PHPمقايسه زبان

( جزو زبان هاي پركاربرد و قدرتمند در زمينه وب بوده و زبان پايتون نيز عالوه بر كاربردهاي فراوان ديگر آن php الزم به ذكر است زباندر زمينه وب نيز عليرغم (...ساخت بازي هاي كامپيوتري گرفته تا نرم افزارهاي موبايل و نرم افزارهاي دسكتاپ براي لينوكس و ويندوز و

زبان پايتون توسط ابرقدرت . بسيار قدرتمند ظاهر شده و پا به پاي ديگران در اين عرصه رقابت مي كند) خصوصا در ايران(زه وارد بودن تا .به طور گسترده اي مورد استفاده قرار گرفته است... هايي همچون ناسا، گوگل و

زمينه هاي مشترك

:مي باشند داراي ويژگي هاي زير php و python هر دو زبان

زبان هاي تفسيري، سطح باال و داراي انواع پويا مي باشند *

)توصيه مي شوند php براي استفاده از zend مگر زماني كه انواع محصوالت(متن باز هستند *

داراي پشتيباني توسط جوامع بزرگ توسعه دهنده *

)perl و java در مقايسه با(يادگيري آنها آسان است *

و جاوا ++c ،c وسعه آسان درامكان ت *

.اين زبانها بر روي اكثر پلتفرم ها بدون كامپايل مجدد قابل اجرا مي باشند. قابليت حمل باال دارند *

پشتيباني از تعداد متغيير آرگومان توابع *

قابليت آزادسازي آبجكت هاي فعال در ارائه رشته *

مقايسه دو زبان

:پايتون ندارددارد و php ويزگي هايي كه

، همراه با تعداد زيادي عالمت دالر و جفت گيومه Perl و C دستور زبان مشابه *

'do ... while' و حلقه 'switch' عبارت *

)تخصيص در پايتون فقط عبارت مي باشد(عملگرهاي تخصيص و افزايش كاهش *

(... : ... ? ...) عبارت سه تايي/عملگر *

نام تابع تابلو اسكيزوفرنيك از *

)عموما نصب شده(محيط مصلحتي *

Page 21: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

تغيير خصوصي، محفوظ و عمومي هم براي متدها و هم خواص *

تغيير انتزاعي و نهايي هم براي كالس ها و هم متدها *

اينترفيس ها *

:ندارد php دارد و Python ويزگي هايي كه

)نه فقط براي وب(زبان برنامه نويسي چندكاره *

ساختار بلوك به جاي استفاده از كروشه از تورفتگي خطوط استفاده مي شودبراي نمايش *

فضاهاي نام و ماژول ها *

هسته كوچك *

دستور زبان بسيار روشن، مختصر و متعامد *

pydoc و docstrings زباني خود مستند توسط *

پيش فرض آرگومان هاي كليدواژه براي توابع و متدها، پشتيباني آسان از آرگومان هاي *

صحيح 'first class' شي گرايي صحيح و توابع و كالس هاي *

كالس ها به صورت گسترده اي در كتابخانه هاي استاندارد استفاده شده است *

مفهوم صفات خصوصي *

وراثت چندگانه *

مديريت فايل شي گرا *

زنجيري متد *

خودكاوي عالي *

)آور هستندرنج PHP مراجع در! (همه چيز مرجع است *

)براي متغييرها و چيز ديگري براي اعضاي آرايه استفاده مي شود 'unset' از PHP در. (براي همه ي انواع داده 'del' يك عبارت *

case sensitivity* توابع(سازگار PHPحساس به حروف نيستند ولي متغيرها هستند ،(

دستور زبان برش آرايه ساده *

lambdas * ساختارهاي برنامه نويسي تابعيو ديگر builtin

تكرار كننده ها *

ساختار پردازش استثنا *

سربارگذاري عملگر *

SWIG يكپارچه سازي *

Page 22: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

threading*

profiler* عالي

IDE و debugger چندين *

بزرگ GUI پشتيباني از همه ي فريم ورك هاي * *

بين المللي سازي قدرتمند و پشتيباني از پونيكد *

جاافتادگي، ثبات و سازگاري صعودي *

مي php وارد كردن ماژول ها ايمن تر از ضميمه كردن كدها ازروي متن در -- تمايل به رهبري برنامه هاي مقياس پذير خيلي بيشتر * متغييرهاي عمومي به منظور تبادل اطالعات استفاده نمي شوند: باشد

:د آنو كاربر javaويژگي هاي زبان برنامه نويسي

توزيع شده ، تفسير شده ، قدرتمند ، ايمن ، با معماري خنثي ، قابل حمل ، با عملكرد سطح باال چند نخ جاوا يك زبان ساده ، شي گرا ،

. كشي شده و پويا است

Sun حقيقت اين است كه تصديق ميكند كه به طور قطع اين كلمات رشته هايي از واژه هاي متداول در زبان برنامه نويسي هستند ، اما . دهند اين واژه ها به طور ماهرانه اي خصوصيات اين زبان را شرح مي

. حال به برخي از خصلت هاي جاوا در پشت اين واژه ها ميپردازيم

Object Oriented: شي گرا

جاي فكر كردن به قسمت هاي رويه برنامه براي يك برنامه نويس اين به اين معنا است كه به . جاوا يك زبان برنامه نويسي شي گرا است .، بايد به كاربرد داده ها و روش هايي كه روي آن داده ها عمل ميكنند ، توجه شود

عادت كرده ايد ،ممكن است دريابيد كه به هنگام استفاده از جاوا مجبور به تغيير در روش و C اگر شما به برنامه نويسي با اعالن رويه در . هنگامي كه فهميديد اين الگوي جديد چقدر قدرتمند است ، به سرعت با آن هماهنگ ميشويد. تان هستيد چگونگي برنامه

همراه بودن داده ها و متد . در يك سيستم شي گرا ، يك كالس مجموعه اي از داده ها و روش هايي است كه روي آن داده عمل ميكنندها به صورت سلسله مراتبي مرتب شده اند ، بنابر اين يك زير كالس ميتواند رفتار هايي كالس. ها رفتار و حالت يك شي را بيان مي دارد

. يك كالس سلسله مراتبي هميشه يك كالس ريشه دارد كه كالسي است با رفتار هاي كامال عمومي. را از كالس باالتر به ارث ببرد

ه هايي مرتب شده اند و شما مي توانيد از آنها در برنامه ي خود استفاده جاوا به همراه دسته ي گسترده اي از كالس هايي است كه در بست : براي مثال جاوا كالس هايي را ايجاد ميكند كه . كنيد

the)،كالس هايي كه عمليات ورودي و خروجي را به عهده دارند (the java.awt package) سازند بخش هاي رابط گرافيكي را مي

Page 23: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

java.io package) هايي كه از شبكه پشتيباني ميكنند و كالس (the java.net package ) .

. به عنوان ريشه كالس سلسله مراتبي جاوا انجام وظيفه ميكند (in the java.lang package)يك شي كالس

ارقام ابتدايي ، . ستند اكثر چيز ها در جاوا اشيا ه. طوري طراحي شده است كه از همان ابتدا به صورت شي گرا باشد ++C جاوا بر خالفحتي رشته ها هم در جاوا به وسيله اشيا حاضر ميشوند ،همان طور كه ساختمان هاي . كاراكترها و مدل هاي منطقي تنها استثناء ها هستند

برنامه هاي جاوا تمام .يك كالس يك واحد پايه براي كامپايل و اجرا شدن در جاوا است . مهم ديگر اين زبان ، مثل نخ ها احضار ميشوند . متشكل از كالس ها است

باشد و خاصيت هاي آن را داشته باشد ، اما هنگامي كه با آن كار كنيد ++C درست است كه جاوا طوري طراحي شده است كه مثل . خواهيد فهميد كه بسياري از پيچيده گي هاي آن زبان را از بين برده است

اگرچه تركيب و نحوه . تما الزم است كه ساختار هاي شي گرايي در جاوا را به دقت مطالعه كنيد هستيد ح ++C اگر شما يك برنامه نويس . اما رفتار هاي آن خيلي مشابه نيست است ، ++C دستورات آن تقريبا شبيه

Interpreted: تفسير شده

براي . كامپايلر جاوا به جاي ايجاد كد محلي ماشين ، كد بايتي براي ماشين مجازي جاوا ايجاد ميكند . جاوا يك زبان تفسير شده است به دليل اينكه كد هاي بايتي جاوا به نوع .اجراي دقيق برنامه ، از مفسر جاوا براي اجراي كد هاي بايتي كامپايل شده استفاده ميشود

. را دارند ، اجرا شوند JVM (Java Virtual Machine) ستگي ندارند ، برنامه هاي جاوا ميتوانند روي هر نوع كامپيوتري كهكامپيوتر ب

اگر جاوا تنها يك مرحله لينك داشت ، فقط بارگذاري . در محيط تفسير شده ، مرحله لينك استاندارد توسعه برنامه از ديد كاربر پنهان است كه اين خصوصيت با . شد كه يك پردازش نموي سبك وزن است كه در زمان اجرا مشاهده ميشود يط پردازش ميكالس جديد به مح

. در تضاد است ++C يا C اجرا ي آرام و طاقت فرساي زبان هايي مانند-لينك-چرخه كامپايل

Architecture Neutral and Portable: معماري خنثي و قابل حمل

ه هاي جاوا در فرمت كد بايتي با معماري خنثي كامپايل شده اند ، برنامه كاربردي جاوا ميتواند در هر سيستمي اجرا به دليل اينكه برنام .شود

اين مسئله تقريبا براي كاربرد هاي توزيع سده روي . البته با اين شرط كه آن سيستم توانايي پياده سازي ماشين مجازي جاوا را داشته باشد . اما روش معماري خنثي براي كاربرد هاي بر مبناي شبكه مفيد است. گر شبكه هاي ناهمگن مهم است اينترنت و يا دي

به عنوان يك توسعه دهنده برنامه هاي كاربردي در بازار نرم افزاري امروز ممكن است بخواهيد مدل هاي كاربردي خود را توسعه دهيد ، و Pc روي Unix ،Windows با وجود گونه هاي مختلف.اجرا شود Unix عامل، مكينتاش و سيستم Pc به طوري كه بتواند روي

اگر شما برنامه تان را در جاوا بنويسيد . مكينتاش قوي جديد ، رفته رفته توليد نرم افزار براي همه انواع اين كامپيوتر ها سخت مي شود . ميتواند روي همه ي اين كامپيوترها اجرا شود

Page 24: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

ه بودن جاوا وتعريف يك استاندارد ، معماري خنثي داشتن و فورمت كد بايتي آن از بزرگترين داليل قابل حمل بودن در حقيقت تفسير شد . آن به شمار مي آيند

براي . با اطمينان حاصل كردن از اينكه هيچيك از جنبه هاي وابستگي اجرايي زبان را ندارد اما جاوا باز از اين هم بيشتر گام برميدارد ،تفاوت دارد ، براي مثال هريك از انواع صحيح مي تواند C ثال جاوا به طور صريح اندازه هريك از انواع داده را تعريف ميكند كه اين بام

. بيت طول داشته باشد 64يا 32-16بسته به نوع كامپيوتر

، جلوگيري از چند خاصيت وابسته به نوع هنگامي كه به صورت تكنيكي امكان نوشتن برنامه هاي غير قابل حمل در جاوا فراهم شد . توليد شده و به طور قطع قابل حمل نوشته شده است ، آسان است API كامپيوتر كه توسط جاوا

برنامه نويسان فقط براي . يك برنامه جاوا به توليد كنندگان نرم افزار كمك ميكند تا از قابل حمل بودن كد هايشان اطمينان حاصل كنند را زنده نگهدارند و آن شعار اين Sunز دام غير قابل حمل بودن برنامه احتياج به يك تالش ساده دارند كه شعار تجارتي شركتپرهيز ا : است

. « يك بار بنويس ، همه جا اجرا كن »

Dynamic and Distributed: پويا و توزيع شده

سپس اين كالس هاي بارگذاري شده ي . ني روي مفسر جاوا بارگذاري شود هر كالس جاوا ميتواند در هر زما. جاوا يك زبان پويا است كالس ها در جاوا با كالس.حتي كتابخانه كد هاي محلي ميتواند به طور پويا بارگذاري شود . پويا ميتوانند به صورت پويا معرفي شوند

Class اين خصوصيت در جاوا .مان اجرا اطالعاتي بدست بياوريد فراخواني ميشوند ؛ شما ميتوانيد به طور پويا در مورد يك كالس در زكه به برنامه ساز امكان ( Application Program Interface) اضافه شده API با وجود بازتاب. به طور درستي موجود است 1-1

. ميدهد كه با برنامه از طريق يك برنامه كاربردي ديگر ارتباط برقرار كند

به طور ساده اين به اين معنا است كه اين زبان پشتيباني سطح بااليي براي شبكه به . زبان توزيع شده نيز خوانده ميشود جاوا حتي با نام ، خواندن فايل هاي دوردست را به همان Java.net و كالس هاي مرتبط با آن در بسته ي URL براي مثال كالس. وجود مي آورد

RMI ، احضار روش كنترلي 1-1به طور مشابه در جاوا . ستسادگي خواندن فايل هاي محلي كرده ا

(Remote Method Invocation ) ،API به يك برنامه جاوا اجازه ميدهد كه روش هايي از اشياء دور دست جاوا را به همان صورتيين كه شامل آدرس مقصد و مسير جرياني جاوا حتي از سيستم شبكه اي سطح پاي.( كه اگر آن اشياء محلي بدند آنها را ميخواند ، بخواند

). كه توسط سوكت ها متصل شده است ، نيز پشتيباني ميكند

اين خصوصيات با هم اين . طبيعت توزيع شده ي جاوا زمانيكه با امكانات پوياي بارگذاري كالس همراه ميشود ، واقعا درخشنده است اين چيزي است كه در هنگام بارگذاري و اجراي . را از اينترنت بارگذاري و اجرا كند امكان را براي مفسر جاوا به وجود مي آورند كه كد ها

تصور كنيد يك . اما داستان پيچيده تر از اين هم ميتواند باشد . يك برنامه كاربردي از اينترنت توسط مرورگر وب ، اتفاق مي افتد ز اين برنامه پرسيده ميشود كه چند نوع از داده هايي را كه قبال هرگز وارد وقتي ا. پردازشگر كلمه چند رسانه اي در جاوا نوشته شده است

Page 25: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

نشده را نمايش دهد ، ممكن است به طور ديناميكي يك كالس را كه ميتواند داده را شناسايي كند ، از شبكه بارگذاري كند و بعد كالس برنامه اي مانند اين از منابع توزيع . ه طور ديناميكي بارگذاري ميكندديگري را كه بتواند داده را از درون يك پوشه تركيبي بخواند ، باز ب . شده در شبكه براي رشد و سازگاري خودكار كاربران استفاده ميكند

Simple: ساده

. ن را ياد بگيرندطراحان جاوا سعي در اين داشتند تا زباني بوجود بياورند كه برنامه نويسان بتوانند به سرعت آ. جاوا يك زبان ساده است

هدف ديگر طراحي اين زبان اين بود كه به منظور راحتي انتقال آن ، آن را طوري . بنابراين تعداد ساختار هاي اين زبان تقريبا كم است كه جاوا از هستيد ، خواهيد فهميد ++C يا C اگر شما يك برنامه نويس. طراحي كنند كه براي عده ي زيادي از برنامه نويسان آشنا باشد

. استفاده ميكند ++C و C بسياري از ساختار هاي

را در آن حذف ++C و C براي اينكه اين زبان را هم به طور ساده و هم آشنا و ملموس و هم كوچك نگه دارند بسياري از خصوصياتيي بودند كه به ندرت در برنامه استفاده مي اينها خصوصياتي بودند كه باعث مي شدند برنامه نويسي ضعيفي صورت بگيرد يا آنها. كردند . در مواقع نياز استفاده مي كند break , continue استفاده نمي كند ، در عوض از دستورهاي goto براي مثال جاوا از دستور. شدند

ل كه جاوا يك زبان شي گرا است به اين دلي. را هم حذف كرده است C استفاده نمي كند و پردازشگر (header files)جاوا از سر فايل هارا هم ++C جاوا حتي بارگذاري مجدد و خواص چندگانه ارث بري از. از آن برداشته شده است struct , union مثل C ، ساختار هاي

از بيشترين اشاره گر ها يكي . شايد مهمترين پارامتر ساده بودن جاوا عدم استفاده اين زبان از اشاره گر ها باشد . حذف كرده است چون جاوا ساختمان ندارد و آرايه ها و رشته ها اشياء آن هستند ، بنابراين احتياجي به . هستند ++C , C موجوديت هاي دردسرساز در

. سي به محتواي موجود در يك آدرس را براي شما انجام ميدهدرجاوا به طور خودكار آدرس دهي و دست.اشاره گر نيست

جمع آوري آشغال فرايندي است براي (Garbage Collectin).حافظه اي را هم به طور خودكار جمع آوري ميكند جاوا حتي زباله هايبلوك هايي از حافظه كه زماني به فايل ها اختصاص داشتند اما مدتي است كه از آنها استفاده نمي شود . ترميم خودكار حافظه انباشته شده

د استفاده قرار ميگيرند ممكن است حركت داده شوند تا از به هم پيوستن فضاهاي خالي حافظه بلوك و بلوك هايي از حافظه كه هنوز مور . هاي خالي بزرگتري بدست آيد

Robust: قدرتمند

تقريبا .جاوا هنوز هم به طور قطع نرم افزار ها را تضمين نميكند . جاوا براي نوشتن نرم افزارهاي قدرتمند و بسيار ايمن ساخته شده استهنوز هم امكان نوشتن برنامه هاي مشكل ساز در جاوا وجود دارد ، هرچند كه جاوا برخي از انواع مشخص خطاهاي برنامه نويسي را حذف

. كرده كه به طرز چشمگيري نوشتن نرم افزار هاي ايمن را آسان تر كرده است

جاوا بسيار قويتر از. ت و خطاهاي تايپي را در زمان كامپايل مي دهد كه اجازه چك شدن مشكال جاوا يك زبان تايپ شده قدرتمند است ،

C++ تايپ شده است كه بسياري از خصوصيات انعطاف پذير در زمان كامپايل را از C مخصوصا هنگام اعالن توابع . به ارث برده است

Page 26: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

اين مسئله مارا از اينكه كامپايلر ميتواند . ي نميكند پشتيبان C جاوا به مدل اعالن صريح احتياج دارد ، زيرا كه از مدل اعالن صريح. . مسئله اي كه منجر به ايجاد برنامه هاي ايمن تري ميشود. خطاهاي زمان اعالن را بدست آورد ، مطمئن ميكند

حتي قدرت جاوا را هم اين ويژگي. يكي از چيزهايي كه باعث شده كه جاوا ساده باشد عدم وجود اشاره گر ها ومحاسبات بر روي آنها است . با از ميان بردن يك كالس سراسري اشاره گر افزايش ميدهد

با از بين بردن .به طور مشابه تمام دسترسي به آرايه ها و رشته ها در زمان اجرا چك مي شوند تا از قطعي بودن آنها اطمينان حاصل شود شياء از نوعي به نوع ديگر هم در زمان اجرا كنترل ميشود تا از مجاز بودن آن امكان دوباره نويسي حافظه و داده هاي هرزه ، تعويض نقش ا

. اطمينان حاصل شود

چيزي كه از خطاهاي خطر . سرانجام زباله جمع كن خودكار جاوا بسياري از عمليات پاكسازي مرتبط با معماري حافظه را راه اندازي ميكند . گيري ميكندساز مرتبط با تخصيص و آزاد سازي حافظه جلو

Secure : ايمن

اين ويژگي مخصوصا به خاطر طبيعت توزيع شده ي آن بسيار مهم . يكي از داليل پرطرفدار بودن جاوا اين است كه يك زبان ايمن است را شدن روي بدون وجود امنيت شما قطعا نميخواهيد كه يك كد را از يك سايت تصادفي اينترنت بارگذاري كنيد و به آن اجازه اج.است

جاوا به صورت ايمن طراحي . اين دقيقا همان چيزي است كه مردم هرروز با يك كد جاوا انجام ميدهند . كامپيوتر خودتان را هم بدهيد شده و چندين اليه كنترل امنيت به وجود مي آورد كه شما را در برابر كد هاي خطرساز محافظت مي كنند و به كاربر اجازه ميدهد كه

. ه هاي ناشناخته را با خيال راحت اجرا كندبرنام

يا همان طور كه ديديم ، برنامه جاوا نميتواند اشاره گر ها را به حافظه يا آرايه هاي سرريز يا حافظه خواندني خارج از محدوده يك آرايه دومين راه دفاع در برابر كد . رساز است اين خصوصيت يكي از اصلي ترين وسايل دفاع جاوا در برابر كدهاي خط. رشته اشاره ، اشاره دهد

هاي خطرساز ، پردازش كدهاي بايتي به صورت قابل تصديق و تاييد است كه مفسر جاوا به روي هر كدي كه در حال بار گذاري باشد ته سرريزي يا اين مراحل تاييد از اينكه كد به صورت درستي ساخته شده اطمينان حاصل ميكنند ، كه براي مثال پش. اعمال ميكند

. زيرريزي نداشته باشد ، يا شامل كد هاي بايتي غير مجاز نباشد

اليه اي كه در اينجا ما را به طور ايمن . استفاده كنند كدهاي بايتي خراب يا خطرساز ممكن است از ضعف هاي اجرايي در مفسر جاوا سوءته در يك جعبه شني قرار ميگيرند جايي كه ميتوانند به صورت كدهاي ناشناخ: است (Sand box) محافظت ميكند ، مدل جعبه شني

. ايمن اجرا شوند ، بدون اينكه هيچ صدمه اي به بقيه اجزاء يا محيط جاوا بزنند

چند محدوديت در مورد كاري كه ميتواند انجام دهد ، وقتي يك برنامه كاربردي يا ديگر كدهاي ناشناخته در جعبه شني در حال اجرا است ،در جعبه شني . واضح ترين اين محدوديت ها اين است كه هيچ دسترسي به هيچ يك از فايل هاي محلي سيستم وجود ندارد . وجود دارد

اين مدل در ابتدا از اينكه سيستم هاي امنيتي را نصب . محدوديت ديگري هم وجود دارد كه به وسيله كالس مديريت امنيت اعمال ميشود اگر . مطمئن ميشود ، چرا كه همه كالس هاي جاوا نياز به عمليات حساسي مانند دسترسي به سيستم فايل را دارند كرده ايد يا نه ،

Page 27: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

را مي فرستد و عمليات صورت مدير امنيت مورد استثناء فراخواني به وسيله يك كد ناشناخته به صورت مستقيم يا غير مستقيم انجام شد ، . نمي گيرد

يك راه حل ممكن ديگر براي مشكالت امنيتي وجود دارد ، به وسيله ضميمه كردن يك امضاء ديجيتالي به كد 1-1 و سرانجام در جاوااگر شما اعتماد خود را به يك شخص يا يك سازمان مشخص كرده . جاوا كه اصل آن كد ميتواند به صورت پنهاني و نهفته ساخته شود

حتي زمانيكه در حال بارگذاري شدن در شبكه . ايمن و مطمئن است روي آن قرار دارد ، باشيد ، كدي كه امضاء آن هويت مورد اعتماد . است و ممكن است حتي بدون جلوگيري توسط جعبه شني اجرا شود

High Performance: عملكرد سطح باال

به اندازه 1-0گفته ميشود كه جاوا . نخواهد بود C جاوا يك زبان تفسير شده است ، بنابر اين هرگز به سرعت زبان كامپايل شده اي مثل C بنابراين ممكن است عاقالنه باشد اينكه بگوييم كد. دارد 1-1تقريبا سرعتي دو برابر جاوا 1-1جاوا . كند تر است Cبرابر از 20

ه خاطر اين موضوع مايوس شويد ، آگاه باشيد اما قبل از اينكه ب. برابر سريع تر از كد هاي تفسير شده ي جاوا اجرا ميشود 10كامپايل شده ، برنامه GUI (Graphical User Interface ) كه اين سرعت بيشتر از آن چيزي است كه براي برنامه هاي پرسرعت ، كاربردهاي

ري اعمال كند و يا هاي برمبناي شبكه ، جايي كه برنامه كاربردي معموال آماده براي اجرا شدن است ، انتظار براي كاربر كه يك دستو . انتظار براي دريافت از شبكه ، الزم است

وا به عالوه قسمت هايي كه به سرعت هاي باال نياز دارند ، كه كارهايي از قبيل الحاق رشته ها و مقايسه را انجام ميدهند ، با كد محلي جا . اجرا ميشوند

نيز هستند كه ميتواند كدهاي " just in time " مل كامپايلر هاي فقط در زمانعالوه بر اين كارايي ، بسياري از مفسر هاي جاوا اكنون شافرمت كد بايتي جاوا با اين كامپايلر هاي در زمان در مركز كافي و . در زمان اجرا به كد ماشين ترجمه كند CPUبايتي جاوا را براي هر نوع

ادعا ميكند كه كارايي كد هاي بايتي كه به كد ماشين تبديل شده اند ، Sun در حقيقت. مناسب است و انصافا كدهاي خوبي توليد ميكند .است ++C و C تقريبا به خوبي كارآيي آن در

اگر شما خواهان اين هستيد كه قابل حمل بودن كد ها را قرباني بهبود در سرعت آن كنيد ، ميتوانيد بخش قابل توجهي از برنامه خود را در

C و C++ روش هاي مخصوص جاوا براي مشترك كردن با اين كد محلي جاوا استفاده كنيدبنويسيد و از .

Multitbreaded: چند نخ كشي شده

. شبكه اي ، مثل مرورگر وب ، تصور اينكه چند چيز بتوانند به طور همزمان اجرا شوند ، آسان است GUI در يك برنامه كاربردي بر مبناينكه دارد يك صفحه وب را ميخواند به يك كليپ صوتي گوش دهد و همزمان در پس زمينه مرورگر يك يك كاربر ميتواند همزمان با اي

. عكس را بارگذاري كند

پشتيباني ميكند و ميتواند ) گاهي پردازش سبك وزن خوانده ميشود(جاوا يك زبان چندنخ كشي شده است ، كه از چندين رشته اجرايي

Page 28: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

ز مزيت هاي چندنخ كشي شده اين است كه عملكرد سطح بااليي براي كاربردهاي گرافيكي براي كاربر يكي ا . چندين كار را انجام دهد . فراهم ميكند

جاوا برنامه نويسي با نخ ها را بسيار آسان تر . كار كنيد ، ميدانيد كه كمي مشكل است ++C و C اگر شما سعي كرده ايد كه با نخ ها دريك كالس بوجود آورده است jana.langبسته . زبان درون ساخته شده اي كه از نخ ها پشتيباني ميكند كرده است ، با به وجود آوردن

. كه از روش هايي براي شروع و پايان يك نخ ، و مرتب كردن ترتيب گره ها در ميان چيز هاي ديگر ، پشتيباني ميكند

اين كلمات كليدي عالمت گذاري بخش . فاده از كلمات كليدي مطابق شده حتي دستورات زبان جاوا از نخ ها پشتيباني ميكنند ، كه با است . هاي كد يا تمامي روش هايي را كه بايد فقط با يك نخ در يك زمان اجرا شوند را به شدت آسان كرده است

براي مثال هر برنامه . ها استفاده ميكند به دليل اينكه جاوا استفاده از نخ ها را بسيار ساده ميكند ، كالس جاوا در شماري از جاها از اين نخ . كاربردي كه انيميشن اجرا ميكند ، از نخ ها استفاده كرده است

به طور مشابه جاوا از برنامه هاي نا همگام ، ورودي ها و خروجي هاي بالك نشده با اخطاري به وسيله سيگنال ها يا وقفه ها پشتيباني . نخ بسازيد كه روي هر كانال ورودي خروجي كه با آن كار ميكنيد بالك شده باشدنميكند ، در اين صورت شما بايد يك

:پلت فرم دات نت و ويژگي هاي آن

( ماهيت يكسان . را ارائه مي نمايد XMLفريمورك دات نت ، فونداسيون الزم بمنظور ايجاد و اجراي برنامه ها و سرويس هاي وب

يك را از طريق ) XMLبرنامه هاي ويندوز ، وب ، سرويس هاي وب ( تمامي برنامه ها باطفريمورك دات نت ، امكان ارت )يكدست

: فريمورك دات نت شامل موارد زير است .، فراهم مي نمايد و كدهاي نوشته ابزارها مجموعه از

CLR)Common Language Runtime ( يا همانRuntime . Runtime در . ، مسئوليت رسيدگي به سرويس ها را برعهده داشته و شامل يكپارچگي زبانها ، امنيت و مديريت حافظه است

. ويژگي هاي الزم و مورد نيازرا با هدف تسهيل در پياده سازي، ارائه مي نمايد Runtimeزمان پياده سازي ، كتابخانه هاي كالس)Class - Libraries (

الس ، امكان استفاده مجدد از كدها براي اكثر عمليات متداول نظير دستيابي به داده ها ، پياده سازي سرويس ابخانه هاي كتك . ، فرم هاي وب و يا ويندوز را فراهم مي نمايد XMLهاي وب

: نت معماري دات

Page 29: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

وترهاي شخصي و موبايل كامپيوترها دهد تا براي كامپي نويسي در اختيار ما قرار مي نت امكانات متنوعي را براي برنامه داتها را با استفاده از استانداردهايي همچون ها و دستگاه نت اين است كه برنامه از مزاياي دات .هاي قدرتمندي بنويسيم سيستمXML ،HTTP ،SOAP سازد يكپارچه مي.

هاي مختلف و ها را در پروسه دهد برنامه سازد كه به ما اجازه مي دور را براي ما فراهم مي نت زيربناي كنترلي از راه مچنين داته .جا سازيم جابه HTTPروي كامپيوترهاي مجزا اجرا كنيم و اطالعات را با استفاده از باينري و پروتكل

:هد، عبارت است ازد در اختيار ما قرار مينت ابزارهايي كه دات

ها سرويس وب -

NET Server Infrastructure-

Smart Clientافزارهاي نرم -

Visual Studio .NET-

NET Framework. نت است هاي دات در حقيقت ساختار زيربنايي براي ساختن برنامه.

نت ابتدا كالس اصلي آن را در داتاي براي ساخت برنامه. مدلي شيءگرا است .NET Frameworkنويسي مدل برنامه .سازيم مي

نكته مهمي كه در اينجا بايد به آن اشاره نمود اين است كه . دهيم سپس عملكرد آن را در قالب متدهاي آن كالس قرار مي تغيير يابد VB.NET تواند به راحتي به نوشته شده است، مي C#.NETكالسي كه مثالً با كدهاي

Page 30: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

ECMA ياEuropean Computer Manufactures Associationهايي براي اين تبديل ، زبان عمومي، شامل نقشاز آن . تعيين كرده است Common Language Runtimeيا CLR، را به نام Interoperabilityشدن كدها و قابليت

تبديل Intermediate Languageيا ILهماهنگ هستند، موقع كامپايل به كدهايي به نام CLRجايي كه كدهايي كه با توانند به كدهاي سازگار هستند، مي CLRهايي كه با كدهاي برنامه). شوند و اين كدها هستند كه در واقع اجرا مي(شوند مي

.شود هماهنگ هستند تبديل مي CLRهايي كه با ديگر زبان

:هماهنگ هستند، عبارتند از CLRهايي كه با زبان

- Microsoft Visual Basic.NET

- #Microsoft Visual C

- Microsoft Visual C++.NET

- Microsoft Visual J# .NET

.معرفي شده است ECMAالمللي توسط عنوان زبان استاندارد بين به C# ها شايان ذكر است كه در بين اين زبان

Microsoft Intermediate Languageيا MSILام شوند، همه به كدهاي مياني به ن ها نوشته مي كدهايي كه با اين زبان

.شوند تبديل مي

هاي ديگري كه به زبان متفاوت تواند با برنامه توان با هر يك از زبان هاي باال برنامه را آماده كرد و اين برنامه مي پس مي .ديگري نوشته شده است، سازگار باشد

Side by Side Executionدهد به نام نت در اختيار ما قرار مي كه معماري داتً بيان شد يكي از امكاناتي طور كه قبال همان

هاي چندتايي از ها نسخه توانند با استفاده از اسمبلي نويسان مي ورك برنامه نت فريم معنا كه با استفاده از دات بدين. معروف است .يك برنامه را در يك سيستم داشته باشند

.هستند) مسئول نگهداري اطالعاتي همچون نام و نسخه برنامه) Metadataو ILها شامل كدهاي اسمبلي

CLR در حقيقت با استفاده ازMetadata تواند نيازهاي برنامه را پيدا كند و به ما هاي برنامه مي آوري اطالعات نسخه و جمع .اجرا كنيم Side By Sideهاي مختلف از يك برنامه را به صورت اجازه دهد نسخه

كنند و با نت عمومي هستند را مشخص مي هايي كه در داتTypeها در حقيقت كتابخانه كالس CLRها و كتابخانه كالس XMLو Windows Forms ،Web Formsهاي گوناگون از قبيل توانند برنامه نويسان مي ها برنامه استفاده از اين كالس

Page 31: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

Web Serviceها را تهيه كنند.

را كنترل ... ها و كند و امنيت، صحت نوع داده را اجرا مي ILهايي است كه كدهاي شامل كامپوننت CLRاز طرف ديگر، قسمت اجرا شوند، CLRو اگر خارج از Managed Codeشوند را اصطالحاً اجرا مي CLRكدهايي كه درون . كند مي

Unmanaged Code نامند مي.

نت زبان مشترك در دات

ايجاد محيط اجرايي برنامه و ارايه CLRكار اصلي . نت است دات ورك يكي از اجزاي مهم فريم CLRطور كه اشاره شد همانكنند تا بتوانند محيطي زيربنايي در دائماً با همديگر در ارتباط هستند و كار مي CLRدر واقع اجزاي . ها است سرويس به برنامه

برنامه، كامپايل كردن و اجراي آن كدها ILها لودكردن كدهاي كار اصلي اين كامپوننت. نت براي اجرا شدن مهيا سازند دات .است

:عبارتند از CLRهاي كامپوننت

ها در حين اجراي برنامه كردن كالس Loadبراي Class Loaderها يا لودكننده كالس -

Native Codeبه MSILكدهاي كننده كامپايلر تبديل -

.كه مسئول مديريت كدها در زمان اجراي برنامه است Code Managerمدير كدها يا -

- GB ياGarbage Collector براي مديريت حافظه

موتور مديريت امنيت در سيستم -

كننده نوع پارامترها چك -

ها Threadكننده پشتيباني -

ها Exceptionمديريت -

سيستم (debug) زدايي موتور اشكال -

- COM Marshaler هاي نت و برنامه هاي دات براي مديريت تبادل اطالعات بين برنامهCOM

Base Class Library-

.نوشته شود CLS-Compliantو .NETهاي اجرا شود، بايد به يكي از زبان CLRكه يك برنامه بتواند در براي اين

.كند تبديل مي Metadataو MSILنت اين كدها را به كدهاي كامپايلر دات

.شود ها مي شدن و چگونگي فراخواني متدها در كالس اين كدها شامل اطالعاتي از قبيل نحوه لود شدن، ذخيره

.نيز هست... دستورات خاصي براي كار با عمليات رياضي، چگونگي مديريت خطاها و همچنين شامل MSILكدهاي

Page 32: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

نت مديريت خودكار حافظه در دات

هاي اجرايي نت رويه در دات. شود ها استفاده مي نت مديريت خودكار حافظه است كه موقع اجراي برنامه يكي از مزاياي داتشود، ولي به استفاده مي Managed Execution Process يا MEPها نامهشوند و به اصطالح موقع اجراي بر مديريت مي

چيست؟ MEPراستي

MEP همچنين . كنند ها حافظه را به صورت خودكار مديريت مي هايي هستند كه در لود شدن و اجراي برنامه در حقيقت پروسهدر واقع شامل كدهاي MEP .كنند را ارايه مي، امنيت و مديريت خطاها Type Safetyهاي ديگري مانند چك كردن سرويس

.است (Managed Data) و اطالعات مديريت شده (Managed Code) مديريت شده

.وجود دارند exeهاي اجرايي در فايل metadataشوند و به صورت ذخيره مي MSILنت اين اطالعات در كدهاي در دات

Managed Data توسطGC ياGarbage Collector گردند و موقعي كه نيازي نيست از حافظه به حافظه منتقل مي .شوند برداشته مي

Managedدسترسي داشته باشند، Unmanaged Dataو Managed Dataتواند به مي Managed Codeاگرچه

Data فقط از طريقManaged Code قابل دسترسي است.

از زبان هاي مايكروسافت مثل سي شارپ و . مي دانيد كه زبان هاي برنامه نويسي مختلفي براي برنامه نويسي در اين محيط وجود داردبرنامه نويسان را قادر مي سازد تا به زبان مورد Python for .NETو y.NETRubويژوال بيسيك گرفته تا زبان هايي همچون

.عالقه ي خود براي اين پلت فرم برنامه بنويسند

طراحي و Farsi.NETرم دات نت وجود دارد، به تازگي زباني كامالً فارسي به نام در ميان تعداد زيادي زبان برنامه نويسي كه براي پلت ف

دستورات . تحت دات نت را به زبان كامالً فارسي به برنامه نويسان مي دهد پياده سازي شده است كه امكان ايجاد برنامه هاي شيء گرايدر واقع فارسي دات . شوند و قواعد آن بسيار شبيه زبان سي شارپ است فارسي دات نت كامالً بايد به زبان فارسي و از راست به چپ تايپ

نت طوري پياده سازي شده است كه ابتدا به زبان سي شارپ ترجمه مي شود و سپس با استفاده از كامپايلر سي شارپ به فايل اجرايي .مشاهده مي كنيد Farsi.NETدر عكس زير نمونه برنامه ي ساده اي را به زبان . تبديل مي گردد

Page 33: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

اين نرم افزار قدرتمند داراي قابليت . محيط توسعه مايكروسافت براي نرم افزارهاي مبتني بر فريم ورك دات نت است ويژوال استاديو

. هاي فراواني است كه برنامه نويسي و توسعه نرم افزاري هاي تحت ويندوز و تحت وب را آسان تر و لذت بخش تر از هميشه كرده استرنامه نويسان معموالً مانند كاربران معمولي از برنامه هاي كامپيوتري استفاده نمي كنند، آن ها هميشه دنبال راهي براي آسان تر كردن ب

از آنجا كه كاربران ويژوال استاديو برنامه نويسان هستند و اصوالً برنامه نويسان حال و حوصله پيدا . كارها و صرفه جويي در زمان هستنديك دستور ميان منو هاي تو در تو و يا شكلك هاي موجود در نوار ابزارها را ندارند، ويژوال استاديو صادر كردن دستورات را بوسيله كردن

.كليدهاي ميانبر ساده تر نموده است

حق هم . دانستند هميشه برنامه نويسان جاوا خاصيت مستقل از پلت فرم بودن آن را يكي از مهمترين مزيت هاي جاوا بر دات نت ميجاوا با شعار يك . داشتند، آن ها يكبار برنامه شان را مي نوشتند و به كمك ماشين مجازي جاوا روي هر سيستم عاملي اجرايش مي كردندت نت پلت فرم دا. زبان، پلت فرم هاي مختلف به بازار اومد اما دات نت با شعار يك پلت فرم، زبان هاي مختلف قدم در اين رقابت گذاشت

نسخه از آن، پلت فرم جديدي محسوب نمي شود و مهمترين و جدي ترين رقيب جاوايي است كه االن در دست شركت 4با گذشت چندسال پيش زمزمه هاي پروژه اي به گوش رسيد كه مژده اجراي نرم افزارهاي مبتني بر دات نت را بر روي سيستم عامل . اوراكل است

و اوپن سورس است كه به شما اجازه مي دهد كه برنامه هاي cross-platformيك فريم ورك دات نت پروژه مونو .هاي ديگر ميداد

بر لينوكس و حتي سيستم عامل مبتني بر دات نت خود را كه تا به حال فقط روي ويندوز اجرا مي شده را روي سيستم عامل هاي مبتني Windows Forms 2.0و C# 3.0 ،VB 8 ،ASP.NET 2.0, ADO.NETآخرين نسخه پايدار مونو از . شركت اپل اجرا كنيد

هاي ويندوز نيز استفاده نكرده APIنوشته باشيد و از 2.0در واقع اگر برنامه خودتان را با دات نت فريم ورك نسخه . پشتيباني مي كند د، به راحتي مي توانيد آن را روي لينوكس يا مك اجرا كنيدباشي

يكي از ويژگي هاي بسيار خوب دات نت پشتيباني از زبان . براي كدنويسي استفاده كنند Pythonبرنامه نويسان دات نت نيز مي توانند از . IronPythonزبان برنامه نويسي 2005در سال . هاي مختلف برنامه نويسي است كه از اين نظر برتري نسبي در مقابل رقيبان خود دارد

را براي برنامه نويسان سيلوراليتو دات نت فريم وركبه دنياي دات نت ساخته شد و حاال استفاده از Pythonبراي آوردن زبان محبوب Python نسخه جديد . امكان پذير كرده استIronPython بر پايهDLR بنا شده است .DLR افزونه اي بر رويCLR است كه پياده

يتون بسيار آسان است و برنامه هاي نوشته شده به اين زبان بسيار واضح قواعد برنامه نويس پا. سازي زبان هاي دايناميك را آسان مي كند .هستند

:مقايسه دات نت و جاوا

J2EE يك تحقق براي استاندارد يك " Application Server كالسهاي فقط" كه است "افزار نرم " يك نت دات حاليكه در است

.مي دهد قرار گر توسعه اختيار در ار اي شبكه مرتبط يا مستقل افزارهاي نرم توليد پايه براي

Page 34: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

نت دات تمام اما كنند استفاده ازآن بايد بقيه و شده نوشته مايكروسافت توسط بار يك . افزار نرم ايجاد براي بستر يك يعني : نت دات

نرم توليد محيط يك است و FrameWorkيك نت دات تمام.نيست" كالس مقدماتي كتابخانه و كد اجراي بستر"يك از بيشتر چيزي

.افزار نرم توليد متفرقه ايجاد ابزارهاي جهت مستنداتي + افزار

J2EE :افزار نرم اجزاء با بايد چگونه "سازمان مقياس "افزاري نرم نياز يك به دادن پاسخ براي ميكند مشخص كه است استاندارد يك

استاندارد اين مبتني بر ها خيلي .شده است ارائه سان توسط استاندارد اين . كرد بايد كاره افزار چ نرم عمر طول مديريت براي كرد و رفتار

كنيم چگونه ايجاد FrameWork يك "ا جاو زبان" با چگونه ميگويد J2EEاستاندارد . اند كرده ايجاد سازي خودكار افزارهاي نرم

Applicationاستاندارد اين اساس بر متعددي كتهاي شرو .. و باشد چطور اطالعاتي بنويسيم بانك مقاصد براي تمام كالس كتابخانهء

Server بر مبتني هايJ2EE تمام برخي كه اند كرده ايجادJ2EE را پياده سازي كرده اند و برخي فقط بخشي آن را.

ApplicationServer يك بستهء نرم افزاري است كه وظيفه اش Application LifecycleManagement بتداي يعني از ا. است اگر برنامه نويس به يك يعني. تاانتهاي اتمام توليد ، بايد به تمام نيازهاي نرم افزاري پاسخ دهد "سازمان مقياس"تولد يك نرم افزار

FrameWork ، احتياج داشتApplication Server يكFramework ، به او بدهد ، اگر بانك اطالعاتي خواستApplication

Server بانك اطالعاتي كامل برايش فراهم كند ، اگر وب سرور خواست ، يكApplicationServer يك وب سرور تمام عيار به او SMTP سرور يك Application Serverسرور نياز داشت ، SMTP الكترونيكي برنامه اش به يك بدهد ، اگر براي ارسال نامه هاي

Applicationدر TCP/IP استفادهكند يك پياده سازي كربرايزد از استك Kerberos زبه او بدهد ، اگر قرار شد براي احراز هويت ا

server وجودداشته باشد ، اگر خواست براي منطق محاسباتي برنامه اش يك GUI ، ايجاد كندApplication Server يك IDE و GUI Builder از كارتهاي هوشمند اكاربري ر به او بدهد ، اگر خواست داده هاي ( smart Card ) دريافت كند ، رابطهاي الزم وAPI

است براي طراحي Integrated يك محيط Application Serverبه ديگر بيان ... بگيرد و Application Server هاي مربوطه را از تمام اجزاء يك ركه مگ ودبشاي ايجاد شايد اين سوال در ذهن عده. "سازمان مقياس"و توليد و مديريت وتوزيع و كاربرد يك نرم افزار

Application Server منفرد پيدا كرد ؟ وب سرور ، بصورت ودرو نميشGUI Builder احراز هويت ، ، سرور پست الكترونيكي ، توابع ) ي يكنواخت و يكسان باشند ؟ "سطح"تمام اين اجزاء داراي دكن اما چه كسي ميتونه تضمين است ؟ جواب مثبت... بستر اجراي كد و

InnovativeIntegrated Interface ) توابع دسترسي به بانك بتواندتضمين كنه يك بستر اجراي كد مي تواند چه كسي "يا مثالتوسط ؟ همگي توليد شده داشته باشناين عناصر با هم سازگاري مناسبي د د؟يا تضمين كن داطالعاتي رو با بهينه ترين وضعيت توليد كن

يعني اگر قرار شد يك گروه نرم . است برقراركرد ؟ اينجا مسئله سازگاريارتباط آنهابين بشودبستر همانيك بستر خاص باشند كه توسط ) ي كند براي محيطش يابخرد و خصوصي ساز( توليد كند ERP بزرگترين سازمان بيمه غير دولتي امريكا يك راهكار جامع افزاري براي

جواب بده ومشخصه هاي مي تواند اش ر "سازمان مقياس "تمام درخواستهاي نرم افزاري دباش كه مطمئن دبايد به چه بستري اعتماد كني محدوديت در ادبيات آي ت "اصوال( ؟ دمحدود نميكن... خاص و اون ، سازمانش رو به يك نرم افزار خاص ، سخت افزار خاص ، پروتكل

Page 35: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

يك. دخودنمائي ميكن ApplicationServer اينجاست كه يك) هدرو كاهش ميد - Reliability - ، سطح اعتمادو قابليت وثوق

Application Server كه از بستراجراي كد گرفته تا وب سرور ، از توابع امنيتي گرفته تا بانك اطالعاتي ، از دتضمين ميكنIDE گرفته . ددر بستهءنرم افزاريش وجود دار... و ( Unified Process يا ) UP تا ابزارهاي حمايت از

J2EE شركت سان مايكروسيستمز است براي توليد يك) آرمان شهر ( در واقع يوتوپيا Application Server

كه است طبيعي . جاواتوسعه زبان "مثال. انجام داده كارهاي ديگري هم Application Serverشركت سان غير از ارائه يوتوپياي يك

بستر "و خصوصا J2EEبرخي ، ، هر چند بر خالف اظهارات ناشيانه است J2EE زبان جاوا زبان استانداردتوسعه نرم افزارهاي مبتني بر

ي ،بسترها دبستر دات نت قابليت پذيرش زبانهاي مختلف رو دار] "مثال[نطور كه اهم يعني. اجراي كدش ، به زبان جاوا منحصر نيست بين جاوا و ساير كتابخانه هائي كه توسط مي شوديعني براحتي . ندبه ساير زبانهاي برنامه نويسي سرويس بده مي توانندمبتني بر جاوا هم

سان . هرچند كه مثل دات نت منعطف نيست ( Java Native Interface ) . برنامه نويسي توليد شده ارتباط برقرار كرد ساير زبانهايسان فعاليت . ( است توليد كنه اما هنوز تكميل نشده J2EE مبتني بر استاندارد خودش يعني ApplicationServer يك دتالش ميكن

، فعاليتهاي خفني در هم در عرصه سخت دوكالسهاي توليد نرم افزار دار J2EE گسترده اي براي توسعه خود جاوا و بهينه سازي منطقكه فقط يكي از انهاتمام جزئيات رو دوجود دار J2EE هاي مبتني بر Application Server از متعددياما نگارشهاي عملياتي ) دافزاردار

. است پياده سازي كرده

حمايت اتوليد نرم افزار ر هر دو كتابخانه هاي قدرتمندي هستند كه اغلب نيازهاي پايه براي JDK داتنت و : كتابخانه كالس. الف

دات نت چيز ديگري ندارد اما براي جاواراهكارهاي ديگري هم . مقياس هيچكدام كافي نيستند م افزارهاي بزرگاما براي توليد نر. ميكنند .نمودار يادگيري جاوا بسيار كم شيب است. دات نت هم كمتر است پيچيدگي هاي. كاربري دات نت راحت تر است . وجود دارد

هاي "برنامه"سرعت اجراي . زمان اجراي جاوا ست در هر دو محيط خوب است زمان اجراي دات نت تقليدي صرف از: زمان اجرا. ب

زيادي به افزايش دات نت كمك JITC و Code Caching سيستم. استفاده نكند JIT هاي جاوا كندتر است اگر از دات نت از برنامه . است سرعت برنامه ها كرده

جاوابجاي ريموتينگ چيزي بنام ريموت .)بصورت داخلي( دپالس حمايت ميكن داتنت از ريموتينگ ، وب سرويس و كام : اتصاالت. ج

مخزن "كه اشياء شناور در يك ددار EJB ، چيزي بنام درو حمايت ميكن CORBA، دميكن ، وب سرويس رو حمايت دمتد اينووكيشن دار

كنترلهاي دات نت هنوز چنين . داستفاده كنن از آن انندمي تودسترسي هستند كه افراد ، سرويسها و نرم افزارها بنا به ميزان "سازماني MTS اشياء كام پالس و محيط. نكرده سازماني ارائه Object Repository ندارند و دات نت هنوز راهي براي ايجاد يك قابليتي

. نيستندState-Lessا ه EJB . ها منعطف نيستند EJB مانند) بطور مستقيم ندندار با اينكه ربطي به دات نت( ويندوز هم

Page 36: هژوﺮﭘ ناﻮﻨﻋﻲﺴﻳﻮﻧ ﻪﻣﺎﻧﺮﺑ يﺎﻫ نﺎﺑز ﻲﺳرﺮﺑ 1389 نﺎﺘﺴﺑﺎﺗ يرﻮﻄﺑ ،ﺪﻨﺘﺴﻫ راﺰﻓا ﺖﺨﺳ و

1389تابستان بررسي زبان هاي برنامه نويسي  

رو داره كه چه در JDBCجاوا. ارائه كرده كه راه حلي است منحصر به فرد ADO .NET داتنت چيزي بنام : ارتباط با داده. د

connection Pooling و چه در objecy pooling به خوبيADO .NET كار ميكنه اما ADO .NET فوق العاده امكانات زيادي ددار

: نتيجه گيري

به طور مثال يكي از . خيلي ها فكر مي كنند هر چه يادگيري يك زبان برنامه نويسي سخت تر باشد، حتماً بر زبان هاي ديگر برتري داردچه برتري بر يك برنامه نويس ويژوال بيسيك ++ به نظر شما يك برنامه نويس سي. است++ سخت ترين زبان هاي برنامه نويسي سي

مي تواند يك درايور سخت افزاري بنويسد اما برنامه نويس وي بي دات نت ++ مثالً برنامه نويس سي. ؟ تفاوت ها نسبي است!ارددات نت د؟ كداميك !؟ كدام سريعتر مي تواند يك نرم افزار توليد كند!حاال به نظر شما كدام بهتر مي توانند يك وب اپليكيشن بنويسند. نمي تواند

؟!؟ خروجي كداميك سريعتر اجرا مي شود!براي توسعه در اختيار داردابزارهاي قوي تري پس چرا اين ها به يك زبان ! سخت تر نيست++ ؟ مگر سي!چرا. به جاوا و سي شارپ روي آورده اند++ اخيراً بسياري از برنامه نوسان سي

؟!ساده تر روي آورده اند

زبان برنامه نويسي هر چقدر هم كه . بايد پلت فرم محور باشند نه زبان محوربرنامه نويسان پاسخ اين است كه در دنياي امروز،

به طور مثال در سيستم . قوي و سخت باشد، اگر توسط يك پلت فرم قدرتمند و شناخته شده پشتيباني نشود هيچ ارزشي نخواهد داشترا به يك انتخاب مناسب براي نوشتن برنامه ++ سياين . به خوبي پشتيباني مي شود اما در وب اينطور نيست++ عامل لينوكس از سي

در وب به خوبي پشتيباني PHP. هاي مبتني بر لينوكس و به يك انتخاب نا مناسب براي نوشتن برنامه هاي مبتني بر وب تبديل مي كند .مي شود و براي توسعه برنامه هاي تحت وب بسيار مناسب است اما در بقيه موارد حرفي براي گفتن ندارد

را شروع كند خيلي سريعتر و بهتر از كسي كه قبالٌ مثالً با ويژوال بيسيك آشنا PHPبلد باشد و بعد از آن مثالً ++ البته كسي كه سيرا به طور ++ ماه سي 3شما مي توانيد در عرض .پلت فرم از زبان خيلي مهم تر است ذكر شدهمانطور كه . را ياد مي گيرد PHPبوده،

يادگيري سينتاكس يك زبان برنامه نويسي هر چقدر . ماه يك برنامه نويس وب حرفه اي شويد 3يد، اما نمي توانيد در فقط كامل ياد بگيرماه ميسر مي شود اما يادگيري يك پلت فرم برنامه نويسي مانند دات نت و حرفه اي شدن در آن به اين 4يا 3هم كه مشكل باشد، در

!سادگي ها نيست

كه براي هستند كساني. را محدود به يك زبان برنامه نويسي مي كنند و روي آن تعصب دارند هيچ وقت موفق نخواهند شدكساني كه خود مطلوب توليد نرم افزار از جاوا و اوراكل استفاده مي كنند اما نرم افزارشان به اندازه نرم افزاري كه با دلفي و اينتربيس توليدشده، بازدهي

. ندارد . مروز بايد بر اساس نياز و خواست مشتري از اين ابزارها استفاده كرددر دنياي ا