Need advice about which tool to choose?Ask the StackShare community!

Pharo

40
47
+ 1
44
Ruby

42K
21.6K
+ 1
4K
Add tool

Pharo vs Ruby: What are the differences?

Introduction

In this comparison, we will highlight key differences between Pharo and Ruby, two popular programming languages used in software development.

  1. Syntax: Pharo is an object-oriented language with a syntax similar to Smalltalk, emphasizing message passing and dynamic typing. On the other hand, Ruby is also an object-oriented language but follows a more traditional syntax with a focus on readability and developer productivity.

  2. Execution Environment: Pharo runs on its unique virtual machine, ensuring optimal performance and compatibility with its libraries. In contrast, Ruby relies on the Ruby interpreter, which may lead to slightly slower execution speeds compared to Pharo.

  3. Standard Libraries: Pharo comes with a comprehensive set of libraries for common tasks such as networking, GUI development, and database access. In Ruby, the standard library is more lightweight, with an emphasis on community-contributed gems to enhance functionality.

  4. Metaprogramming Capabilities: Ruby is well-known for its powerful metaprogramming features, allowing developers to dynamically define and modify classes and methods at runtime. While Pharo also supports metaprogramming, it is less emphasized and used less frequently in the language.

  5. Community and Ecosystem: Ruby has a larger and more active community than Pharo, resulting in a vast ecosystem of libraries, frameworks, and resources available for developers. Pharo, being a more niche language, has a smaller but dedicated community that focuses on maintaining and evolving the language and associated tools.

  6. Tooling and IDE Support: Pharo comes with a powerful integrated development environment (IDE) out of the box, offering features like live debugging, code browsing, and refactoring tools. Ruby, on the other hand, relies on third-party IDEs and editors like Visual Studio Code and Atom for enhanced development capabilities.

In Summary, Pharo and Ruby differ in syntax, execution environment, standard libraries, metaprogramming capabilities, community support, and tooling/IDE options.

Decisions about Pharo and Ruby
Andrew Carpenter
Chief Software Architect at Xelex Digital, LLC · | 16 upvotes · 432.6K views

In 2015 as Xelex Digital was paving a new technology path, moving from ASP.NET web services and web applications, we knew that we wanted to move to a more modular decoupled base of applications centered around REST APIs.

To that end we spent several months studying API design patterns and decided to use our own adaptation of CRUD, specifically a SCRUD pattern that elevates query params to a more central role via the Search action.

Once we nailed down the API design pattern it was time to decide what language(s) our new APIs would be built upon. Our team has always been driven by the right tool for the job rather than what we know best. That said, in balancing practicality we chose to focus on 3 options that our team had deep experience with and knew the pros and cons of.

For us it came down to C#, JavaScript, and Ruby. At the time we owned our infrastructure, racks in cages, that were all loaded with Windows. We were also at a point that we were using that infrastructure to it's fullest and could not afford additional servers running Linux. That's a long way of saying we decided against Ruby as it doesn't play nice on Windows.

That left us with two options. We went a very unconventional route for deciding between the two. We built MVP APIs on both. The interfaces were identical and interchangeable. What we found was easily quantifiable differences.

We were able to iterate on our Node based APIs much more rapidly than we were our C# APIs. For us this was owed to the community coupled with the extremely dynamic nature of JS. There were tradeoffs we considered, latency was (acceptably) higher on requests to our Node APIs. No strong types to protect us from ourselves, but we've rarely found that to be an issue.

As such we decided to commit resources to our Node APIs and push it out as the core brain of our new system. We haven't looked back since. It has consistently met our needs, scaling with us, getting better with time as continually pour into and expand our capabilities.

See more
Thomas Miller
Talent Co-Ordinator at Tessian · | 16 upvotes · 252.1K views

In December we successfully flipped around half a billion monthly API requests from our Ruby on Rails application to some new Python 3 applications. Our Head of Engineering has written a great article as to why we decided to transition from Ruby on Rails to Python 3! Read more about it in the link below.

See more
Mike Fiedler
Enterprise Architect at Warby Parker · | 3 upvotes · 246.3K views

When I was evaluating languages to write this app in, I considered either Python or JavaScript at the time. I find Ruby very pleasant to read and write, and the Ruby community has built out a wide variety of test tools and approaches, helping e deliver better software faster. Along with Rails, and the Ruby-first Heroku support, this was an easy decision.

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Pharo
Pros of Ruby
  • 3
    Purely object-oriented
  • 3
    Readable code
  • 3
    Image-based instead of source-file based
  • 3
    Great tooling
  • 3
    Dinamic live programming
  • 3
    Great syntax for anonymous functions (blocks)
  • 3
    Minimalist syntax
  • 3
    Programming in the debugger
  • 3
    Simple OOP
  • 3
    Great DSL capabilities
  • 2
    Interactive development
  • 2
    Great visualization tools
  • 2
    Great IDE
  • 2
    Open Source
  • 2
    Rapid development
  • 2
    Git integration out-of-the-box
  • 1
    Batteries included
  • 1
    Headless (CLI) support
  • 607
    Programme friendly
  • 538
    Quick to develop
  • 492
    Great community
  • 469
    Productivity
  • 432
    Simplicity
  • 274
    Open source
  • 235
    Meta-programming
  • 208
    Powerful
  • 157
    Blocks
  • 140
    Powerful one-liners
  • 70
    Flexible
  • 59
    Easy to learn
  • 52
    Easy to start
  • 42
    Maintainability
  • 38
    Lambdas
  • 31
    Procs
  • 21
    Fun to write
  • 19
    Diverse web frameworks
  • 14
    Reads like English
  • 10
    Makes me smarter and happier
  • 9
    Rails
  • 9
    Elegant syntax
  • 8
    Very Dynamic
  • 7
    Matz
  • 6
    Programmer happiness
  • 5
    Object Oriented
  • 4
    Elegant code
  • 4
    Friendly
  • 4
    Generally fun but makes you wanna cry sometimes
  • 4
    Fun and useful
  • 3
    There are so many ways to make it do what you want
  • 3
    Easy packaging and modules
  • 2
    Primitive types can be tampered with

Sign up to add or upvote prosMake informed product decisions

Cons of Pharo
Cons of Ruby
    Be the first to leave a con
    • 7
      Memory hog
    • 7
      Really slow if you're not really careful
    • 3
      Nested Blocks can make code unreadable
    • 2
      Encouraging imperative programming
    • 1
      No type safety, so it requires copious testing
    • 1
      Ambiguous Syntax, such as function parentheses

    Sign up to add or upvote consMake informed product decisions

    - No public GitHub repository available -

    What is Pharo?

    A pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.

    What is Ruby?

    Ruby is a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Pharo?
    What companies use Ruby?
    Manage your open source components, licenses, and vulnerabilities
    Learn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Pharo?
    What tools integrate with Ruby?
      No integrations found

      Sign up to get full access to all the tool integrationsMake informed product decisions

      Blog Posts

      Nov 20 2019 at 3:38AM

      OneSignal

      PostgreSQLRedisRuby+8
      9
      4803
      Oct 24 2019 at 7:43PM

      AppSignal

      JavaScriptNode.jsJava+8
      5
      1012
      Jun 6 2019 at 5:11PM

      AppSignal

      RedisRubyKafka+9
      16
      1722
      GitHubDockerReact+17
      42
      37725
      What are some alternatives to Pharo and Ruby?
      Smalltalk
      It is an object-oriented, dynamically typed reflective programming language. It was created as the language underpinning the "new world" of computing exemplified by "human–computer symbiosis". It was designed and created in part for educational use, specifically for constructionist learning.
      Python
      Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
      Java
      Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
      Elixir
      Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.
      Clojure
      Clojure is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system.
      See all alternatives