การเขียนโปรแกรมภาษาในโลกแห่งความเป็นจริง? [ปิด]


138

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

แม้จะไม่มีผู้ใช้รายใหญ่ที่รู้จักกัน แต่ D ดูเหมือนจะเป็นภาษาที่น่าสนใจสำหรับฉันและจากข้อมูลของTIOBEมันเป็นที่นิยมพอสมควร


11
ประกาศเมื่อเร็ว ๆ นี้ในฟอรัม dlangปัจจุบัน Facebook ใช้ D ในการผลิต
sghill

ไม่มีอะไรใหญ่เพราะตัว D นั้นค่อนข้างยากจนในการสร้างแอพพลิเคชั่นที่ซับซ้อนขนาดใหญ่ มันดูดีมากบนพื้นผิว แต่เมื่อคุณพยายามทำทุกอย่างในเชิงพาณิชย์รอยแตกทั้งหมดเริ่มปรากฏขึ้นและมีความปรารถนาน้อยมากจากแฟน ๆ ชายเพื่อสร้างซอฟต์แวร์ที่มีโครงสร้างที่เหมาะสมสำหรับผู้ชมเชิงพาณิชย์ (ฉันแน่ใจว่าเงินมีส่วนเกี่ยวข้องกับ มันเป็นเช่นนั้น แต่ความเป็นผู้นำและองค์กร) มันเป็นสิ่งหนึ่งที่จะเขียนอรรถประโยชน์บรรทัดคำสั่งหรืออัลกอริทึม 5k บรรทัด แต่ที่แตกต่างกันอย่างสิ้นเชิงในการสร้างแอปทางธุรกิจที่ซับซ้อนมากที่เกี่ยวข้องกับหลายพื้นที่เช่นกุย, เสียง, ฯลฯ
Stretto

แน่ใจว่าคุณสามารถแฮ็คบางอย่างเข้าด้วยกัน แต่นั่นไม่ใช่เชิงพาณิชย์ ธุรกิจจะไม่ลงทุนเวลา / เงินในสิ่งที่ไม่สม่ำเสมอ ไม่มี IDE ที่เหมาะสมและทุกอย่างที่ฉันใช้ทำให้ฉันต้องการทุบตีบางสิ่งบางอย่างมันช้าลงประมาณ 10 เท่าในการตรวจแก้จุดบกพร่องแอปอย่างถูกต้องเนื่องจากข้อความแสดงข้อผิดพลาดแย่มากตัวดีบักไม่ทำงานหรือทำงานกับคุณ คุณสมบัติที่ทันสมัยที่เราคาดหวังนั้นไม่มีอยู่จริงหรือไม่ดีและห้องสมุดก็ fubar'ed เพราะมันไม่มีโครงสร้างเชิงตรรกะ (สิ่งต่าง ๆ ถูกย้ายโดยพลการ "กฎเกณฑ์" แผนการตั้งชื่อแปลก ๆ เช่น "chomp" และ "detabber" ฯลฯ
Stretto

ฉันเดาว่าเป็นหยิน / หยาง บางสิ่งใน D นั้นน่าทึ่งและไม่มีอะไรเข้ามาใกล้ (แต่) ... แต่ในอีกด้านหนึ่งสิ่งที่มันล้มเหลวก็ค่อนข้างแข็งแกร่งเช่นกัน มีเพียงสิ่งเดียวเท่านั้นที่ค้นพบสิ่งเหล่านี้เมื่อพวกเขาใช้เวลาในการเขียนแอพจริง ๆ แทนที่จะทำสิ่งที่ไม่สำคัญหรืออัลกอริทึม จนกว่าองค์กร D จะได้รับมันอึด้วยกัน (ใช้เวลานานแค่ไหน 10 ปี 20 ปี) ธุรกิจจริงจะไม่ลงทุน เวลาคือเงินและไม่มีธุรกิจใดต้องการใช้เวลาในการตรวจแก้จุดบกพร่องของแอป 10 เท่าเพราะ IDE ไม่ได้มีปัญหา
Stretto

@Stret คุณหมายถึงอะไร dlang.org/orgs-using-d.html
Bauss

คำตอบ:


77

ฉันใช้ D สำหรับงานวิจัยของฉันในสาขาคอมพิวเตอร์กราฟิก ฉันและคนอื่น ๆ มีเอกสารที่ตีพิมพ์ในสาขาของเราจากงานที่ทำโดยใช้ D. ฉันคิดว่ามันพร้อมสำหรับการใช้งานในโครงการวิจัยขนาดเล็กถึงขนาดกลาง เหมาะสำหรับงานวิจัยเพราะบ่อยครั้งที่คุณเริ่มต้นจากศูนย์ดังนั้นคุณไม่มีรหัสดั้งเดิมที่ต้องกังวลเกี่ยวกับการรวมเข้าด้วยกัน

อีกพื้นที่ที่ได้รับความนิยมสำหรับการใช้งานดูเหมือนจะเป็นบริการเว็บ หวังว่าคนอื่นจะสามารถแสดงความคิดเห็นว่าใครอยู่ในพื้นที่นี้ แต่ที่นั่นฉันคิดว่าความคิดนั้นก็คือการแสดงมักจะสำคัญจริงๆดังนั้นคุณจึงต้องการภาษาที่เรียบง่าย บริการมักจะมีขนาดเล็กกระบวนการที่มีในตัวเองดังนั้นการทำงานร่วมกันกับรหัส C ++ ดั้งเดิมจำนวนมากจึงไม่จำเป็นหรือมีประโยชน์จริงๆ ดังนั้น D สามารถรับเท้าของมันที่ประตู

ฉันคิดว่า D จะยังคงรับผู้ติดตามระดับรากหญ้าด้วยวิธีนี้ - ในโครงการขนาดเล็กที่ด้วยเหตุผลใดก็ตามที่สามารถทิ้งมรดก C ++ เพื่อรับภาษาโปรแกรมที่สนุกกว่าการใช้งานและอาจมีประสิทธิผลมากขึ้นด้วย

แต่จนกว่าจะมีผู้ใช้ระดับรากหญ้าจำนวนมากจะไม่มีทางที่ผู้ใช้ระดับองค์กรขนาดใหญ่ที่ฉันสงสัย


10
ฉันพัฒนาแอปพลิเคชันไคลเอนต์ / เซิร์ฟเวอร์อย่างหมดจดใน D ด้วยการเชื่อมโยงกับไลบรารี C แต่สำหรับส่วน GUI ของไคลเอนต์สำหรับหนึ่งในบริการยอดนิยมในเนเธอร์แลนด์ แม้ว่าฉันจะต้องโน้มน้าวให้เจ้านายของฉัน แต่ดูเหมือนว่าเขาจะไม่เสียใจ ;-) - D โดยเฉพาะอย่างยิ่งส่องที่นี่ทำให้ห้องสมุดมาตรฐานให้การใช้ซ็อกเก็ต BSD แม้ใน Windows เขียนครั้งเดียวปรับใช้ได้ทุกที่ดีมาก
Jesse Brands

@JesseBrands คุณใช้ phobos หรือ tango หรือไม่?
qed

88

ฉันทำงานด้านชีวสารสนเทศใน D สำหรับฉันสิ่งสำคัญเกี่ยวกับ D คือการใช้วิธีการในระดับที่ดีในการแลกเปลี่ยนและรับรู้หลักการของผลตอบแทนที่ลดลง

ซึ่งแตกต่างจาก C ++ ซึ่งปฏิบัติตามหลักการ zero-overhead อย่างเข้มงวด D อนุญาตให้ใช้คุณลักษณะที่อาจมีค่าใช้จ่ายด้านประสิทธิภาพ / พื้นที่ขนาดเล็กหากพวกเขาทำให้ภาษาใช้งานได้มากขึ้น สิ่งเหล่านี้รวมถึงการรวบรวมขยะวัตถุการตรวจสอบสำหรับแต่ละคลาสข้อมูลประเภทรันไทม์ ฯลฯ

ซึ่งแตกต่างจาก Ruby, Python, PHP และอื่น ๆ D พยายามที่จะเร็วเกือบเท่า C ถึงแม้ว่ามันจะมีไดนามิกน้อยกว่าและยากกว่าในการเขียนโปรแกรมในภาษาสคริปต์มากกว่า
ผลลัพธ์เป็นภาษาที่เหมาะสมที่สุดเมื่อทั้งเวลาในการพัฒนาและเวลาในการดำเนินการมีความสำคัญเท่ากันซึ่งในสาขาของฉันเกือบตลอดเวลา

ในทำนองเดียวกัน D ใช้แนวทางที่ปลอดภัยในระดับสูงและมีความยืดหยุ่น ถือว่าผู้เขียนโปรแกรมโดยพื้นฐานรู้ว่าพวกเขากำลังทำอะไร แต่ทำผิดพลาด

ซึ่งแตกต่างจาก C และ C ++ มันจะถือว่าคุณไม่ต้องการใช้พอยน์เตอร์, casts ที่ไม่ปลอดภัย, การจัดการหน่วยความจำด้วยตนเอง, และอื่น ๆ ในรหัสของคุณ, เพราะมันเกิดข้อผิดพลาดได้ง่าย, และสันนิษฐานว่าคุณไม่ต้องการร่อน ข้อความแสดงข้อผิดพลาดแม่แบบหน้าเมื่อคุณพลาดเพียงเพื่อใช้อาร์เรย์ที่ปรับขนาดได้

แตกต่างจากภาษาจาวาและภาษาทาส - และ - วินัยอื่น ๆ D สันนิษฐานว่าในบางครั้งพอยน์คาสต์ไม่ปลอดภัยการจัดการหน่วยความจำด้วยตนเอง ฯลฯ เป็นความชั่วร้ายที่จำเป็นและสมมติว่าคุณฉลาดพอที่จะรองรับเทมเพลตจริง รหัสที่สับสน นอกจากนี้ยังสมมติว่าคุณอาจพลาดและเข้าถึงอาเรย์นอกขอบเขต แต่โปรแกรมเมอร์รู้ดีที่สุดว่าควรทำการแลกเปลี่ยนอะไรบ้างระหว่างความปลอดภัยและความเร็วในทุกสถานการณ์ ดังนั้นไม่ว่าอาร์เรย์จะถูกตรวจสอบขอบเขตจะถูกกำหนดโดยคอมไพเลอร์สวิทช์


2
วัตถุตรวจสอบคืออะไร? ฉันดูเหมือนจะไม่พบผลลัพธ์สำหรับสิ่งนี้
Samaursa

2
ฉันชอบภาษา D มากเมื่อเทียบกับ C ++ เวลาในการคอมไพล์ได้เร็วขึ้นความสามารถในการใช้รหัสน้อยลงไม่มีไฟล์ส่วนหัว ฯลฯ ปัญหาอย่างไรก็ตามคือว่ามันไม่มีใครที่ใช้งาน GUI อย่างจริงจัง แน่นอนว่าฉันสามารถใช้ GtkD ได้ แต่ลองวาดแผนภูมิแฟนซีหลาย ๆ ชุด ฉันเห็นงานที่มีแนวโน้มในการรวมเข้ากับ Chromium สำหรับ GUI แต่โครงการนั้นส่วนใหญ่ไม่มีเอกสารและต้องการผู้เล่นมากขึ้นในพื้นที่นั้น ฉันหวังว่าการเปลี่ยนแปลงจะเกิดขึ้น แต่นั่นคือสิ่งที่ฉันเห็นที่นี่ในเดือนกันยายน 2558
Volomike

การตรวจสอบวัตถุคือพล่าม ** มันล็อควิธีการทั้งหมดมัน
เลวร้าย

@Volomike ฉันยังได้ดู D เมื่อเร็ว ๆ นี้และในทำนองเดียวกันมันเป็นเรื่องยากที่จะสร้างเครื่องมือเชื่อมต่อแบบกราฟิกกับมัน ขณะนี้ฉันไม่มีโซลูชัน defacto สำหรับการสร้างเครื่องมือ GUI ที่หรูหราด้วย D และนั่นคือสิ่งที่ฉันอาจเริ่มแก้ไขปัญหาในไม่ช้า
dimiguel

32

ฉันรู้จัก บริษัท เล็ก ๆ แห่งหนึ่งที่ส่งผลิตภัณฑ์เซิร์ฟเวอร์เมลไปยังตลาด พวกเขามีอย่างน้อย 2 คนทำงานเต็มเวลาในโครงการ

นอกจากนี้ผู้เล่นหลักในธุรกิจไอทียังมีพนักงานหลายคนที่ใช้ D ในโครงการภายในที่ใหญ่กว่า

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

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

เปอร์เซ็นต์รายได้ปัจจุบันของฉันมาจาก D


คุณช่วยเสนอชื่อองค์กรให้หน่อยได้ไหม? นอกจากนี้ยังเป็นการดีที่ได้ทราบเพิ่มเติมเกี่ยวกับโครงการเหล่านี้
nbro

28

ฉันใช้ D เพื่อการพัฒนาเว็บและพิสูจน์แล้วว่ามีประสิทธิภาพมากกว่าเมื่อเทียบกับ C / C ++ มีกรอบการทำงานมากมายตาม ruby ​​/ php / python แน่นอน แต่เมื่อคุณต้องการพัฒนาสิ่งที่ไม่เหมือนใครซึ่งต้องรวดเร็วเหมือน C และเกือบจะง่ายเหมือนการเขียนโปรแกรมด้วยภาษาสคริปต์หลาย ๆ ภาษา D เป็นตัวเลือกที่ดี


3
ฉันถามได้ไหม? คุณใช้เฟรมเวิร์กหรือไลบรารีใด
Zelenova

26

ฉันใช้ D สำหรับฮาร์ดแวร์ในสภาพแวดล้อมการทดสอบลูป (HIL) นี่คือการทดสอบซอฟต์แวร์ในพื้นที่ยานยนต์ D สามารถใช้ที่นี่เนื่องจากเป็นภาษาการเขียนโปรแกรมระบบจึงเป็นไปได้ที่จะใช้ในโปรแกรมแบบเรียลไทม์ (ตัวจัดการ IRQ ในส่วนขยายแบบเรียลไทม์ของลินุกซ์ RTAI-LXRT)

ด้วยพอร์ตต่อเนื่องของ SWT / JFace ฉันวางแผนที่จะทำมากขึ้นและทำงานใน D ซึ่งฉันจะต้องทำใน Java มาก่อน



19

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

มีตัวอย่างบางส่วนของนักฟิสิกส์ที่ใช้ D เพื่อปรับปรุงโปรแกรมของพวกเขาด้วยการเขียนโปรแกรมเมตาใน D

วิดีโอ - การพูดคุยการประชุมไม่สามารถหาแหล่งที่มาของการใช้งานของนักฟิสิกส์


โครงการที่คล้ายกันของฉันใน D dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS

17

โครงสร้างพื้นฐานเครือข่ายทั้งหมดของเรา (การรับส่งข้อมูลสูง) ใช้ D1 และแทงโก้เท่านั้น เราเป็น บริษัท เริ่มต้นเล็กในเบอร์ลิน: sociomantic.com


14

งานปัจจุบันของฉันคือระบบแปล C # เป็น D นี่เป็นส่วนหนึ่งของโครงการกำไรเพื่อพัฒนาระบบซอฟต์แวร์




7

เกมจำนวนมากที่วางจำหน่ายโดยABA Gamesนั้นเขียนด้วย D 1.x แต่ฉันคิดว่าพอร์ตคอนโซลจะต้องเขียนใหม่ใน C ++

ฉันเขียนต้นแบบเกมค่อนข้างน้อยใน D แต่ฉันไม่แน่ใจว่าสิ่งนี้มีคุณสมบัติเป็น 'โลกแห่งความจริง' หรือไม่เพราะฉันเขียนมันเพื่อผลประโยชน์ของตัวเองและไม่เคยปล่อยออกมาเลย


คุณช่วยกรุณาเจาะจงมากขึ้นเกี่ยวกับเกมที่สร้างขึ้นโดยใช้ D?
nbro

7

ฉันเขียน (และฉันยังคงรักษาและพัฒนาอยู่) ซอฟต์แวร์สำหรับการแปลงโปรโตคอลทดสอบจากสถานีทดสอบฮาร์ดแวร์ต่างๆเป็นรูปแบบผลลัพธ์มาตรฐานสำหรับการตรวจสอบย้อนกลับและสิ่งต่างๆ

ทั้งหมดรวมกันมากกว่า 5k บรรทัดของรหัสเขียนด้วย D 1.x และคลัง Phobos

D นั้นง่ายมากที่จะเรียนรู้และไม่ใส่ใจกับข้อผิดพลาดบางอย่าง (ในคลัง Phobos) ความสุขที่แท้จริงในการเขียนโปรแกรม


6

ฉันใช้ D สำหรับโครงการวิจัยของฉันในการพัฒนาอัลกอริทึมการเพิ่มประสิทธิภาพระดับโลก ฉันใช้มันกับปัญหาการฝึกอบรมโครงข่ายประสาทเทียม มันขึ้นอยู่กับคุณว่าคุณต้องการเรียกสิ่งนี้ว่า "โลกแห่งความจริง"


มีซอร์สโค้ดหรือข้อมูลบางอย่างเกี่ยวกับสิ่งที่คุณทำหรือไม่?
2560


6

ฉันใช้ D2 มาตรฐานที่สองของรุ่น ฉันเขียนแอปพลิเคชันแบบเรียลไทม์ (ตัวอย่างเช่นโปรแกรม 3D)

ภาษามีพลังมากขึ้นทุกวัน D นั้นเป็นประโยชน์อย่างมากและคุณลักษณะทั้งหมดที่ฝังตัวโดยเฉพาะอย่างยิ่งกระบวนทัศน์เชิงเปรียบเทียบทำให้มันอยู่ไกลเกินกว่า C ++ ในความคิดของฉัน ไวยากรณ์มีความชัดเจนมากขึ้นคุณสามารถใช้ความแรงของการตั้งโปรแกรมการทำงานผ่านฟังก์ชั่นเช่นตัวกรองหรือลดและหนึ่งในคุณสมบัติที่สำคัญที่สุด: คุณสามารถใช้ C libs ทั้งหมด

ภาษาโปรดของฉันแน่นอนและฉันค่อนข้างแน่ใจว่ามันจะเป็นภาษาที่ใช้แพร่กระจาย


เป็นไปได้ไหมที่จะเห็นซอร์สโค้ดของบางสิ่งที่คุณสร้างขึ้นโดยใช้ D
nbro

ไม่นานมานี้ตั้งแต่ความคิดเห็นนั้น! ตอนนี้ฉันเขียนโปรแกรมใน Rust และ Haskell แต่ฉันมีโครงการไม่กี่โครงการ ฉันมีบางอย่างเกี่ยวกับ GitHub ของฉัน แต่ฉันไม่คิดว่ามันคุ้มค่าที่จะขุด ความคิดเห็นนั้นอายุ 4 ขวบ! ฉันควรจะดูสถานะปัจจุบันของทั้งหมดนี้ ...
phaazon

4

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

ต้องบอกว่า Walter Bright ทำงานเกี่ยวกับภาษามาหลายปีแล้วและฉันคิดว่าเขามีจำนวน `ผู้ติดตาม 'ที่จำได้ดีว่าเขาทำอะไรได้ดีกับคอมไพเลอร์ Zortech C ++ ในยุค 90 ฉันยังทราบด้วยว่าภาษาดูเหมือนจะเอนไปทางทิศทางการใช้งานทันที


3
จริงๆแล้วมันเป็นไปไม่ได้ที่จะค้นหา D บนเว็บไซต์นี้ในขณะนี้ การค้นหา "d" หรือ "d programming" ระบุว่า "no hits" และการค้นหาบนแท็กสำหรับ "d" แสดงรายการหน้าแท็กที่มี "d" แต่ไม่มี "d" ด้วยตัวเอง นั่นอาจมีบางอย่างที่เกี่ยวข้องกับมันเช่นกัน
Baxissimo

20
ค้นหา [d] ในช่องค้นหาเพื่อรับการค้นหาด้วยแท็ก
Gregg Lind

2

เว็บไซต์ทางการของ D ระบุองค์กรที่กำลังใช้ D

http://dlang.org/orgs-using-d.html

D วิกิพีเดียนอกจากนี้ยังมีรายชื่อขององค์กร แต่มันล้าสมัย

เพียงแค่ดูอย่างระมัดระวังDConfเจรจา

เกือบทุกคนทำงานที่ บริษัท บางแห่งและใช้ D ในที่ทำงาน


0

ฉันเริ่มต้นโครงการเพื่อเขียนเครื่องมือภายในของเราจาก Perl ถึง D ฉันเลือก D เพราะฉันค่อนข้างตื่นเต้นกับปรัชญาการออกแบบของภาษา ฉันเขียนโปรแกรมมาเป็นเวลานานและใช้ภาษาจำนวนมากตั้งแต่แอสเซมเบลอร์จนถึงไฮสคูล (ส่วนใหญ่ C) จนถึงการเขียนสคริปต์ภาษา (ส่วนใหญ่เป็นภาษา Perl) และ D เป็นภาษาแรกที่ฉันกระตือรือร้นเกี่ยวกับการเรียนรู้ในหลายปี .

ฉันตัดสินใจย้ายไปใช้ภาษาที่รวบรวมด้วยเหตุผลหลักประการหนึ่งคือความปลอดภัย ฟังก์ชั่น Perl ทำงานได้ค่อนข้างดีสำหรับชุดเครื่องมือที่ฉันทำงาน แต่มันไม่ปลอดภัย - ทุกคนที่สามารถเรียกใช้สคริปต์สามารถอ่านคัดลอกและสร้างเครื่องมือที่แก้ไขได้ด้วยตนเอง (และพวกเขาทำ) ฉันรู้ว่ามีวิธีการวนรอบเพื่อแก้ไขปัญหานี้ (เรียงลำดับ) แต่ตามจริงแล้วฉันไม่มีเวลามากพอในการจัดการทั้งหมดและยังทำให้งานหลักสำเร็จ


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