تفاوت pry و irb در روبی

دوستان من چند روزی هست از pry در روبی به جای irb استفاده میکنم ولی هنوز تفاوت زیادی بینشون پیدا نکردم جز یکی دو مورد خواستم بدونم در کل تفاوت بین pry و irb چی هست

چیزی که من میدونم اینه که irb یک REPL رسمی روبی هست و pry هم از نظر syntax و پشتیبانی زبان یکیه فقط یک سری امکانات مثل linter اضافه بر سازمان داره که به خوانایی کمک میکنه. توی خود irb هم میشه pry را لود کنی. در ضمن من برای دیباگ کردن هم ازش استفاده میکنم. بطور مثال:

a = %w(a b c d)
Pry.start(binding)
p a.map(& :upcase)

وقتی این کد را توی ترمینال اجرا می‌کنم، یک کنسول (REPL) به من میده که خط‌های قبل Pry اجرا شدن (مثل breakpoint) و میتونم دیباگ کنم و مثلا با a کار کنم.