تمام سوالات سوالات بدون پاسخ سوال بپرسید

دانستن تفاوت هایی چند میان زبان های مطرحی همچون #C و Java خالی از لطف نیست. ضمن اینکه دوستان زیادی از هر دو طرف ممکن است به سمت دیگر هم علاقه ای داشته باشند و بخواهند دستی هم در آن بگردانند. خواهش می کنم دوستان مشارکت بفرمایند و نکاتی در این باب متذکر شوند تا بلکه از این رهگذر کسی منتفع شود.
نیازی به گفتن نیست که در این جا بحث تنها بر سر syntax خواهد بود و قرار نیست در مورد زبان ها جانب گرایانه سخنی گفته شود. بدیهی است هر کدام از این زبان ها می توانند بجای خود کاربردهای بسیار خوبی داشته باشند که بعضاً زبان دیگر نمی تواند آن اندازه از کارآیی را در آن زمینه داشته باشد. امید است این مطالب برای بیننده ای سودمند افتد.
پیدا کردن یک مقایسه ساده میان این زبان ها و syntax آن ها در وب کار ساده ای است. پیشنهاد می کنم دوستان در هر کدام از موارد که تمایل دارند بصورت خاص راه حل هایی ارائه دهند تا دیدها باز شود.

3 پاسخ

با یک جستجوی کوچک در وب به مطالب زیادی در مقایسه syntax این دو زبان بر می خوریم. چند مورد بسیار ساده که به نظرم جالب آمدند، این چنین هستند:

  1. یک پیوند جالب دیدم که به نظر می آید کاربردی باشد.
  2. مقایسه ای هم احتمالاً عادلانه میان این دو زبان در wikipedia موجود است.
  3. این هم یک مقایسه دیگر میان syntax های این دو زبان.

یکی از موارد تفاوت میان #C و Java در Lambda Expression هاست. این نوع از عبارات واقعاً در #C کاربردی است و می تواند کدنویسی را بسیار کوتاه کند. اما جای خالی آن در Java به شدت احساس می شود. ظاهراً قرار است این جای خالی در JDK 8 پر شود. پروژه ای در OpenJDK تعریف شده است که بعنوان پیاده سازی مرجع lambda expression در JDK 8 پیشنهاد شده است و این پیشنهاد در دست بررسی است. همانطور که انتظار می رفت این مفهوم کمی با مفهوم مشابه در زبان #C متفاوت است ولی این تفاوت ها زیاد نیست و براحتی برای کاربران #C قابل درک خواهد بود.


جای Property ها در Java کاملاْ خالی است. به نظر من این مورد در #C کاملاْ کاربردی است. در #C نحوه کار به این صورت خواهد بود:

private string name = "Default Name";
public string Name 
{
    get 
    {
    return name;
    }
    set
    {
    name = value;
    }
}

در مورد Auto Property ها در #C هم که بسیار وضعیت بهتر است:

public string Name {get; set;}

در Java برای تعریف همین Property به شکل دیگری رفتار می شود. (در واقع این روش در ++C هم قابل اجرا بود):

private String name = "Default Name";
public String getName()
{
    return name;
}

public void setName(String aName)
{
    name = aName;
}

البته در مورد وجود Property ها در Java بصورت First class object، ظاهراْ در JDK 1.7 بحث شده است ولی آقایان هنوز به نتیجه نرسیده اند!
یک راه پیشنهادی برای داشتن Property ها در Java با کمک AspectJ در این مقاله پیشنهاد شده است. دوستان توجه داشته باشند که با استفاده از این راه حل می توان موارد زیادی را به Java افزود. قدرت استفاده از AOP قابل ملاحظه است.

toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×209
  • ×101
  • ×35
  • ×32
  • پرسیده شده: 10 دسامبر '11, 16:06
  • بازدید: 7,879 بار
  • آخرین بروزرسانی: 13 دسامبر '11, 20:40

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها