زبان برنامهنویسی چیست؟ مستنداتی که شخص یا گروه یا شرکتی برای نوشتن یک نرمافزار (که این نرمافزار کارش تبدیل کدهای سطح بالا به زبان ماشین است) تهیه می کنند. مستنداتی نظیر چگونگی پیادهسازی آرایهها در زیان، Syntax زبان، نوعهای موجود در زبان و ... که تمام اینها براساس این در نظر گرفته میشوند که یک زبان چگونه زبانی میخواهد باشد مثلا میخواهد تفسیری باشد، کامپایلری باشد و یا هیبرید باشد. و پارامترهای دیگری نظیر پارادایم برنامهنوسی هم دخیل است (یکی از پارادایمهای زبان object oriented است). این مستندات میتوانند استاندارد بشوند که استانداردسازی معمولا توسط سازمانهای غیرانتفاعی (non-profit) مانند ECMA ،ISO و خیلی دیگر سازمانها انجام میشود. خیلی از زبانها هم هستند که تا مدتها استاندارد نمیشوند مثل زبان ++C که از سال 1983 تا سال 1998 استاندارد نشد.
نرمافزار تبدیل کد سطح بالا به زبان ماشین (کامپایلر-مفسر) چیست؟ نرمافزارهایی که توسط شخص، گروه و یا شرکتها نوشته میشوند و این نرمافزارها میتونند غیرآزاد باشند مانند Microsoft .NET که یک پیادهسازی از مجموعه زبانهای NET. است و نرمافزارهای آزادی نظیر mono وجود دارد که این هم پیادهسازی مجموعه زبانهای NET. است اما آزاد
حق امتیاز یا حق اختراع (Patent) چیست؟ حق امتیاز (پتنت) حق انحصاری است كه در قبال اختراع ثبت شده به مخترع یا نماینده قانونی او اعطا میشود. و کسی که یک چیزی رو به عنوان حق اختراع ثبت میکنه. کسی دیگر نمیتونه از اون به صورت تجاری استفاده کنه مگر با اجازه از کسی که حق اختراع به نامش ثبت شده است.
مثلا mono به روش مهندس معکوس نوشته شده،
خوب حالا با تعاریف میتونیم بگیم که اینجا مهندسی معکوسی وجود نداره به خاطر این که نیازی به مهندسی معکوس نیست چون تمام مستندات استاندارد شده است و در اختیار همه نیز هست. زمانی ما از مهندسی معکوس استفاده میکنیم که نمیدونیم یک وسیله چگونه ساخته شده است در واقع از عملکرد آون وسیله به مستندات میرسیم و اینجا نیازی به این کار نیست.
بهتره سی شارپ رو تو ویندوز وبا vs کار کنی کمتر اذیت میشی
VS در ویندوز فقط یک IDE مشابه SharpDevelop در ویندوز است و یا MonoDevelop در تمام سیستمعاملها. خوب هر IDE مطابق سلیقههای کاربرانش ساخته میشود. طبیعی است که کسی که با VS کار میکند سوئیچ کردن بر روی MonoDevelop مقداری برایش سخت است. چون به VS عادت کرده است.
به نظر من بهتر که تو محیط استانداردش کار کنی
پس تمام این IDEها استاندارد هستند و شما میتونید با هر کدوم که دوست داشتید کار کنید. خوب برای هر کس یک سری پارامترها در انتخاب IDE وجود دارد مثلا برای من آزاد بودن یک IDE برام خیلی مهمه اما این میتونه برای یکی دیگه اهمیت نداشته باشه
بد نیست اما کامل نیست و راحتی vs رو نداره.
پروژهای بسیار قویای با mono نوشته شده است که میتونی در لینک زیر اونا رو ببینی
http://en.wikipedia.org/wiki/Mono_%28software%29#Software_developed_with_Monoاما شاید برای شما این سوال پیش اومده چرا هنوز ریچارد استالمن با وجود این که mono یک نرمافزار آزاد است تاکید میکند که از mono استفاده نکنید.
دلیل ریچارد استالمن وجود حق امتیاز یا اختراع از طرف شرکت مایکروسافت بر خانواده NET. است.
همونطور که در لینک بالا میتونید ببینید نرمافزارهای خیلی قویای با mono نوشته شده است مانند Tomboy، Banshee, GNOME Do
ریچارد استالمن میگه مایکروسافت با داشتن حق امتیاز میتونه تهدیدی برای برنامههای نوشته شده با مونو باشد و برنامهنویسان رو از برنامه نوشتن با مونو و #C منع میکنه.