2 คะแนน โดย GN⁺ 2023-09-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความที่เขียนโดย Joe Armstrong บุคคลที่มีชื่อเสียงในชุมชน Erlang ซึ่งพูดถึงโปรแกรม Erlang ที่เขาชื่นชอบที่สุด
  • โปรแกรมนั้นคือ "Universal Server" ซึ่งเป็นแนวคิดในการทำให้แนวคิดของเซิร์ฟเวอร์เป็นแบบทั่วไป เพื่อสร้างเซิร์ฟเวอร์ที่สามารถถูกสั่งให้กลายเป็นเซิร์ฟเวอร์เฉพาะทางได้
  • Universal Server จะรอข้อความ {become, F} และเมื่อ F เป็นฟังก์ชัน มันก็จะกลายเป็นเซิร์ฟเวอร์ F
  • Armstrong ยกตัวอย่าง "Factorial Server" ซึ่งรอรับจำนวนเต็มและส่งค่าฟังก์ชันแฟกทอเรียลของจำนวนนั้นกลับมา
  • เขาแสดงวิธีสร้างฟังก์ชันที่สร้าง Universal Server จากนั้นส่งข้อความว่า "จงกลายเป็นแฟกทอเรียลเซิร์ฟเวอร์" ส่งจำนวนเต็ม รอคำตอบ และพิมพ์ผลลัพธ์
  • เขาเล่าเกร็ดจากช่วงเวลาที่ SICS ซึ่งเขาสามารถเข้าถึง Planet Lab ได้ เครือข่ายวิจัยที่ประกอบด้วยคอมพิวเตอร์ 9000 เครื่อง
  • เขาใช้ Planet Lab เป็น testbed จริงสำหรับแอปพลิเคชันแบบกระจาย โดยติดตั้ง Universal Erlang server แบบว่างไว้บนทุกเครื่องของ Planet Lab และตั้งค่าอัลกอริทึมแบบ gossip ที่ทำให้ข้อความ become แพร่กระจายไปทั่วเครือข่าย
  • สิ่งนี้ทำให้เขาสามารถเปลี่ยนเครือข่ายให้เป็นอะไรก็ได้ที่ต้องการอย่างรวดเร็ว และเขาใช้มันเพื่อสร้าง content delivery network สำหรับงานวิจัย
  • บทความนี้แสดงให้เห็นถึงความยืดหยุ่นและพลังของ Erlang ในการสร้างระบบแบบไดนามิกและแบบกระจาย

1 ความคิดเห็น

 
GN⁺ 2023-09-09
ความคิดเห็นจาก Hacker News
  • บทความเกี่ยวกับพลังและความยืดหยุ่นของฟังก์ชัน server closure ของ Erlang ซึ่งสามารถรับข้อความของตัวเองและข้อความ {becom, F} ได้ ทำให้เซิร์ฟเวอร์พัฒนาต่อไปได้เรื่อย ๆ
  • ผู้แสดงความคิดเห็นรำลึกถึง Joe Armstrong บุคคลสำคัญของชุมชน Erlang ซึ่งเป็นที่รู้จักจากความหลงใหลในเทคโนโลยีและวิสัยทัศน์ล่วงหน้าเกี่ยวกับทิศทางของ Windows
  • มีการแชร์ลิงก์ภาพรวมสั้น ๆ ของ BEAM ซึ่งเป็น virtual machine ของ Erlang โดยเน้นคุณลักษณะเฉพาะเมื่อเทียบกับ VM อื่น ๆ อย่าง JVM และ Node
  • ผู้แสดงความคิดเห็นบางส่วนแสดงความสับสนเกี่ยวกับจุดประสงค์และพลังของ universal server ของ Erlang และขอคำอธิบายที่ชัดเจนจากผู้อื่น
  • มีการบอกว่าทอล์กที่บล็อกโพสต์กล่าวถึงนั้นแนะนำอย่างมากสำหรับผู้แสดงความคิดเห็น
  • มีการเน้นว่า BEAM และ concurrency ของ Erlang นั้นพิเศษและมีเอกลักษณ์เมื่อเทียบกับ concurrency ในภาษาอย่าง Go หรือ Java
  • มีการแชร์บทเรียนการเขียน basic server ใน Erlang โดย Joe Armstrong ซึ่งเน้นพลังของภาษาแบบ asynchronous อย่าง Erlang/Elixir
  • ผู้แสดงความคิดเห็นแสดงความชื่นชมต่อ Joe Armstrong โดยมีคนหนึ่งเรียกเขาว่าเป็นโปรแกรมเมอร์ Erlang คนโปรดของตน
  • ภาษา Julia ถูกกล่าวถึงว่าเป็นสิ่งที่ผู้แสดงความคิดเห็นคนหนึ่งกำลังหมกมุ่นอยู่ในช่วงนี้ โดยสังเกตความคล้ายกับ Erlang ในโมเดลแบบ distributed และความง่ายในการทำสำเนา "instant server" ข้ามหลายโหนด