سلام.
خیلی وقته چیزی ننوشتم که خب دغدغه و کار واقعاً زیاده و به قول همکارم، حتی اگه وقت خالیم داشته باشی نمیشه که تمرکز کنی بخوای پستی، مقاله ای چیزی بنویسی.
ولی دیگه یه موردی بود که میبینم عموم آدما اشتباه میکنن و چیزیم نیست که توضیحش زمانبر باشه.
به نظرم یکی از مشکلاتی که داریم اینکه اصطلاحات و کلمات مناسبی برای توضیح یه سری چیزا استفاده نمیکنیم.
مثالش تو فرق فریموررک و لایبراری خیلی دیده میشد که قبلا تو یه پستی تو لینکدین توضیح دادم و به نظرم خیلی بده که کسی تو این فیلد بخواد اینارو جای هم به کار ببره.
موردی که اخیراً هم زیاد میبینم که اشتباه استفاده میکنن و خیلی به نظرم رو مخه فرق IDE, Code Editor, Text Editor عه. حالا باز عموم وقتا فرق بین IDE و اون دوتای باقی مانده رو میدونن، ولی نمیدونن خود همون دو تا هم باهم فرق دارن و جالب اینجاست که وقتی مثلاً سرچ میکنیم vs code نوشته که این یک کد ادیتوره و مثلاً سرچ میکنیم emacs نوشته که این یک تکست ادیتوره و برامون سوال نمیشه که خب چرا تمایز براشون قائل میشن.
حالا من قراره تو این پست، از مقاله هایی که خونده بودم یه توضیح مختصری راجع به این سه تا بدم.
خب سیمپل ترین چیز text editorها هستن، که قراره توش یه سری تکست نوشته بشه مثل NotePad. حالا این یه سریا از همین نوت پد استفاده میکنن برای کد و بیشتر خودشونو عذاب میدن ولی به هر جهت استفاده میکنن یا مثلاً تکست ادیتورای خفن تری هست مثل emacs و خب شما میتونید یه سری پلاگین و اینا براش کانفیگ کنید که بتونید راحت تر کد بزنید یا به واسطه اون پلاگین ها از یه سری امکانات استفاده کنید. (من یادمه که محیط گرافیکی هم برای نصب مثلاً ندارن و خودتون باید تو کانفیگشون اضافه کنید یه جورایی مثل کانفیگ ویندو منیجر i3). خلاصه که در کل لخت لختن بدون هیچ فیچری و یا پلاگینی.
حالا بریم سراغ code editorها. در واقع کد ادیتورها همون تکست ادیتورهایی هستن که یه سری feature built-in دارن یعنی لازم نیست شما برای هر قابلیتی که میخواین یه پلاگینی و چیزی کانفیگ کنین.
یه بستری فراهم شده یه سری قابلیت هارو حتی بعضاً بای دیفالت داره. مثال میزنم مثلا تو vs code شما، indent پیش فرض دارید و یا میتونید به راحتی تغییرش بدید ولی این قضیه تو تکست ادیتورها صادق نیست و مثلا تو بعضی تکست ادیتورها باید براشون کانفیگ کنید.
و غول مرحله آخر IDE. اولاً که خلاصه Integrated Development Environment عه و دیگه مشخصاً میشه فهمید که یه IDE هم کدادیتور هم تکست ادیتوره هم کامپایلره هم دیباگره در واقع یه بستری ای که همه چیز داره.
مورد دوم IDE ها عموماً مختص یک یا دو زبان هستن ولی مثلا کد ادیتورها یه طیف گسترده ای از زبان ها رو پوشش میدن.
مورد سوم اینکه حجمشون بالاست به دلیل اینکه همه چیز توشون هست و عموماً هم کندتر نسبت به کد ادیتورها هستن.
یه نکته ریز: حالا شما با نصب کلی پلاگین تو کدادیتورها میتونید اونو به سمت IDE ببرید ولی خب به صورت پیش فرض ندارن دیگه و اگر نصب نکنید خروجی و عملیات خروجی رو باید خارج از اون محیط انجام بدید.
سعی کردم خیلی ساده و با مثال هایی که تجربه شخصیم بوده هم توضیح بدم، که بهتر فرق این سه تا رو متوجه شید و کمکی کرده باشم.
البته فک کنم فقط رو مخ منه ولی به هر حال (چی میگن) ″دونستنش خالی از لطف نیست″.
تا مقاله بعدی بدرود.