لماذا أستخدم كائن باسكال ؟ ج1
#1
لماذا أستخدم كائن باسكال






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















تم تطوير Pascal في البداية في عام 1969 من قبل الدكتور نيكلاوس ويرث على ETH من زيوريخ. تم استخدامه كلغة تدريس وكذلك لغة لتطبيقات الأعمال. مع ظهور نظام التشغيل Mac OS الكلاسيكي ، كانت Pascal هي اللغة المفضلة التي نشرتها شركة Apple لتطوير التطبيقات بشكل كبير. كمثال ، تم إنشاء الإصدار الأول من Photoshop باستخدام Pascal.1















تم توحيد Pascal كمعيار ISO في أوائل التسعينيات. ولكن على عكس اللغات الأخرى ، كانت هناك لهجات مختلفة ومقاطع لباسكال منذ البداية. كانت Borlands Turbo Pascal2 واحدة من أكثر الإصدارات المفضلة ، والتي جعلت من Pascal واحدة من لغات البرمجة الأكثر شهرة وانتشارًا في الثمانينات وأوائل التسعينيات. مع مرور الوقت ، تمت إضافة بعض الإضافات الموجهة للكائنات إلى اللغة من قِبل Apple وبعد ذلك بواسطة Borland ، والتي تطورت إلى ما نسميه الآن كائن Pascal.3















يوجد اليوم تطبيقان رئيسيان: دلفي ، خليفة توربو باسكال الرسمي ، وفري باسكال.















دلفي هي بيئة تطوير التطبيقات السريعة (RAD) ، والتي تتكون من لغة Object Pascal ، ومترجم قوي وسريع ، ومكتبة تشغيل كبيرة (RTL) ومصمم لواجهات المستخدم الرسومية متعددة المنصات (GUI). يتم تشغيل Delphi فقط على نظام Windows ، ولكن يمكنه تجميع برامج GNU / Linux و MacOS و Windows و iOS و Android أيضًا.











Free Pascal هو تطبيق مجاني مفتوح المصدر للغة Object Pascal. وهي تتألف من اللغة والمترجم ومكتبة وقت التشغيل - ولكنها لا تشمل أدوات RAD التي جعلت دلفي مشهورة. ولكن بفضل بعض عشاق Free Pascal ، تم تطوير Lazarus IDE كبيئة RAD قوية خاصة بالنسبة لـ Free Pascal. كلاهما ، Free Pascal و Lazarus ، مترابطان للغاية ويمكنهما تشغيل أنظمة مختلفة وتجميعها ، من بينها GNU / Linux و Windows و MacOS و BSD .







ولكن بجانب هذه الرحلة التاريخية ، ما هي الأسباب التي تجعلني أستخدم Free Pascal في مشاريعي الشخصية؟







التركيز باسكال على الأنواع







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













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













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















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







باسكال لديه الدعم الكامل ل كائن OOP







يوفر لك Object Pascal جميع الأدوات التي تحتاجها للبرمجة الحديثة للكائنات (OOP). على الرغم من أن اللغة ليست موجهة نحو الكائن تمامًا بهذا المعنى مثل Smalltalk أو Ruby ، حيث حتى أنواع البيانات الأساسية هي حالات للفئات ، ستجد جميع المفاهيم التي تحدد OOP في لغة Object Pascal: التغليف والميراث وتعدد الأشكال.















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















واجهات هي أيضا جزء من كائن باسكال وكذلك استثناءات. يمكنك استخدام الاستثناءات القياسية المضمنة ، ولكن لديك بالطبع حرية تحديد الاستثناءات الخاصة بك. يمكن مقارنة المساعدين في الفصل مع أساليب الإرشاد في سمات C # أو Smalltalks أو PHPs (وإن لم تكن هي نفسها بالضبط) وتتيح لك إضافة طرق إلى الفئات الموجودة دون الحاجة إلى اشتقاق فصل جديد.















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















للحصول على نظرة عامة متعمقة على جميع ميزات OOP الحديثة ، أوصي بمقال ممتاز كتبه Michalis Kamburelis ، والذي يسمى الكائن الحديث باسكال مقدمة للمبرمجين

باسكال هي وحدات



يدعم Pascal البرمجة بطريقة معيارية. ما يسمى الحزم أو الوحدات النمطية بلغات أخرى مثل Java أو JavaScript ، يسمى وحدة في Pascal.



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



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



باسكال سريع



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







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



باسكال مطول



ربما تكون هذه هي الحقيقة التي يشعر بها معظم المطورين بالضيق: عدم وجود دعامات وصياغة اللغة المطوَّلة للغاية. كمثال ، بدلاً من فتح وإغلاق المشابك ، يستخدم Pascal الكلمات الأساسية لبداية ونهاية Begin End للكتل. الكلمة الأساسية if مكملة بالكلمة ثم. كما ترون ، يمكن قراءة بناء الجملة بالكامل مثل اللغة الإنجليزية البسيطة. إذا بدأت في البكاء الآن ، فعليك أن تفكر في سؤال مهم واحد: ما هو الأهم؟ القدرة على بناء جملة قصيرة لكتابة التعليمات البرمجية بسرعة أو إمكانية قراءة وفهم التعليمات البرمجية التي كتبها مطورين آخرين أو حتى قبل سنة واحدة؟ أنا أؤيد الحقيقة الثانية وأنا أستمتع حقًا بهذا الفعل.



باسكال لديه وثائق جيدة



اللغة التي لا تحتوي على وثائق جيدة هي نصف القيمة فقط. قام الفريق وراء Free Pascal بعمل جيد جدًا. يمكنك تصفح وثائق اللغة بأكملها بالإضافة إلى الوثائق المتعلقة بالمترجم نفسه ، مكتبة وقت التشغيل (RTL) ، مكتبة المكونات المجانية (FCL) ومكتبة لازاروس للمكونات (LCL) 6. بالإضافة إلى ذلك ، ستجد العديد من الأمثلة في Free Pascal Wiki7 ، ولكن هذا يأخذنا إلى حقيقة أن ...

باسكال لديه مجتمع كبير



إلى جانب الويكي الرسمي ، يوجد أيضًا منتدى رسمي 8 حيث سيجيب مستخدمو Free Pascal و Lazarus على أسئلتك. إذا كنت نشطًا على Google+ ، فيمكنك إلقاء نظرة على +9 مجانًا Free Pascal / Lazarus IDE Community9. يوجد العديد من المؤتمرات ذات الصلة بالكائن Pascal بالإضافة إلى بعض الاجتماعات المحلية المجانية لـ Pascal و Lazarus. ومع Blaise Pascal Magazine10 ستجد منشورًا منتظمًا يقدم مجموعة واسعة من المقالات حول Delphi و Free Pascal و Lazarus و Object Pascal بشكل عام.



استنتاج



كائن باسكال حقا يستحق نظرة. لا تدعك تثبط من قِبل أشخاص يخبرونك أن Pascal قديم. بالتأكيد لا! هناك العديد من المشاريع الرائعة التي تثبت مدى قوة اللغة: من Lazarus IDE نفسها إلى محركات الألعاب ثلاثية الأبعاد عالية الأداء مثل Castle Game Engine11 ، والذي يجمع ألعابك لنظامي Android و iOS ، أيضًا. إذا كنت مهتمًا بمسار اللغات الرئيسية ، فقم بإلقاء نظرة على بعض الموارد التي ذكرتها. أو ببساطة قم بتثبيت Free Pascal و Lazarus وجرب اللغة بنفسك!



http://www.computerhistory.org/atchm/adobe-photoshop-source-code [return]



  1. https://en.m.wikipedia.org/wiki/Turbo_Pascal [return]
  2. You can read more about the history of Pascal in the Free Pascal Wiki [return]
  3. http://castle-engine.io/modern_pascal_introduction.html [return]
  4. programming language performance benchmark at The Computer Language Benchmarks Game [return]
  5. http://www.freepascal.org/docs.var [return]
  6. http://wiki.freepascal.org [return]
  7. https://forum.lazarus.freepascal.org [return]
  8. https://plus.google.com/communities/114860965042324270757 [return]
  9. http://www.blaisepascal.eu [return]
  10. http://castle-engine.io [return]


الترجمة بواسطة قوقل مع بعض التنقيح



الربط الأصلي للموضوع على موقع github



https://dubst3pp4.github.io/post/2017-10-03-why-i-use-object-pascal/
[-] كل من 2 users say قال شكرا ل delphi17 على المشاركة المفيدة
  • أبو معاذ, h-farid
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم