Erlang ใช้งานที่ไหนและเพราะเหตุใด [ปิด]


258

ฉันต้องการทราบรายชื่อแอปพลิเคชั่น / เว็บไซต์ / โซลูชันที่ใช้งานบ่อยที่สุดที่ Erlang ใช้สำเร็จหรือไม่ประสบความสำเร็จหรือไม่

อธิบายว่าทำไมมันถูกใช้เป็นโซลูชันเฉพาะแทนภาษาโปรแกรมอื่น ๆ จะได้รับการชื่นชมอย่างมากเช่นกัน

การระบุกรณีศึกษา BAD Erlang (กรณีที่ Erlang ถูกนำไปใช้ในทางที่ผิด) ก็น่าสนใจเช่นกัน


13
ปัญหาเกี่ยวกับกรณีศึกษา BAD คือพวกเขาไม่ได้มีชื่อเสียงหรือได้เห็นแสงสว่างของวัน
Eric

2
WHATSAPP ใช้ Erlang! Google เพื่อดูรายละเอียด
Muzaaya Joshua

18
ทำไมสิ่งนี้จึงปิด ฉัน googled คำถามที่แน่นอนและถูกนำมาที่นี่
canhazbits

EMqttเป็นโบรกเกอร์ MQTT ที่ได้รับความนิยมอย่างมากและทุกวันนี้มีการใช้งานมากใน IoT ซึ่งพัฒนาขึ้นในerlangด้วยความยั่งยืนของผู้ใช้ 1 ล้านคน
LAMRIN TAWSRAS

คำตอบ:


214

จากการเขียนโปรแกรม Erlang :

ข้อความแทน

บริษัท หลายแห่งใช้ Erlang ในระบบการผลิตของพวกเขา:

อเมซอนใช้ Erlang เพื่อใช้งาน SimpleDB โดยให้บริการฐานข้อมูลเป็นส่วนหนึ่งของ Amazon Elastic Compute Cloud (EC2)

Yahoo!ใช้ในบริการบุ๊คมาร์คโซเชียล Delicious ซึ่งมีผู้ใช้มากกว่า 5 ล้านคนและ URL บุ๊กมาร์ก 150 ล้านรายการ

Facebookใช้ Erlang เพื่อเพิ่มประสิทธิภาพการบริการแบ็กเอนด์โดยจัดการผู้ใช้งานมากกว่า 100 ล้านคน

WhatsAppใช้ Erlang เพื่อเรียกใช้เซิร์ฟเวอร์การส่งข้อความโดยมีผู้ใช้เชื่อมต่อถึง 2 ล้านรายต่อเซิร์ฟเวอร์

T-Mobileใช้ Erlang ในระบบ SMS และการตรวจสอบสิทธิ์

Motorolaกำลังใช้ Erlang ในผลิตภัณฑ์ประมวลผลการโทรในอุตสาหกรรมความปลอดภัยสาธารณะ

Ericssonใช้ Erlang ในโหนดสนับสนุนซึ่งใช้ในเครือข่ายมือถือ GPRS และ 3G ทั่วโลก


แอปพลิเคชั่น Erlang โอเพ่นซอร์สที่ได้รับความนิยมสูงสุด ได้แก่ :

•ตัวสร้างแบบจำลองการแบ่ง 3D 3D Wings Wingsใช้สำหรับสร้างโมเดลและพื้นผิวรูปหลายเหลี่ยมตาข่าย

Ejabberdระบบซึ่งมีเซิร์ฟเวอร์แอปพลิเคชันการส่งข้อความโต้ตอบแบบทันที ( ) ที่ใช้ Extensible Messaging และ Presence Protocol (XMPP)

CouchDBฐานข้อมูลเชิงเอกสาร “ schema-less” ซึ่งให้ความสามารถในการปรับขยายได้ทั่วทั้งกลุ่มมัลติคอร์และมัลติเซอร์เวอร์

MochiWebห้องสมุดที่รองรับการสร้างเซิร์ฟเวอร์ HTTP น้ำหนักเบา มันถูกใช้เพื่อบริการด้านพลังงานเช่น MochiBot และ MochiAds ซึ่งให้บริการเนื้อหาที่สร้างขึ้นแบบไดนามิกให้กับผู้ชมหลายล้านคนต่อวัน

RabbitMQการใช้งานโปรโตคอลการส่งข้อความ AMQP AMQP เป็นมาตรฐานใหม่สำหรับการส่งข้อความขององค์กรที่มีประสิทธิภาพสูง


27
Ramiz Uddin - คุณกำลังพูดถึงระบบใหม่ระบบใดเมื่อคุณพูดว่า "ไม่มันไม่ใช่หรือ"
Great Turtle

10
@RamizUddin คุณกำลังพูดถึงระบบใหม่เมื่อคุณพูดว่า "ไม่มันไม่ใช่หรือ" (ฉันเพิ่งจะถามคำถามซ้ำโดย Great Turtle ผู้ที่สองสามปีที่ผ่านมาลืม @ ต่อหน้าชื่อของคุณ - ฉันคิดว่ามันสมควรได้รับคำตอบกระนั้น)
Walter Tross

4
facebook เปลี่ยนจาก erlang: facebook.com/notes/facebook-engineering/…และquora.com/…
A. Binzxxxxxx

Facebook ทำลายความเรียบง่ายและประสิทธิภาพของ WhatsApp
Krishnadas PC

คุณสามารถอัปเดตลิงค์เสียสำหรับหนังสือได้ไหม
pradyumnad

83

ejabberdเป็นหนึ่งในแอปพลิเคชัน erlang ที่เป็นที่รู้จักมากที่สุดและเป็นแอปที่ฉันเรียนรู้ erlang ด้วย

ฉันคิดว่ามันเป็นหนึ่งในโครงการที่น่าสนใจที่สุดสำหรับการเรียนรู้ภาษา erlang เพราะมันเป็นการสร้างความแข็งแกร่งของ erlang (อย่างไรก็ตามบางคนอาจโต้แย้งว่าไม่ใช่ OTP แต่ไม่ต้องกังวลว่ายังมีรหัสที่ดีอยู่ภายใน ... )

ทำไม

เซิร์ฟเวอร์ XMPP (เช่น ejabberd) สามารถมองเห็นได้ในฐานะเราเตอร์ระดับสูงการกำหนดเส้นทางข้อความระหว่างผู้ใช้ปลายทาง แน่นอนว่ามีคุณสมบัติอื่น ๆ แต่นี่เป็นสิ่งสำคัญที่สุดของเซิร์ฟเวอร์การส่งข้อความทันที มีการกำหนดเส้นทางข้อความจำนวนมากพร้อมกันและจัดการการเชื่อมต่อ TCP / IP จำนวนมาก

ดังนั้นเราจึงมี 2 คุณสมบัติ:

  • จัดการการเชื่อมต่อมากมาย
  • ข้อความเส้นทางให้บางแง่มุมของข้อความ

นี่คือตัวอย่างที่ erlang ส่องแสง

จัดการการเชื่อมต่อมากมาย

มันง่ายมากที่จะสร้างเซิร์ฟเวอร์ TCP / IP แบบ non-blocking ที่ปรับขนาดได้ด้วย erlang ในความเป็นจริงมันถูกออกแบบมาเพื่อแก้ปัญหานี้ และเนื่องจากมันสามารถวางไข่กระบวนการนับแสน (และไม่ใช่เธรดมันเป็นวิธีที่ไม่มีส่วนแบ่งซึ่งง่ายต่อการออกแบบ) ejabberd ได้รับการออกแบบเป็นชุดของกระบวนการ erlang (ซึ่งสามารถแจกจ่ายผ่านเซิร์ฟเวอร์หลายเครื่อง):

  • กระบวนการเชื่อมต่อลูกค้า
  • กระบวนการเราเตอร์
  • กระบวนการแชท
  • เซิร์ฟเวอร์ต่อกระบวนการของเซิร์ฟเวอร์

พวกเขาทั้งหมดแลกเปลี่ยนข้อความ

ข้อความเส้นทางให้บางแง่มุมของข้อความ

อีกคุณสมบัติที่น่ารักมาก Erlang คือจับคู่รูปแบบ มันถูกใช้ตลอดทั้งภาษา

ตัวอย่างเช่นในต่อไปนี้:

access(moderator, _Config)->  rw;
access(participant, _Config)->  rw;
access(visitor, #config{type="public"})->  r;
access(visitor, #config{type="public_rw"})->  rw;
access(_User,_Config)->  none.

นั่นคือaccessฟังก์ชั่น5 เวอร์ชันที่แตกต่างกัน Erlang จะเลือกเวอร์ชันที่เหมาะสมที่สุดตามข้อโต้แย้งที่ได้รับ ( Configเป็นโครงสร้างประเภท#configที่มีtypeแอตทริบิวต์)

ซึ่งหมายความว่าง่ายและชัดเจนกว่าการผูกมัดif/elseหรือswitch/caseสร้างกฎเกณฑ์ทางธุรกิจ

เพื่อสรุป

การเขียนเซิร์ฟเวอร์ที่ปรับขนาดได้นั่นคือจุดทั้งหมดของ erlang ทุกอย่างถูกออกแบบมาเพื่อทำให้เป็นเรื่องง่าย ในสองคุณสมบัติก่อนหน้านี้ฉันต้องการเพิ่ม:

  • อัพเกรดรหัสร้อน
  • mnesiaฐานข้อมูลเชิงสัมพันธ์แบบกระจาย (รวมอยู่ในการกระจายฐาน)
  • mochiwebซึ่งเซิร์ฟเวอร์ http erlang ส่วนใหญ่จะถูกสร้างขึ้น
  • รองรับไบนารี่ (การถอดรหัสและการเข้ารหัสโปรโตคอลไบนารีง่ายเหมือนที่เคย)
  • เป็นชุมชนที่ดีกับดีโครงการโอเพนซอร์ส ( ejabberd, couchdbแต่ยังwebmachine, riakและฆ่าของห้องสมุดง่ายมากที่จะฝังก)

LOCs น้อยลง

นอกจากนี้ยังมีบทความนี้จาก Richard Jones เขาเขียนแอปพลิเคชันใหม่จาก C ++ ถึง erlang: ลดจำนวนบรรทัดลง 75% ใน erlang


6
เพื่อความเป็นธรรมรหัส C ++ ที่เขียนใหม่ในภาษาสมัยใหม่เกือบทั้งหมดจะลด LOC
แซค

52

รายการแอปพลิเคชันทั่วไปส่วนใหญ่สำหรับ Erlang ดังกล่าวได้รับการคุ้มครอง (CouchDb, ejabberd, RabbitMQ ฯลฯ ) แต่ฉันต้องการมีส่วนร่วมดังต่อไปนี้

เหตุผลว่าทำไมมันถูกนำมาใช้ในการใช้งานเหล่านี้มาจากแรงหลักของ Erlang: การประยุกต์ใช้การจัดการความพร้อม

Erlang ถูกสร้างขึ้นจากพื้นดินสำหรับสภาพแวดล้อม telco ที่ต้องการให้ระบบตอบสนองความพร้อมใช้งานอย่างน้อย 5x9 ของ (uptime 99.999% ต่อปี) รูปนี้ไม่ได้มีที่ว่างสำหรับการหยุดทำงานในระหว่างปี! ด้วยเหตุนี้ Erlang จึงมาพร้อมกับฟีเจอร์ต่าง ๆ ดังต่อไปนี้ (ไม่ละเอียด):

  • ความสามารถในการขยายแนวนอน (ความสามารถในการกระจายงานข้ามขอบเขตของเครื่องจักรได้อย่างง่ายดายผ่านการสื่อสารภายในเครื่องและระหว่างเครื่อง) ฐานข้อมูลในตัว (Mnesia) มีการกระจายโดยธรรมชาติเช่นกัน

  • ความสามารถในการขยายแนวตั้ง (ความสามารถในการกระจายงานข้ามทรัพยากรการประมวลผลบนเครื่องเดียวกัน): SMP ได้รับการจัดการโดยกำเนิด

  • Code Hot-Swapping : ความสามารถในการอัปเดต / อัปเกรดรหัสสดระหว่างการทำงาน

  • ไม่ตรงกัน : โลกแห่งความจริงเป็น async ดังนั้น Erlang จึงถูกสร้างขึ้นเพื่ออธิบายลักษณะพื้นฐานนี้ คุณลักษณะหนึ่งที่มีส่วนช่วยในข้อกำหนดนี้: กระบวนการ "ฟรี" ของ Erlang (> 32000 สามารถทำงานพร้อมกันได้)

  • การกำกับดูแล : กลยุทธ์ที่แตกต่างกันมากมายสำหรับการควบคุมกระบวนการด้วยกลยุทธ์รีสตาร์ท, ขีด จำกัด และอื่น ๆ ช่วยให้กู้คืนจากมุมกรณี / การบรรทุกเกินพิกัดได้ง่ายขึ้นในขณะที่ยังคงรักษาร่องรอยของปัญหาสำหรับการแก้ไขปัญหาในภายหลัง

  • การจัดการทรัพยากร : กลยุทธ์การกำหนดเวลาการตรวจสอบทรัพยากร ฯลฯ โปรดทราบว่าตัวกำหนดตารางกระบวนการเริ่มต้นทำงานด้วยการปรับ O (1)

  • การดีบักแบบสด : ความสามารถในการ "บันทึก" ลงในโหนดสดที่จะช่วยให้กิจกรรมการแก้ไขปัญหา การดีบักสามารถดำเนินการได้จริงด้วยการเข้าถึงสถานะการทำงานของกระบวนการใด ๆ นอกจากนี้เครื่องมือการรายงานข้อผิดพลาดในตัวก็มีประโยชน์มาก (แต่บางครั้งก็ค่อนข้างใช้งานไม่สะดวก)

แน่นอนฉันสามารถพูดคุยเกี่ยวกับรากการทำงานของมัน แต่ด้านนี้ค่อนข้าง orthogonal กับเป้าหมายหลัก (ว่างสูง) องค์ประกอบหลักของลักษณะการทำงานที่มีส่วนช่วยในการบรรลุเป้าหมายคือ IMO: "share nothing" คุณลักษณะนี้ช่วยให้มี "ผลข้างเคียง" และลดความต้องการกลไกการซิงโครไนซ์ราคาแพง

ฉันเดาว่าคุณลักษณะทั้งหมดเหล่านี้จะช่วยขยายกรณีการใช้ Erlang ในแอปพลิเคชันที่สำคัญทางธุรกิจ

สิ่งหนึ่งที่ Erlang ไม่ค่อยดีนักคือการประมวลผลบล็อกข้อมูลขนาดใหญ่


4
คุณสามารถอธิบายสิ่งต่อไปนี้: "สิ่งหนึ่งที่ Erlang ไม่ดีจริง ๆ : การประมวลผลบล็อกข้อมูลขนาดใหญ่"
Kirill Trofimov

9
เขาหมายถึงสิ่งต่าง ๆ เช่นการถอดรหัสข้อมูล mpeg มีการคำนวณเชิงตัวเลขมากเกินไปซึ่ง Erlang ไม่ได้รับการปรับให้เหมาะสม หากการประมวลผลเกี่ยวข้องกับการสับบล็อกข้อมูลขนาดใหญ่จากที่หนึ่งไปอีกที่หนึ่ง Erlang ก็ค่อนข้างดี (ไฟล์ไปยังซ็อกเก็ต TPC และอื่น ๆ )
Christian

4
คุณไม่สามารถอัปเดตบล็อกข้อมูลที่ใช้ร่วมกัน (ไม่มีตัวชี้ใน Erlang) และข้อมูลจึงต้องถูกปิดการทำงานในกระบวนการซึ่งจะแปลความไร้ประสิทธิภาพ
jldupont

นอกเหนือจากนี้ผมเชื่อว่าอีริคสันกล่าวว่า Erlang บรรลุความพร้อมใช้งานของ 9x9
Jono

เราใคร่ครวญถึงการพัฒนาเมื่อความอ่อนแอของ Erlang อ้างถึงที่นี่
Shelby Moore III

19

Erlang มาจาก Ericsson และใช้ภายในระบบโทรคมนาคมบางระบบ

นอกเทเลคอมCouchDb (ฐานข้อมูลเชิงเอกสาร) อาจเป็นแอปพลิเคชั่น Erlang ที่รู้จักกันดีที่สุด

ทำไมต้องเออร์แลง จากภาพรวม (มูลค่าการอ่านทั้งหมด):

รูปแบบเอกสารมุมมองความปลอดภัยและการจำลองแบบภาษาคิวรีวัตถุประสงค์พิเศษเค้าโครงดิสก์ที่มีประสิทธิภาพและมีประสิทธิภาพและลักษณะที่เกิดขึ้นพร้อมกันและเชื่อถือได้ของแพลตฟอร์ม Erlang ทั้งหมดถูกรวมเข้าด้วยกันอย่างระมัดระวังเพื่อระบบที่เชื่อถือได้และมีประสิทธิภาพ


1
สำหรับระบบสื่อสารโทรคมนาคมบางส่วน
jldupont

1
CouchDB ไม่ใช่ฐานข้อมูล OO เป็นฐานข้อมูลเชิงเอกสาร
ฉันให้คำแนะนำที่น่ากลัว

5
@ ฉันให้คำแนะนำที่น่ากลัว - ใช่แน่นอน การแก้ไข ฉันจะเปลี่ยนชื่อเล่นของคุณ :-)
ไบรอัน Agnew

มีภาษาที่เกิดขึ้นพร้อมกันก่อนหน้านี้ที่ใช้โดยอีริคสันเรียกว่า PLEX (ภาษาโปรแกรมสำหรับการแลกเปลี่ยน) ซึ่งดำเนินการแลกเปลี่ยนโทรศัพท์ดิจิตอลในช่วงปลายยุค 80 จนถึงปัจจุบัน ฉันคิดว่า erlang เป็นรุ่นที่ปรับปรุงของ PLEX
user50619

19

เราสร้างการแลกเปลี่ยนการเดิมพัน (ตลาดการทำนาย) โดยใช้ Erlang เราเลือก Erlang มากกว่าภาษาการเงินดั้งเดิม (C ++, Java และอื่น ๆ ) เนื่องจากการใช้งานพร้อมกันในตัว ตลาดทำงานคล้ายกันมากกับการแลกเปลี่ยนโทรศัพท์ CTO ของเราให้การพูดคุยเกี่ยวกับการใช้ของเรา Erlang ที่CTO พูดคุย

นอกจากนี้เรายังใช้ CouchDB และ RabbitMQ เป็นส่วนหนึ่งของสแต็คของเรา


10
เพิ่งทราบลิงค์ไปยังการพูดคุยของคุณเป็นส่วนตัว
JDong

15

ฉันมาข้ามนี้อยู่ในขั้นตอนของการเขียนขึ้นรายงาน: Erlang ในอะคูสติกเรย์ติดตาม

มันเป็นรายงานประสบการณ์เกี่ยวกับความพยายามของกลุ่มวิจัยในการใช้ Erlang สำหรับ Acoustic Ray Tracing พวกเขาพบว่าในขณะที่เขียนโปรแกรมได้ง่ายขึ้นมีรถบั๊กน้อย ฯลฯ ปรับขนาดให้แย่ลงและทำงานช้ากว่าโปรแกรม C ที่เปรียบเทียบกัน 10 เท่า ดังนั้นจุดหนึ่งที่มันอาจไม่เหมาะสมก็คือสถานการณ์ที่ใช้ CPU มาก

อย่าลืมว่าคนที่เขียนบทความนั้นอยู่ในขั้นตอนของการเรียนรู้ Erlang ครั้งแรกและอาจไม่รู้จักกระบวนการพัฒนาที่เหมาะสมสำหรับ Erlang ที่ใช้ CPU มาก


2
กระดาษเป็นเรื่องที่น่าอ่าน มันไม่ได้ทำให้การวางนัยโดยทั่วไปเกี่ยวกับความเหมาะสมมันบ่งชี้ว่าพวกเขาพบว่า Erlang ไม่เหมาะสมถ้าคุณกำลังพยายามปรับใช้บนโปรเซสเซอร์ IBM Cell BE พบใน Playstation 3 นอกจากนี้ยังระบุว่าพวกเขาไม่มีประสบการณ์กับ Erlang ด้วยประสบการณ์และฮาร์ดแวร์ที่เหมาะสมพวกเขาอาจมาถึงข้อสรุปที่แตกต่างกัน ฉันได้รับความประทับใจว่ารหัสของพวกเขาอาจรวมถึงการใช้ฟังก์ชั่นที่ไม่ใช่แบบเรียกซ้ำ ถ้าเป็นเช่นนั้นอาจเป็นไปได้ที่จะอธิบายปัญหาที่เกิดขึ้นกับหน่วยความจำการรวบรวมขยะการล่มและประสิทธิภาพ
ทิม

3
ฉันคิดว่าคุณอ่านบทความผิด การไม่สามารถทำงานกับหน่วยประมวลผล Cell ได้นั้นเป็นเรื่องที่โชคร้าย แต่มันก็เป็นแค่ข้อความด้านข้างเท่านั้น ความแตกต่างด้านประสิทธิภาพ 12x ระหว่าง C ++ และการใช้งาน Erlang ที่ทำงานบนแพลตฟอร์ม x86 นั้นเป็นปัญหาที่แท้จริงรวมกับความจริงที่ว่ามันไม่ได้ปรับขนาดเชิงเส้น ที่กล่าวว่าพวกเขายังใหม่กับภาษาและอาจมีเส้นทางรหัสไม่ฉลาดสองสาม ... นั่นคือชีวิต ฉันอยากรู้เกี่ยวกับการปรับขนาดที่ไม่ใช่เชิงเส้น
CoderTao

4
ฉันยืนได้รับการแก้ไขในเรื่องประสิทธิภาพ 12x เกี่ยวกับ Intel กับ Cell แต่ฉันยืนยันว่า Erlang สามารถเหมาะสมกับสถานการณ์ที่ท้าทายของ CPU ไม่ได้หมายความว่ามันไม่ถูกต้อง: นี่อาจเป็นปัญหาที่โซลูชัน C ++ ที่ดีจะเอาชนะ Erlang solution ที่ดีได้เสมอ บางทีนี่อาจเป็นหนทางไปสู่การเป็นเครื่องเตือนใจให้คนบางคนที่ Erlang เช่นเดียวกับเทคโนโลยีอื่น ๆ ไม่มีกระสุนเงินและมันจะส่องแสงเฉพาะเมื่อใช้วิธีที่ถูกต้องในสถานที่ที่เหมาะสม
ทิม

14

เห็นได้ชัดว่า Yahoo ใช้ Erlang เพื่อสร้างสิ่งที่เรียกว่า Harvester บทความเกี่ยวกับที่นี่: http://www.ddj.com/architect/220600332


4
การอ่านจากบทความ: "ในขณะที่ Harvester ถูกเขียนขึ้นในภาษาเพิร์ล Erlang มีการทำงานพร้อมกันในระดับสูง - พร้อมกับหลักการออกแบบ OTP - ทำให้เป็นแพลตฟอร์มที่เหมาะสำหรับการสร้างแอปพลิเคชันที่เชื่อถือได้ทนต่อความผิดพลาด สามารถปรับขนาดได้พร้อมใช้งานเชื่อถือได้และสามารถปฏิบัติตามข้อตกลงระดับบริการที่เข้มงวดมากขึ้น (SLA) บนฐานรหัสที่เบาลงและความพยายามในการพัฒนาที่ไม่แพง " ขอบคุณมาก :)
โรแบร์โต Aloi

11

erlang ดีสำหรับอะไร?

http://beebole.com/en/blog/erlang/why-erlang/

http://www.aquabu.com/2008/2/15/erlang-pragmatic-studio-day-3-notes

http://www.reddit.com/r/programming/comments/9q0lr/erlang_and_highfrequency_trading/ (คำตอบของ jerf)

สิ่งสำคัญคือต้องตระหนักว่า 4 ส่วนของ Erlang: ภาษาตัวเอง, มาตรฐาน VMs (BEAM, hipe) libs (รวมถึงโมดูลบน github, CEAN, ฯลฯ ) และสภาพแวดล้อมการพัฒนาได้รับการปรับปรุง / ขยาย / ปรับปรุงอย่างต่อเนื่อง ตัวอย่างเช่นฉันจำได้ว่าการอ่านประสิทธิภาพของจุดลอยตัวดีขึ้นเมื่อผู้เขียน Wings3d ตระหนักว่าจำเป็นต้องปรับปรุง (ฉันไม่สามารถหาแหล่งที่มาสำหรับสิ่งนี้) และผู้ชายคนนี้เพิ่งเขียนเกี่ยวกับมัน:

http://marian-dan.com/wordpress/?p=324

เมื่อสองสามปีที่ผ่านมาการประชาสัมพันธ์ของ Wide Finder ของ Tim Bray และผู้คนทั้งหมดเริ่มทำเฟรมเวิร์กแอพและเซิร์ฟเวอร์ HTTP นำไปสู่ ​​(อย่างน้อยก็ในบางส่วน) เพื่อปรับปรุงการจัดการ regex และไบนารี และมีงานทั้งหมดที่รวม HiPE และ SMP, โครงการ dialyzer, การทดสอบหลายหน่วยและการสร้าง libs ผุดขึ้นมา ..

ดังนั้นจุดหวานกำลังขยายตัวสิ่งที่ยากคือเอกสารอย่างเป็นทางการไม่สามารถติดตามได้เป็นอย่างดีและรายชื่ออีเมลและปริมาณการเขียนบล็อกบนเว็บปริมาณมากขึ้นอย่างรวดเร็ว


10

เราใช้ Erlang เพื่อให้อำนาจของกล้ามเนื้อหลังจบเกมที่ผู้เล่นหลายของเราจริงๆแบบ real-time เบราว์เซอร์Pixza เราไม่ใช้ Flash หรือโปรแกรมเสริมของบุคคลที่สามอื่น ๆ ถึงแม้ว่าเกมนี้เป็นเกมที่เล่นได้หลายคนแบบเรียลไทม์ เราใช้เทคนิค JS และ COMET ล้วนๆ และ Erlang รองรับ "realtimeliness" ของ Pixza


10

ฉันทำงานให้กับ wooga บริษัท เกมโซเชียลและเราใช้ Erlang สำหรับแบ็กเอนด์เกมบางส่วนของเรา (โดยทั่วไปคือ http apis สำหรับผู้ใช้หลายล้านคนต่อวัน) และบริการเสริมเช่นผู้ให้บริการแจ้งเตือนแบบพุช iOS การชำระเงินเป็นต้น

ฉันคิดว่ามันส่องแสงในงานที่เกี่ยวข้องกับเครือข่ายและทำให้มันตรงไปตรงมากับโครงสร้างและใช้บริการเครือข่ายที่เรียบง่ายและซับซ้อนเหมือนกัน การกระจายความทนทานต่อความผิดพลาดและประสิทธิภาพนั้นทำได้ง่ายเนื่องจาก Erlang มีส่วนประกอบสำคัญบางอย่างที่สร้างขึ้นแล้วและพวกมันถูกใช้เป็นเวลานานในโครงสร้างพื้นฐานการผลิตที่สำคัญ ดังนั้นจึงไม่เหมือน "สิ่งเทคโนโลยีสะโพกใหม่ 0.0.2 อัลฟา"

ฉันรู้ว่า บริษัท เกมอื่นใช้ Erlang เช่นกัน คุณควรจะสามารถหางานนำเสนอบนสไลด์โชว์ได้


6

Erlang ดึงจุดเด่นจากการเป็นภาษาที่ใช้งานได้โดยไม่มีหน่วยความจำที่ใช้ร่วมกัน ดังนั้น IMO, Erlang จะไม่เหมาะสำหรับแอปพลิเคชันที่ต้องใช้การปรับเปลี่ยนหน่วยความจำ ตัวอย่างการแก้ไขภาพ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.