امروزه بیشتر حرفهایهای داده وقتی صحبت از انتخاب زبان برنامهنویسی میشه، یا R رو انتخاب میکنن یا Python. اما اگه هر دو رو بخوای چی؟ باید دائم بین محیطها و IDEهای مختلف جابجا بشی؟ اینم یه گزینهست، ولی کلی دردسر داره.
برای حل این مشکل، Posit یه ایده باحال به اسم Positron IDE رو ارائه داد؛ یه محیط توسعه برای دانشمندان داده که به صورت پیشفرض از R و Python پشتیبانی میکنه. این IDE الان توی نسخه بتای عمومی هست، یعنی هر کسی میتونه نصبش کنه.
امروز میخوایم بفهمیم این IDE جدید چیه و چطوری با ابزارهای موجود مقایسه میشه.
Positron ممکنه شبیه اسم یکی از آخرین رباتهای فیلمهای ترنسفورمرها باشه که به Optimus Prime ملحق میشه (و البته اسباببازیهاشون رو هم فراموش نکنیم). ولی در واقع، Positron یه محیط توسعه یکپارچه (IDE) جدیده که به طور خاص برای دو زبان برنامهنویسی R و Python طراحی شده. مثل یه جعبه ابزار همهکاره میمونه که توش همه چی هست: از ویرایشگر کد گرفته تا دیباگر و ابزارهای تحلیل داده. همه چیز توی یه پنجره!
این IDE جدید طراحی شده تا به دانشمندان داده کمک کنه تا بهتر بتونن دادهها رو تو برنامههای R و Python بررسی کنن.
وقتی با دادهها کار میکنی، بیشتر وقتت صرف کشف و فهم اونها میشه. هر پروژهی علم داده به تمیز کردن و آمادهسازی دقیق دادهها نیاز داره.
برای اینکه بتونی این مرحله از پروژه رو سریعتر و راحتتر انجام بدی، باید به سه نکتهی مهم توجه کنی: ۱) محیط کاری ۲) خود دادهها ۳) سوالاتی که از دادهها میپرسی. بذار این نکات رو از آخر به اول برات توضیح بدم.
اول از همه، هیچ IDE نمیتونه بهت بگه چه سوالاتی باید بپرسی — البته شاید اگه از ابزارهای هوش مصنوعی مثل Copilot استفاده کنی، بتونه کمک کنه. پس، فهمیدن دقیق کسب و کار و مشکلاتش یکی از مهمترین چیزهایی هست که یه دانشمند داده باید روش تمرکز کنه. حتی از مدلسازی هم مهمتره.
"کدوم مهارت برای یک دانشمند داده مهمتره: توانایی استفاده از پیشرفتهترین مدلهای یادگیری عمیق، یا توانایی ساخت اسلایدهای خوب در پاورپوینت؟" جاناتان نولیس، رهبر علم داده در منطقه سیاتل که به شرکتهای Fortune 500 کمک میکنه، استدلال کرد که دومی مهمتره، چون انتقال نتایج همچنان بخش مهمی از کار با دادههاست. — Harvard Business Review
برای اینکه بتونی دادهها رو خوب کشف کنی، یه IDE خوب خیلی به کارت میاد. باید بتونی به راحتی نمودارهای دادهها رو ترسیم کنی، مقادیر مفقود و نقاط دورافتاده رو پیدا کنی و با یک کلیک متغیرها رو ببینی. چیزی که خیلی ازش قدردانی میکنی اینه که بتونی دیتاستها رو به راحتی فیلتر و مرتب کنی.
"80٪ از زمان یه دانشمند داده صرف پیدا کردن، تمیز کردن و سازماندهی دادهها میشه و فقط 20٪ برای تحلیل واقعی باقی میمونه." — Harvard Business Review
در نهایت، یه محیط کاری خوب باعث میشه پروژهت رو بدون دردسر تموم کنی. اگه نیاز داشته باشی هم از Python و هم از R استفاده کنی، بهتره یه IDE داشته باشی که هر دو رو پوشش بده. اینجاست که Positron به کمکت میاد. با Positron، دیگه نیازی نیست بین IDEهای مختلف جابجا بشی. همه چی توی یه محیط یکپارچه و ساده قرار داره که کار رو برات راحتتر میکنه.
همونطور که گفتم، Positron یه IDE نسل جدیده که توسط Posit ساخته شده. هنوز در حال توسعه هست، پس ممکنه بعضی از قابلیتها به درستی کار نکنن (بیشتر در ادامه توضیح میدم). ولی این نسخه بتای عمومی هست، یعنی میتونی به راحتی امتحانش کنی!
میتونی آخرین نسخه Positron رو از صفحه انتشار رسمی گیتهاب دانلود کنی.
در واقع، Positron یه فورک از IDE معروف Visual Studio Code هست. اگه با VSCode آشنایی داشته باشی، Positron هم برات آشنا خواهد بود. یه سری ویژگیهای خوب به صورت پیشفرض داره، ولی اکثر اینها رو میتونی از طریق پلاگینها روی یک نسخه خام از VSCode هم پیکربندی کنی.
وقتی اولین بار Positron رو باز کنی، این چیزی هست که میبینی:
تصویر 1 – صفحه خوشآمدگویی Positron IDE
قطعاً شبیه یه ترکیب از RStudio و Visual Studio Code به نظر میاد! نوار کناری برای ناوبری و افزونهها و همچنین نمای چهار پنلی برای کد، کنسول، نمودارها و متغیرها رو داری.
پنل بالای سمت چپ بهت اجازه میده که کار روی پروژههای علم دادهات رو شروع کنی، چه با R و چه با Python، از طریق نوتبوک یا فایل. Positron به طور خودکار زبانهای برنامهنویسی نصب شده و نسخههای اونها رو شناسایی میکنه و همچنین محیطهای مجازیای که قبلاً ایجاد کردی رو هم پیدا میکنه.
تصویر 2 – ایجاد فایل/پروژه در Positron IDE
حالا بیایید این پشتیبانی از چند زبان و چند فرمت رو با جزئیات بیشتری بررسی کنیم.
یکی از بزرگترین مزیتهای Positron IDE اینه که بهطور پیشفرض برای R و Python تنظیم شده، و شامل Jupyter Notebooks هم هست. این یعنی دیگه نیازی نیست همه چیز رو از صفر تنظیم کنی، که در مورد R و Jupyter همیشه کار آسونی نیست.
برای ایجاد یه اسکریپت جدید R، فقط کافیه روی دکمه New File در صفحه خوشآمدگویی کلیک کنی و R File رو انتخاب کنی. نوشتن و اجرای کد هم مثل RStudio کار میکنه – با فشردن Command/Control + Enter سلولی رو که مکاننما در اون هست اجرا میکنی:
تصویر 3 – کار با فایلهای R در Positron
همین روش برای نوشتن و اجرای کد در اسکریپتهای Python هم کار میکنه – هر بلوک کدی رو که میخوای بنویس و با Command/Control + Enter اجراش کن:
تصویر 4 – کار با فایلهای Python در Positron
من فکر میکنم Jupyter Notebooks بیشترین انعطافپذیری رو فراهم میکنه. میتونی یه نوتبوک با پروفایل زبان برنامهنویسی پیشفرض (R یا Python) ایجاد کنی، ولی بعد میتونی زبان رو برای هر سلول تغییر بدی.
به خاطر این انعطافپذیری، میتونی بین سلولهات متن/مارکداون هم اضافه کنی تا منابع یا توضیحاتی رو فراهم کنی:
تصویر 5 – کار با Jupyter Notebooks در Positron
این اساس پشتیبانی از زبانهای برنامهنویسی و فرمتها در Positron بود. حالا بریم سراغ چند ویژگی پیشرفتهتر.
Ark یه هسته R برای Jupyter هست و بهطور پیشفرض با Positron IDE همراه شده. قبلاً اگه میخواستی R رو توی Jupyter Notebooks اجرا کنی، باید IRkernel رو نصب میکردی. البته امکان نصب Ark هم وجود داشت، ولی حالا به صورت پیشفرض در Positron موجوده.
Ark چه کاری برات انجام میده؟ Ark تعامل ساختاری بین زبان R و Jupyter رو فراهم میکنه. همچنین قابلیت IntelliSense رو از طریق سرور LSP فعال میکنه و دیباگینگ مرحله به مرحله توابع R رو از طریق سرور DAP ارائه میده. فعلاً Ark از breakpoints پشتیبانی نمیکنه، ولی میتونی از debug(), debugonce(), یا browser() به جای اون استفاده کنی.
حالا بیا بیشتر درباره IntelliSense صحبت کنیم. مثلاً، میتونی Tab رو بزنی تا پیشنهادات خودکار رو ببینی:
تصویر 6 – پیشنهادات خودکار
این قابلیت همچنین بهت کمک میکنه تا مثلاً همه توابع موجود در یه پکیج خاص رو لیست کنی:
تصویر 7 – پیشنهادات خودکار
خب، شاید این ویژگی خیلی جدید و شگفتانگیز نباشه و اگه قبلاً با RStudio کار کرده باشی، برات عادی باشه. اما Jupyter و R همیشه خوب با هم کار نمیکنن. هسته Ark این مشکل رو حل کرده و با Positron دیگه نیازی نیست که خودت دستی نصب و تنظیمش کنی.
اما یکی از بهترین بهبودهای Positron برای توسعهدهندهها، box imports هست. بیایید در موردش صحبت کنیم.
Box imports یه دردسر بزرگ توی VSCode و RStudio هست. توی VSCode نمیتونی با Control/Command + کلیک به تعریف تابع برسی و توی RStudio هم فقط زمانی که تابع رو فراخوانی میکنی کار میکنه، نه زمانی که واردش میکنی. خوشبختانه، Positron این مشکل رو حل کرده.
اینجا یه مثال داریم – تابع my_square_function() که توی r_code/functions.R صادر شده:
تصویر 8 – مثال Box Imports
همونطور که میبینی، حالا میتونی هم از طریق ایمپورت و هم از طریق فراخوانی تابع به تعریف تابع برسی!
و این هم اصول اولیه Positron برای تو! حالا بریم سراغ چند نکته و ترفند برای اجرای کد توی این IDE جدید.
Positron که ترکیبی از RStudio و Visual Studio Code هست، بهترین ویژگیهای هر دو دنیا رو داره. این بخش بهت میانبرهای مفید و ویژگیهایی برای کار با دادهها رو نشون میده.
با اینکه لزومی نداره از میانبرهای صفحهکلید استفاده کنی، ولی اونها بهطور قابلتوجهی بهرهوری توسعهدهنده رو افزایش میدن. تصویر زیر نشون میده که بدون میانبر چطور میشه یه سلول Jupyter رو اجرا کرد:
تصویر 9 – اجرای سلول Jupyter بدون shortcuts
کلیک دستی روی دکمه Play بعد از چند بار تکرار واقعاً خستهکننده میشه. به جای اون میتونی از یکی از این میانبرها استفاده کنی:
در محیط نوتبوک، این میانبرها هم مفید هستن:
توجه کن که این میانبرها با میانبرهای معمول Jupyter Notebook فرق دارن، ولی میتونی لیست کامل میانبرهای موجود رو توی Settings – Keyboard Shortcuts ببینی. هر میانبری قابل تنظیمه.
DataFrameها هسته همه فرآیندهای علم داده هستن، بنابراین داشتن یه IDE که بتونه تمام اطلاعات مرتبط با اونها رو نمایش بده، خیلی مهمه.
Positron بهت اجازه میده محتوای DataFrame رو به کنسول R پرینت کنی، با فراخوانی توابع مخصوص R مثل head():
تصویر 10 – پرینت ۶ ردیف اول DataFrame
اما ویژگی جالبتر DataFrame Viewer هست. وقتی DataFrameت تعریف شد، میتونی اون رو توی پنل متغیرها ببینی. میتونی متغیر رو باز کنی تا تمام ستونها و مقادیر مربوطه رو ببینی، یا میتونی روی ستون جدول کلیک کنی تا DataFrame رو به صورتی شبیه به اکسل بررسی کنی:
تصویر 11 – بررسی DataFrame
همونطور که میبینی، میتونی مقادیر رو مرتب کنی، فیلتر اعمال کنی، مقادیر مفقود رو بررسی کنی و خیلی کارهای دیگه – همه اینها مستقیماً از رابط کاربری انجام میشه.
یه ویژگی عالی RStudio نمایشدهنده نمودارها یا Plot Viewer هست. توی Positron هم یه پنل اختصاصی برای ویژوالیزیشنها داری و میتونی به راحتی بین نمودارهای مختلف جابجا بشی. Positron این ویژگی رو داره، با یه رابط کاربری بهروزرسانی شده:
تصویر 12 – بررسی نمودارها
ایجاد یه نمودار جدید، نمودار قبلی رو پاک نمیکنه، چون میتونی به راحتی بین اونها با استفاده از پنل سمت راست جابجا بشی:
تصویر 13 – بررسی نمودارها (2)
حالا بریم سراغ ابزار قدرتمند و بهبود یافته Variable Inspector.
توانایی بررسی اشیای پیچیده، مثل نمودارها، یه ویژگی ضروری برای دیباگ کردن کد و اطمینان از عملکرد درست اونهاست. RStudio هم این ویژگی رو داره، ولی Positron بهت اجازه میده عمیقتر بررسی کنی و یه رابط کاربری شیکتر داره:
تصویر 14 – Variable Inspector
همونطور که میبینی، میتونی به تمام جزئیاتی که برای ساختن اشیای پیچیده ترکیب شدن دسترسی پیدا کنی.
از چیزی که تا حالا دیدم، قطعاً بله. اینجا میخوام ویژگیهایی که از Positron خوشم اومد، مواردی که واقعاً من رو تحت تأثیر قرار داد، و چیزهایی که فکر میکنم میتونست بهتر باشه رو توضیح بدم. بزن بریم!
این نسخه هنوز کامل نشده و من مطمئنم که این شروع یه چیز بزرگتره، ولی اینجا چند تا پیشنهاد دارم که معمولاً توی ابزارهای داده دیگه هست و میتونن مفید باشن:
درسته که VSCode از R پشتیبانی میکنه، اما اغلب به دلیل تداخل با افزونههای دیگه دچار مشکل میشه. Positron این مشکل رو حل کرده چون بهطور پیشفرض از R پشتیبانی میکنه و یه هسته جدید Jupyter به نام Ark داره که سرعت بالای IntelliSense رو فراهم میکنه. همچنین، VSCode ساده کنسول اختصاصی R نداره.
نه، Posit همچنان از هر دو Positron و RStudio پشتیبانی میکنه و به توسعه اونها ادامه میده.
Positron IDE در نسخه بتای عمومی هست، پس ممکنه گاهی مشکلاتی پیش بیاد. چون Positron فورکی از VSCode هست، انتظار داری که همه افزونههای VSCode کار کنن. اما به دلیل مجوزهای مایکروسافت، افزونه GitHub Copilot فعلاً کار نمیکنه. افزونههای دیگهای مثل Remote SSH و DevContainers هم فعلاً کار نمیکنن. پشتیبانی از Remote SSH در نقشه راه Posit برای Positron قرار داره و به زودی رفع میشه.
بیشتر ویژگیهای RStudio در Positron موجوده، اما پشتیبانی از خروجی درونخطی Quarto، پروفایلینگ R Markdown، Sweave، افزونههای RStudio و حتی انتشار آسان اپها و گزارشهای Shiny/Quarto به Posit Connect یا Shinyapps.io فعلاً وجود نداره.
به طور خلاصه، Positron یه IDE جدید از Posit هست که نویسندگان RStudio هم هستند. این IDE به عنوان جایگزین RStudio طراحی نشده و هر دو به توسعه خودشون ادامه میدن. این یه محصول جدیده که هدفش اینه که یه محیط کامل برای کارهای علم داده با R و Python فراهم کنه. در نسخه بتای عمومی فعلی، هنوز برخی نقصها وجود داره چون افزونههایی که روزانه ازشون استفاده میکنیم، به خوبی کار نمیکنن.
اگه دوست داری بیشتر درباره Positron بدونی، حتماً به مخزن رسمی گیتهاب سر بزن. اگه میخوای امتحانش کنی، آخرین نسخه رو از صفحه انتشارشون دانلود کن.
آیا تا حالا Positron IDE رو امتحان کردی؟ فکر میکنی میتونه جایگزین خوبی برای RStudio/VSCode در کارهای علم داده باشه؟ مشتاقیم نظرت رو بشنویم.