PDA

View Full Version : گفتگو: مقایسه ی Mono با JDK



ztx4
جمعه 07 خرداد 1389, 11:33 صبح
سلام
دوستان می خواستم در این تاپیک به شباهت ها و تفاوت های بین دو پلتفرم بزرگ JDK و (Mono & .net) بپردازیم.
(JDK یا Java Development kit پلتفرم جاواست)
اولین نظر رو خودم می گذارم:

شباهت ها:

هردو اوپن سورس هستند.
هردو باعث رهایی برنامه نویس از تفاوت های سیستم عامل می شوند.

تفاوت ها:
JDK خود توسط شرکت سازنده برای سیستم عامل های مختلف از قبیل مک،ویندوز،لینوکس و... توسعه داده شده است و از استانداردی قوی برخوردار است.برنامه ی نوشته شده تحت هر سیستم عاملی به راحتی و بدون نیاز به هیچ تغییری در سیستم عامل دیگری قابل اجرا خواهد بود.

اما Mono یک شبیه سازی از .net می باشد. و ممکن است در برخی کاربرد ها تفاوت هایی به وجود آید.و برنامه نیاز به تغییراتی داشته باشد.

ztx4
شنبه 15 خرداد 1389, 08:28 صبح
اساتید محترم و دوستان گرامی
چرا کسی در این تاپیک شرکت نکرد؟
من هنوز منتظرم...

A.Karimi
سه شنبه 02 فروردین 1390, 18:21 عصر
البته بهتر بود OpenJDK با Mono مقایسه می‌شد. چون JDK مانند dotNet در انحصار یک شرکت خاص (اکنون Oracle) است.

تفاوت:
- Mono بر اجرای ByteCode بر هر پلتفرمی تاکید ندارد بلکه بر کمترین تغییرات در کد برای اجرا در پلتفرمهای مختلف تاکید دارد. یعنی برای مثال شما بتوانید با یک کامپایل مجدد و تغییر بسیار کمی در کد (که با کمک Preprocessor Directives می‌توان طوری برنامه نوشت که نیازی به آن تغییر هم نباشد) یک Assembly جدید قابل اجرا در پلتفرم دیگری ایجاد نمایید.
- اما OpenJDK یا JDK بر روی اجرای ByteCode بدون هیچ تغییری تاکید دارد.

در این زمینه نمی‌توان گفت کدام روش صحیح‌تر است اما شخصاً به دلیل راحتی توسعه‌دهنده در ارتباط با لایه‌های زیرین VM، کار Mono را می‌پسندم به همین دلیل بیشتر کاربران از UI برنامه‌های(غیر وبی) جاوا فراری هستند.

kambizbaghi
سه شنبه 18 مرداد 1390, 07:28 صبح
sسلام
ممنون از مطلب جالبتون
می خواستم بدونم که کدوم پلت فرم قابلیت دسترسی به لایه های زیرین سیستم عامل را داره ؟ منظورم اینه که ایا می شه برنامه هایی در سطح کرنل نوشت ؟

A.Karimi
سه شنبه 18 مرداد 1390, 13:37 عصر
sسلام
ممنون از مطلب جالبتون
می خواستم بدونم که کدوم پلت فرم قابلیت دسترسی به لایه های زیرین سیستم عامل را داره ؟ منظورم اینه که ایا می شه برنامه هایی در سطح کرنل نوشت ؟

در کل Mono به سطح سیستم عامل نزدیکتر است تا OpenJDK. البته برای Windows امکانات توسعه نرم‌افزارهای سیستمی با کمک dotNet وجود دارد اما در سیستم‌عامل‌هایی مثل Windows یا سیستم‌عامل‌های خانواده Unix نوشتن چنین برنامه‌هایی بهتر است با زبانهایی مثل C و ++C باشد.

البته سیستم‌عامل‌هایی وجود دارند که به آنها اصطلاحاً Language Based یا Managed OS گفته می‌شود. برای مثال Singularity که به طور کامل با زبان #C ساخته شده. یا JavaOS که با زبان Java پیاده شده. در این سیستم‌عامل‌ها حتی Driverها نیز با این زبانهای سطح بالا پیاده‌سازی می‌شوند. که البته هنوز از آنها در سطح وسیع استفاده نمی‌شود.

FastCode
چهارشنبه 16 آذر 1390, 18:00 عصر
نظرتون راجع به
Mono.Posix.Native.Syscall
چیه؟
از این نزدیک تر به سیستم عامل چی میخواهید؟

www.iranbazargan.com
شنبه 20 اسفند 1390, 21:41 عصر
خیلی جالب بود میشه منابه بیشتری برای مطالعه معرفی کنید
www.iranbazargan.com (http://www.iranbazargan.com)