مقایسه VSCode و Emacs


#1

سلام . میخوام بین ویژوال استودیو کد و ایمکس یکی رو برای آینده برنامه نویسیم انتخاب کنم . دوستانی که از این دوتا استفاده کردند میتونند یه مقایسه ای انجام بدن ؟ اینکه چی باعث شده برند سمت یکی از این دو تا ؟


#2

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

البته اینا فقط نظر شخصی منه و شاید اصلا باهاش ارتباط خوبی برقرار نکنی


#3

سلام
مواردی مثل Visual Code, Atom, Sublime, Brackets و … برای کسانی خوب هست که حوصله شخصی سازی ندارند و دوست دارند یک بسته نرم افزاری آماده دانلود کنند و بلافاصله ازش استفاده کنند. به نظرم کاربران ویندوز و میکنتاش این ادیتورها رو بیشتر می پسندند…!
ولی شما اگه بخواید از Vim, Emacs استفاده کنید واقعا باید براش وقت بزارید تا یه ابزار توسعه درست و حسابی و کارآمد ازش بسازید. به نظرم کاربران سیستم های شبه یونیکس مثل گنولینوکس و بی اس دی ان از سر و کله زدن با این دو بیشتر لذت می برند!
انتخاب ادیتور یه موضوع کاملا سلیقه ای هست ولی اگه دوست دارید چیزهای خیلی زیادی یاد بگیرید و با چالش های مختلفی روبرو بشید Vim یا Emacs هر دو گزینه مناسبی هستند. ضمنا یادگیریشون هم انقدرها سخت نیست! کافیه مستندات یا ویکی اون ها رو بخونید.
emacs از سال 1976 و vim از سال 1991 داره توسعه داده میشه هر پلاگینی که تصور کنید براشون وجود داره!


#4

من چند سال با Vim کد زدم و اخیرا رفتم سراغ Emacs (هنوز چیز زیادی ازش بلد نیستم)

Vim سرعت خیلی بالایی داره و خیلی سبکه. مناسب برای باز کردن فایل، ادیت و خارج شدنه. (البته اگه چندتا پلاگین روش نصب کنید میشه یه IDE خوب و تا تموم شدن پروژه کنارتون میمونه. استفاده‌ای که من میکنم) این ویژگی برای sys admin ها خیلی مهمه.
Emacs برای این ساخته شده که بریم داخلش و دیگه ازش بیرون نیایم. کاربرهای Emacs داخل ادیتور زندگی میکنن. از آب و غذا تا ابزار ارسال و دریافت json و pretty print کردنش همون داخل هست.

Vim داخل ترمینال اجرا میشه.
Emacs داخلش ترمینال هم اجرا میکنه :smiley:
Vim میشه گفت بهترین key binding رو داره و سرعت کار کردن باهاش خیلی بالاست. (حتی برای جا‌به‌جا شدن بین خطها و کلمات نیاز به استفاده از arrow key نیست و هیچوقت نیازی به استفاده از mouse نیست!)
Emacs خیلی به انگشت کوچیکه‌ی دست چپ علاقه داره :slight_smile: پدرشو در میاره.

هردوشون اونقدر پلاگین و تنظیمات دارن تا به یه IDE تبدیل بشن و نیازهاتون رو برآورده کنن.

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


اگه دنبال یه چیز out-of-the-box هستید که کلا پیشنهادی ندارم. از هیچکدوم راضی نیستم و با هیچکدوم زیاد کار نکردم.
البته قبل از Vim با sublime کار میکردم که ادیتور بدی نیست. LightTable هم با توجه به چیزهایی که ازش دیدم، میتونه گزینه‌ی مناسبی باشه.


پ.ن:
پیشنهاد میکنم این متن از ویکیپدیا رو مطالعه کنید.


#5

درود
به نظر من فکرتو زیاد درگیر این کارها نکن چون خودتو رو انتخاب ها حساس می کنی و از اصل کاری که می خوای بکنی دور میشی هر چند درسته یه مورد سلیقه ای هست ولی همیشه ذهنتو درگیر اصل مطلب بکنی که هدفت چیه
به نظرم سعی کن سرعت تایپ کردن خودتو به صورت 10 انگشتی بالا ببری اینطوری با هر محیط و ابزاری می تونی فوق العاده سریع ارتباط برقرار کنی
و اگر اوایل فعالیتت تو این حوزه هست سعی کن از ساده ترین ادیتور استفاده کنی مثل text editor که باعث بشه برای هر کار ساده ای تایپ کنی تو چالش بافتی و دستات راه بافتن مثلا همین نوشتن دستورات مختلف تو محیط ترمینال و تحت یه زبان اسکریپتی خودش خیلی کمک می کنه


#6

جالب بود . با این تفاسیر میرم سمت ایمکس . ولی فک کنم اوایل خیلی کارکردن باهاش سخته. من موندم چطوری دایرکتوری پروژمو مثل vscode توش ببینم . فک کنم خیلی کاردارم تا حرفه ای شم باهاش .


#8

راهنمایی که داخلش داره برام کافیه یا طرفندای دیگه ای هم داره ؟


#9

هم Emacs و هم Vim داخل خودشون یه بخش آموزشی دارن. وبسایتهای زیادی هم هست که متون آموزشی نوشتن.
پیشنهاد من اینه که چند دقیقه وقت بذارید و چندتا چیز مهم مثل باز کردن و بستن فایل و سویچ بین bufferها رو یاد بگیرید بعد برید سراغ کد زدن و در کنارش سرچ کنید ببینید برای اون زبان برنامه نویسی که باهاش کار میکنید چه ابزاز‌هایی داره و کم کم کاستومایز کنید و دانشتون را بالاتر ببرید.

اگه به اون عکس Learning curve که بالا گذاشتم دقت کنید، میبینید Vim به این صورته که آدم باید چند ساعت (حداقل یک ساعت) وقت بذاره یاد بگیره تا بعد بتونه نرم‌افزار رو باز و بسته کنه :smiley: و البته بعدش دیگه چیز خاصی برای یادگیری نیست بجز یه سری key binding که هرچقدر بیشتر بلد باشیم، productiveتر میشیم.
درمورد Emacs اینطور نیست. شما با Ctrl+x Ctrl+f فایل باز میکنید با Ctrl+x Ctrl+s فایل رو ذخیره میکنید و ادیت کردن فایل داخل ایمکس مثل بقیه‌ی ادیتور هاست. (منظورم اینه که مثل Vim نیست که insert mode و edit mode داشته باشه) و با Ctrl+x k اون بافر رو kill میکنید تموم میشه میره. (شروع یادگیریش emacs در همین یه خط خلاصه شد!)
ولی به قدری بزرگ و گستردست که یادمه @lxsameer (که ۵سال پیش یکی از رفیقام تعریف میکرد میگفت یه «مدیر شرکتمون اسمش sameer هست و تو Emacs زندگی میکنه») یه بار گفت «هنوز پیش میاد چیزهای جدیدی تو emacs میبینم که تعجب میکنم»


یه نکته‌ی دیگه هم بگم.
کانفیگ و کاستوم کردن Vim و البته ساختن پلاگین، با VIML انجام میشه. Vi Markup Language
از طرف دیگه، Emacs با زبان برنامه نویسی eLisp (Emacs Lisp) اینکار انجام میشه که از خانواده‌ی Lispهاست.

از VimL جای دیگه‌ای نمیشه استفاده کرد. صرفا برای کانفیگ و کاستوم کردن Vim هست.
در حالی که eLisp تا حدود خیلی زیادی شبیه بقیه‌ی اعضای خانواده‌ی Lipsها هست و کسی که یکی از این زبانها رو بلد باشه با تلاش خیلی کم میتونه یکی دیگه رو یاد بگیره. مراجعه شود به Clojure.


در نهایت باید بگم «همه‌ی اینها صرفا ابزار هستن. ابزاری برای رسیدن ما به هدفمون. خود هدف نیستن!»


#10

برای کسانی که ممکن هست انگشت کوچیکشون دچار مشکل شده. جای Capslock و کنترل و عوض کنین تا معنی واقعیه زندگی رو درک کنین :joy:

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


#11

Emacs و vim درمقابل ادیتور های دیگه حکم نابرده رنج گنج میسر نمی‌شود هستش. شاید بیشتر طول بکشه باهاشون راه بیفتی ولی وقتی فرمان ها را ناخودآگاه حفظ شدی به مراتب سریع تر از هر ادیتوری کار میکنن


#12

میشه چند مورد رو نام ببرید؟


#13

Prelude, spacemacs, emacs starter kit و …


#14

evil-mode خیلی عالی و کامله یه بار امتحانش کنین


#16

یا خدا . باندل دیگه چیه؟ چقدر اصطلاح داره . تو پست قبلی هم گفتن بافر . باید ببینم اینا چیه دقیقا


#17

باندل و بافر همش دو تا کلمه ست مگه زیاده :slight_smile:
یه عده از برنامه نویسا اومدن و تعدادی از پلاگین ها رو برای ایمکس نصب کردن, شخصی سازیش کردن (مثلا تم رو عوض کردن یا یه سری تغییرات دیگه) بعد اون پروژه رو به صورت آزاد منتشر کردن… این میشه باندل! مثل spacemacs…
اصلا لازم نیست از این ها استفاده کنید. emacs رو از سایت رسمیش دانلود کنید و خودتون بر اساس نیازهاتون تغییرش بدید. اصلا دلیل اینکه می خواید از ایمکس استفاده کنید همینه دیگه… می خواید ادیتوری با سلیقه خودتون بسازید…


#18

اگه می خواید ایمکس رو یاد بگیرید به نظرم به این صورت عمل کنید:
۱- A Guided Tour of Emacs : اینجا با ویژگی های کلی و مفاهیم essential ایمکس آشنا می شید و یه درک مناسب ازش پیدا می کنید.
۲- Absolute Beginner’s Guide to Emacs : یه آموزش تصویری گام به گام هست. اون بافر که اسمش رو هم بردید اینجا یاد میگیرید.
۳- Practical Emacs Tutorial : این tutorial واقعا خوب هست… گام به گام جلو برید و با حوصله مطالب رو بخونید. اصلا خسته کننده نیست…
۴- Emacs Wiki : این پله آخره دیگه… هر چی که فکر کنید درباره ایمکس اینجا هست… لازم نیست همش رو بخونید بیشتر به عنوان یه رفرنس بهش نگاه کنید.
۵- تبریک می گم شما ایمکس رو تا حد خیلی خوبی یاد گرفتید :slight_smile:


#19

سلام.
من با vim و emacs سالها کار کردم، مخصوصا emacs به خاطر کار با common lisp.
هیچ شکی در بی نظیر بودن اینها نیست ولی چند وقتی هستش که کار با VSCode خیلی برام جذاب تر شده.
شاید فقط به خاطر تنوع باشه.


#20

در مورد نصب Emacs روی ویندوز (اگه با قوانین سایت مغایرت نداره) میشه راهنمایی کنید؟ من تمام فایلهایی که تو پوشه emacs-26 بود رو از اینجا دانلود کردم. الان موندم باشون چکار کنم و هر کدوم به چه دردی میخوره؟
برای اجرای common lisp با استفاده از Emacs باید چیز دیگه ای نصب کرد؟


#21

متوجه نشدم، منظور شما از قوانین سایت چی بود؟


#22

با قوانین مقایرتی نداره. نرم افزار آزاد هست. تا اونجایی که یادم هست ایمکس یه installer داره واسه ویندوز. کد common lisp رو هم مستقیم نمی تونین اجرا کنین چون namespace هاشون فرق دارن ولی با کمی تغییر میشه