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

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

11
IDEs สำหรับภาษาไดนามิก - คุณจะไปได้ไกลแค่ไหน?
ฉันพบว่ามันน่าหงุดหงิดที่ความเร็วของการพัฒนาที่ภาษาแบบไดนามิกควรให้ได้รับนั้นลดลงอย่างมากจากการขาดความสมบูรณ์และทรัพย์สินอื่น ๆ ที่ IDEs จะมอบให้คุณในรูปแบบคงที่ มันไม่เพียงเกี่ยวกับการพิมพ์น้อยลงเท่านั้น แต่ยังเพิ่มประสิทธิภาพการทำงานและความสนุกที่คุณได้รับจากการเรียกดู API โดยไม่จำเป็นต้องอ้างถึงเอกสารที่ไม่ได้รวมเข้ากับเครื่องมือแก้ไข ในวันที่ชุดภาษา IDE + แบบไดนามิกทั้งหมด - ซึ่งเป็นงานที่ไม่มาก - ฉันได้ลองแล้ว: รถม้าชนิดเล็ก ช้า clueless / overenthusiastic (ในการแสดงความสำเร็จทั้งหมดที่เป็นไปได้) หรือไม่สมบูรณ์เท่ากับพูด Eclipse + Java ฉันทราบว่าการวิเคราะห์โค้ดแบบไดนามิกไม่ใช่เรื่องง่าย แต่มีใครไม่สามารถช่วยสงสัย - เป็นรหัสชิ้นนี้ยากที่จะคิดออก ? ดังนั้นคำถามของฉันคือ: มี IDEs ใด ๆ (หรือน้อยกว่าการตั้งค่า all-in-one) ได้รับการสนับสนุนที่ยอดเยี่ยมสำหรับภาษาแบบไดนามิกหรือไม่หรือนี่ยังคงเป็นปัญหา

4
เหตุใดภาษาการเขียนโปรแกรมแบบไดนามิกที่ใช้เป็ดจำนวนมากจึงใช้วิธีการแบบคลาสแทน OOP ต้นแบบ
เนื่องจากภาษาการเขียนโปรแกรมแบบไดนามิกค่อนข้างมากมีคุณสมบัติในการพิมพ์เป็ดและพวกเขายังสามารถเปิดและแก้ไขวิธีการเรียนหรืออินสแตนซ์ได้ตลอดเวลา (เช่นRubyและPython ) ดังนั้น ... คำถามที่ 1) ความต้องการห้องเรียนในภาษาแบบไดนามิกคืออะไร ทำไมภาษาจึงออกแบบวิธีการใช้คลาสเป็น“ เทมเพลต” บางชนิดแทนที่จะเป็นแบบต้นแบบและใช้แค่วัตถุ? จาวาสคริปต์ยังเป็นรุ่นต้นแบบ แต่CoffeeScript (เวอร์ชันปรับปรุงของจาวาสคริปต์) จะเลือกวิธีที่อิงกับคลาส และมันก็เหมือนกันสำหรับLua (รุ่นต้นแบบ) และMoonScript (ตามคลาส) นอกจากนี้ยังมีคลาสใน ES 6 ดังนั้น ... คำถามที่ 2) มีการแนะนำหรือไม่ว่าถ้าคุณพยายามปรับปรุงภาษาที่ใช้ต้นแบบเป็นต้นคุณควรเปลี่ยนเป็นแบบเรียนหรือไม่ ถ้าไม่ทำไมมันถูกออกแบบมาอย่างนั้น?

5
หลักการชดเชย Liskov เข้ากันไม่ได้กับการวิปัสสนาหรือการพิมพ์ดีดเป็ด?
ฉันเข้าใจอย่างถูกต้องหรือไม่ว่าหลักการแทน Liskovไม่สามารถสังเกตได้ในภาษาที่วัตถุสามารถตรวจสอบตัวเองเช่นภาษาเป็ดที่พิมพ์เป็นปกติ ยกตัวอย่างเช่นในทับทิมถ้าระดับBสืบทอดจากชั้นเรียนAแล้วสำหรับวัตถุทุกxของA, x.classเป็นไปได้กลับมาAแต่ถ้าxเป็นวัตถุของB, จะไม่กลับมาx.classA นี่คือคำแถลงของ LSP: Let Q (x)เป็นสถานที่ให้บริการสามารถพิสูจน์ได้เกี่ยวกับวัตถุxประเภทT จากนั้นQ (y)ควรจะสามารถพิสูจน์ได้สำหรับวัตถุYประเภทSที่Sเป็นชนิดย่อยของT ดังนั้นใน Ruby เช่น class T; end class S < T; end ละเมิด LSP ในแบบฟอร์มนี้ตามที่เห็นในคุณสมบัติq (x) =x.class.name == 'T' ส่วนที่เพิ่มเข้าไป. หากคำตอบคือ "ใช่" (LSP ไม่เข้ากับการวิปัสสนา) คำถามอื่น ๆ ของฉันจะเป็น: มีรูปแบบที่อ่อนแอของ LSP ที่ "อ่อนแอ" ซึ่งอาจจะเก็บไว้เป็นภาษาไดนามิกอาจอยู่ภายใต้เงื่อนไขเพิ่มเติมบางอย่างและมีชนิดพิเศษเท่านั้น ของคุณสมบัติ ปรับปรุง สำหรับการอ้างอิงนี่เป็นอีกสูตรของ LSP ที่ฉันพบบนเว็บ: ฟังก์ชันที่ใช้พอยน์เตอร์หรือการอ้างอิงไปยังคลาสพื้นฐานต้องสามารถใช้วัตถุของคลาสที่ได้รับโดยไม่ต้องรู้ เเละอีกอย่าง: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.