PDA

View Full Version : فراخان : اثبات زبان های برنامه نویسی



Abbas Naghdi
یک شنبه 24 دی 1391, 23:09 عصر
گفته های زیر بر اساس تحقیقات و تخصص خودم و بر اساس مستندات و خود این زبان ها و دانشنامه ها هست

برنامه نویسان ایرانی ... : مطالب زیر در حد و حدود تخصص خود من هست و من به خودم اجازه نمیدم برای چیزی که تخصص ندارم مطلب بنویسم ... از شما خواهش میکنم در مورد زبان های دیگه که تخصص شما هست در این تایپیک مطلب بنویسید
هم تخصص ها : این مطالب من رو کامل تر کنید و اگه مشکلی در نوشته های هست اثبات و اصلاح کنید
من عباس نقدی ... تخصص : C++‎‎‎‎‎ Qt و VC++‎‎‎‎‎ و C#‎‎‎‎‎

هدف : مرجعی برای کسانی که میخان تازه برنامه سازی رو شروع کنن - شناساندن زبان های دیگر به برنامه نویسان - بحث در مورد دنیای کد نویسی و ... (در کل : انتخاب هدف درست)

زبان برنامه نویسی C++‎‎‎‎‎ :
خوبی ها :
یکه تاز زبان های برنامه سازی
زبان C++‎‎‎‎‎ در طول تاریخ نشون داده که پایداره و همچنان بهترین زبان هست ...
خیلی کم برنامه ای پیدا میشه که با این زبان کد نویسی نشده باشه (برنامه های بزرگ )
غول نرم افزاری مایکروسافت در تسخیر این زبان هست
غول نرم افزاری گوگل در تسخیر این زبان هست
غول سخت افزاری و نرم افزاری اپل در تسخیر این زبان هست
در واقع تمام قول های نرم افزاری در تسخیر این زبان هستد
آنتی ویروس کاسپرسکی با این زبان نوشته شده - آنتی ویروس نود با این زبان نوشته شده - سیستم عامل ویندوز با این زبان نوشته شده - سیستم عامل اندرویید با این زبان نوشته شده سیستم عامل مک و ... با این زبان نوشته شدن - سیستم عامل های لینوکس با این زبان نوشته شدن
ویژوال استادییو با این زبان نوشته شده (بخش بزرگی از اون) - سازنده ی کیوت با این زبان نوشته شده - زبان برنامه سازی C#‎‎‎‎‎ با این زبان نوشته شده - ابزار های فظایی و کنترلی با این زبان نوشته شدن - مرور گر های گوگل کوم و فایرفاکس با این زبان نوشته شدن - و .. و .. و...
اینها تنها 1 از 100 نرم افزار درست حسابی هستند که با این زبان نوشته شدن و این خود اثباط قدرت C++‎‎‎‎‎ هست
وقتی مایکروسافت که خودخاه ترین شرکت نرم افزاری هست که فقط ویندوز خود و تکنولوژی های خودش رو بالا تر از همه میدونه در برابر این زبان زانو خم میکنه این خود اثباط قدرت C++‎‎‎‎‎ هست
وقتی میکروسافت به اندازه ی بروز رسانی های C#‎‎‎‎‎ به همون مقدار C++‎‎‎‎‎ رو بروز رسانی میکنه این خود اثباط قدرت C++‎‎‎‎‎ هست
وقتی Qt و MFC که خود از قدرتمند ترین کیت های هستند بر پایه ی C++‎‎‎‎‎ هستند این خود اثبات قدرت C++‎‎‎‎‎ هست
وقتی زبان C#‎‎‎‎‎ با این زبان خلق شده این خود اثبات قدرت C++‎‎‎‎‎ هست و بس
و ....

بدی ها :
کد نویسی سخت تر نصبت به زبان های دیگه ...
ویژوالی نبودن (برای هر چیزی کد نیاز داره)
وابستگی به API ویندوز (در نسخه VC++‎‎‎‎‎)
پشتیبانی کم مایکروسافت در سالهای اخیر از این زبان ( VC++‎‎‎‎‎WIN)


زبان برنامه سازی C#‎‎‎‎‎
خوبی ها :
این زبان در حال حاظر پرکاربرد ترین زبان در دنیا هست مخصوصا ایران
این زبان خود با زبان C++‎‎‎‎‎ ساخته شده و شرکتی مثل مایکروسافت از این زبان پشتیبانی میکنه (مایکروسافت رو که میشناسید)
بعد از C++‎‎‎‎‎ شاید C#‎‎‎‎‎ بهترین گذینه باشه ... نه بر اساس قدرت بلکه بر اساس پشتیبانی و گستردگی و انعطاف پذیری این زبان
چرا وقتی میشه نرم افزری رو در 1 روز با C#‎‎‎‎‎ خلق کرد این نرم افزار رو در 10 روز با C++‎‎‎‎‎ خلق کنیم .. !
چرا وقتی C#‎‎‎‎‎ کد نویسی به این راهتی داره بریم سراق C++‎‎‎‎‎
چرا وقتی با استفاده از mono میشه با زبان C#‎‎‎‎‎ برای سیستم عامل های دیگه نرم افزار نوشت بریم سراق زبان های دیگه
چرا وقتی داخل ایران بعد از اینکه سابقه کار داشتی باید زبان C#‎‎‎‎‎ رو بلد باشی تا استخدام C#‎‎‎‎‎ رو یاد نگیریم
چرا وقتی C#‎‎‎‎‎ پشتیبانی به این قدرتی داره و اینقدر برنامه نویس و مقاله و سورس و ... داره برین سراق زبانی دیگه
چرا وقتی مایکروسافت روی C#‎‎‎‎‎ پافشاری میکنه ما اینقدر مقاومت میکنیم ... و دنبال جنگ با این شرکت هستیم
چرا وقتی این زبان آخرین بروز رسانی های روز دنیا رو داره C#‎‎‎‎‎ رو انتخاب نکنیم

بدی ها :
وابستگی و نیاز به یک run-time به اسم .Net Framework
وابستگی به سکوی ویندوز (mono استاندارد مایکروسافت نیست)
قدرت پایین و نا توانی در برقراری ارتباط با سخت افزار و برنامه نویسی سطح پایین
سرعت اجرای کمتر برنامه ها نسب به زبان های دیگر


C++‎‎‎‎‎ Qt
خوبی ها :
زبان C++‎‎‎‎‎ با قدرت خود اینقدر کسترده هست که 1 شاه راه دیگه از خود به وجود آورده
qt با این همه امکانات و قدرت و دقت یکی از عجایب زبان C++‎‎‎‎‎ هست
مخصوصا قابلیت چند سکویی qt که شاید بهترین مزیتش باشه
کیوت Qt quick و qt QMl داره و با استفده از این ها یکه تز برنامه نویسی گرافیکی و ... هست
Qt creator با اون همه امکانات و قدرت و سرعت یکه تاز IDE های موجود هست ... در حالی که به جرئت میگم که اگه کامپونت و پلاگین برای بزرگ ترین IDE یعنی Visual Studio نباشه Qt Creator که هنوز اوایل خلق شدنشه
بزرگ ترین IDE برنامه نویسی هست
qt فقط C++‎‎‎‎‎ نست کیوت python و .. هم داره که این قدرتشو چند برابر میکنه
متن باز بودن کیوت از بهترین عامل های پیشترفت اون هست
کیوت با این همه امکانات پشتیابان قوی ندار (قبلا NOKIA و الان DIGIA ) و این خود اثبات میکنه که پشتیبانی قوی ملاک برتر بودن نیست ...
چرا از کیوت استفاده نکنیم وقتی قدرت C++‎‎‎‎‎ و سرعت کد نویسی (از لحاظ آماده شدن نرم افزار) C#‎‎‎‎‎ رو داره

بدی ها :
سرعت پایین تر و سطح دسترسی به سخت افزار محود تر نصبت به C++‎‎‎‎‎ اصلی
بروزرسانی کمتر نصبت به تکنولوژی های روز برنامه نویسی (البته تا حدودی)
نا شناس ماندن در کشور ایران (بعضی ها نمیدونن Qt چیه ... !)


نوشته های بالا فقط یک سوم خوبی ها و بدی های این ها هست
بقیشونوبعدا ازظافه میکنم (امیدوارم هم تخصص ها این کار رو انجام بدن)
(من منتظر هر گونه برخوردی هستم ...)

prpe26
دوشنبه 25 دی 1391, 00:19 صبح
C++ و C++ Qt رابطشون مثل VB و VB.Net هست. یعنی Qt یک فرمورک ساده و بی آلایش که چسبیده روی C++ و دوست داشتنی ترش کرده.


و اما از نظرات من :

زبان پایتون :

خوبی ها : پرتابل ، سینتکس ساده ، پرکاربرد
بدی ها : کمبود منابع فارسی.

شل های موجود (برای برنامه نویسان شل) :

ویندوز :

۱- پاورشل :
خوبی ها : نزدیک بودن به POSIX
بدی ها : سرعت پایین

۲- Batch (همون cmd خودمون :دی) :

خوبی ها : ----
بدی ها : شاید تمام بدی های عالم :لبخند: ولی مهم ترینش سینتکس نامنظم هست.

یونیکس (لینوکس ، FreeBSD و Plan9 و ...) :

اینها رو بعدا اضافه میکنم :)

SEZAR.CO
دوشنبه 25 دی 1391, 17:25 عصر
به نظر من سی پلای پلاس انتخاب خوبی برای یادگیری سی شارپ
مثل کیو بیسیک و ویژوال بیسیک
پاسکال و دلفی

eshpilen
سه شنبه 26 دی 1391, 12:43 عصر
بخوای حساب کنی خب اسمبلی از همه پایه تره و تمام زبانهای دیگه بر اساس اون کار میکنن. مثلا (بیشتر؟) کامپایلرها در آخرین مرحله کد اسمبلی تولید میکنن، و بعدش هم مستقیما کد ماشین میشه.
ولی برنامه نویسی دستی با اسمبلی خیلی کم انجام میشه.
حالا قضیه استفاده از سی و سی++ هم یکیش همینه که سطح بعدی پایه هستن و مفسر و کامپایلر و ماشین مجازی زبانهای دیگر رو خب با چی بنویسن پس؟ یا باید با اسمبلی بنویسن که خیلی سخته و صرف نمیکنه، یا با سی و سی++ و کلا زبانهای کامپایل شونده به زبان ماشین.
از دیگر دلایل کاربرد گسترده سی و سی++ اینه که از قدیم بوجود آمدن و بصورت استاندارد درآمدن. دوما بین پرفورمنس و سطح برنامه نویسی تعادل خوبی داشتن (حداقل در زمان خودشون ایدئال بود) که باعث میشد در محدودهء بسیار وسیعی از کاربردها انتخاب مناسب باشن؛ حتی در بخش اعظمی از برنامه نویسی سیستمی.
مثلا چرا پاسکال و دلفی اینقدر استفاده نشدن/نمیشن؟ زیاد استفاده میشن، اما نه اندازهء سی و سی++.
یک دلیلش میتونیم بگیم همینه که سی و سی++ اولین ها بودن و به سرعت پذیرفته شدن و رشد و در همه جا نفوذ کردن و استاندارد شدن.
اما دلیل دیگرش هم شاید همون پرفورمنس یخورده بیشتر نسبت به پاسکال و دلفی بوده که بخصوص در زمان دورتری خیلی مهمتر از الان بوده (ولی الان هم در کاربردهای مختلفی میتونه مهم و تاثیرگذار باشه).
کلا کتابخانه ها و داکیومنت و ساپورت هم که کم و کسر ندارن.
اما اینکه میگن کاربرد این زبانها درحال گسترش هست، خب بنظر بنده هم درسته و هم نادرست.
طبیعتا با توجه به پیشرفت رایانه و فناوریهای مرتبط و برنامه ها و برنامه نویسی، حجم برنامه نویسی در این زبانها هم میتونه زیادتر شده باشه، ولی نه با همون سرعتی که زمانی که اینها یکه تاز بودن میتونست باشه. چون بعدها زبانهای دیگری بوجود آمدن متخصص کارهای خاص یا سطح بالاتر، که الان خیلی از کاربردهایی که سابقا با سی و سی++ انجام میشدن رو به تسخیر خودشون درآوردن. مثلا PHP برنامه نویسی وب رو گرفت و سهم اعظمی از سی و سی++ در این حیطه رو از میان برد. همینطور احتمالا فناوریها و کاربردهایی جدیدی که با افزایش منابع سخت افزاری و پیشرفت علم نرم افزار و برنامه نویسی ایجاد شدن و همینطور به کمک زبانهای سطح بالاتر و مخصوص خودشون که در این زمینه ها اصلا سی و سی++ سهمی ندارن یا خیلی کم سهم دارن و دیگه اولین های قدیمی نیستن.

بنظرم برای مقایسهء میزان کاربرد باید سهم زبانهای مختلف رو بر حسب حجم کد، تعداد برنامه ها، تعداد/حجم کاربرد انسانی، و معیارهای مختلف دیگری نسبت به سی و سی++ بر حسب درصد بیان کرد در دوران های مختلف، و همچنین شیب نمودار رشد اونها رو نگاه کرد. تقریبا مطمئنم که این نمودارها خیلی از واقعیت ها رو به روشنی نشان خواهند داد.

درسته کاربرد سی و سی++ هیچوقت از بین نمیره و رشد هم میکنه، ولی دیگه نه با اون شیب و همپای این همه زبان سطح بالاتر و ویژه کارهای مختلفی که امروزه وجود دارن.
فکر میکنم رشد کاربرد این زبانها بیشتر از نوع limit به سمت عدد ثابتی باشه (از نظر درصدی/کسر سهم در حجم کل). و این عدد به احتمال زیاد کوچکتر از مثلا 20 سال پیش است.

Abbas Naghdi
شنبه 30 دی 1391, 00:25 صبح
بچه ها همونطور که همه میدونید با ورود ویندوز 8 مایکروسافت عملا به همه اعلام کرد که قراره تغییر بزرگی در محبوب ترین سیستم عامل دنیا به وجود بیاد .... این تغییر نه به صورت کامل در ویندوز 8 میتونیم بفهمیم ... طبق تحقیقات من قراره ویندوز blue که ویندوز بعدی هست با ویندوز های گذشته متفاوت باشه و برنامه های desktop رو پشتیبای نکنه ...
این تغییر بزرگ در حالیه که خیلی ازتوسعه دهندگان با این تغییر مشکل دارن (حتی یک جا خوندم بعضی از مدیران و توسعه دهندگان ارشید و ... خو د مایکروسافت با این موضوع مشکل دارن و موافق نیستند)
ولی مایکروسافت باید ریسک میکرد تا خودش رو از این وظعیت در می آورد ... کمپانی که چند وقت پیش قدرت مند ترین بود حالا سهمش از بازار 2012 شده به اندازه ی فروش IPad شرکت اپل ...
این ریسک قربانی داره و این قربانی ها دانسته های و وقت ما برنامه نویس ها هستیم و زبان های برنامه نویسی که من اطلاعاتی در این زمینه دارم که قراره کل .net + زبان هاش از میان برداشته بشه و یک فرامورک جدید که قارد هست با XAML و JavaScript و HTML5 و TypeScript تعامل بیشتری داشته باشه و همچنین با میکروکنترلر ها و دستگاه های ایکس باکس و ... کاملا سازگار باشه و ... ارائه بشه
اسم این فرامورک یادم نیست ولی قراره در ویندوز آبی (Windows Blue ) این اتفاق بیفته ....
در مورد C++ هم که قراره 90% API های اون تغییر کنه (منظورم همون API های در دسترس ویندوز هست)
و قراره یک زبان جدید با API های ویندوز 8 الان و ویندوز های آینده بروز بشه که اسمش هست WINC++
از همین الان بگم که مایکروسافت الان برنامه های .net رو پشتیبانی میکنه اثباتش هم بروز رسانی C#4.0 به C#5.0 در VS2012 هست ...
گفته میشه که قراره مایکروسافت JavaScript رو تغییر بده تا از نحایت قدرت این زبان استفاده کنه ... گفته های دیگه ای هم هست که میگن قارره TypeScripy که هنوز به صورت رسمی معرفی نشده جایگزین این زبان اسکریپتی بشه ...

اگه گوگل یا اپل یا ... تا یک سال دیگه یک تکونی به خودشون بدن و به صورت مشترک یا تکی یک سیستم عامل قدرتمند بسازند و برنامه های ویندوز رو پورت کنن امکان داره که تمام کامپیوتر های با این سیستم عامل جدید رنگ جدیدی به خودشون بگیرن ... چرا که با ورود ویندوز آبی کار برها وارد شک میشن (الان با ویندوز 8 شدن) + اینه برنامه های ساخته شده باید از کانال Windows Store رد بشن که این اصلا برای کسانی که نرم افزار متن باز و یا رایگان میسازن اصلا خوب نیست + کسانی که نرم افزار کرک شده استفاده میکنن

حالا من موندم Photoshop و Visual Studio و ... چطور قراره دوباره کد نویسی بشن ... ! (البته مایکروسافت گفته که در آینده امکان پورت کرن برنامه های قدیمی desktop به Metro Style وجود داره ... یعنی بروزشون میکنه )

حالا وقتی API تغییر کنه دیگه QtC++ نخواهد بود (شایدم ساز گارش کنن)
برنامه نویسان زبان های ... دیگه دیکه دیکه
فقط .net میمونه و C++ که قراره که .net حذف بشه (البته تا یکی دو سال آینده ) و C++ هم که قراره یه آپدیت کلی بشه ...
حالا تکلیف ما چیه ... !
من که از الان برنامه نویسی مترو رو شروع کردم ...
البته این چیز ها که گفتم برای ما ایرانی ها حداقل 10 سال دیگه اجرایی هست ... چرا ..؟ چون هنوزداخل ایران هستند کسانی که ویندوز xp استفاده میکنن .... !

eshpilen
شنبه 30 دی 1391, 10:24 صبح
منکه هنوز که هنوزه دارم ویندوز XP استفاده میکنم.
هم روی سیستم خونه و هم شرکت.
چون همین ویندوز کارهایی که میخوایم رو انجام میده. ازش راضی هستیم. پایداریش خوبه. سرعتش خوبه. مصرف منابعش خوبه.
حالا میکروسافت واقعا معلوم نیست چرا داره چکار میکنه و پشت پرده واقعا چیه.
اون از ویستا، بعدشم که ویندوز 8، این همه هم تغییر در فناوریهای برنامه نویسی.
واقعا میکروسافت میخواد بازتر بشه و از استانداردها و فناوریهای جدید و روز و جهانی استفاده کنه و نقش مثبت تری رو در دنیای فناوری اطلاعات ایفا بکنه، یا نه و قضیه چیز دیگری است؟
من نمیدونم!
بهرحال من طرفدار آزادی و بازمتن هستم.

اتفاقا همین الان بحث بود در تالار PHP درمورد اینکه واقعا چرا PHP داره اینقدر پیشرفت میکنه و فناوریهای میکروسافت مثل ASP.NET باوجود مزایای فنی و امکانات و برتری هایی که در ظاهر دیده میشه عقب میمونن.
این پست بنده بود در این ارتباط:

من فکر میکنم بزرگترین مزیت PHP بر ASP.NET همون بازمتن و رایگان بودنه. هم خودش و هم پلتفرمی که روش اجرا میشه (لینوکس).
و این دوتا اغلب دست کم گرفته میشن. چون به صورتهای متعدد و پیچیده ای تاثیر میذارن که خیلی ها متوجه نیستن.
یعنی بگم اینقدر تاثیر دارن که حتی با تمام این مزایایی که شما گفتی، بازهم ترجیح داده بشن.

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

ببینید مثلا الان میکروسافت در سالهای اخیر چقدر فناوریهاش رو تغییر داده، چقدر ویندوز رو تغییر میده، ویندوز ویستا، 7، و الان 8 که کلا اینترفیس اون رو منفجر کرده.
خب در دنیای بازمتن از این حرکات بنظرم کمتره و اگر هم باشه، خب محصولات بازمتن هست و اگر متقاضی کافی باشه امکانش هست که بر اساس محصولات نسل قبلی یک fork ای چیزی درست بشه و گروه و شرکت دیگری روش کار کنه یا حتی افراد منفرد بتونن کارهایی بکنن به شرط داشتن توان لازم.
یعنی شما با بازمتن آزادی و انعطاف خیلی بیشتری داری و آیندت کمتر به سیاست و تجارت بستگی داره و تصمیمات و سرنوشت یک شرکت و گروه محدود. نمیدونم شایدم میکروسافت چون دیده بازمتن داره ازش جلو میزنه میخواد یه کارهایی بکنه تا اینقدر از نظر فنی و امنیت و پایداری پلتفرم خودش رو ارتقا بده تا بتونه بازم بخش بیشتری از بازار رو برای طولانی مدت به تسخیر خودش در بیاره؛ گرچه این در کوتاه مدت باعث کم شدن آمار استفادش بشه.
و شاید هم بعکس دست از انحصارگری و سیستم سنتی خودش و تقابل با دنیای بازمتن و استانداردهای باز برداشته! ولی این گزینه مورد تردید زیادی است، چون میکروسافت تا حالا یک شرکت تجاری انحصارگر و دشمن آشکار و برجستهء دنیای بازمتن بوده.
شایدم میخواد حیطهء تمرکز خودش رو از حیطهء عمومی و همه کاره و خانگی و اداری معمولی به حیطه های دیگری مثل سیستمهای انترپرایز تغییر بده کم کم. یا اینکه حداقل بخشی از کاربران حیطهء استاندارد رو فدای اونا بکنه. البته یکی از حیطه های جدید هم محیطهای موبایل و تبلت و اینهاست دیگه (درمقابل رایانه های دسکتاپ و شخصی).

ولی واقعا من یکی که افول PC و سیستمهای دسکتاپ های همه کاره رو دوست ندارم.
اما این چیزیه که خیلی از متخصصان پیشبینی کردن.