ฉันสามารถใช้ Ruby เพื่อทำให้ทุกอย่างเป็นอัตโนมัติได้หรือไม่


11

ฉันเผชิญกับแอพพลิเคชั่นหลายประเภท (บนเว็บ, อิง GUI, บรรทัดคำสั่ง ฯลฯ ) บนแพลตฟอร์มต่างๆ (Windows, Linux และอื่น ๆ ) เพื่อให้ทำงานได้ทุกวัน มีโอกาสที่ดีสำหรับฉันที่จะทำงานอัตโนมัติโดยการเขียนสคริปต์ แต่แอปพลิเคชันและแพลตฟอร์มเกือบทุกประเภทมีภาษาหรือเครื่องมือการเขียนสคริปต์ดั้งเดิม (เช่นVBScriptและPowerShellสำหรับ Windows, สคริปต์ Bash สำหรับ Linux, ซีลีเนียมสำหรับเว็บแอปพลิเคชันและAutoItสำหรับแอปพลิเคชัน GUI เป็นต้น) มันฆ่าฉันให้เรียนรู้และบำรุงรักษาภาษาสคริปต์มากมาย

ฉันมีความรู้สึกว่าทับทิมสามารถทำงานร่วมกับแพลตฟอร์มต่าง ๆ ได้อย่างง่ายดายและเป็นสิ่งที่แสดงออกมาก ดังนั้นคำถามของฉันคือ:

  1. เป็นไปได้ไหมที่จะใช้ Ruby เพื่อเขียนสคริปต์ทุกอย่าง

  2. ถ้าเป็นเช่นนั้นข้อเสียเปรียบหลักเมื่อเปรียบเทียบกับภาษาสคริปต์ของแต่ละแพลตฟอร์มคืออะไร

คำตอบ:


6

Ruby เป็นตัวเลือกที่ดีสำหรับภาษาสคริปต์วัตถุประสงค์ทั่วไปบน Linux, OS X, ฯลฯ แต่เมื่อเร็ว ๆ นี้ฉันต้องการเขียนสคริปต์บางอย่างที่จะทำงานบน Windows ทุกรุ่นตั้งแต่ปี 2000 ถึง 7 VBScript ไม่มีฟังก์ชันที่ฉันต้องการ ( ตัวอย่างเช่นการพูดคุยกับบริการเว็บ SOAP) และ PowerShell ไม่พร้อมใช้งานสำหรับ Windows 2000 ดังนั้นฉันจึงดูนอกชุดเครื่องมือของ Microsoft และตัดสินใจที่จะให้รูบี้ยิง (เคยใช้มันใน Linux ในอดีต) ฉันไม่เสียใจกับการตัดสินใจ แต่ฉันสงสัยว่าอาจมีทางเลือกที่ดีกว่านี้หรือไม่ ข้อร้องเรียนหลักของฉันเกี่ยวกับ Ruby บน Windows คือ:

  • ไม่มี Ruby 64 บิตสำหรับ Windows (เท่าที่ฉันรู้) ซึ่งพยายามเข้าถึงพื้นที่เสมือนจริงของระบบเช่น c: \ windows \ system32 ลาก ฉันลงเอยด้วยการใช้ VBScript สำหรับสิ่งนั้น อาจจะมีวิธีที่ดีกว่าที่ฉันไม่เข้าใจ
  • มันช้า ฉันมีซีพียูแบบ quad-core และ RAM ขนาด 6GB และ irb ใช้เวลาโหลด 2+ วินาที
  • ในขณะที่มีไลบรารีเฉพาะของ Windows สำหรับสิ่งต่าง ๆ เช่นการเข้าถึงรีจิสทรีและ WMI สิ่งต่าง ๆ อาจไม่ง่ายอย่างที่คิดเสมอไปและการขาดเอกสารที่เกี่ยวข้องอาจส่งผลให้มีการลองผิดลองถูก

ถึงกระนั้นสิ่งต่าง ๆ ก็ใช้งานได้ตามที่คุณคาดหวังและฉันชอบทำงานกับ Ruby ประมาณพันครั้งดีกว่าสิ่งใดก็ตามที่สร้างไว้ในระบบปฏิบัติการดังนั้นอย่างน้อยฉันก็บอกว่าคุณทำได้แย่กว่า Ruby สำหรับการเขียนสคริปต์บน Windows .


2

Ruby ดูเหมือนจะเหมาะกับความต้องการของคุณเกี่ยวกับความสามารถในการพกพาข้ามแพลตฟอร์ม (Windows, Linux, MAC) และความสามารถในการทำให้แอปพลิเคชันประเภทต่าง ๆ เป็นอัตโนมัติ AFAIK คุณสามารถทำให้เบราว์เซอร์และแอพบรรทัดคำสั่งโดยอัตโนมัติโดยใช้ ruby ​​ไลบรารี แต่ฉันไม่แน่ใจเกี่ยวกับเครื่องมือที่ใช้ GUI (แพลตฟอร์มบางอย่างเช่น. NET มีการเชื่อมโยงทับทิมที่อาจเป็นประโยชน์ในเรื่องนี้)

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

หากคุณเปรียบเทียบกับ BATCH และ Shell Scripts คุณสามารถใช้ ruby ​​เพื่อทำงานเกือบทุกอย่างที่สคริปต์เหล่านี้สามารถทำได้ ข้อเสียอาจเป็น:

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

Rukuliอาจครอบคลุมความท้าทายในการทดสอบ GUI ที่ต้องเผชิญ
ljs.dev

0

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

Ruby นั้นใช้ได้กับการเขียนสคริปต์ทั่วไป แต่ก็ไม่ได้ยอดเยี่ยมสำหรับการแสดง อย่างไรก็ตามอนุญาตให้คุณระบุแพลตฟอร์มภายในสคริปต์และดำเนินการคำสั่งและสคริปต์ภายนอก


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