- یک بررسی علمی (بدون علامت تعجب احساسی در انتهای جمله) اینجا هست: (+)
در «یک میلیون بار» اجرا، حدودا 10 ثانیه تفاوت اجرا است نسبت به حالت بکارگیری رشتهها.
البته شما در عمل، نه در محیط آزمایشگاهی، پیدا کنید برنامهای را که یک میلیون بار بخواهد خواصی را مرتبا به روز کند.
- زمانیکه LINQ هم ارائه شد، اولین مقالاتی که در این مورد ... در مورد نقد آن منتشر شد، تمرکز را گذاشتند روی کارآیی؛ که این کمی کند است! البته الان کمتر کسی است که در پروژههایش حداقل از LINQ to Objects استفاده نکند. به این دلایل:
- هدف استفاده از LINQ اصلا مسابقهی سرعت نیست.
- هدف تولید کدهای Strongly typed که این اهمیتها را دارند: تحت نظر کامپایلر هستند، قابلیت refactoring دارند و intellisense خودکاری را به همراه خواهند داشت. تمام اینها نگهداری یک پروژه را (که اصل زمان اختصاص داده شده به توسعه یک نرم افزار هم همین قسمت نگهداری است)، سادهتر و قابل تحملتر میکند.
- کاهش حجم کدهای نوشته شده. شما میتونید حجم بالایی از if-else و for و حلقهها و غیره رو با یک سطر LINQ نمایش بدید. این هم در بالابردن خوانایی و همچنین نگهداری سادهتر برنامه مؤثر است.
- تبدیل سادهتر اطلاعات خام به اشیاء (LINQ to xyz ها)
و ...
شما خیلی از مزایا رو بدست خواهید آورد اما خوب مسلما اینها هزینه هم دارند. اما نه آنچنان که کسی بخواهد از آنها صرفنظر کند.
در «یک میلیون بار» اجرا، حدودا 10 ثانیه تفاوت اجرا است نسبت به حالت بکارگیری رشتهها.
البته شما در عمل، نه در محیط آزمایشگاهی، پیدا کنید برنامهای را که یک میلیون بار بخواهد خواصی را مرتبا به روز کند.
- زمانیکه LINQ هم ارائه شد، اولین مقالاتی که در این مورد ... در مورد نقد آن منتشر شد، تمرکز را گذاشتند روی کارآیی؛ که این کمی کند است! البته الان کمتر کسی است که در پروژههایش حداقل از LINQ to Objects استفاده نکند. به این دلایل:
- هدف استفاده از LINQ اصلا مسابقهی سرعت نیست.
- هدف تولید کدهای Strongly typed که این اهمیتها را دارند: تحت نظر کامپایلر هستند، قابلیت refactoring دارند و intellisense خودکاری را به همراه خواهند داشت. تمام اینها نگهداری یک پروژه را (که اصل زمان اختصاص داده شده به توسعه یک نرم افزار هم همین قسمت نگهداری است)، سادهتر و قابل تحملتر میکند.
- کاهش حجم کدهای نوشته شده. شما میتونید حجم بالایی از if-else و for و حلقهها و غیره رو با یک سطر LINQ نمایش بدید. این هم در بالابردن خوانایی و همچنین نگهداری سادهتر برنامه مؤثر است.
- تبدیل سادهتر اطلاعات خام به اشیاء (LINQ to xyz ها)
و ...
شما خیلی از مزایا رو بدست خواهید آورد اما خوب مسلما اینها هزینه هم دارند. اما نه آنچنان که کسی بخواهد از آنها صرفنظر کند.