เหตุใดจึงไม่มีภาษาการเขียนโปรแกรม“ สากล” ที่ตอบสนองทุกวัตถุประสงค์ [ปิด]


57

ทำไมไม่รวมคุณสมบัติที่ดีที่สุดของภาษาการเขียนโปรแกรมที่มีอยู่ทั้งหมดเข้าด้วยกันในภาษาสากล


23
คำว่า 'ดีที่สุด' เป็นเรื่องส่วนตัวดังนั้นคุณไม่เคยได้รับการยอมรับที่ดีที่สุด แน่นอนว่ามีบางภาษาที่เหมาะสำหรับการพัฒนาในทุกแพลตฟอร์ม C ++ และ Java เป็นสองหลัก
GrandmasterB

5
@GrandmasterB คุณลืม C #
Daniel Little

15
นั่นคือมันเรียกว่า 'C'
Martin Beckett

9
เราเป็นสายพันธุ์ที่มีความสามารถโดยธรรมชาติจะไม่เห็นด้วย (โดยอาศัยอำนาจตามความแตกต่างของเรา) ดังนั้นเราจะไม่เห็นด้วยกับสิ่งที่จะต้องครอบคลุมและด้วยเหตุนี้จะมีไม่เคยเป็นหนึ่ง (อย่างน้อยไม่ได้เป็นหนึ่งที่สร้างขึ้นโดยมนุษย์!)
สะเดา

9
ภาษาโปรแกรมสากลหรือไม่ คุณหมายถึงคล้ายกับภาษามนุษย์สากลที่ทุกคนเปลี่ยนไปเมื่อหลายปีก่อน?
Kyralessa

คำตอบ:


116

ด้วยเหตุผลเดียวกันคุณไม่ได้ใช้มีดทหารสวิสเพื่อแกะเนื้อไก่ ...

http://upload.wikimedia.org/wikipedia/commons/thumb/4/48/My_swiss_army_knife.JPG/800px-My_swiss_army_knife.JPG

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

การออกแบบมีดและความยืดหยุ่นของมันทำให้ทั้งคู่ได้รับการยอมรับทั่วโลก ...


26
ด้วยเหตุผลเดียวกันคุณไม่ได้นำรถมินิแวนไปแข่งลาก ด้วยเหตุผลเดียวกันกับที่คุณไม่ได้นำปืนพกน้ำมาดวล
Chris

19
@ Chris เกิดอะไรขึ้นถ้ามันเป็นดวลปืนพกน้ำ?
สนิม

44
ด้วยเหตุผลเดียวกับที่คุณไม่เคยไปกับชาวเกาะซิซิลีเมื่อความตายอยู่ในสาย
สนิม

6
หากคุณมีมีดทหารสวิสที่ทำทุกสิ่งที่คุณต้องการในการสร้างบ้านมันจะดีสำหรับพวกเขาหรือไม่?
Brad Mace

4
คำตอบนี้เป็นการเปรียบเทียบที่น่ากลัว บางทีถ้าคุณเขียน: เพราะภาษาฝรั่งเศสอนุญาตการแสดงออกที่แตกต่างจากภาษาอังกฤษฉันอาจจะชอบการเปรียบเทียบที่ดีกว่า แต่ภาษาคอมพิวเตอร์ไม่ใช่ 'สิ่งของ' หรือภาษามนุษย์ คำตอบที่ถูกต้องคือ: เราไม่รู้ มันจะต้องมีความเข้าใจมากขึ้นว่ามนุษย์แสดงตรรกะและวิธีการที่พวกเขามาถึงจุดนี้ นอกจากนี้บางภาษาคือ 'meta-languages' สามารถแสดง DSL อื่น ๆ ได้ เราควรรวมสิ่งเหล่านี้ไว้ในคำถามของคุณหรือไม่
Dibbeke

80

เพราะ

  1. ไม่มีใครต้องการที่จะเขียนรหัสเดิมทั้งหมด
  2. มันยากที่จะเห็นด้วยกับทุกวัตถุประสงค์
  3. เมื่อคุณรวบรวมรายการวัตถุประสงค์ที่ครอบคลุมพวกเขาจะเปลี่ยนแปลงก่อนที่คุณจะสร้างมันขึ้นมา
  4. บางคนอาจเริ่มภาษาที่แตกต่างอย่างสิ้นเชิงเนื่องจากจุดประสงค์ใหม่
  5. ไมโครซอฟท์
  6. แอปเปิ้ล
  7. โอเพ่นซอร์ส
  8. เราจะทำอะไรกับปลาบาเบลทั้งหมด?
  9. ไม่สามารถสร้าง SQL แบบสากลได้

คุณหยุดสั้น ฉันคาดหวังหนึ่งในรายการ "10 อันดับแรก" ที่หายาก
Jeffrey Hantin

4
+1 อย่างน้อยก็ในตอนนี้สำหรับแคมเปญ "Save the Babel Fish" พวกฮิปปี้
สนิม

2
สำหรับปลาบาเบลทำซูชิ!
Muad'Dib 29'11

1
เกี่ยวกับจุดที่ 1 รหัสดั้งเดิมทั้งหมดจะต้องถูกเขียนใหม่ในที่สุดโดยใช้ fad ล่าสุดในรหัส / ไลบรารีหรือจะไม่สามารถทำงานได้อย่างมีประสิทธิภาพโดยไม่ต้องเสียค่าใช้จ่ายในการสนับสนุนจำนวนมาก
Michael

38

สิ่งที่คุณมีในการเขียนโปรแกรมคือโดเมนที่มีปัญหามาก โดเมนนี้มีช่วงที่มากและในหลายทิศทาง

นี่คือสาเหตุที่คอนโทรลเลอร์การบินฝังตัวถูกเขียนใน C และเว็บไซต์เขียนด้วย PHP, Java, Rails, .NET และโฮสต์ของผู้อื่น

สำหรับตัวควบคุมเที่ยวบินที่ฝังตัวฉันมีหน่วยความจำประมาณ 128k เพื่อทำงานด้วยและเหนือสิ่งอื่นใดหากรหัสของฉันได้รับข้อยกเว้นที่ไม่สามารถจัดการได้เครื่องบินขัดข้องคน 200 คนตายและฉันถูกฟ้องให้ปรับ $ 1B และต้องส่งวิศวกรทุก สนามบินในโลกเพื่อซ่อมอากาศยานที่ลงดินสูญเสียลูกค้าของฉัน $ 10M / วัน ฉันต้องทำงานกับภาษาที่แน่นมากและมีชิ้นส่วนเคลื่อนไหวจำนวนน้อยที่อาจผิดพลาดได้

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

เว็บไซต์ยังไม่ได้เขียนใน C มานานกว่า 15 ปี (ใครทำสคริปต์ cgi?) และเท่าที่ฉันรู้ว่าผู้ควบคุมการบินกำลังเริ่มมองหา C ++ แต่ในทางที่ จำกัด มาก


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

3
คุณมีความคิดใด ๆ ว่า Facebook เป็นอย่างไร พวกเขาเพิ่งโพสต์พวกเขากดรหัสทุก 37 นาที เว็บไซต์ของพวกเขามีการ borked อยู่ตลอดเวลาไม่ทางใดก็ทางหนึ่งและพวกเขามีตั๋วหนึ่งล้านในงานในมือ ประเด็นคือกับเว็บที่ไม่มีใครจะตายคุณ "อาจ" ขายไม่กี่ราย แต่ในความเสี่ยงไม่มาก ปัญหาส่วนใหญ่ที่คุณเผชิญจะส่งผลกระทบต่อลูกค้าเพียงเล็กน้อยเท่านั้นไม่ใช่ฐานทั้งหมด
Bill Leeper

24
  1. ไปที่โรงรถของคุณ (หรือโรงรถของพ่อแม่ของคุณ)
  2. เปิดกล่องเครื่องมือ
  3. หากคุณเห็นเครื่องมือมากกว่าหนึ่งให้คิดเกี่ยวกับวิธีการที่ใช้กับคำถามของคุณ

หากคุณไม่มีกล่องเครื่องมือหรือมีค้อนเล็ก ๆ หนึ่งในนั้นที่มีไขควงไขควงในที่จับกลวงฉันก็มีความเห็นอกเห็นใจที่ดีสำหรับคุณ

อย่างจริงจัง. หากคุณไปที่ร้านขายรถยนต์ช่างเครื่องของคุณมีเครื่องมือทำทุกอย่างในเครื่องมือของเขาหรือไม่? He (หรือเธอ) เป็นมืออาชีพด้วยเครื่องมือระดับมืออาชีพที่ออกแบบมาโดยเฉพาะเพื่อทำงานซ่อมรถยนต์ต่าง ๆ

ในทำนองเดียวกันนักพัฒนาซอฟต์แวร์มืออาชีพควรมีชุดเครื่องมือเพียงพอที่จะทำการค้าของเขา / เธอ หากคุณเปิดกล่องเครื่องมือและเห็นเพียงไขควง [ซอฟต์แวร์ที่เทียบเท่ากับ] ของ Philips คุณจะไม่สามารถพิจารณาถึงความเป็นมืออาชีพได้

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


นั่นรวมถึง "โรงรถของผู้ปกครอง" นั่นทำให้ชัดเจนขึ้นเพราะฉันไม่มีที่จอดรถ
Dan Rosenstark

5
การเปรียบเทียบที่ดีกว่าจะเป็นภาษาก็เหมือนกล่องเครื่องมือมากกว่าเครื่องมือบางอย่าง
Tom Hawtin - tackline

4
อาจมีเครื่องมือต่าง ๆ 20 แบบในกล่อง แต่ฉันพนันว่าคุณต้องการเพียงหนึ่งภาษาในการอธิบายพวกเขา
ThomasX

2
วันนี้กล่องเครื่องมือเป็นเหมือนห้องสมุดที่มีให้สำหรับภาษาที่เป็นปัญหา
Michael

18

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

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

เกิดอะไรขึ้นถ้าภาษาการเขียนโปรแกรมเป็นกล่องเครื่องมือ

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

แนวคิดมีอยู่แล้วบางส่วนแล้ว ตัวอย่างเช่นภาษาเช่นNemerleช่วยให้คุณเพิ่มไวยากรณ์ให้กับภาษาและดังนั้นคุณอาจจะสามารถใช้ "คุณสมบัติที่ดีที่สุดจากภาษา X" และเพิ่มลงใน Nemerle (หรือของคุณเอง) นี่ไม่ได้แปลว่าการเขียนมาโครของคุณเองตลอดเวลา - แต่ละภาษา (หรือกระบวนทัศน์) สามารถกำหนดไว้ในมาโครในไลบรารีมาตรฐาน - ซึ่งคุณสามารถทำได้import Haskell; import Prolog;และเริ่มเขียนทั้งสองภาษาราวกับว่ามันเป็นส่วนหนึ่งของ ภาษาของคุณ?

คำถามก็คือ - คุณจะให้คุณสมบัติของภาษา / กระบวนทัศน์ต่าง ๆ ทำงานร่วมกันได้อย่างไร ในขณะที่ฉันไม่สามารถตอบได้กรอบงานเช่น. Net และ JVM นำเสนอวิธีแก้ปัญหาบางอย่าง - ภาษามีความเข้ากันได้อย่างน้อยบางส่วนเนื่องจากวิธีการรวบรวม คุณสามารถนำโค้ดใด ๆ ที่เขียนใน C # และใช้จาก F # โดยไม่มีการร้องเรียน

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

หินที่ก้าวไปสู่การกำจัดสิ่งกีดขวางนั้นจะอนุญาตให้ใช้รหัสภาษาต่าง ๆ (เช่น C # และ F #) เพื่อคอมไพล์ภายในโครงการเดียวกัน ในทางทฤษฎีคุณสามารถรวบรวมแต่ละไฟล์แยกกัน (หรือในกลุ่ม - หากพวกเขามีบางส่วนหรือการอ้างอิงแบบวงกลม) จากนั้นรวบรวมไฟล์ของภาษาที่แตกต่างกันซึ่งสามารถเข้าถึงวัตถุที่รวบรวม (CIL) แล้ว คุณจะต้องกำหนดลำดับของการรวบรวมอย่างเคร่งครัดเพื่อให้ทำงานได้ แต่ต้องมีลำดับของการรวบรวมในกรณีของ F #

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


4
โลกทั้งใบไม่ใช่พีซี โปรเซสเซอร์ส่วนใหญ่บนโลกใบนี้มีพื้นที่หน่วยความจำน้อยกว่า 64K ไบต์ ภาษาที่สามารถใช้กับตัวประมวลผลเหล่านี้ได้จะต้องถูกลดลงจากที่ส่วนใหญ่ในฟอรัมนี้ดูเหมือนจะใช้ว่าภาษาสากลของคุณจะจบลงด้วยภาษาแอสเซมบลีที่ได้รับการปรับปรุง ฉันคิดว่าจะเรียกว่า "C"
คุณ

10

ฟีเจอร์ที่ดีที่สุดของบางภาษาขัดแย้งกับฟีเจอร์ที่ดีที่สุดของบางภาษา

ตัวอย่างเช่น: การสะท้อนการรับรู้แบบพิมพ์เป็นคุณลักษณะที่ดีมาก แต่มันจะไม่คุ้มค่ามากนักในภาษาที่พิมพ์อย่างหลวม ๆ แต่การพิมพ์แบบหลวม ๆ ก็มีประโยชน์เช่นกัน

แม้แต่ในภาษาเดียวคุณก็ไม่สามารถใช้คุณสมบัติที่ดีที่สุดทั้งหมดได้ในเวลาเดียวกันเพราะมันขัดแย้งกัน


แต่ถ้าคุณสมบัตินี้ถูกเปิดใช้งาน / ปิดการใช้งานตามความจำเป็นเช่น: คุณสามารถเปิดใช้งานการสะท้อนการรับรู้ประเภทและปิดการใช้งานความสามารถทางภาษาที่พิมพ์อย่างอิสระและอื่น ๆ ...
killown

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

killown คุณพูดถูก แต่การแก้ปัญหาด้วยการทำให้ภาษาที่สามารถกำหนดค่าได้พิเศษนั้นทำให้ภาษานั้นใช้งานได้ยากอย่างที่ฟินนิคอธิบาย ฉันชอบภาษาที่ยืดหยุ่นที่ช่วยให้สิ่งต่าง ๆ แม้ว่าจะเป็นอันตรายในบางกรณี แต่ระดับของการกำหนดค่าที่คุณจะต้องรวมแนวคิดบางอย่างจะทำให้มันซับซ้อนกว่าการเพียงแค่ถอยกลับและเขียนวิธีแก้ปัญหาในระดับต่ำ C หรืออะไรบางอย่าง .
Bill

1
+1 สำหรับฟีเจอร์ที่ขัดแย้ง
Frank Shearar

ฉันคิดว่าปัญหาไม่ได้เกิดจากความขัดแย้งของภาษาเท่านั้น แต่มีหลายภาษาที่ใช้กรอบงานพื้นฐานซึ่งรวมถึงคุณลักษณะที่กำหนดระดับค่าใช้จ่ายในระดับหนึ่ง แต่ให้การดำเนินการบางอย่างง่ายขึ้น ภาษามักจะมี 'รูปแบบการใช้งานปกติ' บางอย่างที่เกี่ยวข้องกับพวกเขา การเลือกคุณลักษณะใดที่ควรรวมอยู่ในกรอบงานและควรใช้รูปแบบการเขียนรหัสใดเกี่ยวข้องกับการแลกเปลี่ยน และการผสมผสานคุณสมบัติและรูปแบบที่แตกต่างกันจะดีกว่าสำหรับการใช้งานที่แตกต่างกัน
supercat

7

"แจ็คของการซื้อขายทั้งหมด - ต้นแบบของไม่มี" สปริงใจ

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

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


4

นั่นคือ ไม่มีเครื่องมือที่ดีที่สุดสำหรับทุกสิ่ง แต่เครื่องมือบางอย่างเช่นภาษาการเขียนโปรแกรมจำนวนมากให้บริการในทุก ๆ วัตถุประสงค์ไม่ใช่สิ่งที่ดีที่สุดสำหรับทุกคน

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


4

เพราะสิ่งที่ฉันเรียกว่า "การทำให้เป็นเรื่องธรรมดา / ความขัดแย้งเฉพาะทาง" ซึ่งอาจมีชื่ออื่นและไม่ใช่ความขัดแย้ง

ยิ่งการเขียนโปรแกรมภาษาทั่วไปมากเท่าไหร่ ยิ่งภาษามีความเชี่ยวชาญมากเท่าไหร่คุณก็จะยิ่งประสบความสำเร็จน้อยลงเท่านั้น


2
ฉันเห็นด้วยกับคุณยกเว้นว่าเป็นไปได้ที่จะมีห้องสมุดเฉพาะทางในภาษาทั่วไป
dan_waterworth

@dan: เห็นด้วย แต่เฉพาะในกรณีที่ภาษามุ่งเน้นไปที่การให้บริการคุณลักษณะแก่นักเขียนห้องสมุด ภาษาที่ฉันชอบสองภาษาคือ D และ Python ทั้งสองเป็นภาษาที่ค่อนข้างเป็นธรรม (โดยเฉพาะ D) แต่ทั้งคู่มีคุณสมบัติมากมายสำหรับผู้เขียนไลบรารีดังนั้นคุณสามารถสร้างห้องสมุดของคุณเองเพื่อจัดการกับสิ่งพิเศษ ฉันชังซุปเปอร์ภาษาเฉพาะโดเมนเช่น Matlab และอาร์
dsimcha

4

ภาษากำหนดลักษณะที่ผู้คนคิด นี่เป็นเรื่องจริงสำหรับภาษาธรรมชาติ หากเด็กรู้เพียงภาษาเดียวกับตัวเลข "หนึ่ง, สอง, หลายภาษา" การสอนคณิตศาสตร์สำหรับเด็กนั้นยาก ... (ขออภัยฉันไม่มีลิงค์) ในภาษาอังกฤษเราพูดถึงเวลาที่ต่างกันราวกับว่าพวกเขาอยู่ในสถานที่ต่าง ๆ ดังนั้นแนวคิดของการเดินทางข้ามเวลาจึงเป็นไปได้ที่จะจินตนาการ ในบางภาษาความคิดเรื่องการเดินทางข้ามเวลาจะไม่เกิดขึ้นกับผู้พูด

สิ่งนี้เป็นจริงสำหรับภาษาโปรแกรม

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

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

"แลมบ์ดา" เป็นไปได้เสมอในซีไวยากรณ์ปิดอยู่รวมถึงโค้ดที่กระจายอยู่ทั่วทั้งโครงการ / ไฟล์ดังนั้นจึงไม่ใช่โซลูชันที่ต้องการ ด้วยเวอร์ชัน no-capture / upvalue / etc ให้กำหนดฟังก์ชันที่อื่นและส่งต่อตัวชี้ไปยังฟังก์ชัน (ดูqsort () ) หากต้องการใช้ lambdas กับค่าที่จับได้ปริมาณและความซับซ้อนของรหัสที่คุณต้องเขียนเพิ่มขึ้นมากเท่าที่ฉันรู้ว่าไม่มีใครเคยเขียนรหัสเพื่อใช้วิธีการเขียนโปรแกรมนี้ใน C. ตรงข้ามกับภาษาที่ lambdas เป็นส่วนหนึ่งของภาษาและใช้โดยทั่วไปทุกที่

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

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


2
"ในบางภาษาความคิดเรื่องการเดินทางข้ามเวลาจะไม่เกิดขึ้นกับผู้พูด" ต้องการการอ้างอิง สมมติฐาน Sapir – Whorf ไม่ได้รับการยอมรับอย่างกว้างขวางเป็นพิเศษในรูปแบบที่แข็งแกร่ง
มูฮัมหมัด Alkarouri

4

ความเป็นไปไม่ได้ที่คุณจะได้รับข้อดีทางเทคนิคของการมีภาษาสากล? นั่นเป็นเรื่องไร้สาระทั้งหมด คุณทำได้มีภาษาสากลที่ครอบคลุมทุกภาษา ปัญหาส่วนใหญ่เป็นเรื่องในอดีต: ภาษาต่าง ๆ ถูกประดิษฐ์ขึ้นเพื่อทำสิ่งต่าง ๆ และใช้ในชุมชนต่าง ๆ หลายคนติดอยู่ เพิ่มการตั้งค่านั้น (vi! emacs! wait ฉันหมายถึง Java! C # รอฉันหมายถึง Microsoft โอเพ่นซอร์ส ฯลฯ ฯลฯ ) และการฝังอุบัติเหตุทั่วไปในอดีต ... ดูภาษาธรรมชาติในดินแดนเล็ก ๆ มวลชนเหมือนกับบางประเทศในยุโรปเพื่อดูว่าหัวข้อนี้จะบ้าคลั่งเพียงใด บางเมืองมีความภาคภูมิใจและความสุขของตนเองเป็นภาษาถิ่นที่พวกเขาพูดเท่านั้น ชุมชนประชาชาติและการเขียนโปรแกรมนั้นไม่แตกต่างกันและไม่มีชุมชนการเขียนโปรแกรมที่มีเหตุผลมากกว่านี้ ถ้าพวกเขาเป็นเช่นนั้นเราทุกคนจะพูดภาษาและโปรแกรมใน Universal Somethin 'Somethin' ...


1
ปัญหานั้นลึกกว่านั้น ยิ่งคุณเลือกใช้ตัวเลือกได้มากขึ้นจะต้องระบุให้ชัดเจนยิ่งขึ้นแทนที่จะใช้วิธีที่สิ่งต่าง ๆ ทำงานโดยนัยในภาษานั้น ปัญหาจะชัดเจนขึ้นถ้าเปรียบเทียบ Java กับ C # คุณจะเปรียบเทียบ Java กับ Prolog การมีคุณสมบัติของทั้งสองภาษาในหนึ่งภาษาจะทำให้ไวยากรณ์ของภาษาผสมซับซ้อนขึ้น ตัวเลือกที่เหมาะสมกว่านั้นอาจเป็นการลดไวยากรณ์ให้เหลือน้อยที่สุดและอนุญาตให้ใช้คุณลักษณะใด ๆ เพื่อใช้เป็นไลบรารี metaprogramming นั่นเป็นสิ่งที่ Lisp ทำแม้ว่ามันจะเป็นแกนกลางไม่เพียงพอสำหรับงานบางงาน
Steve314

4

เป็นความผิดพลาดที่จะคิดว่า "การรวมคุณสมบัติทั้งหมด" จะทำให้ภาษาดีขึ้น

คุณมีแนวโน้มที่จะจบลงด้วยความยุ่งเหยิงป่องซับซ้อนและไม่สามารถอ่านได้

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

  • ภาษาโปรแกรมที่มีโครงสร้าง (C, Pascal) - นำ "goto" ออกมาแทนที่ด้วยโพรซีเดอร์และโครงสร้างลูปเป็นต้น
  • Java - ใช้ "การจัดการหน่วยความจำด้วยตนเอง" แทนที่ด้วย GC / หน่วยความจำที่มีการจัดการ
  • Haskell / Clojure รับ "สถานะไม่แน่นอนที่ไม่สามารถควบคุมได้" ออก
  • เสียงกระเพื่อม - ใช้เวลาส่วนใหญ่ "ไวยากรณ์ภาษา" แทนที่ด้วยต้นไม้ homoiconic ที่มีความยืดหยุ่นของการแสดงออก s-

มีการพูดคุยที่ยอดเยี่ยมในเรื่องนี้โดย Uncle Bob Martin - ภาษาโปรแกรมสุดท้าย


"ภาษาโปรแกรมเชิงโครงสร้าง (C, Pascal) - นำออก" goto "แทนที่ด้วยโพรซีเดอร์และโครงสร้างลูปเป็นต้น" - ขออภัยคุณผิดมี: C gotoมี แต่ฉันชอบคำตอบที่เหลือ สิ่งสำคัญที่ C ทำคือไม่ต้องสนใจว่าหน่วยความจำทุกอย่างอยู่ที่ไหนและอะไรอยู่ในช่วงเวลาใดและมันซ่อนตัวนับโปรแกรม (ในแง่ของที่อยู่ที่แม่นยำที่มันนั่งอยู่อีกครั้งคุณสามารถย้ายมันได้ ที่ระดับความแม่นยำเกือบประกอบกับ goto)
ไวแอตต์ 8740

0

ไม่มีเครื่องมือใด ๆ ที่มีคุณสมบัติที่ดีที่สุดทั้งหมด ตัวอย่างเช่นคุณสมบัติที่ดีของ Javascript และ Scheme คือมันมีขนาดเล็กดังนั้นหากคุณเริ่มการบรรจุคุณลักษณะคุณได้สูญเสียคุณลักษณะนี้ไปแล้ว

Cobraยังคงมีความหวังในทิศทางของการมีคุณสมบัติที่ดีทั้งหมดจากภาษาอื่น ๆ :-)


0

เพราะถ้าคุณสร้างภาษาดังกล่าวมันจะเป็นอีกภาษาใหม่ คุณอาจได้รับฐานแฟนคลับขนาดใหญ่ แต่ภาษาอื่น ๆ ทั้งหมดจะยังคงมีอยู่

C ยังคงมีอยู่แม้ว่าจะมีการคิดค้นภาษาใหม่มากมาย

คุณสามารถพูดได้ว่าไพ ธ อนเป็นภาษาสากล แต่ก็มีทับทิมด้วย

เหตุผลที่มีหลายภาษาเป็นเพราะมีโปรแกรมเมอร์จำนวนมากและบางคนชอบที่จะสร้างภาษาใหม่

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

นั่นเป็นสิ่งที่ดี


ฉันจะโต้แย้งว่ามันไม่ดีหรือไม่ดี แต่เป็นสิ่งประดิษฐ์ของความจริงที่ว่าวิศวกรรมซอฟต์แวร์ยังไม่ถึงหนึ่งร้อยปีและยังไม่สมบูรณ์มากเมื่อเทียบกับวิศวกรรมอื่น ๆ ที่มีอยู่จริง
Michael

0

ด้วยทั้งหมดที่เขียนจนถึงมันยากที่จะเพิ่มเหตุผลใหม่มาก แต่ฉันจะโยนในไม่กี่

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

  • ครบกำหนด: เราได้ทำภาษาคอมพิวเตอร์มาน้อยกว่าหนึ่งศตวรรษ เรายังไม่มีคำตอบเพราะเรายังไม่รู้คำถามทั้งหมด

  • แยกแหล่งกำเนิด: ไม่แน่ใจว่าคำที่เหมาะสมสำหรับเรื่องนี้ แต่ในโลกของพวกเขาเป็นระบบการเขียนจำนวนมากที่เริ่มต้นในภูมิภาคทางภูมิศาสตร์หลายแห่ง คิดเกี่ยวกับรูปแบบที่ถูกกำหนดบางส่วนโดยความต้องการของการแกะสลักลงในเม็ดดิน ลองนึกถึงสันสกฤตกรีกตัวอักษรฮิบรูโรมันตัวอักษรอาหรับ อักษรอียิปต์โบราณวิธีการเขียนภาษาจีนที่สวยงามด้วยสัญลักษณ์มากกว่า 6,000+ ที่ใช้ร่วมกันในหลายประเทศในเอเชียตะวันออก คิดว่าตัวอักษรผสมที่ทันสมัยมากขึ้นที่มีพื้นฐานการออกเสียงเช่น Cyrillic, Katakana และ Hirigana ฉันไม่ใช่นักภาษาศาสตร์ดังนั้นอย่าจุดประกายความไม่ถูกต้องอย่างรุนแรงเกินไป แต่เมื่อวัฒนธรรมทั่วโลกต้องการบางสิ่งบางอย่างพวกเขาจะสร้างมันขึ้นมาและทำให้มันเป็นของตัวเองโดยไม่จำเป็น ภาษาคอมพิวเตอร์เกิดขึ้นได้เมื่อมีการสื่อสารกันทั่วโลกและเหมือนกับระบบของจักรวรรดิและระบบเมตริก มาจากสถานที่ที่มีความคิดเป็นผู้นำที่มีประสิทธิภาพ แต่ภาษาการเขียนโปรแกรมให้บริการวัฒนธรรมที่แตกต่างกัน (บางส่วนเป็นวัฒนธรรมองค์กร) ดังนั้นพวกเขาจึงสะท้อนผู้คนที่สร้าง ภาษาคอมพิวเตอร์มาพร้อมกับมรดกทางวัฒนธรรมที่หล่อหลอมการออกแบบและการใช้งาน ในวัฒนธรรมเคอร์เนลระบบปฏิบัติการ C และ C ++ ไม่น่าจะถูกเลิกใช้ในเร็ว ๆ นี้สำหรับ Java (หรือวิธีอื่น ๆ ) เพราะพวกเขาอนุญาตให้สร้างรหัสเนทีฟการมีเพศสัมพันธ์อย่างใกล้ชิด / มีประสิทธิภาพกับฮาร์ดแวร์สำหรับการสร้างเลเยอร์นามธรรมที่เป็นฮาร์ดแวร์

  • การออกแบบการออกแบบ: ภาษาการเขียนโปรแกรมมาเกี่ยวกับการใช้กระบวนทัศน์ขององค์กรที่แตกต่างกัน COBOL และ Ada มาจากคณะกรรมการที่เป็นส่วนหนึ่งของ DOD ซึ่งมีลำดับขั้นมาก ถ้าฉันจำได้อย่างถูกต้อง C, C ++, Java และอาจมีคนอื่นอีกหลายคนที่มาจากนักออกแบบหนึ่งหรือไม่กี่คน Fred Brooks เปรียบเทียบผลลัพธ์ของคณะกรรมการเปรียบเทียบกับแนวทางที่มีวิสัยทัศน์ในรายงานการออกแบบ (http://www.youtube.com/watch?v=pC-DlX-PaF4) หากเรานั่งลงวันนี้เพื่อเลือก Da Vinci หรือคณะกรรมการเพื่อกำหนดภาษาโปรแกรมสากลเราจะรู้ว่าใครหรืออะไรโดยวิธีการที่มันควรจะออกแบบมา?


0

อาจจะเอียงเล็กน้อยในทั้งหมดนี้:

ภาษาคืออะไร เพื่อให้ง่ายอย่างน่าขันมันเป็นคำศัพท์ไวยากรณ์และความหมาย

สิ่งแรกที่คุณทำกับภาษาการเขียนโปรแกรมคืออะไร?
คุณกำหนดสิ่งต่าง ๆ - คลาสตัวแปรวิธีการ - คุณขยายคำศัพท์และความหมาย

ทำไม? ดังนั้นตอนนี้คุณสามารถพูดสิ่งต่าง ๆ ในนั้นคุณไม่สามารถพูดได้ก่อน
ชอบหรือไม่ว่าคุณได้ทำภาษาวัตถุประสงค์ใหม่

IMHO สิ่งที่มองหาในภาษาที่ใช้งานทั่วไปคือถ้ามันทำให้ง่ายต่อการสร้างภาษาที่มีวัตถุประสงค์พิเศษ


0

นอกเหนือจากอาร์กิวเมนต์มีดสวิสกองทัพ (ซึ่งมีจุด - มันยากที่จะออกแบบภาษาสเปกตรัมกว้างดีกว่าโดเมนเฉพาะโดเมน - แต่นั่นไม่ได้หมายความว่าภาษาดังกล่าวจะไม่ทั้ง เป็นไปได้และเป็นความคิดที่ดี) มีปัญหากับ "การรวมคุณสมบัติที่ดีที่สุด":

  • สำหรับคุณสมบัติภาษา "ดีที่สุด" เป็นแบบอัตนัยหรืออย่างน้อย (ไม่มีที่สิ้นสุด) โต้แย้งได้
  • คุณสมบัติบางอย่างไม่เข้ากัน คุณสมบัติที่ดีจากภาษาหนึ่งอาจระเบิดขึ้นเมื่อรวมกับคุณสมบัติที่ดีจากอีกภาษาหนึ่ง
  • เรายังไม่ได้คิดเกี่ยวกับคุณสมบัติใหม่

กล่าวโดยย่อการออกแบบภาษานั้นยากและซับซ้อนกว่านั้น แม้ว่าคุณอาจต้องการที่จะดูที่สกาล่า


-2

Visual Batch เป็นความพยายามในการเขียนโปรแกรมภาษาที่ปรับแต่งได้ ลิงค์ด้านล่างแสดงวิธีที่อินเทอร์เฟซการเขียนโปรแกรมนี้สามารถปรับให้เหมาะกับความต้องการของภาษาโปรแกรมสากล

http://sourceforge.net/apps/phpbb/visualbatch/viewtopic.php?f=4&t=4


-2

มีภาษาโปรแกรมสากล เรียกว่า "ภาษาเครื่อง" และทุกอย่างในภาษาคอมพิวเตอร์อื่น ๆ จะถูกเรียกใช้เป็นภาษาเครื่องในที่สุด

มันดูเหมือนอะไร? สตริงของ 0-9 และ AF

แต่มันก็เป็นหมาที่น่าใช้ ดังนั้นอลันประดิษฐ์ภาษาที่สามารถแปลเป็นภาษาเครื่องได้และเหมาะสมกว่าสิ่งที่อลันต้องการทำ Bill ประดิษฐ์ภาษาอื่นสำหรับสิ่งที่ Bill ต้องการทำ อีกไม่นานคุณจะได้รับ Cobol และ Fortran และ Lisp และ Java ทั้งหมดของพวกเขาเป็นเพียง vesions ที่เรียบง่ายของภาษาเครื่องง่ายต่อการเขียนโปรแกรมบางประเภท แต่ยากขึ้นหรือเป็นไปไม่ได้ที่จะเขียนโปรแกรมประเภทอื่น หนึ่งดีสำหรับการบัญชีอีกดีสำหรับควบคุมกระสวยอวกาศ


6
ภาษาของเครื่องไม่ใช่สากล ไม่ได้ใกล้เคียง. แต่ละเครื่องมีภาษาของตัวเอง
hasen

3
นอกจากนี้ยังไม่ใช่สตริง 0-9 และ AF มันคือ 1 และ 0
David Conrad

@hasen @David ไม่สมเหตุสมผลที่จะแนะนำเช่น @Andy ว่าทุกภาษามีตั้งแต่มุมมองหนึ่งภาษาเฉพาะโดเมนที่สร้างขึ้นในภาษาอื่นหรือไม่
Armand

ฉันบอกว่า 0-9 และ AF เพราะนั่นคือสิ่งที่คุณต้องรู้ในการใช้รหัสมัลติชอปบนเครื่องทำกุญแจ ดูเหมือนว่า 0-1 หรือ 0-15 หรือ 0-255 ถ้าคุณใช้มันเป็นตัวเลขขึ้นอยู่กับว่าชิ้นใหญ่ครั้งละ และฮันเซนนั้นถูกต้อง เครื่องทุกประเภทมีภาษาเป็นของตัวเอง พีซีเกือบทุกวันนี้ยอมรับรหัส 80386; แม้กระทั่งโทรศัพท์ของฉันจะ! แต่ iPad จะไม่
Andy Canfield เมื่อ

@hasenj และมีลักษณะแตกต่างกันอย่างกว้างขวาง ความคิดที่ต้องการสำหรับการเขียนโปรแกรม 6502 นั้นแตกต่างจากการเขียนโปรแกรม x86 และแตกต่างจากชิป RISC ไกลจากสากลมาก

-2

เพียงเพราะว่า,

ไม่มีคอมพิวเตอร์สากล

ไม่ใช่ plateform สากล

ไม่ใช่โปรแกรมเมอร์ยูนิเวอร์แซล

และไม่แม้แต่เป็นไคลเอนต์สากล

: P

เพียงแค่เราต้องการสิ่งที่แตกต่างสำหรับสิ่งที่แตกต่าง ;)


-2

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

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

สิ่งนี้เกิดขึ้นเนื่องจากประโยชน์ที่เกิดขึ้นจากมาตรฐานที่ได้รับการปรับปรุงการสนับสนุนที่ง่ายขึ้นการใช้รหัสร่วมกัน ฯลฯ นั้นมีขนาดใหญ่กว่า (เพิ่มมากขึ้น) จากนั้นเพิ่มมูลค่าของภาษาเฉพาะ


1
ฉันไม่เคยเห็นโครงการของ บริษัท ใดที่เหมาะสมโดยใช้ภาษาต่างกันน้อยกว่า 4 ภาษา และฉันไม่เชื่อใน "ผลประโยชน์" ใด ๆ จากการเลือกเครื่องมือที่ไม่เหมาะสม มันไม่เคยทำงาน
SK-logic

-3

ฉันคิดว่า "เพราะคุณไม่ได้แกะสลักรูปปั้นด้วยดินสอ" คำตอบนั้นหายไป

ใครที่นี่อย่างแท้จริงเลือกภาษาก่อนทุกโครงการใหม่?

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

C # ถูกโปรแกรมบน / สำหรับ windows (เอาล่ะมี Mono ใครที่นี่ใช้ C # ภายใต้แอพ Mono ทุกวัน?) และนั่นทำให้ผู้ใช้ซื้อ Windows7 / 8 และสร้างรายได้ให้กับ Microsoft
บริษัท อื่น ๆ ทำแบบเดียวกันจากนั้นโอเพนซอร์สก็รู้ดีกว่าจากนั้นก็อัจฉริยะอัจฉริยะเช่นกัน ... และเรามีภาษาที่มีลักษณะเหมือนกันมากมายมันเป็นเพียงธรรมชาติที่มีมนุษย์เป็นศูนย์กลาง


เห็นด้วย - เราส่วนใหญ่ต้องการภาษา "ปลอดภัย" ระดับสูงภาษาการเขียนโปรแกรมระบบ "ไม่ปลอดภัย" ระดับต่ำทุกภาษาแอสเซมบลีทั้งหมด (หนึ่งต่อซีพียูพวกเขาหลีกเลี่ยงไม่ได้ แต่ซ่อนอยู่) รวมถึงวัตถุประสงค์พิเศษบางอย่าง ภาษา (เช่น SQL) ปัญหาที่แท้จริงคือว่ามันเป็นไปไม่ได้สำหรับทุกคนที่จะประกาศภาษา "เลิก" (แม้ในขณะที่นักออกแบบภาษาพยายามที่จะทำมัน - เช่น Python 2 vs. Python 3) มีภาษาใหม่ ๆ เพิ่มขึ้นทุกปีและไม่มีภาษาเก่าทิ้งซึ่งหมายความว่าในที่สุดจะมีภาษาที่ใช้งานมากกว่าโปรแกรมเมอร์ที่จะใช้ ;-)
เบรนแดน

-5

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


1
"เงินที่บันทึกไว้" คือ (แม้จะมีความพยายามของนักบัญชีที่ดีที่สุด) แนวคิดที่คลุมเครือและคลุมเครือตลอดวงจรชีวิต เช่นเดียวกับกลศาสตร์ได้ล้มเหลวที่จะสร้างมาตรฐานที่แม้แต่ขนาดประแจเดียวไม่เคยคิดเครื่องมือทั้งวิศวกรรมซอฟต์แวร์ล้มเหลวที่จะสร้างมาตรฐานเพราะมีเกณฑ์จำนวนมากดังนั้นสำหรับการเลือกเครื่องมือ (ภาษา) หรือแม้กระทั่งหน่วยประมวลผล / OS / สภาพแวดล้อม
แอนดรู
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.