Software Alternatives, Accelerators & Startups

Crystal (programming language) VS Pharo

Compare Crystal (programming language) VS Pharo and see what are their differences

Crystal (programming language) logo Crystal (programming language)

Programming language with Ruby-like syntax that compiles to efficient native code.

Pharo logo Pharo

Pharo is a pure object-oriented programming language and a powerful environment, focused on...
  • Crystal (programming language) Landing page
    Landing page //
    2022-01-26
  • Pharo Landing page
    Landing page //
    2022-07-26

Crystal (programming language) features and specs

  • Performance
    Crystal is designed to have the performance of C, thanks to its compilation to efficient native code. Its static type system and low-level memory management capabilities allow optimized execution.
  • Syntax
    Crystal offers a syntax that is heavily inspired by Ruby, making it intuitive and familiar for Ruby developers. This can significantly reduce the learning curve and improve developer productivity.
  • Type Inference
    Crystal provides powerful type inference, enabling developers to write less boilerplate code while still benefiting from the safety and performance of a statically-typed language.
  • Concurrency
    Crystal supports lightweight concurrency with fibers, which allows developers to write efficient and scalable concurrent programs with a simpler syntax compared to traditional threading models.
  • Community and Ecosystem
    Crystal has an active and growing community. It also boasts a rich ecosystem with libraries and tools, making it easier for developers to find resources and support.

Possible disadvantages of Crystal (programming language)

  • Maturity
    Crystal is still a relatively young language compared to more established languages like Python or Java. This can mean fewer resources, libraries, and tools, as well as potential instability in certain areas.
  • Compilation Time
    Crystal's compilation times can be slower compared to interpreted languages, particularly for larger codebases. This can impact development workflows and iteration speed.
  • Binary Size
    Compiled Crystal programs tend to generate larger binary sizes compared to other compiled languages like Go or Rust. This can be a consideration for resource-constrained environments.
  • Platform Support
    Being less mature, Crystal may have fewer options for platform-specific optimizations and integrations, which could limit its use in certain specialized applications.
  • Tooling
    Although the situation is improving, Crystal's tooling ecosystem is not as mature as those of older languages. This can affect the availability and quality of IDE support, debugging tools, and other development aids.

Pharo features and specs

  • Integrated Development Environment
    Pharo offers a highly integrated development environment with powerful tools like the inspector, debugger, and playgrounds, enhancing the overall development experience.
  • Live Code Changes
    Pharo supports live coding, allowing developers to make changes and see the effects immediately without the need to stop and restart the application.
  • Rich Libraries
    Pharo comes with a comprehensive set of libraries and frameworks, reducing the need to search for external dependencies and allowing for rapid development.
  • Object-Oriented Language
    Pharo is a true object-oriented language, which makes it natural for modeling real-world scenarios and leveraging the power of polymorphism and inheritance.
  • Community and Support
    Pharo has an active and supportive community that contributes to continuous improvements, tutorials, documentation, and libraries.

Possible disadvantages of Pharo

  • Niche Ecosystem
    Pharo's ecosystem is relatively small compared to more mainstream programming languages, which might make it harder to find libraries, tools, and examples for specific needs.
  • Learning Curve
    Pharo can have a steep learning curve, especially for developers not familiar with Smalltalk or the unique aspects of its environment.
  • Limited Job Market
    Compared to more popular languages like JavaScript or Python, the job market for Pharo developers is limited, potentially making it less attractive for career-oriented developers.
  • Performance Constraints
    While suitable for many kinds of applications, Pharo’s performance might not be on par with languages specifically optimized for high-performance computing or low-level system programming.
  • Documentation
    Although improving, Pharo's documentation may not be as extensive or as easy to navigate as that of more widely-used programming languages, which can be challenging for new users.

Analysis of Crystal (programming language)

Overall verdict

  • Crystal is considered a good choice for developers who appreciate the syntax and flexibility of Ruby but require the performance and safety of a compiled language. Its balance of readability and efficiency makes it ideal for projects where high performance is critical but developer productivity cannot be sacrificed. However, potential users should consider the relatively smaller community compared to more established languages.

Why this product is good

  • Crystal is designed to combine the elegance and productivity of Ruby with the performance and efficiency of a compiled language. It offers a syntax that is close to Ruby, making it easy to read and write, while its compiler produces highly optimized native code. The language features static type checking, which helps catch errors at compile time, and it comes with powerful concurrency support through lightweight fibers. Additionally, Crystal's extensive standard library and growing ecosystem make it suitable for a wide range of applications.

Recommended for

  • Developers who enjoy Ruby's syntax but need better performance.
  • Projects that require strong concurrency support.
  • Applications where native code performance is a priority.
  • Developers willing to explore a language with a smaller ecosystem.

Analysis of Pharo

Overall verdict

  • Pharo is generally considered good, especially for developers who appreciate a clean, object-oriented programming environment. Its benefits include ease of use, powerful development tools, and an active support community, which make it a strong candidate for many programming projects.

Why this product is good

  • Pharo is an open-source, dynamically-typed programming language and environment that is focused on simplicity and immediate feedback. It's built around the idea of live coding and offers powerful tools for software development, including a modern version of the Smalltalk language. It is particularly appreciated for its elegant syntax, object-oriented design, and innovative development environment which allows for immediate testing and debugging. Pharo also has a strong and active community, providing support and a library of resources and packages.

Recommended for

  • Developers interested in object-oriented programming
  • Individuals looking for a live coding environment
  • Educational purposes and teaching programming concepts
  • Projects that require rapid prototyping and iteration
  • Developers who enjoy experimenting with new languages and paradigms

Crystal (programming language) videos

No Crystal (programming language) videos yet. You could help us improve this page by suggesting one.

Add video

Pharo videos

Black Ops 3 In Depth: Pharo Burst Fire SMG Review (Best SMG?)

Category Popularity

0-100% (relative to Crystal (programming language) and Pharo)
Programming Language
67 67%
33% 33
OOP
63 63%
37% 37
Generic Programming Language
Development
66 66%
34% 34

User comments

Share your experience with using Crystal (programming language) and Pharo. For example, how are they different and which one is better?
Log in or Post with

Social recommendations and mentions

Based on our record, Crystal (programming language) should be more popular than Pharo. It has been mentiond 115 times since March 2021. We are tracking product recommendations and mentions on various public social media platforms and blogs. They can help you identify which product is more popular and what people think of it.

Crystal (programming language) mentions (115)

  • Dotnet Run App.cs
    Have you heard of crystal[0]? It is very close to ruby, but compiled, with fast start times. [0]: https://crystal-lang.org/. - Source: Hacker News / 14 days ago
  • Rhombus Language
    Did you ever see Crystal? It's more or less a typed Ruby. I've heard that you can port some code directly. https://crystal-lang.org/. - Source: Hacker News / 3 months ago
  • Tiny JITs for a Faster FFI
    If you like the Ruby syntax (but want a statically typed language), you might want to take a look at Crystal: https://crystal-lang.org/ > Crystal is statically typed and type errors are caught early by the compiler, eliminating a range of type-related errors at runtime. - Source: Hacker News / 4 months ago
  • Advent of Code #1 (in Gleam)
    I really enjoyed using Crystal last year. It is a very ergonomic language with a featureful standard library. I was tempted to use it again this year, but I figured I should use this opportunity to try something new. After considering several languages including Go, F#, Nim, and Raku, I decided to go with Gleam. - Source: dev.to / 6 months ago
  • Understanding Ruby 3.3 Concurrency: A Comprehensive Guide
    Also check https://crystal-lang.org/ which aims for ruby like syntax/dx but almost native performance. - Source: Hacker News / 7 months ago
View more

Pharo mentions (34)

  • The Xerox Alto, Smalltalk, and Rewriting a Running GUI
    Someone replied to one of my recent posts with this modern Smalltalk implementation: https://pharo.org/. - Source: Hacker News / 3 days ago
  • Ask HN: How Are Parents Who Program Teaching Their Kids Today?
    There is a turtle graphics framework in the Python standard library: https://docs.python.org/3/library/turtle.html Pharo is a cross-platform implementation of the classic Smalltalk-80 programming language and runtime system: https://pharo.org/. - Source: Hacker News / 11 days ago
  • _M2dir: Treating mails as files without going crazy
    Pharo/SmallTalk seem to also explore the ideas akin to this. (https://pharo.org/) to be fair the current state of affairs is similar enough with file extensions + mime info if you squint hard enough and pretend that app and systems folders files don't exist but it's held with pinky promises. - Source: Hacker News / about 1 year ago
  • Enlightenmentware
    Smalltalk and as a particular case Pharo is an example of this for me. (https://pharo.org/). When I was in uni a paper that I always came back to was Licklider's 1960s paper on human-computer symbiosis (https://worrydream.com/refs/Licklider_1960_-_Man-Computer_Symbiosis.pdf) "[...]to enable men and computers to cooperate in making decisions and controlling complex situations without inflexible dependence on... - Source: Hacker News / about 1 year ago
  • Why don't schools teach debugging, or, more fundamentally, fundamentals?
    I think in part it's because the idea that programming is text and math-based is too ingrained in society. For example, we talk about programming languages. But IMO there are also programming systems such as Smalltalk [1]. I've programmed 2 years professionally in it, currently looking for an engagement in a different language (a curiosity thing, also a resume thing). I think Smalltalk has a lot to offer by... - Source: Hacker News / over 1 year ago
View more

What are some alternatives?

When comparing Crystal (programming language) and Pharo, you can also consider the following products

Nim (programming language) - The Nim programming language is a concise, fast programming language that compiles to C, C++ and JavaScript.

Smalltalk - Smalltalk is an object-oriented programming (OOP) language. It is objects all the way down.

Go Programming Language - Go, also called golang, is a programming language initially developed at Google in 2007 by Robert...

Pike programming language - Dynamic programming language with a syntax similar to Java and C

V (programming language) - Simple, fast, safe, compiled language for developing maintainable software.

C++ - Has imperative, object-oriented and generic programming features, while also providing the facilities for low level memory manipulation