IDEs สำหรับภาษาไดนามิก - คุณจะไปได้ไกลแค่ไหน?


56

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

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

ในวันที่ชุดภาษา IDE + แบบไดนามิกทั้งหมด - ซึ่งเป็นงานที่ไม่มาก - ฉันได้ลองแล้ว:

  • รถม้าชนิดเล็ก
  • ช้า
  • clueless / overenthusiastic (ในการแสดงความสำเร็จทั้งหมดที่เป็นไปได้)
  • หรือไม่สมบูรณ์เท่ากับพูด Eclipse + Java

ฉันทราบว่าการวิเคราะห์โค้ดแบบไดนามิกไม่ใช่เรื่องง่าย แต่มีใครไม่สามารถช่วยสงสัย - เป็นรหัสชิ้นนี้ยากที่จะคิดออก ?

ดังนั้นคำถามของฉันคือ:

มี IDEs ใด ๆ (หรือน้อยกว่าการตั้งค่า all-in-one) ได้รับการสนับสนุนที่ยอดเยี่ยมสำหรับภาษาแบบไดนามิกหรือไม่หรือนี่ยังคงเป็นปัญหา


30
+1 ทุก ๆ PHP IDE ที่ฉันลองมามันแย่มากเมื่อเปรียบเทียบกับ Visual Studio + C # / C ++
MatějZábský

5
ไม่แน่ใจเกี่ยวกับคำถามเกี่ยวกับการครอบคลุม แต่คุณอาจต้องการดู JetBrains IDEs แนวทางของพวกเขาคือ "เรามี IDE ที่ยอดเยี่ยมอยู่แล้วทำให้มันใช้งานได้กับ $ LANGUAGE" ปัญหาเกี่ยวกับสิ่งที่คุณพยายามอาจใช้วิธีต่อไปนี้แทน: "$ LANGUAGE ไม่มี IDE ควรมีคนทำ"
millimoose

2
ฉันพบว่า IDEA นั้นยอดเยี่ยมมากโดยเฉพาะอย่างยิ่งการทำงานกับ Java และงานที่เกี่ยวข้องกับโครงการ แต่สำหรับ JavaScript ดูเหมือนจะไม่รู้จัก 'เมธอด' ที่กำหนดในเนมสเปซหรือวัตถุที่มีอยู่
vemv

IntelliJ IDEA หรือ IDE เฉพาะภาษาใด ๆ ของ JetBrains
sylvanaar

1
@FrustratedWithFormsDesigner ฉันใช้ Komodo แล้ว มันสมบูรณ์แบบอัตโนมัติที่ดีกว่า RoR IDE อื่น ๆ ที่ฉันเคยเห็น ... แต่ฉันเคยเห็น IDEs น้อยมากสำหรับ Ruby ที่พยายามใช้การทำให้สมบูรณ์อัตโนมัติ ที่กล่าวว่าจะดีกว่าไม่มีอะไร
Earlz

คำตอบ:


21

Smalltalk - ภาษาที่มีพลวัตรสูง - มี IDE ที่ยอดเยี่ยมอยู่เสมอซึ่งในสิ่งเล็ก ๆ น้อย ๆ เช่นการปรับโครงสร้างอัตโนมัติ SUnit (ปู่ย่าตายายของกรอบการทำงาน * หน่วยทั้งหมด) "ใครส่งข้อความนี้" ใครจะใช้วิธีการนี้? " และเป็นผู้บุกเบิก ดังนั้นใช่ IDEs สามารถรองรับภาษาแบบไดนามิกในระดับที่จนกระทั่งเมื่อเร็ว ๆ นี้ไกลเกินกว่าภาษาที่พิมพ์แบบคงที่

S. Lottกล่าวว่า "ภาษาไดนามิกไม่สามารถมีโค้ดที่สมบูรณ์แบบเดียวกับที่ภาษาสแตติกทำ

"เป็นไปไม่ได้ที่สำคัญ" ในความหมายตามทฤษฎี แน่ใจ ในความเป็นจริงหรือไม่? ไม่ได้จริงๆ มีหลายวิธีที่จะอนุมานชนิดสำหรับภาษาแบบไดนามิกแบบคงที่ (มีk-CFA , RoelTyper ) ในเวลาทำงาน ( PICs ) และวิธีการอื่น ๆ เช่นการใช้ประวัติศาสตร์ที่ผ่านมาของโปรแกรมเมอร์ - "วิธีประวัติศาสตร์ของโปรแกรมสามารถปรับปรุงรหัสเสร็จ"

แน่นอน Pharo และรับสารภาพชุมชนมีความสุขมากกับพวกเขาเครื่องมือจบรหัส


3
+1 จากฉัน แม้จะทำงานในโลกของ Java ในทุกวันนี้ แต่ฉันก็ยังระลึกได้ว่าคุณทำงานได้มากใน Smalltalk เมื่อเทียบกับภาษาอื่น ๆ ที่ฉันรู้จัก การรวมของ IDE และรหัสในภาพของคุณโดยมีรหัสว่า "มีชีวิตอยู่" ตลอดเวลา (ผู้ใช้งานขนาดเล็กจะรู้ว่าฉันหมายถึงอะไร) นั้นไม่มีใครเทียบได้ ด้วย Pharo และซีไซด์ฉีดชีวิตใหม่เป็นสิ่งที่หลายคนคิดว่าเป็น "ภาษาที่ได้รับ" และ Eclipse เป็น IDE ฉันกลับไปเล่นซอกับ Smalltalk มากขึ้น ข้อตกลงการตั้งชื่อที่ยอดเยี่ยมของสมอลทอล์คช่วยได้อย่างแน่นอนกับการคาดการณ์โค้ดให้เสร็จสมบูรณ์
Amos M. Carpenter

16

ทุกอย่างที่คุณรู้จาก IDEs นั้นพัฒนาขึ้นครั้งแรกใน Smalltak ซึ่งเป็นภาษาไดนามิก ทุกอย่างอื่นก็แค่คัดลอกพวกเขา อย่างชัดเจนคุณสมบัติทั้งหมดเหล่านี้เป็นไปได้ในภาษาแบบไดนามิก

วันนี้ภาษาแบบไดนามิกอยู่เบื้องหลังภาษาแบบคงที่ แต่ทำไม

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

ฉันคิดว่าฟีเจอร์สำหรับ IDE นั้นมีประโยชน์น้อยกว่าในภาษาที่พิมพ์แบบไดนามิก เมื่อทำงานใน Java หรือ Objective-C ฉันรู้สึกว่า IDE จำเป็นต้องช่วยฉันทำงานกับภาษา แต่สิ่งเดียวกันไม่ได้เป็นจริงของภาษาแบบไดนามิก

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


2
ใน Squeak และ Pharo RoelTyper ทำงานได้ดีพอสมควรในการอนุมานบางสิ่งบางอย่างโดยดูจากข้อความที่คุณส่งถึงมัน k-CFA ของ Shivers & Might ให้การอนุมานประเภทที่ปรับได้ในแง่ที่ว่าคุณสามารถแลกเปลี่ยนราคากับความแม่นยำ
Frank Shearar

13
I think that the features for IDEs are less useful in dynamically typed languages- ตลกฉันคิดว่าตรงกันข้าม เนื่องจากภาษาแบบไดนามิกจำนวนมากไม่ต้องการให้คุณประกาศตัวแปรล่วงหน้าการสะกดคำผิดจึงเป็นข้อกังวลที่ร้ายแรง ... ข้อกังวลซึ่งบรรเทาโดย IDE ที่ดี ในขณะเดียวกันคุณสมบัติที่สำคัญอื่น ๆ เช่นการระบายสีซินแท็กซ์เครื่องมือการปรับโครงสร้างและการแก้ไขข้อบกพร่องนั้นมีประโยชน์เท่าเทียมกันในทุกภาษา
BlueRaja - Danny Pflughoeft

2
@ Winston: จากนั้นคุณไม่เคยทำโปรเจ็กต์ในภาษาที่ไม่มีการประกาศกับคนหลาย ๆ คน :) มันน่ารำคาญเป็นพิเศษเมื่อภาษาเป็นกรณี ๆ ไป ตัวอย่างจากประสบการณ์ส่วนตัว: คำว่า "ผลงานการสั่งซื้อ" บางครั้งสะกดเป็นคำเดียว ( "workorder") ดังนั้นเมื่อมีการสร้างตัวแปรบางคนจะเขียนและบางส่วนจะเขียนworkOrder workorderนี่คือตัวแปรสองตัวที่แยกกันใน Python> _ <
BlueRaja - Danny Pflughoeft

1
@ BlueRaja-DannyPflughoeft ตรงกันข้ามฉันได้ทำโครงการใน Python ที่มีหลายคน เมื่อคุณบอกว่าคุณมีปัญหาก็คือ: คุณเรียกใช้และได้รับการยกเว้นเนื่องจากคุณกำลังอ้างอิงตัวแปรที่ไม่มีอยู่รหัสของคุณล้มเหลวในการทดสอบครั้งแรกเนื่องจากคุณเก็บข้อมูลของคุณในสถานที่ที่ไม่ถูกต้องหรือคุณได้รับข้อผิดพลาด รหัสหนีการผลิต?
Winston Ewert

2
"โคเดอร์หลายตัวเปลี่ยนใจในจุดนั้นไม่นาน ทำไมนี้
Pubby

10

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

การตั้งค่าของฉันถูกโฮสต์บนGithubอย่าลังเลที่จะดูและเปลสิ่งที่คุณชอบ สำหรับภาพรวมอย่างรวดเร็วของปลั๊กอิน:

  • เชื้อโรค
  • python-mode สำหรับการรวมเชือก, pyflakes และ pydoc
  • vimpdb สำหรับดีบักเกอร์หลาม
  • โครงการสำหรับรายการของไฟล์ในโครงการ
  • รายการแท็กสำหรับการกระโดดแท็ก
  • supertab สำหรับการเติมแท็บ
  • snipmate สำหรับตัวอย่าง
  • conqueterm สำหรับเชลล์รวม, พร้อมรับคำสั่ง, bash, python หรือ ipython

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


4

มี IDEs เฉพาะใด ๆ (หรือน้อยกว่าการตั้งค่า all-in-one) ได้รับการสนับสนุนที่ยอดเยี่ยมสำหรับภาษาแบบไดนามิก

การพิจารณาการประเมินของคุณนั้นยากที่จะเข้าใจ ("ยอดเยี่ยมโดยสิ้นเชิง"? "clueless / overenthusiastic"?) เป็นที่น่าสงสัยว่า IDE ใด ๆ ที่สามารถตรงกับมาตรฐานโดยนัย

การเปรียบเทียบกับ Eclipse + Java เป็นสิ่งที่โง่มากเพราะภาษาไดนามิกไม่ใช่ Java

หรือสิ่งนี้ยังคงเป็นปัญหา

ไม่มาก

มันอาจจะแก้ไม่ตก ความต้องการของคุณ ("การขาดความสมบูรณ์และทรัพย์สินอื่น ๆ ") ทำให้ยากที่จะแม่นยำยิ่งขึ้น

ภาษาไดนามิกไม่สามารถมีรหัสที่สมบูรณ์แบบเดียวกับที่ภาษาสแตติกทำ มันเป็นไปไม่ได้

IDE บางตัวทำงานได้ดีในการคาดเดา Eclipse ตัวอย่างเช่นมีปลั๊กอินสำหรับภาษาแบบไดนามิก


3

ฉันคิดว่าการนำเสนอนี้โดยSteve Yeggeยังคงเกี่ยวข้อง ใน nut shell มีจาวาสคริปต์ที่ดีครึ่งหนึ่ง (intelliJ IDEA) แต่ภาษาไดนามิกโดยทั่วไปกำลังเล่นแบบ catch-up ไม่ใช่เพราะมีอะไรที่ยากกว่าในการสร้างเครื่องมือเหล่านี้ ให้ความสนใจทั้งหมดก่อน


ในความเป็นจริงแล้วการนำเสนอของ Yegge เป็นสาเหตุของคำถามของฉัน: ถ้าฮิวริสติกและเทคนิคที่อธิบายไว้อื่น ๆ อยู่ตรงไหนการใช้งานที่ยอดเยี่ยมทั้งหมดอยู่ที่ไหน? เมื่อวันที่ IntelliJ: เห็นความคิดเห็นที่ฉันทิ้งไว้บนโพสต์ต้นฉบับของฉัน (และแจ้งให้เราทราบหากฉันผิด)
vemv

2014 - ยังคงไม่มีการแข่งขันสำหรับ IDEs คงที่ที่ดีที่สุด
Den

3

ฉันเขียนโปรแกรมทั้งวันเป็น javascript / php และ ruby ​​ที่ทำงานบนเว็บแอปพลิเคชันและ IDE ที่ดีที่สุดที่ฉันพบคือAptana มันมีการเติมโค้ดให้สมบูรณ์สำหรับทั้งสามภาษาเหล่านั้น (และไพ ธ อน) มันหยิบ vars ในเครื่องของฉันและด้านบนของสิ่งนั้นเมื่อทำงานกับ html และ css มันเลือก id ของใน html เพื่อใช้ใน css / javascript และฟังก์ชั่นการหยิบ ชื่อเมื่อฉันทำสิ่งที่รวดเร็วและสกปรกและการเขียนจาวาสคริปต์แบบอินไลน์ (ฉันรู้ว่าไม่ดี แต่บางครั้งก็มีประโยชน์สำหรับการพิสูจน์แนวคิด) มันได้สร้างขึ้นในงานคราดและสร้างขึ้นในการสนับสนุนสำหรับคอมไพล์และคอนโซลบรรทัดคำสั่ง ฉันใช้เวลาเล็กน้อยในการตื่นขึ้น แต่เมื่อฉันพบว่าฉันแทบไม่เคยออกจาก IDE เมื่อเขียนโปรแกรมและช่วยฉันประหยัดเวลาได้มาก


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

2

ฉันพบว่าการสนับสนุนของ Wing IDE สำหรับ Python นั้นยอดเยี่ยมจริงๆ มันทำงานได้ดีเมื่อมีการเติมโค้ดให้เสร็จสมบูรณ์และตัวดีบักมันมีประสิทธิภาพเทียบเท่ากับ Visual Studio สำหรับ C # แบบไดนามิก

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


2

Visual Studio ของ Microsoft เป็น IDE ที่โปรแกรมเมอร์หลายคนใช้และสนับสนุนIronRuby , IronPythonและ F # ส่วนใหญ่ถือว่า Ruby และ Python เป็นภาษาการเขียนโปรแกรมแบบไดนามิกในขณะที่ F # จะน้อยดังนั้น

เพื่อตอบสนองต่อความคิดเห็นF #เป็นภาษาโปรแกรม

F # (เด่นชัด F ชาร์ป) เป็นภาษาโปรแกรมหลายกระบวนทัศน์การกำหนดเป้าหมาย. NET Framework ที่ครอบคลุมการเขียนโปรแกรมการทำงานรวมทั้งระเบียบวินัยการเขียนโปรแกรมเชิงวัตถุและเชิง มันเป็นตัวแปรของ ML และส่วนใหญ่เข้ากันได้กับการใช้งาน OCaml

ในขณะที่คำจำกัดความที่แน่นอนของสิ่งที่กำหนด "ภาษาไดนามิก" ยังคงมีอยู่สำหรับการอภิปรายส่วนใหญ่จะยอมรับว่า JavaScript เป็น "ไดนามิก" มากกว่า C # เช่น ตามที่ Wikipedia:

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

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

คุณอาจต้องการที่จะเห็น: สิ่งที่มีคุณสมบัติภาษาการเขียนโปรแกรมเป็นแบบไดนามิก?


4
คุณสามารถอธิบายความหมายของคำว่า "F # [... ] เป็นภาษาไดนามิก" ได้อย่างไรและมันมีความไดนามิกมากกว่านี้พูด C # ได้อย่างไร
Arseni Mourzenko

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

2

ความแตกต่างที่สำคัญระหว่างภาษาที่พิมพ์แบบคงที่และภาษาที่พิมพ์แบบไดนามิกคือระบบสามารถรู้ได้อย่างแน่นอนว่าการอ้างอิงสัญลักษณ์หมายถึงอะไรในเวลารวบรวม

สิ่งนี้ทำให้ง่ายต่อการรวบรวมข้อมูลที่คุณต้องการในการสร้าง IDE ที่ดีโดยตรงจากข้อมูลที่คอมไพเลอร์สร้างขึ้นในเวลารวบรวม

หากคุณมีลายเซ็นเมธอดแบบสแตนด์อะโลนที่เพิ่งบอกว่าวิธีการใช้ "สิ่ง" วิธีแก้ไขสามารถช่วยให้คุณรู้ว่าสิ่งที่จะส่ง? มันจะช่วยแนะนำวิธีใช้สิ่งของได้อย่างไร?

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

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

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


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

1
IDE ไม่สามารถทำงานได้ในขณะรันไทม์หรืออาจทำงานได้อย่างถูกต้องในสาขาเดียวเท่านั้นในแต่ละครั้ง รันไทม์เป็นสถานการณ์สัญลักษณ์ที่กำหนดอาจหมายถึงสิ่งหนึ่งในหนึ่งผ่านและอีกสิ่งหนึ่งในอีกหนึ่งผ่านดังนั้นหาก "บรรณาธิการ" ของคุณคือ "ใช้งาน" (วิธีการที่แม้ทำงาน ???) ใน "หนึ่งผ่าน" มันเป็นอย่างไร รับข้อมูลจาก "Another Pass" เพื่อทำข้อความให้สมบูรณ์หรือไม่ สำหรับเรื่องนั้นจะเกิดอะไรขึ้นถ้าคุณกำลังเขียนไลบรารีที่จะเสียบเข้ากับโมดูลที่ยังไม่ได้เขียน
Bill K

@billk ในทางปฏิบัติ IDE ทำงานได้ดีที่รันไทม์ ถ้าคุณทำการทดสอบก่อนรันไทม์ของคุณรู้ว่าวัตถุที่คุณคาดหวัง ลองใช้ก้านขนาดเล็กซักพักหนึ่ง
เตฟาน Eggermont

0

อย่างน้อยสำหรับ PHP หลาย ๆ อย่าง "เข้าใจ"

/** @var $foo ClassA **/

หากคุณทำเอกสารด้วยวิธีมาตรฐาน (ในกรณีนี้phpDocumentor ) IDE จะใช้ประโยชน์ให้มากที่สุด


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

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

@ACNB: ภาษา "คงที่" มากมายยังอนุญาตให้ทำการแคสต์อัตโนมัติและพิมพ์คำย่อ เช่น C ++, C #, และอื่น ๆ
Arafangion

0

จาก IDE ทั้งหมดสำหรับภาษาแบบไดนามิก (ภาษาที่แก้ไขชนิดที่รันไทม์) สิ่งที่ดีที่สุดคือ ... Visual Studio for Python

  • ข้อมูลประเภท Bulling สำหรับ Intellisense
  • การเดินเรือ
  • debuging

มันคุ้มค่าที่จะลอง


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