اعتبارًا من 2020.02.02 ،
Python 2 & 3 لا يحل مشكلة أقفال المترجم العالمي.
كبديل ،
استخدم Go lang لتطوير مواقع الويب والإنترانت وتطبيقات LINE ، إلخ.
أعتقد أن تطوير الذكاء الاصطناعى والتعلم الآلي يستخدم Python ، و Go lang يحل المشكلة باستخدام موقع ويب + AI (مكتبة API لـ Go lang) + AI (التعلم الآلي) DATA.
المعلومات ذات الصلة:
Python 2 & 3 لا يحل مشكلة أقفال المترجم العالمي.
كبديل ،
استخدم Go lang لتطوير مواقع الويب والإنترانت وتطبيقات LINE ، إلخ.
أعتقد أن تطوير الذكاء الاصطناعى والتعلم الآلي يستخدم Python ، و Go lang يحل المشكلة باستخدام موقع ويب + AI (مكتبة API لـ Go lang) + AI (التعلم الآلي) DATA.
المعلومات ذات الصلة:
وداعا بيثون ، مرحبا الذهاب
أقتبس من:
ملخّص عن الخير أو النقص في Go مقارنةً ببيثون للكاتب الذي بدأ مؤخرًا في كتابة مهام في Go ، والتي كانت تُكتب سابقًا في Python.
- [ بيثون ]
- [ اذهب (غولانغ) ]
أستخدم لغة 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 件のコメント:
コメントを投稿