این زبان توسط والتر برایت، مولف کامپایلرهای++ C/C شرکت دیجیتالمارس2 و برنامهنویس اسبق کامپایلر برای Zorland و Symantec، مولف اولیه این زبان بوده است و از پروژه پیادهسازی آن حمایت میکند. اگرچه بسیاری از تصمیمات، درمورد پیشبرد این زبان برنامهنویسی، در گروههای خبری و گفتگو اتخاذ میشود.
تفاوت D با دیگر زبانها
++C
D بهمنظور پوشش ضعفها و کمبودهای C++ طراحی شده است، اما با وجود قدرتمند بودن آن، پیچیدگیهای ناخواستهباعث زمینگیر شدن آن شده است. شاید بزرگترین تغییر D نسبت به C++، خودکار کردن Garbage Collection باشد، هرچند که دستورات مستقیم همانند سابق برای خالی کردن زباله کار میکنند.
Java
اگر چه جاوا پدر اصلی D نیست، اما بسیاری از تکنیکهای جاوا در آن جای داده شده است. تاجاییکه برخی ادعا میکنند، Syntaxهای از پیش تعیین شده در D از بسیاری جهات، به جاوا شبیه است. در صورتی که در حقیقت باید شبیه به یکی از زبانهای شیگرای مدرن باشد.
شباهتهای میان ایندو بسیار است. هر دو بین عملوندهای (.)، ->) و (::) تفاوتی قائل نمیشوند. هر دو NULLرا بهعنوان کلمه کلیدی میشناسند و از ویژگی Try-catch-finally پشتیبانی میکنند. اما، تفاوت اساسی میان D و جاوا، این است که کدهای دستور زبان D به زبان ماشین ترجمه میشود و مستقیما در ماشین مقصد اجرا میشود.
#C
این دو، یعنی# C و D در حقیقت دو پاسخ به یک سوال اساسی هستند: چگونه میتوانیم++ C را بهتر کنیم؟ هر دو از++ C مشتق شدهاند و عناصری از جاوا را در خود دارند. مهمترین تفاوت میان D و# C، این است که D بر خلاف #C داخل ماشین مجازی اجرا نمیشود. بنابراین میتواند در بهکارگیری کدهای سیستمی (سطح پایین) مورد استفاده قرار گیرد. این امر باعث میشود D قابلیت مدیریت دستی و ریز به ریز حافظه را در اختیار برنامهنویس قرار دهد، هرچند که# C بهگونهای کاملا متفاوت این کار را انجام میدهد.
هنوز# C نتوانسته است، توانایی قالبی3 را همچون C++ پیاده کند و این موضوع، از برتریهای D محسوب میشود.
بار دوم، D چیست؟
تا بهحال دریافتیم که D چه چیزهایی نیست. اما بهتر است نقاط قوت و رقابتی این سیستم عامل را بررسی کنیم.
این زبان میتواند کتابخانهها و کدهایی که با زبان C نوشتهشدهاند را استفاده کند و بهآنها متصل شود. بدین ترتیب، دیگر نیازی نیست نگران پشتیبانی از کدهای قدیمی خود باشید. اما، D هنوز بهطور کامل با C++ همخوانی ندارد. اما نگران نباشید، بهزودی بستهای برای پشتیبانی از C++ در راه است.
برنامهنویسی سیستمی
گفتیم که شیوه اجرای D بهچه صورت است، بدینترتیب D میتواند از اسمبلیداخلمتن4 برای کدنویسی استفاده کند. سرعت سیستمی را تصور کنید که با کدهای ماشین داخل کدهای شیءگرا نوشته باشید.
وضوح واژهای و گرامری
یکی از اهداف D رفع بسیاری از پیچیدگیهای ناکارآمد C++ است که در بحث استانداردسازی کدها، باعث بروز مشکل برای کامپایلر شده است. گرامر ساده، کار را هم برای کامپایلر و هم برای برنامهنویس آسان می کند و باگهای رایج را کاهش میدهد. بهعنوان مثال، D گرامر پرانتزی ضمخت تعریف قالبها را کنار میگذارد و تحلیل و خواندن را آسانتر میکند.
حذف ویژگیهای کهنه
شاید بزرگترین هدف زبان D، حذف ویژگیهای منسوخ شده و یا ویژگیهای پیچیده بیمصرف باشد. برای مثال، D کاملا بهدور از پیشپردازنده C عمل میکند، در عوض به تواناییهای روش درونساخته تکیه میکند. همچنین، D ارثبری چندگانه و اغلب پیچیده C++ را، با ارثبری ساده و یگانه جاوا و واسطههای آن جایگزین میکند.
قابل ذکر است که اینها، تمام ویژگیها یا نقاط ضعف این زبان برنامهنویسی نبود و سعی شد نگاهی اجمالی به این زبان برنامهنویسی انداخته شود. برای کشف بقیه ویژگیهای این زبان بهتر است، در وهله اول وبسایت این زبان را جستجو کنیم و بعد بهسراغ گروههای برنامهنویس D برویم که قطعا در تالارهای گفتگوی مجازی به بحثهای داغی مشغولند. برای اطلاعات بیشتر، به لینکهای زیر مراجعه کنید:
http://digitalmars.com/d
پینوشتها
Gnome C Compiler.1
Digital Mars.2
Template.3
In-line-assembly.4
امیربهاالدین سبطالشیخ
گفتوگو با دبیر آیین نکوداشت چهرههای ماندگار میراث فرهنگی ایران درباره کارنامه مرحوم دکتر میرشکرایی؛
حسین زمانی، بازیگر تلویزیون در گفتوگوی اختصاصی با روزنامه «جامجم» از ۲۰۰ بار اهدای خون و ترویج فرهنگ ایثار میگوید
در گفتوگوی روزنامه «جامجم» با رئیس مؤسسه استنادی و پایش علم و فناوری جهان اسلام بررسی شد:
رئیس سندیکای مواد دارویی: