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

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

8
ภาษา OO สมัยใหม่สามารถแข่งขันกับประสิทธิภาพการจัดเก็บอาร์เรย์ของ C ++ ได้หรือไม่
ฉันเพิ่งสังเกตเห็นว่าภาษาการเขียนโปรแกรม OO สมัยใหม่ทุกอย่างที่ฉันคุ้นเคยอย่างน้อยก็มี (ซึ่งโดยพื้นฐานแล้วก็คือ Java, C # และ D) ช่วยให้อาร์เรย์ covariant นั่นคืออาร์เรย์สตริงเป็นอาร์เรย์วัตถุ: Object[] arr = new String[2]; // Java, C# and D allow this อาร์เรย์ของ Covariant เป็นรูในระบบแบบสแตติก พวกเขาทำให้เกิดข้อผิดพลาดประเภทที่เป็นไปได้ที่ไม่สามารถตรวจพบได้ในเวลารวบรวมดังนั้นทุกการเขียนไปยังอาเรย์ต้องถูกตรวจสอบที่รันไทม์: arr[0] = "hello"; // ok arr[1] = new Object(); // ArrayStoreException ดูเหมือนว่าจะมีประสิทธิภาพที่แย่มากถ้าฉันทำร้านค้ามากมาย C ++ ไม่มีอาร์เรย์ที่แปรปรวนร่วมดังนั้นจึงไม่จำเป็นต้องทำการตรวจสอบรันไทม์อีกต่อไปซึ่งหมายความว่าไม่มีการลงโทษประสิทธิภาพ มีการวิเคราะห์เพื่อลดจำนวนการตรวจสอบรันไทม์ที่จำเป็นหรือไม่? ตัวอย่างเช่นถ้าฉันพูดว่า: arr[1] = arr[0]; ใครจะยืนยันว่าร้านค้าไม่อาจล้มเหลว ฉันแน่ใจว่ามีการเพิ่มประสิทธิภาพที่เป็นไปได้อื่น …
40 c#  java  c++  d 

6
ทำไมทีมที่ LMAX ใช้จาวาและออกแบบสถาปัตยกรรมเพื่อหลีกเลี่ยง GC ในทุกกรณี?
ทำไมทีมที่ LMAX จึงออกแบบLMAX Disruptorใน Java แต่ทุกจุดของการออกแบบเพื่อลดการใช้งาน GC หากไม่มีใครต้องการให้ GC ทำงานแล้วทำไมต้องใช้ภาษาที่รวบรวมขยะ? การเพิ่มประสิทธิภาพระดับความรู้ด้านฮาร์ดแวร์และความคิดของพวกเขานั้นยอดเยี่ยม แต่ทำไม Java ฉันไม่ได้ต่อต้าน Java หรืออะไร แต่ทำไมเป็นภาษา GC ทำไมไม่ใช้สิ่งที่ต้องการ D หรือภาษาอื่นที่ไม่มี GC แต่ให้โค้ดที่มีประสิทธิภาพ? เป็นทีมที่คุ้นเคยกับ Java มากที่สุดหรือ Java นั้นมีข้อได้เปรียบที่ไม่เหมือนใครหรือไม่? สมมติว่าพวกเขาพัฒนาโดยใช้ D พร้อมการจัดการหน่วยความจำด้วยตนเองสิ่งที่แตกต่างกันคืออะไร พวกเขาจะต้องคิดในระดับต่ำ (ซึ่งพวกเขาเป็นอยู่แล้ว) แต่พวกเขาสามารถบีบประสิทธิภาพที่ดีที่สุดออกมาจากระบบเหมือนเป็นเจ้าของภาษา

5
เหตุใด C ++ ไม่สามารถใช้แนวทางของ D ในการนำแนวคิดไปใช้
อย่างที่พวกคุณหลายคนรู้แนวคิดแนวทางของ C ++ สำหรับการ จำกัด ประเภทที่เป็นไปได้สำหรับอาร์กิวเมนต์เท็มเพลตล้มเหลวที่จะรวมอยู่ใน C ++ 11 ฉันเรียนรู้ว่าภาษาการเขียนโปรแกรม D 2.0 มีคุณสมบัติคล้ายกันสำหรับการเขียนโปรแกรมทั่วไป การแก้ปัญหาดูเหมือนว่าฉันจะค่อนข้างหรูหราและเรียบง่าย ดังนั้นคำถามของฉันทำไม C ++ ไม่สามารถใช้วิธีการที่คล้ายกัน เป้าหมายของแนวคิด C ++ อาจใหญ่กว่าการนำไปใช้ของ D หรือมรดกของ C ++ ป้องกันไม่ให้ใช้แนวทางดังกล่าว หรืออื่น ๆ ขอบคุณสำหรับคำตอบของคุณ ps หากต้องการดูตัวอย่างพลังการเขียนโปรแกรมทั่วไปของ D โปรดอ้างอิงถึงสิ่งนี้: /programming/7300298/metaprogramming-in-c-and-in-d/7303534#7303534
19 c++  templates  d 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.