PDA

View Full Version : سوال: لطفا زبان های این بخش را معرفی کنید



a_mzadeh
سه شنبه 22 تیر 1389, 12:08 عصر
سلام،
در مورد زبان هایی که این بخش مربوط به اونها هست سوالاتی داشتم که اگر راهنمایی کنید خوشحال میشم:

۱. آیا این زبونها native هستن یا managed؟
۲. آیا مستقل از سیستم عامل هستن؟
۳. این زبونها برای وب بکار میرن یا دسکتاپ یا هر دو؟
۴. این زبونها تفسیری هستن یا کامپایلی؟
۵. برای شروع چه کتابی رو پیشنهاد می کنید؟

اگر دوستانی که تجربه کار با این زبونها رو دارن لطف کنن و سوالات بالا رو برای هر زبون به طور جداگانه پاسخ بدن، خیلی خیلی ممنون میشم.

با تشکر

Mehdi Asgari
سه شنبه 22 تیر 1389, 12:23 عصر
1- این زبون ها داینامیک هستند و توسط ماشین مجازی خودشون اجرا میشن
2- بله
3- وب ، دسکتاپ ، موبایل ...
4- تفسیری
5- بستگی داره. من برای پایتون Beginning Python و برای روبی Programming Ruby رو پیشنهاد می کنم

a_mzadeh
سه شنبه 22 تیر 1389, 14:23 عصر
1- این زبون ها داینامیک هستند و توسط ماشین مجازی خودشون اجرا میشن


با توجه به این مورد که شما ذکر کردین، امکان بدست آوردن کد از روی فایل اجرایی وجود نداره؟ همونطور که اطلاع دارین یکی از مشکلات جاوا و دات نت این هست که سورس کد رو میشه از فایل اجرایی استخراج کرد، آیا این مشکل برای اینها وجود نداره؟

Mehdi Asgari
سه شنبه 22 تیر 1389, 14:29 عصر
در این زبان ها معمولا سورس رو هم همراه برنامه تقدیم می کنن (چون باید سورس توسط مفسر اجرا بشه. البته میشه از سورس ، باینری هم تولید کرد مثل py2exe که سورس های پایتون رو به exe تبدیل می کنه.)
این که فکر می کنی توانایی مشاهدۀ سورس کد (یا لااقل بایت کد) فایل های کامپایل شده در دات نت و جاوا ، یک مشکل هست ناشی از عدم درک اون هاست (که به کرات در فروم بحث شده و اینجا جای بحث مجددش نیست)

a_mzadeh
سه شنبه 22 تیر 1389, 15:05 عصر
در این زبان ها معمولا سورس رو هم همراه برنامه تقدیم می کنن (چون باید سورس توسط مفسر اجرا بشه. البته میشه از سورس ، باینری هم تولید کرد مثل py2exe که سورس های پایتون رو به exe تبدیل می کنه.)
این که فکر می کنی توانایی مشاهدۀ سورس کد (یا لااقل بایت کد) فایل های کامپایل شده در دات نت و جاوا ، یک مشکل هست ناشی از عدم درک اون هاست (که به کرات در فروم بحث شده و اینجا جای بحث مجددش نیست)
به هر حال زمانی که بحث نرم افزارهای تجاری مطرح میشه، بدست آوردن کد از فایل کامپایل شده یک مشکل محسوب میشه. کسی که تصمیم داره یک برنامه عمومی برای موبایل بنویسه، به احتمال خیلی زیاد برای اینکه روی اکثر گوشی های تلفن همراه برنامش اجرا بشه، از جاوا استفاده می کنه، و خوب برای این شخص کد خیلی ارزش داره و اصلا دوست نداره که کدش دست کس دیگه ای قرار بگیره و این مساله یک مشکل محسوب میشه.

Mehdi Asgari
سه شنبه 22 تیر 1389, 15:10 عصر
شاید این برای شما مشکل محسوب بشه. هر کدی که روی سی پی یو اجرا میشه ، قابل مشاهده هست (حالا یه جایی باید disassemble کنی و کد ماشین بخونی ، یه جا دیگه کد سی شارپ رو مستقیما بهت میده)
برای پیچوندن کرکر های کم حوصله میشه از Obfuscator استفاده کرد

eshpilen
سه شنبه 22 تیر 1389, 21:31 عصر
به هر حال زمانی که بحث نرم افزارهای تجاری مطرح میشه، بدست آوردن کد از فایل کامپایل شده یک مشکل محسوب میشه. کسی که تصمیم داره یک برنامه عمومی برای موبایل بنویسه، به احتمال خیلی زیاد برای اینکه روی اکثر گوشی های تلفن همراه برنامش اجرا بشه، از جاوا استفاده می کنه، و خوب برای این شخص کد خیلی ارزش داره و اصلا دوست نداره که کدش دست کس دیگه ای قرار بگیره و این مساله یک مشکل محسوب میشه.

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