Get Advice Icon

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

JRuby
JRuby

61
60
+ 1
30
Python
Python

29.5K
22.7K
+ 1
5.9K
Add tool

JRuby vs Python: What are the differences?

Developers describe JRuby as "A high performance, stable, fully threaded Java implementation of the Ruby programming language". JRuby is the effort to recreate the Ruby (http://www.ruby-lang.org) interpreter in Java. The Java version is tightly integrated with Java to allow both to script any Java class and to embed the interpreter into any Java application. See the docs directory for more information. On the other hand, Python is detailed as "A clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java". 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.

JRuby and Python can be categorized as "Languages" tools.

"Java" is the top reason why over 7 developers like JRuby, while over 1022 developers mention "Great libraries" as the leading cause for choosing Python.

JRuby and Python are both open source tools. It seems that Python with 25.3K GitHub stars and 10.5K forks on GitHub has more adoption than JRuby with 3.32K GitHub stars and 830 GitHub forks.

According to the StackShare community, Python has a broader approval, being mentioned in 2826 company stacks & 3632 developers stacks; compared to JRuby, which is listed in 13 company stacks and 4 developer stacks.

What is JRuby?

JRuby is the effort to recreate the Ruby (http://www.ruby-lang.org) interpreter in Java. The Java version is tightly integrated with Java to allow both to script any Java class and to embed the interpreter into any Java application. See the docs directory for more information.

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

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

Why do developers choose JRuby?
Why do developers choose Python?

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 JRuby?
    What companies use Python?

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

    What tools integrate with JRuby?
    What tools integrate with Python?

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

    What are some alternatives to JRuby and Python?
    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.
    Groovy
    Groovy builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk. It makes modern programming features available to Java developers with almost-zero learning curve.
    Rails
    Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.
    Go
    Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
    PHP
    Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
    See all alternatives
    Decisions about JRuby and Python
    Conor Myhrvold
    Conor Myhrvold
    Tech Brand Mgr, Office of CTO at Uber · | 16 upvotes · 732.5K views
    atUber TechnologiesUber Technologies
    Apache Spark
    Apache Spark
    C#
    C#
    OpenShift
    OpenShift
    JavaScript
    JavaScript
    Kubernetes
    Kubernetes
    C++
    C++
    Go
    Go
    Node.js
    Node.js
    Java
    Java
    Python
    Python
    Jaeger
    Jaeger

    How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

    Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

    Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

    https://eng.uber.com/distributed-tracing/

    (GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

    Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

    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
    StackShare Editors
    StackShare Editors
    Kubernetes
    Kubernetes
    Go
    Go
    Python
    Python

    Following its migration from vanilla instances with autoscaling groups to Kubernetes, Postmates began facing challenges while “migrating workloads that needed to scale up very quickly.”

    The built-in Horizontal Pod Autoscaler (HPA) automatically scales the number of pods in a replication controller, deployment or replica set based on observed CPU utilization. But the challenges for Postmates is that there’s no way to configure the scale velocity of one particular cluster with an HPA.

    For Postmates, which runs at least three different types of applications with distinct performance and scaling characteristics, this proved problematic.

    To overcome these challenges, the team created and open sourced the Configurable Horizontal Pod Autoscaler, which allows for fine-grained tuning on a per-HPA object basis. The result is that “you can configure critical services to scale down very slowly, while every other service could be configured to scale down instantly to reduce costs.”

    See more
    Hampton Catlin
    Hampton Catlin
    VP of Engineering at Rent The Runway · | 6 upvotes · 8.3K 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
    Ajit Parthan
    Ajit Parthan
    CTO at Shaw Academy · | 3 upvotes · 5.2K views
    atShaw AcademyShaw Academy
    Python
    Python
    PHP
    PHP
    #Etl

    Multiple systems means there is a requirement to cart data across them.

    Started off with Talend scripts. This was great as what we initially had were PHP/Python script - allowed for a more systematic approach to ETL.

    But ended up with a massive repository of scripts, complex crontab entries and regular failures due to memory issues.

    Using Stitch or similar services is a better approach: - no need to worry about the infrastructure needed for the ETL processes - a more formal mapping of data from source to destination as opposed to script developer doing his/her voodoo magic - lot of common sources and destination integrations are already builtin and out of the box

    etl @{etlasaservice}|topic:1323|

    See more
    SVN (Subversion)
    SVN (Subversion)
    Git
    Git
    JSON
    JSON
    XML
    XML
    Python
    Python
    PHP
    PHP
    Java
    Java
    Swift
    Swift
    JavaScript
    JavaScript
    Linux
    Linux
    GitHub
    GitHub
    Visual Studio Code
    Visual Studio Code

    I use Visual Studio Code because at this time is a mature software and I can do practically everything using it.

    • It's free and open source: The project is hosted on GitHub and it’s free to download, fork, modify and contribute to the project.

    • Multi-platform: You can download binaries for different platforms, included Windows (x64), MacOS and Linux (.rpm and .deb packages)

    • LightWeight: It runs smoothly in different devices. It has an average memory and CPU usage. Starts almost immediately and it’s very stable.

    • Extended language support: Supports by default the majority of the most used languages and syntax like JavaScript, HTML, C#, Swift, Java, PHP, Python and others. Also, VS Code supports different file types associated to projects like .ini, .properties, XML and JSON files.

    • Integrated tools: Includes an integrated terminal, debugger, problem list and console output inspector. The project navigator sidebar is simple and powerful: you can manage your files and folders with ease. The command palette helps you find commands by text. The search widget has a powerful auto-complete feature to search and find your files.

    • Extensible and configurable: There are many extensions available for every language supported, including syntax highlighters, IntelliSense and code completion, and debuggers. There are also extension to manage application configuration and architecture like Docker and Jenkins.

    • Integrated with Git: You can visually manage your project repositories, pull, commit and push your changes, and easy conflict resolution.( there is support for SVN (Subversion) users by plugin)

    See more
    Ajit Parthan
    Ajit Parthan
    CTO at Shaw Academy · | 1 upvotes · 4K views
    atShaw AcademyShaw Academy
    Python
    Python
    PHP
    PHP

    Multiple systems means there is a requirement to cart data across them.

    Started off with Talend scripts. This was great as what we initially had were PHP/Python script - allowed for a more systematic approach to ETL.

    But ended up with a massive repository of scripts, complex crontab entries and regular failures due to memory issues.

    Using Stitch or similar services is a better approach: - no need to worry about the infrastructure needed for the ETL processes - a more formal mapping of data from source to destination as opposed to script developer doing his/her voodoo magic - lot of common sources and destination integrations are already builtin and out of the box

    See more
    Eric Colson
    Eric Colson
    Chief Algorithms Officer at Stitch Fix · | 19 upvotes · 290.7K views
    atStitch FixStitch Fix
    Amazon EC2 Container Service
    Amazon EC2 Container Service
    Docker
    Docker
    PyTorch
    PyTorch
    R
    R
    Python
    Python
    Presto
    Presto
    Apache Spark
    Apache Spark
    Amazon S3
    Amazon S3
    PostgreSQL
    PostgreSQL
    Kafka
    Kafka
    #AWS
    #Etl
    #ML
    #DataScience
    #DataStack
    #Data

    The algorithms and data infrastructure at Stitch Fix is housed in #AWS. Data acquisition is split between events flowing through Kafka, and periodic snapshots of PostgreSQL DBs. We store data in an Amazon S3 based data warehouse. Apache Spark on Yarn is our tool of choice for data movement and #ETL. Because our storage layer (s3) is decoupled from our processing layer, we are able to scale our compute environment very elastically. We have several semi-permanent, autoscaling Yarn clusters running to serve our data processing needs. While the bulk of our compute infrastructure is dedicated to algorithmic processing, we also implemented Presto for adhoc queries and dashboards.

    Beyond data movement and ETL, most #ML centric jobs (e.g. model training and execution) run in a similarly elastic environment as containers running Python and R code on Amazon EC2 Container Service clusters. The execution of batch jobs on top of ECS is managed by Flotilla, a service we built in house and open sourced (see https://github.com/stitchfix/flotilla-os).

    At Stitch Fix, algorithmic integrations are pervasive across the business. We have dozens of data products actively integrated systems. That requires serving layer that is robust, agile, flexible, and allows for self-service. Models produced on Flotilla are packaged for deployment in production using Khan, another framework we've developed internally. Khan provides our data scientists the ability to quickly productionize those models they've developed with open source frameworks in Python 3 (e.g. PyTorch, sklearn), by automatically packaging them as Docker containers and deploying to Amazon ECS. This provides our data scientist a one-click method of getting from their algorithms to production. We then integrate those deployments into a service mesh, which allows us to A/B test various implementations in our product.

    For more info:

    #DataScience #DataStack #Data

    See more
    Python
    Python
    Django
    Django
    JavaScript
    JavaScript
    Node.js
    Node.js

    Django or NodeJS? Hi, I’m thinking about which software I should use for my web-app. What about Node.js or Django for the back-end? I want to create an online preparation course for the final school exams in my country. At the beginning for maths. The course should contain tutorials and a lot of exercises of different types. E.g. multiple choice, user text/number input and drawing tasks. The exercises should change (different levels) with the learning progress. Wrong questions should asked again with different numbers. I also want a score system and statistics. So far, I have got only limited web development skills. (some HTML, CSS, Bootstrap and Wordpress). I don’t know JavaScript or Python.

    Possible pros for Python / Django: - easy syntax, easier to learn for me as a beginner - fast development, earlier release - libraries for mathematical and scientific computation

    Possible pros for JavaScript / Node.js: - great performance, better choice for real time applications: user should get the answer for a question quickly

    Which software would you use in my case? Are my arguments for Python/NodeJS right? Which kind of database would you use?

    Thank you for your answer!

    Node.js JavaScript Django Python

    See more
    Git
    Git
    Docker
    Docker
    NATS
    NATS
    JavaScript
    JavaScript
    TypeScript
    TypeScript
    PostgreSQL
    PostgreSQL
    Python
    Python
    Go
    Go

    Go is a high performance language with simple syntax / semantics. Although it is not as expressive as some other languages, it's still a great language for backend development.

    Python is expressive and battery-included, and pre-installed in most linux distros, making it a great language for scripting.

    PostgreSQL: Rock-solid RDBMS with NoSQL support.

    TypeScript saves you from all nonsense semantics of JavaScript , LOL.

    NATS: fast message queue and easy to deploy / maintain.

    Docker makes deployment painless.

    Git essential tool for collaboration and source management.

    See more
    Omar Melendrez
    Omar Melendrez
    Front-end developer · | 3 upvotes · 4.2K views
    Python
    Python
    C#
    C#
    Node.js
    Node.js
    React
    React
    Vue.js
    Vue.js
    #Fullstack
    #Vscode

    I'm #Fullstack here and work with Vue.js, React and Node.js in some projects but also C# for other clients. Also started learning Python. And all this with just one tool!: #Vscode I have used Atom and Sublime Text in the past and they are very good too, but for me now is just vscode. I think the combination of vscode with the free available extensions that the community is creating makes a powerful tool and that's why vscode became the most popular IDE for software development. You can match it to your own needs in a couple of minutes. Did I mention you can style it your way? Amazing tool!

    See more
    Tom Klein
    Tom Klein
    CEO at Gentlent · | 4 upvotes · 30.4K views
    atGentlentGentlent
    Python
    Python
    Electron
    Electron
    Socket.IO
    Socket.IO
    Google Compute Engine
    Google Compute Engine
    TypeScript
    TypeScript
    ES6
    ES6
    Ubuntu
    Ubuntu
    PostgreSQL
    PostgreSQL
    React
    React
    nginx
    nginx
    Sass
    Sass
    HTML5
    HTML5
    PHP
    PHP
    Node.js
    Node.js
    JavaScript
    JavaScript

    Our most used programming languages are JavaScript / Node.js for it's lightweight and fast use, PHP because everyone knows it, HTML5 because you can't live without it and Sass to write great CSS. Occasionally, we use nginx as a web server and proxy, React for our UX, PostgreSQL as fast relational database, Ubuntu as server OS, ES6 and TypeScript for Node, Google Compute Engine for our infrastructure, and Socket.IO and Electron for specific use cases. We also use Python for some of our backends.

    See more
    Praveen Mooli
    Praveen Mooli
    Technical Leader at Taylor and Francis · | 11 upvotes · 175K views
    MongoDB Atlas
    MongoDB Atlas
    Amazon S3
    Amazon S3
    Amazon DynamoDB
    Amazon DynamoDB
    Amazon RDS
    Amazon RDS
    Serverless
    Serverless
    Docker
    Docker
    Terraform
    Terraform
    Travis CI
    Travis CI
    GitHub
    GitHub
    RxJS
    RxJS
    Angular 2
    Angular 2
    AWS Lambda
    AWS Lambda
    Amazon SQS
    Amazon SQS
    Amazon SNS
    Amazon SNS
    Amazon Kinesis Firehose
    Amazon Kinesis Firehose
    Amazon Kinesis
    Amazon Kinesis
    Flask
    Flask
    Python
    Python
    ExpressJS
    ExpressJS
    Node.js
    Node.js
    Spring Boot
    Spring Boot
    Java
    Java
    #Backend
    #Microservices
    #Eventsourcingframework
    #Webapps
    #Devops
    #Data

    We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

    To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

    To build #Webapps we decided to use Angular 2 with RxJS

    #Devops - GitHub , Travis CI , Terraform , Docker , Serverless

    See more
    PubNub
    PubNub
    asyncio
    asyncio
    JavaScript
    JavaScript
    Python
    Python

    I love Python and JavaScript . You can do the same JavaScript async operations in Python by using asyncio. This is particularly useful when you need to do socket programming in Python. With streaming sockets, data can be sent or received at any time. In case your Python program is in the middle of executing some code, other threads can handle the new socket data. Libraries like asyncio implement multiple threads, so your Python program can work in an asynchronous fashion. PubNub makes bi-directional data streaming between devices even easier.

    See more
    Helio Junior
    Helio Junior
    CSS 3
    CSS 3
    JavaScript
    JavaScript
    Python
    Python
    #DataScience
    #UXdesign
    #NodeJS
    #Electron

    Python is a excellent tool for #DataScience , but up to now is very poor in #uxdesign . To do some design I'm using JavaScript and #nodejs , #electron stack. The possibility of use CSS 3 to draw interfaces is very awesome and fast. Unfortunatelly Python don't have (yet) a good way to make a #UXdesign .

    See more
    Interest over time
    Reviews of JRuby and Python
    No reviews found
    How developers use JRuby and Python
    Avatar of Exchange rates API
    Exchange rates API uses PythonPython

    Beautiful is better than ugly.

    Explicit is better than implicit.

    Simple is better than complex.

    Complex is better than complicated.

    Flat is better than nested.

    Sparse is better than dense.

    Readability counts.

    Special cases aren't special enough to break the rules.

    Although practicality beats purity.

    Errors should never pass silently.

    Unless explicitly silenced.

    In the face of ambiguity, refuse the temptation to guess.

    There should be one-- and preferably only one --obvious way to do it.

    Although that way may not be obvious at first unless you're Dutch.

    Now is better than never.

    Although never is often better than right now.

    If the implementation is hard to explain, it's a bad idea.

    If the implementation is easy to explain, it may be a good idea.

    Namespaces are one honking great idea -- let's do more of those!

    Avatar of Web Dreams
    Web Dreams uses PythonPython

    To me, this is by far the best programming language. Why? Because it’s the only language that really got me going after trying to get into programming with Java for a while. Python is powerful, easy to learn, and gets you to unsderstand other languages more once you understand it. Did I state I love the python language? Well, I do..

    Avatar of ttandon
    ttandon uses PythonPython

    Backend server for analysis of image samples from iPhone microscope lens. Chose this because of familiarity. The number one thing that I've learned at hackathons is that work exclusively with what you're 100% comfortable with. I use Python extensively at my day job at Wit.ai, so it was the obvious choice for the bulk of my coding.

    Avatar of papaver
    papaver uses PythonPython

    been a pythoner for around 7 years, maybe longer. quite adept at it, and love using the higher constructs like decorators. was my goto scripting language until i fell in love with clojure. python's also the goto for most vfx studios and great for the machine learning. numpy and pyqt for the win.

    Avatar of Blood Bot
    Blood Bot uses PythonPython

    Large swaths of resources built for python to achieve natural language processing. (We are in the process of deprecating the services written in python and porting them over to Javascript and node)

    How much does JRuby cost?
    How much does Python cost?
    Pricing unavailable
    Pricing unavailable
    News about JRuby
    More news