هل تأخذ بيرل وماذا حصلت عليك؟ [مغلق

StackOverflow https://stackoverflow.com/questions/392789

  •  23-08-2019
  •  | 
  •  

سؤال

وصلت إلى بيرل منذ سنوات ووجدها دائما لغة تعبيرية وتعبيرية للعمل معها.

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

إذا كنت جديدا على بيرل، فما الذي حصل عليك فيه؟

هل كانت مفيدة؟

المحلول

مع PERL (والقوة التعبيرية وراء TMTOWTDI)، تصبح البرمجة مهمة إبداعية. أستطيع أن أكتب if($expr) { $statement; } إذا كنت أخطط لوجود العديد من البيانات الأخرى، أو أستطيع أن أكتب $statement if $expr; إذا كان ذلك أكثر منطقية (على سبيل المثال، فأنا مولعا بالكتابة:

sub doSomething {
    my($toObject, $argument) = @_;

    die "No object specified" unless defined($toObject);
    die "Object invalid: $toObject" unless $toObject->ISA('Example');

    # Do stuff
}

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

مع لغات البرمجة الأخرى، في نهاية المطاف، يجب أن أفكر في طريقي من خلال طبقات التجريد (كيف سيكون هذا Map أعطني Collectionمن أجل Iteratorيمكنك استخدامها إلى ... وما إلى ذلك). مع بيرل، أنا عادة مستوى تجريد واحد فقط فوق بيرل الأساسي. على سبيل المثال، DBI سيعطيني نتائج قاعدة البيانات كفرشات عادية، كل يوم، قوائم وتجزح، لذلك كل ما أعرفه عن هياكل البيانات البسيطة هذه تحمل على كل مهمة أضعها DBI إلى (هياكل البيانات المعقدة؟ هذا ما هو postgresql ل!).

لقد كنت أستخدم Perl بدوام كامل لمدة عام تقريبا، لكن هذه هي الفوز الكبير بالنسبة لي، والسبب في ذهبت لأول مرة على بيرل بعد عام يعاني من طراز مجموعات Java 1.4 ( لا تسأل). لغات البرمجة الأخرى تجعلني أشعر أنني وضعت معا لغز بانوراما، كما تقوم بتشفير جميع الوحدات والحزم فقط الحق; ؛ بيرل يشعر وكأنك مربع مليء Legos، مع بعض الطوب "الخاص" (مثل DBI, CGI.pm و Test::*) ألقيت للقياس الجيد. هناك الكثير من الطرق المختلفة لحل أي مشكلة، وتتيح لك بيرل تجربة أي منها تريد، بأي طريقة تريدها.

نصائح أخرى

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

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

اكتشفت السلوكيات إشكالية في PHP التي تحدت المنطق والتفكير (مثل الأسرة Array_Merge_ReCursive)، وظائف المكتشفة التي كانت غير موثقة في كيفية استخدامها، وعندما أبلغت عن خطأ في الوظائف، تم وضع علامة علة بلدي باسم "وهمية" وأنا كان من المتوقع أن تكون نفسية.

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

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

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

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

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

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

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

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

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

بيرل هو مجتمعها، وهو سبب استخدامه على مستوى اجتماعي وعملية. (انظر CPAN و perlmonks، والتي من المحتمل أن تلهم ذلك.)

هناك الكثير من الحرية عند الترميز في بيرل؛ يمكنك كتابة بعض الخارقة غير القابلة للقراءة غير المقريبة الأشرار، لكنها لا تستغرق وقتا طويلا بمجرد الشعور باللغة (وتعلمت كيفية استخدام Perltidy :-)) قبل أن تدرك أن رمز PERL مكتوب جيدا يمكنه البحث جميلة.

انه مشوق؛ انتهى بي الأمر كمبرمج بيرل بدوام كامل بعد تعلمه لوظيفة Sysadmin من النوع في الكلية؛ والآن إنها أقوى مهارة. سألتزم بالبيرل لفترة من الوقت لأنه حتى الآن كانت اللغة تنوعا معي. أكتب الكثير من البرامج الأنظمة في بيرل، وقررت التقاط برامج الويب للمتعة، وكانت محفز موجودة في انتظار لي. هل أريد أن أجرب نموذج لغة جديد؟ ربما دعم بيرل ذلك. على النقيض من ذلك، عندما كنت ترميز في PHP لفترة من الوقت، شعرت على الفور كأنني كنت ضغطا ضد سقف زجاجي.

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

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

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

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

بول.

بناء جملة بسيطة وقدرات نصية قوية لأنظمة Win32 و UNIX، و Regex قوية تماما!

أنا بيك آي بيرل في وظيفتي الأولى حيث اضطررت إلى كتابة الكثير من النصي الأتمتة للمهندسين الكهربائيين ل Datalogs الألغام وتنسيقها إلى Excel وأحيانا تتعامل مع SQL Server أيضا. مع بيرل، يمكن أن أحصل عادة على شيء ما بسرعة، لذلك كل شيء جيد في أرض التصنيع. : P.

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

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

ليس هذا النوع من العمل لا يمكن القيام به مع العديد من الأدوات الأخرى، لكنني بالتأكيد أود أن أوصى بيرل للعمل المرتبط بالبناء.

ما أحضرني إلى بيرل كان عندما رأيت DBI. وأدركت أنه يمكنني كتابة برامج ESQL / C التي كنت أكتبها في ذلك الوقت في الساعة الخامسة.

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

print "10" + 5;

هو خطأ من النوع بدلا من 15.

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

لا يزال بيرل لديه CPAN، والتي لا يمكن أن تتطابق روبي (رغم أن روبي لديه الكثير من المكتبات المفيدة أيضا).

اعتبرت تعلم بيرل العام الماضي.

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

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

أيضا، لاري حائط يخيفني.

لحالتي لم يكن بيرل هو الاختيار الصحيح وهذا هو السبب.

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

السبب؟ انها في الغالب لغة الكتابة فقط. الذهاب فوق حل 100 خط جعلني حذر من الرمز الخاص بي، وهو بالتأكيد ليس نتيجة جيدة. مع لغات أخرى أن الشريط أعلى بكثير (ربما 1000 أو 10000 خطوط).

لا أرى أي سبب للذهاب إلى بيرل في مشاريع جديدة، للمستخدمين الجدد، في -Soon- 2009.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top