ورود

View Full Version : زبانهایی که باید آموخت!



eshpilen
چهارشنبه 17 فروردین 1390, 21:49 عصر
اول بگم که این چیزی که در اینجا بیان میکنم بر اساس یک نوع آدمها و هدف خاصی هست. یعنی آدمهایی که خوره هستن و هدفشون اینه که قادر باشن تقریبا هر برنامه ای رو در تقریبا هرجایی بنویسن.

زبانها اینا هستن:

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

سی++ - کاربرد برجستهء این زبان در برنامه های بزرگ دسکتاپ و بعضی برنامه های سیستمی هست که مثل سی عمدتا بخاطر مسیر تاریخ رایانه و نیز بخاطر مناسب بودن برای برنامه هایی که نیاز به پرفورمنس بالا دارن کاربرد زیادی داره. مثل سی کتابخانه های زیادی در تقریبا هر زمینه ای داره. برای اپلیکیشن نویسی عمومی هم پرکاربرد هست بخصوص که از شیء گرایی پشتیبانی میکنه و نسبت به سی سطح بالاتر هست.

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

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

HTML - بدیهی هست که این زبان برای برنامه نویسی وب اولین جزء حیاتی هست.
البته چیزهایی مثل HTML دقیقا زبان برنامه نویسی نیستن، اما بهرحال مشترکاتی دارن و برای ساختن برنامه ها و کدنویسی حیاتی هستن.

CSS - اینم که باید یاد گرفت و در ترکیب با HTML بکار میره.
اینم زبان برنامه نویسی نیست.

Javascript - زبان اصلی برای برنامه نویسی سمت کلاینت برنامه های وب.

XML - کاربرد این فرمت اینقدر گسترده و استاندارد شده که نیاز هست حداقل یک منبع و کتاب درموردش مطالعه کنید و اصول پایهء اون رو بدونید.

BASH - معروف ترین و استانداردترین شل سیستمهای یونیکسی و GNU/Linux. مسلما شما روی لینوکس چه در دسکتاپ و چه در سرورهای وب، میتونید استفادهء زیادی از این شل و زبان برنامه نویسی اون ببرید و بدون این زبان یجورایی ناقص هستید و هرگز نمیتونید پادشاه کاملی در این قلمرو بحساب بیاید.
البته باید با برنامه های خطر فرمان لینوکس هم بحد کافی آشنا بشید تا بتونید از این شل نهایت استفاده رو ببرید.

DOS/شل ویندوز - تعجب نکنید! بنده شخصا اینقدر از داس یا سینتاکس مشابه اون در شلهای امروزی ویندوز استفاده های مفید کردم که فکر میکنم هنوزم یادگیری داس یا درواقع بخش بزرگی از سینتاکس و امکانات شل ویندوز برای یک کامپیوتری خبره بقدر کافی مفید باشه. با یادگیری داس/شل به ساختار ویندوز هم بهتر پی برده و احاطه پیدا میکنید و خیلی مفاهیم براتون روشنتر میشه. البته داس و شل قدیمی ویندوز در مقایسه با شلهای یونیکسی خیلی محدود و بدوی هست، اما بهرحال روی ویندوز گزینهء دیگری وجود نداره. تاجایی که میدونم در شلهای جدید ویندوز میشه با استفاده از دات نت هم شل اسکریپت نوشت و بنابراین قدرت و انعطاف شل ویندوز نسبت به گذشته خیلی بالاتر میره به این روش (البته مسلما نیاز به ویندوزهای جدیدتر و نصب بودن دات نت داره).

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

.NET - البته این درواقع یه فناوری یا فریمورک هست که از زبانهای مختلفی میتونه استفاده کنه. معروف ترین و مهمترین اونا زبان مخصوص این فریمورک بنام سی شارپ هست.
بنظرم یادگیری این فریمورک و بخصوص با زبان سی شارپ، در کل از نظر تجاری و کاربرد برنامه نویسی وب و دسکتاپ کاملا ارزشش رو خواهد داشت و این فریمورک آینده داری هست که پشتیبانی میکروسافت و کثرت ویندوز بقا و موفقیت اون رو بحد کافی تضمین میکنه. بهرحال باید نون هم خورد :لبخند:
ضمنا در این فریمورک امکانات سطح بالاتر و خیلی فناوریهای جدید لحاظ شدن.

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

خلاصه واقعیتش اینه که هرگز یک زبان و حتی دو زبان کافی نیست. و واقعیت اینه که یک خوره و کسی که میخواد واقعا محدودیت مهمی نداشته باشه و بتونه تقریبا هر برنامه ای رو که نیاز داره یا دوست داره شخصا بنویسه، نیاز هست این زبانها و حتی بیشتر از اینها رو یاد بگیره در نهایت.
برای تازه کارها این فکر وحشتناک هست احتمالا، اما مدتی که گذشت و حرفه ای تر شدن و عادت کردن و ذهن و حافظهء اونا با یادگیری مداوم چیزهای حجیم و پیچیده خو گرفت و قویتر شد، این مشکلات براشون خیلی کمتر میشه و بیشتر میفهمن که این رفتار طبیعی و مفید هست و ذات این رشته همینه.
یادگیری زبانهای بیشتر اگر با انتخاب حساب شده باشه، مسلما ارزشش رو داره. چون به ازای وقت و انرژی ای که صرف یادگیری یک زبان جدید برای کاربردهای خاصش میکنید، در آینده در وقت و انرژی خودتون در خیلی موارد دیگه صرفه جویی بیشتری میکنید. بطور مثال ما میتونیم تحت وب هم با سی++ برنامه بنویسیم، اما این کار خیلی سخت تر هست و بیشتر وقت و انرژی میبره و ما رو محدودتر میکنه، بنابراین بهتره برای برنامه نویسی وب PHP و/یا ASP.NET رو یاد بگیرید.

راستی بنده قبلا زبان Action Script رو هم لیست کرده بودم بخاطر کاربردش در فلش. اما الان فکر کردم شاید ضروری نباشه چون آلترناتیوهای مطرحی این روزها برای خیلی از کاربردهایی که سابقا فقط با فلش میشد انجام داد وجود دارن و انتظار میره در آیندهء نزدیک خیلی فراگیرتر بشن. مثلا حتی امکانات خود HTML5 میتونه جایگزین خیلی از کاربردهای فلش بشه.

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

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

returnx
چهارشنبه 17 فروردین 1390, 22:03 عصر
با سی و سی++ هستم ولی با PHP ، HTML ،CSS اینا نیستم چون اصلا به اونصورت نیازی نیست...
اما .net : این بر می گرده به برنامه نویس ، اگه برنامه نویس بخواد برنامه بزرگی بنویسه قطعا Framwork دات نت انتخابش نخواهد بود و Native Code کار می کنه ولی نه بخواد از این برنامه هایی که الان تو کشور ما رایج شده ، فقط یه سری عملیات خاص تو Database مثل ADD،Delete،Sort، Filter (بعد اسم خودش میزاره برنامه نویس) بخواهد کار کنه گزینه مناسبی هست ...
جاوا رو هم هستم...
(این فقط نظر شخصیه من بود)

eshpilen
چهارشنبه 17 فروردین 1390, 22:30 عصر
به بابا خسته نباشی!! بدون HTML ،CSS و جاوااسکریپت چطوری میخوای برنامه نویسی وب بکنی پس؟!

returnx
چهارشنبه 17 فروردین 1390, 22:54 عصر
خوب برنامه نویسی وب که جز واجبات نیست ، خوب نکن...
یه برنامه نویس سالی 2,3 تا می خواد سایت بسازه دیگه که بعضی ها هم اصلا این کارو نمی کنن در ضمن دست گل Adobe درد نکنه ،با Dreamweaver دیگه به برنامه نوشتن هم نیازی نیست همش Wizard دیگه...
ولی C++وJava مخصوصا C++ رو هر برنامه نویسی باید بلد باشه...

eshpilen
چهارشنبه 17 فروردین 1390, 23:18 عصر
شما همون اول نوشته های بنده رو هم با دقت نخوندی مثل اینکه.
ببین چی گفتم:

اول بگم که این چیزی که در اینجا بیان میکنم بر اساس یک نوع آدمها و هدف خاصی هست. یعنی آدمهایی که خوره هستن و هدفشون اینه که قادر باشن تقریبا هر برنامه ای رو در تقریبا هرجایی بنویسن.خوره میفهمی یعنی چی؟ یعنی من :لبخند:
عمرا رضا بدم که یکی از دو حیطهء اصلی و پرکاربرد و جالب برنامه نویسی رو که برنامه نویسی وب باشه بلد نباشم.
بعدم گرفتی ما رو داداش؟
فقط بحث سایت نیست که. وب اپلیکیشن میتونی درست کنی. برنامه های تحت اینترنت. توزیع شده. دارای دسترسی از هر نقطهء جهان. بعد تازه برنامه های ترکیبی و دو بخشی چی میشه؟ امروزه روز هم که این برنامه ها غیرکاربردی و غیرمنتظره نیستن آنچنان. مثلا شرکت سایت داره و شما یا کارفرما میخواد ارتباط و هماهنگی خودکار بین اطلاعات سایت و دسکتاپ برقرار بشه. بعضی برنامه ها هم که اصولا نیاز دارن به یک بخش وب و ماهیتشون اینطوری هست.
هزار و یک کاربرد جالب داره برنامه نویسی وب.
من خودم قبلا یه برنامهء نظارت از راه دور نوشتم که یه اینترفیس وبی داشت. البته میشد کلاینت و اینترفیس سمت دسکتاپ هم براش درست کرد، اما تحت وب کارم خیلی سریعتر و راحتتر شد. ضمنا تحت وب دیگه نیازی نداری برنامهء کلاینت رو همراهت داشته باشی.
فقط اینا هم نیست. کاربردهای ریز و درشت بسیار هست. بعضی از این کاربردها رو میشه صرفنظر/جایگزین کرد ولی بهتره سمت وب داشته باشن، و بعضی از اونا رو اصولا بخاطر ماهیت برنامه و نیازها نمیشه صرفنظر کرد.
اینم مثلا یه نمونهء دیگر البته خیلی ساده و کوچک از نیاز به برنامه نویسی سمت سرور وب برای یک پروژهء خاص که نرم افزار دو طرفش دسکتاپ هست ولی بعنوان یه واسطهء حیاتی نیاز به یه برنامهء کوچک تحت وب دارن: پروژهء ارتباط P2P (http://barnamenevis.org/showthread.php?271364)
ضمنا همین برنامه اگر بخواد اصولی و امن و کامل و با امکانات بیشتری بشه بخش سمت وبش میتونه کلی حجیمتر و پیچیده تر بشه. این برنامه فقط درحد یک تست الگوریتم و راه اندازی اولیه هست.


در ضمن دست گل Adobe درد نکنه ،با Dreamweaver دیگه به برنامه نوشتن هم نیازی نیست همش Wizard دیگه...اینطور برنامه ها درمورد سایت های استاندارد جواب میدن، اما درمورد اپلیکیشن ها و کاربردهای خاص بدرد نمیخورن. تازه شما اگر زیربنای کار رو بلد باشی میتونی در همون کاربردهای متعارف هم از این برنامه ها فراتر بری و مشکلات رو راحتتر و سریعتر حل کنی.
من حتی CMS استفاده کردم که نقص داشته و چون PHP بلد بودم تونستم توش دست ببرم و یه امکانات کوچیک ولی مفیدی رو که میخواستم بهش اضافه کنم. نقص و نیاز خاص همیشه ممکنه بوجود بیاد. و در کارهای غیرمتعارف و سفارشی هم که مسلما باید دستی خیلی کارها رو بکنی.

تازه بعضی برنامه های دسکتاپ رو هم میشه یا حتی باید به مرور تحت وب برد (حتی اگر بصورت Local اجرا میکنیم) بخاطر مزایایی که داره یا شرایط خاص.

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

blue_lotus
پنج شنبه 18 فروردین 1390, 00:16 صبح
هنوز بین علما اختلافه که HTML جزو زبان برنامه نویسی هست یا نه ;)

میلاد قاضی پور
پنج شنبه 18 فروردین 1390, 01:01 صبح
من تعجب کردم وقتی دیدم در مورد جاوا اسکریپت سه چهار کلمه نوشتید . جاوا اسکریپت فقط برای برنامه نویسی وب نیست . الان دیگه جاوا اسکریپت تبدیل به پیچگوشتی همه ی کسائی شده که معنی نرم افزار رو میفهمن و دوست دارن باهاش تمام کارهایی که از عهدش بر میاد رو انجام بدن . یک گرافیست یا ادیتور فیلم یا هر فردی که با نرم افزار مخصوص خودش کار میکنه باید بدونه که امکانات نرم افزار فقط در منو ها و تولباکسهاش نیست . جاوا اسکریپت شاه کلید حل تمام مشکلاتی هست که به نظر میاد راه حلی نداشته باشن یا کارهایی هست که آرزو میکنیم در اپلیکیشن هایی که استفاده میکنیم وجود داشتن. مثلا در برنامه فتوشاپ قسمتی برای ضمیمه کردن و اجرای اسکریپتهای جاوا اسکریپت وجود داره و کتب بسیاری هم برای آشنایی افراد با نحوه ی اسکریپت نویسی در فتوشاپ و نرم افزار های مربوطه تألیف شده . فرض کنیم من 30 40 تا عکس با موبایلم گرفتم و میخوام روی همشون یه سری کار تکراری انجام بدم. یا باید بشینم عین اسباب بازیای کوکی هی اون کارها رو انجام بدم یا اینکه 5 دقیقه وقت بذارم و چند خط اسکریپت ساده بنویسم که اون کارارو انجام بده و پروژه هام رو به فرمت های مختلف سیو هم بکنه .بعد وارد فتوشاپ کنم که اجرا بشه . کاری که ممکن بود ساعتها طول بکشه رو با چند دقیقه اسکریپت نویسی انجام دادم. برای ده سال آینده در کنار زبانهای مهمی که عنوان کردید قطعا باید به یک زبان اسکریپت نویسی (ترجیحا جاوا اسکریپت ) مسلط بود .

eshpilen
پنج شنبه 18 فروردین 1390, 09:49 صبح
جاوااسکریپت هم خوبه، ولی عمدهء کاربردش در برنامه نویسی وب سمت کلاینت هست و بخاطر بدیهی بودنش دیگه توضیحات بیشتری ندادم چون در این زمینه گزینهء دیگری تقریبا وجود نداره (ولی در زمینه های دیگه مثلا زبانهای متعددی هست). بقیشون هم البته که گفتید کاربردهای مفیدی هست ولی بنظرم یخورده از حیطهء منظور ما یعنی برنامه نویسی و توانایی نوشتن هر برنامه ای در هر جایی که بیشتر منظورم اپلیکیشن نویسی بود خارج هست. اون کاربردهایی که میگید بیشتر به سمت کاربری پیشرفتهء نرم افزارهای خاصی هستن تا تولید برنامه ها و برنامه نویسی عمومی.
ضمنا پایتون هم در خیلی از نرم افزارها بعنوان زبان اسکریپت نویسی مورد استفاده قرار میگیره.

m.soleimani
پنج شنبه 18 فروردین 1390, 11:30 صبح
فرض کنیم من 30 40 تا عکس با موبایلم گرفتم و میخوام روی همشون یه سری کار تکراری انجام بدم. یا باید بشینم عین اسباب بازیای کوکی هی اون کارها رو انجام بدم یا اینکه 5 دقیقه وقت بذارم و چند خط اسکریپت ساده بنویسم که اون کارارو انجام بده و پروژه هام رو به فرمت های مختلف سیو هم بکنه .بعد وارد فتوشاپ کنم که اجرا بشه . کاری که ممکن بود ساعتها طول بکشه رو با چند دقیقه اسکریپت نویسی انجام دادم

شما به جای کد نویسی توی فتوشاپ بهتره بری کار کردن با ماکروها رو یاد بگیری تا هم نیازی به کد نویسی نداشته باشی و هم خیالت از اجرای بدون خطا آسوده باشه. در کل عشق است سی++:قلب:

موفق باشید./

میلاد قاضی پور
پنج شنبه 18 فروردین 1390, 12:19 عصر
شما به جای کد نویسی توی فتوشاپ بهتره بری کار کردن با ماکروها رو یاد بگیری تا هم نیازی به کد نویسی نداشته باشی و هم خیالت از اجرای بدون خطا آسوده باشه. در کل عشق است سی++:قلب:

موفق باشید./

به نظر من ماکروها همیشه کارگشا نیستن . اما اسکریپت نویسی دست کاربر رو برای انجام کارهای پیچیده و خلاقانه باز تر میکنه .

JaguarXF
جمعه 19 فروردین 1390, 05:45 صبح
یک نوع آدمها و هدف خاصی هست. یعنی آدمهایی که خوره هستن و هدفشون اینه که قادر باشن تقریبا هر برنامه ای رو در تقریبا هرجایی بنویسن.

باه باه چه خوره‌های که اسم application server به گوششون نخورده

eshpilen
جمعه 19 فروردین 1390, 11:27 صبح
خود اپلیکیشن سرور هم متشکل از برنامه هست عزیز برادر.
بعدم میشه منظورتون رو شفاف تر بیان کنید؟