การใช้งาน Python ของ Google อย่างหนักมันเป็นเรื่องของรสนิยมหรือมันทำให้พวกเขาได้เปรียบในการแข่งขันหรือไม่?
การใช้งาน Python ของ Google อย่างหนักมันเป็นเรื่องของรสนิยมหรือมันทำให้พวกเขาได้เปรียบในการแข่งขันหรือไม่?
คำตอบ:
ฉันไม่สามารถให้คำตอบที่ชัดเจนได้จริงๆเพราะเมื่อตอนที่ฉันสัมภาษณ์ที่ Google ในปี 2004 Python ประสบความสำเร็จในการใช้งาน Google อยู่แล้ว
เห็นได้ชัดว่ามีคำอธิบายที่น่าสนใจอย่างหนึ่งที่ฉันสามารถปฏิเสธได้อย่างแน่นอน: ไม่ใช่ว่า Google ใช้ Python เพราะมันใช้ Pythonistas ที่โดดเด่นจำนวนมาก - แต่ชาว Google ที่มีชื่อเสียง "Pythonista" ส่วนใหญ่เข้าร่วมกับ Google อย่างน้อยในส่วนหนึ่ง ที่นั่น (ข้อยกเว้นที่เป็นไปได้ ได้แก่ Peter Norvig และ Jeremy Hylton แต่ในอดีตทางเลือกของ Python ของ Google นั้นมีการคาดการณ์ไว้แม้กระทั่งก่อนหน้า)
นั่นเป็นสาเหตุที่ทำให้ฉันสนใจเป็นครั้งแรก (ผู้จัดพิมพ์ของฉันแจ้งให้ฉันทราบเกี่ยวกับหนังสือจำนวนมากที่ Google ซื้อในตอนแรกฉันคิดว่ามันเป็นโอกาสที่ดีในการขายบริการให้คำปรึกษาอิสระของฉัน ... ; - ) วิธีการที่ฉันสามารถโน้มน้าวใจกุยโด้ให้เข้าร่วมกับเราและฉันเชื่อว่าเป็นส่วนหนึ่งของแรงจูงใจสำหรับ Pythonistas เช่น Greg Stein, Wesley Chun, Fredrik Lundh, Thomas Wouters, Collin Winters, Jeffrey Yasskin, ...
ทุกอย่างเริ่มต้นขึ้นฉันเชื่อว่าเพราะ Googler แรกสุด (Sergey, Larry, Craig, ... ) ได้ทำการตัดสินใจทางวิศวกรรมที่ดี: "Python ที่เราสามารถทำได้, C ++ ที่เราต้อง" - พวกเขาใช้ (เซตย่อยของ) C ++ สำหรับส่วนต่าง ๆ ของซอฟต์แวร์สแต็กที่เวลาแฝงที่ต่ำมากและ / หรือการควบคุมหน่วยความจำอย่างเข้มงวดนั้นมีความสำคัญอย่างยิ่งและ Python ช่วยให้สามารถจัดส่งและบำรุงรักษาโปรแกรมได้รวดเร็วยิ่งขึ้นสำหรับชิ้นส่วนอื่น ๆ ในช่วงปลายทศวรรษที่ 90 ตัวเลือกสำหรับบทบาทหลังนั้นเป็นหลักระหว่าง Python และ Perl: ภาษาสคริปต์อื่น ๆ อาจไม่ถูกต้อง (เช่นฉันไม่คิดว่า Ruby เป็นตัวอย่างเช่น) หรือมีปัญหาและข้อ จำกัด อื่น ๆ Perl เป็นผู้ใหญ่มากขึ้น (โดยเฉพาะอย่างยิ่งในแง่ของระบบนิเวศของ add-on ที่มีอยู่ผ่านทาง CPAN) แต่ Python นั้นสามารถอ่านได้และบำรุงรักษาได้มากกว่าและการเชื่อมต่อกับไลบรารี C ++ (ผ่าน SWIG) นั้นง่ายกว่า
Java มาในภายหลัง, ครอบคลุมช่องกลาง - และอีกไม่นาน Go Go ได้รับการพัฒนา (แม้ว่าฉันจะไม่เชื่อว่ามีงานผลิตจำนวนมากอยู่ในนั้น ภาษาเฉพาะบางภาษาเช่นsawzallยังมีการผสมผสานสำหรับงานเฉพาะอย่างมากและแน่นอนว่าจาวาสคริปต์นั้นมีความสำคัญอย่างมากสำหรับงานด้านเบราว์เซอร์
ภาษาอื่น ๆ รวมถึงภาษาที่ Greg พูดถึงในปี 06 นั้นเป็น "ชนิดของอุบัติเหตุ" หรือใช้สำหรับงานเฉพาะอื่น ๆ (เช่น Objective C สำหรับลูกค้าบน iPhone หรือ Mac) - เช่นเมื่อ Google จ้างผู้ดูแลระบบคนแรก พนักงานเหล่านั้นย่อมมาพร้อมกับความชำนาญอย่างมากของ Perl และ Bash และมักใช้ภาษาใดภาษาหนึ่งในการพัฒนาระบบภายในที่ซับซ้อน การบันทึกใหม่ใน Python (เพื่อการปรับใช้และการบำรุงรักษาที่ง่ายขึ้น) มักจะเกิดขึ้น อื่น ๆ (เช่น C #) อาจมีการผสมชั่วคราวเนื่องจากการเข้าซื้อกิจการ แต่อีกครั้งการบันทึกใน "ภาษาหลักของ Google" หนึ่งครั้งนั้นมีความสำคัญค่อนข้างสูง (ในกรณีของ C # โดยทั่วไปการบันทึกจะเป็นส่วนใหญ่ใน Java เนื่องจากทั้งสองภาษากล่าวถึงพื้นที่ที่คล้ายกันในแง่ของระดับความเป็นนามธรรม)
ผมยังไม่ได้อ่านบทความทั้งหมดและผมไม่ทราบว่ามันเป็นตัวแทน แต่อาจจะตอบคำถามของคุณ: งูหลามที่ Google
ตกลงผมอ่านมากที่สุดของมันโชคไม่ดีที่จะช่วยให้ไม่ว่าข้อมูลเชิงลึกมาก แต่ฉันคิดว่ามันยังคงเป็นบทความที่น่าสนใจ อาจสำคัญที่สุด:
ที่ Google python เป็นหนึ่งใน 3 "ภาษาราชการ" ควบคู่ไปกับ C ++ และ Java เป็นทางการที่นี่หมายความว่าชาว Google ได้รับอนุญาตให้ใช้ภาษาเหล่านี้กับบริการการผลิต (คน Google ภายในใช้เทคโนโลยีมากมายเช่น PHP, C #, Ruby และ Perl) Python เหมาะกับกระบวนการทางวิศวกรรมของ Google โครงการทั่วไปที่ Google มีทีมขนาดเล็ก (3 คน) และระยะเวลาสั้น ๆ (3 เดือน)
อย่าลืมว่าGuido van Rossumผู้สร้าง Python ทำงานให้กับ Google ตั้งแต่ 2005-2012;)
ฉันยังพบข้อความอ้างอิงนี้ แต่ฉันไม่สามารถตรวจสอบได้:
"Python เป็นส่วนสำคัญของ Google มาตั้งแต่ต้นและยังคงเป็นเช่นนี้เมื่อระบบเติบโตและพัฒนาวิศวกรของ Google หลายคนใช้ Python และเรากำลังมองหาผู้คนที่มีทักษะในภาษานี้"
- Peter Norvig ผู้อำนวยการฝ่ายคุณภาพการค้นหาที่ Google
ฉันกำลังอ่านเกี่ยวกับUnladen-Swallowซึ่งเป็นโครงการที่มุ่งปรับปรุงประสิทธิภาพของ CPython ในขณะที่กำลังอ่านกระดานสนทนาของพวกเขาฉันได้พบกับการอภิปรายนี้ที่ Collin Winter (พนักงานของ Google และผู้พัฒนาหลัก Python) ตอบคำถามที่อ้างว่าพนักงาน Google ไม่ได้รับการสนับสนุนจาก Python สำหรับโครงการใหม่ :
สามัญสำนึกง่าย ๆ จะ จำกัด การบังคับใช้ Python เมื่อใช้งานในระดับของ Google: มันไม่เร็วเท่า Java หรือ C ++, เธรดที่แย่กว่า, การใช้หน่วยความจำสูงกว่า ฯลฯ หนึ่งในข้อ จำกัด ด้านการออกแบบที่เราเผชิญเมื่อออกแบบระบบใหม่คือ "จะเกิดอะไรขึ้นเมื่อโหลดเพิ่มขึ้น 10 เท่าหรือ 100x จะเกิดอะไรขึ้นถ้าทั้งโลกคิดว่าบริการใหม่ของคุณยอดเยี่ยม" เทคโนโลยีใดก็ตามที่ทำให้การ จำกัด นั้นทำได้ยากขึ้นและฉันคิดว่า Python อยู่ในหมวดหมู่นี้ - ควรจะท้อถ้ามันไม่มีกรณีที่แข็งแกร่งมากในความโปรดปรานในข้อดีอื่น ๆ คุณต้องสมดุลจุดแข็งของ Python กับจุดอ่อนของมัน: วิศวกรของคุณอาจทำงานได้อย่างมีประสิทธิภาพมากขึ้นโดยใช้ Python แต่ถ้าพวกเขาต้องแก้ไขข้อ จำกัด ด้านประสิทธิภาพ / การขยายระดับแพลตฟอร์มให้มากขึ้น เป็นต้น
หากคุณสมัครรับข้อมูลจากแนวคิดของ Paul Grahamที่รวบรัดพลัง == (เช่นถ้าฉันสามารถเขียนโค้ดเป็นภาษา X ใน 10 บรรทัดเพื่อให้ได้สิ่งที่คุณใช้ในภาษา Y 100 เส้นภาษาของฉันจะมีประสิทธิภาพมากกว่า)
เหล่านี้วันฮาร์ดแวร์ราคาถูก, meatware มีราคาแพง ฉันรู้ว่าฉันสามารถเขียนได้มากขึ้นเร็วขึ้นดีขึ้นและชัดเจนมากขึ้นในภาษาไพ ธ อนมากกว่าภาษาอื่นเพราะแบตเตอรี่มีแนวโน้มที่จะรวมอยู่ด้วย แน่นอนว่าอาจช้าลง แต่คุณจะสังเกตเห็นความแตกต่างระหว่าง. 05 วินาทีกับ. 0005 วินาทีหรือไม่
ในตัวอย่างที่เป็นจริงมากขึ้นหากนักพัฒนาของ Google เขียนโปรแกรมใน Python ที่พวกเขาไม่ต้องกังวลเกี่ยวกับการรวบรวมขยะและ บริษัท X เขียนโปรแกรมใน C ++ และพวกเขาใช้เวลา 10% ของการติดตามข้อบกพร่องที่เกี่ยวข้องกับการจัดสรรหน่วยความจำ เดาว่าใครทำได้เร็วกว่า - แม้ว่าร้านค้า C ++ จะสามารถเขียนโค้ดที่เหลือได้อย่างรวดเร็ว
ใช่ฉันจะบอกว่ามันเป็นข้อได้เปรียบในการแข่งขันกับโค้ดใน Python