Get Advice Icon

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

Om
Om

12
7
+ 1
0
Ruby
Ruby

12.6K
7.1K
+ 1
3.8K
Add tool

Om vs Ruby: What are the differences?

Om: ClojureScript interface to Facebook's React. A ClojureScript UI framework and client/server architecture over Facebook's React. Om UIs are out of the box snapshotable and undoable and these operations have no implementation complexity and little overhead; Ruby: A dynamic, interpreted, open source programming language with a focus on simplicity and productivity. 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.

Om and Ruby belong to "Languages" category of the tech stack.

Om and Ruby are both open source tools. Ruby with 15.9K GitHub stars and 4.25K forks on GitHub appears to be more popular than Om with 6.61K GitHub stars and 371 GitHub forks.

According to the StackShare community, Ruby has a broader approval, being mentioned in 2530 company stacks & 1140 developers stacks; compared to Om, which is listed in 3 company stacks and 3 developer stacks.

What is Om?

A ClojureScript UI framework and client/server architecture over Facebook's React. Om UIs are out of the box snapshotable and undoable and these operations have no implementation complexity and little overhead.

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.
Get Advice Icon

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

Why do developers choose Om?
Why do developers choose Ruby?
    Be the first to leave a pro

    Sign up to add, upvote and see more prosMake informed product decisions

      Be the first to leave a con

      Sign up to add, upvote and see more consMake informed product decisions

      What companies use Om?
      What companies use Ruby?

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

      What tools integrate with Om?
      What tools integrate with Ruby?

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

      What are some alternatives to Om and Ruby?
      PHP
      Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
      JavaScript
      JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
      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!
      HTML5
      HTML5 is a core technology markup language of the Internet used for structuring and presenting content for the World Wide Web. As of October 2014 this is the final and complete fifth revision of the HTML standard of the World Wide Web Consortium (W3C). The previous version, HTML 4, was standardised in 1997.
      See all alternatives
      Decisions about Om and Ruby
      StackShare Editors
      StackShare Editors
      Angular
      Angular
      jQuery
      jQuery
      Objective-C
      Objective-C
      Swift
      Swift
      Go
      Go
      Ruby
      Ruby
      Java
      Java
      React
      React
      Python
      Python
      Node.js
      Node.js
      Rails
      Rails

      By mid-2015, around the time of the Series E, the Digital department at WeWork had grown to more than 40 people to support the company’s growing product needs.

      By then, they’d migrated the main website off of WordPress to Ruby on Rails, and a combination React, Angular, and jQuery, though there were efforts to move entirely to React for the front-end.

      The backend was structured around a microservices architecture built partially in Node.js, along with a combination of Ruby, Python, Bash, and Go. Swift/Objective-C and Java powered the mobile apps.

      These technologies power the listings on the website, as well as various internal tools, like community manager dashboards as well as RFID hardware for access management.

      See more
      StackShare Editors
      StackShare Editors
      Kotlin
      Kotlin
      gRPC
      gRPC
      Go
      Go
      Ruby
      Ruby

      As the WeWork footprint continued to expand, in mid-2018 the team began to explore the next generation of identity management to handle the global scale of the business.

      The team decided to vet three languages for building microservices: Go, Kotlin, and Ruby. They compared the three by building a component of an identity system in each, and assessing the performance apples-to-apples.

      After building out the systems and load testing each one, the team decided to implement the new system in Go for a few reasons. In addition to better performance under heavy loads, Go, according to the team, is a simpler language that will constrain developers to simpler code. Additionally, the development lifecycle is simpler with Go, since “there is little difference between running a service directly on a dev machine, to running it in a container, to running clustered instances of the service.”

      In the implementation, they the Go grpc framework to handle various common infrastructure patterns, resulting in “in a clean common server pattern that we can reuse across our microservices.”

      See more
      Dima Korolev
      Dima Korolev
      Principal Maintainer at Current · | 3 upvotes · 14.1K views
      atFriendlyDataFriendlyData
      C++
      C++
      Ruby
      Ruby
      #Grammar
      #NLP
      #BNF

      Ruby NLP C++ Grammar #BNF

      At FriendlyData we had a Ruby-based pipeline for natural language processing. Our technology is centered around grammar-based natural language parsing, as well as various product features, and, as the core stack of the company historically is Ruby, the initial version of the pipeline was implemented in Ruby as well.

      As we were entering the exponential growth phase, both technology- and product-wise, we looked into how could we speed up and extend the performance and flexibility of our [meta-]BNF-based parsing engine. Gradually, we built the pieces of the engine in C++.

      Ultimately, the natural language parsing stack spans three universes and three software engineering paradigms: the declarative one, the functional one, and the imperative one. The imperative one was and remains implemented in Ruby, the functional one is implemented in a functional language (this part is under the NDA, while everything I am talking about here is part of the public talks we gave throughout 2017 and 2018), and the declarative part, which can loosely be thought of as being BNF-based, is now served by the C++ engine.

      The C++ engine for the BNF part removed the immediate blockers, gave us 500x+ performance speedup, and enabled us to launch new product features, most notably query completions, suggestions, and spelling corrections.

      See more
      PagerDuty
      PagerDuty
      Slack
      Slack
      Go
      Go
      PHP
      PHP
      Java
      Java
      Python
      Python
      Ruby
      Ruby
      Node.js
      Node.js
      Sqreen
      Sqreen

      I chose Sqreen because it provides an out-of-the-box Security as a Service solution to protect my customer data. I get full visibility over my application security in real-time and I reduce my risk against the most common threats. My customers are happy and I don't need to spend any engineering resources or time on this. We're only alerted when our attention is required and the data that is provided helps engineering teams easily remediate vulnerabilities. The platform grows with us and will allow us to have all the right tools in place when our first security engineer joins the company. Advanced security protections against business logic threats can then be implemented.

      Installation was super easy on my Node.js and Ruby apps. But Sqreen also supports Python , Java , PHP and soon Go .

      It integrates well with the tools I'm using every day Slack , PagerDuty and more.

      See more
      Marc Bollinger
      Marc Bollinger
      Infra & Data Eng Manager at Lumosity · | 4 upvotes · 54.8K views
      atLumosityLumosity
      Pulsar
      Pulsar
      Redis
      Redis
      Heron
      Heron
      Apache Storm
      Apache Storm
      Scala
      Scala
      Kafka
      Kafka
      Ruby
      Ruby
      Node.js
      Node.js

      Lumosity is home to the world's largest cognitive training database, a responsibility we take seriously. For most of the company's history, our analysis of user behavior and training data has been powered by an event stream--first a simple Node.js pub/sub app, then a heavyweight Ruby app with stronger durability. Both supported decent throughput and latency, but they lacked some major features supported by existing open-source alternatives: replaying existing messages (also lacking in most message queue-based solutions), scaling out many different readers for the same stream, the ability to leverage existing solutions for reading and writing, and possibly most importantly: the ability to hire someone externally who already had expertise.

      We ultimately migrated to Kafka in early- to mid-2016, citing both industry trends in companies we'd talked to with similar durability and throughput needs, the extremely strong documentation and community. We pored over Kyle Kingsbury's Jepsen post (https://aphyr.com/posts/293-jepsen-Kafka), as well as Jay Kreps' follow-up (http://blog.empathybox.com/post/62279088548/a-few-notes-on-kafka-and-jepsen), talked at length with Confluent folks and community members, and still wound up running parallel systems for quite a long time, but ultimately, we've been very, very happy. Understanding the internals and proper levers takes some commitment, but it's taken very little maintenance once configured. Since then, the Confluent Platform community has grown and grown; we've gone from doing most development using custom Scala consumers and producers to being 60/40 Kafka Streams/Connects.

      We originally looked into Storm / Heron , and we'd moved on from Redis pub/sub. Heron looks great, but we already had a programming model across services that was more akin to consuming a message consumers than required a topology of bolts, etc. Heron also had just come out while we were starting to migrate things, and the community momentum and direction of Kafka felt more substantial than the older Storm. If we were to start the process over again today, we might check out Pulsar , although the ecosystem is much younger.

      To find out more, read our 2017 engineering blog post about the migration!

      See more
      Yashu Mittal
      Yashu Mittal
      Founder & CEO at CodeCarrot · | 1 upvotes · 8K views
      atCodeCarrotCodeCarrot
      Markdown
      Markdown
      Ruby
      Ruby
      Jekyll
      Jekyll

      Jekyll is an open source static site generator (SSG) with a Ruby at its core which transform your plain text into static websites and blogs.

      It is simple means no more databases, comment moderation, or pesky updates to install—just your content. As said earlier SSG uses Markdown, Liquid, HTML & CSS go in and come out ready for deployment. Lastly it's blog-aware permalinks, categories, pages, posts, and custom layouts are all first-class citizens here.

      See more
      Johnny Bell
      Johnny Bell
      Senior Software Engineer at StackShare · | 13 upvotes · 226.5K views
      atStackShareStackShare
      styled-components
      styled-components
      Emotion
      Emotion
      Glamorous
      Glamorous
      Showdown
      Showdown
      Ruby
      Ruby
      GraphQL
      GraphQL
      React
      React
      Markdown
      Markdown
      #StackDecisionsLaunch
      #CssInJs
      #Frontend

      For Stack Decisions I needed to add Markdown in the decision composer to give our users access to some general styling when writing their decisions. We used React & GraphQL on the #Frontend and Ruby & GraphQL on the backend.

      Instead of using Showdown or another tool, We decided to parse the Markdown on the backend so we had more control over what we wanted to render in Markdown because we didn't want to enable all Markdown options, we also wanted to limit any malicious code or images to be embedded into the decisions and Markdown was a fairly large to import into our component so it was going to add a lot of kilobytes that we didn't need.

      We also needed to style how the markdown looked, we are currently using Glamorous so I used that but we are planning to update this to Emotion at some stage as it has a fairly easy upgrade path rather than switching over to styled-components or one of the other cssInJs alternatives.

      Also we used React-Mentions for tagging tools and topics in the decisions. Typing @ will let you tag a tool, and typing # will allow you to tag a topic.

      The Markdown options that we chose to support are tags: a, code, u, b, em, pre, ul, ol, li.

      If there are anymore tags you'd love to see added in the composer leave me a comment below and we will look into adding them.

      #StackDecisionsLaunch

      See more
      Jerome Dalbert
      Jerome Dalbert
      Senior Backend Engineer at StackShare · | 5 upvotes · 11.1K views
      atStackShareStackShare
      Rails
      Rails
      Ruby
      Ruby
      Markdown
      Markdown
      #StackDecisionsLaunch

      I needed to make stack decisions accept a subset of Markdown, similarly to sites like Reddit or Stack Overflow.

      I used the redcarpet Ruby gem for parsing, and Rails' sanitize helper made it very easy to only allow certain tags: links, bold, italics, lists, code blocks, paragraphs.

      Problem solved! #StackDecisionsLaunch

      See more
      Jonathan Pugh
      Jonathan Pugh
      Software Engineer / Project Manager / Technical Architect · | 18 upvotes · 179.4K views
      Pouchdb
      Pouchdb
      CouchDB
      CouchDB
      Font Awesome
      Font Awesome
      CSS 3
      CSS 3
      Apache Cordova
      Apache Cordova
      PhoneGap
      PhoneGap
      HTML5
      HTML5
      Ruby
      Ruby
      Babel
      Babel
      Webpack
      Webpack
      Visual Studio Code
      Visual Studio Code
      Figma
      Figma
      TypeScript
      TypeScript
      JavaScript
      JavaScript
      Framework7
      Framework7
      #Css
      #CSS3
      #SCSS
      #Sass
      #Less
      #Electron
      #HandleBars
      #Template7
      #Sketch
      #GraphQL
      #HTML5
      #GraphCool

      I needed to choose a full stack of tools for cross platform mobile application design & development. After much research and trying different tools, these are what I came up with that work for me today:

      For the client coding I chose Framework7 because of its performance, easy learning curve, and very well designed, beautiful UI widgets. I think it's perfect for solo development or small teams. I didn't like React Native. It felt heavy to me and rigid. Framework7 allows the use of #CSS3, which I think is the best technology to come out of the #WWW movement. No other tech has been able to allow designers and developers to develop such flexible, high performance, customisable user interface elements that are highly responsive and hardware accelerated before. Now #CSS3 includes variables and flexboxes it is truly a powerful language and there is no longer a need for preprocessors such as #SCSS / #Sass / #less. React Native contains a very limited interpretation of #CSS3 which I found very frustrating after using #CSS3 for some years already and knowing its powerful features. The other very nice feature of Framework7 is that you can even build for the browser if you want your app to be available for desktop web browsers. The latest release also includes the ability to build for #Electron so you can have MacOS, Windows and Linux desktop apps. This is not possible with React Native yet.

      Framework7 runs on top of Apache Cordova. Cordova and webviews have been slated as being slow in the past. Having a game developer background I found the tweeks to make it run as smooth as silk. One of those tweeks is to use WKWebView. Another important one was using srcset on images.

      I use #Template7 for the for the templating system which is a no-nonsense mobile-centric #HandleBars style extensible templating system. It's easy to write custom helpers for, is fast and has a small footprint. I'm not forced into a new paradigm or learning some new syntax. It operates with standard JavaScript, HTML5 and CSS 3. It's written by the developer of Framework7 and so dovetails with it as expected.

      I configured TypeScript to work with the latest version of Framework7. I consider TypeScript to be one of the best creations to come out of Microsoft in some time. They must have an amazing team working on it. It's very powerful and flexible. It helps you catch a lot of bugs and also provides code completion in supporting IDEs. So for my IDE I use Visual Studio Code which is a blazingly fast and silky smooth editor that integrates seamlessly with TypeScript for the ultimate type checking setup (both products are produced by Microsoft).

      I use Webpack and Babel to compile the JavaScript. TypeScript can compile to JavaScript directly but Babel offers a few more options and polyfills so you can use the latest (and even prerelease) JavaScript features today and compile to be backwards compatible with virtually any browser. My favorite recent addition is "optional chaining" which greatly simplifies and increases readability of a number of sections of my code dealing with getting and setting data in nested objects.

      I use some Ruby scripts to process images with ImageMagick and pngquant to optimise for size and even auto insert responsive image code into the HTML5. Ruby is the ultimate cross platform scripting language. Even as your scripts become large, Ruby allows you to refactor your code easily and make it Object Oriented if necessary. I find it the quickest and easiest way to maintain certain aspects of my build process.

      For the user interface design and prototyping I use Figma. Figma has an almost identical user interface to #Sketch but has the added advantage of being cross platform (MacOS and Windows). Its real-time collaboration features are outstanding and I use them a often as I work mostly on remote projects. Clients can collaborate in real-time and see changes I make as I make them. The clickable prototyping features in Figma are also very well designed and mean I can send clickable prototypes to clients to try user interface updates as they are made and get immediate feedback. I'm currently also evaluating the latest version of #AdobeXD as an alternative to Figma as it has the very cool auto-animate feature. It doesn't have real-time collaboration yet, but I heard it is proposed for 2019.

      For the UI icons I use Font Awesome Pro. They have the largest selection and best looking icons you can find on the internet with several variations in styles so you can find most of the icons you want for standard projects.

      For the backend I was using the #GraphCool Framework. As I later found out, #GraphQL still has some way to go in order to provide the full power of a mature graph query language so later in my project I ripped out #GraphCool and replaced it with CouchDB and Pouchdb. Primarily so I could provide good offline app support. CouchDB with Pouchdb is very flexible and efficient combination and overcomes some of the restrictions I found in #GraphQL and hence #GraphCool also. The most impressive and important feature of CouchDB is its replication. You can configure it in various ways for backups, fault tolerance, caching or conditional merging of databases. CouchDB and Pouchdb even supports storing, retrieving and serving binary or image data or other mime types. This removes a level of complexity usually present in database implementations where binary or image data is usually referenced through an #HTML5 link. With CouchDB and Pouchdb apps can operate offline and sync later, very efficiently, when the network connection is good.

      I use PhoneGap when testing the app. It auto-reloads your app when its code is changed and you can also install it on Android phones to preview your app instantly. iOS is a bit more tricky cause of Apple's policies so it's not available on the App Store, but you can build it and install it yourself to your device.

      So that's my latest mobile stack. What tools do you use? Have you tried these ones?

      See more
      Amazon ElastiCache
      Amazon ElastiCache
      Amazon Elasticsearch Service
      Amazon Elasticsearch Service
      AWS Elastic Load Balancing (ELB)
      AWS Elastic Load Balancing (ELB)
      Memcached
      Memcached
      Redis
      Redis
      Python
      Python
      AWS Lambda
      AWS Lambda
      Amazon RDS
      Amazon RDS
      Microsoft SQL Server
      Microsoft SQL Server
      MariaDB
      MariaDB
      Amazon RDS for PostgreSQL
      Amazon RDS for PostgreSQL
      Rails
      Rails
      Ruby
      Ruby
      Heroku
      Heroku
      AWS Elastic Beanstalk
      AWS Elastic Beanstalk

      We initially started out with Heroku as our PaaS provider due to a desire to use it by our original developer for our Ruby on Rails application/website at the time. We were finding response times slow, it was painfully slow, sometimes taking 10 seconds to start loading the main page. Moving up to the next "compute" level was going to be very expensive.

      We moved our site over to AWS Elastic Beanstalk , not only did response times on the site practically become instant, our cloud bill for the application was cut in half.

      In database world we are currently using Amazon RDS for PostgreSQL also, we have both MariaDB and Microsoft SQL Server both hosted on Amazon RDS. The plan is to migrate to AWS Aurora Serverless for all 3 of those database systems.

      Additional services we use for our public applications: AWS Lambda, Python, Redis, Memcached, AWS Elastic Load Balancing (ELB), Amazon Elasticsearch Service, Amazon ElastiCache

      See more
      Hampton Catlin
      Hampton Catlin
      VP of Engineering at Rent The Runway · | 6 upvotes · 8.1K views
      atRent the RunwayRent the Runway
      Java
      Java
      Python
      Python
      Ruby
      Ruby

      At our company, and I've noticed a lot of other ones... application developers and dev-ops people tend to use Ruby and our statisticians and data scientists love Python . Like most companies, our stack is kind of split that way. Ruby is used as glue in most of our production systems ( Java being the main backend language), and then all of our data scientists and their various pipelines tend towards Python

      See more
      Interest over time
      Reviews of Om and Ruby
      Avatar of kfretwell33
      Founder at Pouch
      Review ofRubyRuby

      I taught myself Ruby about a year ago. I had experience with HTML/CSS, MySQL, and a little bit of javascript and python but would consider this my first true programming language I became proficient in (later picked up Swift).

      I started with a CodeAcademy course before working on my first Rails project. The language is easy to read and Rails is an amazing framework. The online community is fantastic, the documentation is amazing, and there is no shortage of Ruby Gems which allows you to quickly "cobble" together a new project.

      How developers use Om and Ruby
      Avatar of StackShare
      StackShare uses RubyRuby

      Only thing worth noting here is that we saw some major issues with memory swapping on Heroku with Ruby 2.1.2. We weren’t the only ones. So we actually reverted back to 2.0.0. Here’s what happened: reverting. We’re planning to upgrade to 2.1.4 once we’ve had time to test thoroughly.

      Avatar of benyomin
      benyomin uses RubyRuby

      When we are comparing Turing complete languages it's not about what compiles faster or to the cleanest machine code, it's about what the developer can think in and write faster, including the availability of libraries. A couple of times I wrote some ruby scripts for this project. I just like the language best for some things. Love the syntax.

      Avatar of SaberEsPoder
      SaberEsPoder uses RubyRuby

      We are primarily a Ruby shop; our main apps are running on Ruby + Rails, our Slack bot is written in Ruby and our smaller projects are on Sinatra. It makes it really easy for us to re-use code and switch between different projects since they are all on the same language.

      Avatar of Tim Lucas
      Tim Lucas uses RubyRuby

      Because happiness. Testing via RSpec (mostly model and request specs), Factory Girl for fixtures, VCR for testing API responses, timecop, Redcarpet for Markdown rendering, Intercom gem for posting events.

      Avatar of Karma
      Karma uses RubyRuby

      Most of our services are written in Ruby. We started out as a Ruby shop, but we're slowly also moving some stuff to Go. We're using Go more and more these days, actually, including some backend services.

      How much does Om cost?
      How much does Ruby cost?
      Pricing unavailable
      Pricing unavailable
      News about Om
      More news