البته delphi جدید هم بر پایه visual studio هستش
صحیح نیست! آخرین نسخه دلفی 2009 هست که در RAD Studio تحت Win32 اجرا میشه، و ربطی به Visual Studio نداره. تنها Delphi Prism که نسخه دات نتی دلفی هست در Visual Studio اجرا میشه. یعنی برنامه نویسان دلفی برای نوشتن برنامه های دات نت با دلفی، می تونند از Delphi Prism در Visual Studio استفاده کنند. اما Delphi for Win32 که آخرین نسخه اش دلفی 2009 هست، در IDE خودش اجرا میشه.
اون زبانهایی هم که توی دانشگاه تدریس میشن مال زمان فیلمهای گودزیلایی ژاپن هستش و توی دنیا دارن ریشه کن میشن(شده اند فقط بعضی جاها استفاده میشن) توی دانشگاه هم به 2 دلیل اینارو یاد میدن 1. اینکه میگن زبانهای پایه هستن و برای آموزش راهت تره (البته دلیلیه برای لاپوشونی دلیل دوم) 2. عدم تسلط و دانش لازم اساتید (جسارته) به زبانهای نوین برنامه نویسی
این هم صحیح نیست! زبان های برنامه نویسی که برای تدریس در دانشگاه انتخاب میشند با توجه به دو نکته مهم انتخاب میشند:
1- توانایی آن زبان در انتقال مفاهیم درست برنامه نویسی به دانشجو.
2- امکان بکارگیری دانش آموخته شده از راه یادگیری آن زبان در پروژه های واقعی و تجاری.
اگر زمانی در دانشگاه ها پاسکال با جدیت زیادی تدریس میشد، بخاطر آن بود که دانشجو با مفاهیم برنامه نویسی ساخت یافته به خوبی آشنا شود. چون در آن زمان رهیافت قالب برنامه نویسی ساخت یافته بود. الان از زبان های شی گرا استفاده میشه، چون در حال حاضر رهیافت قالب برنامه نویسی شی گرا هست. مثلا برای همین در خیلی از نقاط دنیا در دانشگاه جاوا تدریس میشه، چون برنامه نویس را مجبور میکنه که با شی گرایی درگیر بشه. شی گرایی کلید همه مسائل برنامه نویسی نیست، ولی چون رهیافت غالب هست، و دانشجو باید حتما با آن آشنا باشه، زبانی را که برنامه نویس را مجبور به درگیر شدن با شی گرایی می کند، انتخاب می کنند.
و اما درباره منقرض شدن همچین زبان هایی، در حال حاضر پر کاربردترین زبان برنامه نویسی در دنیا C\C++ هستند. حالا حالا ها هم قصد منقرض شدن ندارند. اگر شما دور و برخودتان هر جا را می بینید، برنامه نویس VB یا #C پیدا می کنید، دلیل بر آن نیست که سایر زبان ها در حال انقراض هستند! الان تمام سیستم عامل های مطرح دنیا، درایورهای سخت افزاری، بازی های گرافیکی تولید شده توسط شرکت های معروف بازی سازی، همگی با C گاهی با ++C توسعه داده میشند. نرم افزارهای معروفی مثل فایرفاکس، MySQL، Microsoft Office, Adobe Photoshop، و غیره هم با این زبان ها توسعه داده شدند و همچنان توسعه داده میشند.
در کشوری که عمده فعالیت برنامه نویسی اش تولید نرم افزار حسابداری و انبارداری و امثالهم باشه، و بخاطر عدم وجود قانون کپی رایت، بخش عمده ایی از نرم افزارهای آن اختصاصا برای سیستم عامل ویندوز نوشته بشند، و عملا تولید نرم افزارهایی غیر از نرم افزارهای اتوماسیون اداری برای شرکت های نرم افزاری سوددهی کافی نداشته باشه، و بخش عمده ایی از برنامه نویسانش بدون آنکه اصول اولیه برنامه نویسی را هم بدانند، ادعای برنامه نویس بودند دارند، و همواره بدنبال آن هستند که الان کدام زبان مد هست، طبیعی هست که VB یا VB.Net یا #C پر کاربردترین زبان ها باشند.
من تقریبا با زبان فرترن اشنایی دارم با توجه به اینکه دانشجوی عمران هستم می خواستم ببینم چه زبان دیگه ای به عنوان یه زبان پیشرفته رو علاوه بر این لازمه که یاد بگیرم یا در اینده به دردم می خوره خودم به C++ علاقه مندم
بستگی به نوع کاری داره که می خواید انجام بدید. اگر می خواید در همون حوزه تحصیلی خودتون فعال باشید، فرترن و Matlab حرف اول را می زنند، و تسلط بر هر دوی اینها برای شما یک مزیت عمده محسوب میشه. اگر قصد دارید بطور کلی به سمت مهندسی نرم افزار گرایش پیدا کنید، او چیزی که در وهله اول مهم هست، درک شما از اصول اولیه برنامه نویسی و توسعه نرم افزار هست. در توسعه نرم افزار شما یک سری مبانی دارید که هر چند ده سال یک بار تغییر می کنند، و یکسری مفاهیم روبنایی دارید که هر چند سال تغییر می کنند، و یکسری تکنولوژی دارید که ماهانه، یا گاهی هفتگی تغییر می کنند. هر چه درک بهتری از مبانی داشته باشید، فهم مفاهیمی که بر پایه آن مبانی مطرح میشند، و تکنولوژی هایی که بر پایه این مفاهیم ساخته میشند، برای شما راحت تر هست. اگر بدون درک مبانی اولیه، و بعد از آن مفاهیم مربوطه به سراغ یک تکنولوژی خاص برید، عملا برنامه نویس نیستید. برای نمونه می توانید به جامعه برنامه نویسان VB کشورمان در سال های گذشته، و جامعه برنامه نویسان دات نت کشورمان در سال های اخیر مراجعه کنید. تعداد افرادی که در این جوامع مشغول برنامه نویسی هستند و واقعا می فهمند که چیکار دارند می کنند، بسیار کم هست! (البته قصدم توهین به کسی نیست) اکثرا فقط نام یکسری کلاس، خصوصیات آن، و متدهای آن را یاد می گیرند، و شروع به برنامه نویسی می کنند. از آنجایی هم که این تکنولوژی ها بسیاری از جزئیات فنی را از برنامه نویس مخفی می کنند، فکر می کنند که واقعا کار درستی انجام داده اند، و برنامه های خوبی نوشته اند! مثلا زبانی مثل #C یک زبان تماما شی گرا، یا اصطلاحا Pure Object-Oriented هست. برید ببینید چند نفر از برنامه نویسان #C در مملکت ما می توانند تعریف درستی از مفاهیم اولیه شی گرایی مثل کلاس، شی، Polymorphism، Encapsulation، و امثالهم ارائه کنند؟! نه اینکه کسی نباشه! هستند، و اما تعدادشان به نسبت جمعیتی که #C کار می کنند، بسیار کم هست. اگر هم به سوابق آن افراد نگاه کنید، اکثرا افرادی هستند که قبل از ظهور دات نت به شدت با این مفاهیم سر و کار داشتند، و به تناسب موقعیت های شغلی به عرصه دات نت و #C وارد شدند. به انجمن های برنامه نویسی ایرانی (البته در خیلی نقاط دیگه دنیا هم وضع به همین صورت هست، حالا با شدت کم و زیادتر) مراجعه کنید، ببینید در تالارهای VB یا دات نت عمداتا چه نوع سوالاتی پرسیده می شود. می بینید که اکثرا سوالات سطحی هستند. علتش این هست که اکثر افراد آن جامعه بجای آنکه وقت صرف یادگیری مفاهیم کنند، وقت صرف یادگیری تکنولوژی کرده اند. اگر ازشان بپرسید فلان گزینه را در دات نت با کدام خصوصیت می توان تغییر داد، بلد هستند، اما اگر بپرسید، چرا؟ خیلی هایشان گیر می کنند. اگر ازشان بپرسید کار CLR در دات نت را برای شما توضیح دهند، اکثرشان یا نمی دانند، یا یک جواب کلی که در فصل های اول کتاب های آموزش دات نت خوانده اند، ارائه می کنند!
اینها به معنی این نیست که فلان زبان یا تکنولوژی بد هست، و مثلا شما بجای اینکه #C کار کنید، باید اسمبلی کار کنید! بلکه منظور این هست که انتخاب زبان در برنامه نویسی امر خیلی مهمی نیست. سرمایه گزاری بسیار زیادی هم نمی خواهد. شما اگر با مفاهیم به خوبی آشنا باشید، و وقتی کاری در یک زبان برنامه نویسی می کنید، مفهوم آن را خوب درک کنید، خواهید دید که این مفاهیم بین زبان های برنامه نویسی یا اصلا تغییر نمی کنند، یا تغییراتشان بسیار کم هست. در این صورت، یادگیری یک زبان برنامه نویسی جدید برای شما فقط زحمت یادگیری Syntax آن زبان را به همراه دارد، که کار زمانبری هم نیست.
شما اگر میخواید کارتان برنامه نویسی، یا بطور کلی توسعه نرم افزار باشد، بجای آنکه زبان برنامه نویسی بر شما سوار شود، خودتان بر زبان های برنامه نویسی سوار باشید؛ یعنی مفاهیم را خوب درک کنید، با قابلیت ها و نقاط ضعف زبان ها و تکنولوژی هاب مختلف آشنا باشید، و به فراخور نیازهای خودتان و پروژه تان، تکنولوژی مناسب را برای انجام آن انتخاب و استفاده کنید.