|

انتخاب زباني براي برنامه نويسي
سوالي كه براي خيلي از دانشجويان نرم افزار پيش اومده اين هست كه چه زباني رو براي برنامه نويسي انتخاب كنيم؟ اين سوال وقتي مهمتر ميشه كه بخواييم زباني رو بين دو شركت متفاوت انتخاب كنيم. چند مقاله رو باهم بررسي و تحليل ميكنيم. مساله مهمي كه وجود داره اين هست كه چرا ما برنامه نويسي ميكنيم و اينكه چه هدفي از برنامه نويسي داريم. مساله ديگه اي كه بايد بدونيم تا بتونيم زبان مورد نظرمون رو انتخاب كنيم اين هست كه تواناييها و ضعفها و محدوده فعاليت هر زبان رو بشناسيم.
ملاك هاي انتخاب يك زبان برنامه نويسي مناسب
اگر قصد ورود به دنياي برنامه نويسي را داريد! اگر جهت انجام فعاليت هاي تخصصي خود به دنبال زبان برنامهسازي خاصي هستيد! اگر دانشجوي رشته كامپيوتر بوده و مي خواهيد يكي از زبان هاي برنامه نويسي را با وجود تبليغات فراوان به درستي انتخاب نماييد!
يكي از ويژگي هاي دنياي كامپيوتر، سرعت رشد و ارتقاء بسيار بالاي آن مي باشد. اين ويژگي از دو ديدگاه قابل تامل است. اول آنكه هر چقدر سرعت رشد اين صنعت بالاتر رود و علم فوق توسعه يابد، تجهيزات مدرن تر و مفيد تري به جهانيان عرضه خواهد شد. اما نكته دوم، نكته اي قابل تامل براي دست اندركاران اين صنعت، بخصوص دانشجويان رشته كامپيوتر مي باشد.
همانطور كه مي دانيم ويژگي بارز دنياي كامپيوتر، سرعت رشد بسيار بالاي آن است. در چنين شرايطي اگر كسيVisual Studio.NET logo به اشتباه مسير خود را انتخاب كرده باشد و بخواهد دوباره مسير ديگري را انتخاب نمايد، احتمال موفقيتش در شرايط موجود زياد نمي باشد. مگر آنكه تلاش خود را چندين برابر كند تا زمان از دست رفته را جبران نمايد. در چنين شرايطي، حتي بروز رساني اطلاعات براي كساني كه مسير خود را بدرستي انتخاب كرده اند نيز مشكل مي باشد. مثلا اگر شخصي در سالهاي گذشته با VB 5 كار مي كرد، پس از گذشت مدتي بايد خود را بروز كرده و با VB 6 سپس VB.NET 2001 ، بعد VB.NET 2005، VB.NET 2003 و در نهايت امروزه VB.NET 2008 سازگار نمايد.

توجه نماييد كه كسب مهارت در هر يك از نسخههاي موردنظر با وجود تشابه زياد، بسيار وقتگير و هزينه بر بوده و بايد علاوه بر خود نرم افزار، نرم افزار هاي جانبي مورد نياز آنها را نيز بروز نماييم. به عنوان نمونه براي گزارشگيري در VB5 يا VB6 از ابزار Crystal Report 4و Crystal Report 5 در VB.NET2003 ازCrystal Report 9 و به همين ترتيب اين روند در نسخههاي جديدتر زبان فوق نيز ادامه خواهد داشت. حال بخوبي روشن است كه حتي كساني كه راه خود را در ابتدا بدرستي انتخاب كرده اند نيز، براي بروز رساني مداوم خود بايد هزينه هاي بسياري را متحمل گردند و ممكن است در ميان اين افراد كساني باشند كه پس از چند مرحله بروز رساني، ديگر توانايي بروز رساني خود را نداشته باشند. چه رسد به كساني كه در ابتداي راه، مسير خود را بدون مشاوره و توجه به توانايي و استعدادشان، به اشتباه انتخاب كرده و مدت زماني را نيز در اين مسير صرف كرده باشند و بخواهند تغيير مسير داده و در مسير درستي قرار بگيرند.
اكنون در اين مقاله قصد داريم از بين گرايشات مختلف علم كامپيوتر، در مورد شاخه برنامه نويسي صحبت نموده و نكات مفيدي را براي كساني كه قصد ورود به اين گرايش خاص را دارند، بيان نماييم. توجه نماييد كه مطالب بيان شده در ادامه، به اشخاص مورد نظر كمك خواهد كرد تا بتوانند با ملاك ها و معيار هاي انتخاب يك زبان برنامه نويسي مناسب آشنا شوند و در نهايت زبان برنامه نويسي مورد علاقه خود را انتخاب نمايند.
براي شروع بهتر است ابتدا تعريفي براي واژه زبان برنامه نويسي ارئه دهيم.
يك زبان برنامهنويسي، مجموعهاي از دستور العملها و قواعدي است كه براي توصيف ساختمان دادهها و الگورتيمهاي مورد نياز و پيادهسازي آنها مورد استفاده قرار مي گيرند.
اولين نكته اي كه با توجه به تعريف فوق حاصل مي شود آن است كه، هر زبان برنامه نويسي بر اساس هدف خاصي شكل گرفته است و به همين خاطر داراي ويژگي ها و نقاط مثبت خاص خود ميباشد. به عنوان مثال زبانهايي مانند prolog ، XIP و Snobol زبانهايي هستند كه براي شاخه هوشمصنوعي و پياده سازي الگوريتم هاي خاص آن مورد استفاده قرار گرفته اند.
نكته دوم و بسيار مهم آن است كه بايد با يك ديد حرفه اي و به دور از هرگونه تعصب، با زبانهاي موجود روبرو شده و ويژگيهاي آنها را بايكديگر مقايسه نماييم. دقت كنيد كه در هنگام مقايسه زبان ها، نمي توان هر زباني را با زبان ديگر مقايسه نمود، بلكه بايد زبان هاي مورد مقايسه از يك گروه باشند. مثلا مقايسه زبان Prolog با زبان C# يا جاوا صحيح نمي باشد.
پس باتوجه به مطالب ذكر شده تا اين قسمت، ميتوان گفت كه مطالعه زبانها قبل از انتخاب زبان خاصي جهت ادامه فعاليت در آن، امري بسيار مهم ميباشد.
از جمله دلايل مطالعه زبانهاي برنامه نويسي ميتوان به موارد زير اشاره نمود:
استفاده مناسب از ويژگي هاي زبان. مانند انتخاب ساختارها و تكنيك هاي مناسب برنامه نويسي مثل آرايه ها، توابع بازگشتي و ...
شناخت ساختارهاي مفيد زبانها و شبيه سازي آنها در زبانهاي مورد استفاده.
استفاده مناسب از يك زبان خاص با توجه به اهداف شكل گيري و ايجاد زبان مذكور.
تا به امروز حدود 120 زبان مختلف شناسايي شده است.
زبانهاي برنامه نويسي از نظر كاربردي به چند دسته تقسيم مي شوند. كه بطور خلاصه عبارتند از :
زبانهاي علمي و محاسباتي : اكثر زبانها جزء اين دسته ميباشند. از جمله اين زبانها مي توان به Fortran ، Ada ، SmallTalk، Basic اشاره نمود. زبانهاي تجاري: مانند Cobol زبانهاي پيشرفته : اين گروه از زبانها معمولا بدنبال اهداف پيشرفته و جديد مانند هوش مصنوعي مي باشند. مانند Prolog ، XIP ، Snobol زبانهاي سيستمي : به كمك اين زبانها سيستم هاي بزرگي مانند سيستم عامل و نرم افزار هاي سيستمي و ... توسعه داده مي شوند. از جمله اين زبانها مي توان به C/C++ ، Java و ... اشاره نمود.

سئوالي كه ممكن است تا به اين قسمت بوجود آيد، آن است كه:
دلايل پيشرفت زبانهاي برنامه سازي چيست؟ به بيان ديگر چرا حدود 120 زبان تا به امروز شناسايي شده است؟
در پاسخ به اين پرسش مي توان به موارد زير اشاره نمود:
پيشرفت سيستم عامل و سخت افزار
كاربردهاي خاص مانند هوش مصنوعي كه سبب ايجاد زبان Prolog گرديد.
روش ها وتكنيك هاي مختلف برنامه نويسي. بطور مثال تكنيك شيءگرايي سبب ايجاد زبان SmallTalk گرديد.
اكنون با گذر از مطالب فوق، نوبت به آن مي رسد تا برخي از ملاك هاي مهم انتخاب يك زبان برنامه سازي مناسب را مورد بررسي قرار دهيم.
1- سادگي و وضوح يكي از ويژگي هاي بسيار مهم يك زبان برنامه سازي، سادگي و وضوح دستورات بكار گرفته شده در آن زبان مي باشد. به عنوان نمونه بايد بتوان بر اساس ظاهر دستور، نوع عملي را كه آن دستور انجام مي دهد را تشخيص دهيم. اين در پياده سازي الگوريتم هاي مورد نظر برنامه نويس كمك شاياني مي كند. زبان اسمبلي يكي ا زبان هايي است كه اين ويژگي در آن وجود ندارد.
نكته: دليل اصلي ايجاد زبانهاي سطح بالا، پياده سازي اين ويژگي در زبانها مي باشد. سادگي و وضوح دستورات به خوانايي خطوط برنامه هاي نوشته شده و در نتيجه درك سريعتر منطق برنامه ها كمك شاياني مي كند و ديگر نياز نيست تا كليه خطوط برنامه را comment نماييم.
2- امكان تركيب ( Arthogonality) از جمله ويژگي هاي ديگر يك زبان مناسب آن است كه بتوان ويژگيهاي و امكانات و ساختارهاي متفاوت زبان مورد نظر را با يكديگر تركيب نمود و نتيجه حاصله نيز با معنا و قابل استفاده باشد.
Example 1:
for(int i=0; i<10 ; i++)
int i;
for(i=0;i<10;i++)
Example 2:
if a=b*c then
a=b*c;
if a then
3- قابليت حمل (Portability)
يكي از ويژگي هاي يك زبان برنامه نويسي مناسب، قابليت حمل زبان مذكور مي باشد. ويژگي فوق به اين معناست كه بتوان بطور مثال برنامه توليد شده توسط يك زبان را از يك كامپيوتر به كامپيوتر ديگر منتقل نموده و سپس آن را بدون مشكل اجرا كنيم.
4- عدم وابستگي به يك سيستم عامل خاص
از ويژگي هاي يك زبان برنامه نويسي مناسب، عدم وابستگي به يك سيستم عامل خاص مي باشد. يعني اينكه بتوان :
1- برنامه توليد شده توسط زبان برنامه نويسي مورد نظر، در سيستم عامل هاي مختلف قابل اجرا باشند.
2- خود زبان برنامه نويسي به سيستم عامل خاصي وابسته نباشد.
توجه نماييد كه ملاك فوق يكي از معيارهاي بسيار مهم جهت انتخاب يك زبان برنامه سازي مي باشد.
5- عدم وابستگي به سخت افزار از ديگر ويژگي هاي يك زبان قدرتمند آن است كه كه هم خود زبان و هم برنامه توليد شده آن قابليت اجرا شدن روي هر بستر سخت افزاري را داشته باشد. به عنوان نمونه زابن برنامه سازي جاوا از جمله زبانهاي است كه در اين زمينه موفقيت آميز عمل نموده است.
6- سرعت كامپايل و اجرا يكي ديگر از ملاك هاي انتخاب يك زبان برنامه سازي مناسب، سرعت كامپايل و سرعت اجراي برنامه كامپايل شده توسط آن زبان است.
توجه نماييد كه هر يك از اين دو معيار با توجه به نياز ما مهم مي باشند. بطور مثال در برنامه هاي تجاري سرعت اجراي برنامه بسيار مهم تر از سرعت كامپايل آن مي باشد. زيرا در اين گروه تعداد بار اجراي برنامه سيار بالاتر از دفعات كامپايل برنامه مورد نظر است.
7- محيط برنامه نويسي (IDE) يكي از معيارهاي موثر در انتخاب يك زبان برنامه ساي، وجود IDE هاي قدرتمند و مناسب براي آن زبان مي باشد. محيط كار يك زبان برنامه نويسي، محيطي است كه مجموعه ابزارهاي مربوط به آن زبان را بصورت يكجا تجمع آوري كرده و كاربر به راحتي مي تواند از ابزارهاي مورد نياز در نوشتن و توسعه برنامه مورد نظر خود استفاده كند. سپس برنامه خود را كامپايل كرده و در نهايت اجرا نمايد.
هر چقدر كه يك IDE كاربرپسند تر باشد، راهنماي قوي تر داشته باشد و قابليت اشكال زدايي آن پيشرفته تر باشد، چنين محيطي بيشتر مورد توجه برنامه نويسان قرار خواهد گرفت. به عنوان نمونه Visual Studio.Net از جمله محيط هاي برنامه سازي است كه تمام اين شرايط را در حد عالي داراjava logo مي باشد و يا در زبان جاوا مي توان به NetBeans، JBuilder، Eclipse و ... اشاره نمود.
8- كاربردهاي زبان برنامه سازي هر چه توانايي ها و كاربردهاي يك زبان برنامه سازي بيشتر و وسيعتر باشد زبان فوق داراي محبوبيت بشتري خواهد بود. به عنوان مثال زبانهايي مانند JAVA، C# ، VC++ و... از جمله زبانهايي هستند كه قابليت كار در چندين محيط و كاربردهاي متفاوت را دارند. بطور مثال جاوا در زمينه برنامه نويسي تحت شبكه، وب، برنامه نويسي موبايل و دستگاه هاي كوچك مشابه، سخت افزارهايي با حافظه هاي بسيار كوچك و ... قابل استفاده مي باشد.
.NET رقیب JAVA؟
.NET فرمی است که به وسیله مایکروسافت MicroSoft برای ساخت سایت ها با قابلیت های زیاد و متفاوت ایجاد شده است به طوری که قسمتی از یک پروژه را می توان با ++CV و بخش دیگر را با برنامه ای دیگر نوشت و در نهایت کل آن توسط یک واسطه به نام MSIL ترجمه شده و در محیط .NET قابل اجرا است. J2EE (نسخه جدید JAVA) به وسیله شرکت SUN و با همکاری شرکت های IBM و HP تهیه شده است. در این قالب تنها زبانی که مورد استفاده قرار می گیرد جاوا است، و بر خلاف .NET که فقط روی محیط های سازگار با ویندوز عمل می کند، مستقل از سخت افزار است.
بین .NET و JAVA کدام را انتخاب کنیم؟

- قابلیت انتقال برنامه ها روی سیستم های مختلف و شعار اصلی جاوا یعنی: "یک بار بنویس و هر جا استفاده کن" (Writeonce-Run anywhere) موضوعی بسیار حایض اهمیت است که بسته به نیاز شما و نوع برنامه شما می تواند خیلی مهم باشد. - در محیط هایی که چند نوع سیستم سخت افزاری وجود دارد قطعا برنامه های تحت جاوا مناسب تر است ولی اگر در محیط مورد نظر شما از سیستم عامل ویندوز استفاده می شود استفاده از .NET هزینه کمتری در برخواهد داشت. - .NET ویژگی هایی دارد که با آن می توان سایت های جذاب و زیباتری ساخت اما در سایت های پیچیده و بزرگ و جایی که کارایی مهمتر از ظاهر است بهتر است از جاوا استفاده کنیم. - تصور کنید نیاز به برنامه ای دارید که در آن چیزهایی به صورت دینامیک ایجاد می شوند و پس از طی یک سری عملیات بر روی آنها از بین می روند، در این نوع برنامه ها تعقیب اشیایی که در برنامه ساخته می شوند، تخصیص و مدیریت حافظه تماما بر عهده برنامه نویس است. اما جاوا دارای یک سیستم خودکار مدیریت و پاکسازی حافظه است که بسیاری از مشکلات را آسان کرده است. هر تکنولوژی که ایجاد می شود؛ هر برنامه ای که مورد توجه عموم قرار می گیرد قطعا مورد توجه نفوذگران هم واقع می شود، هر سیستمی که بخواهد بماند و پیشرفت کند نیاز به ایمنی دارد و اینجاست که سدهای حفاظتی جاوا و مدل های امنیتی آن که حاصل تلاش زبردست ترین برنامه نویسان دنیاست مورد توجه قرار می گیرد. مدل چهار لایه امنیتی جاوا جلوی خیلی از اقدامات خرابکارانه و نفوذی را می گیرد، ولی هیچ سدی 100درصد غیر قابل نفوذ نیست!! در هر حال انتخاب بین این دو نیاز به بررسی دقیق، آینده نگری و مشخص شدن اهداف دراز مدت و میزان سرمایه گذاری شما دارد زیرا هزینه هایی که یک برنامه جاوا دربر دارد در اکثر موارد چندین برابر یک برنامه .NET خواهد بود.
جاوا اسکريپت JAVA Script:
کساني که با دنياي اينترنت و کامپيوتر آشنايي دارند حتما اين اسم را شنيدهاند. اما اشتباه نکنید JAVA Script با جاوا فرق دارد. JAVA Script یک برنامه کاملا مستقل است که توسط شرکت SUN و شرکت NetScape ساخته شده است. جاوا هم به صورت فایل اجرایی (exe) و هم در صفحات وب قابل استفاده است. ولی JAVA Script فقط به منظور استفاده در اینترنت طراحی شده است. شما می توانید یک متن جاوا اسکریپت را در ساده ترین ویرایشگرها مثل «وردپد» word pad ویرایش کنید. دستورات JAVA Script درون تگ های HTML قرار گرفته و بعد درون فایلی با پسوند .htm ذخیره می شوند و در مرورگرهای وب قابل مشاهده هستند. خلاصه این که جاوا برنامه ای قوی و کاربردی است و ابتدا فقط مورد توجه برنامه نویسان آمریکایی بود ولی اکنون به قدری رشد کرده است که برنامه نویسان سراسر دنیا به آن اعتقاد پیدا کرده اند، اما از آنجا که جاوا ابزاری است برای برنامه های پیچیده و بزرگ که توسط تعداد معدودی از سیستم ها مورد استفاده قرار می گیرد، کمتر مورد توجه برنامه نویسان سیستم های کوچک قرار گرفته ولی با همه اینها ابزارهای بسیار قدرتمند و پیشرفته ای دارد که قابلیت های فراوانی به این زبان برنامه نویسی داده است. سان به بازاری گسترده می اندیشد
در نهايت نظر من درباره جاوا با توجه به اخباري كه از نسخه جديد جاوا ميرسد اين است كه فعلا جاوا محدوده ي فعاليت قبلي خود را حفظ كند. از بزرگترين علتهاي جذاب بودن مجموعه ويژوال استاديو براي ما ايراني ها اول از همه رايگان بودنش هست! و بعد امكانات كمكي بسيار قوي كه هنگام برنامه نويسي در اختيار ما قرار ميدهد. در نهايت از نظر شخصي من مجموعه ماكروسافت آينده اي خوشبينانه تر نسبت به سان دارد...

گردآوري و تحليلي بر مطالب موجود در اينترنت درباره انتخاب زبان برنامه نويسي |