فعلاً برنامهنویسی تحت وب داغترین سوژه در دنیای برنامهنویسی است. شاید بد نباشد یادآوری کنم که اصولاً فلسفه برنامهنویسی تحت وب چه بود که به اینجا رسید. علت محبوبیت و رشد گسترده برنامهنویسی تحت وب، حل شدن مشکل کلاینت بود. در این مدل از زبان برنامه نویسی ...
کدام زبان برنامهنویسی را انتخاب کنیم؟
اشاره :
کدام زبان برنامهنویسی را انتخاب کنم؟ از کدام نوع دیتابیس استفاده کنم؟ اینها سؤالات قدیمی و تاحدودی کلیشهای هستند. با این حال خواندن یکی دو مقاله جالب در اینترنت باعث شد، طرح مجدد این موضوع همیشگی را خالی از فایده ندانم.
اصولاً هر از گاهی باید این پرسش را مجدداً در کلیه سطوح مهندسی نرمافزار، چه در صنعت، چه در رسانهها و چه در دانشگاهها مطرح کرد و دلیل آن هم، بسیار ساده است. زبانهای برنامهنویسی نیز مانند زبانهای گویشی انسانها پویا هستند و مرتباً متحول میشوند. در این راستا برخی خود را با نیازهای روز تطابق داده و برخی نیز از این تحولات جا میمانند.
به همین دلیل لازم است هر چند وقت یکبار این پرسش را مطرح کرده و جدیدترین پاسخها را به نقد بگذاریم. برای اینکه بحث از حالت نظری خارج شود و حالت کاربردی پیدا کند، اجازه میخواهم نظرم را در این مورد به اختصار بیان کنم.
برنامهنویسی وب
فعلاً برنامهنویسی تحت وب داغترین سوژه در دنیای برنامهنویسی است. شاید بد نباشد یادآوری کنم که اصولاً فلسفه برنامهنویسی تحت وب چه بود که به اینجا رسید. علت محبوبیت و رشد گسترده برنامهنویسی تحت وب، حل شدن مشکل کلاینت بود.
در این مدل از برنامهنویسی، برنامهنویس دغدغه چندانی درباره قابل نصب بودن برنامهاش روی پلتفرمهای مختلف ندارد زیرا وضعیت تقریباً روشن است. همین که برنامه شما روی یکی دو مرورگر معروف مانند فایرفاکس و اینترنت اکسپلورر جواب بدهد، کافی است.
بنابراین در پاسخ به این سؤال که کدام زبان برنامهنویسی وب را انتخاب کنیم، باید گفت زبانهایی که از همه سادهترند و تغییر و تحولات را به سرعت میپذیرند. در حال حاضر در این زمینه دو فناوری 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 موضوع متفاوتی است که در بحث ما نمیگنجد. یک نکته دیگر هم باقی میماند و آن هم دیدگاه محافل آکادمیک درباره زبانهای برنامهنویسی است.
بدون تردید زبان جاوا هنوز هم محبوبترین زبان در محافل آکادمیک است و پس از آن سی شارپ به دلیل شباهتش به جاوا مطرح است. البته در برخی از دانشگاههای ایران هنوز هم ممکن است زبانهای قدیمی و فرسودهای مانند فرترن تدریس شود که اگر چنین باشد جای تأسف است.
ولی به نظر من علاقه محافل آکادمیک به این یا آن زبان ممکن است گمراهکننده باشد. آنچه اهمیت دارد کاربرد و کارایی زبان در یک زمینه بهخصوص و انعطافپذیری آن در مقابل تغییراتی است که در صنعت و نیازهای مصرفکنندگان پدید میآید. بقیه مسائل، همگی سلیقهای هستند و نباید با تعصب با این موضوع برخورد کرد.
منبع: ماهنامه شبکه