Things aren't just black and white. At the very least, they're also big and small, loud and quiet, blue and orange, grey and gray, long and short, right and wrong, etc.

Interpreted/compiled is just one way to categorize languages, and it's completely independent from (among countless other things) whether you call the same language a "scripting language" or not. To top it off, it's also a broken classification:

  • Interpreted/compiled depends on the language implementation, not on the language (this is not just theory, there are indeed quite a few languages for which both interpreters and compilers exist)
  • There are language implementations (lots of them, including most Ruby implementations) that are compilers, but "only" compile to bytecode and interpret that bytecode.
  • There are also implementations that switch between interpreting and compiling to native code (JIT compilers).

You see, reality is a complex beast ;) Ruby is, as mentioned above, frequently compiled. The output of that compilation is then interpreted, at least in some cases - there are also implementations that JIT-compile (Rubinius, and IIRC JRuby compiles to Java bytecode after a while). The reference implementation has been a compiler for a long time, and IIRC still is. So is Ruby interpreted or compiled? Neither term is meaningful unless you define it ;)

But back to the question: "Scripting language" isn't a property of the language either, it depends on how the language is used - namely, whether the language is used for scripting tasks. If you're looking for a definition, the Wikipedia page on "Scripting language" may help (just don't let them confuse you with the notes on implementation details such as that scripts are usually interpreted). There are indeed a few programs that use Ruby for scripting tasks, and there are doubtless numerous free-standing Ruby programs that would likely qualify as scripts (web scraping, system administration, etc).

So yes, I guess one can call Ruby a scripting language. Of course that doesn't mean a ruby on rails web app is just a script.

Answer from user395760 on Stack Overflow
🌐
Medium
medium.com › @astermanuelg › blurred-lines-is-ruby-an-interpreted-language-2d3d6bca3d37
Blurred Lines: Is Ruby an interpreted language and what does that even mean? | by Manuel Grullon | Medium
March 27, 2018 - To some people, Ruby is a compiled language because the first tools for writing Ruby included a compiler. To us, it’s easy to see Ruby as an interpreted language because we run Ruby using the MRI, Matz Ruby Interpreter.
Top answer
1 of 3
50

Things aren't just black and white. At the very least, they're also big and small, loud and quiet, blue and orange, grey and gray, long and short, right and wrong, etc.

Interpreted/compiled is just one way to categorize languages, and it's completely independent from (among countless other things) whether you call the same language a "scripting language" or not. To top it off, it's also a broken classification:

  • Interpreted/compiled depends on the language implementation, not on the language (this is not just theory, there are indeed quite a few languages for which both interpreters and compilers exist)
  • There are language implementations (lots of them, including most Ruby implementations) that are compilers, but "only" compile to bytecode and interpret that bytecode.
  • There are also implementations that switch between interpreting and compiling to native code (JIT compilers).

You see, reality is a complex beast ;) Ruby is, as mentioned above, frequently compiled. The output of that compilation is then interpreted, at least in some cases - there are also implementations that JIT-compile (Rubinius, and IIRC JRuby compiles to Java bytecode after a while). The reference implementation has been a compiler for a long time, and IIRC still is. So is Ruby interpreted or compiled? Neither term is meaningful unless you define it ;)

But back to the question: "Scripting language" isn't a property of the language either, it depends on how the language is used - namely, whether the language is used for scripting tasks. If you're looking for a definition, the Wikipedia page on "Scripting language" may help (just don't let them confuse you with the notes on implementation details such as that scripts are usually interpreted). There are indeed a few programs that use Ruby for scripting tasks, and there are doubtless numerous free-standing Ruby programs that would likely qualify as scripts (web scraping, system administration, etc).

So yes, I guess one can call Ruby a scripting language. Of course that doesn't mean a ruby on rails web app is just a script.

2 of 3
5

Yes.

Detailed response:

A scripting language is typically used to control applications that are often not written in this language. For example, shell scripts etc. can call arbitrary console applications.

Ruby is a general purpose dynamic language that is frequently used for scripting.

You can make arbitrary system calls using backtick notation like below.

`<system command>`

There are also many excellent Ruby gems such as Watir and RAutomation for automating web and native GUIs.

For definition of scripting language, see here.

Discussions

0 How are Ruby and Java "interpreted" or "compiled" differently?
Java is a statically typed language while Ruby is a dynamically typed language . In short, static typing means that you declare the type of the variable up front, and its type won't change in scope. By contrast, in Ruby you could say" str = "cool" str = 1 and the interpreter would happily let you reassign the variable. In Java, once str is defined as String, you can't redeclare it as something else in scope. Static typing increases verbosity and rigidity, but it has some significant advantages - it enables static analysis which can find many errors without attempting to execute the program. By contrast, in Ruby, you'll only ever know that str isn't actually a string at runtime when you try to call a String-only method on it, and ruby says "whoops, I don't know about that method on that object". More on reddit.com
🌐 r/ruby
11
6
March 28, 2019
How strong is the market for Ruby developers?
You should teach yourself Ruby & Rails if for no other reason than none of the other languages have nearly the same rich set of resources available for someone who wants to learn on their own. You can learn important programming concepts using Ruby, and Rails is a great framework to have in your back pocket any time. I think there's a much richer ecosystem of great web frameworks out there today as opposed to ten years ago but I don't think Rails is going to be dying out any time soon. The fact of the matter is that Rails lets you create more business value per hour of coding than any other framework out there. It's staggering. And your Rails app will have to hit incredible traffic levels before you are putting an infeasible amount of effort into letting it handle traffic (seriously, don't make the jump past Rails too early!) Also, don't forget about all the other side skills that are super useful to a web developer and will pay great dividends for years. Really take time to understand Git and it will amplify your productivity, especially if you want to be able to try a lot of experiments and develop in a nonlinear fashion. Learn regexes, get really in-depth with databases, HTML/CSS and distributed systems; that knowledge will continue benefiting you for years. Become one with your text editor and all of your tools. Get equipment and tools you'll love using for hours a day; it makes a big difference! Also, if you want to really win in your software development career, look to solve the human problems too, because those skills really never go obsolete. Become good at defusing tense situations. When people get frustrated and irrational learn to bring them back. When people are giving your requirements for a project learn the art of asking the right questions to unravel complexity upfront. I'm a formidable software developer but some of my best work can be found in a beautifully-reasoned email that breaks down a problem and gets the team on track. These softer skills are mandatory if you fancy yourself becoming an engineering manager or CTO, but even if you don't want that for yourself they're very important skills and they will set you apart. Most importantly, focus on what excites you. Don't go chasing after the programming language that's in vogue because you want it to get you a job. When I interview an engineer I can easily spot the difference between the Rails developer that got into it because they thought it was a good path to a steady paycheck and the Rails developer that is using Rails because they truly love using Rails to solve problems. Guess which one I'm going to hire? More on reddit.com
🌐 r/ruby
42
33
July 4, 2016
Is Ruby a good first computing language?
Ruby is a programmer's best friend More on reddit.com
🌐 r/ruby
51
57
June 17, 2024
Is a language itself compiled or interpreted?
To add, you can compile a language designed for interpretation, but you may be forced to ship the entire interpreter machinery with the output. At that point, compilation might amount to little more than zipping the source and interpreter. More on reddit.com
🌐 r/ProgrammingLanguages
91
67
March 29, 2024
Top answer
1 of 4
11

I guess Ruby took off for many reasons:

  • The Rails framework. Rails assembled together many useful patterns to ease the development of web applications and boosts developer's productivity. Compare this to Java's verbose and tedious web development and the "one man show" .NET platform. Creating weblog web applications in minutes was a jaw dropping.
    You can see the "Rails effects" on many new JVM web frameworks like Grails, Play! and Spring Roo.
  • Success stories like Twitter and Github. Startups needs to hit the market as soon as possible and with Rails, this is possible. Success stories were an evidence.
  • Ruby programming language itself is beautiful, powerful and expressive. IMHO, Ruby is the secret sauce of Rails success.
    Look at the beauty of Cucumber and Sinatra, the beauty of DSLs done right.
  • Eager and brave community that isn't afraid to experiment and innovate.
  • (Personal opinion and may not be vital reason) It is created in Japan. Nothing beats the image of "Made in Japan".
    To me, learning programming languages created in different countries is the same as meeting new people. It is fun and educative.
    Ruby/Japan, OCaml/France, Lua/Brazil, Lisp/Mars :)
2 of 4
13

This doesn't directly answer the title question, but addresses some points raised (i.e. why Ruby was created)

Quotes from Yukihiro 'Matz' Matsumoto, creator of Ruby, which may help explain what inspired its creation:

  • "I wanted a scripting language that was more powerful than Perl, and more object-oriented than Python"
  • "I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language."

So basically, Matz wanted an extremely object-oriented language that was designed for programmer happiness.

🌐
DevTut
devtut.github.io › ruby › getting-started-with-ruby-language.html
Ruby - Getting started with Ruby Language
as the hello_world method doesn't accept any arguments, you can omit the parenthesis by invoking the method · Ruby (opens new window) is a multi-platform open-source, dynamic object-oriented interpreted language, designed to be simplistic and ...
🌐
Ismailakbudak
ismailakbudak.com › mystery-of-ruby-understanding-the-fundamentals-of-a-dynamic-and-flexible-language
Mystery of Ruby: Understanding the Fundamentals of a Dynamic and Flexible Language – Ismail Akbudak
December 8, 2024 - Ruby is a dynamic, object-oriented, and high-level programming language created by Yukihiro Matsumoto, known as Matz. Designed with developer happiness in mind, Ruby aims to make coding enjoyable and intuitive.
🌐
Ironhack
ironhack.com › gb › blog › javascript-vs-ruby-which-coding-language-should-you-learn
JavaScript vs Ruby: Which Coding Language Should You Learn?
May 28, 2023 - We’ll remind you: Ruby is an interpreted, high-level, multi-paradigm, dynamically-typed language, initially created as an object-oriented scripting language (none existed at the time), but has since added on a large number of features to make ...
Find elsewhere
🌐
MyTaskPanel
mytaskpanel.com › home › programming language ruby: features and utilities
Programming language Ruby: features and utilities
September 20, 2023 - That is, Ruby interpreter needs to parse the code and translate it into machine language understandable by a computer, but there is no previous compilation process like in C or Java.
🌐
Medium
medium.com › @lukeomalley7 › how-ruby-programs-are-interpreted-and-compiled-a4c998c4b710
How Ruby Programs are Interpreted and Compiled | by Luke O'Malley | Medium
July 19, 2019 - How Ruby Programs are Interpreted and Compiled Ruby is a high-level programming language whose goal is to make the developer happy which makes it a great language for beginners. It can achieve …
🌐
Rubynlp
rubynlp.org
Awesome RubyNLP
This curated list comprises awesome resources, libraries, information sources about computational processing of texts in human languages with the Ruby programming language. That field is often referred to as NLP, Computational Linguistics, HLT (Human Language Technology) and can be brought ...
🌐
Turing
turing.com › kb › what-is-ruby
What is Ruby? The Definitive Guide for You to Follow
Yukihiro intended to build a scripting ... directly with the hardware. It's written to a text file, then an interpreter processes it and converts it to code....
🌐
Wikipedia
en.wikipedia.org › wiki › Mruby
mruby - Wikipedia
January 16, 2026 - mruby is an interpreter for the Ruby programming language with the intention of being lightweight and easily embeddable.
🌐
Reddit
reddit.com › r/ruby › 0 how are ruby and java "interpreted" or "compiled" differently?
r/ruby on Reddit: 0 How are Ruby and Java "interpreted" or "compiled" differently?
March 28, 2019 -

I guess this is something I have heard about as well, typed vs non-typed languages.

I notice in Ruby, that I can easily declare a String object by

str = "cool"

In Java I have to be more verbose:

String str = new String("cool");

or a bit more shortened is allowed, for Strings at least, in Java,

String str = "cool";

How does one articulate what is going on here, does the compiler do the "work" and interpret and determine the object type based upon the value "cool" assigned to str variable in Ruby? Java requires us to declare the object type - String - upon instantiation of the String object. So I noticed the difference. Coming from a Ruby training background, learning some Java right now.

🌐
JetBrains
jetbrains.com › help › idea › configuring-language-interpreter.html
Configure a Ruby interpreter | IntelliJ IDEA Documentation
February 27, 2026 - If you installed Ruby using a package ... macOS, and so on) or Ruby installer (for example, RubyInstaller for Windows), you need to add it manually. If you installed Ruby using a version manager, IntelliJ IDEA detects interpreters automatically. In this case, you can select the desired version. If you installed Ruby directly from IntelliJ IDEA, the installed interpreter is set as the ...
🌐
Ruby Programming Language
ruby-lang.org › en › about
About Ruby | Ruby
This page has been discussing the reference implementation, in the community often referred to as MRI (“Matz’s Ruby Interpreter”) or CRuby (since it is written in C), but there are also others. They are often useful in certain situations, provide extra integration to other languages or environments, or have special features that MRI doesn’t. ... JRuby is Ruby atop the JVM (Java Virtual Machine), utilizing the JVM’s optimizing JIT compilers, garbage collectors, concurrent threads, tool ecosystem, and vast collection of libraries.
🌐
Wikipedia
en.wikipedia.org › wiki › Ruby_(programming_language)
Ruby (programming language) - Wikipedia
February 25, 2026 - Yukihiro "Matz" Matsumoto started to develop the language in the mid-1990s in Japan. Ruby is interpreted, high-level, and dynamically typed; its interpreter uses garbage collection and just-in-time compilation.
🌐
Blue Lobster
bluelobster.io › home › blog › ruby language advantages: a comprehensive guide for developers
Ruby Language Advantages: A Comprehensive Guide for Developers - Blue Lobster
February 25, 2025 - Ruby is a pure object-oriented language. Everything in Ruby, from primitive data types like strings and integers to classes, is treated as an object. This consistent object-oriented approach encourages developers to think more abstractly about ...
🌐
Scaler
scaler.com › home › topics › is ruby interpreted or compiled?
Is Ruby Interpreted or Compiled? - Scaler Topics
December 28, 2023 - Before we dive into the details, let's address the primary question: Is Ruby an interpreted language or a compiled language? The answer may surprise you. Ruby is often described as an interpreted language, but that is not the whole story.
🌐
Oracle
oracle.com › developer
What is Ruby?
Developers coding in Ruby can make changes to the way the language itself works. It’s an interpreted language like Python, rather than a compiled one like C or C++.
🌐
Medium
medium.com › @mich_berr › just-in-time-for-ruby-2-6-an-explanation-of-compiled-and-interpreted-languages-4fd021e7a58
Just-In-Time for Ruby 2.6, an explanation of compiled and interpreted languages | by Michelle Berry | Medium
January 13, 2022 - Let’s use Ruby as an example of an interpreted language. Ruby 1.8 and earlier versions utilized Ruby utilized Matz’s Ruby Interpreter (MRI), which behaved as described above. It read in each line of Ruby, parsed and tokenized it, and then ...