چه چیزی باعث میشه یه IDE برای کار با دادهها خوب باشه؟
سلام به Positron IDE! ویژگیهای کلیدی که باید بدونی
اجرای کد در Positron IDE – نکات و ترفندها
آیا Positron همون IDE ای هست که برای کار با دادهها نیاز داری؟
سوالات متداول
جمع بندی
امروزه بیشتر حرفه ایهای داده وقتی صحبت از انتخاب زبان برنامه نویسی میشه، یا R رو انتخاب میکنن یا Python. اما اگه هر دو رو بخوای چی؟ باید دائم بین محیطها و IDEهای مختلف جابجا بشی؟ اینم یه گزینه ست، ولی کلی دردسر داره.
برای حل این مشکل، Posit یه ایده باحال به اسم Positron IDE رو ارائه داد؛ یه محیط توسعه برای دانشمندان داده که به صورت پیش فرض از R و Python پشتیبانی میکنه. این IDE الان توی نسخه بتای عمومی هست، یعنی هر کسی میتونه نصبش کنه.
امروز میخوایم بفهمیم این IDE جدید چیه و چطوری با ابزارهای موجود مقایسه میشه.
Positron چیه؟
Positron ممکنه شبیه اسم یکی از آخرین رباتهای فیلمهای ترنسفورمرها باشه که به Optimus Prime ملحق میشه (و البته اسباب بازی هاشون رو هم فراموش نکنیم). ولی در واقع، Positron یه محیط توسعه یکپارچه (IDE) جدیده که به طور خاص برای دو زبان برنامه نویسی R و Python طراحی شده. مثل یه جعبه ابزار همه کاره میمونه که توش همه چی هست: از ویرایشگر کد گرفته تا دیباگر و ابزارهای تحلیل داده. همه چیز توی یه پنجره!
این IDE جدید طراحی شده تا به دانشمندان داده کمک کنه تا بهتر بتونن دادهها رو تو برنامههای R و Python بررسی کنن.
چه چیزی باعث میشه یه IDE برای کار با دادهها خوب باشه؟
وقتی با دادهها کار میکنی، بیشتر وقتت صرف کشف و فهم اونها میشه. هر پروژه ی علم داده به تمیز کردن و آماده سازی دقیق دادهها نیاز داره.
برای اینکه بتونی این مرحله از پروژه رو سریعتر و راحتتر انجام بدی، باید به سه نکته ی مهم توجه کنی: ۱) محیط کاری ۲) خود دادهها ۳) سوالاتی که از دادهها میپرسی. بذار این نکات رو از آخر به اول برات توضیح بدم.
سوالات کسب و کاری
اول از همه، هیچ IDE نمیتونه بهت بگه چه سوالاتی باید بپرسی — البته شاید اگه از ابزارهای هوش مصنوعی مثل Copilot استفاده کنی، بتونه کمک کنه. پس، فهمیدن دقیق کسب و کار و مشکلاتش یکی از مهمترین چیزهایی هست که یه دانشمند داده باید روش تمرکز کنه. حتی از مدل سازی هم مهم تره.
"کدوم مهارت برای یک دانشمند داده مهم تره: توانایی استفاده از پیشرفتهترین مدلهای یادگیری عمیق، یا توانایی ساخت اسلایدهای خوب در پاورپوینت؟" جاناتان نولیس، رهبر علم داده در منطقه سیاتل که به شرکتهای Fortune 500 کمک میکنه، استدلال کرد که دومی مهم تره، چون انتقال نتایج همچنان بخش مهمی از کار با داده هاست. — Harvard Business Review
داده ها
برای اینکه بتونی دادهها رو خوب کشف کنی، یه IDE خوب خیلی به کارت میاد. باید بتونی به راحتی نمودارهای دادهها رو ترسیم کنی، مقادیر مفقود و نقاط دورافتاده رو پیدا کنی و با یک کلیک متغیرها رو ببینی. چیزی که خیلی ازش قدردانی میکنی اینه که بتونی دیتاستها رو به راحتی فیلتر و مرتب کنی.
"80٪ از زمان یه دانشمند داده صرف پیدا کردن، تمیز کردن و سازماندهی دادهها میشه و فقط 20٪ برای تحلیل واقعی باقی میمونه." — Harvard Business Review
محیط کاری
در نهایت، یه محیط کاری خوب باعث میشه پروژه ت رو بدون دردسر تموم کنی. اگه نیاز داشته باشی هم از Python و هم از R استفاده کنی، بهتره یه IDE داشته باشی که هر دو رو پوشش بده. اینجاست که Positron به کمکت میاد. با Positron، دیگه نیازی نیست بین IDEهای مختلف جابجا بشی. همه چی توی یه محیط یکپارچه و ساده قرار داره که کار رو برات راحتتر میکنه.
سلام به Positron IDE! ویژگیهای کلیدی که باید بدونی
همون طور که گفتم، Positron یه IDE نسل جدیده که توسط Posit ساخته شده. هنوز در حال توسعه هست، پس ممکنه بعضی از قابلیتها به درستی کار نکنن (بیشتر در ادامه توضیح میدم). ولی این نسخه بتای عمومی هست، یعنی میتونی به راحتی امتحانش کنی!
می تونی آخرین نسخه Positron رو از صفحه انتشار رسمی گیت هاب دانلود کنی.
در واقع، Positron یه فورک از IDE معروف Visual Studio Code هست. اگه با VSCode آشنایی داشته باشی، Positron هم برات آشنا خواهد بود. یه سری ویژگیهای خوب به صورت پیش فرض داره، ولی اکثر اینها رو میتونی از طریق پلاگینها روی یک نسخه خام از VSCode هم پیکربندی کنی.
ترکیبی از بهترین قابلیتهای RStudio و Visual Studio Code
وقتی اولین بار 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
Box imports یه دردسر بزرگ توی VSCode و RStudio هست. توی VSCode نمیتونی با Control/Command + کلیک به تعریف تابع برسی و توی RStudio هم فقط زمانی که تابع رو فراخوانی میکنی کار میکنه، نه زمانی که واردش میکنی. خوشبختانه، Positron این مشکل رو حل کرده.
اینجا یه مثال داریم – تابع my_square_function() که توی r_code/functions.R صادر شده:
تصویر 8 – مثال Box Imports
همون طور که میبینی، حالا میتونی هم از طریق ایمپورت و هم از طریق فراخوانی تابع به تعریف تابع برسی!
و این هم اصول اولیه Positron برای تو! حالا بریم سراغ چند نکته و ترفند برای اجرای کد توی این IDE جدید.
اجرای کد در Positron IDE – نکات و ترفندها
Positron که ترکیبی از RStudio و Visual Studio Code هست، بهترین ویژگیهای هر دو دنیا رو داره. این بخش بهت میانبرهای مفید و ویژگی هایی برای کار با دادهها رو نشون میده.
میانبرهای مفید
با اینکه لزومی نداره از میانبرهای صفحه کلید استفاده کنی، ولی اونها به طور قابل توجهی بهره وری توسعه دهنده رو افزایش میدن. تصویر زیر نشون میده که بدون میانبر چطور میشه یه سلول Jupyter رو اجرا کرد:
تصویر 9 – اجرای سلول Jupyter بدون shortcuts
کلیک دستی روی دکمه Play بعد از چند بار تکرار واقعاً خسته کننده میشه. به جای اون میتونی از یکی از این میانبرها استفاده کنی:
Control + Enter: اجرای سلول جاری بدون ایجاد سلول جدید
Shift + Enter: اجرای سلول جاری و ایجاد سلول جدید برای همون زبان برنامه نویسی
در محیط نوت بوک، این میانبرها هم مفید هستن:
C: کپی سلول
X: برش سلول
V: چسباندن سلول
D: حذف سلول
Command/Control + P: ناوبری بین فایل ها
توجه کن که این میانبرها با میانبرهای معمول Jupyter Notebook فرق دارن، ولی میتونی لیست کامل میانبرهای موجود رو توی Settings – Keyboard Shortcuts ببینی. هر میانبری قابل تنظیمه.
DataFrame Viewer
DataFrameها هسته همه فرآیندهای علم داده هستن، بنابراین داشتن یه IDE که بتونه تمام اطلاعات مرتبط با اونها رو نمایش بده، خیلی مهمه.
Positron بهت اجازه میده محتوای DataFrame رو به کنسول R پرینت کنی، با فراخوانی توابع مخصوص R مثل head():
تصویر 10 – پرینت ۶ ردیف اول DataFrame
اما ویژگی جالبتر DataFrame Viewer هست. وقتی DataFrameت تعریف شد، میتونی اون رو توی پنل متغیرها ببینی. میتونی متغیر رو باز کنی تا تمام ستونها و مقادیر مربوطه رو ببینی، یا میتونی روی ستون جدول کلیک کنی تا DataFrame رو به صورتی شبیه به اکسل بررسی کنی:
تصویر 11 – بررسی DataFrame
همون طور که میبینی، میتونی مقادیر رو مرتب کنی، فیلتر اعمال کنی، مقادیر مفقود رو بررسی کنی و خیلی کارهای دیگه – همه اینها مستقیماً از رابط کاربری انجام میشه.
Plot Viewer
یه ویژگی عالی RStudio نمایش دهنده نمودارها یا Plot Viewer هست. توی Positron هم یه پنل اختصاصی برای ویژوالیزیشنها داری و میتونی به راحتی بین نمودارهای مختلف جابجا بشی. Positron این ویژگی رو داره، با یه رابط کاربری به روزرسانی شده:
تصویر 12 – بررسی نمودارها
ایجاد یه نمودار جدید، نمودار قبلی رو پاک نمیکنه، چون میتونی به راحتی بین اونها با استفاده از پنل سمت راست جابجا بشی:
تصویر 13 – بررسی نمودارها (2)
حالا بریم سراغ ابزار قدرتمند و بهبود یافته Variable Inspector.
Variable Inspector
توانایی بررسی اشیای پیچیده، مثل نمودارها، یه ویژگی ضروری برای دیباگ کردن کد و اطمینان از عملکرد درست اون هاست. RStudio هم این ویژگی رو داره، ولی Positron بهت اجازه میده عمیقتر بررسی کنی و یه رابط کاربری شیکتر داره:
تصویر 14 – Variable Inspector
همون طور که میبینی، میتونی به تمام جزئیاتی که برای ساختن اشیای پیچیده ترکیب شدن دسترسی پیدا کنی.
آیا Positron همون IDE ای هست که برای کار با دادهها نیاز داری؟
از چیزی که تا حالا دیدم، قطعاً بله. اینجا میخوام ویژگی هایی که از Positron خوشم اومد، مواردی که واقعاً من رو تحت تأثیر قرار داد، و چیزهایی که فکر میکنم میتونست بهتر باشه رو توضیح بدم. بزن بریم!
ویژگیهای جالب و کاربردی
پنل خلاصه داده: یکی از چیزایی که خیلی به چشمم اومد، پنل خلاصه داده ست که نوع ستون و درصد مقادیر مفقود رو نشون میده. این چیزی بود که حتی توی RStudio هم ندیده بودم، ولی توی نرم افزارهای دیگه مثل Snowflake هست.
فیلتر کردن ستون ها: میتونی روی یه ستون فیلتر اعمال کنی و دقیقاً ببینی چه فیلترهایی اعمال شدن. این خیلی به دردت میخوره وقتی میخوای سریع یه چیزی رو توی داده هات چک کنی و ببینی دقیقاً چه مقادیری داری. با این که کدنویسی این توی R یا Python خیلی ساده ست، ولی این قابلیت خیلی کار راه اندازه.
اتصال به دیتابیس: میتونی به دیتابیس ت وصل بشی و توش بگردی، فرقی نمیکنه که با R یا Python ایجادش کرده باشی. این قابلیت خوبه، چون از یه نرم افزار داده انتظار میره که این امکان رو داشته باشه.
ویژگیهای بسیار جذاب و برجسته
جابجایی بین مفسرها: میتونی به راحتی بین مفسرهای R و Python جابجا بشی. نمیدونم تو هم مثل من با این مشکل برخوردی یا نه، ولی خیلی وقتها نیاز داشتم چیزی رو توی یه زبان اجرا کنم و این قابلیت واقعاً لازم بود.
تاریخچه نمودارها: توی پنل نمودار، لیستی از تاریخچه نمودارها با همه گراف هایی که قبلاً اجرا کردی وجود داره. این خیلی کمک میکنه که ببینی قبلاً چی کار کردی و هر کدوم از ویژوالیزیشنهای قبلی ت رو چک کنی. 👌
کشف مقادیر دادهها با یک کلیک: توی Positron، میتونی همه مقادیر موجود در داده هات رو با کلیک روی نام ستون توی بخش متغیرها ببینی، بدون اینکه حتی دادهها رو باز کنی. این قابلیت نسبت به RStudio که فقط لیستی از آیتمهای جدا شده با کاما نشون میداد، خیلی بهتره چون مقادیر رو توی ردیفها نمایش میده و فهم دادهها رو راحتتر میکنه.
مواردی که جای بهتر شدن دارن
این نسخه هنوز کامل نشده و من مطمئنم که این شروع یه چیز بزرگ تره، ولی اینجا چند تا پیشنهاد دارم که معمولاً توی ابزارهای داده دیگه هست و میتونن مفید باشن:
هیستوگرام برای دادههای پیوسته: تا تو یه نگاه توزیع متغیرها رو ببینی.
جداول فراوانی برای متغیرهای دسته ای: تا تعداد دادهها رو برای هر دسته چک کنی.
فیلتر کردن روی دستهها با کلیک: اضافه کردن قابلیت فیلتر کردن روی دستهها فقط با کلیک روی اون ها. این چیزی هست که توی Snowflake خیلی دوست دارم چون سریع ردیفهای مربوط به یه دسته خاص رو پیدا میکنی.
سوالات متداول
1. چرا به جای استفاده از VSCode از Positron استفاده کنیم؟
درسته که VSCode از R پشتیبانی میکنه، اما اغلب به دلیل تداخل با افزونههای دیگه دچار مشکل میشه. Positron این مشکل رو حل کرده چون به طور پیش فرض از R پشتیبانی میکنه و یه هسته جدید Jupyter به نام Ark داره که سرعت بالای IntelliSense رو فراهم میکنه. همچنین، VSCode ساده کنسول اختصاصی R نداره.
2. آیا Positron جایگزین RStudio هست؟
نه، Posit همچنان از هر دو Positron و RStudio پشتیبانی میکنه و به توسعه اونها ادامه میده.
3. افزونههای GitHub Copilot و Remote SSH کار نمیکنن، چیکار کنم؟
Positron IDE در نسخه بتای عمومی هست، پس ممکنه گاهی مشکلاتی پیش بیاد. چون Positron فورکی از VSCode هست، انتظار داری که همه افزونههای VSCode کار کنن. اما به دلیل مجوزهای مایکروسافت، افزونه GitHub Copilot فعلاً کار نمیکنه. افزونههای دیگه ای مثل Remote SSH و DevContainers هم فعلاً کار نمیکنن. پشتیبانی از Remote SSH در نقشه راه Posit برای Positron قرار داره و به زودی رفع میشه.
4. آیا همه ویژگیهای RStudio در 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 در کارهای علم داده باشه؟ مشتاقیم نظرت رو بشنویم.