2020年2月2日日曜日

إذا لم يحل Python4 مشكلة أقفال المترجم العالمي. 2020.02.02 الحل الحالي. ماساهيرو إيشيزوكا (الرئيس التنفيذي)

اعتبارًا من 2020.02.02 ،
Python 2 & 3 لا يحل مشكلة أقفال المترجم العالمي.

كبديل ،
استخدم Go lang لتطوير مواقع الويب والإنترانت وتطبيقات LINE ، إلخ.
أعتقد أن تطوير الذكاء الاصطناعى والتعلم الآلي يستخدم Python ، و Go lang يحل المشكلة باستخدام موقع ويب + AI (مكتبة API لـ Go lang) + AI (التعلم الآلي) DATA.

المعلومات ذات الصلة:

وداعا بيثون ، مرحبا الذهاب

أقتبس من:

ملخّص عن الخير أو النقص في Go مقارنةً ببيثون للكاتب الذي بدأ مؤخرًا في كتابة مهام في Go ، والتي كانت تُكتب سابقًا في Python.

النص الأصلي
وداعا بيثون.
طالب ترجمة
D98ee74ffe0fafbdc83b23907dda3665 Df3136f800e7ed9931ed5f9f1afad935
مترجم
Df3136f800e7ed9931ed5f9f1afad935 mtsk
مراجع الترجمة
D98ee74ffe0fafbdc83b23907dda3665 doublemarket
تقرير الترجمة للمؤلف الأصلي
تم التعديل قبل 502 يومًا مع التعليق على النص الأصلي
 




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

جيد أن يكون المترجم

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

سرعة التنمية

عيب لغة برنامج التحويل البرمجي هو أن سرعة التطوير بطيئة. هذا ينطبق بشكل خاص على C / C ++ و Java.
Go بسيط بما فيه الكفاية عندما تعلم أن سرعة التطوير يتم الاحتفاظ بها إلى الحد الأدنى. ما زلت أسرع بيثون ، لكن إنتاجية لغة الذهاب حوالي 85 ٪ مقارنة بالكتابة في بيثون.
85 ٪ ليس سيئا. ذلك لأن استخدام برنامج التحويل البرمجي يقلل بدرجة كبيرة من الأخطاء الطفيفة.

ميزة في المعالجة المتوازية

كما تعلم ، تم إنشاء Go في الأصل للمعالجة المتوازية.
يحتاج فريقنا غالبًا إلى برامج معالجة متوازية لمعالجة كميات كبيرة من البيانات في S3 وقواعد البيانات.
إذا كانت المهمة مكثفة IO ، يمكن لمؤشرات Python المساعدة. ومع ذلك ، بالنسبة للمهام كثيفة وحدة المعالجة المركزية ، فإن Python صعب من حيث أقفال المترجم العالمي.
أنا أستمتع بالطريقة البسيطة التي تعمل بها مؤشرات الترابط Go دون أي جهد خاص. هل واجهت أي مشاكل عند استخدام Ctrl-C مع Python متعدد مؤشرات الترابط؟

سهولة النشر

أحب العمل مع ثنائيات واحدة. أنا في كثير من الأحيان تشغيل التعليمات البرمجية على EC2. هذا لجعل مسار الاتصال بين البرنامج النصي و S3 / قاعدة البيانات أقرب. إذا قمت بذلك في Python ، فأنت بحاجة إلى التأكد من أن جميع الحزم المطلوبة مثبتة على الجهاز البعيد ، ولا تتعارض مع أي شيء تم تثبيته بواسطة الزملاء الآخرين.
Virtualenv يحل معظم هذه المشكلة ، ولكن لغة Go أسهل.
في معظم الأحيان ، تحتاج فقط إلى ترجمة رمز google الخاص بك لنظام التشغيل Linux ، ونسخه إلى جهاز بعيد وتشغيله. وترد جميع التبعيات في ثنائي.

نمط متناسق (التنسيق)

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

ميزة في الأدوات

مثال واحد على ذلك هو فقط gofmt . جميع امتدادات Go الجيدة متوفرة في أي من المحررين الذين أستخدمهم (VSCode ، vim ، Sublime Text). هذه هي ميزة أدوات توفير لغة Go كميزة قياسية.
نتيجة لهذه الميزة ، يمكنك الحصول على intellisense مثل جافا دون استخدام IDE. في بيثون ، لم أتناول هذه الميزة من قبل.

جزء مفقود

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

لغة الذهاب هي حازمة جدا

لغة Go هي اللغة التي طلبتها ، حتى بين اللغات التي كتبت حتى الآن. gofmt الأمر بإجبار علامات التبويب بدلاً من المسافات (على افتراض أنك تستخدم gofmt ) ، واستخدام هياكل دليل محددة ، ورمز البناء في متغير البيئة GOPATH. لا يتم تغيير العديد من ميزات لغة Go هذه بسهولة.
أحد أسباب انخفاض تكلفة تعلم Go هو أنه لا يمكن تغيير هذه الميزات. إذا كنت لا ترغب في جعل الأسماء التي تبدأ بأحرف كبيرة (الدالات والمتغيرات وما إلى ذلك) عامة ، فهي ليست جيدة جدًا. لحسن الحظ ، هذه ليست مزعجة بالنسبة لي ، لكنني فهمت أي شيء آخر.
بيثون هو أكثر مرونة.

بعض الأشياء التي تقدمها المكتبة

ليس من العدل مقارنة بيثون وجو في هذا الصدد. الذهاب هو الأحدث بكثير. لكن عندما أجد ميزة لا تدعمها Go ، فأنا في حيرة من أمري. ستكون أكثر تشويشًا عندما يتم نشر التعليمات البرمجية التي يجب أن تكون وظيفة مضمنة في StackOverflow ، ويتصرف الجميع مثل نسخ ولصق هذه التعليمة البرمجية في مشروعك الخاص.
مثالان (تلك التي تتبادر إلى الذهن في السنوات الأخيرة):
  • فرز الشرائح (تم توفيره لحسن الحظ منذ Go1.8)
  • Math.round يمكنه فقط التعامل مع الأعداد الصحيحة وليس المتغيرات float (على سبيل المثال ، إذا كنت تريد التقريب إلى .5). وقبل Go1.10 ، لم يكن هناك Math.round.
نعم ، يرجع السبب في بعض هذه العوامل إلى الافتقار إلى الأدوية العامة في Go ، وكذلك لأن مطوري Go يتبعون استراتيجية لإضافة فقط ما هو ضروري للغاية للمكتبة القياسية.
أنا أفهم النقطتين أعلاه. ومع ذلك ، إذا واجهت ميزة صغيرة عليك تنفيذها بنفسك ، فهذا أمر مزعج.
آمل أن تنخفض هذه الإزعاجات مع تطور لغة Go.

Yubinbango197-0828
5-3-11 أكيدوم ، أكيرونو شي ، طوكيو
5-3-11 Akiru Akiruno-City Tokyo Japan
الرئيس التنفيذي لشركة عون
ماساهيرو إيشيزوكا
(ماشاريو إيشيزوكا)
هاتف: 042-559-8638
iPhone: 070-3861-5011
مكالمة هاتفية مجانية

+81 50 5532 0868

سكايب
العيش: cloud9slack
http://aon.tokyo
http://aon.co.jp تحت الإعداد
cloud9slack@gmail.com

0 コメント:

コメントを投稿