PDA

View Full Version : سوال: مشورت در مورد انتخاب زبان



vb6vb6
دوشنبه 07 بهمن 1392, 15:55 عصر
دوستان می خواستم امثال من که در زمره ی تازه وارادان برنامه نویسی یا بهتر بگم کدنویسی هستیم را یاری نموده و تجربیات خودتان را به اشتراک بگذارید.:قلب::قلب:
در ابتدا نکات اساسی راجع انتخاب زبان را به نحو سوالی مطرح می کنم(و هر از گاهی سوالات لازم را اضافه خواهم کرد) تا دیگر مبتدیان هم با روشن کردن تکلیف خود در پاسخ به این سوالات به زبان مورد نظرشان برسند.
البته نقش اساتید در پاسخ صحیح به این سوالات نیز کلیدی می باشد.
امیدوارم خودم و دوستان مبتدی و حتی حرفه ای کمال استفاده را از این تاپیک ببریم.:بوس:
اما بریم سراغ سوالات:
اگر بگم باهاش انواع و اقسام برنامه های کاربردی سیستمی مدیریتی کتابخانه ای و ..(سطح پایین و بالا)تولید کنم چی؟
اگر بگم vb6 بلدم ومسلطم البته بدون کامپنت های ریزش چی؟
اگر بگم به زبانی سورس باز و شفاف از لحاظ روال ها و توابع بدون احتمال وجود رویه های جاسوسی در کتابخانه ها و اکتیویکسهاش(که در فریم ورک های مایکروسافت معروفه به جاسوسی) علاقه دارم چی؟
اگر بگم برنامه ای بدون فریم ورک ،بدون پیش نیاز می خوام چی؟
اگر بگم می خوام زبانم دارای ide(یاIntegrated development environment) ویژوال با قابلیت های تکمیل خودکار و هوشمند توابع و رویه ها، debug و پردازش ابری باشد چی؟
اگر بگم می خوام native کد بنویسم چی؟
اگر بگم می خوام static کد بنویسم چی؟
اگر بگم حجم برنامه برام مهمه که کم باشه چی؟
اگر بگم به برنامه کرس پلتفرم یعنی قابل اجرا در تمام سیستم عامل ها مثل ویندوز مک لینوکس اندروید سیمبین (pc,mobil) نیاز و علاقه دارم چی؟
اگر بگم حاضر نیستم عمرم برای برنامه نویسی در هر سیستم عامل به نحو جدا جدا با کدنویسی مختص آن هدربدم چی؟
اگر بگم می خوام هم تو دستکتاب باهاش کد بزنم هم تو وب چی؟
اگر بگم می خوام هم تحت دستکتاپ باهاش کد بزنم هم تحت شبکه چی؟
اگر بگم می خوام باهاش ویروسکش بنویسم چی؟ که شاید لازمه اش توانایی نوشتن ویروس با آن زبان باشد.
اگر بگم می خوام هکر کلاه سفید ،کرکر بشم چی؟ بر فرض گذروندن پیش نیازهای مفمومی و تئوریک آن جهت درک الگوریتم های آن؟
اگر بگم شاید بحث بازارش در حال حاضر و هم در آینده ایران و جهان برام مهمه که تا چند سال دیگه که حرفه ای شدم بتونم تجاری(حالا قابل توجه یا خرد) هم تولید داشته باشم چی؟
اصلا زمان کم برای حرفه ای شدن در آن زبان برام مهم باشه چی؟
اگر بگم می خوام در آینده باهاش هسته لینوکس را ادیت کنم یا ویندوز بنویسم چی؟
اگر بگم می خوام باهاش به نهایت ،ته ،انتهاء متصور برای یک برنامه نویس برسم چی؟
چند تا زبان پیشنهادی دوستان :
++Java ,PHP ,Matlab ,Fortran ,Perl ,vb6 ,C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎ ,Assembly‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎ ,QT ,python ,Delphi , MFC For Visual C++‎‎‎‎ ,win32 For Visual C
باتشکر:تشویق:

amir001
دوشنبه 07 بهمن 1392, 22:13 عصر
اگر بتونی یک‌ زبانی طراحی کنی که تمامی ویژیگی هایی که بیان کردی را داشته باشه بدون زبان برنامه نویسی رتبه یک دنیا را ساختی.
ببین، مثلا میخوای چند سکویی باشه، میشه کیوت و جاوا و ... که اینا حجم خروجیشون بالاست.(البته با کتابخونه هاشون که باید جابه جا کنی)
اگر برا ویروس میخوای و میخوای کم حجم باشه میشه وی بی ۶ و دات نت که چند سکویی نیست اما کم حجم هستن و قدرت زیادی برای کار با ویندوز دارند...
اگر میخوای پول توش باشه جاوا و سی شارپ و ای اس پی و ... اگر...
کلا نمیشه زبانی پیدا کرد که تمام خواسته هات را یکجا داشته باشه....
هر کدوم یه زیبایی های خاص خودشون را دارند و یه مشکلات درشت هم دارند....
از بین همه خواسته هات باید چند تاشو انتخاب کنی و بیخیال بقیه بشی.
شاید بشه تشبیه کرد به کسی که میخواد هم معمار بشه هم آهنگر بشه و هم برقکار و هم مکانیک و...

کامبیز اسدزاده
سه شنبه 08 بهمن 1392, 08:17 صبح
++Java ,PHP ,Matlab ,Fortran ,Perl ,vb6 ,C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ,QT ,python ,Delphi , MFC For Visual C++‎ ,win32 For Visual C
نکته بسیار مهم : لطفا اسپم نزنید تو این تاپیک در صورت داشتن نظرات و پیشنهادات پیام خصوصی ارسال کنید حتما بررسی خواهم کرد.

یه راهنمایی می کنم اونم اینه که شما هر چیزی که به برنامه نویسی مربوط بوده مثال زدی !
شما هم فریم ورک هارو قاطی کردی هم کتابخان ها و هم خود زبان رو !
اینطوری نمیشه انتخاب کرد با اهدافی که شما داری باید وقت بزاری و یه زبان همه کاره و چند منظوره رو انتخاب کنی که شکی نیست اونم C++ !
در رابطه با وب PHP رو انتخاب کن.
در رابطه با چهارچوب هم از Qt یا wxWidgets استفاده کن.
البته هرکدم از این مباحث کلی وقت لازم داره تا روشون مطالعه و بررسی های لازم رو انجام بدین تا راه بیفتین.

مهمتر از همه باید انگیزه برنامه نویس شدن رو داشته باشی.

و در نهایت این نکته بسیار مهمتون رو هم از خودتون می نوشتین بهتر نبود ؟ دقیقا زیر پست من رو برداشتین و کپی کردین اینجا ! میترسم فردا کدهاتون هم اینجوری کپی پست بشه !!!

vb6vb6
سه شنبه 08 بهمن 1392, 19:50 عصر
باسلام خدمت شما دوست عزیز:بوس:
میشه لطفی کنید بیشتر توضیح دهید

شما هم فریم ورک هارو قاطی کردی هم کتابخان ها و هم خود زبان رو !
البته شاید منظورم بد رسونده باشم که مطلبم را کمی اصلاح کردم

دوستان می خواستم امثال من که در زمره ی تازه وارادان برنامه نویسی یا بهتر بگم کدنویسی هستیم را یاری نموده و تجربیات خودتان را به اشتراک بگذارید.:قلب::قلب:
در ابتدا نکات اساسی راجع انتخاب زبان را به نحو سوالی مطرح می کنم(و هر از گاهی سوالات لازم را اضافه خواهم کرد) تا دیگر مبتدیان هم با روشن کردن تکلیف خود در پاسخ به این سوالات به زبان مورد نظرشان برسند.
البته نقش اساتید در پاسخ صحیح به این سوالات نیز کلیدی می باشد.
امیدوارم خودم و دوستان مبتدی و حتی حرفه ای کمال استفاده را از این تاپیک ببریم.:بوس:
اما بریم سراغ سوالات:
اگر بگم باهاش انواع و اقسام برنامه های کاربردی سیستمی مدیریتی کتابخانه ای و ..(سطح پایین و بالا)تولید کنم چی؟
اگر بگم vb6 بلدم ومسلطم البته بدون کامپنت های ریزش چی؟
اگر بگم به زبانی سورس باز و شفاف از لحاظ روال ها و توابع بدون احتمال وجود رویه های جاسوسی در کتابخانه ها و اکتیویکسهاش(که در فریم ورک های مایکروسافت معروفه به جاسوسی) علاقه دارم چی؟
اگر بگم برنامه ای بدون فریم ورک ،بدون پیش نیاز می خوام چی؟
اگر بگم می خوام زبانم دارای ide(یاIntegrated development environment) ویژوال با قابلیت های تکمیل خودکار و هوشمند توابع و رویه ها، debug و پردازش ابری باشد چی؟
اگر بگم می خوام native کد بنویسم چی؟
اگر بگم می خوام static کد بنویسم چی؟
اگر بگم حجم برنامه برام مهمه که کم باشه چی؟
اگر بگم به برنامه کرس پلتفرم یعنی قابل اجرا در تمام سیستم عامل ها مثل ویندوز مک لینوکس اندروید سیمبین (pc,mobil) نیاز و علاقه دارم چی؟
اگر بگم حاضر نیستم عمرم برای برنامه نویسی در هر سیستم عامل به نحو جدا جدا با کدنویسی مختص آن هدربدم چی؟
اگر بگم می خوام هم تو دستکتاب باهاش کد بزنم هم تو وب چی؟
اگر بگم می خوام هم تحت دستکتاپ باهاش کد بزنم هم تحت شبکه چی؟
اگر بگم می خوام باهاش ویروسکش بنویسم چی؟ که شاید لازمه اش توانایی نوشتن ویروس با آن زبان باشد.
اگر بگم می خوام هکر کلاه سفید ،کرکر بشم چی؟ بر فرض گذروندن پیش نیازهای مفمومی و تئوریک آن جهت درک الگوریتم های آن؟
اگر بگم شاید بحث بازارش در حال حاضر و هم در آینده ایران و جهان برام مهمه که تا چند سال دیگه که حرفه ای شدم بتونم تجاری(حالا قابل توجه یا خرد) هم تولید داشته باشم چی؟
اصلا زمان کم برای حرفه ای شدن در آن زبان برام مهم باشه چی؟
اگر بگم می خوام در آینده باهاش هسته لینوکس را ادیت کنم یا ویندوز بنویسم چی؟
اگر بگم می خوام باهاش به نهایت ،ته ،انتهاء متصور برای یک برنامه نویس برسم چی؟
چند تا زبان پیشنهادی دوستان :
++Java ,PHP ,Matlab ,Fortran ,Perl ,vb6 ,C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎ ,Assembly‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎ ,QT ,python ,Delphi , MFC For Visual C++‎‎‎‎‎‎ ,win32 For Visual C
باتشکر:تشویق:
هرچند دوست داشتم تا کامل تحقیق کنم بعد سوالاتم را دقیق بپرسم ولی جهت رسیدن سریعتر به هدف خدمتون عرض می کنم که:
- در انگیزه داشتنم شک نکنید که پر از انگیزه ام
-اینکه فرمودید
در چهارچوب هم از Qt یا wxWidgets استفاده کن
باید این سوال اساسی را تکرار کنم که آیا در چهارچوب Qt یا wxWidgets می توان بدون فریم ورک و native یا لااقل با فریم ورک های سورس باز و مطمئن از جهت داشتن توابع و رویه های جاسوسی کد نوشت(چون تا اینجا مطالب دوستان را که می خوندم این چهارچوب هم دارای یک فریم ورک سورس بسته است)
در ضمن آیا مثل vC++‎ قابلیت نوشتن کد استاندارد C++‎ وجود دارد و برنامه نوشته شده با این کد هم قابلیت کرس پلت فروم دارد و در غیر این صورت فلذا فرقی با vC++‎ و delphi نخواهد داشت؟
باتشکر:تشویق:

کامبیز اسدزاده
سه شنبه 08 بهمن 1392, 20:02 عصر
اولا Native فریم ورک نیست ! Native به ساختار برنامه نویسی زبان C++ هست که بدون متکی بودن به فریم ورکه یعنی کد نویسی بومی !
برای مثال برنامه نویسی استاندارد C++ کلا بومی (Native) هستش و همچنین استفاده از Qt و wxWidgets هم هیچ تاثیری در بومی بودن و منابع اصلی و استاندارد C++ نمیزاره امکاناتی که فریم ورک Qt اضافه میکنه قابلیت های چند سکویی بودن و همچنین طراحی فرم ها و اشیاء در کمترین زمان هستش که نسبتا میشه گفت سرعت بسیار زیادی رو در تولید پروژه در اختیار برنامه نویس میزاره.

تا جایی که من میدونم VC++ تحت فریم ورک های MFC , Win32 محدودیت هایی رو داره و از API های خود ویندوز استفاده میکنه و اصلا نمیشه گفت که استاندارد نویسی رو میشه در اون محیط تجربه کرد مگر اینکه یک پروژه خالی ایجاد کنید و خودتون از 0 تا 100 کد بزنید اونوقت میشه استاندارد.

در رابطه با Qt هم باید بگم بله همون کد نویسی های استاندارد رو پشتیبانی میکند ! و باید اشاره کنم Qt چیز جدایی از C++ نیست تنها چهارچوب و کتاب خانه هایی هست برای این زبان که بر اساس سلیقه برنامه نویس انتخاب میشه مثل کتابخانه های STL , wxWidgets , Booster و ... و اینها تماما دست به دست هم میدن تا قابلیت های زبان C++ رو افزایش بدن همین.

returnx
چهارشنبه 09 بهمن 1392, 11:26 صبح
اولا Native فریم ورک نیست ! Native به ساختار برنامه نویسی زبان C++‎‎ هست که بدون متکی بودن به فریم ورکه یعنی کد نویسی بومی !Native روش Compile برنامه است که Compiler برنامه را مستقیما به زبان ماشین ، ماشین مقصد ترجمه می کنه و ربطی به C++‎ نداره و این در حالی که C++‎ استاندارد به صورت Native کامپایل میشه در مقابل این نوع کامپایل ،
Managed وجود داره که اگر اشتباه نکنم ، این نوع کامپایل را برای اولین بار جاوا استفاده کرد ، اما اصطلاح Managed توسط مایکروسافت ارائه شد، در این نوع کامپایل برنامه ابتدا به یک زبان ثابت (که ما آن را با نام زبان میانی میشناسیم) ترجمه میشه ، و بعد در زمان اجرا توسط یک ماشین مجازی به زبان ماشین مقصد ترجمه میشه ، این کار کمک می کنه تا برنامتون راحت تر امکان اجرا در سیستم عامل های مختلف را داشته باشه، اگر کدتون را درست نوشته باشید...
برای مثال شما اگر C++‎ را بصورت استاندارد بنویسید ، و توسط یکی از کامپایلر های رایج کامپایل کنید بصورت Native کامپایل میشه ، این در حالیه که اگر از C++‎/CLR که توسط مایکروسافت ارائه شده استفاده کنید ، برنامتون بصورت Managed کامپایل میشه...

کامبیز اسدزاده
چهارشنبه 09 بهمن 1392, 11:33 صبح
Native روش Compile برنامه است که Compiler برنامه را مستقیما به زبان ماشین ، ماشین مقصد ترجمه می کنه و ربطی به C++‎‎ نداره و این در حالی که C++‎‎ استاندارد به صورت Native کامپایل میشه در مقابل این نوع کامپایل ،

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

و اینکه زبان C++ یک زبان بومی (Native) هستش !

برای مثال اگر کد نویسی شما در محیط CLI نوشته بشه توسط هیچ کامپایلری شما قادر به تبدیل اون به حالت بومی رو ندارید چون کلا از روش مدیریت شده استفاده میکنید مثل C# پس باید در زمان برنامه نویسی هم از بومی نویسی یا مدیریت شده نویسی پیروی کرد تا در آن صورت طبق فرمایش شما کامپایلر های مربوطه اونهارو کامپایل کنند.

پس علاوه بر اینکه کامپایلر در Native بون دخالت داره خود زبان هم دخالت کاملی در بومی بودن رو دارد.
برای مثال هیچ وقت زبان های CLI نمیان بومی کامپایل بشن پس در نتیجه به ذات و ساختار زبان بستگی داره که بومی باشه یا مدیریت شده.

returnx
چهارشنبه 09 بهمن 1392, 20:10 عصر
شما باید در کد نویسی قوانین و اصول برنامه نویسی Native رو رعایت کنید
دقیقا متوجه منظورتون نمیشم!؟

و اینکه زبان C++‎ یک زبان بومی (Native) هستش !

برای مثال اگر کد نویسی شما در محیط CLI نوشته بشه توسط هیچ کامپایلری شما قادر به تبدیل اون به حالت بومی رو ندارید چون کلا از روش مدیریت شده استفاده میکنید مثل C#‎ پس باید در زمان برنامه نویسی هم از بومی نویسی یا مدیریت شده نویسی پیروی کرد تا در آن صورت طبق فرمایش شما کامپایلر های مربوطه اونهارو کامپایل کنند.

پس علاوه بر اینکه کامپایلر در Native بون دخالت داره خود زبان هم دخالت کاملی در بومی بودن رو دارد.
برای مثال هیچ وقت زبان های CLI نمیان بومی کامپایل بشن پس در نتیجه به ذات و ساختار زبان بستگی داره که بومی باشه یا مدیریت شده.
اینکه بعضی از زبان ها صرفا بصورت Native کامپایل میشن و یا Managed خیلی به خود زبان ربطی نداره بلکه بیشتر به هدف طراحی آن زبان ها بستگی داره ، بطور مثال اگه الان C# به صورت Managed کامپایل میشه دلیل بر این نیست که ذات این زبان باعث شده که بصورت Managed کامپایل بشه ، شاید روزی بیاد که مایکروسافت تصمیم بگیره برای C# کامپایلری ارائه بده تا برنامه ی نوشته شده با زبان C# بصورت Native کامپایل بشه ! (خیلی هم دور از انتظار نیست)
همونطور که میبینیم C++/CLR به صورت Managed کامپایل میشه...

vb6vb6
چهارشنبه 09 بهمن 1392, 22:49 عصر
پس شما طبق حرفتون

تا جایی که من میدونم VC++‎‎‎‎‎‎‎ تحت فریم ورک های MFC , Win32 محدودیت هایی رو داره و از API های خود ویندوز استفاده میکنه و اصلا نمیشه گفت که استاندارد نویسی رو میشه در اون محیط تجربه کرد مگر اینکه یک پروژه خالی ایجاد کنید و خودتون از 0 تا 100 کد بزنید اونوقت میشه استاندارد.

در رابطه با Qt هم باید بگم بله همون کد نویسی های استاندارد رو پشتیبانی میکند ! و باید اشاره کنم Qt چیز جدایی از C++‎‎‎‎‎‎‎ نیست تنها چهارچوب و کتاب خانه هایی هست برای این زبان که بر اساس سلیقه برنامه نویس انتخاب میشه مثل کتابخانه های STL , wxWidgets , Booster و ... و اینها تماما دست به دست هم میدن تا قابلیت های زبان C++‎‎‎‎‎‎‎ رو افزایش بدن همین.
قبول دارید که Qt یک جور فریم ورک یا کتابخانه یا به قول شما یک چهارچوب هست
ولی سوال من در همین جاست که آیا کتابخانه های Qt مثل هیدرها و کتابخانه های ++c سورس باز هستند تا بتوان :
- الگوریتم آنها را مشاهده کرد
- در داخل آنها ویرایش دلخواه را انجام داد
- با شناسایی تمام رویه های هر یک از کتابخانه های آن از نبود رویه ها و توابع جاسوسی در میان آنها مطمئن شد
اگر جوابتون مثبته بی زحمت روش مشاهده سورس توابع و رویه های درون این کتابخانه ها را بفرمایید؟؟
و اگر منفیه پس تایید می کنید که کتابخانه های آن مثل کتابخانه های MFC یا همان Microsoft Foundation Class ،یک framework که API های win32 را در قالب کلاس هایی برای برنامه نویسان ++C ارائه می کند، تا زمان توسعه را کاهش دهد ، کار با پایگاه داده را آسان تر می کند و با وجودی که تقریبا تمامی قابلیت های سایر زبان ها را در اختیار شما قرار می دهد ، و جدا از اینکه کارآیی در مقایسه با شیوه قبل کمی کاهش می یابد ، تمامی ناحیه های win32 را نیز در بر نخواهد گرفت و لذا نیاز به آشنایی با خود API را نیز در بر نخواهد گرفت و لذا نیاز به آشنایی با خود API های ویندوز نیز نمی باشد ؛منتها با این تفاوت که فریم ورک Qt چند سکویی یا cross platform است(که البته در این قضیه بقیه فریم ورک ها را هم می شود نام برد که مثلا فریم ورک مترجم CLR یعنی net.مایکروسافت یا فریم ورک مترجم VCL یعنی FireMonkey یا VG-Scene دلفی ویا فریم ورک مترجم java یعنی Pivot (WTK) ,AWT ، Swing آپاچی که برای سیستم عامل های مختلف آمدند با این تفاوت که فقط با فریم ورک دلفی و جاوا و Qt میشه همزمان native وکرس پلت فرم کد نوشت و با مایکروسافت صرفا میشه کدهای نوشته شده غیر native را در در دیگر سیستم عامل ها با پیش نیاز فریم ورک مایکروسافت اجرا کرد )
در ضمن طبق جدول زیر تنها Java با سه Widget toolkitاش یعنیSwing,Pivot (WTK) ,AWT ==مطلقا cross-platform می باشد و مابقی دو وجهی اند یعنی می توانند چند سکویی باشند یا اختصاصی یک platform
پس خود نحوه نوشتن در Qt هم باید مهم باشد که به صورت cross-platform باشد؟
http://upload7.ir/imgs/2014-01/68805404484865451734.jpg
منبع:http://en.wikipedia.org/wiki/List_of_widget_toolkits

vb6vb6
دوشنبه 30 تیر 1393, 19:21 عصر
با سلام به دوستان عزیز و با آرزوی قبولی طاعات و عباداتتون
دوستان من بعد از مدتها وقت کردم یک سری به سایت بزنم
یعنی هیچ کس تو سایت نیست و نبوده که در مورد سوال من کامل تحقیق کرده باشد و بتواند قشنگ جواب بده
وافعا خسته نباشید
باتشکر