هل واوى قادرة على انشاء نظام تشغيل جديد؟

شركة واوى (Huawei) واجهت قرارات صعبة ومصيرية فى الأيام القليلة الماضية. بعد قرار الرئيس الأمريكى ترامب بإلغاء التعامل التجارى مع شركة واوى، قامت جميع الشركات الأمريكية بإيقاف كل التعاملات التجارية المُستقبلية مع شركة واوى الصينية.

من أهم هذه الشركات التى أوقفت التعامل مع شركة واوى هى شركة جوجل التى تملك أهم البرامج على منصة أندرويد ( متجر جوجل بلاى، خدمة جوجل بلاى بروتكت، تطبيق يوتيوب، تطبيق جوجل كروم، .. إلخ) وشركة آرم المتخصصة فى ترخيص معمارية آرم ﻹنشاء معالجات الهواتف المحمولة، وشركة مايكروسوفت صاحبة نظام التشغيل ويندوز الذى يعمل على أجهزة لابتوب شركة واوى.

لماذا تستخدم واوى نظام تشغيل جديد، وهناك نظام الأندرويد مفتوح المصدر! هناك مشكلتان فى استخدام نظام الأندرويد مفتوح المصدر (AOSP).

المشكلات التى تواجه شركة واوى لو استخدمت نظام الأندرويد مفتوح المصدر

المشكلة الأولى: عدم توفر خدمات جوجل وعلى رأسهم متجر جوجل بلاى.

المشكلة الثانية: نظام الأندرويد لا يعمل إلا على معمارية آرم التى لا تستطيع شركة واوى استخدامها حالياً.

إذا كان استخدام نظام الأندرويد مفتوح المصدر بكل هذه الصعوبة، فلماذا لا تُنشئ شركة واوى نظام تشغيل خاص بهم؟

لماذا لا تُنشئ شركة واوى نظام تشغيل خاص بهم؟

انشاء نظام تشغيل ليس سهلاً كما تتوقع. شركة واوى لديهم بالفعل نظام تشغيل يُسمى هونج منج (HongMeng OS) وله اسم آخر وهو آرك أو إس (Ark OS). ولكن لا أتوقع أن يكون هذا النظام الجديد منافس قوى للأندرويد أو لآيوس!!

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

ولكن هناك أخبار تقول أن النظام الجديد من شركة واوى تعمل عليه تطبيقات الأندرويد بشكل أسرع مما تعمل على نظام الأندرويد نفسه بـ 60%!!! هذا خبر يكاد يكون مستحيل تصديقه الشركات الصينية التى تعتمد فى الدعاية والتسويق على الكذب والخداع مثلما حدث من قبل فى التصوير السيلفى الذى تم إلتقاطه بكاميرا متخصصة وكتبوا أن هذه الصور تم إلتقاطها بكاميرا هاتفهم.

صعوبة تشغيل برامج نظام على نظام آخر ستدركها عندما تحاول استخدام برنامج Wine أو PlayOnLinux وتحاول تثبيت برامج وألعاب ويندوز على أحد توزيعات نظام جنو لينكس. فى هذه اللحظة ستدرك مدى صعوبة ما تدعيه شركة واوى بشأن تشغيل تطبيقات الأندرويد على نظامهم الجديد.

هناك عدة مشكلات تواجه نظام واوى الجديد وهى:

المشكلات التى تواجه نظام واوى الجديد

المشكلة الأولى: عدم وجود متجر تطبيقات قوى

نظام التشغيل جديد ولذلك يحتاج إلى وقت لكى يطور ويحدث متجر تطبيقات قوى وسريع وسلس. وهذا أمر ليس سهلاً ﻷن متجر التطبيقات يختلف كثيراً عن برمجة التطبيقات الأخرى.

المشكلة الثانية: عدم وجود التطبيقات الأساسية عليه

لن تجد على هذا النظام الجديد تطبيق يوتيوب، ولا تطبيق فيسبوك، ولا تطبيق جوجل كروم، ولا تطبيق واتساب، ولا تطبيق جوجل درايف، تطبيق صور جوجل، تطبيق جيميل، تطبيق لينكد إن، تطبيق تويتر، تطبيق ماسنجر الخاص بالفيسبوك، تطبيق إنستاجرام، تطبيق ساوند كلاود، .. والكثير من التطبيقات الأخرى التى تعتبرها أساسية ومهمة ﻷنها التطبيقات الأكثر استخداماً على كل هواتف أندرويد وآيفون.

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

هل أنا متعاطف مع الشركات الصينية وشركة واوى تحديداً؟

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

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

انتهينا من الحديث عن شركة واوى. وإن أردت متابعة الموضوعات الجديدة اشترك بـ بريدك الإلكترونى من هنا.

مكتب ديزاينو لتنظيم حفلات الزفاف فى الكويت

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

مكتب ديزاينو لتنظيم وتنفيذ وإدارة الحفلات بالكويت يقدم:

1. تجهيز قاعات أفراح ومناسبات
2. دى جيه DJ
3. تصوير فيديو للحفلات
4. تصوير فوتوغرافى للحفلات
5. أطقم كنب وبنشات
6. كراسى وطاولات
7. تسكير
8. تصميم وتنفيذ زينة الأفراح
9. كوشة وفاف وكوشيات أعراس

أهم الحفلات والمناسبات التى يعمل مكتب ديزاينو على إدارتها:

3. حفلات أعياد الميلاد
4. حفلات ملجه
5. وكل الأفراح والمناسبات الأخرى

موقع مكتب ديزاينو لتنظيم وتنسيق وإدارة وتجهيز حفلات الزفاف والأفراح والأعراس

لماذا أتعامل مع مكتب ديزاينو لتصميم وتنفيذ وإدارة الحفلات؟

مكتب ديزاينو يتمتع بالكثير من المميزات منها:
1. دقة المواعيد.
2. خبرة طويلة فى مجال تصميم وتنفيذ وإدارة جميع أنواع الحفلات.
3. الأبداع وجمال الإختيارات المتاحة للمنظمين للحفل.

يُمكنك التواصل مع مكتب ديزاينو عبر الأرقام الآتية: 99020629 - 97588029

أفضل 7 تطبيقات للتسوق أون لاين

مَنْ مِنَّا لا يحب التسوق؟ خاصةً التسوق عبر الإنترنت، انتشرت خدمة التسوق أون لاين وأصبحت صناعة ضخمة في ظل إدمان الكثير منّا التعامل مع هواتفه الذكية، وبالتالي أصبح التسوق تجربة ممتعة وسهلة لا تحتاج إلى القيام برحلة إلى المركز التجاري.

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

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

إليك أفضل 7 تطبيقات خاصة بالتسوق أون لاين:

EBay أيباي 

يمكنك الحصول من خلال هذا التطبيق على حقائب اليد وأجهزة الكمبيوتر المحمولة وأجهزة المطبخ، والمجوهرات الراقية.

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

Amazon أمازون  

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

AliExpress علي اكسبريس  

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

farfetch  فارفيتش 

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

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


يمكنك الحصول على ما تبحث عنه من أرقي الأزياء العالمية بسهولة وفي أي وقت، من خلال تطبيق فارفيتش المتوافر على نظامي أندرويد و وآيفون عبر البحث والتنقل المحسن ، كذلك تصفح أسرع وبحث أسهل وسداد فوري من أي مكان.

كن أول من يعلم بالتخفيضات والعروض مع تطبيق فارفيتش، كما يوفر لك التطبيق ميزة حفظ المنتجات التي أعجبتك في قائمة أمنياتك الشخصية.

Alibaba علي بابا

يُعد تطبيق علي بابا رائدًا في سوق التجارة العالمية حيث يمكنك شراء وتوريد السلع عبر البلدان، كما إنك ستجد منتجات ذات جودة عالية بتكلفة منخفضة للغاية.

Facebook Marketplace فيس بوك

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

OLX أولكس  

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

قصتى مع البرمجة

الموضوع بدأ من يوم ٦-١٠-٢٠١٢ كان يوم عيد ميلادى الـ ١٩ وبما انه عيد ميلادى فطبعاً لازم النكد والتفكير فى الماضى والمستقبل ومحاسبة النفس والطموحات والآمال العريضة وليلة كبيرة سعادتك 😂

أنا كان عندى شغف وحب للكمبيوتر والموبايل وكان بيتملكنى فضول إنى أعرف الحاجات دى بتتعمل ازاى وايه الفكرة بتاعتها وعملوها ليه .. لدرجة انى ببدأ بالفضول ده وأوصل لفلسفات وجودية عن الآلة والزمن والكمبيوتر والموبايل .. وحاجات خيال أوڤر ع الآخر 🤣

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

كنت بروح الكلية دايماً متأخر والحاجات اللى ينفع مروحش كنت بنام أو اقرا ع النت أو أحضر فيديوهات .. لكن حضور الفيديوهات قليل لأنى كنت مشترك فى باقة نت ع الموبايل ..

المهم، يوم عيد ميلادى الـ ١٩ ده كان اليوم اللى قررت فيه أصعب قرار أخدته لحد دلوقتى .. وهو إنى هبدأ أفهم الكمبيوتر والتليفون وأدرسهم.. أنا مكنتش أعرف إن الاتنين فكرة واحده أصلاً 😂

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

المشكلة كانت إنى معرفش حاجه عن اللابتوب اللى عندى ده.. ولا الموبايل اللى فإيدى غير إزاى أفتح بعض البرامج واستخدمها.. وفهمى ليهم مجرد تجريب وتعود بدون فهم حقيقى.. عشان كده كنت حاسس إنى هفشل 😥

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

فضلت اقرا واحضر فيديوهات.. بس القراءة كانت أكتر.. لكن المشكلة اللى واجهتنى هى اللغة.. مفيش شرح بالعربى لمعظم الحاجات.. مفيش رد على كل الأسئلة اللى عندى..

أنا كنت كويس فى الانجليزي كدراسه مش كـ لغة اعتمد عليها.. يعنى انجح فى الامتحان 😂 بس معرفش اتكلم مع واحد أمريكى مثلاً 😑 ..

كان صعب أحضر فيديو بالإنجليزى لأنى حاولت كتير ومفهمتش حاجه.. فقررت إنى اقرا بالإنجليزى وافهم الكلمة او الجملة وأقلل من الترجمة.. يعنى أحاول معتمدش على إن كل كلمة يقابلها كلمة بالعربى.. لأنى لما كنت بترجم كده مكنتش بفهم حاجه..

فى الأول الموضوع كان صعب وكنت بيأس وأفشل كتير فى إنى أفهم الشروحات اللى بقراها.. لكن مع الوقت كنت بتحسّن ﻷن قريت نفس الموضوع فى شروحات من مواقع ومدونات مختلفة.

قررت إنى اتعلم انجليزى بالكامل.. زى ما اتعلمت عربى.. أنا اتعلمت اللغة العربية إزاى؟! .. كنت طفل وبسمع أصوات واستنتج ان الصوت كذا معناه كرسى وإن الصوت كذا معناه إن حد عايزنى (حد بينده عليا بإسمى)..

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

يعنى الحل إنى اتعلم انجليزى هى انى اخد كلمة واعرف هى بتدل على إيه فى البيئة المحيطة بيَّ بغض النظر عن المقابل العربى للكلمة دى.. مثلاً fire هى الشكل ده لما حاجه تتحرق.. مش مهم ان اسمها نار بالعربى..

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

أخدت فترة طويلة.. أكتر من ٥ شهور مهتم ببرامج تعديل الصور.. كنت بقرا عن البرامج وشروحات استخدامها ومميزات وعيوب كل برنامج .. نزلت كل البرامج اللى لقيتها قدامى واستخدمتهم كلهم .. وكنت بستخدم وأقارن .. مكنش في هدف .. تقدر تقول ان هدفى ضاع منى..

كنت ماشى بالفضول وحب الاستطلاع بس.. صممت صور وعرفت أنواع الصور وامتداداتها والكوديكس.. عرفت معلومات كتير عن الفيديو وتكوينه والمصطلحات بتاعة المونتاج والـ 3d modeling وغيرها من التفاصيل اللى وصلتنى لبرامج الانتاج السينمائى والبرامج الهندسية زى maya و 3d max و autocad وبرامج كتير جداً قريت عنها واستخدمتها ونفذت شروحات كتير عليها..

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

لما بدأت ادخل فى مجال البرمجة حسيت بصعوبة مستفزة.. الشروحات سهله، لكن لما أحاول أعمل الفكرة اللى فى دماغى معرفش 😑 كان موضوع صعب ورخم.. بدأت بالفيجوال بيسك دوت نت .. لأنى أخدت شوية معلومات فى كلية علوم عنه.

بدأت أعمل أفكار برامج تافهه 🤣 بس فى وقتها كانت مهمه بالنسبالى 😂

المشكلة الكبيرة اللى واجهتنى فى وقتها ان كل فكرة أحاول انفذها إما معرفش أو مقدرش أوصل للشكل والطريقة اللى انا عايز البرنامج يظهر ويتصرف بيها 🙄

كنت باخد أيام أفكر فى جزئية واحدة من البرنامج. ومش دايماً كنت بقدر أنفذها. 🙄

دخلت فى جروبات انجليزية عن البرمجة.. وعرفت ان فى حاجه اسمها هاكر.. يعنى ده واحد بيسرق ايميلات الياهو.. ده اللى كنت فاكره وقتها 🤭🤣

كان كل ما حد يكتب بوست اقراه.. واللى معرفوش ابحث عنه.. كنت دايماً ببحث على جوجل .. لدرجة انى قريت عن أفضل الطرق للبحث على جوجل.. وأسرار البحث على جوجل.. المهم وصلت لفهم بعض المعلومات عن طريقة عمل الويب وموقع الفيسبوك تحديداً وازاى ممكن نهكر الفيسبوك 😅

الموضوع خدنى من اهتمامى ببرامج الجرافكس والبرمجة ومسكت فى موضوع الاختراق ده.. برامج الاختراق اللى موجوده ع النت دى عرفتنى على الفيروسات وأنواعها وطريقة التخلص منها .. لأنى كنت بجرب برامج وسكربتات كتير للإختراق وكنت بتعرض لفيروسات كتير من البرامج النصابة دى 😂

المهم فهمت إن أنا مجرد سكربت كيدي 😂 تافه حقير 😂 ملوش أى لازمه فى الحياة 🤣🤣

عرفت إن أنا سكربت كيدى (Script Kiddie) من موقع كان عبارة عن مجموعة من ملفات txt عادية مش html بس مش قادر افتكره ومعرفتش أوصله عن طريق internet archive لكن عموماً قريت معظم الملفات اللى موجوده ع الموقع ده 😎

عرفت إن الاختراق ده بيبقى لأهداف كتير أهمهم التأمين عن طريق معرفة الثغرات وسدها عشان محدش يستغلها، والهدف التانى وهو العقاب والاعتراض زى الاعتراض على سياسات شركة معينة عن طريق اختراقهم بطريقه تخسرهم فلوس أو عملاء 🤫

بعد ما عرفت تصنيفات الهاكرز وأهدافهم.. بدأت افهم واقرا واجرب طرق الاختراق.. اختراق الفيسبوك.. اختراق الواى فاى.. اختراق الأجهزة اللى على نفس الشبكة.. لحد ما وصلت لـ لينكس وخاصة كالى لينكس 🧐

أخدت فترة طويلة فى مجال الهاكر ده وجربت كتير واتعلمت حاجات كتير جداً لحد ما نزلت توزيعة لينكس .. غالباً كانت كالى لينكس أو باك تراك.. واعملت virtual machine وثبتها بعد معاناه لمدة أسبوع فى التحميل والتثبيت والمشاكل واعدادات البيوس (BIOS)..

فضلت أجرب فى توزيعة لينكس دى وامسح وافتح واستخدم واحدث فى برامج وسكربتات كتير.. عدد الشروحات اللى قريتها ونزلتها صعب أعده.. لأنى كنت مش بسيب اللابتوب تقريباً ✋

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

شوية أسئله تدل إنى مكنتش فاهم أى حاجه وتايه خالص.. المهم بدأت اقرا عن حركة البرمجيات الحرة وجينوم ولينكس وتاريخ لينكس.. وحوار طويل 🤓

المهم فى الوقت ده اتعرفت بالصدفه على بعض المبرمجين اللى بيدرسوا فى حاسبات ومعلومات.. وكان واحد فيهم خلص كلية وهيبدأ شغل..

فهمت شوية حاجات عن البرمجة من الكلام معاهم ونصايحهم.. وعرفت شوية حاجات عن التوظيف.. وبدأت أرجع للفكرة الأولى بتاعتى وهى انى اتعلم ازاى اعمل برامج 🤔

قريت شوية عن لغات البرمجة زى c و c++ و fortran و visual basic و c# .. نفذت شروحات كتير جداً بلغات مختلفة لكن كنت بقدر اعمل برامج ب vb .net أفضل.. طبعاً لأنها أسهل 😂😂

بس بعدها بدأت اقرا عن الإنترنت والشبكات وازاى الكمبيوتر بيتوصل بكمبيوتر تانى.. ودخلت فى ليلة كبيرة تانى.. فضلت اقرا وأربط المعلومات ببعض 🤓

اهتميت بمجال تطوير المواقع والويب ودرست html و css وجربت كتيييير اعمل مواقع بيهم.. وفضلت اتعلم xhtml بعد xml و javascript وتوهت فى الجافاسكربت والليلة الكبيرة بتاعتها.. بس طنشتها ومسكت فى الباك اند وتحديداً php وجافا و c# بس حبيت php أكتر 💜

أول مرة أحس ان البرمجة سهله لما عملت صفحات ويب.. 💜

بدأت فى الوقت ده اكتب تدوينات على مدونة على wordpress وبعدها حولت لموقع blogger ولاحظت انى بفهم المعلومة وبتلزق فى دماغى أكتر لما أدرسها وأفهمها وبعد كده أشرحها لحد تانى أو أنشر تدوينة شرح ليها 😍

حبيت التدوين لكن كنت بركز على تصميم الثيمز والقوالب .. لكن مع الوقت بدأت أهتم بالتدوين والأرشفة والسيو.. اتعلمت حاجات كتير جداً وعملت تجارب عن السيو والأرشفه وبتابع حتى الآن كتير من خبراء السيو زى نيل باتيل وبراين دين.

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

وعملت مواقع كتير منهم موقع ابانوب حنا للبرمجيات اللى انت بتقرا عليه دلوقتى.

واتعلمت كتير عن ازاى الهاردوير بيسمع كلام السوفت وير .. ازاى البروسيسور بيشتغل.. ومكونات الأجهزة موبايل أو لابتوب.. وأخدت فترة مهتم بالسيرفرات.

لحد يوم ٦-١٠-٢٠١٧ كنت لسه فى مرحلة التجريب والمحاولة.. لكن يوم عيد ميلادى الـ ٢٤ فى سنة ٢٠١٧ قررت إنى مبرمج .. وإنى هكمل فى مجال برمجة الويب وبرمجة الأندرويد كمجالات برمجة أسياسية بالنسبالى..

تطوير برامج لينكس أو ويندوز أو ماك شئ حلو.. لكن أنا قررت إنه مش هيكون شئ أساسى بالنسبالى. لكن فى المستقبل إن شاء الله ههتم ببرمجة الآيباد لأنى شايف إن التابلت هو المستقبل.

وأنا الآن فى يوم ٦-٦-٢٠١٩ بكتب قصتى مع البرمجة بإختصار شديد جداً. فى النهاية أحب أقول إنى بدأت بمجرد فضول ودخلت فى مجالات كتير وضاع وقت طويل وتشتت تركيزى كتير وأخدت شهادات كتير (أنا معتبرها مش مهمه) وأخدت خبرة كبيرة فى مجالات كتير جداً 😀

أنا راضى عن اللى عملته رغم التشتت وتضييع الوقت فى الدراسات المختلفة والمتباعدة .. لأنى اتعلمت أخيراً انى أركز فى حاجه واحدة وأخليها أفضل شئ يمكن انتاجه 💜 بدل ما أعمل ١٠٠ حاجه ملهمش أى تلاتين لزمة ✋

فى الرحلة دى اللى بدأت من أكتر من 7 سنوات أنا أخدت كورسات كتير فى جامعات أون لاين وعلى مواقع زى كورسيرا واليوتيوب وأوداسيتى وعملت مشاريع برمجية كتير جداً.. وإن شاء الله هستمر فى التحسن والتعمق فى تطبيق البرمجة لتحسين حياة الناس وتسهيل حياتنا.

شرح تنظيم ملفات ومجلدات لينكس

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

لاحظ: يمكنك الحصول على هذه المجلدات والملفات لديك عن طريق أمر "ls /" داخل التيرمينال.

شرح مجلدات لينكس الرئيسية

أو عرض كل المجلدات فقط كما فى الصورة التالية:

كل مجلدات نظام التشغيل جنو لينكس

مجلدات bin و sbin و snap تحتوى على البرامج المثبتة على الجهاز. bin يحتوى على معظم البرامج المثبتة على النظام ويستطيع المستخدم العادى الوصول إلى هذه البرامج واستخدامها. أما sbin فهو يحتوى على برامج تتحكم فى تفاصيل فى نظام التشغيل لذلك لا يستطيع المستخدم العادى استخدام هذه البرامج الموجوده فى sbin الروت فقط هو القادر على استخدام هذه البرامج. أما snap فهى عبارة عن البرامج المثبتة عن طريق snapd وهو نظام حزم البرامج الجديد من أوبونتو.

أما مجلد boot فهو يحتوى على كل المعلومات التى يحتاجها نظام التشغيل لينكس لكى يفتح الجهاز ويبدأ فى العمل عند الضغط على زر الباور (زر تشغيل الكمبيوتر).

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

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

أما مجلد etc فهو عبارة عن مجلد يحتوى على كل الملفات الخاصة بإعدادات النظام. الإعدادات الموجودة هنا هى الإعدادات التى تنطبق على نظام التشغيل بشكل كلى وليس على برنامج معين قام المستخدم بتثبيته. إعدادات البرامج التى يثبتها المُستخدم موجودة فى مجلد home الخاص بالمستخدم.

مجلدات lib و lib32 و lib64 هى عبارة عن المكتبات البرمجية التى يستخدمها المبرمجين فى كتابة برامجهم لنظام التشغيل لينكس. أى هذه المجلدات تحتوى على أكواد تستخدمها البرامج الموجودة فى مجلدات bin و sbin وهكذا.

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

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

مجلد proc يحتوى على كل العمليات التى تحدث على نظام التشغيل حالياً. تذكر جيداً أن كل شئ هو عبارة عن ملف فى بيئة يونكس ولينكس. على سبيل المثال، يُمكنك معرفة كل معلومات المعالج عن طريق الأمر "cat /proc/cpuinfo"، ويُمكنك معرفة مدة تشغيل الجهاز من هذا الأمر "cat /proc/uptime".

مجلد root يحتوى على الملفات الخاصة بالمستخدم "روت". وهو مفيد جداً فى حالات مثل عدم وجود مجلد المنزل (home directory) للمستخدم الحالى.

مجلد run هو عبارة عن مجلد يُخزن فى الرامات أثناء التشغيل ويحتوى على تفاصيل خاصة بإدارة تشغيل الجهاز. لا تعبث فى هذا المجلد.

مجلد srv يحتوى على الخدمات التى يقدمها النظام. هذا المجلد مفيد فى حالة تشغيل النظام كخادم إلكترونى (web server).

مجلد sys يحتوى على معلومات الـ runtime الخاصة بنواة لينكس (linux kernel). هذا المجلد يعمل بشكل مشابه لـ مجلد run الذى تحدثنا عنه.

مجلد tmp يحتوى على المعلومات والبيانات المؤقتة لكل البرامج التى تعمل حالياً فى الجهاز.

مجلد usr هو مجلد كبير يحتوى على برامج المُستخدم التى كتبها، والمجلدات الموجوده به هى: مجلد bin ويحتوى على برامج المُستخدم، ومجلد sbin ويحتوى على برامج المُستخدم التى تتحكم فى نظام التشغيل، ومجلد local يحتوى على بعض البرامج أيضاً أن يقوم المُستخدم بإنشاءها من الكود المصدرى. أما مجلد src يحتوى على الكود المصدرى للبرامج التى كتبها المُستخدم. ومجلد lib و lib32 تحتوى على المكتبات البرمجية التى يستخدمها المستخدم (المبرمج) فى برامجه. وهناك الكثير من المجلدات كما ترى فى الصورة التالية.

مجلد برامج المُستخدم فى نظام ملفات ومجلدات لينكس

مجلد var يحتوى على المجلدات والملفات التى تكبر فى الحجم بشكل دائم مثل الـ log و cache.

وأخيراً مجلد المنزل home وهو مجلد يحتوى على كل الملفات الخاصة بالمستخدم. يحتوى مجلد المنزل على مجلد خاص لكل مُستخدم مُسجل فى الجهاز. وكل مُستخدم يحتوى على مجلد للموسيقى Music ومجلد للصور Pictures ومجلد للفيديو Videos وهكذا كما ترى فى الصورة التالية.

كل المجلدات الموجودة فى مجلد المنزل فى نظام لينكس

كل مجلد خاص بمُستخدم داخل مجلد المنزل home يحتوى على ملفات مخفية. هذه الملفات المخفية تبدأ بنقطة. ﻷن كل الملفات المخفية تبدأ بنقطة فى نظام ملفات لينكس. ﻹظهار هذه الملفات اضغط على ctrl+h ولإعادة اخفاء الملفات المخفية اضغط على ctrl+h مرة أخرى. هذه الملفات المخفية تحتوى على الإعدادات الخاصه بالمُستخدم مثل تخصيصات البرامج التى ثبتها المُستخدم، والثيمز، والأيقونات،.. وغيرها من الإعدادات والتخصيصات والتغييرات الخاصة بالمُستخدم.

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

لماذا لا يوجد نظام تشغيل تعمل عليه كل البرامج (apk, exe, app) ؟

هذا السؤال يأتى فى عقلنا جميعاً فى بداية دخولنا فى مجال البرمجة والإلكترونيات. لماذا لا يوجد نظام التشغيل الذى تعمل عليه كل البرامج والتطبيقات بلا استثناء؟! ولكن قبل الرد على هذا السؤال الجميل علينا أولاً أن نعرف كيف تعمل البرامج والتطبيقات!


التطبيقات والبرامج هى عبارة عن كود مكتوب بلغة من لغات البرمجة. فى هذه اللغة تستخدم مكتبات موجودة بالفعل فى نظام التشغيل. هذه المكتبات خاصة بواجهة التطبيق والتواصل مع الهادوير. إذن أنت كمبرمج تستخدم معرفتك بلغة البرمجة وتكتب كود يستغل الـ APIs الخاصة بنظام التشغيل لكى تصمم وتكتب الوظائف التى يوفرها برنامجك للمستخدمين.

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

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

هناك الكثير من المحاولات لتثبيت جميع البرامج على نظام تشغيل واحد بدون الحاجه إلى تصميم نظام تشغيل جديد. هذه الطريقة تعتمد على المحاكاه (virtual machines, simulators, emulators) مثل برنامج tencent android emulator فهو عبارة عن محاكى يحتوى على نظام أندرويد بالكامل ويستطيع تشغيل معظم التطبيقات والألعاب الموجودة للأندرويد. مثال آخر، استخدام vmware لتثبيت نظام أوبونتو لينكس داخل vmware المثبت على نظام التشغيل ويندوز. أى أن نظام التشغيل الأساسى هو ويندوز ثم تقوم بتثبيت برنامج vmware وداخل برنامج vmware تثبت نظام أوبونتو، وداخل نظام أوبونتو يُمكنك تنزيل واستخدام برامج لينكس كما تشاء.

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

تخزين انترنت من الواى فاى إلى بيانات الهاتف!!!

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

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

الواى فاى هو عبارة عن الإتصال بالإنترنت وهى شبكة المعلومات الدولية من خلال هذا الراوتر الموجود لديك، والراوتر يتصل بمزود خدمة الإنترنت (شركة الإنترنت التى اشتركت فيها)، وهذه الشركة متصله بشئ معين يُسمى DNS ومهمته توجيه طلبك إلى السيرفر المناسب (الخادم الإلكترونى المناسب). وبذلك تستطيع أن تصل إلى الخادم الذى تريد أن تطلب منه صفحة معينة أو صورة معينة مثلاً.

أما بيانات الهاتف هى عبارة عن اتصال هاتفك ببرج الشبكة التابع للشركة صاحبة شريحة الإتصال. وبرج الشبكة يتصل بشركة الإتصال المتصلة بما يُسمى DNS الذى يوجهك إلى السيرفر المناسب لطلبك.

الفرق بين الواى فاى وبيانات الهاتف أثناء الإتصال بالإنترنت

لذلك لا يمكن تخزين الإنترنت من الواى فاى إلى بيانات الهاتف.. ﻷنه لا يمكن تخزين الإنترنت أصلاً كما تحدثنا فى موضوع سابق.. بعد أن فهمت كيف يعمل الإنترنت وكيف تتصل بالإنترنت فى كل حالة فأنت الآن فهمت لماذا لا يمكن تخزين الإنترنت، ولماذا لا تحويل الواى فاى إلى بيانات الهاتف!!!

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

هل يمكن تخزين الإنترنت؟

لكى نعرف هل الإنترنت يمكن تخزينه أم لا، لابد أن نعرف ما هو الإنترنت. الإنترنت هو إتصال بين جهازك الذى تستخدمه الآن وأجهزة أخرى ضخمة حول العالم. أى أن الإنترنت هو عبارة عن تواصل بين جهازين عبر شبكة من الأسلاك (أو الموجات التى تمر فى الهواء).

عندما تدخل على موقع جوجل مثلاً فإنك تقوم بطلب موقع جوجل، يرد عليك الإنترنت بالموقع المحفوظ على جهاز آخر يُسمى خادم إلكترونى (server). إن لم تن متصل بالإنترنت فلن يصل طلبك إلى السيرفر أصلاً وبذلك لن يرد عليك ﻷنه لم يرى طلبك من الأساس. إذن الإنترنت هو عبارة عن اتصال بين الأجهزة، جهاز يرسل طلب ويرد عليك الجهاز الآخر بـ رد (request and response) كما هو موضح فى الصورة التالية.

كيف يعمل الإنترنت

ولكن هل يمكن تخزين الإنترنت؟

سؤال يأتى فى عقل كل إنسان فى بداية استخدامه للإنترنت. ولمعرفة الإجابة دعونا نعرف ما هى الأشياء التى يمكن تخزينها. يُمكننا تخزين الطاقة مثل شحن الكهرباء فى البطارية واستخدام البطارية ﻹستهلاك هذه الطاقة الكهربائية المخزنة. ويُمكننا تخزين المعلومات والبيانات مثل تنزيل فيديو من على الإنترنت ومشاهدته فى أى وقت. أو تخزين ملفات الـ PDF والـ Word وكل أنواع الملفات الصوتية والمرئية والمقروءة. ولكن الإنترنت هو مجرد تواصل بين الأجهزة يستحيل تخزينه.

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

ولكن يُمكنك أن تحتفظ ببعض الملفات التى تريدها من الإنترنت لكى تشاهدها أو تقرأها بدون إنترنت. هذه الطريقة هى تنزيل الملفات. يُمكنك تنزيل الفيديو الذى تريده من الإنترنت ثم تشاهده بدون إنترنت. يُمكنك تنزيل ملف الـ PDF الذى تريده من الإنترنت لقراءته بدون انترنت.

وهناك طريقة أذكى وأقوى، وهى تنزيل موقع إلكترونى كامل بكل صفحاته. ثم تصفح هذا الموقع بدون انترنت ﻷنه محفوظ لديك على جهازك (لابتوب أو موبايل). هناك برامج تقوم بهذه المهمه الذكية ولكنها محدودة. ﻷنك لن تستطيع أن تحمّل كل المعلومات والمواقع والفيديوهات الموجودة على كل السيرفرات المتصلة بالإنترنت على جهازك الذى به بعض الجيجابايت من المساحة!!!

يُمكنك الإحتفاظ بفيديو أو أكثر من الفيديوهات التى تحتاجها دائماً أو تدرسها. وتحتفظ بموقع أو إثنين من المواقع التى تتصفحها دائماً مثل موقع ويكيبديا مثلاً لكى تتصفحه بدون إنترنت. أو تحتفظ ببعض الكتب الإلكترونية (PDF) والملفات الأخرى لكى تقرأها بدون إنترنت. وهذه هى الإمكانيات التى يُمكن عملها والإستفادة منها.

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

إن كنت تريدنى أن أشرح هذه البرامج التى تساعدك على الإحتفاظ بالمواقع على جهازك (للكمبيوتر أو الموبايل) أكتب لى تعليق وسأقوم بالشرح إن كنت تحتاج لهذا الشرح. وإن أردت متابعة الموضوعات الجديدة اشترك بـ بريدك الإلكترونى من هنا.

البرمجة فى عام 2020

فى هذا الموضوع سأتكلم عن لغات البرمجة وتوقعاتى للمستقبل القريب لعام 2020 و 2021 وما بعدها. فى البداية أريد أن أقوال أنه ليس هناك توقع بزوال لغة معينة. كل اللغات ستكون مُستخدمة. ولكن توقعاتى هى أىّ اللغات سوفر يزيد مستخدميها وتنتشر أكثر مقارنةً باللغات المنافسة فى نفس المنصة أو الـ stack ودعونا نبدأ بأول تغيير.

توقعاتى لمجال برمجة الويب والإنترنت

أعتقد أن المبرمجين سيبدأوا فى استخدام لغة Go بدلاً من NodeJS للسيرفرات وبرمجة الـ back-end. وستظل PHP تستخدم فى المشاريع الصغيرة والمدونات. الـ Front-end سيكون عبارة عن تحويل من التصميم إلى الكود بشكل آلى. وستبدأ Flutter بلغة Dart فى الإستحواذ على نسبة قليلة من المشاريع الصغيرة فى منافسة لغة PHP فى مجال الويب.

لغات البرمجة فى المستقبل

فى المستقبل القريب، سنرى تطبيقات وبرامج قوية ومعقدة مثل الفوتوشوب على منصة الويب كتطبيق ويب (موقع) بإستخدام WebAssembly وغالباً ستستخدم لغة Rust أو لغة Go لكتابة الكود البرمجى لهذا التطبيقات.

توقعاتى لبرمجة الأنظمة وتعريفات الأجهزة

وسيبدأ المبرمجين فى استخدام لغة Rust بدلاً من لغة C++ للبرمجيات الأنظمة وتعريفات الأجهزة (device drivers). لغة Rust لغة قوية جداً وتقترب من سرعة لغة C++ حسب هذا التقييم على موقع دبيان الشهير. بالإضافة إلى معدلات الأمان العالية الموجودة بها مثل أنها تساعدك فى تجنب الـ data race وغيرها من المشكلات التى تواجه البرامج الكبيره والمعقدة المكتوبة بلغة سى بلس بلس.

توقعاتى لبرمجة الهواتف الذكية

سيبدأ المبرمجين فى استخدام Flutter بلغة Dart بدلاً من جافا وكوتلن للأندرويد، وسويفت و Obj-C للآيفون. ولكن ستظل التطبيقات المعقدة تُكتب باللغات الأساسية للمنصات وهم سويفت للآيفون، وكوتلن للأندرويد.

توقعاتى للذكاء الإصطناعى

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

هذه كانت توقعاتى لما سيحدث فى المستقبل القريب بناءاً على ملاحظاتى على الواقع الحالى. أراكم فى موضوع آخر على موقع أبانوب حنا للبرمجيات وإن أردت متابعة الموضوعات الجديدة اشترك بـ بريدك الإلكترونى من هنا.

علامات تدل على أنك مبرمج مبتدئ

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

1. كتابة الكثير من الأكواد ودفعها مرةً واحدة إلى برنامج إدارة المشاريع (commit it to Git)

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

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

2. تضييع الوقت فى تصميم واجهة معقدة بلا داعى

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

3. اضاعة الوقت فى المُسليات الوقتية مثل فيسبوك وreddit وغيرها من منصات التواصل الإجتماعى

حاول أن تركز فى APM وهى Actions Per Minute أو الأفعال لكل دقيقة. أى كم عدد الأشياء المفيدة التى تفعلها كل دقيقة أثناء عملك. هل تقوم بكتابة شرح للكود، أو تخطيط لفكرة عمل الكود، هل تبحث عن مكتبات لإستخدامها، هل تكتب كود، هل تُحسن من سرعة كود مكتوب من قبل؟!! أم أنك تقضّى الساعات على الفيسبوك وReddit ويوتيوب وتويتر!!

4. التعالى وعدم تقبل النقد

عندما تقوم بتقديم كود فى شكل commit للـ tech lead حاول أن تفهم النقد الذى يقوله لك وتُحسّن من نفسك. لا تحاول الدفاع عن الكود الذى كتبته بلا داعى. قم فقط بتوضيح الكود ولا تعتبر نقد الكود هو نقد لك شخصياً. ﻷنك لن تتطور وتتحسن إن لم تُدرك مشاكلك أولاً ثم طريقة حلها.

5. تعقيد الكود بدون داعى

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

6. الإعتماد على النفس بشكل مطلق

إن كنت لا تفهم المشكلة حاول أن تبحث على جوجل، وستاك أوفر فلو (StackOverflow)، وإسأل مديرك (Tech Lead أو Team Leader) لكى يساعدك فى فهم المشكلة وتوجيهك فى الطريق الصحيح لحل المشكلة. لا تضيع أيام وأسابيع فى مشكلة أنت لا تفهمها ولا تعرف لها حلاً.

إنتهينا من الحديث عن علامات المبرمج المبتدئ. أتمنى لكم التقدم والتطور الدائم إن شاء الله. وإن أردت متابعة الموضوعات الجديدة على موقع أبانوب حنا للبرمجيات اشترك بـ بريدك الإلكترونى من هنا.

أفضل المُنتجات هى المبنية على رأى قوى ومحدد

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

المُنتجات والخدمات المبنية على رؤية محددة، وفلسفة واضحة، ورأى معين، وقواعد مُحكمة تُسمى بالإنجليزى "Highly Opinionated Products" وهذا النوع من المُنتجات والخدمات إما أن تحبه أو تكرهه. إن اتفقت مع المبادئ المبنى عليها ستحبه جداً، وإن اختلفت مع المبادئ المبنى عليها ستكرهه جداً.

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

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

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

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

هناك الكثير من الأمثلة على التطبيقات المبنية على رؤية وفلسفة معينة مثل هاتف آيفون، وآيباد، وماك، وفريم وورك آنجيولر (Angular Framework)، وأوبونتو لينكس، وإلمنترى لينكس، ويونكس،.. وغيرها من المنتجات والخدمات المبنية بفلسفة ورؤية ورأى واضح.

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

عندما أريد شراء شئ معين، أقوم بالبحث عن كل المُنتجات المبنية على رأى وفلسفة ورؤية محدده وأناقش نفسى وأفكر هل أنا أتفق مع هذا الرأى فعلاً أم لا؟ وعندما أجد مُنتج أو خدمة أتفق مع الرؤية المبنى عليها، أقوم بشراءه فوراً ﻷنه حتماً سيعجبنى جداً وسأرتاح ﻹستخدام هذا المنتج أو هذه الخدمة بشكل عام.

أتمنى أن يعجبك هذا الموقع والفلسفة المبنى عليها وتستمتع بقراءة هذه الموضوعات والمقالات الشيقة التى أشاركها يومياً على موقع أبانوب حنا للبرمجيات. فإن أردت الوصول لنا بسرعة أكتب على جوجل استفسارك ثم أكتب "موقع أبانوب" مثل "أفضل هاتف فى فئة 5000 جنية موقع ابانوب". وإن أردت متابعة الموضوعات الجديدة اشترك بـ بريدك الإلكترونى من هنا لكى تصلك كل الموضوعات على إيميلك مباشرةً.

مقارنة بين Python و Go

الأداء والسرعة (Performance)

لغة جو أسرع من لغة بايثون وأداءها أفضل فى كل الحالات كما ترى فى المقارنة هنا. هذا التفوق فى لغة جو إلى كثير من العوامل الموجودة فى اللغة ومنها الـ concurrency وهو إمكانية حدوث أكثر من عملية فى نفس الوقت (بالتبادل أو بالتوازى).

حجم المشروع البرمجى (Scalability)

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

التنفيذ (Execution)

لغة جو هى لغة statically typed أى أن المتغيرات فى اللغة محدده من وقت كتابة البرنامج، وتستخدم كومبيلر (compiler).

أما لغة بايثون هى لغة dynamically typed وتستخدم مُفسّر (Interpreter). وكون لغة Python لغة dynamically typed يجعلها لغة كتابة سهلة ولكن يُمكن أن يُخطئ المُفسر فى معرفة نوع المتغير (ﻷنك لا تحدده أنت) وتنشأ عن ذلك الكثير من الأخطاء. ويكون الأمر صعباً فى البرامج الضخمة.

المكتبات البرمجية (Libraries)

لغة بايثون لديها الكثير جداً من المكتبات مثل numpy و scipy و pandas والكثير جداً جداً من مكتبات البرمجة التى تجعل التطوير سهل وجميل لك. ﻷنك تختار المكتبات وتقوم بإستخدامها فى برامجك.

أما لغة جو بها الكثير من المكتبات البرمجية ولكن لا تصل إلى عدد المكتبات البرمجية الضخم المتاح للغة بايثون. من أمثلة المكتبات البرمجية الموجودة للغة جو: http.go و crypto.go و sql.go وغيرها الكثير من المكتبات الجميلة.

سهولة قراءة الكود (Readability)

سهولة قراءة الكود البرمجى هى صفحة هامة جداً فى لغات البرمجة ﻷننا نقرأ الكود مئات المرات ونكتبة مرة واحدة. بالإضافة إلى أن سهولة قراءة الكود البرمجى تجعل العمل فى فريق من المبرمجين أمر أسهل بكثير من التطوير بلغة صعبة القراءة فى فريق عمل.

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

سهولة اختبار البرامج (Testing)

لغة جو تحتوى على طرق سهلة وقوية ﻹختبار قوة ودقة الكود وصحة النتائج وسرعتها مقارنة بلغة بايثون.

نشر البرامج مغلقة المصدر (Anti-Reverse Engineering)

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

خُلاصة المقارنة بين لغة جو، ولغة بايثون:

1. الأداء والسرعة: لغة جو - لغة بايثون
2. حجم المشروع البرمجى والقدرة على التوسع: لغة جو - لغة بايثون
3. تنفيذ الكود البرمجى: لغة جو - لغة بايثون
4. المكتبات البرمجية: لغة جو - لغة بايثون
5. سهولة قراءة الكود: لغة جو - لغة بايثون
6. سهولة اختبار البرامج: لغة جو - لغة بايثون
7. نشر البرامج مغلقة المصدر: لغة جو - لغة بايثون

انتيهنا من المقارنة بين لغة جو (Golang) ولغة بايثون (Python). للوصول لنا بسرعة أكتب استفسارك على جوجل ثم أكتب "موقع أبانوب" مثل "مقارنة بين لغة جافا وكوتلن موقع ابانوب".

اقرأ أيضاً