Mohammad Aref 120452 اشتراک گذاری ارسال شده در 9 شهریور، ۱۳۸۸ کدام زبان برنامهنويسي را انتخاب کنم؟ از کدام نوع ديتابيس استفاده کنم؟ اينها سؤالات قديمي و تاحدودي کليشهاي هستند. با اين حال خواندن يکي دو مقاله جالب در اينترنت باعث شد، طرح مجدد اين موضوع هميشگي را خالي از فايده ندانم. اصولاً هر از گاهي بايد اين پرسش را مجدداً در کليه سطوح مهندسي نرمافزار، چه در صنعت، چه در رسانهها و چه در دانشگاهها مطرح کرد و دليل آن هم، بسيار ساده است. زبانهاي برنامهنويسي نيز مانند زبانهاي گويشي انسانها پويا هستند و مرتباً متحول ميشوند. در اين راستا برخي خود را با نيازهاي روز تطابق داده و برخي نيز از اين تحولات جا ميمانند. به همين دليل لازم است هر چند وقت يکبار اين پرسش را مطرح کرده و جديدترين پاسخها را به نقد بگذاريم. براي اينکه بحث از حالت نظري خارج شود و حالت کاربردي پيدا کند، اجازه ميخواهم نظرم را در اين مورد به اختصار بيان کنم. برنامهنويسي وب فعلاً برنامهنويسي تحت وب داغترين سوژه در دنياي برنامهنويسي است. شايد بد نباشد يادآوري کنم که اصولاً فلسفه برنامهنويسي تحت وب چه بود که به اينجا رسيد. علت محبوبيت و رشد گسترده برنامهنويسي تحت وب، حل شدن مشکل کلاينت بود. در اين مدل از برنامهنويسي، برنامهنويس دغدغه چنداني درباره قابل نصب بودن برنامهاش روي پلتفرمهاي مختلف ندارد زيرا وضعيت تقريباً روشن است. همين که برنامه شما روي يکي دو مرورگر معروف مانند فايرفاکس و اينترنت اکسپلورر جواب بدهد، کافي است. بنابراين در پاسخ به اين سؤال که کدام زبان برنامهنويسي وب را انتخاب کنيم، بايد گفت زبانهايي که از همه سادهترند و تغيير و تحولات را به سرعت ميپذيرند. در حال حاضر در اين زمينه دو فناوري PHP و ASP.NET پيشتاز هستند. زبان اسکريپتنويسي PHP شباهتهايي به زبان C دارد. به همين دليل سرعت کامپايل شدن آن بالا است و سايتهايي که از اين زبان استفاده ميکنند اندکي سريعترند. فناوري ASP.NET از ويژوال بيسيک داتنت يا سيشارپ استفاده ميکند. اين دو زبان، به ويژه در جديدترين نسخه فناوري داتنت در يک حد هستند. اما به نظر من ويژوال بيسيک همچنان جذابتر و سادهتر به نظر ميرسد. سايتهايي که با اين دو زبان نوشته ميشوند نرمافزارهاي قدرتمندي را پديد ميآورند که قدرت انعطاف و گستره کارايي آنها بالاست زيرا هر دو زبان OOP هستند. علاوه بر سهولت برنامهنويسي، پشتيباني از برخي موجهاي نو مانند ايجکس هم بحث روز است. هم PHP و هم ASP.NET وضع خوبي در اين زمينه دارند. علاوه بر اين، برخي فناوريهاي روز هم خيلي مهم هستند که وبسرويس يکي از آنهاست. در حال حاضر رقابت شديدي ميان فناوريSOAP که از سوي آي بيام و مايکروسافت و ديگران پشتيباني ميشود و فناوري REST که از سوي ياهو و برخي شرکتهاي بزرگ ديگر حمايت ميشود، وجود دارد. اما وضع بعضي زبانها مانند جاوا (JSP) و ColdFusion در دنياي وب خراب است و برخي زبانها اخيراً دوباره مورد توجه قرارگرفتهاند که از آن جمله ميتوان به Python و Ruby اشاره کرد. وضعيت جاوا در وب در اين ميان جالب توجه است. برخلاف موفقيت چشمگير جاوا در برنامهنويسي براي سيستمهاي بزرگ، اين زبان به شدت در وب دچار ناکامي است. وب يک دنياي بصري است و به سادگي و ظاهر سيستمها اهميت ميدهد. به همين دليل زبانهاي فاقد ابزارهاي ويژوال و قدرتمند که در عين حال ساده نيز هستند در اين وادي محکوم به زوالند و اين مسئله براي جاوا که در زمينه وارد کردن مفاهيم بصري و پويا به دنياي وب پيشگام بود، ناگوار است، البته اين قضيه هيچ ربطي به زبان اسکريپتنويسي «جاوااسکريپت» که با ظهور ايجکس جان تازهاي پيدا کرده، ندارد. برنامهنويسي سيستمهاي بزرگ اما وضعيت در صنايع و سازمانهاي بزرگ بسيار متفاوت است. در جاهايي مانند صنايع مالي و بانکي، صنايع پتروشيمي و نفت، صنايع مخابراتي، سازمانهاي دولتي، صنايع خودروسازي و مانند اينها، هنوز هم جاوا و مشتقاتش حرف اول را ميزنند. قدرت جاوا در اين حوزهها به قدري است که حتي ميتوان - البته با کمي احتياط - گفت موفقيت سيستمهاي ديگري مانند اوراکل (که مبتني بر جاوا است) نيز بي ارتباط با استيلاي جاوا بر اين محيطها نيست. کارکردن با جاوا در محيطهاي بزرگ کار آساني نيست. اوراکل هم آسان نيست و به طور کلي ورود به اين عرصهها چالشهاي مختلفي را پيش روي برنامهنويسان و شرکتهاي نرمافزاري قرار ميدهد، به همين دليل سيستمهاي مبتني بر جاوا، گران و پرهزينه و غولآسا هستند. با اين حال توجه کنيد که منظور از سازمانهاي بزرگ در اينجا سازمانهايي هستند که از نظر ابعاد، تعداد کلاينتها و تراکنشها واقعاً بزرگ هستند و منظور ما از آن شأن و منزلت يک سازمان نيست. در واقع شرکتهايي مانند اپراتورهاي موبايل يا صنعت نفت در ايران را ميتوان نمونههايي از اينگونه سازمانها محسوب کرد. اما بسياري از سازمانهاي دولتي در ايران صرف نظر از اهميت استراتژيک يا منزلتشان، به دليل ساختار قديمي سازمان و مدرنيزه نشدن و مکانيزه نبودن فرآيندهاي سازمان يا تنها به اين دليل که بيشتر از چند هزار کاربر ندارند، جزء سازمانهاي متوسط در اين بحث به حساب ميآيند. سازمانهاي متوسط و کوچک شرکتها و سازمانهايي که کمتر از چند هزار کاربر يا چند صد کلاينت دارند، و آنهايي که خيلي کوچک و در حد مجموعههاي ده الي بيست نفره هستند در اين خانواده از کاربران سيستمهاي نرمافزاري قرار ميگيرند. براي اغلب اين سازمانهاي کوچک و بزرگ، هنوز هم چند صد هزار تومان هزينه براي توسعه و استقرار سيستمهاي نرمافزاري، رقم بزرگي به شمار ميرود. هم به اين دليل و هم به دلايل فني، اين سازمانها و شرکتها بايد از فناوريها و زبانهايي براي توسعه سيستمهاي نرمافزاري خود استفاده کنند که هزينه کمتري دارند و کارکردن با آنها سادهتر است. من براي اينگونه مجموعهها استفاده از زبان سيشارپ و راهحلهاي مبتني بر ويندوز (مانند SQL Server) را توصيه ميکنم. سهولت و قدرت کار با ديتابيس، يکي از دلايل اصلي قدرت زبانهاي داتنتي است. البته به تازگي سيستمعامل، لينوکس هم طرفداران زيادي پيدا کرده است ولي موضوع انتخاب پلتفرم و سيستمعامل متفاوت از انتخاب زبان و فناوري برنامهنويسي است. شايد به همين دليل، برخي به دنبال پيادهسازي سيشارپ در اين محيطهاي غيرمايکروسافتي هستند. اما به هرحال زبان جاوا در سيستمهاي غيرمايکروسافتي طرفداران خاص خودش را دارد، ضمن اينکه ترديدي ندارم که هنوز هم استفاده از زبان ويژوال بيسيک داتنت و API نرمافزارهاي آفيس مايکروسافت (مانند اکسس) بهترين گزينه براي شرکتهاي کوچک و چندنفره است. برنامهنويسي براي موبايل در حوزه برنامهنويسي وب زبان ++C و پس از آن زبان جاوا پيشتاز است. زبانهاي داتنت نيز که اخيراً به اين حوزه راه يافتهاند، با فاصله زيادي آن دوتاي ديگر را تعقيب ميکنند. زبان ++C زبان غامض و پيچيدهاي است و به نظر من به تدريج رو به افول گذاشته است. اما C و ++C زبان سختافزار هستند و هربار که سختافزار جديد و ناشناختهاي خلق ميشود زبان شماره يک آن C است. بهتدريج که آن پلتفرم سختافزاري جان ميگيرد، دوباره زبانهاي شيءگرا مانند جاوا و سيشارپ دوروبرش قوت ميگيرند. ++C زبان اصلي سيستمعاملهاي سيمبيان و ويندوز موبايل است. زبان جاوا نيز که مستقل از سيستمعامل تلقي ميشود، در جايي که سيمبيان يا ويندوز موبايل غايب باشند، حرف اول را ميزند. البته چنانکه ميتوان حدس زد، هيچ کس روي سيستمعامل ويندوز موبايل جاوا را جدي نميگيرد و نگاهها به سوي سي شارپ است. زبانهاي ديگر جدا از برخي زبانهاي برنامهنويسي که در کاربردهاي خاصي مانند هوش مصنوعي ممکن است قدرت بيشتري داشته باشند، ساير زبانها ديگر کهنه به نظر ميرسند؛ فرترن و کوبول از آن جملهاند. البته زبانهاي کار با بانکهاي اطلاعاتي رابطهاي مانند T-SQL و PL/SQL موضوع متفاوتي است که در بحث ما نميگنجد. يک نکته ديگر هم باقي ميماند و آن هم ديدگاه محافل آکادميک درباره زبانهاي برنامهنويسي است. بدون ترديد زبان جاوا هنوز هم محبوبترين زبان در محافل آکادميک است و پس از آن سي شارپ به دليل شباهتش به جاوا مطرح است. البته در برخي از دانشگاههاي ايران هنوز هم ممکن است زبانهاي قديمي و فرسودهاي مانند فرترن تدريس شود که اگر چنين باشد جاي تأسف است. ولي به نظر من علاقه محافل آکادميک به اين يا آن زبان ممکن است گمراهکننده باشد. آنچه اهميت دارد کاربرد و کارايي زبان در يک زمينه بهخصوص و انعطافپذيري آن در مقابل تغييراتي است که در صنعت و نيازهاي مصرفکنندگان پديد ميآيد. بقيه مسائل، همگي سليقهاي هستند و نبايد با تعصب با اين موضوع برخورد کرد. بهروز نوعي پور - ماهنامه شبکه 4 لینک به دیدگاه
ارسال های توصیه شده