مجموعة AHA: Astro وhtmx وAlpine › البساطة 10 / 24 السابق التالي

البساطة

أنا رجل بسيط. أحبّ البساطة.

وأكره حين تصير الأمور معقّدة إلى حدّ يؤلم عقلي.

بناء تطبيقات الويب (Web Applications) لا يحتاج إلى التعقيد، في معظم الحالات.

إلا إن كنت تصنع شيئًا معقّدًا عن قصد.

وإلا فإن إدخال التعقيد خيارك وحدك.

لكن المطوّرين يحبّون التعقيد، ويدخلون التعقيد حتى حين لا يكون ضروريًا. ربما ليس ضروريًا بعد، ربما من أجل تحضير تطبيقٍ لمستقبلٍ لن يقع أبدًا.

أحيانًا تُتّخذ القرارات دون وعي، خوفًا من أن تبان ساذجًا:

«في تطوير الويب، تدفع كثير من القرارات الرغبة في ألّا تبان ساذجًا. فالناس قلقون من أن يبدوا غير ناضجين، وعاجزين عن قول إن الأمر «معقّد أكثر من اللازم، وينبغي أن نفعل شيئًا أبسط رغم أنه ليس مثيرًا جدًّا»» @htmx_org يقول حقائق مطلقة — @flaviocopes، أكتوبر 24، 2023

ضغط الأقران هو الشرّ المطلق. فالمطوّرون الجدد معرّضون بدرجة خاصة للتفكير بأن «الخبراء» سيستهزئون بهم إن اختاروا حزمة تقنية (tech stack) لا تبدو معقّدة:

كم مرة سمعتُ عبارة «هذه الحزمة التقنية ستتّسع» عن تطبيقٍ لم يرَ نور النهار أبدًا، لأنك تخلّيت عنه بعد ثلاثة أشهر من العمل عليه ثمّ فقدت حماسك الأوّل؟

أو بناء منتج SaaS فوق حزمة مفرطة في التعقيد، ثمّ لا تظلّ سوى زبونين دائمين بثمانية وأربعين وتسعين سنتًا شهريًا لكل منهما؟

كلّما مضيتُ قُدُمًا، ازدادتُ تقديرًا للبساطة. الأمر صعب لأن التعقيد يُكافأ أحيانًا. تفعل الأشياء بطريقة بسيطة، فتبدو أقلّ قيمة؟ تفعل أشياء معقّدة، فيقال لك واو، أنت خبير حقًّا، «علّمني كلّ تلك الأشياء المعقّدة»، حتى لو لن أحتاج إليها أبدًا — @flaviocopes، أكتوبر 8، 2021

لو كانت درجة تعقيد حزمة التطبيق مرتبطةً مباشرةً بعدد الزبائن الذين سنحصل عليهم، لكنّا جميعنا من أثرياء العالم. لكن الأمر، على العكس من ذلك، لا علاقة له بهذا العدد إطلاقًا.

يستعمل الناس تطبيقنا لأنهم يحتاجونه. فإذا صادفت أن تبني شيئًا يحتاجه الناس، وكنت قادرًا على إيجاد زبائن بطريقةٍ مستدامة، فستنجح.

لا علاقة لهذا الأمر بدرجة تعقيد التطبيق.

بل العكس تمامًا.

بناء تطبيق بتقنيات بسيطة يتيح لك الإطلاق أسرع.

الإطلاق أسرع يعني أنك تصل بالتطبيق إلى السوق في وقت أسرع، وتختبر أفكارًا أكثر، وترى ما ينفع وما لا ينفع.

وإذا لقي شيءٌ ما قبولًا، فبإمكانك أن تعمل عليه أكثر.

في سياق تطبيقات الويب، يُدفع معظم مطوّري الويب اليوم، حتمًا، نحو استعمال إطار عمل لتطبيق الصفحة الواحدة (SPA) مثل React أو Vue أو Svelte، أو «أدخل إطار العمل المفضّل لديك في جهة العميل».

طوال الأحد عشر سنة الماضية، كنت مُدلِّلًا بالكامل على أسلوب تطبيقات الصفحة الواحدة بـ JavaScript، كما هو حال الغالبية العظمى من مطوّري الواجهة الأمامية (frontend).

لا تسيء الفهم: أنا أحبّ استعمال مكتبة تصيير في جهة العميل مثل React أو Svelte. إنه تحدٍّ ممتع، ويمكنك أن تصنع بها أشياء رائعة.

أقصد أن هذا ما كنت أفعله طوال عقد من الزمن تقريبًا. لو لم يكن ممتعًا أو مفيدًا، لكنت أفعل شيئًا آخر. بدأتُ مع Ember، ثمّ انتقلتُ إلى React و Vue، واستعملتُ Svelte، وجرّبتُ بدائل كثيرة أيضًا مع مرور الوقت.

لكن في الآونة الأخيرة، كنت أجرّب نهجًا جديدًا مختلفًا، ووجدته أبسط بكثير بكثير ممّا يتحدّث عنه الغالبية العظمى من الناس في الخارج، فقرّرت أن أكتب عنه لأنك قد تجده رائعًا.