คำถามติดแท็ก programming-languages

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

5
ภาษาโปรแกรมโดยการออกแบบสามารถบังคับใช้“ รหัสสะอาด” ได้หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ดังนั้นฉันจึงเขียนโค้ดโปรเจคแรกของฉันใน C ++ และดูเหมือนว่าจะใช้ความพยายามมากขึ้นในการทำให้โค้ด "สะอาด" แทนที่จะทำงานเพียงอย่างเดียว นั่นคือดูเหมือนว่า C ++ "อนุญาต" เพื่อเขียนน่าเกลียด แต่รหัสการทำงาน ซึ่งทำให้ฉันคิด ภาษาการเขียนโปรแกรมสามารถบังคับใช้โค้ดแบบคลีนได้ด้วยการออกแบบหรือไม่? มีภาษาดังกล่าวอยู่แล้วหรือไม่? นอกจากนี้วิธีการนี้รวมเป็นหลักการออกแบบในการพัฒนาโปรแกรม / ทฤษฎีภาษา? มาตรการแบบไหนที่ใช้?

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

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

2
ไม่มีอะไรเป็นประเภทย่อยของทุกประเภทอื่น ๆ ใน Scala
ฉันกำลังเรียนหลักสูตร coursera ของ Martin Odersky เกี่ยวกับการเขียนโปรแกรมใช้งานได้กับ scala และตอนนี้ฉันได้เรียนรู้สองสิ่งที่เข้าด้วยกันไม่สมเหตุสมผล: สกาล่าไม่สนับสนุนการสืบทอดหลายแบบ Nothing เป็นประเภทย่อยของทุกประเภทอื่น ๆ ข้อความทั้งสองนี้ไม่สามารถอยู่ด้วยกันได้ดังนั้นสิ่งนี้จะทำอย่างไรกันแน่? และอะไรคือความหมายของ "ประเภทย่อยของทุก ๆ ประเภท" แก้ไข 1 ในกาลา API , Nothingถูกกำหนดให้เป็นabstract final class Nothing extends Any... ดังนั้นวิธีที่จะสามารถขยายชั้นเรียนอื่น ๆ ?

6
การเขียนโปรแกรม C ในปี 2011 [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ดวงจันทร์จำนวนมากที่ผ่านมาฉันตัดรหัส C สำหรับการใช้ชีวิตส่วนใหญ่ในขณะที่รักษาเซิร์ฟเวอร์ POP3 ที่รองรับระบบปฏิบัติการที่หลากหลาย (Linux, * BSD, HPUX, VMS ... ) ฉันวางแผนที่จะขัดเกลาทักษะ C ของฉันและเรียนรู้เล็กน้อยเกี่ยวกับการใช้ภาษาโดยการเขียน FORTH ที่เรียบง่ายใน C แต่ฉันสงสัยว่าจะมีการเปลี่ยนแปลงอย่างไรในโลก C ตั้งแต่ปี 2000 เมื่อฉันคิดว่า C ฉันคิดว่า ... comp.lang.c ANSI C ทุกที่ที่เป็นไปได้ (แต่ C89 เป็น C99 นั้นไม่ได้รับการสนับสนุนอย่างกว้างขวาง) gcc -Wall -ansi -pedantic แทนเครื่องมือวิเคราะห์แบบคงที่ Emacs …

8
รหัสขั้นตอนเทียบกับรหัส OOP
ฉันทำโปรเจ็กต์เสร็จสิ้นด้วย PHP ของ 13000+ บรรทัดในสไตล์โพรซีเดอร์ [เพราะฉันคุ้นเคยกับมันมากแม้ว่าฉันจะรู้จัก OOP] และโครงการก็ทำงานได้อย่างสมบูรณ์แบบ แต่ฉันควรแปลงเป็น OOP หรือไม่ [ เพราะโลกกำลังยุ่งกับ OOP ] รหัสของฉันไม่ต้องการคุณสมบัติใด ๆ ของ OOP [การห่อหุ้มการสืบทอดโดยทั่วไป ... ]! แล้วฉันควรทำอย่างไรดี? และความช่วยเหลือแบบไหนที่ฉันจะได้รับถ้าฉันแปลงเป็น OOP

9
ยอดคงเหลือระหว่าง“ เครื่องมือที่เหมาะสมสำหรับงาน” และความคุ้นเคย [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ดังนั้นเมื่อเลือกภาษาที่จะใช้สำหรับโครงการในโลกอุดมคติภาษาจะถูกเลือกเพราะเป็นเครื่องมือที่เหมาะสมสำหรับงาน อย่างไรก็ตามฉันมักจะชอบใช้ภาษาที่ฉันพูดมากกว่าที่ฉันจะต้องเรียนรู้หรือว่าฉันเป็นเพียงการสนทนามาแน่นอนว่าความคล่องแคล่วทางภาษานั้นทำให้เกิดความรู้เกี่ยวกับห้องสมุดที่เกี่ยวข้องในภาษานั้น ๆ เพียงเพราะฉันชอบภาษาที่ค่อนข้างใช้งานง่ายอย่าง Java ไม่ได้หมายความว่าฉันควรจะใช้มันตลอดเวลา แต่ในขณะเดียวกันก็ไม่ได้หมายความว่าฉันควรจะแบ่งภาษา Perl ออกทุกครั้งที่มีการประมวลผลข้อความ เราจะพบความสมดุลได้อย่างไรที่นี่?

15
ผู้ประกอบการบิตมีประโยชน์อย่างไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ภาษาการเขียนโปรแกรมมักจะมาพร้อมกับตัวดำเนินการบิตต่าง ๆ (เช่นการเปลี่ยนบิตซ้าย - ขวาและบิต, ค่าบิตและ AND, หรือ, แฮคเกอร์ ... ) สิ่งเหล่านี้ไม่ได้ถูกใช้อย่างมาก แต่อย่างน้อยประสบการณ์ของฉันก็เช่นกัน บางครั้งพวกเขาจะใช้ในการเขียนโปรแกรมความท้าทายหรือคำถามสัมภาษณ์หรือวิธีแก้ปัญหาต้องใช้พวกเขาเช่น: โดยไม่ต้องใช้ตัวดำเนินการเท่าเทียมกันใด ๆ สร้างฟังก์ชันที่ส่งคืนtrueเมื่อสองค่าเท่ากัน โดยไม่ใช้ตัวแปรตัวที่สามให้สลับค่าของตัวแปรสองตัว สิ่งเหล่านี้อีกครั้งอาจมีการใช้งานจริงไม่กี่แห่ง ฉันเดาว่าพวกเขาควรจะเร็วขึ้นเพราะพวกเขาจัดการหน่วยความจำโดยตรงในระดับต่ำ เหตุใดจึงพบเช่นนี้ในภาษาการเขียนโปรแกรมส่วนใหญ่ กรณีใช้งานจริงใด ๆ

14
รหัสที่ดีเป็นไปไม่ได้ในการพัฒนาซอฟต์แวร์ที่ทันสมัย? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ดูเหมือนว่าแม้เครื่องมือของนักพัฒนาซอฟต์แวร์จะมีความแข็งแกร่งและแข็งแกร่งมากขึ้น แต่การเขียนโค้ดที่ดีก็กลายเป็นความท้าทาย แม้ว่าเครื่องมือนั้นจะมีประสิทธิภาพมากขึ้น แต่คุณภาพของรหัสก็ยังไม่ดีขึ้น ฉันมาพร้อมกับปัจจัยสำคัญสองประการมีเวลาน้อยลงและโครงการมีความซับซ้อนมากขึ้น เนื่องจากเครื่องมือที่เราใช้ในทุกวันนี้มีประสิทธิภาพมากกว่ามันง่ายกว่าที่จะเขียนโค้ดที่ซับซ้อนมากขึ้น แต่ไม่มีเวลาในการวางแผนและไม่มองย้อนกลับไปลดคุณภาพของรหัสและเพิ่มข้อผิดพลาดและการบำรุงรักษา ไม่ใช่ว่าเราไม่ได้เขียนโค้ดที่ซับซ้อนมาก่อน มันคือการที่เราเขียนโค้ดที่ซับซ้อนมากขึ้น คำถามของฉันคือ: พิจารณาว่าเรามีภาษาและเครื่องมือที่ทรงพลังกว่า ทำไมการเขียนรหัสที่ดีจึงยากกว่า ปัจจัยเวลาและความซับซ้อนมีส่วนในสิ่งนี้หรือไม่? วิธีการไม่ได้รับการฝึกฝนอย่างถูกต้องหรือไม่? ประเภทของโครงการที่ฉันพิจารณาคือแอปพลิเคชันระดับองค์กรที่มีความซับซ้อนและตรรกะทางธุรกิจขนาดใหญ่ คำจำกัดความของ“ รหัสที่ดี” เป็นรายบุคคลโปรดอย่าติดขัดในการตีความ“ รหัสที่ดี”

10
นักพัฒนา Java คิดอย่างไรกับ Scala [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันได้ตั้งข้อสังเกตว่าการสนับสนุน IDE นั้นใกล้เคียงกับที่ดี แต่ภาษานั้นรองรับสำนวนการเขียนโปรแกรมที่ใช้งานได้ดีกว่าหมดจด

8
หากมีการเรียนรู้ภาษาการเขียนโปรแกรมใหม่ในแต่ละปีรายการควรเป็นอย่างไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ในบทที่หนึ่งของ"The Pragmatic Programmer"เป้าหมายการเรียนรู้แรกคือ: เรียนรู้ภาษาใหม่อย่างน้อยหนึ่งภาษาทุกปี ภาษาที่ต่างกันแก้ปัญหาเดียวกันด้วยวิธีที่ต่างกัน โดยการเรียนรู้วิธีการต่าง ๆ คุณสามารถช่วยขยายความคิดของคุณและหลีกเลี่ยงการทะเลาะในร่อง [ ... ] เพื่อให้บรรลุเป้าหมายนี้ในอาชีพการงานรายการภาษามีแนวโน้มที่จะค่อนข้างยาว (โดยเฉพาะถ้าคุณไม่ต้องการ "ความคืบหน้า" ในการจัดการ) เห็นได้ชัดว่าการศึกษาของโปรแกรมเมอร์ (หรือรูปแบบอะไรก็ตาม) จะช่วยให้คุณเริ่มต้นด้วยภาษาหลักที่มีประโยชน์ในเชิงพาณิชย์ (รายการปกติจากการโพสต์งาน: C, C ++, Ruby, Python, JavaScript, C #, Java, VB, .. .) นอกจากนี้โปรแกรมการเรียนรู้อย่างเป็นทางการหรือไม่เป็นทางการมีแนวโน้มที่จะครอบคลุมวิธีการทำงาน (ผ่านบางสิ่งบางอย่างเช่น Haskell, LISP หรือภาษาที่ได้จาก ML) แต่เมื่อเรียนรู้ส่วนย่อยที่สมเหตุสมผลของรายการแล้วสิ่งต่อไปคืออะไรและเพราะเหตุใด

5
อะไรทำให้ JVM มีความหลากหลายในการรองรับภาษา JVM มากมาย
JVM รองรับภาษาอื่น ๆ อีกมากมายนอกเหนือจาก Java เช่นGroovy,Clojure,Scalaetc ซึ่งเป็นภาษาที่ใช้งานได้แตกต่างจาก Java (ฉันหมายถึงJava ก่อนเวอร์ชัน 8ที่Lambda'sไม่รองรับ) ที่ไม่รองรับความสามารถในการทำงานในระดับสูงสิ่งที่ทำให้ JVM อเนกประสงค์นั้น สามารถรองรับทั้ง Object Oriented และ Function Functional ได้หรือไม่

2
เหตุใด C ถึงสูงมากในดัชนีความนิยมของ TIOBE ในขณะที่ C ++ ก็อยู่ที่นี่ด้วย แต่ก็ไม่ได้รับความนิยม [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันไม่สามารถเข้าใจเรื่องนี้ได้ ถ้า C ใช้งานมาก แต่ C ไม่ใช่ C ++, บางคนสามารถอธิบายเหตุผลที่สำคัญที่สุดที่ทำให้ C ใช้มากกว่า C ++ ได้หรือไม่? รหัส C นี้เขียนไว้ที่ไหน สิ่งนี้เกี่ยวกับภาคอุตสาหกรรมที่ต้องพึ่งพาการเขียนโปรแกรมที่จำเป็นอย่างยิ่ง แต่ไม่สามารถสนับสนุนค่าใช้จ่ายในการปรับใช้หรือปรับแต่งคอมไพเลอร์ C ++ ได้หรือไม่? มีแฮ็กเกอร์เคอร์เนลจำนวนมากไหม? tiobe เกี่ยวข้องหรือไม่ ฉันไม่เคยพบบทความหรือโพสต์แสดงความคิดเห็นหรืออธิบายว่าอันดับของ tiobe นั้นเป็นอย่างไรและสิ่งที่จริงพูดเกี่ยวกับสิ่งที่อุตสาหกรรมชอบและสิ่งที่มันสามารถบอกเกี่ยวกับสิ่งที่อุตสาหกรรมใช้จริงเพื่อระบุความต้องการที่แท้จริงของอุตสาหกรรม มันยากที่จะอธิบาย. ฉันเพิ่งพบว่ามันแปลก ๆ หลาย บริษัท ต้องการงาน C #, php, java และไม่ใช่งาน C หรือ …

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

3
ข้อดีของไวยากรณ์ภาษาจากซ้ายไปขวา
ฉันได้ดูบทสัมภาษณ์ของ Herb Sutter ที่ช่อง 9 และเขาพูดถึงตอนท้ายของวิดีโอว่าไวยากรณ์ของภาษาซ้าย - ขวาจะอยู่ในอันดับต้น ๆ ของนักแปลเพื่อมาตรฐาน C ++ ในอนาคต (แม้ว่าเขาจะยอมรับว่าการดัดแปลง C ++ ด้วยวิธีนั้น จะทำให้สัตว์ร้ายต่างไปจากเดิมอย่างสิ้นเชิง) นอกเหนือจาก: มนุษย์สามารถเข้าใจได้ชัดเจนขึ้นด้วยตาเปล่าเช่น //C syntax /*pointer to function taking a pointer to function(which takes 2 integers as arguments and returns an int), and an int as arguments and returning an int*/ int (*fp)(int …

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