PDA

مشاهده نسخه کامل : كدام زبان برنامه‌نويسي را انتخاب كنيم؟



smh
29-11-07, 00:37
اشاره :
كدام زبان برنامه‌نويسي را انتخاب كنم؟ از كدام نوع ديتابيس استفاده كنم؟ اين‌ها سؤالات قديمي و تاحدودي كليشه‌اي هستند. با اين حال خواندن يكي دو مقاله جالب در اينترنت باعث شد، طرح مجدد اين موضوع هميشگي را خالي از فايده ندانم.
اصولاً هر از گاهي بايد اين پرسش را مجدداً در كليه سطوح مهندسي نرم‌افزار، چه در صنعت، چه در رسانه‌ها و چه در دانشگاه‌ها مطرح كرد و دليل آن هم، بسيار ساده است. زبان‌هاي برنامه‌نويسي نيز مانند زبان‌هاي گويشي انسان‌ها پويا هستند و مرتباً متحول مي‌شوند. در اين راستا برخي خود را با نيازهاي روز تطابق داده و برخي نيز از اين تحولات جا مي‌مانند.
به همين دليل لازم است هر چند وقت يك‌بار اين پرسش را مطرح كرده و جديدترين پاسخ‌ها را به نقد بگذاريم. براي اين‌كه بحث از حالت نظري خارج شود و حالت كاربردي پيدا كند، اجازه مي‌خواهم نظرم را در اين مورد به اختصار بيان كنم.

برنامه‌نويسي وب‌

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

---------------------------------------
منبع : ماهنامه شبکه

K A S R A
25-02-08, 20:00
با اجازتون منم چند تایی جمله به مطلب شما اضافه می کنم :love:
یاد گیری یک زبان جدید برای یه برنامه نویس معمولی (بین آماتور و حرفه ای) حدودا 2 تا 5 روز طول میکشه , برای برنامه نویسی اول از هر چیز باید زمینه کاری رو مشخص کرد , این مهمترین مسئله ست که مستقیما به علاقه مندی ها و تواناییهای برنامه نویس مربوط میشه ... هر زبان هم با توجه به قابلیت هایی که در یک زمینه خاص ارائه میده و Syntax خودش , بین برنامه نویسان محبوبیت پیدا میکنه . مثه #C در Win&Web App . این وسط توسعه دهنده یک زبان هم مهمه . هر چه محیط برنامه نویسی IDE و رابط کاربری User Friendly تر باشه استقبال کاربران از اون IDE و زبان بیشتر میشه . یک IDE خوب می تونه مثه یه همکار خوب برای برنامه نویسی باشه ... :cool:

یه مدتی هست خیلی به #J گیر دادم:1. (40):
هم خیلی توپه هم کارایی میشه باش کرد که فقط از Java بر میاد . ولی خیلی مظلوم شده بین زبانا .
ان شاالله مطلب های مربوط به #J رو به زودی در همین تاپیک میارم ...
موفق باشید :11():

a_k
26-02-08, 05:02
زبان برنامه نويسي فط C#.net با قدرتي فرا زميني!

MoBiN.R
26-02-08, 12:25
به نظر من که Java و C بهترین و قدرتمند ترین زبان ها هستند .. چون هر کدوم این زبان ها پایه و اساس زبان ها و IDE های دیگه مثل J# ، C++ ، C# ، C#.Net و ... هستند

zahra6377
27-02-08, 22:13
J# یا همون J#.net یکی از زیر مجموعه های visual studio.net و محصول شرکت مایکروسافت هست که معمولا در هنگام نصب این بسته نرم افزاری به طور خودکار بر روی کامپیوتر نصب می شه.
در واقع جی شارپ یه زبانی شبیه جاوا برای اونهایی استکه می خواهند از جاوا به ویژوال استودیو کوچ کنند. دستور زبان آن تا حدود زیادیشبیه سی پلاس پلاس و جاواست.
شاید بشه گفت جی شارپ یک ترفند مایکروسافت برای جذببرنامه نویسهای جاواست
اما از لحاظ ساختاری کد IL تولید شده توسط این زبان هیچ تفاوتی با بقیهزبانهای دات نت نمی کنه. ولی J# بعد از کامپایل کد ILتولید می کنه و فقط می تونه از کتابخانه ها و API های .net استفاده کنه . در اصل شما دارید روی پلتفرم .net با سینتکس Java برنامه مینویسید
البته باید توجه داشت که مایکروسافت J# در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه می باشد که توسطمایکروسافت و در چارچوب .net ارائه شده است. انتظار اینکه در سیستم عاملی غیر ازویندوز هم اجرا شود را نداشته باشید.
در واقع میشه گفت که این ماکروسافت چونانحصار طلبه می خواد جاوا رو هم در دست بگیره!!!

مقایسه زبانهای زیر مجموعه Visual studio.net
دستورات شرطی در چهار زبان ++C و #C و #J و VB

[VB.NET]
If nCnt <= nMax Then
nTotal += nCnt ' Same as nTotal = nTotal + nCnt.
nCnt += 1 ' Same as nCnt = nCnt + 1.
Else
nTotal += nCnt
nCnt -= 1
End If

[J#.NET]
if (nCnt <= nMax){
nTotal += nCnt;
nCnt++;
}

[C++.NET]
if(nCnt < nMax) {
nTotal += nCnt;
nCnt++;
}
else {
nTotal += nCnt;
nCnt--;
};

[C#.NET]
if (nCnt <= nMax)
{
nTotal += nCnt;
nCnt++;
}
else
{
nTotal +=nCnt;
nCnt--;
}

K A S R A
27-02-08, 22:42
ولی J# بعد از کامپایل کد ILتولید می کنه و فقط می تونه از کتابخانه ها و API های .net استفاده کنه . J# بلکه زبانی مشابه می باشد که توسطمایکروسافت و در چارچوب .net ارائه شده است. انتظار اینکه در سیستم عاملی غیر ازویندوز هم اجرا شود را نداشته باشید.
در واقع میشه گفت که این ماکروسافت چونانحصار طلبه می خواد جاوا رو هم در دست بگیره!!!





با سلام خدمت شما دوست عزیز :give_rose:... من مطلبتون خوندم . شما توی این تاپیک بالاخره مشخص نکردید که میشه روی #J حساب کرد یا نه ؟
یه نقد کوچولو هم در مورد پست شما داشتم :lol:

"J#فقط می تونه از کتابخانه ها و API های .net استفاده کنه . "
زبان #J هم به Java API ها و هم به NET. Frame work دسترسی داره
" انتظار اینکه در سیستم عاملی غیر ازویندوز هم اجرا شود را نداشته باشید. "
این جوری نیست ... خاصیت #J استقلال از سخت افزار و سیستم عامله ( البته تا حدودی ) ... علتش هم استفاده از CLR یا ( Common Language Runtime) .
CLR در حقیقت همون کار JVM رو برای #J می کنه ...

" این ماکروسافت چونانحصار طلبه می خواد جاوا رو هم در دست بگیره!!! " :1. (27): :1. (27): :1. (27):
فقط میتونم بگم که Microsoft کارشو خیلی خوب بلده انجام بده :1. (40):
90 % استاندارد های نرم افزاری طبق استاندارد های Microsoft تنظیم میشه . اینم اسمش انحصار طلبی نیست ... برتری Microsoft نسبت به سایر رقباست ... :cool:
موفق باشی :11():