คำถามติดแท็ก erlang

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

5
เมื่อใดที่ไม่ควรใช้นักแสดงใน akka / erlang
ฉันทำงานกับ akka มา 7-8 เดือนแล้วทุกวัน เมื่อฉันเริ่มฉันจะทำงานกับแอพพลิเคชั่นและสังเกตว่านักแสดงจะถูกใช้โดยทั่วไปทุกครั้งที่อยู่ในระบบของนักแสดงเพื่อสื่อสารระหว่างวัตถุส่วนใหญ่ ดังนั้นฉันจึงทำแบบเดียวกัน - หมุนนักแสดงคนอื่นให้กับ x / y / z สำหรับฉันดูเหมือนว่านี่อาจเป็นการพิจารณาที่ไม่เจาะจงเกินไปเพิ่มความซับซ้อนในที่ที่ไม่ต้องการ - แต่ฉันไม่สามารถหาการอภิปรายว่าควรใช้นักแสดงกับซิงโครนัสธรรมดาหรือแม้แต่ async ตรรกะผ่านฟิวเจอร์ส ฉันเริ่มไตร่ตรองท่าทางของฉันหลังจากเพื่อนร่วมงานของฉันพูดถึงสิ่งที่คล้ายกัน ฉันรู้หลายกรณีเมื่อเร็ว ๆ นี้ซึ่งฉันได้ไตร่ตรองงานแล้วหลีกเลี่ยงการสร้างนักแสดงคนอื่นเพราะฉันสามารถบรรลุผลลัพธ์เดียวกันได้อย่างปลอดภัยในการใช้งานที่ไม่เปลี่ยนรูป - เช่นสิ่งที่ต้องการรับค่าการกำหนดค่าจาก db หรือไฟล์ที่คุณเข้าถึงไม่บ่อยนัก รอผลคือกรณีการใช้งานจริง โดยเฉพาะอย่างยิ่งสำหรับฉันดูเหมือนว่ากรณีใด ๆ ที่คุณเล่นกับรัฐที่ไม่เปลี่ยนรูปนักแสดงสร้างความซับซ้อนและปริมาณงานที่ จำกัด - ฟังก์ชั่นที่บริสุทธิ์ในวัตถุเช่นสามารถเรียกได้พร้อมกันโดยไม่มีความเสี่ยงในระดับเดียวกัน นักแสดงสามารถดำเนินการได้ทีละข้อความเท่านั้น ข้อควรพิจารณาอื่นคือคุณจะต้องรอเธรดถ้าคุณต้องรอผลจนกว่าคุณจะเริ่มใช้ฟิวเจอร์ส แต่กรณีที่คุณไม่ต้องกังวลเกี่ยวกับการส่งข้อความ async หรือมาตราส่วนดูเหมือนว่าอาจจะเกินจ้างนักแสดง ดังนั้นคำถามของฉันคือ - มีเวลาไม่ดีที่จะใช้นักแสดงหรือไม่? ฉันอยากรู้ว่า erlang มีลักษณะอย่างไรและจะต้องการข้อมูลเชิงลึกของผู้อื่นอย่างแท้จริง หรือถ้ามีหลักการบางอย่างที่นักแสดงใช้

3
การเรียนรู้ Erlang vs learning node.js [ปิด]
ฉันเห็นอึออนไลน์มากมายเกี่ยวกับวิธีที่ Erlang เตะ node.js ในทุกหมวดหมู่ที่เป็นไปได้ ดังนั้นฉันต้องการเรียนรู้ Erlang และให้ภาพ แต่นี่เป็นปัญหา ฉันพบว่าฉันมีเวลายากขึ้นในการรับ Erlang มากกว่าที่ฉันเคยเก็บโหนด ด้วย node.js ฉันสามารถเลือกโครงการที่ค่อนข้างซับซ้อนและในวันที่ฉันมีบางสิ่งบางอย่างทำงาน ด้วย Erlang ฉันวิ่งเข้าไปหาสิ่งกีดขวางและไม่เข้าใกล้อย่างรวดเร็ว ดังนั้น .. สำหรับผู้ที่มีประสบการณ์มากกว่าเออร์แลงมีความซับซ้อนในการเรียนรู้หรือฉันเพิ่งจะพลาดบางสิ่งบางอย่าง? Node.js อาจไม่สมบูรณ์แบบ แต่ฉันดูเหมือนจะสามารถทำสิ่งต่างๆให้สำเร็จได้
41 erlang  node.js 

8
เมื่อใดที่คุณจะต้องใช้ "กระทู้นับแสน"
Erlang, Go และ Rust อ้างสิทธิ์ทั้งหมดไม่ทางใดก็ทางหนึ่งซึ่งสนับสนุนการเขียนโปรแกรมพร้อมกันด้วย "threads" / coroutines ราคาถูก ไปคำถามที่พบบ่อยฯ : เป็นจริงในการสร้าง goroutines หลายแสนในพื้นที่ที่อยู่เดียวกัน The Rust Tutorialพูดว่า: เนื่องจากงานมีราคาถูกกว่าอย่างมากในการสร้างกว่าเธรดดั้งเดิม Rust สามารถสร้างงานพร้อมกันนับแสนในระบบ 32 บิตโดยทั่วไป เอกสารของ Erlangกล่าวว่า: ขนาดฮีพเริ่มต้นเริ่มต้นที่ 233 คำนั้นค่อนข้างอนุรักษ์นิยมเพื่อสนับสนุนระบบ Erlang ที่มีกระบวนการหลายแสนหรือหลายล้านกระบวนการ คำถามของฉัน: แอปพลิเคชั่นประเภทใดที่ต้องการเธรดการทำงานพร้อมกันจำนวนมาก? มีเพียงเว็บเซิร์ฟเวอร์ที่ยุ่งที่สุดเท่านั้นที่จะได้รับผู้เยี่ยมชมหลายพันคนพร้อมกัน แอปพลิเคชั่นประเภทบอส - คนงาน / การส่งงานที่ฉันเขียน Hit ลดลงส่งคืนเมื่อจำนวนเธรด / กระบวนการมากกว่าจำนวนแกนประมวลผลทางกายภาพมาก ฉันคิดว่ามันสมเหตุสมผลสำหรับแอปพลิเคชั่นตัวเลข แต่ในความเป็นจริงคนส่วนใหญ่มอบหมายให้ขนานกับไลบรารีของบุคคลที่สามที่เขียนใน Fortran / C / C ++ ไม่ใช่ภาษารุ่นใหม่กว่านี้

3
Haskell vs Erlang สำหรับบริการบนเว็บ
ฉันกำลังมองหาที่จะเริ่มต้นโครงการทดลองโดยใช้ภาษาที่ใช้งานได้และพยายามที่จะตัดสินใจว่า Erlang และ Haskell เป็นคนบ้าและทั้งสองมีบางประเด็นที่ฉันชอบ ฉันชอบระบบที่แข็งแกร่งและความบริสุทธิ์ของ Haskell ฉันรู้สึกว่ามันจะง่ายต่อการเขียนรหัสที่เชื่อถือได้จริงๆ และฉันคิดว่าพลังของ Haskell จะทำให้บางสิ่งที่ฉันต้องการทำได้ง่ายขึ้นมาก ในด้านลบฉันได้รับความรู้สึกว่าบางส่วนของ Frameworks สำหรับการทำสิ่งต่างๆบนเว็บใน Haskell เช่น Yesod นั้นไม่ได้ก้าวหน้าไปกว่าชิ้นส่วน Erlang ของพวกเขา ฉันชอบวิธีการของ Erlang สำหรับเธรดและการยอมรับข้อผิดพลาด ฉันรู้สึกว่า scalability ของ Erlang อาจเป็นข้อดีหลัก ๆ ได้ ซึ่งนำไปสู่คำถามของฉันสิ่งที่ผู้คนได้รับจากการใช้แบ็กเอนด์เว็บแอปพลิเคชันใน Haskell และ Erlang มีแพ็คเกจสำหรับ Haskell เพื่อจัดหาเธรดและนักแสดงบางส่วนที่มีอยู่ใน Erlang หรือไม่?

1
การเขียนโปรแกรม Erlang และ Go พร้อมกันความแตกต่างระหว่าง CSP และนักแสดง?
ฉันกำลังดูการเขียนโปรแกรมพร้อมกันในภาษาโปรแกรม Erlang และ Go ตามการค้นพบของฉันพวกเขาใช้โมเดลนักแสดงและ CSP ตามลำดับ แต่ฉันก็ยังสับสนกับ CSP และนักแสดงต่างกันอย่างไร มันแตกต่างทางทฤษฎีเพียงอย่างเดียว แต่เป็นแนวคิดเดียวกันหรือไม่

3
ประสิทธิภาพ F # เทียบกับประสิทธิภาพของ Erlang มีข้อพิสูจน์ว่า VM ของ Erlang เร็วขึ้นหรือไม่
ฉันใช้เวลาในการเรียนรู้การเขียนโปรแกรมฟังก์ชั่นและฉันมาถึงส่วนที่ฉันต้องการเริ่มต้นเขียนโครงการแทนการเล่นน้ำในแบบฝึกหัด / ตัวอย่าง ในขณะที่ทำการวิจัยของฉันฉันพบว่า Erlang ดูเหมือนว่าจะทรงพลังมากเมื่อพูดถึงการเขียนซอฟต์แวร์ที่เกิดขึ้นพร้อมกัน (ซึ่งเป็นเป้าหมายของฉัน) แต่ทรัพยากรและเครื่องมือสำหรับการพัฒนาไม่ได้พัฒนาเท่ากับผลิตภัณฑ์พัฒนาของ Microsoft F # สามารถทำงานบน linux (Mono) เพื่อให้ตรงตามข้อกำหนด แต่ในขณะที่มองไปรอบ ๆ บนอินเทอร์เน็ตฉันไม่สามารถเปรียบเทียบ F # กับ Erlang ได้ ตอนนี้ฉันกำลังเอนตัวไปที่ Erlang เพียงเพราะดูเหมือนว่าจะมีข่าวมากที่สุด แต่ฉันอยากรู้ว่าจริงๆแล้วมันมีความแตกต่างด้านประสิทธิภาพระหว่างสองระบบหรือไม่ เนื่องจากฉันคุ้นเคยกับการพัฒนาใน. NET ฉันอาจจะสามารถเพิ่มความเร็วด้วย F # เร็วกว่า Erlang มาก แต่ฉันไม่สามารถหาทรัพยากรใด ๆ ที่จะทำให้ฉันเชื่อว่า F # นั้นสามารถปรับขนาดได้เหมือนกับ Erlang ฉันสนใจการจำลองมากที่สุดซึ่งกำลังจะส่งข้อความที่ประมวลผลอย่างรวดเร็วไปยังโหนดแบบต่อเนื่อง หากฉันยังทำงานได้ไม่ดีกับสิ่งที่ฉันพยายามถามโปรดขอการยืนยันเพิ่มเติม
19 f#  erlang 

3
คุณคิดอย่างไรเกี่ยวกับตัวแบบนักแสดง? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา รูปแบบนักแสดงที่Erlang ใช้ดูเหมือนจะเป็นวิธีที่แตกต่างกันมากในการเขียนโปรแกรมพร้อมกัน คุณคิดอย่างไรเกี่ยวกับตัวแบบนักแสดง? มันจะเป็นทางออกยอดนิยมสำหรับการเกิดพร้อมกันหรือไม่?

1
เออร์แลงเป็นภาษาต้นแบบของนักแสดงหรือ
ฉันกำลังอ่านบทความนี้: http://www.doc.ic.ac.uk/~nd/surprise_97/journal/vol2/pjm2/ และมันก็กล่าวว่า: ... ในโมเดลนักแสดงแม้จำนวนเต็มจะแสดงเป็นนักแสดง ... Wikipedia ยืนยัน: โมเดลนักแสดงนำปรัชญาที่ทุกอย่างเป็นนักแสดง Erlang มีชนิดข้อมูลจำนวนมากและประเภทเหล่านั้นไม่ใช่นักแสดงเท่าที่ฉันสามารถบอกได้ ไม่ได้หมายความว่า Erlang ไม่ใช่ภาษานางแบบนักแสดงในแบบที่บางคนพูดว่า Java ไม่ได้เป็นภาษาที่ใช้งานได้เพราะมันขาดคุณสมบัติการเขียนโปรแกรมที่ใช้งานได้บางอย่าง? PS: โดยการขยายนั่นหมายความว่า Akka ไม่ใช่แบบอย่างของนักแสดงเพราะนอกเหนือจากประเภทข้อมูลที่ไม่ใช่นักแสดงที่มาจากภาษาแม่ยังช่วยให้ผู้สืบทอดสืบทอดพฤติกรรมของพวกเขาผ่านทางภาษาแม่

2
อินเทอร์เฟซที่ไม่มีผลข้างเคียงที่ด้านบนของไลบรารี stateful
ในการให้สัมภาษณ์กับ John Hughesที่ซึ่งเขาพูดเกี่ยวกับ Erlang และ Haskell เขามีดังต่อไปนี้ที่จะพูดเกี่ยวกับการใช้ห้องสมุด stateful ใน Erlang: ถ้าฉันต้องการใช้ไลบรารี stateful ฉันมักจะสร้างอินเทอร์เฟซที่ไม่มีผลข้างเคียงเพื่อให้ฉันสามารถใช้อย่างปลอดภัยในส่วนที่เหลือของรหัสของฉัน สิ่งนี้หมายความว่าอย่างไร ฉันพยายามคิดถึงตัวอย่างว่าสิ่งนี้จะมีลักษณะอย่างไร แต่จินตนาการและ / หรือความรู้ของฉันทำให้ฉันล้มเหลว

6
แนะนำการตั้งโปรแกรมการทำงานในสภาพแวดล้อมการพัฒนาของคุณ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา นี่เป็นเรื่องยาว แต่ฉันจะพยายามสรุปให้ดีที่สุดเท่าที่จะทำได้ เราเป็นร้าน NET ที่เขียนซอฟต์แวร์สำหรับกองทุนประเภทต่างๆ ตัวอย่างเช่นเราเขียนซอฟต์แวร์การจัดการการเรียกร้องสุขภาพซอฟต์แวร์การจัดการบำนาญซอฟต์แวร์ 401 (k) และสิ่งอื่น ๆ ทางการเงิน ตอนนี้เรากำลังเข้าสู่อาณาจักรใหม่: อนุพันธ์และประเภทการวิเคราะห์เชิงปริมาณซึ่งดูเหมือนน่าตื่นเต้นมาก นี่คือสิ่งที่จะลงมาในอีก 8-12 เดือนข้างหน้า ตอนนี้ฉันได้เรียนรู้การเขียนโปรแกรมฟังก์ชั่นด้วยตัวเองแล้วส่วนใหญ่เป็นเพียงผิวเผินที่ใช้ภาษาต่าง ๆ ผ่านหนังสือเล่มนี้แต่ไม่เคยขุดลึกเข้าไปในนั้น ตอนนี้เนื่องจากเราเป็น. NET shop ฉันคิดว่า F # อาจเป็นทางเลือกที่ดีเพราะเราอาจใช้ประโยชน์จากไลบรารี NET. บางส่วนและความรู้ที่มีอยู่อาจเป็นไปได้ คำถามของฉันคือจะเริ่มที่ไหน ฉันมีช่วงเวลาที่ยากลำบากอย่างมากที่จะคิดออกว่าฉันควรจะไปกับ Haskell, Erlang, Scala, F # ฯลฯ พวกเขาทั้งหมดดูน่าสนใจและมีความสามารถและค่อนข้างตรงไปตรงมานี่อาจเป็นโอกาสดีที่จะแยกตัวออกจาก Microsoft มีใครมีสถานการณ์ที่คล้ายกัน? ถ้าเป็นเช่นนั้นประสบการณ์ของคุณคืออะไรที่ทำให้การทำงานเป็นไปอย่างรวดเร็วและคุณเลือกอะไรและทำไม? ฉันรู้ว่านี่เป็นคำถามที่ยิ่งใหญ่ แต่ฉันไม่รู้จักนักพัฒนาที่ใช้วิธีการทำงานในตอนนี้ดังนั้นฉันไม่มีที่อื่นที่จะหันไปนอกเหนือจาก Googling …

4
แบบสำรวจกรอบเว็บของ Erlang [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา (ได้รับแรงบันดาลใจจากคำถามที่คล้ายกันใน Haskel) มีกรอบงานหลายเว็บสำหรับ Erlang เช่น Nitrogen, Chicago Boss และ Zotonic และอีกสองสามอย่าง พวกเขาต่างกันในด้านใดบ้าง? ตัวอย่างเช่น: คุณสมบัติ (เช่นเซิร์ฟเวอร์เท่านั้นหรือสคริปต์ไคลเอนต์รองรับฐานข้อมูลประเภทต่างๆได้ง่าย) ครบกําหนด (เช่นความมั่นคงคุณภาพเอกสาร) ความสามารถในการปรับขยาย (เช่นประสิทธิภาพการทำงานที่เป็นนามธรรม) เป้าหมายหลัก นอกจากนี้ตัวอย่างของไซต์ / เว็บในโลกแห่งความจริงที่ใช้เฟรมเวิร์กเหล่านี้คืออะไร แก้ไข: เริ่มต้นเงินรางวัลด้วยความหวังว่ามันจะทำให้การสนทนาดำเนินต่อไป

1
Erlang ป้องกันสภาพการแข่งขันในการเขียนโปรแกรมพร้อมกันในทางใดบ้าง
อ่านหนังสือเกี่ยวกับการเห็นพ้องใน Erlang , ทำให้ผมนึกถึงเห็นพ้องด้วยเครื่องมือ Akka ทั้งสองให้คุณมีเครื่องมือในการป้องกันหรือการ จำกัดเงื่อนไขการแข่งขัน แต่คุณสามารถส่งลิงค์ไปยังข้อมูลที่ไม่แน่นอนไปยังกระบวนการอื่น ๆ โดยใช้ชุดเครื่องมือ Akka ซึ่งยังไม่ปลอดภัย ฉันเห็น Akka เป็นเครื่องมือที่มีประโยชน์ แต่ไม่ได้ให้การป้องกันการเข้าถึงวัตถุและข้อมูลที่นำไปสู่สภาวะการแข่งขันการหยุดชะงักและ / หรือความอดอยาก มันไม่ได้ป้องกันคุณจากการเขียนรหัสที่ไม่ปลอดภัยในแบบที่ Java หรือ C # ปกป้องคุณจากการเขียนการรั่วไหลของหน่วยความจำส่วนใหญ่ที่คุณสามารถเขียนใน C ++ (คุณยังสามารถสร้างการรั่วไหลของหน่วยความจำใน Java ได้ด้วยการหลอก ของปัญหามากกว่าการจำให้ฟรีทุกไบต์ที่คุณจัดสรร) Erlang รับประกันความถูกต้องระดับประสิทธิภาพและความทนทานในการเขียนโปรแกรมพร้อมกันหรือไม่? ฉันคิดว่าระบบปฏิบัติการให้ความคุ้มครองเมื่อเข้าถึงทรัพยากรระบบ (สมมติว่าผู้เขียนไดรเวอร์ทำงานได้ดี) ฐานข้อมูล ACID จัดเตรียมการป้องกันสำหรับการอ่านและอัพเดต ดังนั้นดูเหมือนว่านี่เป็นปัญหาที่แก้ไขได้ หรือโซลูชันที่ปลอดภัยทั่วไปจะลบประสิทธิภาพที่ได้จากการทำงานพร้อมกันหรือไม่ ภาษาหรือชุดเครื่องมืออื่นให้ความปลอดภัยพร้อมกันที่ Erlang ทำ (หรือไม่) หรือไม่? นี่เป็นคำถามที่ติดตามความคิดเห็นของ @ Malfist ในคำตอบของ @ user1249 …

3
Erlang เหมาะสำหรับแอปพลิเคชันระบบคลาวด์อย่างไร
เรากำลังเริ่มโครงการใหม่และนำไปใช้กับอินสแตนซ์ของ บริษัท openstack cloud (ดูhttp://www.openstack.org/ ) โครงการนี้เป็นเครื่องมือรักษาความปลอดภัยให้กับ บริษัท ของเรา ขณะนี้เราใช้เซิร์ฟเวอร์เฉพาะหลายร้อยเครื่องสำหรับเครื่องมือรักษาความปลอดภัยและย้ายพวกเขาไปยัง บริษัท ของเราในการเริ่มต้น openstack โครงการอื่น ๆ ใน บริษัท ของฉันใช้ erlang ในแอพพลิเคชั่นเซิร์ฟเวอร์แบบกระจายหลายตัวและ Q / A อื่น ๆ ที่ชี้ว่า erlang ถูกนำมาใช้ในบริการคลาวด์ยอดนิยมหลายอย่าง ฉันพยายามโน้มน้าวให้คนอื่นพิจารณาว่ามันอาจจะใช้กับโครงการของเราได้ที่ไหน จุดแข็งของ erlang สำหรับการโปรแกรมบนคลาวด์คืออะไร พื้นที่ใดบ้างที่เหมาะสมที่จะใช้ erlang
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.