PDA

View Full Version : نظرتون در مورد زبان D چیه؟



mojtaba.baghban
یک شنبه 03 دی 1391, 20:41 عصر
یه مقاله در مورد زبان D دیدم و ازش خوشم اومد. سینتکس راحت‌تری نسبت به C++ داره و جمع‌آوری حافظه رو خودش انجام می‌ده و .... می‌خواستم نظرتون رو در موردش بدونم و چندتا سوال؟
آیا میشه از کتابخانه‌های زبان C تو این زبان استفاده کرد؟
چه فریمورکهایی واسه این زبان وجود داره؟
پشتیبانیه فریمورک Qt از این زبان در چه حده؟
دلیل عدم محبوبیتش چیه؟
ممنون از جواباتون

H_G_G_I
یک شنبه 03 دی 1391, 21:03 عصر
من که تا حالا اسمشم نشنیدم ! از این جور زبانا ریخته باوا !!!!!!!!
هیچی مثل سی پلاس نمیشه !:لبخندساده:

mojtaba.baghban
یک شنبه 03 دی 1391, 21:47 عصر
خودشون اینجوری معریش می‌کنن
زبانی که قرار بود C++ اینجوری باشه.
اینم یه معرفیش تو ویکی‌پدیا http://en.wikipedia.org/wiki/D_language
اینم یه لینک فارسی http://forum.ubuntu.ir/index.php/topic,11087.0.html

از این جور زبانا ریخته باوا
مثلا چه زبان‌هایی؟
یه چیز دیگه C++ واسه این بوجود اومد که شی‌گرایی رو به C اضافه کنه. ولی آیا تنها زبانیه که این کار رو کرده؟ مثلا C-Objective هم یه زبانیه که از C الهام گرفته شده و شی‌گرایی رو هم داره اتفاقا تو رنکینگ سایت tiboe بالاتر از C++ در رتبه سوم قرار داره هر چند بخاطر اینکه توسعه دهندش اپل هست خوشم ازش نمیاد.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
زبان D هم الهام گرفته شده از C است و شی‌گرایی رو هم داره

omidshaman
یک شنبه 03 دی 1391, 21:54 عصر
زبون زیاد فرق نداره مهم اینه که بتونین بیشترین استفاده رو از اون زبون بکنین!
از نظر من C++‎ راحت تره یادگیریش چون مستندات انگلیسی ومخصوصا فارسی ! بیشتری داره...
تو اون لینکی هم که دادی اصلا D تو 20 تای اولم نیست:)
حالا نمی دونم شما D یاد بگیر C++ هم یاد بگیر بیا برای ما هم تعریف کن!
فکر هم نمی کنم تو ایران یا حداقل تو این سایت کسی باشه که D بلد باشه!!

aidinMC
یک شنبه 03 دی 1391, 22:23 عصر
والا از من بپرسی هیچ چیزو با سی پلاس عوض نمیکنم!
تو لینکی که داده بودی همش از این صحبت میکرد که سی پلا پلاس کدهاش طولانی هستشو از اینجور حرفا ، بنظر من طولانی هم باشه ، لذت بخشه! خیلی هم رو جدید بودن زبون D تاکید داشت! خب سی پلاس هم هر دوره استانداردتر میشه ، الانم منتظر C++‎‎14 هستیم...
حالا خود دانی.....

mojtaba.baghban
یک شنبه 03 دی 1391, 23:00 عصر
از نظر من C++‎‎‎ راحت تره یادگیریش چون مستندات انگلیسی ومخصوصا فارسی ! بیشتری داره...
از نظر مستندات موافقم ولی D پیچیدگی کمتری داره مثلا شما واسه داشتن یه آرایه پویا نیاز نیست دست به دامن اشاره‌گرها بشین.

حالا نمی دونم شما D یاد بگیر C++‎‎ هم یاد بگیر بیا برای ما هم تعریف کن!
یادگیری سینتکس یه زبان جدید کارن نداره به قول خودتون

مهم اینه که بتونین بیشترین استفاده رو از اون زبون بکنین!
یه برنامه‌نویس وقتی میره یه زبان جدید یاد بگیره که قبلیه یه کمبودی داشته باشه وکمبودهایی که من تو C++‎ می‌بینم یکیش اینه که مدیریت حافظه بر عهده برنامه‌نویسه که کار طاقت فرساییه یکی هم اینکه پیچیدگی زیادی داره

omidshaman
یک شنبه 03 دی 1391, 23:29 عصر
یه برنامه‌نویس وقتی میره یه زبان جدید یاد بگیره که قبلیه یه کمبودی داشته باشه وکمبودهایی که من تو C++‎‎‎‎‎‎‎‎‎‎ می‌بینم یکیش اینه که مدیریت حافظه بر عهده برنامه‌نویسه که کار طاقت فرساییه یکی هم اینکه پیچیدگی زیادی داره
توی C++‎‎‎‎‎‎‎‎11 دو نوع پوینتر جدید داریم که بصورت خودکار پاک میشن
http://www.stroustrup.com/C++‎‎‎‎‎‎‎‎11FAQ.html
http://en.cppreference.com/w/cpp/memory/unique_ptr
منظورت از پیچیدگی چیه؟

از نظر مستندات موافقم ولی D پیچیدگی کمتری داره مثلا شما واسه داشتن یه آرایه پویا نیاز نیست دست به دامن اشاره‌گرها بشین.
فکر کنم شما هنوز با template ها اشنا نشدین!!(vector,list...)

یادگیری سینتکس یه زبان جدید کارن نداره به قول خودتون
اولا من جایی نگفتم کاری نداره!!
دوما اره یاد گیری سینتاکس اسونه(البته بستگی به زبونش داره!) ولی خوب برنامه نویسی یک مقدار خیلی کمیش یاد گیری سینتکس هاست!!
و به نظر من شما به جای این که وقتتو برای D هدر بدی همون وقت رو بزار C++‎‎‎‎‎‎‎ رو عمقی تر یاد بگیر
یا حداقل یک زبون کاربردی تر مثل جاوا رو یاد بگیر!!

mojtaba.baghban
دوشنبه 04 دی 1391, 00:12 صبح
اولا من جایی نگفتم کاری نداره!!
این "به قول خودتون" که تو پست قبلی گفتم مربوط به جمله‌ای میشه که تو خط بعدیش ازتون نقل قول کردم.

فکر کنم شما هنوز با template ها اشنا نشدین!!(vector,list...)
من بعد از C زبان C# رو یاد گرفتم تو اون زبان اینجور اشیایی داشتیم ولی فکر نمی‌کردم C++ هم داشته باشه. حالا ایا که گفتی جز ساختار زبان سی پلاس هستند یا باید کتابخانه‌اش را اضافه کرد.
همانطور که گفتم من بعد از C زبان C# رو یاد گرفتم. کار باهاش خیلی راحت بود می‌خوام ببینم مثلا تو سی شارپ واسه اعضای خصوصی کلاس می‌تونیم خاصیت تعریف کنیم که نیازی به توابع set و get رو نداشته باشیم آیا سی پلاس این رو داره یا چند تا چیز دیگه مثل
سربارگزاری عملگرها
توابع ویرچال که تو وارث اون کلاس اونرو تعریف مجدد کنیم
توابع جنریک

omidshaman
دوشنبه 04 دی 1391, 00:29 صبح
این "به قول خودتون" که تو پست قبلی گفتم مربوط به جمله‌ای میشه که تو خط بعدیش ازتون نقل قول کردم.
حالا بیخیال :لبخند:

اینا که گفتی جز ساختار زبان سی پلاس هستند یا باید کتابخانه‌اش را اضافه کرد.
جز ساختار وکتابخانه های استاندارد C++‎ هستن
در مورد پیچیدگی برای c تا حدی باهاتون موافقم ولی C++‎ این طوری نیست!

سربارگزاری عملگرها
بله میشه

توابع ویرچال که تو وارث اون کلاس اونرو تعریف مجدد کنیم
اره میشه

همانطور که گفتم من بعد از C زبان C#‎‎ رو یاد گرفتم. کار باهاش خیلی راحت بود می‌خوام ببینم مثلا تو سی شارپ واسه اعضای خصوصی کلاس می‌تونیم خاصیت تعریف کنیم که نیازی به توابع set و get رو نداشته باشیم آیا سی پلاس این رو داره ی
من C#‎ کار نکردم منظورتونو نفهمیدم!
شما دلیلتون چیه که می خواین D رو یاد بگیرین اونم بعد از C#‎ ؟

mojtaba.baghban
دوشنبه 04 دی 1391, 01:04 صبح
شما دلیلتون چیه که می خواین D رو یاد بگیرین اونم بعد از C#‎‎ ؟
یکی اینکه C# تو انحصار مایکرو سافته و دیگری اینکه تک سکویی هستش.
تو فکر یادگیریه C++ بودم که یه پستی در مورد زبان D دیدم و من نگفتم که می‌خوام D یاد بگیرم واسه همین تایپیک زدم که نظرتون رو در موردش بدونم. هرچند به نظر نمیاد آینده‌ای داشته باشه. یه چیز دیگه من در مورد C++11 نمیدونستم که دیدم ویژگی‌های خوبی تو این ورژن بهش اضافه شده.

من C#‎‎ کار نکردم منظورتونو نفهمیدم!
مثلا توی یه کلاس مانند test یه عضو خصوصی داریم به اسم number و واسه این عضو دو تابع getnumber و setnumber می‌خوایم واسه دسترسی بهش که تو سی شارپ میشه یه خاصیت به نام Number تعریف کرد که توش دو تابع get و set داره و خارج از اون کلاس باهاش مثل متغیر برخورد میشه و اگه مثلا بنویسیم

test.Number = 10 تابع set از اون خاصیت با آرگومان 10 فراخوانی میشه و احتیاجی به توابع getnumber و setnumber نیست.
این قابلیت درسته که خیلی هم واجب نیست ولی به هر حال کدنویسی رو راحت می‌کنه و برنامه رو قشنگ‌تر.

H_G_G_I
دوشنبه 04 دی 1391, 10:35 صبح
یه برنامه‌نویس وقتی میره یه زبان جدید یاد بگیره که قبلیه یه کمبودی داشته باشه وکمبودهایی که من تو C++‎‎ می‌بینم یکیش اینه که مدیریت حافظه بر عهده برنامه‌نویسه که کار طاقت فرساییه یکی هم اینکه پیچیدگی زیادی داره

من خودم سی شارپ رو استاد بودم ولی ولش کردم به خاطر راحتیش !
وقتی یه زبان خودش حافظه رو مدیریت می کنه مطمعنا برنامه شما خیلی کند تره ! البته این مسعله تو برنامه های معمولی مثل حساب داری و چند تا فرم ساده مهم نیست!
ولی شما اگه بخواین نرم افزار های سه بعدی ، موتور های بازی و امثالش رو بسازید اونوقت به یه زبان مناسب مثل سی پلاس احتیاج دارید !
بهر حال هرچی زی را بهر کاری ساختن !
ادم برا طراحی یه صفه وب که نباید مدیریت حافظه کنه ! اما برا کارای دیگه لازمه !