همه چیز درباره ی پایتون

در این دوره زمونه یکی از دغدغه های افراد تازه وارد در دن ی ای برنامه انتخاب زبان برنامه نویس ی است . ز یرا آنها میدانند که هر ، نویس ی زبان برنامه نویسی کاربرد ، بازارکار و تواناییهای خاص خود را دارد . بنابراین چنین افراد ی همی شه در تلاش اند که زبان ی را انتخاب کنند که برای آنها محدودیتی به همراه نداشته باشد و برای رسیدن به اهدافشان کمکشان کند . میتونم بگم که یکی از محبوب ترین زبان های برنامه نویس ی , زبان پایتون هستش . به نظرتون زبان پایتون از کجا به وجود امده ؟زبان برنامه نویسی پایتون در سال1991 میلادی متولد شده است توسط محقق هلندی به نام خیدو فان روسوم . طبق گفته های سازنده آن هدف از ایجاد این زبان صرفا ایجاد و طراحی یک زبان با بهره ور ی بالا و خوانایی بیشتر بوده . زبان برنامه نویس ی پایتون به زبانهایی همچون پرل . روبی شباهت بسیاری دارد . یادگیر ی این زبان برنامه نویسی بسیار ، آسان است به طور ی که افرادی که هنوز درک درستی از برنامه نویسی ندارند می توانند با این زبان فعالیت خود را آغاز کنند . این زبان قابلیت های و هیجان انگیزی دارد که در دنیای برنامه نویسی تحولی به وجود آورده است , از توسعه برنا مه های وب گرفته تا ایجاد بازی های رایانه ایدر این سال های اخیر , پایتون مورد توجه بسیار ی از برنامه نویسان بوده و روز به روز هم به تعداد دنبال کننده او افزوده میشه , اگرچه هنوز در ایران هنوز جایگاه خودش را پیدا نکرده است ,ولی میشود آینده ی روشنی برایش تصور کرد ، ز یرا کاربردها ی فراوانی داشته و در برنامه نویس ی بسیار ی از وبسایت های معتبر مورد استفاده قرار گرفته است .قبل از پایتون زبانی با نام ABC پیاده سازی شده بود که با مشکلات زیادی روبرو بود اما بعضی از ویژگی ها ی این زبان از دید Van Rossumخوب و کاربردی بودند . از ین جهت او با بهره گیر ی از تعدادی از ویژگی های ABC ، پایتون را پیاده ساز ی کرد. خیدو فان روسوم <Van Rossum> در 13 ژانویه 1956 در هلند متولد شد او به دلیل بهره مندی از هوش و پشتکار فراوان به موفقیت ها ی بسیار ی دست پیدا کرد . van Rossum پایتون را زمانی که در مؤسسه ملی تحقیقات ر یاضی و رایانه مشغول به کار بود ابداع کرد. خب تا اینجا با تاریخچه و پدر پایتون آشنا شدیم حالا در مورد اینکه پایتون چه کاربردی دارد و در کجا ها میتوان ازش استفاده کرد می پردازیم . پایتون یک زبان عمومی General porpuse هستش و اصلا محدود به یک حوزه خاص نمیشود .این یعنی میتوان ید با یک تیر چند نشان زده و در بخشهای مختلف تکنولوژ ی هم فعالیت کنید .یک برنامه نویس پایتون اگر حرفه ای باشد ، در هر حوزه ا ی سخنی برای گفتن خواهد داشت . بعضی از زبانهای برنامه نویسی هستند که , مخصوص به یک حوزه خاص هستند یا اگر به بخشهای دیگر ورود کنند قدرت چشم گیری ندارند ، اما پایتون برخلاف باقی زبان های برنامه نویسی است . کافی است آن را یاد بگیر ید و تبدیل به یک متخصص پایتون شوید تا ببینید در دنیای برنامه نویسی واقعا چه قدرتی به شما میدهد . یکی از مهمتر ین دلایلی که باعث شد پایتون به بخشهای مختلف IT را پیدا کند ، کتابخانه ها بودند . این کتابخانه ها هستند که پایتون را توسعه پذیر میکنند , و همچنین باعث راحت تر شدن کار برنامه نویسان میشوند . هرچند بعضی از این کتابخانه ها هنوز جای رشد و پیشرفت دارند و در پروژههای بزرگ قابل استفاده نیستند .یکی دیگر از قابلیت های جذاب پایتون چسبندگی این زبان است . منظور از چسبندگی یا Glue language این است که ، پایتون میتواند به خوبی با کدهای سایر زبانهای برنا مه نویسی ادغام شود یا اصطلاحا به آنها بچسبد . به کمک این تکنیک میتوانید یک قطعه کد به زبان c++ یا هر زبان دیگر ی را به راحتی به پروژه خود اضافه کنید . در ادامه کاربرد پایتون را به صورت دقیق مورد بررسی قرار خواهیم داد پس با من همراه باشید . ساخت اپلیکیشن موبایل می دانیم که برای ساخت اپلیکیشن های اندروید , از زبان های اصلی برنامه نویسی جاوا و کاتلین استفاده میشود و همچنین توسعه دهندگان ios و swift استفاده میکنند . امروزه به لطف وجود ابزارهایی واسط ، میتوان با یک زبان ، برنامه نویسی کرد و خروجی آن را در چندین پلتفرم اجرا کرد . برا ی نمونه می شو د با پایتون کد نویسی کنید و خروجی آن را در موبایل خود اجرا کنید , به همین راحتی . اما اگر پایتون را یاد بگیر ید به کمک فرم ورک هایی مثل Kivy تو سال 2021 مبلغ 5000دلار از بنیاد پایتون دریافت کرد تا فریم ورک خود را به پایتون 3.3 پورت کنید . kivy بعد از اپلیکیشن موبایل سراغ Raspberry Pi هم رفت تا پای پایتون به توسعه رزبری هم هم باز شود . چون توسعه اپلیکیشنهای موبایل با kivy به صورت native نیست مشکلاتی مثل ز یاد شدن حجم برنامه یا افت سرعت مواجه شوید که امری طبیعی است .پایتون برای برنامه نویسی در API طراح های رابط های گرافیکی فعالیت در حوزه های بلاک چین ساخت اپلیکیشنهای ، چندرسانهای کاربرد ی است . طراحی وب سایتشاید کمتر به گوشتان خورده باشد که از پایتون هم میتوان در طراحی وب هم استفاده کرد! طبیعی است که وقتی صحبت از طراحی سایت و توسعه وب میشود ذهن اکثر افراد به سمت PHP یا ASP میرود . البته خب چیز عجیبی هم نیست چون بسیار ی از سایتهای مطرح با این دو زبان برنامه نویسی نوشته شده اند ، . اما بلاخره بعداز گذشت زمان پایتون هم در وب تواناییهای خودش را به خوبی نشان داد و در ساخت برنامههای تحت وب به کار گرفته شد . مخصوصا از زمانی که فریم ورک های آن در زمینه طراحی وب روی کار آمدند . به لطف وجود فریمورک جنگو و میکروفریمورک هایی مثل FLASK ، شما برنامه نویس عزیز میتوانید با این زبان وبسایت و اپلیکیشنهای تحت وب هم کدنویسی کنید , و البته ناگفته نماند که این فریم ورک ها در محبوبیت پایتون نقش مهمی ایفا کردند . حتی خیلی از افراد ، پایتون را یاد میگیرند تا زودتر سراغ این فریم ورکها بروند . در حال حاضر Django ششمین فریم ورک محبوب دنیا برای ساخت سایت است و پروژه های بزرگی با آن پیاده ساز ی شده اند . سایتهای موفق ی مثل اینستاگرام ناسا پینترست و غیره از Django استفاده میکنند . یادگیری ماشینیادگیر ی ماشین زندگی machine learning موضوع دیگری است که در زندگی روزمره ما حضور فعالی دارد و گاهی بدون اینکه متوجه باشیم در حال استفاده از آن هستیم .و البته که پایتون در هوش مصنوعی و یادگیر ی ماشین، کاربردهای گسترده دارد . پکیج های مختلفی در این زبان برای این اهداف وجود دارد . برای مثال زمانی که در سایت گوگل جستجو میکنیم و گوگل لیستی از نتایج را برای ما نمایش می گذارد در حقیقت در حال استفاده از الگور یتمهای یادگیر ی ماشین هستیم . و بعضی از فروشگاههای اینترنتی با شخصی سازی سایت برای کاربران ، پیشنهادها یی هوشمندانه ای به ما ارائه میدهند . سیستمهای تشخیص چهره یا دستیار های صوتی مثل Sir یا Cortana نمونه دیگر ی از کاربردهای یادگیر ی ماشی ن هستند .جالب است بدانید که پایتون در یادگیر ی ماشین عملکرد مناسبی دارد و بسیار ی از متخصصان machine learning از کتابخانههای آن استفاده میکنندکاربرد پایتون در داده کاوی و Big Data بهتر است اول از پایه بگویم تا برسیم به داده کاوی توسط پایتون . اصلا داده کاوی چی هستش ؟ داده کاوی یا Data Mining به زبان ساده یک روش برای حل مسئله است که با تحلیل حجم ز یادی از داده ها ، الگوهای تکرارشونده ای را از آنها استخراج میکند . بعد با پیداکردن ارتباطات بین اتفاقات مختلف و این الگوها ، راه حل هایی برای چالش هایی که اتفاق افتاده است ارائه میدهد . در واقع دیتا ماینینگ از اطلاعاتی که ممکن است کاربردی نداشته باشند ، نتایج ارزشمندی کشف کرده و آنها را قابل استفاده میکند . در واقع میشه گفت که دیتا ماینینگ علمی قوی است که میتواند در همه چیز سرک بکشد و از دل ندانسته ها بسیار ی از سوالات ما را جواب دهد . که امروزه اهمیت این علم در شرکت های بزرگ بسیار شناخته شده است , که قبل از تصمیم گیری و برنامه ر یز ی برای انجام کمپین های تخصصی و یا طراحی اول برای به دست آوردن دادههای عمومی اقدام ، محصولات پر هز ینه میکنند . خب یادگرفتیم که داده کاوی علم بررسی داده هاست ,جالب است سرویس هایی مثل اینستاگرام یا موتور جستجوی گوگل ، روزانه چند هزار گیگابایت داده از کاربران خود در یافت میکنند و درآمد بالایی از تحلیل این داده ها کسب میکنند . به کمک Data Mining یک یا چند پایگاه داده بزرگ انالیز شدهاز دل آنها اطلاعات مفید و کاربردی به دست می اید . مثلا شاید از 50گیگابایت دیتابیس تنها چند مگابایت گزارش بیشتر استخراج نشود اما همین چند مگابایت هم بسیار باارزش هستند . یک مهندس یا دانشمند داده برای قابل فهم کردن الگور یتمهای رشته خود به کامپیوترنیاز به برنامه نویسی دارد . با اینکه زبانهای مختلفی مانند cو scalaو R ، در داده کاوی قابل استفاده هستند ، اما معمولا بهتر ین گز ینه برای داده کاوی استفاده از زبان برنامه نویسی پایتون است چون همانطور که بالاتر گفتم کتابخانههای پا یتون بسیار کاربردی هستند . در پایتون کتابخانهها ی متنوعی برای کار با دادهها وجود دارند مثل scarpy برای خریدن در وب و بررسی دادههای موجود دچاستفاده میشود. یا NumPy برای ساخت اراییه های n بعدی و انواع فرمول های ریاضی مثل تبدیل فوریه یا توابع جبر خطی به کار گرفته میشودهمچنین داده کاوی به سرعت درحال رشد است که در این حوزه پایتون حرفی برای گفتن دارد . داده کاوی مزیت هایی متعددی در سیستم کسب و کار هم دارد: پیشبینی ترندهای آینده افزایش بهینه ساز ی وب سایتهایجاد انگیزه در محققین بازار یابی و خرده فروشی استفاده از داده کاو ی در بانکدار ی و امور مالی تعیین گروههای مشتر یان افزایش وفادار ی مشتر یان به برند کمک در تصمیم گیر ی افزایش درآمد شرکت کاربرد پایتون در هک و تست نفوذبه نظرتون پایتون میتواند در کنار همه مزایای خود ترسناک هم باشد ؟ در هک و امنیت پایتون با توجه به داشتن کتابخانه های بی شمار در زمینه هک و امنیت این کمک را به افراد میکند تا به راحتی کدها ی جالب و مفیدی در زمینه هک و امنیت را سورس نویسی کنند کتابخانه هایی در زمینه تروجان نویسی و حملات دیداس و بروت فورس و.. را می توان نام برد . همچنین وقتی صحبت از هک و نفود در سیستمها میشود حرفهای زیادی برا ی گفتن دارد . هکرها دانش ز یادی در علوم رایانه دارند و معمولا با گرایشهای مختلف کامپیوتر آشنا هستند . بر نامه نویسان به کمک بر نامه نویسی به راحتی میتوانند ابزار ها ی مورد نیاز خودشان را بنویسند و چه زبانی بهتر از پایتون هست که میتواند درهای ممنوه را به روی برنامه نویس ها باز کند ؟ کاربرد پایتون در هک به علت بازدهی بالایی است که این زبان اسکر یپتی در ساخت برنامه های کوچک دارد و به همین دلیل است که هکرها ی حرفه ای تسلط بسیار عالی بر پایتون دارند . تا اینجای مطلب چند بار درباره کتابخانههای پایتون صحبت کردم . دلیل آن اهمیت بسیار ز یاد این کتابخانهها است . این زبان در شبکه و تست نفوذ کتابخانهها ی مختلفی مثلNETWORK, NAPALM, PULSAR دار د , و البته اگر سر ی به گیت هاب بزنیم تعداد زیادی ابزار تست نفوذ و هک را میبینیم که با این زبان نوشته شده اند . اموزش و تحصیلات اکادمیک بر خلاف بسیار ی از کشورهای پیشرفته، در مدارس ایران برنامه ریز ی خاصی برای آموزش برنامه نویسی به کودکان و نوجوانان وجود ندارد .در سالهای قبل ، بسیار ی از کشورها در مدارس خود زبان Basic را اموزش میدادند اما امروزه پایتون جای آن را گذاشته اند. اگر یک کودک 12 ساله کد ها c++و java را ببیند احتمالا برای همیشه از برنامه نویسی زده میشود . اما پایتون ساختار ساده و جذابی دارد و یادگیر ی آن آسان است . پایتون به خاطر ساختار ساده ای که دارد گز ینه مناسبی برای تدر یس برنامه نویسی مخصوصا به کودکان و نوجوانان است . ساخت رابط کاربری گرافیکیاز آن روزهایی که کامپیوترها فقط خط فرمان command line داشتند زمان ز یادی میگذرد . هر چند هنوز هم رابط کاربر ی خطی مزایای ز یادی مثل قابلیت اسکریپت نویسی سرعت و کنترل بیشتر دارند اما امروزه بیشتر نرم افز ارها برای ز یبایی و راحتی کاربران از رابط گرافیکی استفاده میکنند. البته کار با خط فرمان برای بسیار ی از کاربران ناخوشایند یا مشکل هستش . زبان برنامه نویسی پا یتون در ساخت رابط گرافیکی عملکرد عالی دارد و کتابخانه های مختلفی برای این کار معرفی کرده است . گتابخانه هایی مثل GTK + یا WxPython به شما برنامه نویس عزیز کمک میکند بعد از نوشتن کدهای برنامه و ساخت منطق آن یک رابط گرافیکی هم به پروژه خود اضافه کنید . کتابخانه Tkinter به نظر خیلی از توسعه دهندگان ، استانداردتر ین کتابخانه پایتون در طراحی رابط کاربر ی است . همینطور PyQt کاربری اسان و جذاب دارد که با نصب ان در لینوکس یا ویندوز میتوانید به صورت گرافیکی محیط مورد نظر خود را پیاده ساز ی کنید . کاربرد پایتون در ساخت بازی های رایانه ای همان طور که تکنولوژ ی رشد و پیشرفت کرده است بازی های رایانه ای هم پیشرفت کردند و امروزه در بعضی از کشورها صنعت پردرآمد و پولساز ی حساب میشوند . همانطور که میدایند در طراحی باز یهای پیشرفته از موتورها ی بازیساز ی اختصاصی استفاده میشود. اما بعضی از موتور ها مثل Unreal یا Unity به طور عمومی عرضه میشوند . برای ساخت بازی با هزینه نسبتا پایین ترکیب زبان برنامه نویسی c# و موتور بازی سازی unity پشنهاد میشود . شاید انتظارش را نداشته باشید اما پایتون در این زمینه هم کاربرد دارد .یpyGame یک کتابخانه رایگان و یک کتابخانه معروف بازی سازی است و Cross platform است که از سال 2000 کار خود را شروع کرده و توسط انجمن pygame توسعه میابد این کتابخانه از عناصری مثل صدا و گرافیک کامپیوتری تشکیل شده که به خوبی یا زیان برنامه نویسی پایتون هماهنگ است . بازی هایی مثل frets on fire با موتور pygame ساخته شده اند . هر چند این کتابخانه قدمتی طولانی دارد اما هنوز اختلاف ان با unity یا cry Engine بسیار زیاد است . این کتابخانه بیشتر برای ساخت بازی های سبک و ساده استفاده میشود .این کتابخانه پایگیم در بازی سازی نقاط قوت وضعفی هم دارد , ابتدا نقاط قوت آن و در آخر نقاط ضعف آن را میگویم . یک کتابخانه چند سکویی استتمام نیاز های یک باز ی ساز را میتواند فراهم کند. پایگیم می تواند از اندروید نیز پشتیبانی کند. از ویژگی هایی مثل دستکار ی آرایه پیکسل ها ، استفاده از کیبورد ، موس ، دوربین و … ، استفاده از انواع فیلتر ها،ترسیم شکل ها و استفاده از انواع فونت ها برخوردار است. از آن میتوان برای ساخت نرم افزار ها و اپلیکیشن های سمت دسکتاپ و موبایل نیز استفاده کرد . و حالا نقاط ضعف ... برای ساخت مدل های سه بعدی در آن کمی کار دشوار میشودالبته پایگیم برای ساخت مدل های سه بعدی D3 کتابخانه ی Panda3D را پیشنهاد میدهد که به عنوان مکمل استفاده میشود . گرداورنده : پرند کانطوری استاد : دکتر مریم حاجی اسمعیلی _ دکترای علوم کامپیوتر از دانشگاه کینگستون لندن