ترند تحسين السرعة | التركيز على أداء البرامج وكفاءتها

· 1474 كلمة · 7 دقيقة قراءة

أنت تسمع بسرعة فائقة، أسرع، بسرعة الفِكر، بسرعة البرق،.. والعديد من العبارات المشابهة. لا يقتصر هذا الاتجاه لتحسين الأداء على الكلمات والمشاريع وما شابه، بل يتوسع ليشمل لغات البرمجة نفسها والمكتبات ومواقع الويب والخوادم وكل ما يتعلق بالبرامج. حتى الأجهزة، لكننا سنركز على البرامج.

لغات البرمجة عالية الأداء والكفاءة 🔗

إذا قمت برسم أداء وكفاءة لغات البرمجة من عام 2000 حتى عام 2024 (العام الحالي)، ستجد أن لغات البرمجة تتنافس على تعزيز أدائها وكفاءتها.

يمكنك إلقاء نظرة على Ruby وPHP وJavascript بين الحين والآخر. الفرق كبير في الواقع.

إذا فكرت في لغات البرمجة القديمة مثل C، C++، .. ثم لغات برمجة العصر التالي مثل Python، PHP، Ruby،.. ثم انظر إلى اللغات الحديثة مثل Go ، Rust، Zig ، .. إلخ، ستعرف أن العصر القديم كان أبسط وأسرع ولكن تجربة المطورين ليست جيدة بما فيه الكفاية، العصر التالي كان رائعًا لتجربة المطورين على حساب الأداء، لكن العصر الحديث يتمتع بالأداء وخبرة المطورين الجيدة بما يكفي (في معظم الحالات).

تركز جميع لغات البرمجة الحديثة على الكفاءة والأداء.

  • Go: أنشئ أنظمة بسيطة وآمنة وقابلة للتطوير.
  • Zig: لغة برمجة للأغراض العامة ولديها سلسلة أدوات للحفاظ على برامج قوية ومثالية وقابلة لإعادة الاستخدام.
  • Rust: لغة تُمكّن الجميع من إنشاء برامج موثوقة وفعالة.
  • Jai هي لغة برمجة جديدة ومثيرة تم تطويرها بواسطة جوناثان بلو. الهدف المٌعلَن للغة هو أن تكون لغة أفضل لألعاب البرمجة من لغة C++، ولكن اللغة هي في الواقع بديل عام لـ C++ مع الأهداف التالية: الأداء العالي، متعة البرمجة، البساطة.
  • تجمع Mojo بين سهولة استخدام لغة Python وأداء لغة C، مما يفتح المجال أمام قابلية برمجة لا مثيل لها لأجهزة الذكاء الاصطناعي وقابلية توسيع نماذج الذكاء الاصطناعي.
  • Swift هي لغة برمجة قوية وبديهية لجميع منصات Apple. من السهل البدء في استخدام Swift، من خلال تركيب جُمَل موجزة ومعبرة وميزات حديثة ستحبها. تعتبر البرامج المكتوبة بلغة سويفت أمنة وسريعة وجميلة التصميم.

متصفحات ويب أكثر أداء وكفاءة 🔗

نشرت فايرفوكس في يوم ١٧ ابريل ٢٠٢٤:

سريع بالفعل. وأصبح أسرع.
هل تعرف? متصفح فايرفوكس هو, في المتوسط, أسرع ٢٥٪ في تحميل صفحات الويب من العام الماضي - وكان سريعاً وقتها.

تم نشر مقاله في مدونة جوجل كروم بعنوان “ إمكانيات خاصة بالسرعة والأداء والأمان قادمة لـ كروم ”. وإليك جزء صغير مترجم من المقال.

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

في يوم ١١ مارس ٢٠٢٤ ، نشرت مدونة كروميوم مقال بعنوان Speedometer 3: إنشاء بنشمارك benchmark ليمثل الإنترنت وفيها تجد الكلام الآتي:

بالتعاون مع محركات تصفح الويب الرئيسية, Blink/V8 ، Gecko/SpiderMonkey ، و WebKit/JavaScriptCore, نعلن إطلاق Speedometer 3.0. البنشمارك Benchmarks ، مثل Speedometer ، هي أدوات تساعد مطوري المتصفحات على معرفة فرص تطوير الأداء. في الحالة المثالية ، تقوم هذه البنشماركس (benchmarks) بمحاكاة الإمكانيات التي يستخدمها الناس على المواقع الإلكترونية المختلفة، وذلك للتأكد أن المتصفحات تقوم بعمل التحسينات التي تفيد المستخدمين فعلاً.

إن حسّنت البنشماركس (benchmarks)، تستطيع الحصول على سرعة وأداء أعلى بمرور الوقت لأنك تستخدم إحصائيات معبرة عن الواقع والمستخدِمين.

مدونة ويب كِت (WebKit) أعلنت نفس الموضوع في مقال تحت عنوان “ Speedometer 3.0: The Best Way Yet to Measure Browser Performance ” ومعنى العنوان “أفضل طريقة - حتى الآن - لقياس أداء المتصفح”، بعد ذلك تم نشر مقال آخر بعنوان “ Optimizing WebKit & Safari for Speedometer 3.0 ” وهو عن تحسين أداء ويب-كِت و سفاري لـ سبيدوميتر ٣.

مدونة مايكروسوفت إيدچ نشرت مقال تحت عنوان “ Improving Memory Usage in Microsoft Edge ” ومعناها “تحسين استهلاك الذاكرة في مايكروسوفت إيدچ.

إليك جملة مأخوذة من نص المقال:

Early internal testing results of devices on the May 2020 Update are showing a memory usage reduction of up to 27% when browsing with Microsoft Edge.

وترجمتها:

نتائج الإختبارات الداخلية المبدئية للأجهزة في تحديث مايو ٢٠٢٠ تُظهر تقليل في استهلاك الذاكرة وصل إلى ٢٧٪ عند تصفح الإنترنت عن طريق برنامج مايكروسوفت إيدج.

المزيد من IDEs و محرري الأكواد لتحسين الأداء 🔗

قام أندرويد ستوديو (Android Studio) — بيئة تطوير متكاملة (IDE) لإنشاء تطبيقات أندرويد (Android) — بالكثير من الأشياء في السنوات الأربع الماضية لمنح مطوري التطبيقات الأدوات المناسبة لإنشاء تطبيقات سريعة الأداء. وإليك تغريدة لهم على موقع إكس (تويتر سابقاً) عن الإمكانيات المُضافة إلى أندرويد ستوديو لتحسين الأداء وتقليل استهلاك الذاكرة.

Zed — محرر أكواد — تم تطويره ليعطي أداء أفضل و تجربة برمجة وتطوير أفضل (developer experience). اقرأ أكتر عن مزايا وإمكانيات برنامج زِد لتحرير الأكواد على موقعه الرسمي من هنا .

الصفحة الرئيسية لمحرر الأكواد زِد (Zed) تبدأ بهذه الكلمات:

Code at the speed of thought
Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. It’s also open source.

وترجمتها:

اكتب كود بسرعة تفكيرك
زِد (Zed) هو محرر أكواد سريع الأداء ، متعدد اللاعبين، تم تصميمه من صانعي برنامج أتوم (Atom) و الـ Tree-sitter. وهو مفتوح المصدر (open source).

software stacks أسرع في الأداء 🔗

التطوير بإستخدام نود (node) بطيء جداً ، لذلك الكثير من الفريموركس و مديري الحِزَم الجديدة تم إنشائها لتحسين تجربة الاستخدام وتجربة التطوير والبرمجة عن طريق إضافة تحسينات في سرعة وأداء بيئة التطوير.

إليك كل البرمجيات التي تم إنشائها لتحسين تجربة الاستخدام وتجربة البرمجة والتطوير لـ جافاسكربت (Javascript) و نود (NodeJS):

  • Bun — A fast all-in-one JavaScript runtime. تم كتابة بَن (Bun)بلغة زِج (Zig).
  • Vite — ڤييت توفر بيئة تطوير سريعة جداً في بناء واستعراض الملفات والتغييرات أثناء التطوير في الوقت الفعلي دون تأخير بغض النظر عن حجم البرنامج الذي تقوم بتطويره.
  • esbuild - An extremely fast bundler for the web. إي إس بِلْد (Esbuild) مكتوب بلغة جو (Go).
  • Qwik — فريمورك لبرمجة وتطوير تطبيقات ويب ومواقع إلكترونية جاهزة للتفاعل فوراً دون مجهود.

بدلاً من تعلم لغة جافا (Java) أو كوتلن (Kotlin) مع تصميم واجهات وشاشات التطبيق بلغة XML ، يُمكنك تعلم جِت باك كومبوز (Jetpack Compose) لتصميم واجهات التطبيق بلغة كوتلن نفسها. لذلك انت تحتاج إلى تعلم لغة واحدة وهي كوتلن لكي تصمم تطبيق أندرويد. اقرأ عن أهمية استخدام Jetpack Compose من المدونة الرسمية: Google Drive cut code and development time in half with Jetpack Compose and new architecture .

بدلاً من تطوير موقعك في نظام ووردبريس (WordPress)، استخدم نظام هوجو ( Hugo ) الخاص بتوليد صفحات ويب (the static site generator). نظام هوجو (Hugo) مكتوب بلغة جو (Go).

بدلاً من إنشاء مشاريع ويب ومواقع إلكترونية ضخمة في فريموك چانجو (Django) أو لاراڤيل ( Laravel) أو روبي أو ريلز (Ruby-on-Rails)، نستطيع إنشاء هذا المشروع الضخم بلغة جو (Go programming language) للحصول على قابلية على التعديل أفضل وخدمة أعداد ضخمة من الناس وأعداد كبيرة من المبرمجين في فريق واحد كبير.

بدلاً من إنشاء برنامج بلغة سي شارب (C#) للويندوز ، و برنامج بلغة سي (C) بمكتبة الجرافيكس (GTK) لأنظمة لينكس (Linux) ، و بـ جافا (Java) أو كوتلن (Kotlin) للأندرويد (Android) ، و بـ لغة سويفت (Swift) لأنظمة آبل (Apple) مثل آيفون وآيباد و ماك،.. وهكذا .. نستطيع إنشاء كل هذا في مشروع برمجي واحد عن طريق فريمورك فلاتر ( Flutter ). فريمورك فلاتر (Flutter) يوفر تجربة تطوير أفضل (DX) وتجربة استخدام قوية (UX) في نفس الوقت.

آرائي في التوجه العام لتحسين الأداء في البرمجيات 🔗

التوجه العام لتحسين أداء البرمجيات يعجبني جداً. أعرف أن الهاردوير يتطور ويتحسّن ويصبح قادر أكثر وأسرع في تنفيذ المهام ..

هل الـ ٣٢ جيجا رامات هي مخصصة للبرنامج بتاعك انت بس؟ ولا هي متاحة لعدد كبير من البرامج الجائعة للرامات ؟

هل المعالج متعدد الأنوية الحديث القوي الضخم السريع فاضي لبرنامجك انت فقط ؟ ولا في برامج كتير وخدمات تعمل في الخلفية في نظام التشغيل تعمل بالتوازي وبالتبادل على جميع أنوية المعالج؟

هل كرت الشاشة العظيم الموجود في جهاز الكمبيوتر ده متفرغ للعبة اللي طورتها انت بس؟ ولا في واجهة استخدام وبرامج تحليل بيانات وذكاء اصطناعي بتستخدم كرت الشاشة في نفس الوقت بالتبادل أو بالتوازي ؟

لا تطوير برنامج أناني ؛ يعتبر أن كل إمكانيات الجهاز هي مِلكه. من الأفضل أن تطوير تطبيق أو برنامج أو أداة برمجية تحترم البيئة المثبته عليها وتستهلك موارد الجهاز من وقت المعالج والذاكرة (الرامات) بشكل رشيد ومحترم.

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

التصنيفات: برمجة
مشاركة:
الترجمات:  English (Trend of Focusing on Software Performance & Efficiency)