برگزیده های پرشین تولز

چرا مایکروسافت از .net استفاده نمی کنه ؟

Tiva

Registered User
تاریخ عضویت
6 آپریل 2005
نوشته‌ها
711
لایک‌ها
113
مدتی هست این سئوال برام پیش اومده که چرا مایکروسافتی که 80% بودجه خودش رو اختصاص به دات نت داده و اینقدر روش تبلیغ می کنه چرا خودش نرم افزارهای خودش رو تحت اون نمی نویسه ؟؟؟؟
 

MehdiC#

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
55
لایک‌ها
0
محل سکونت
ابهر
سلام
البته زیادم اینطور نیست. بخش اعظمی از Visual Studio .NET در C# نوشته شده ؛ مایکروسافت داره روی این کار می کنه که سیستم عامل های آینده اش تحت .NET باشه ، حتی به فکر آوردن .NET به داخل کرنل هم افتاده (نمونه اش پروژه Singularity ) ، مایکروسافت تمامی کارهای تحت وب (مثل صفحات وب و سرویس های وب ) رو با .NET انجام میده. حتی با Intel قرارداد بسته تا CPU های اینتل ، برنامه های نوشته شده در .NET رو بهینه کرده و سریعتر اجرا کنه. دلیل اینکه برنامه های تحت ویندوز ( client ) کمتر نوشته شدن ، اینه که هنوز همۀ مردم روی سیستم عامل هاشون .net رو نصب نکردن ؛
تو اینترنت مقالاتی دربارۀ ویندوز ویستا بخونید تا متوجه بشید که مایکروسافت چقدر داره رو .net کار میکنه ، در واقع آینده اش رو گذاشته روی دات نت.
، کارهایی هستند که توسط دات نت قابل انجام دادن نیستند (مثل نوشتن بازی های سنگین سه بعدی ) و باید از محیط های پر قدرت تر مثل Visual C++ استفاده بشه
در ضمن قرار نیست حتما خودش برای تمامی کارهاش از دات نت استفاده کنه که ، یه نگاه بندازید به دنیای برنامه نویسی ببینید چقدر از دات نت تاثیر گرفته ، حتی جامعه لینوکس که دشمن درجه یک مایکروسافت هستند بدشون نمی یاد ازش استفاده کنن. (الان بعضی از توزیع های لینوکس ، Mono رو همراه لینوکس عرضه می کنن ، من خودم فقط SUSE رو دیدم ، اما مطمئنم خیلی های دیگه هم این کارو می کنن).
 

mostafa_gm

Registered User
تاریخ عضویت
4 آپریل 2005
نوشته‌ها
1,863
لایک‌ها
438
محل سکونت
My House
به احتمال زیاد در آینده نزدیک Net FrameWork. جای JVM رو میگیره.
 

Tiva

Registered User
تاریخ عضویت
6 آپریل 2005
نوشته‌ها
711
لایک‌ها
113
این net. به نظرم دو تا اشکال عمده داره ..
یکی اینکه سورس برنامه حتی اگر obfuscate هم بشه بازهم در اختیار بقیه هست ..
دوم اینکه سرعت اجرا و performance برنامه در مقابل برنامه هایی که با ++VC نوشته می شن پایین تر هست !!

آخه چی طراحی کرده این مایکروسافت ؟!
 

MehdiC#

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
55
لایک‌ها
0
محل سکونت
ابهر
به نقل از Tiva :
این net. به نظرم دو تا اشکال عمده داره ..
یکی اینکه سورس برنامه حتی اگر obfuscate هم بشه بازهم در اختیار بقیه هست ..
دوم اینکه سرعت اجرا و performance برنامه در مقابل برنامه هایی که با ++VC نوشته می شن پایین تر هست !!

آخه چی طراحی کرده این مایکروسافت ؟!
اولاً:
برنامه های C++ رو هم هر چقدر شدید بپیچونی باز قابل کرک شدن و پی بردن به الگوریتم های استفاده شده در اونا هستیم.
ثانیاً:
همیشه سرعت حرف اول رو نمیزنه ، پس بازدهی (Productivity) چی میشه ؟

همیشه در سیستم های نرم افزاری توازنی بین قدرت و سرعت و سهولت در استفاده ، وجود داره.
درسته برنامه های VC++ سریعتر اجرا میشن اما آیا VC++ به اندازۀ C# راحت هست ؟
تازه این سرعت در جاهای بحرانی مثل بازی های سنگین سه بعدی ، کار با سخت افزار ، برنامه های گرافیکی و .... خودشو نشون میده ، نه در برنامه های متوسط (که حدود 90 درصد برنامه ها هم جزو همین دسته اند)
شما در .NET کمی از سرعت رو فدا می کنی اما در عوض چیز هایی به دست می یاری که هزار می ارزه به سرعت ، مثل:
مدیریت خودکار حافظه ، دسترسی به مجموعۀ بزرگی از کلاس ها که با یک روال منطقی چیده شدن، توانایی کار با چندین زبان در یک پروژه ، سادگی ، یکپارچگی محیط برنامه نویسی و ...
ببینین ما چقدر راحت توی .NET به فایل ها و database و سوکت های شبکه و Regular Expression و کلاسهای Cryptography و کلاس های کار با XML و هزاران چیز دیگه ، خیلی راحت دسترسی داریم در حالی که در C++ ، کار با این چیزا مصیبته.
 

Tiva

Registered User
تاریخ عضویت
6 آپریل 2005
نوشته‌ها
711
لایک‌ها
113
خب به نظرت مایکروسافت نمی تونست یک زبانی اختراع کنه که هم قدرت داشته باشه و هم سرعت و کیفیت !؟
 

MehdiC#

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
55
لایک‌ها
0
محل سکونت
ابهر
اولاً چه ربطی به بنده خدا مایکروسافت داره ؟ (حیوونی بیل گیتس)
ثانیاً تو پست قبلی مزایای Framework (مثل دات نت)
یا Virtual Machine (مثل جاوا) رو گفتم ، خب برای استفاده از اون مزایا
ما نیاز به ارائه دهندۀ اونا داریم ، و حالا ارائه دهنده کیه ؟
در بحث ما .NET ، یعنی نمیشه بدون یک محیط اجرا (Runtime) و یک چارچوب
نرم افزاری به مزایایی
مثل مدیریت خودکار حافظه ، توانایی کار با چندین زبان در یک پروژه و ... دسترسی داشت.
ثالثاً: بحث زبان نیست ، بحث یک چارچوب نرم افزاریه ، چون فرق نمیکنه در دات نت
با کدوم زبان کدت رو بنویسی چون در نهایت به MSIL تبدیل خواهد شد .
رابعاً: .net (مخصوصاً در ورژن 2.0 ) خیلی قدرتمنده ، این همه مزایا ، این همه پشتیبانی
از استانداردها ، و این همه سازگاری. سرعتش هم واقعاً قابل قبوله ، البته بستگی به
برنامه نویسش داره ، بهترین محیط با سرعت و قدرت بالا رو بدی دست یه تازه کار ، نمیتونه
کار فوق العاده ای بکنه .
منظورت رو از کیفیت متوجه نشدم!!!!
 

Tiva

Registered User
تاریخ عضویت
6 آپریل 2005
نوشته‌ها
711
لایک‌ها
113
منظور من این بود که مایکروسافت می تونست چیزی بسازه که همه اون ویژگی ها رو داشته باشه ..
 

Tiva

Registered User
تاریخ عضویت
6 آپریل 2005
نوشته‌ها
711
لایک‌ها
113
حالا این ++vc ورژن 6 با ++vc تحت net. فرقی می کنه ؟؟؟ از همون لحاظ ها ؟
 

MehdiC#

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
55
لایک‌ها
0
محل سکونت
ابهر
فرقش اینه که حالا نه تنها میتونه مثل قبل برنامه های Win32 ، MFC و ATL درست کنه (البته با سرعت بیشتر از قبل)
، بلکه میتونه مثل VB .NET و سی شارپ ، برنامه های تحت دات نت هم ایجاد کنه ، برای همینم یه سری کلمه کلیدی جدید بهش اضافه شدن. (مثل __event , __interface , __gc و __typeof و __box و ... )
البته کامپایلر و لینکر ، نسبت به نسخه قبل بهبود پیدا کردن و در کتابخانه ها هم تغییراتی ایجاد شده.
(همچنین این نسخه (یعنی VC7 ) ، از نظر سازگاری با استانداردهای ANSI/ISO C++ ، تا عدد 98 درصد رسیده ، یعنی تقریبا میشه گفت استاندارد ترین نسخه پیاده سازی شده این زبان در جهان.
 

Tiva

Registered User
تاریخ عضویت
6 آپریل 2005
نوشته‌ها
711
لایک‌ها
113
من یه عالمه وقته کا دارم #C کار می کنم و می خونم .. اما با این صحبت ها منو تحریک کردی که برم سراغ ویژال سی !!!
 

MehdiC#

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
55
لایک‌ها
0
محل سکونت
ابهر
چه نیازی به این کار هست ؟
الان حتی برنامه نویسای خیلی حرفه ای هم (البته در محیط دات نت) ، 90 درصد کاراشون رو با سی شارپ و تنها ده درصد رو با سی پلاسپلاس انجام میدن. (حتی شما میتونین برنامه های unmanaged نوشته شده در C++ رو در یک کلاس managed بپوشونید (wrap کنید) و در سی شارپ از اون استفاده کنید.
به نظر من سی شارپ زبان خیلی بهتریه (بازم میگم : در محیط دات نت) ، اگرم واقعا نیاز به انجام یک سری کارهای خیلی سنگین بودید ، یا میخواستید برنامه تون تحت دات نت نباشه که خب ویژوال سی بهتره
(شما هرکاری که میگین در سی پلاس ممکنه من میتونم مشابهش رو در سی شارپ بهتون بگم .
دیگه از pointer قویتر که نداریم ؟ که اونم در سی شارپ موجوده)
 

Tiva

Registered User
تاریخ عضویت
6 آپریل 2005
نوشته‌ها
711
لایک‌ها
113
آخه من همیشه می خواستم که یک زبانی که بهترین و قویتیرن باشه رو انتخاب کنم و از اون به بعد وفتم رو بزارم برای مهارت بیشتر توی اون زبان .. حالا اینجا یه خورده به شک افتادم ..
قبلا با ++C کار می کردم .. الان هم مدتی هست با #C کار می کنم ..
 

MehdiC#

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
55
لایک‌ها
0
محل سکونت
ابهر
ببینین انتخاب زبان که یه امر مطلق و قطعی نیست که مثلا دست بذاریم رو فلان زبان و بگیم آره این از همه بهتر و عالیتره. بستگی به کارتون (چه برنامه ای میخواید بنویسید) و محیطتون (سیستم عامل و پلتفرم) و یه سری پارامتر دیگه (مثل پیشینۀ برنامه نویس ، زبانی که در گروهش استفاده میشه ، مسئلۀ زمان و ... ) داره.
همیشه هم سرعت و قدرت مطرح نیست ؛ سرعت اجرای برنامه های C از Python خیلی بیشتره ، اما ممکنه اون کاری که مد نظر شماست با 1 ساعت کد نویسی در Python انجام بشه، در حالی که شاید نوشتن همون برنامه در C مثلا 3 ساعت وقت بگیره (یا به فرض کد C چند صد خط بیشتر باشه یا بخواید اون برنامه رو روی سیستم عامل های دیگه هم اجرا کنید ) ، حالا در اینجا اگه زمان حرف اول رو میزنه باید برید سراغ اونی که زودتر کارتون رو راه میندازه.
یا در پردازش لیست ها (یا برنامه نویسی functional ) بالطبع LISP و Haskell و OCAML خیلی بهتر از مثلا سی شارپ هستن
یا برای نوشتن بازی های سنگین گرافیکی دیگه سراغ سی شارپ (و کلا دات نت ) نمیرن و از C و سی پلاس پلاس استفاده میکنن.
شما هم اگه حوزۀ کاریتون دات نته ، سی شارپ بهترین گزینه است. اما اگه میخواین برنامه های unmanaged هم بنویسین خب مطمئنا C++ بهترین زبانه .
در ضمن تحقیقات نشون میده که بهترین برنامه نویسان از حداقل دو زبان برای انجام کاراشون استفاده می کنند.
به نظر من دربارۀ زبان های برنامه نویسی تحقیق کنید ، چند تا زبان رو یاد بگیرید (نه در حد حرفه ای ، بلکه در حد اینکه با هر کدوم چند ساعت ور برین ) ، از Google هم کمک بگیرین.
 

Tiva

Registered User
تاریخ عضویت
6 آپریل 2005
نوشته‌ها
711
لایک‌ها
113
بابته چی ؟ از کی ؟ از چی ؟ چرا ؟
 

djfalcon2006

کاربر تازه وارد
تاریخ عضویت
9 فوریه 2006
نوشته‌ها
2
لایک‌ها
0
avalan mibakhshin ke finglish minevisam sanian khodamo koochiktar az ooni midoonam ke bekham dar in maghoole nazary bedam vali hala be nazar man baraye har kar zaban khsi darym baraye mesal

agar Game Programming bashe hichi be paye Visual C++ nemirese hamamoon ba akharyn va brhtaryn game engine yani doom 3 ashna hastym va midoonin ke ba VC++ neveshtanesh

baraye hack ke zamineye takhasosy mane ba eghtedar migam vb6

baraye database .NET jaye hich shkiro vase adam nemizare farghiam nemikone koodoomeshoon bashe hamashoon alian vase in kar

barname nevisy mobileam ke maloome

web programingam faghat PHP
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از MehdiC# :
چه نیازی به این کار هست ؟
الان حتی برنامه نویسای خیلی حرفه ای هم (البته در محیط دات نت) ، 90 درصد کاراشون رو با سی شارپ و تنها ده درصد رو با سی پلاسپلاس انجام میدن. (حتی شما میتونین برنامه های unmanaged نوشته شده در C++ رو در یک کلاس managed بپوشونید (wrap کنید) و در سی شارپ از اون استفاده کنید.
به نظر من سی شارپ زبان خیلی بهتریه (بازم میگم : در محیط دات نت) ، اگرم واقعا نیاز به انجام یک سری کارهای خیلی سنگین بودید ، یا میخواستید برنامه تون تحت دات نت نباشه که خب ویژوال سی بهتره
(شما هرکاری که میگین در سی پلاس ممکنه من میتونم مشابهش رو در سی شارپ بهتون بگم .
دیگه از pointer قویتر که نداریم ؟ که اونم در سی شارپ موجوده)


ببینم #C
decontractor هم داره ؟؟:D
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
ما جوونیامون رفتیم یه جا مصاحبه کنیم یارو کم اورد گفت contractor و decontractor میدونی چین ؟ ما گفتیم والا contractor رو میدونیم ولی decontractor چیه دیگه ؟ گفت سوال انحرافی بود مال ++C اه . فکر میکنم چیز خفنی باشه ولی نمیدونم خودمم چیه فقط میدونم #C ندارش خدا رو شکر :lol:
 
بالا