Vim | VS Code | Sublime | Atom: مقایسهٔ ادیتورهای محبوب دولوپرها

Vim | VS Code | Sublime | Atom: مقایسهٔ ادیتورهای محبوب دولوپرها

با وجود ادیتورهای بسیاری که این روزها در اختیار برنامه‌نویسان گذاشته‌ شده‌اند و دست برنامه‌نویسان و توسعه‌دهندگان در انتخاب ادیتوری مناسب ساده به نظر می‌رسد، اما این در حالی است که پس صرف کمی زمان، خواهیم دید که این کار آن‌قدر هم که به نظر می‌رسد، ساده نیست! وقتی صاف و پوست کنده سؤال می‌کنیم که بهترین ادیتور کد برای برنامه‌نویس‌ها چیست؟ به جواب دل‌نشینی نخواهیم رسید چرا که سلیقه‌ها متفاوتند. در همین راستا، در این مقاله قصد داریم بین چهار مورد از محبوب‌ترین ادیتورها، مقایسه‌ای انجام دهیم؛ مقایسه‌ای جذاب بین اتم، سابلایم، ویژوال استودیو کد و ویم!

به طور کلی، هدف از ارائهٔ این مقاله این است که پس از خواندن ویژگی‌های مثبت و منفی ادیتورهای معرفی شده، اطلاعات کافی برای انتخاب ادیتوری که نیازهای‌تان را برآورده کند داشته باشید. پیش از هر چیز، لازم است نکته‌ای را یادآوری کنیم و آن هم اینکه برخی از نکات ذکر شده برای ادیتورها و برخی از دیدگاه‌هایی که در ادامه آورده‌ شده‌اند، بعضاً بر اساس تجربیات شخصی مؤلف بوده‌اند اما در نهایت این شما هستید که باید انتخاب کنید که کدام ادیتور برای‌تان مناسب‌تر است.

اتم (Atom)
هزینه: رایگان
توسعه‌دهنده: گیت‌هاب
پلتفرم‌های پشتیبانی شده: تمام سیستم‌عامل‌ها (macOS ،Window و GNU/Linux)

تعریف گیت‌هاب از اتم «یک ادیتور قابل هک برای قرن ۲۱» است (به خاطر داشته باشیم که در اینجا منظور از هک این است که بتوانیم نرم‌افزار را بسته به نیازهای خود کاستومایز کنیم.) در واقع، اتم در مقایسه با سایر رقبا ادیتوری نسبتاً جدید است که قدم به دنیای توسعهٔ نرم‌افزار گذاشته است؛ با این حال، از زمان انتشار اولین نسخه‌اش در سال ۲۰۱۴ تا به امروز، قدم‌های بسیار بزرگی در توسعهٔ این ادیتور برداشته شده و روز به روز شاهد بلوغ بیشترش هستیم. 

پکیج‌ها: قابلیت افزودن ویژگی‌های اضافی برای ادیتورهای کد بسیار حائز اهمیت است و این همان چیزی است که اتم در آن یکه‌تاز میدان است! قابلیت مدیریت پکیج‌ها به صورت پیش‌فرض وجود دارد، اما اگر باز هم به پکیج‌های موجود قانع نیستید، باید بدانید که همهٔ پکیج‌های بر روی گیت‌هاب موجود هستند و می‌توانید به راحتی به ‌آن‌ها دسترسی داشته و بسته به نیاز خود آن‌ها را تغییر دهید (پکیج‌ها در اتم نقش مهمی دارند؛ مثلاً ویژگی‌هایی مثل نمای درختی و نمای تنظیمات از ویژگی‌های پکیج‌ها هستند که می‌توانید از آن‌ها به آسانی استفاده کنید.)

محیط کار: عموماً ویرایش همه‌ چیز در اتم نسبتاً ساده و روان است اما شاید بپرسید پس بزرگ‌ترین نقطه ضعف اتم چیست؟ در حقیقت، وقتی برای اولین بار اتم را اجراء می‌کنید، اگر پکیج‌هایی متناسب با نیازتان می‌خواهید، باید به دنبال اسم آن بگردید سپس آن‌ را در اتم نصب کنید (چرا که همهٔ پکیج‌ها به صورت پیش‌فرض نصب نیستند.) مثلاً پکیج‌ Minimap یکی از پکیج‌های محبوب است که هزارن بار دانلود شده است که باعث می‌شود شما در سمت راست ادیتور، نقشه‌ای کوچک از کدهایی که در حال ویرایش کردن هستید را مشاهده کنید و یا معمولاً برنامه‌نویس‌ها نیاز به تکمیل‌کنندهٔ خودکار کدها (Autocompletion) دارند که می‌توانند از پکیج +Autocomplete استفاده کنند. همچنین اگر به طور هم‌زمان بر روی دو یا چند پروژ کار می‌کنید، می‌توانید از پکیج Split-Pane نیز استفاده کنید.

این‌ها ویژگی‌هایی هستند که اتم خیلی خوب پشتیبانی می‌کند. یکی از ویژگی‌های اتم قابلیت درگ & دراپ است که در نمودار درختی فایل‌ها هم پشتیبانی می‌شود. چنین ترفندهایی که بتوان چیزها را به راحتی در ادیتور با کشیدن و رها منتقل کرد، در کمتر ادیتور دیگری مشاهده می‌شود. در نهایت، یکپارچگی و هماهنگی با گیت در اتم بسیار فوق‌العاده است و مهم‌تر از همه اینکه این ادیتور توسط گیت‌هاب ساخته شده است.

شخصی‌سازی: توانایی شخصی‌‌سازی یک ادیتور برای هماهنگی روند توسعه و شکل دادن ادیتور بر اساس سلیقه -به‌ویژه برای برنامه‌نویسان- بسیار حائز اهمیت است. فعال کردن چیز‌هایی همچون Trim Whitespaces on Save و Save on Lost Focus of File نیاز برخی دولوپرها است که هر دوی این‌ها را می‌توانید در اتم به راحتی نصب و یا حذف کنید (به طور کلی، کاستومایز کردن اتم جالب و در عین حال راحت به نظر می‌رسد؛ توانایی لغو کردن تنظیمات هر فایل و یا افزودن چیزی به ادیتور بسیار عالی است.) 

کارآیی: اگر بخواهیم یک مسأله آزار‌دهنده در مورد اتم بگوییم، سرعت‌ اجرا است! ممکن است با اجرای اتم احساس کنید که این ادیتور کمی کُند است (البته اگر اتم را با خودش مقایسه کنیم که سرعتش عالی است اما اگر با دیگر ادیتورها مقایسه شود، شاید احساس کُندی به شما دست دهد.) مثلاً اگر فایل‌های سنگین را باز کنید، حتماً این موضوع را حس خواهید کرد. 

قضاوت نهایی دربارهٔ Atom: اتم یک نرم‌افزار فوق‌العاده است، مخصوصاً برای دولوپرهایی که عاشق شخصی‌سازی کردن ابزارها هستند. در واقع، نیاز به توضیح نیست که قابلیت‌هایی همچون توسعهٔ ادیتور خود بسته به نیازهای شخصی، احساس قدرتی کم‌نظیری به شما می‌دهد. در آخر، بزرگترین جنبهٔ منفی اتم که کمی آزاردهنده است، عملکرد آن به دلیل کُند بودن در باز کردن فایل‌های سنگین است؛ اما نیاز به توضیح نیست که اتم به عنوان یک ادیتور رایگان و اپن‌سورس، بدون شک آینده‌ای درخشان برای خود رقم خواهد زد.

سابلایم (Sublime)
هزینه: ۷۰ دلار (لایسنس آزاد) به‌ علاوه‌ٔ دورهٔ آزمایشی رایگان
توسعه‌دهنده: Jon Skinner (مهندس سابق گوگل)
پلتفرم‌های پشتیبانی شده: تمام سیستم‌عامل‌ها (macOS ،Window و GNU/Linux)

سابلایم در سال ۲۰۰۷ منتشر شد و در سال ۲۰۱۶ سایت استک‌اورفلو یک نظرسنجی برای میزان محبوبیت ادیتورها در بین توسعه‌دهندگان انجام داد و سابلایم در بین ادیتورها، رتبهٔ دوم را کسب کرد (ادیتورهای ++Notepad و VisualStudio با هم در این سال رتبهٔ اول را به دست آوردند.) 

پکیج‌ها: اگر از کاربران سابلایم سؤال کنید که اولین پکیجی که باید نصب کنید چیست؟ جواب Sublime Package Control خواهد بود؛ در واقع، با استفاده از این پکیج می‌توانید سایر پکیج‌ها را به راحتی از ریپازیتوری‌های اختصاصی سابلایم دریافت کنید (سابلایم هم مانند اتم، تعداد زیادی پکیج برای‌تان آماده کرده است.)

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

سابلایم هم مانند اتم قدرت عمدهٔ خود را از پلاگین‌های کلیدی نصب شده به دست می‌آورد. در حقیقت، ممکن است نصب پلاگین‌هایی مثل Syntax Highlighting ،JSON Formatters و Linters وقت‌تان را بگیرد، اما با یک بار نصب، کلی از زمان توسعهٔ خود را صرفه‌جویی خواهید کرد!

شخصی‌سازی: در این قسمت هم سابلایم بسیار شبیه به اتم عمل می‌کند. قدرت تغییر دادن و کنترل کردن جنبه‌های مختلفی مثل Save on Lost Focus و یا  Trim Whitespace و حتی بیشتر در اختیار شما قرار دارد. پیکربندی فایل‌ها از طریق فرمت جیسون صورت می‌گیرد و همچنین ترفندها و تنظیمات مخفی دیگری وجود دارند که کار شما را بسیار راحت و سریع خواهند کرد که با یک سرچ ساده در گوگل، می‌توانید به آن‌ها دست یابید.

کارآیی: این قسمت مرحله‌ای است که سابلایم از اتم پیشی می‌گیرد؛ باز کردن، بستن و جست‌و‌جوی فایل‌ها در سابلایم به طرز قابل‌توجهی روان‌تر و سریع‌تر از اتم است! 

قضاوت نهایی دربارهٔ‌ Sublime: به طور کلی، سابلایم یک ادیتور بسیار منعطف و پرسرعت است و همین دلایل هم سبب شده که سابلایم همواره یکی از محبوب‌ترین ادیتورها از دید دولوپرهای مختلف باشد. البته به یاد داشته باشیم که این ادیتور رابطهٔ خیلی خوبی با زبان فارسی ندارد که امیدواریم در نسخه‌های بعدی، این مشکل مرتفع گردد؛ اما در عین حال، راه‌کارهایی برای رفع این نقص ارائه شده که به طور مثال در مقالهٔ چگونه مشکل تایپ فارسی ویرایشگر کد Sublime Text را رفع کنیم؟، راه‌کار نسبتاً خوبی معرفی شده است.

ویژوال استودیو کد (Visual Studio Code)
هزینه: رایگان
توسعه‌دهنده: مایکروسافت
پلتفرم‌های پشتیبانی شده: تمام سیستم‌عامل‌ها (macOS ،Window و GNU/Linux)

Visual Studio Code یا به اختصار VSCode هم مثل اتم، ادیتوری نسبتاً جدید است که پا به دنیای توسعهٔ نرم‌افزار گذاشته است. مایکروسافت در سال ۲۰۱۵ اولین نسخه از این ادیتور را منتشر کرد؛ با این حال، از آن‌ موقع تاکنون، توجه بسیاری از کدنویسان را به خود جلب کرده است. به طور کلی، مایکروسافت در اقدامی بسیار بزرگ، دست به خلق ادیتوری قدرتمند، انعطاف‌پذیر و مالتی‌پلتفرم زده است که این ویژگی‌ها باعث شده علاقهٔ توسعه‌دهندگان نسبت به این ادیتور جلب شود.

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

یکی از پلاگین‌های کاربردی این ادیتور که چیزی است که ممکن است شما را به VSCode علاقه‌مند کند، Debugger of Chrome است. این پلاگین امکانی را در اختیار شما قرار می‌دهد که از آن طریق بتوان یکسری Breakpoint در سورس‌کد خود در نظر گرفته و زبان‌هایی مثل جاوااسکریپت را از طریق این ادیتور دیباگ کنید (البته پکیج‌های مرتبطی برای سایر ادیتورها نیز وجود دارد.)

محیط کار: اگرچه در پروسهٔ توسعهٔ VSCode هم مانند اتم از HTML و CSS به علاوهٔ Node و Electron استفاده شده است، اما این در حالی است سرعت این ادیتور به طرز عجیبی بالاتر از اتم است و بدون هیچ لَگی، کدهای‌تان را اجر خواهد کرد (برای آشنایی بیشتر با Electron، به مقالهٔ Electron: پلتفرمی جهت توسعهٔ نرم‌افزار دسکتاپ برای ویندوز، لینوکس و مکینتاش مراجعه نمایید.) 

در زمان استفاده از ویژوال استودیو کد، متوجه نزدیکی این ادیتور با سابلایم و اتم خواهید شد! به عنوان یک برگ‌برندهٔ دیگر، ویژوال استودیو کد هماهنگی بسیار خوبی با گیت دارا است به طوری که برای اجرا تَسک‌های رایجی مثل کامیت‌، پول و پوش، سرعت دولوپر را در حین کدنویسی افزایش می‌دهد.

شخصی‌سازی: در VSCode هم مانند دو ادیتور قبل، قابلیت شخصی‌سازی خوبی وجود دارد که می‌توان به پنهان‌سازی، برجسته کردن متن‌ها، تِم‌ها، ترفندهای زبان‌های برنامه‌‌نویسی مختلف و موارد دیگر اشاره کرد.

کارآیی: همان‌طور که در بالا اشاره کرد، VSCode هم مانند Atom بر پایهٔ فناوری‌های وب (اچ‌تی‌ام‌ال و سی‌اس‌اس) به علاوهٔ Node.js و فریمورک Electron ساخته شده است، اما به طرز قابل‌توجهی از نظر عملکرد در اجرای فایل‌های سنگین، بسیار سریع‌تر از اتم است! 

قضاوت نهایی دربارهٔ VSCode: باتوجه به ویژگی‌های مثبتی که در مورد این ادیتور وجود دارد، مهاجرت به این ادیتور برای اکثر برنامه‌نویسان دائمی و همیشگی خواهد بود! هماهنگی و یکپارچگی با گیت و وجود یکسری دیباگر به صورت پیش‌فرض، از ویژگی‌هایی است که اگر کاربر سابلایم باشید، باید با آن‌ها دست‌وپنجه نرم کنید اما پس از مهاجرت به VSCode خیال‌تان راحت خواهد بود که چنین مشکلاتی در این ادیتور وجود ندارند.

ویم (Vim)
هزینه: رایگان
توسعه‌دهنده: Bram Moolenaar
پلتفرم‌های پشتیبانی شده: تمام سیستم‌عامل‌ها (macOS ،Window و GNU/Linux)

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

در حقیقت، یادگیری فوت‌وفن‌های ویم نیاز به زمان دارد، اما اگر صبر و حوصله و وقت کافی دارید، می‌توانید در کار کردن با این ادیتور استاد شوید و آن‌وقت است که محیط ویم به شیوه‌ای باورنکردنی برا‌ی‌تان مفید و کارآمد خواهد بود (پیشنهاد می‌شود برای شروع یادگیری، به وب‌سایت‌های VimGenius و OpenVim مراجعه نمایید.)

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

ویم به طرز غیرقابل‌باوری انعطاف‌پذیر است، اما برای اینکه بدانید بهترین پلاگین برای نصب کدام است، قطعاً نیاز به تجربهٔ شخصی و یا استفاده از دانش کاربران قدیمی‌تر ویم دارید (البته برای پیدا کردن بعضی از محبوب‌ترین پلاگین‌ها می‌توانید به وب‌سایت VimAwesome مراجعه کنید.)

محیط کار: به کسانی که تا به حال با ویم کار نکرده‌‌اند بایستی عرض کرد که کار کردن با ویم بسیار متفاوت‌ از بقیهٔ ادیتورها است! برای کار با ویم، لازم است تا با کامندلاین آشنایی داشته باشید؛ به عبارت دیگر، ویم مثل ادیتورهای دیگر که GUI پیشرفته دارند و با چند کلیک می‌توان کارهای مختلف انجام داد نبوده و در‌ واقع، ویم در قالب کامندلاین به شما امکان کدنویسی خواهد داد.

همچنین هنگام استفاده از ویم، عملاً ماوس شما آن‌طور که در سایر ادیتورهای نقشی کلیدی دارا است، کاربردی نخواهد بود و بیشتر تمرکز روی کار با کیبورد است چرا که در ویم برای هر کاری (مثل باز کردن فایل، ذخیرهٔ فایل، بستن ادیتور و موارد دیگر) فقط باید از کلید‌های میان‌بر کیبورد استفاده کنید!

اگر واقعاً می‌خواهید تبدیل به یکی از کاربران ویم شوید، لازم است بسیار مصمم و متعهد باشید، اما این قول را به شما می‌دهیم اگر در کار کردن با ویم به تسلط برسید، هنگام کد زدن با این ادیتور احساس نبوغ واقعی به شما دست خواهد داد. در حقیقت، یکی از دلایلی که بعضی از افراد از کار کردن با این ادیتور هراس دارند این است که آن‌ها به اندازهٔ کافی ترفندهای کار با این ادیتور یونیکسی را بلد نیستند (ممکن است در ابتدای راه شما کمی سردرگم شوید یا هنگام کار کردن بر روی چند فایل در ویم کمی گیج شوید و خطا داشته باشید، اما اصلاً نگران نباشید زیرا با تمرین، انجام این کارها برای‌تان بسیار پیش‌پا‌افتاده خواهد شد.)

شخصی‌سازی: ویم به طرز شگفت‌انگیزی قابلیت شخصی‌سازی دارد؛ اگر در گوگل عبارت How to Customize Vim را سِرچ کنید، مثال‌های بی‌شماری از فایل‌های از پیش آماده برای تنظیمات خواهید یافت. در یک کلام، می‌توان گفت که هر چیزی که فکرش را بکنید، در ویم امکان‌پذیر است.

عملکرد: تعیین‌کنندهٔ عملکرد و کارآیی در ویم خود شما هستید! در واقع، پرفورمنس ویم بستگی به این دارد که شما با چه سرعتی می‌توانید دستورات را تایپ کنید؛ کاربران ویم از سرعت حیرت‌آور این ادیتور خبر دارند و اگر شما هم استفاده از این ادیتور را فرا بگیرید، سرعت عجیب آن‌ را درک خواهید کرد.

قضاوت نهایی دربارهٔ Vim: ویم خام‌ترین ادیتور موجود در این لیست است که می‌توانید با آن کدزنی را هر طور که دوست داشته باشید شروع کنید. ویم بسیار سریع است و محیط توسعه‌ٔ بسیار کارآمدی دارد و اگر بتوانید طاقت بیاورید و دستورات ویم را فرا بگیرید و در ابتدای راه دلسرد نشوید، شما مالک این ویژگی‌ها خواهید بود!

اگر هم جزو کسانی هستید که چیزهای جدید را از طریق گیم بهتر یاد می‌گیرد، یک بازی آنلاین هم وجود دارد تحت عنوان VIM Adventures که دستورات مقدماتی مثل حرکت در بین کدها و غیره را به شما در قالب #گیم می‌آموزد؛ علاوه بر این گیم، در مقاله‌ای تحت عنوان PacVim: گیمی برای آموزش کار با ادیتور Vim، بازی دیگری برای تسهیل فرایند یادگیری این ادیتور معرفی شده است (اگر از کاربران سیستم‌عامل گنو/لینوکس هستید نیز می‌توانید با مراجعه به مقالهٔ نصب ویراشگر کد Vim روی سیستم‌عامل اوبونتو، نحوهٔ نصب این ادیتور را روی اوبونتو فرا بگیرید.)

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

همچنین طبیعتاً نمی‌شد همهٔ ادیتورها را در این مقاله مورد بحث قرار داد؛ لذا به چهار مورد از بهترین‌ها اکتفا کردیم و امیدواریم نکاتی که در مورد این ادیتورهای محبوب یادآور شدیم به شما در انتخاب ادیتور مورد نظرتان کمک کند (همچنین برای مطالعه سایر مقالات مرتبط با ادیتورهای کدنویسی، می‌توانید به لینک #ویرایشگر کد مراجعه نمایید.)

حال نوبت به نظرات شما می‌رسد. آیا شما هم یکی از کاربران چهار ادیتور فوق‌الذکر هستید؟ اگر این‌طور است، به نظر شما کدام‌یک نسبت به بقیه بهتر است و چرا؟ همچنین آیا به غیر از این ویرایشگرهای کد محبوب، ادیتوری دیگری را می‌شناسید که ارزش معرفی کردن داشته باشد؟ نظرات، دیدگاه‌ها و تجربیات خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.