PDA

View Full Version : انتخاب زبان برنامه نویسی برای شبکه



esmit61
شنبه 17 اسفند 1392, 07:59 صبح
سلام
برای برنامه نویسی تحت شبکه چه زبانی رو پیشنهاد می کنید؟ قراره چندتا پروتکل رو پیاده سازی کنیم (DHCP Server,...)
میخوام اصولی کار بشه. خودم دلفی کار می کنم و C# هم تقریبا آماتور هستم
ولی اگه واقعا قدرت زبانهای دیگه بهتر باشه به نظرم ارزش داره سوئیچ کنم روی اونها
اصولا برنامه های شبکه ای (Socket Programming) رو با چه زبانی مینویسن؟

eshpilen
شنبه 17 اسفند 1392, 11:12 صبح
تاجاییکه بنده میدونم و بنظرم میرسه، انتخاب زبان بستگی به این داره که در چه سطحی کدنویسی میکنید، نه اینکه صرفا سوکت یا شبکه باشه یا نه. اکثر زبانهای برنامه نویسی مدرن و مطرح امکان برنامه نویسی سوکت و شبکه رو دارن.
البته باید سوکت رو با شبکه جدا کنید. وقتی میگید سوکت، یعنی میخواید مستقیما در سطح سوکت TCP/UDP خودتون پروتکل پیاده کنید، پس سطح کدنویسی از سطح عادی مقداری پایین تر میاد.
ممکنه برنامه ای شبکه ای باشه، ولی برنامه نویس از سوکت بصورت مستقیم و سطح پایین استفاده نکنه و از پروتکل ها و ابزارهای آماده و سطح بالاتری برای ارتباطهای شبکه ای استفاده کنه.

پس در سطح اپلیکیشن های عادی، با خیلی زبانهای سطح بالا میشه، مثل سی شارپ.
در سطح پایین، معمولا زبانهایی مثل سی و سی++.
فاکتور دیگری که ممکنه در این انتخاب دخالت کنه، میزان نیاز به پرفورمنس بالاست.
معمولا وقتی برنامه نویسی سطح پایینه، نیاز به پرفورمنس بالا هم وجود داره (چون اکثر برنامه های سطح پایین معمولا نقشهای سرور و سرویسهای اساسی سیستم عامل رو غیره رو دارن که باید به خیلی درخواستها و پراسسهای دیگر بصورت همزمان یا با تاخیر اندک بتونن جواب بدن) که بازم زبانهای سی و سی++ در این زمینه معمولا انتخاب استاندارد هستند.
البته اگر برنامه صرفا آموزشی/تحقیقاتی/نمایشی و اینها هست، نیاز به پرفورمنس بالا معمولا وجود نداره و میتونید از زبانهای سطح بالا هم استفاده کنید؛ ولی باید توجه داشت که میزان راحتی و سرعت کدنویسی زبانهای سطح بالایی که برای هدف برنامه نویسی سطح بالا/اپلیکیشن طراحی شدن احتمالا در این زمینه افت میکنه چون شما میخواید در سطحی کدنویسی کنید و ازشون استفاده هایی بکنید که هدف اصلی و ساختار اون زبانها نیست. هرچند احتمالا بازم درمورد خیلی برنامه های سطح پایین، کدنوشتن در زبانهای مدرن امروزی مثل سی شارپ و پایتون و غیره راحتتر و سریعتر باشه.

کار شما تا چه حدی جدی هست و میخواد برای چه مقصودی استفاده بشه؟
بهرحال اگر کار اول هست و تجربهء کافی ندارید، شاید بهتر باشه اول در یک زبان و سطح راحتتر کار کنید و بعدا اگر لازم شد به سطح و زبان پایین تری وارد بشید و انتقال بدید.

esmit61
شنبه 17 اسفند 1392, 17:10 عصر
ممنون از پاسخ کاملتون
راستش کار که جدی هست و میخوام یک ردیوس سرور بنویسم. مهمترین سوالم این بود که معمولاً از چه زبانی استفاده میشه که شما فرمودید C++ و C#
انتخاب خودم زبانهای سطح بالا هست. ولی بین همین زبانهای سطح بالا گفتم شاید بتونم ازتون مشورت بگیرم. با توجه به این که خودم دلفی کار میکنم و تا حدی هم C# کار کردم آیا توجیه مناسبی وجود داره که زمان بیشتری بذارم و با C# پیاده سازی کنم؟ میدونم نمیشه توی یک کلمه گفت آره یا نه. ولی گفتم شاید دوستان تجربه ای داشته باشن که بتونه منو به نتیجه قطعی برسونه
ممنون از پاسختون

Mask
شنبه 17 اسفند 1392, 17:26 عصر
زبان زیاد مهم نیست.
درک شما از مباحث شبکه مهمه. و همچنین تسلط شما بر روی سینتکس اون زبان.
به نظر من بهترین گزینه ، اونم فقط به علت ازدیاد منابع در ابتدا C++ و سپس دلفی هست.

1485159
شنبه 17 اسفند 1392, 17:29 عصر
جاوا هم میتونه انتخاب مناسبی باشه.

esmit61
شنبه 17 اسفند 1392, 17:53 عصر
ممنونم از پاسخهاتون