خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

من تنظیمات رویایی توسعه‌دهنده‌ام را ساختم — و این بر روی لینوکس نیست

در طول ده سال گذشته، من کامپیوترم را به‌صورت دو‑بوت با ویندوز و لینوکس راه‌اندازی کرده‌ام. من برای کارهای خلاقانه و بازی از ویندوز استفاده می‌کردم و برای توسعه از لینوکس. اما «فقط از لینوکس استفاده کنید» دیگر توصیهٔ مفیدی نیست و دو‑بوت کردن یک کامپیوتر همراه با دردسرهایی است که سرعت کار من را کاهش داده‌اند.

در دههٔ گذشته، من رایانه‌ام را به‌صورت دو‑بوت با ویندوز و لینوکس نصب کرده‌ام. من از ویندوز برای کارهای خلاقانه و بازی استفاده می‌کردم و از لینوکس برای توسعه. اما«فقط از لینوکس استفاده کنید» دیگر مشاورهٔ مفید نیست، و دو‑بوت کردن یک رایانه مشکلاتی دارد که سرعت کار مرا کاهش داد.

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

دو‑بوت کردن مرا کند می‌کرد

هزینهٔ مداوم ریست‌کردن واقعی است

مانند بسیاری از توسعه‌دهندگان، من نیز معتقد بودم که ترمینال جایی است که توسعهٔ واقعی رخ می‌دهد. ویندوز سیستمی بود که به آن وابسته بودم چون برای کارم مجبور بودم از Adobe Creative Suite و البته بازی‌هایم استفاده کنم. در وقت‌های آزادم به آزمایش توزیع‌های جدید، تنظیم پیکربندی‌ها و انتقال بیشتر و بیشتر جریان کارم به لینوکس می‌پرداختم تا از نیاز به بوت کردن به سیستم‌عامل دیگر و هدر رفتن زمان در ساعات کاری جلوگیری کنم.

سپس از تظاهر دست کشیدم و چیزی ساختم که واقعاً بهره‌وری‌ام را افزایش داد.

منوی دو‑بوت بر روی یک لپ‌تاپ ویندوز و اوبونتو.

متوجه‌ام که نمی‌خواهید من را اشتباه بگیرید—لینوکس فوق‌العاده است. جامعهٔ متن‌باز شگفت‌انگیز است، اکوسیستم قدرتمند است و اگر یک سرور تولیدی با اهمیت واقعی اجرا می‌کنید، هنوز استاندارد طلایی است. اما برای کسی که کارش به ویرایش عکس و ویدئو، نوشتن، تست نرم‌افزار و انتشار کد تقسیم شده است، رویکرد دو‑بوت بیشتر شبیه یک مانع سرعت است تا مزیتی.

یک مشکل بسیار رایج که با آن مواجه شدم این بود که برای کار روی یک گرافیک باید Photoshop یا Illustrator را باز می‌کردم در حالی که وب‌سایت‌های مشتریان را می‌ساختم. مجبور بودم نوشتن کد را متوقف کنم، همه چیز را ذخیره کنم، لینوکس را خاموش کنم و برای استفاده از یک نرم‌افزار به مدت ۱۰ دقیقه به ویندوز بوت کنم و سپس دوباره به لینوکس برگردم. تعویض سیستم‌عامل یک هدررفت بزرگ زمان بود، به‌ویژه وقتی که مجبور شدم این کار را چندین بار در روز انجام دهم. علاوه بر این، بهره‌وری من در حین قطع جریان کاری و تعویض به سیستم‌عامل دیگر کاهش یافت.

مطلب مرتبط:   بازی های P2E در مقابل M2E: کدام را باید بازی کنید؟

من نیز برای مدتی از ماشین‌های مجازی استفاده کردم، اما اجرای همزمان دو سیستم‌عامل به انرژی زیادی نیاز دارد و این سرعت تخلیهٔ باتری را بسیار سریع‌تر از حد انتظار می‌کند. از آنجا که لپ‌تاپ را به‌عنوان کامپیوتر اصلی استفاده می‌کنم، مشکلات عملکردی نیز بر کارم تأثیر می‌گذارند. ماشین‌های مجازی برای تست یا کارهای سریع عالی هستند، اما اجرا بر روی سخت‌افزار خالی بهترین راه برای راه‌اندازی یک سیستم‌عامل است.

دسکتاپ لینوکس مینت، در حال اجرا بر روی VirtualBox

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

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

توسعه ویندوز به‌همان‌طور که فکر می‌کنید بد نیست

WSL دیگر همان میم قبلی نیست

پیکربندی ویندوز ۱۱ من بر پایهٔ WSL2 و Windows Terminal ساخته شده است، که تجربهٔ ترمینالی بسیار برتر نسبت به آنچه ویندوز چند سال پیش ارائه می‌داد دارد. من Ubuntu را در WSL2 اجرا می‌کنم، به این معنی که تمام چیزهایی که در لینوکس دوست دارم—مدیرهای بسته، اسکریپت‌نویسی شل، هر ابزار دیگری که استفاده می‌کنم—در اینجا موجود است، بدون اینکه زیرساخت بومی ویندوز را فدا کنم.

VS Code به‌همراه افزونهٔ WSL نیز یک بستهٔ نسبتاً خوب است. من یک پوشه را در توزیع WSL خود باز می‌کنم و VS Code به‌طبیعی می‌داند که اتصال راه دور را اجرا کند. IntelliSense کار می‌کند. دیباگ کردن کار می‌کند. ادغام Git کار می‌کند. دیگر با سیستم‌ فایل‌ها، مشکلات عملکرد یا مسایل عجیب مسیرها مبارزه نمی‌کنم. این به‌سادگی کار می‌کند، که شاید کسل‌کننده به‌نظر برسد تا وقتی بفهمید چقدر انرژی ذهنی را در لینوکس برای مقابله با مسائلی که نباید وجود داشته باشند، هدر می‌دهید.

مطلب مرتبط:   TanStack Query در مقابل useEffect Hook: کدام یک برای واکشی داده در React بهتر است؟

می‌توانید Docker Desktop را روی WSL2 اجرا کنید، به‌طوری که محیط‌های توسعهٔ مبتنی بر کانتینر به‌دقت همانند لینوکس راه‌اندازی می‌شوند. وقتی نیاز به استقرار روی سرور لینوکس دارم، هیچ تغییری رخ نمی‌دهد. کد من همان محیط لینوکس هدف را همیشه هدف می‌گیرد.

همه اینها را با امکان اجرای برنامه‌های بومی ویندوز دریافت می‌کنید. می‌توانم برای توسعهٔ C# از Visual Studio استفاده کنم وقتی نیاز است. می‌توانم از ابزارهای دیباگ مخصوص ویندوز، نصب‌کنندگان بومی و موارد دیگر استفاده کنم بدون نگرانی در مورد لایه‌های سازگاری. «ابزارهای Windows‑on‑Linux آن‌قدر که به نظر می‌رسند خوب نیستند»، و وقتی روی استک‌های مخصوص ویندوز کار می‌کنم، نیازی به استفاده از راه‌حل‌های عجیب برای اجرای برنامه‌ها ندارم.

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

کامل نیست، اما کار می‌کند

نواقصی که هنوز با آن‌ها زندگی می‌کنم

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

دست‌ها نشان‌دهندهٔ اشاره‌گرهای بالا و پایین در اطراف لوگوی لینوکس، بیانگر نظرات متنوع دربارهٔ سیستم‌عامل

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

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

مطلب مرتبط:   نحوه بازنشانی روتر TP-Link به پیش فرض های کارخانه

سپس مسألهٔ بار منابع وجود دارد. اگر روی سیستمی نسبتاً قدیمی یا کم‌قدرت باشید، خود ویندوز مقدار زیادی از منابع را مصرف می‌کند و برای توسعه یا حتی کارهای روزانه امکانات کمی باقی می‌گذارد. این مواردی هستند که استفاده از لینوکس منطقی‌تر به‌نظر می‌آید.

من عشق به لینوکس را درک می‌کنم؛ اما من هم‌راستای آن نیستم.

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

ممکن است زمان بازنگری در ویندوز فرا رسیده باشد

سیستمی که همه دوست دارند از آن متنفر شوند

جامعهٔ لینوکس بر این باور است که استانداردسازی لینوکس شما را حرفه‌ای یا جدی‌تر در حوزه توسعه می‌کند. بله، لینوکس در برخی جنبه‌ها بهتر است، اما راه‌حل همه‌جانبه برای تمام مشکلات نیست که اغلب به‌عنوان چنین ادعایی مطرح می‌شود. حرفه‌ای بودن به تحویل کار مربوط است، نه ایدئولوژی سیستم‌عامل شما. من روی ویندوز سریع‌تر کار می‌کنم، می‌توانم از تمام ابزارهای مورد نیازم استفاده کنم و در نهایت جریان کاری نرم‌تری دارم.

وقتی به لینوکس واقعی نیاز دارم، تنها با یک فرمان WSL می‌توانم دسترسی پیدا کنم. من دو‑بوت نمی‌کنم، ماشین‌های مجازی را که منابع سیستم و باتری را مصرف می‌کنند، اجرا نمی‌کنم. من هر دو را به‌صورت همزمان اجرا می‌کنم و آن‌ها بدون اصطکاک با یکدیگر ارتباط دارند.

ویندوز کاربردی‌تر و جدی‌تر نسبت به توسعه‌دهندگان شده است و این مشهود است. مسئله این نیست که ویندوز را به‌جای لینوکس انتخاب کنیم، بلکه داشتن دستگاهی است که برای شما کار می‌کند، نه برعکس.