#خليك_مبرمج_واع
22 subscribers
247 photos
38 videos
114 files
903 links
مجموعة أخرى أكثر إفادة و تجيب على الأسئلة
https://msaht-programming-and-w-d.quora.com/?ch=10&oid=3116845&share=396067ef&srid=hBsZuY&target_type=tribe
Download Telegram
إذا كنتَ مطور برامج رسومية لسطح المكتب لتعمل على جميع الأنظمة (Linux Windows Mac) قد تختار غالبا إحدى هذه المكتبات Qt أو GTK مع لغة Cpp.
وقد تختار برمجتها أيضا بأداة ElectronJs، لأنها تمكن مطوري تطبيقات الويب من بناء برامج مكتبية، وبما أن إلكيترون هو أسوأ شيء حصل في تاريخ البرمجيات، فقد وُجدت بدائل عنه تمكنك أيضا من استغلال معرفتك السابقة بالويب لكن مع لغات برمجة أخرى أكثر قوة من JavaScript.

هناك ثلاث بدائل قوية حتى الآن، Qt مع QML و Wails و Tauri.

Qt:
- الواجهة: QML مع Javascript
- الشفرة الأساسية: Cpp

Wails:
- الواجهة: HTML/CSS مع Javascript
- الشفرة الأساسية: Golang

Tauri:
- الواجهة: HTML/CSS مع Javascript
- الشفرة الأساسية: Rust

يجدر الذكر هنا أن لغة جافاسكريبت ليست هي اللغة التي ستبرمج بها بشكل أساسي، بل هي فقط لتتفاعل مع الواجهة (مثلا تستقبل بيانات من لغة Go، أو تساعدك في ترتيب المعلومات أو لتحريك جزء معين من الواجهة).

شخصيا برمجتُ بإطار Qt كثيرا جدا، لكن تعلم تقنية QML (الرائعة) بكل تفاصيلها يحتاج إلى وقت طويل، مع أني تعلمتها في النهاية إلا أنني لم أستطع مواكبة كل شيء فيها فتركتها بسبب ضيق الوقت (كنت أحتاج إلى بديل آخر).

تعرفتُ على Tauri وآناذاك كان يحوي أسوأ توثيق رأيته في حياتي وبشهادة مطوريها ههه، الآن أصبح توثيقهم مكتملا. كما أنه يستخدم لغة Rust وتعلمها يحتاج وقتا أطول، كما أنها لا تروقني أصلا بسبب تعقيدها شكلها الغريب!

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

وبما أنه لدي خبرة في إطار الويب Svelte لذلك اخترت هذا الخليط:
Svelte + CSS + Go = Wails app

وقد أقولها بصراحة، هذا أفضل خليط خرجت به حتى الآن!
لغة Go سهلة التعلم وسريعة وتمكنك من تصدير برنامجك من أي نظام بسرعة وعلى شكل ملف تنفيذي واحد فقط!
إطار الويب Svelte سهل التعلم وذكي وممتع!

ماذا عنك؟ مالذي ستختار؟ 👇

#خوارزمي_أنا #golang #rust #wails #tauri #javascript #electronjs #css #svelte #Qt #QML #cpp #GTK
تم اصدار نسخة 29 من OBS على لينكس، أتت بمزايا جديدة وشكل منعش
يمكنك الحصول عليها من متجر Flatpak أو من خلال PPA

https://launchpad.net/~obsproject/+archive/ubuntu/obs-studio

#خوارزمي_أنا
فريق Pop os أضاف تفعيل خاصية zram لضغط بيانات الرام للحصول على سعة أكبر أثناء استخدامك للتوزيعة خصوصا أثناء اللعب

#خوارزمي_أنا
الصندوق الأسود أو Black Box طرفية جديدة أنيقة

https://gitlab.gnome.org/raggesilver/blackbox

#خوارزمي_أنا
الكثير جدا من التحسينات، هذه نسخة alpha وقريبا ستكون beta
انتظرنا هذا المشروع لسنوات، طبعا تطوير محرر مقاطع ليس بالأمر السهل
أدعوكم لقراءة جديد Olive editor من خلال الرابط التالي:

https://www.patreon.com/posts/72849037

#خوارزمي_أنا
Forwarded from harmash.com
مقال جديد شرحنا فيه طرق تلوين المخرجات في لغة ++C
https://harmash.com/posts/colored-output-in-cpp
Forwarded from harmash.com
تم إضافة مشروع جديد مبني بواسطة React و هو بمثابة لعبة ترفيهية تفاعلية تهدف إلى اختبار معرفة اللاعبين بجغرافيا الدول العربية بطريقة ممتعة و مثيرة.
يمكنك تحميل المشروع بشكل مباشر من الرابط التالي:
https://harmash.com/projects/arab-countries-maps
Forwarded from Shadow
وعليكم السلام ورحمة الله وبركاته

نحنا نقوم بالعمل على لغة ألف النسخة 5 وسيتم إطلاق النسخة الرسمية منها قريباً إن شاء الله

نعم لقد وضعنا في الخطة إنشاء مكتبة تقوم بالتعامل بشكل مباشر مع الذاكرة

في الوقت الحالي سيكون متاح فقط قرائة الذاكرة ومعرفة المعلومات المتعلقة بها مثل الكمية المحجوزة والكمية المستخدمة والهدر في الذاكرة وغيرها
Forwarded from Shadow
بسم الله

بفضل الله انتهينا من النسخة التجريبية الاولى من لغة ألف النسخة الخامسة

وقد كنا حريصين على مراعاة حجم اللغة حيث ان حجمها لا يتجاوز 100 كيلوبايت

وبطلب من الأخ علي قمنا بترجمة اللغة على نظام windows معمارية x64 ونظام linux توزيعة Ubuntu معمارية amd64 و arm64

جدير بالذكر اننا نقوم ببناء أساس قوي للغة لذلك احتجنا إلى كل هذا الوقت مع العلم ان وقتنا ضيق للغاية، ولكن مع مرور الوقت وكلما تقدمنا اكثر سيكون التطوير على اللغة اسهل واسرع

سنقوم بإرفاق ملفات تنفيذ اللغة هنا في المجتمع

يسعدنا تجربتكم لها ومشاركتنا التجربة سواء بالاخطاء التي تظهر او بمشاركة صور من التجارب الناجحة

تم إرفاق ملف بسيط فيه إرشادات توضح طريقة استخدام اللغة وقدراتها

بالنسبة للشيفرة المصدرية موجودة على Github ولكن مقفولة ولن تتاح للعامة إلا بعد صدور اول نسخة مستقرة من اللغة

ولتوضيح تسمية اللغة ب ألف5 لمن لا يعلم فقد اتفقنا على عمل لغة تكيفية "dynamic" مفسرة مشتقة من لغة ألف وتسميتها ألف5 لان النسخة ألف3 ستكون لغة مترجمة اما بالنسبة لألف4 فكما ذكر الأخ حسن ستكون موجهة للانظمة المضمنة

وفي حال وجود اي سوال يمكنكم طرحه هنا في المجتمع وسيتم الرد عليه بإذن الله


ماذا بعد؟
نحن نقوم الآن بالتطوير على نظام اللغة بشكل كامل بحيث سيتم إنشاء نظام ترجمة يقوم بترجمة الشجرة القادمة من المحلل وتوليد شفرة أمرية وبذلك تصبح اللغة اسرع بأضعاف ما عليها الآن إن شاء الله
Forwarded from Hassan DRAGA
السلام عليكم ورحمة الله وبركاته.

أسف، هته الأيام الأخيرة كنت منشغل كثيرا في العمل.

عموما، المشكلة الأساسية اللتي تواجه مشروع ألف هي "الحجم" وليس "النوعية". صناعة لغة من الصفر تماما ليس بأمر صعب، وهذا ما أقصد به بنوعية اللغة، ولكن حجم وقدرات اللغة ستكون صغيرة وبسيطة. وهذا ما اقصد به حجم اللغة.

لدى أريد أن أوضح بعض المفاهيم الأساسة.

المعالج لا يفهم ولا يعرف إطلاقا أية لغة برمجة، حتى لغة التجميع Assembly نفسها لا يعرفها. المعالجات بكل أنواعها من الصغيرة المدمجة إلى الكبيرة في الحواسيب كلها لا تعرف ولا لغة برمجة، وإنما تعرف مجموعة محددة من الأوامر Instructions تنفدها واحدة تلوى الأخرى.

السؤال الذي يأتي للذهن الآن، هو أصل لغة Assembly، بصراحة، وعلى عكس ما يعتقده الكثيرون، لغة التجميع هي فقط فكرة مجموعة من الأشخاص حاولة تصميم لغة برمجة تعكس أوامر المعالج Instructions إلى كلمات بالغة الإنجليزية لكي يسهل التعامل معها. لا أكثر، ولا أقل.

هل هذا يعني أننا نستطيع صناعة لغة تجميع عربية خاصة بنا؟ الجواب نعم، ممكن، وسهل، وتوجد مشاريع مفتوحة المصدر نستطيع البدأ بها. ولكن، حرفيا، لا توجد إستفادة عملية حقيقية من هكذا مشروع، اللهم شعور معنوي لا أكثر. نهيك أن الأوامر تختلف من معالج لآخر وكل شفرات ASM في العالم مكتوبة بالإنجليزية، ف بالثالي لن نستفيدة منها.

الآن، فهمنا أن المعالج لا علاقة له بأي لغة برمجة، وفهمنا أن لغة التجميع هي مجرد إسقاط لأوامر المعالج باللغة الإنجليزية، ف ماهي الخطوة الثالية ؟

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

الآن فهمنا كل التحديات... فما المطلوب؟ بصراحة، أنا شخصيا فكرت في كل هذا منذ سنوات، وفي سنة 2018 خضت تجربة تصميم لغة عربية تترجم إلى ++C بذلا من لغة التجميع، والتركيز على تصميم مترجم من الصفر بدلا من الإعتماد على مشاريغ غربية. وقد نجحت الفكرة والحمد لله.

إذا، لغة ألف الحالية هي عبارة عن مترجم مصمم ومكتوب من الصفر تماما، يترجم شكل لغة ألف إلى لغة ++C.

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

حسنا، الأمور تبدو واضحة الآن، والتحديات معروفة. ف ماهو مستقبل لغة ألف ؟

بصراحة، أفكر في الإستمرار تطوير المترمج الحالي (ألف 3) لأنه فريد من نوعه في الوطن العربي، وكذالك محاولة تصميم مترجم جديد آخر يترجم ألف إلى لغة C بدلا من ++C، وبعض الأخوة يعملون على مترجم آخر جديد تماما بالبايثون، ثم انتقلو إلى ++C

أي شخص له فكرة جديدة هو مرحب به، فقط عليه أن يكون واقعي وأخد بالحسبان ما سبق ذكره من تحديات. سنتعاون جميعا على العمل على أفكار مختلفة، وفي النهاية سنركز على الفكرة الأكثر رواجا ونجاحا بإذن الله تعالى.
Forwarded from Shadow
وبمناسبة ذكر ألف5

سأخبركم بآخر التطورات

لقد قمنا بتغيير نظام اللغة بشكل كامل وذلك قام بتسريع اللغة بنسبة تصل الى 300% تقريباً
وسبب ذلك البطأ أننا كنا نستخدم نظام ضعيف ويعود ذلك لقلة الخبرة لدينا - ولكننا نزداد خبرة يوم بعد يوم بفضل الله -

انهينا العمليات الرياضية والإسناد والمصفوفات وحالة "اذا" ، "بينما" ، "لاجل" ، وتعريف دالة

نعمل على نظام متواضع لإدارة الذاكرة لان النظام القديم كان يستهلك الكثير من الأداء

كما اننا نقوم بتصحيح الأخطاء التي تظهر وإضافة بعض الوظائف الضرورية

نخطط لإطلاق ما توصلنا إليه من اللغة خلال شهر بإذن الله ليتمكن المجتمع من تجربتها وإكتشاف الأخطاء لتصحيحها وإقتراح الأفكار والتعرف على اللغة لمساعدتنا في تطويرها بإذن الله
Forwarded from harmash.com
لمتابعي دروس جافاسكربت.
تم إضافة الدرس الأخير و فيه شرحنا كيفية استخدام التعابير النمطية (Regex) للبحث و التعديل في النصوص خطوة خطوة:
https://harmash.com/tutorials/javascript/regexp
عدد الدروس أصبح 50.
الآن أصبح يتم منحك شهادة إذا أتممت كل الدروس 🙂