بسمه تعالی
به نظر شما کدامیک از زبانهای دات نت سرعت بالاتری داره یا این که فرقی نداره؟
VB.NET
visual C#
delphi .net
C#builder
بسمه تعالی
به نظر شما کدامیک از زبانهای دات نت سرعت بالاتری داره یا این که فرقی نداره؟
VB.NET
visual C#
delphi .net
C#builder
اصولا در شرایط مشابه زبانی سریعتره که برای نوشتن برنامه احتیاج به کد نویسی بیشتری داره بخاطر اینکه برنامه نویس مقدار کد اضافه کمتری مینویسه و کدش تخصصی تر میشه (فقط کاری رو که میخواد سفارش میده نه کار اضافه دیگهای رو)
زبانهایی که کدنویسی رو کم میکنند معمولا همراه با کاری که برنامه نویس خواسته کارهای اضافه دیگهآی هم انجام میدهند (مثل ویژوال بیسیک 6)
در نتیجه VB.Net و C#.Net مثل هم اند
Delphi و C#Builder: قدیما Delphi سریعتر از C Builder بود شاید در مورد دات نتشون هم همینطور باشه! :wink:
میمونه Delph.Net و C# که خودتون ببینید کدوم سریعترند!!!!!!!! :wink:
چون تمامی کد ها به IL ترجمه می شوند فرقی ندارد.
Artists use lies to tell the truth while politicians use them to cover the truth up
ایشون درست میگن. توی دات نت فرقی نمی کنه!!چون تمامی کد ها به IL ترجمه می شوند فرقی ندارد
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
لزوما" اینطور نیست . درسته که نهایتا" همهء برنامه ها به IL تبدیل میشن ، اما تعهدی وجود نداره که برنامه هائی یک شکل ، دقیقا" به تعدادی کد IL یکسان مبدل بشن . زبانهای مبتنی بر دات نت دارای ویژگیهای متفاوتی هستند ( سی شارپ ویژگیهائی داره که وی بی دات نت نداره ؛ ایضا دلفی دات نت ویژگیهائی داره که سی شارپ نداره و البته بالعکس ) که باعث میشه در بسیاری از موارد برای انجام وظیفه ای یکسان کدهای IL متفاوتی تولید بشه . لازم به ذکره وجود تفاوت در کدهای IL نیز ایضا" لزوما به معنای کندتر یا سریعتر شدن کد نیست .
UNIX is simple. It just takes a genius to understand its simplicity
-- Dennis Ritchie
من شک دارم سرعت تفاوت داشته باشه چون فلسفه وجودی IL همینه که ناهماهنگی رو از میان برداره یعنی همه از یک نوع منابع (سخت افزاری/نرم افزاری) استفاده کنند و نحوه پاسخ گویی سیستم عامل و ایضا framework به هرکدام هم مشابه باشه وتازه مایکروسافت ادعا میکنه که برای تولید یک محصول استراتژیک دیگه لازم نیست توسعه دهندگان یا بهتر بگم کدنویسان مجبور به استفاده از یک نوع زبان برنامه نویسی خاص باشند یکی از شعارهایی که همیشه طرفداران دات نت دادن اینه که وپژگیها تفاوتی نداره و فقط سبک نوشتن متفاوته البته قبول دارم که #C قابلیتهایی که داره که بعضی کار ها رو راحتر میکنه ولی این تو ذات خود C و هم خانواده های اونه که #C هم به ارث برده ولی دلیلی برای برتری اون نمیشه
البته این فقط نظر منه
اگه جناب inprise برای این موارد مصادیقی رو بفرمایند مورد امتنان استسی شارپ ویژگیهائی داره که وی بی دات نت نداره ؛ ایضا دلفی دات نت ویژگیهائی داره که سی شارپ نداره و البته بالعکس
البته اگه بجای جواب پست من حذف نشه :shock:
"نظر شخصی " دادن در مورد مسائلی که سلیقه میتونه توش دخیل باشه معنی داره ! این از اون دسته مسائل نیستالبته این فقط نظر منه
فلسفهء وجودی IL اینی که گفتی نیست ، اما حالا مورد بحث چیز دیگریه . اگر کمی دقت کنی به وضوح تفاوت آنچه میگی با آنچه در عمل اتفاق می افته رو میتونی ببینی :چون فلسفه وجودی IL همینه که ناهماهنگی رو از میان برداره
زبانهای مبتنی بر دات نت دارای ویژگیهای متفاوتی هستند ( سی شارپ ویژگیهائی داره که وی بی دات نت نداره ؛ ایضا دلفی دات نت ویژگیهائی داره که سی شارپ نداره و البته بالعکس ) که باعث میشه در بسیاری از موارد برای انجام وظیفه ای یکسان کدهای IL متفاوتی تولید بشه
اگر برنامه نویس دات نت باشی لابد تفاوتهای ماهیتی سی شارپ و وی بی ، یا سی شارپ و سی مدیریت شده یا دلفی دات نت و وی بی و ... رو میدونی . اگر نمیدونی جستجو کن ، پیدا میکنی ، ربطی به موضوع این تاپیک نداره . حتی اگر بیخیال تفاوتهای ذاتی زبانها بشیم ، تفاوت عملکرد "کامپایلر"های زبانهای مبتنی بر دات نت میتونه براحتی باعث ایجاد خروجی های مختلف بشه . با جستجو میتونی نمونه های مختلفی رو پیدا کنی مثل : http://www.iunknown.com/000144.html و مواردی از این دستاگه جناب inprise برای این موارد مصادیقی رو بفرمایند مورد امتنان است
البته اگه بجای جواب پست من حذف نشه
در نتیجه :
بدون توجه به مقوله سرعت :
زبانهای مختلف مبتنی بر دات نت ، برای وظایف یکسان و مشابه ، گاهی ، کدهای IL مختلفی ایجاد میکنند .
با توجه به مقوله سرعت :
تفاوت IL مرتبط با دو برنامهء مشابه ، ممکنه باعث تفاوت سرعت اجرا بشه ، و ممکنه نشه . بستگی به شرایط داره .
موفق باشید
UNIX is simple. It just takes a genius to understand its simplicity
-- Dennis Ritchie
سلام
از جوابتون ممنونم ولی...
من حرفه ای دات نت کار نمیکنم حرفه ای هم نیستماگر برنامه نویس دات نت باشی لابد تفاوتهای ماهیتی سی شارپ و وی بی ، یا سی شارپ و سی مدیریت شده یا دلفی دات نت و وی بی و ... رو میدونی . اگر نمیدونی جستجو کن ، پیدا میکنی ، ربطی به موضوع این تاپیک نداره . حتی اگر بیخیال تفاوتهای ذاتی زبانها بشیم ، تفاوت عملکرد "کامپایلر"های زبانهای مبتنی بر دات نت میتونه براحتی باعث ایجاد خروجی های مختلف بشه . با جستجو میتونی نمونه های مختلفی رو پیدا کنی مثل : http://www.iunknown.com/000144.html و مواردی از این دست
منظور من تفاوت ماهیتی میان وی بی و #C نیست منظورم تفاوت ماهیتی بین زبانهای دات نته
چه چیزی در #C از نظر ماهیتی بر vb.net رجحان دارد و احتمالا برعکس
حتما درستهبدون توجه به مقوله سرعت :
زبانهای مختلف مبتنی بر دات نت ، برای وظایف یکسان و مشابه ، گاهی ، کدهای IL مختلفی ایجاد میکنند
اینجا یکم جای بحث دارهبا توجه به مقوله سرعت :
تفاوت IL مرتبط با دو برنامهء مشابه ، ممکنه باعث تفاوت سرعت اجرا بشه ، و ممکنه نشه . بستگی به شرایط داره .
افزایش سرعت چه موقع روی میده
وقتی برنامه شما دسترسی بیشتری به منابع (سخت افزاری/نرم افزاری) نسبت به بقیه داشته باشه
که در زبانهایی مثل C و اجدادش و نوادگانش بدلیل ارتباط صریح و بدون واسطه با کرنل سیستم عامل و یا حتی سخت افزار اینگونه بود ولی در مورد دات نت چطور؟
آیا میزان استفاده از توانایی freamwork در زبانهای خاص متفاته ؟ یا دلیل دیگه ای داره؟
خوش باشی :flower:
خیر . اینا رو کی بهت گفته ؟افزایش سرعت چه موقع روی میده
وقتی برنامه شما دسترسی بیشتری به منابع (سخت افزاری/نرم افزاری) نسبت به بقیه داشته باشه
ایضا" اینها رو ...؟در زبانهایی مثل C و اجدادش و نوادگانش بدلیل ارتباط صریح و بدون واسطه با کرنل سیستم عامل و یا حتی سخت افزار اینگونه بود
تفاوت کدهای IL تولید شده ، در بسیاری موارد معادل است با تفاوت سیکلهائی که پردازنده باید برای پردازش دستورات مصرف شده و در موارد دیگری معادل است با Memory Allocation متفاوت و Allocation Time متفاوت و یا حتی Library&Resource Usage متفاوت ؛ که این یعنی در برخی موارد تفاوت در اجرای سرعت برنامه های به ظاهر مشابه . دات نت از یک دیدگاه ، داره وظایف یک اسمبلر رو در یک لایهء بالاتر انجام میده . تو یه مثال نسبتا" قابل مقایسه ، ممکنه ظاهر دو برنامه دلفی و BCB که هر دو بصورت همزمان از یک متن یکسان VCL استفاده میکنند ، مشابه باشه ، اما طبیعتا" کدهای تولید شده توسط مترجم ها ( بدون توجه به کتابخانه های متفاوت که شاید در محیط دات نت قابل طرح نباشه ) متفاوت است که "میتونه" باعث تفاوت در سرعت اجرای کد بشه . اینجا بحث رجحان یا برتری یک زبان بر زبان دیگه مطرح نیست . میشه بصورت مفصل اینا رو بررسی کرد که گفتم ربطی به این تاپیک نداره . اونی که به اینجا مربوطه اینه که چون خروجی ها میتونن متفاوت باشن ( = IL های متفاوت ) پس سرعتهای اجرا هم ممکنه در شرایطی متفاوت باشن . پس یک نتیجه گیری کلی به این شکل که یک برنامه با وظایفی خاص و با استفاده از کلاسها و روتینهای مشخص ، با هر زبانی ، تحت دات نت ، سرعت اجرای یکسان خواهد داشت ، غیر علمی و غلط است . چون میتونیم شرایط متعددی بر خلاف این داشته باشیم .در مورد دات نت چطور؟
یک وظیفهء خاص---- استفاده از کلاسهای مشخص دات نت ---- سی شارپ ---- IL 1
یک وظیفهء خاص---- استفاده از کلاسهای مشخص دات نت ---- وی بی ---- IL 2
چون تضمین و تعهدی وجود نداره که IL1 و IL2 با هم یکسان باشن ، تعهد و تضمینی برای یکسان بودن روند اجرای اونها ( از جمله سرعت ) وجود نداره .
UNIX is simple. It just takes a genius to understand its simplicity
-- Dennis Ritchie
بهتر است بجای این همه دعوا نگاهی به این سایت بکنید.
http://msdn.microsoft.com/vstudio/pr...s/default.aspx
نتیجه :
برنامه نوشته شده با زبان VB.net و VC#.net تقریبا در یک سطح می باشند ولی برنامه نوشته شده با VC++.Net علاوه بر اینکه بسیار Optimize تر است قابلیت های بسیار زیادی را در اختیار برنامه نویس قرار می دهد.
موفق باشید :wink:
شبیه به این سوال چند وقت پیش در قسمت دلفی هم مطرح شده بود، البته با دید دیگری... (به جوابهای کامبیز خان دقت بفرمایید)
http://www.barnamenevis.org/vi...er=asc&start=0
اگر با فرهنگ مباحثه آشنا نیستی سعی کن خودت رو قاطیش نکنی .بهتر است بجای این همه دعوا نگاهی به این سایت بکنید
در یک سطح بودن مفهوم علمی نداره . کامپایلرهای دات نت بصورت منطقی در ازای وظایف مشخص و کاربردهای معین از فریم ورک ، کدهای IL متفاوتی تولید میکنن . این یعنی تفاوت در کارکرد .برنامه نوشته شده با زبان VB.net و VC#.net تقریبا در یک سطح می باشند
Managed CPP هیچ امکانی فراتر از سایر زبانها ، وقتی هدف توسعه بر فراز دات نت باشه ، در اختیار توسعه گر قرار نمیده .برنامه نوشته شده با VC++.Net علاوه بر اینکه بسیار Optimize تر است قابلیت های بسیار زیادی را در اختیار برنامه نویس قرار می دهد.
بین مطالب این دو تاپیک هیچ ارتباط منطقی ندیدم .به جوابهای کامبیز خان دقت بفرمایید
موفق باشید
UNIX is simple. It just takes a genius to understand its simplicity
-- Dennis Ritchie
ربطش به شباهت کدهای نهایی حاصل شده بود در تایید فرمایشات حضرتعالی...بین مطالب این دو تاپیک هیچ ارتباط منطقی ندیدم .
شما دلیل بهتری برای افزایش سرعت سراغ دارید؟نقل قول:
افزایش سرعت چه موقع روی میده
وقتی برنامه شما دسترسی بیشتری به منابع (سخت افزاری/نرم افزاری) نسبت به بقیه داشته باشه
خیر . اینا رو کی بهت گفته ؟
نقل قول:
در زبانهایی مثل C و اجدادش و نوادگانش بدلیل ارتباط صریح و بدون واسطه با کرنل سیستم عامل و یا حتی سخت افزار اینگونه بود
ایضا" اینها رو ...؟
دقیقا و این یعنی استفاده متفاوت از منابع سخت/نرم افزاریتفاوت کدهای IL تولید شده ، در بسیاری موارد معادل است با تفاوت سیکلهائی که پردازنده باید برای پردازش دستورات مصرف شده و در موارد دیگری معادل است با Memory Allocation متفاوت و Allocation Time متفاوت و یا حتی Library&Resource Usage متفاوت ؛
من به جناب inprise ارادت شدیدی دارمبهتر است بجای این همه دعوا نگاهی به این سایت بکنید.
عزیز من ما دعوا نمیکنیم فقط داریم بلند بلند فکر میکنیم :roll:
شدیدا قبول دارمدر یک سطح بودن مفهوم علمی نداره . کامپایلرهای دات نت بصورت منطقی در ازای وظایف مشخص و کاربردهای معین از فریم ورک ، کدهای IL متفاوتی تولید میکنن .
آیا راه های مختلف برای رسیدن به هدف موجب سرعت متفاوت میشه؟این یعنی تفاوت در کارکرد .
لازم نیست من دلیل داشته باشم . این مباحث سالهاست که بصورت آکادمیک تدریس میشه و میتونی برای کسب اطلاع به منابعش مراجعه کنی . جوابت قبلا داده شده :شما دلیل بهتری برای افزایش سرعت سراغ دارید؟
تفاوت کدهای IL تولید شده ، در بسیاری موارد معادل است با تفاوت سیکلهائی که پردازنده باید برای پردازش دستورات مصرف شده زمان و توان صرف کنه و در موارد دیگری معادل است با Memory Allocation متفاوت و Allocation Time متفاوت و یا حتی Library&Resource Usage متفاوت ؛ که این یعنی در برخی موارد تفاوت در اجرای سرعت برنامه های به ظاهر مشابه . دات نت از یک دیدگاه ، داره وظایف یک اسمبلر رو در یک لایهء بالاتر انجام میده . تو یه مثال نسبتا" قابل مقایسه ، ممکنه ظاهر دو برنامه دلفی و BCB که هر دو بصورت همزمان از یک متن یکسان VCL استفاده میکنند ، مشابه باشه ، اما طبیعتا" کدهای تولید شده توسط مترجم ها ( بدون توجه به کتابخانه های متفاوت که شاید در محیط دات نت قابل طرح نباشه ) متفاوت است که "میتونه" باعث تفاوت در سرعت اجرای کد بشه . اینجا بحث رجحان یا برتری یک زبان بر زبان دیگه مطرح نیست
لزوما" خیر . اما همانطور که تفاوت در راههای رسیدن به خدا ، میتونه باعث تفاوت در زمان رسیدن به خدا - یا در مواردی زمان رسیدن به جهنم ! - بشه ، تفاوت کد خروجی کامپایلرهای متعدد ، هر چند اون کد یک زبان واحد و مشخص باشه - چه IL چه اسمبلی چه خود ِ زبان ماشین - اغلب باعث تفاوت کارکرد خواهد شد .آیا راه های مختلف برای رسیدن به هدف موجب سرعت متفاوت میشه؟
UNIX is simple. It just takes a genius to understand its simplicity
-- Dennis Ritchie
فکر میکنم ادامه این بحث زیاد مفید نیست چون هر دو داریم از زاویه مختلف به بحث نگاه می کنیم
من در فکر رد یا اثبات فرمایشات جناب inprise نیستم فکر میخواهم به سوالی که چند وقته برام پیش اومده جوابی پیدا کنم
سوال : چرا مایکروسافت به فکر ایجاد محیط توسعه یکپارچه (NET.) افتاد و هدف او چه بود
جوابی که خودم بهش رسیدم : برای اینکه تیم های توسعه دهنده فارغ از نوع کد نویسی بتوانند محیط های Enterprise رو سریع ایجاد کنند (البته شاید شما صدها دلیل دیگه هم ذکر کنید که ما به آنها نمی پردازیم)
تذکر : این جواب هیچ استنادی نداره و فقط برداشت من از مجلات ، کتابها ، سایتها ، و... حتی سخنان رفتگر محله میباشد.
خب حالا که هدف مشخص شد در این وادی دیگه لازم نیست برای توسعه یک محیط نرم افزاری یکپارچه حتما تمامی کد نویسها به یک زبان خاص مانند دلفی برنامه نویسی کنند و در این محیط همه با هم برابرند
ولی با توجه به فرمایشات inprise دوباره یکسری از کد نویسان بر دیگران رجحان پیدا میکنند که این با روح دات نت سازگار نیست
زیاد هم نمیشه به مستندات یک شرکت که شدیدا در وادی رقابته اعتماد کرد
مثلا طبق فرمایشات دوست عزیزی در همین سایت تعداد رکورد هایی که اکسس پشتیبانی میکنه بیش از دومیلیارده :shock:
شما بخوبی میدانید که کسانی که کار حرفه ای با دیتابیس میکنند اصلا اکسس رو بعنوان بانک اطلاعاتی قبول ندارند چه برسه که بخوان دومیلیارد رکورد رو به این موتور دیزلی بسپارند
مستندات موقعی مستنداته که منبطق با واقعیات باشه نه از تو کتاب و سایت و تدریس آکادمیک
بهرحال اگه ادامه این بحث موجب ملال خاطر میشود این تاپیک را قفل کنید تا بیشتر در مورد آن تحقیق کنیم
دفعه دومه که دارم این مسئله رو مطرح میکنم : این یک مطلب تکنیکی است . یک مسئله نظری یا فلسفی یا اجتماعی نیست که بشه بهش از زوایای مختلف نگاه کرد . یک کامپایلر سی ، یک کامپایلر سی است ! کسی نمیتونه بگه من از یک زاویهء دیگه به این نگاه میکنم و اون موقع ممکنه چیز دیگری هم باشه . بحث نحوهء پردازش عناصر یک زبان برنامه نویس ، مراحل کامپایل و ساخت و اتصال و نحوهء پردازش خروجی توسط پردازنده و ... همگی دارای وجود فنی و تکنیکی هستند که با مطالعه منابع مربوطه میشه به این وجوه مسلط شد . اینجا زوایای مختلفی وجود نداره .فکر میکنم ادامه این بحث زیاد مفید نیست چون هر دو داریم از زاویه مختلف به بحث نگاه می کنیم
یکی از مشکلات دوستانی مثل تو اینه که بدون داشتن ملزومات اولیه ، تلاش میکنید موجودیتی رو تجزیه و تحلیل کنید یا در موردش حرف بزنید که ، از یک الفبای فنی و حرفه ای تبعیت میکنه . عطف به جواب قسمت اول پاسخم ، ما مجاز نیستیم در مورد مسائل فنی ، مطابق میل و خواسته خودمون ایده و نظریه صادر کنیم . ببین :خب حالا که هدف مشخص شد در این وادی دیگه لازم نیست برای توسعه یک محیط نرم افزاری یکپارچه حتما تمامی کد نویسها به یک زبان خاص مانند دلفی برنامه نویسی کنند و در این محیط همه با هم برابرند
ولی با توجه به فرمایشات inprise دوباره یکسری از کد نویسان بر دیگران رجحان پیدا میکنند که این با روح دات نت سازگار نیست
استناد فنی این ادعا چیه ؟ چه کسی گفته که در یک محیط یکپارچه با حمایت از زبانها مختلف ( که حالا برای اولین بار ! توسط مایکروسافت منتشر شده ) باید همه زبانها در یک سطح و قواره باشند ؟ طبق کدام قاعده و دلیل منطقی ؟خب حالا که هدف مشخص شد در این وادی دیگه لازم نیست برای توسعه یک محیط نرم افزاری یکپارچه حتما تمامی کد نویسها به یک زبان خاص مانند دلفی برنامه نویسی کنند و در این محیط همه با هم برابرند
الف- کدوم بخش از نوشته ها من مستقیما" ناظر بر وجود رجحان یک زبان بر زبان دیگر بود ؟ وقتی گفته میشه بین چند زبان ، میشه تفاوت هائی وجود داشته باشه ، یعنی الزاما" یکی بر دیگری مطلقا" رجحان و برتری داره ؟با توجه به فرمایشات inprise دوباره یکسری از کد نویسان بر دیگران رجحان پیدا میکنند که این با روح دات نت سازگار نیست
ب- طبق چه استدلالی این حقیقت با "روح دات نت " (؟) در تضاده ؟ روح دات نت چیست و کجاست ؟ و چه کسی ویژگیهای اون رو تدوین کرده ؟ طبق کدوم مستند و دلیل فنی ؟
چنین تاپیکهائی برای دوستانی مثل تو میتونه شروع تحقیق باشه . فراگیری روش برخورد حرفه ای فن نرم افزار ، از فراگیری خود این فن مهمتره . این رو قبل از شروع تحقیق بخاطر داشته باش . یک مهندس نرم افزار ، یک مهندس مکانیک ، عمران ، الکترونیک و ... حق نداره ، همینطوری از رو هوا یا مبتنی بر شنیده ها و گفته های غیر تکنیکی ، بدون وجود مطالعه و دانش ، در مورد یک موجودیت فنی اظهار نظر کنه . به عنوان مثال وقتی در جواب سوال " کدام زبان سریعتر است" کسی بگه فرقی نمیکنه ، چون همگی به اسمبلی ترجمه میشن ، چه فکری میشه در موردش کرد ؟ آیا غیر از این است که این آدم حتی مختصری دانش در مورد نرم افزار نداره ؟ دات نت ، جاوا و ... همگی از یک منطق تکنیکی و ثابت تبعیت میکنن ، که نمیشه اون رو از زوایای مختلف نگاه کرد و نتایج مختلفی گرفت . مطالب قبلی من ، مبتنی بر الفبا و مقدمات نرم افزار بود ، نه حاوی Trick پیچیده ای است نه مطلب عمیق و دشوار که با وجود تجربه و مطالعه و بدون دانش اکادمیک هم این مطالب قابل اخذ است . به عنوان مثال میتونی چند نمونه کد بنویسی ، با زبانهای مختلف دات نت ، و بعد IL ها رو مقایسه کنی ، یا حتی میتونی خروجی باینری JIT رو دیس اسمبل کنی و تفاوتهاشون رو ببینی و ...اگه ادامه این بحث موجب ملال خاطر میشود این تاپیک را قفل کنید تا بیشتر در مورد آن تحقیق کنیم
شاید یکی از تفاوتهای جدی وجود یا عدم وجود تحصیلات و مطالعات آکادمیک در حوزهء نرم افزار ، این باشه که ، عطف به داستان اشی مشی ، کسانی که بدون وجود پایهء علمی لازم ، از بین راه وارد یک مبحث نرم افزاری میشن ، آخر داستان ، یکی از بالهاشون همچنان آبی میمونه و حوض نقاشی هم کمک چندانی نمیتونه بهشون بکنه :) ( پاراگراف آخر استئناء هم داره که مورد بحث ما نیست )
موفق باشید
UNIX is simple. It just takes a genius to understand its simplicity
-- Dennis Ritchie
ما که داریم استفاده می کنیم! بحث خوبی هست.
و این به نظر من خیلی طبیعی هست بین کدهای il که توسط زبان های مختلف تولید میشه تفاوتهای باشه.
مقدمه :
بنده برای ادامه بحث(اگه شما تمایل داشته باشید) پیشنهاد میکنم ادبیات نوشتاری خود را عوض کنید
چون شما با طرح سوالات باز عملا راه را برای رسیدن به هدفمون (سرعت کمتر با بیشتر) میبندید
درضمن شما با طرح مسائلی همچون :
و حال ادامه بحث و گفتمان:
در هر مسئله میشود از زوایای مختلف بحث کرد مثلا وقتی شما از تواناییهای زبانی مثل c صبحت میکنید و من از مشکلات یادگیری واستفاده از این زبان آیا از دید و زاویه مختلف به بحث نگاه نمیکینم وآیا ادامه بحث هم به نظر شما مفیده ؟یک مسئله نظری یا فلسفی یا اجتماعی نیست که بشه بهش از زوایای مختلف نگاه کرد
ما لزوما از یک موجودیت یا یک واقعیت خاص یک برداشت مشترک نداریم هرچه که جنابعالی ، بنده ، و یا حتی جناب بیل گیتز از دات نت مطرح میکنیم منطبق با برداشت ما از دات نته و ممکنه با واقعیت فاصله داشته باشهما مجاز نیستیم در مورد مسائل فنی ، مطابق میل و خواسته خودمون ایده و نظریه صادر کنیم .
یک سوال از شما دارم آیا شما با خواندن کتاب (مثلا صادق هدایت :wink: ) میتونی اداعا کنی همان برداشتی رو از کتاب داشتی که مولف خواسته منتقل کنه
و مهمتر از اون چه لزومی به درستی ادعاهای منابع دارید (عطف به گفته های قبلیم درباره رقابت مایکروسافت)
یکبار گفتم که واقعیات رو باید در عمل سنجید و البته دانش فنی قبلی لازم و واجبه
باز هم میگم داریم وارد فلسفه میشیم تا تکنیک
نظرتان را فرمایشات خودتان جلب میکنم اینجا هم بحث مطلقا رجحان نیستکدوم بخش از نوشته ها من مستقیما" ناظر بر وجود رجحان یک زبان بر زبان دیگر بود ؟ وقتی گفته میشه بین چند زبان ، میشه تفاوت هائی وجود داشته باشه ، یعنی الزاما" یکی بر دیگری مطلقا" رجحان و برتری داره ؟
و ایضا نظرتون رو به برخی از سوالات باز از طرف شما جلب میکنمدر یک سطح بودن مفهوم علمی نداره . کامپایلرهای دات نت بصورت منطقی در ازای وظایف مشخص و کاربردهای معین از فریم ورک ، کدهای IL متفاوتی تولید میکنن . این یعنی تفاوت در کارکرد .
بگذارید من به روش شما این بحث رو ادامه بدمطبق چه استدلالی این حقیقت با "روح دات نت " (؟) در تضاده ؟ روح دات نت چیست و کجاست ؟ و چه کسی ویژگیهای اون رو تدوین کرده ؟ طبق کدوم مستند و دلیل فنی ؟
تعریف (برداشت) شما از دات نت چیه ؟
ویژگیهای دات نت چیه ؟ و هدف از طراحی او چه بوده ؟
لطفا کمی در مورد این روش صحبت کنید(نمونه ای از اصطلاحات غیر ضروری که هیچ تعریف آکادمیک نمیشه از اون کرد)فراگیری روش برخورد حرفه ای فن نرم افزار
اگه منظورت مطالعه آکادمیک در ایرانه که همه کسانی که بر اساس دانش دانشگاهی کار میکنن همون گنجشکک اشی مشی هستندشاید یکی از تفاوتهای جدی وجود یا عدم وجود تحصیلات و مطالعات آکادمیک در حوزهء نرم افزار
و در مورد جناب linux
برای من هم این بحث خیلی مفیده چون از یک زاویه دیگه داریم به دات نت نگاه میکنیم :wink:ما که داریم استفاده می کنیم! بحث خوبی هست.
و این به نظر من خیلی طبیعی هست بین کدهای il که توسط زبان های مختلف تولید میشه تفاوتهای باشه.
اینجا بحث تفاوت در il ها نیست تفاوت در سرعت و تفاوت (شاید ساختاری) در محیط یکپارچه سازی است
شما هم موفق باشید
---
Edited
سلام؛
مطالب فنی مربوط به کیفیت و سرعت اجرای برنامه های مبتنی بر دات نت تو جوابهای قبلی من موجوده که هر کسی دنبال یاد گرفتنه بهشون مراجعه میکنه . نکتهء فنی دیگه ای در این سطح باقی نمونده .
موفق باشید
UNIX is simple. It just takes a genius to understand its simplicity
-- Dennis Ritchie
با اینکه تمام اینها به IL ترجمه می شوند ولی به نظر میرسه IL به دست اومده از زبونی مثل vb.net سرعت پایین تری نسبت به IL بدست اومده از managed C++ باشه. برای اینکه بفهمید آیا IL دو برنامه به زبانهای سی شارپ و وی بی یکی هست یا نه یه برنامه ی خیلی کوچک کنسول تو هر دو بنویسید و کامپایل کنید و سپس کد بدست اومده رو با ildasm کد il ش رو ببینید. در ضمن سرعت یه برنامه ی دات نت چیز اونقدر مهمی نیست که با همدیگه دعوا بکنیم!
با سلام
وقتی قرار است که برنامه همه زبانهای دات نت به یک IL تبدیل بشوند و بعد نسخه اجرایی آنها ساخته شود پس معنا ندارد که راجع به این که کدام کد سریع تر عمل خواهد کرد بحث کنیم چون همگی اول به یک زبان تبدیل می شوند و بعد نسخه اجرایی ساخته می شود.
اما من با Inprise موافقم از این جهت که تبدیل شدن از زبان مبدا به زبان واسط حالت های مختلفی خواهد داشت . به این معنی که فرض کنید دو الگوریتم دقیقا به یک شکل در دو زبان سی شارپ و وی بی نوشته می شوند. آیا تضمینی وجود دارد که زبان واسطی که این دو الگوریتم تولید می کنند دقیقا مثل هم باشد؟ خیلی راحت می توان نتیجه گرفت که زمان اجرایی دو کامپایلر برای یک کار مشخص تفاوت خواهد داشت.
این همه دعوا هم لازم نبود ... :wink: :D
آقا یک کلام به صد کلام من از وقتی روز اول ماکروسافت دات نت را ارزه کرد تحقیقات فراوانی انجام دادم و با خیلی از برنامه نویسان خارجی تماس گرفتم اما کسی که برنامه نویس ++ :VCهیچ وقت به سی شارپ نمی یاد مگر کسی که تک برنامه نویس باشد الآن شرکت های بزرگ فقط با vC++ برنامه می نویسند .
چرا؟کسی که برنامه نویس ++ :VCهیچ وقت به سی شارپ نمی یاد
یعنی چی؟مگر کسی که تک برنامه نویس باشد
الآن شرکت های بزرگ فقط با vC++ برنامه می نویسند .
البته به نظر من همه زبان ها یک خصوصیت منحصر به فرد دارند و هر یک در جای خود خوب هستند و نباید در مورد این که کدام زبان سریع تر است تعصب به خرج دهیم و زبانی را که خودمان بلدیم نام ببریم هر چند که سی شارپ سریعترین است . :sunglass:
در جواب کاربر نقره ای باید اینرو خدمتشون عرض کنم که ماکروسافت زبانVC# به این دلیل ارزه کرد که برنامه نویسانی که با زبان C/C++ کارکردندومی خواهند برنامه های تحت ویندوز یا وب اتوماسیون های کوچک یا متوسطی ایجاد کنند بجای استفاده از VC++ از VC# استفاده کنند ولی نه اینکه مثلا شرکت دیسکریت بیاید 3دی مکس خود را با VC# بسازد .زبان VC++ هر چند که دارای خصوصیات قدیمی تری نسبت به C# است ولی هنوز برای ساخت نرم افزار های حجیمی که چنصد برنامه نویس متحدانه کار می کنندزبان VC++ بهترین انتخاب است البته اینهم بگویم که تمام قابلیت های زبان VC# در managed C++ وجود دارد در کشور ما زبانی مثل VC# طرفداران زیادتری دارد چرا؟ چون ما در ایران شرکت های بزرگ برنامه نویسی نظیر آتودسک ودیسکریت یا ماکروسافت نداریم که بخواهد VC++ زبان اول قلمداد شود. در ضمن سرعت ایجاد نرم افزار در C# از VC++ بالاتر است.حتی زبان هایی مثل VB.net و delphi هم در ایجاد نرم افزار از VC++ سریعتر است چون جز محصولات Rad هستند ولی از لحاظ سرعت اجرا نرم افزار های تشکیل شده توسط این زبان ها ماکروسافت حرف اول رو می زند وسازگاری بیشتری با ویندوز دارد تا محصولات بورلند.
فقط در مورد "دات نت" حرف بزنید .
UNIX is simple. It just takes a genius to understand its simplicity
-- Dennis Ritchie
فکر کنم بحث به بیراهه کشیده شده.
بعضی دوستان نیز بصورت چشمگیری در ارسال پستهای آف تاپیک و تک خطی و بی ربط در جهت افزایش تعداد پست هایشان (چرا؟) فعالیت میکنند!
اینکه ابزار ما در پیاده سازی یک پروژه چی باشه بر میگرده به اینکه نوع پروژه چی باشه.
chapter 6 از کتاب Solution Atchitectures مایکروسافت اینجوری بیان میکنه که توی مرحله Physical Design ما ابزارهای مختلف رو برای پیاده سازی پروژه بررسی میکنیم و بهترین ابزار رو با توجه به نیازمون انتخاب میکنیم
پس دفاع کردن از یه ابزار خاص نشانه آگاهی کمه یا بهتر بگم تعصب نشانه جهل است.
روی اینترنت جستجو کنید ببینید اساتید مسلم technologyهای مختلف مثل WebServices,Remoting,Messagingو غیره و غیره کیا هستند و Backgroundشون رو ببینید.
موفق باشید.
سرعت برنامه های دات نت ارتباطی با طراحی فیزیکی نداره اون ابزارهای گفته شده ابزار های طراحی هستند مثلا oracle case یکی از این ابزارهاست.
انتخاب پلتفرم برنامه نویسی و ایضا زبان آن در موقع پیاده سازیه و اون هم به فاکتور ها و پارامترهای بسیاری (حتی سیاسی) بستگی داره
"اعترافیه:" :kaf:
بنده امروز متوجه شدم این تاپیک بعد از مدتی باز شده (شاید به لطف اون هکر باشه ، نمیدونم)
ولی در مورد سرعت برنامه های تحت دات نت حقیر با راهنماییهای جناب inprise (ع) متقاعد شدم و این بحث باعث شد جدی تر و حتی علمی تر و نه تعصبی تر به این مسئله نگاه کنم دوستان رو هم دعوت میکنم دوباره فرمایشات این استاد گرامی رو مرور بفرمایند.
---
حق با شماست ظاهرا بحث اولیه به بیراهه رفته.سرعت برنامه های دات نت ارتباطی با طراحی فیزیکی نداره
من جواب این دوستمون رو دادم که گفته بود برنامه نویسای حرفه ای VC++ سراغ C# نمیرن.
در کل این challenge topic جالبی بود
با تشکر از inprise :موفق:
من یک بار یه کد برنامه ساده رو برای همه پیچوندم کامپایل هم همه جوره زدم سرعت خیلی محسوس نبود
نه که فرقی نداشت از وی بی رو بیشتر دوست دارم ولی بلاخره از همه کند تر بود. این از قابلیتهای وی بی کم نمی کنه چون اگه اون یکی ها می خواستن مثل وی بی حرف بزنن حتما تر می زدن.بی ادبی من رو ببخشین.
حالا سر چی وقت تلف می کنین ؟ :flower:
اگر بحث فوق رو درست میخوندی اینجوری حرف نمی زدی.حالا سر چی وقت تلف می کنین ؟
سلام
اصلا احتیاجی به این همه بحث نیست با یک تست کوچیک با کد نویسی و اجرای یه حلقه و به کار بردن یه Timer برای اندارزه گیری زمان می شه فهمید که سرعت اجرای برنامه توی #C چهار برابر VB است میشه همین تست رو برای زبان های دیگه هم اعمال کرد :)
سوال مگه رو سرعت اجرای کدهای مشابه تو زبانهای دات نت نیست ؟اگر بحث فوق رو درست میخوندی اینجوری حرف نمی زدی.
اقای مجتبی قناعت پیشه عزیز دوست گرامی من جوابم اینه که یه تست کوچولو رو یه کد مشابه طوری بود که وی بی کند تر عمل می کرد حالا خانم فاطمه هاشمیان میگه :
سرعت اجرای برنامه توی #C چهار برابر VB است کاری ندارم ولی نود ونه درصد سرعت اجرا فرق میکنه
چیزی که عیان است ...
باز اگه نفهمیدم سوال چیه دیگه یا جواب نمیدم یا اگه بدون عجله دوباره خونم یه جواب میدم که سرزنشم نکنی :flower:
آقا من چند ماهه این تاپیک رو زدم شما هنوز دارید سرش جنگ و دعوا میکنید :mad:
آقای Dot_net_lover ماکروسافت که نمی گه ماست من ترشه و بیاد یکی از ابزار هایشرا بر یکی برتر بدانه او از VC بعنوان Power oriented یاد کرده ونشاندهنده قدرت زیاد VC در پروژه های بزرگه بهمین دلیل برنامه نویسانی که پروژه های بزرگ می خواهند بنویسند VC رو انتخواب می کنند نه C# را .من هم فقط در مورد این نوع پروژه ها گفتم VC از #C بهتر است نه در چیز دیگری مثل Web Application
:flower: موفق باشید
جواب :گفتم VC از #C بهتر است
اینکه ابزار ما در پیاده سازی یک پروژه چی باشه بر میگرده به اینکه نوع پروژه چی باشه.
chapter 6 از کتاب Solution Atchitectures مایکروسافت اینجوری بیان میکنه که توی مرحله Physical Design ما ابزارهای مختلف رو برای پیاده سازی پروژه بررسی میکنیم و بهترین ابزار رو با توجه به نیازمون انتخاب میکنیم
پس دفاع کردن از یه ابزار خاص نشانه آگاهی کمه یا بهتر بگم تعصب نشانه جهل است.
روی اینترنت جستجو کنید ببینید اساتید مسلم technologyهای مختلف مثل WebServices,Remoting,Messagingو غیره و غیره کیا هستند و Backgroundشون رو ببینید.
موفق باشید
به بار دیگه از اول challenge بالا و بیانات Inprise (ع) رو با دقت بخونید.سرعت اجرای برنامه توی #C چهار برابر VB است
:flower:باز اگه نفهمیدم سوال چیه دیگه یا جواب نمیدم یا اگه بدون عجله دوباره خونم یه جواب میدم که سرزنشم نکنی