Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

7 ความแตกต่างที่สำคัญระหว่าง Java และ Ruby

คุณจะย้ายจาก Java เป็น Ruby ได้อย่างไร

ในคู่มือนี้ คุณจะได้เรียนรู้ว่าความแตกต่างที่สำคัญ .คืออะไร ระหว่างสองภาษาเพื่อช่วยให้คุณก้าวกระโดด

เหมาะอย่างยิ่งสำหรับผู้ที่ต้องการย้ายจาก Java/C# เป็น Ruby

แต่…

หากคุณแค่อยากรู้ความแตกต่าง สิ่งนี้ก็เหมาะสำหรับคุณเช่นกัน

มาทำสิ่งนี้กันเถอะ!

การพิมพ์แบบคงที่กับการพิมพ์แบบไดนามิก

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

นี่คือสถานการณ์ :

  • Java ใช้การพิมพ์แบบคงที่
  • Ruby ใช้การพิมพ์แบบไดนามิก

หมายความว่าอย่างไรกันแน่นะ

การพิมพ์หมายถึงวิธีการทำงานของตัวแปรและอาร์กิวเมนต์ของเมธอด

ภาษาที่พิมพ์อย่างหนัก (หรือแบบคงที่) ต้องประกาศประเภท (คลาส) ที่ตัวแปรทุกตัวยอมรับได้

หน้าตาเป็นแบบนี้ :

int n = 1;

โดยที่ int เป็นประเภท ในกรณีนี้ Integer .

เหตุใดจึงมีประโยชน์

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

ซึ่งหมายความว่าคุณจะรู้อยู่เสมอว่าคุณกำลังทำงานกับวัตถุประเภทใด

โดยมีข้อเสียคือไม่ค่อยยืดหยุ่น

ตรงกันข้าม…

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

นี่คือตัวอย่าง :

n = 1
n = "abc"

ข้อเสียคือ คุณอาจพบข้อผิดพลาดมากขึ้นหากโค้ดของคุณเลอะเทอะและคุณไม่ได้รับมากเมื่ออ่านโค้ด

นั่นคือความแตกต่างที่สำคัญอย่างหนึ่ง!

เพิ่มเติมในหัวข้อถัดไป

Syntax:Simple Things &Boilerplate

Java เป็นราชาแห่งต้นแบบ

Boilerplate คือโค้ด "การตั้งค่า" ทั้งหมดที่คุณต้องเพิ่มเพื่อให้โค้ดของคุณถูกต้องตามหลักไวยากรณ์

เป็นผล…

Java ทำให้เรื่องง่าย ๆ ซับซ้อน!

สวัสดีชาวโลกในภาษา Java :

class Hello {
  static public void main() {
    System.out.println("Hello World");
  }
}

จากนั้นคุณต้องคอมไพล์เป็นไฟล์คลาสและเรียกใช้

สองขั้นตอน!

(IDE ช่วยได้)

ความแตกต่างอีกประการหนึ่งคือนิพจน์ใน Java ลงท้ายด้วยอัฒภาค ซึ่งไม่จำเป็นใน Ruby คุณสามารถเว้นวงเล็บใน Ruby ได้เกือบตลอดเวลา

สวัสดีชาวโลกในทับทิม :

puts "Hello World"

ครับ

แค่นั้นแหละ.

ดูเหมือนว่า Ruby จะทำให้โค้ดสะอาดขึ้น เห็นด้วยไหม

ยิ่งไปกว่านั้น…

คุณสามารถเรียกใช้รหัสนี้ด้วยคำสั่งเดียวจากเทอร์มินัล!

ไม่จำเป็นต้องมีขั้นตอนการคอมไพล์

การเล่นด้วยโค้ด:REPL ในตัว

Ruby มาพร้อมกับ irb ซึ่งทำให้การทดสอบโค้ดเล็กน้อยนั้นรวดเร็วมาก

คุณไม่จำเป็นต้องบันทึกไฟล์ด้วยซ้ำ

หรือเปิดโปรแกรมแก้ไข!

Java ไม่มีสิ่งนี้ในตัว อย่างน้อยก็ไม่มีจนกระทั่ง Java 9

ชื่อไฟล์และการจัดไฟล์

Java บังคับโครงสร้างและการตั้งชื่อไฟล์เฉพาะ

ตัวอย่างเช่น :

หากคุณมีคลาส (สาธารณะ) ชื่อ Hello ชื่อไฟล์ต้องเป็น Hello.java .

นี่ไม่ใช่กรณีใน Ruby

นอกจากนี้เรายังไม่มีแนวคิดเรื่องคลาสส่วนตัวใน Ruby

การจัดการข้อยกเว้น

Java มีข้อยกเว้นสองประเภท:

  • ตรวจสอบข้อยกเว้น
  • ไม่ได้เลือกข้อยกเว้น

ความแตกต่าง?

คุณต้องจัดการกับข้อยกเว้นที่ตรวจสอบ!

มิฉะนั้นโปรแกรมของคุณจะไม่ทำงานด้วยซ้ำ

ตอนนี้ :

Ruby มีข้อยกเว้นเพียงประเภทเดียวเท่านั้น

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

คอมไพเลอร์และใบอนุญาตภาษา

สุดท้ายนี้ เรามาพูดถึงการออกใบอนุญาตกันดีกว่า

ซึ่งปกติแล้วจะไม่มีปัญหากับภาษาโปรแกรม

ทำไม?

เนื่องจากเป็นโอเพ่นซอร์ส โดยมีคนเดียวเป็นหัวหน้าผู้ดูแลและนักออกแบบ

Java มีความแตกต่างที่นี่

ให้กับบริษัทขนาดใหญ่ (Oracle) และมีผลกระทบต่อการออกใบอนุญาต

อันที่จริง :

รันไทม์ Java มีสองเวอร์ชันคือ “Oracle JDK” ซึ่ง (หากฉันเข้าใจถูกต้อง) ที่ขึ้นต้นด้วยเวอร์ชัน 9 เป็นผลิตภัณฑ์เชิงพาณิชย์

จากนั้นคุณมี “Open JDK” ซึ่งเป็นของ Oracle ด้วย

แต่มีใบอนุญาตโอเพนซอร์ส

ไลบรารีและการแจกจ่ายโค้ด

ความแตกต่างที่สำคัญอีกประการหนึ่ง สิ่งหนึ่งที่ฉันชอบ (เช่นเดียวกับ Matz ที่ชื่นชอบ) เกี่ยวกับ Ruby คือ RubyGems

ทำให้การแจกจ่ายไลบรารี (เช่นไคลเอ็นต์ HTTP) ง่ายขึ้นมาก

เพราะ :

  • มีที่เก็บส่วนกลาง
  • รวมเข้ากับภาษา
  • โอเพ่นซอร์สอัญมณีมากมายและหาง่าย

เท่าที่ฉันรู้ Java ไม่มีอะไรใกล้เคียงกับสิ่งนี้ ดังนั้นนี่คือ ชัยชนะที่สำคัญ สำหรับทับทิม

สรุป

คุณได้เรียนรู้ความแตกต่างที่สำคัญระหว่าง Java และ Ruby รวมถึงสิ่งต่างๆ เช่น การพิมพ์แบบคงที่ ต้นแบบ และการตั้งชื่อไฟล์

ตอนนี้คุณพร้อมที่จะเข้าใจ Ruby มากขึ้นแล้ว เพื่อให้คุณตัดสินใจได้อย่างถูกต้อง

ขอบคุณที่อ่าน! 🙂