Perl vs Python vs Ruby

Get Advice Icon

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

Perl
Perl

1.4K
577
+ 1
472
Python
Python

50.6K
43.6K
+ 1
6K
Ruby
Ruby

15.5K
9.8K
+ 1
3.9K

What is Perl?

Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more.

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.

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 Perl?
Why do developers choose Python?
Why do developers choose Ruby?

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

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

What companies use Perl?
What companies use Python?
What companies use Ruby?

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

What tools integrate with Perl?
What tools integrate with Python?
What tools integrate with Ruby?

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

What are some alternatives to Perl, Python, and Ruby?
PHP
Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
C
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!
PowerShell
A command-line shell and scripting language built on .NET. Helps system administrators and power-users rapidly automate tasks that manage operating systems (Linux, macOS, and Windows) and processes.
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.
See all alternatives
Decisions about Perl, Python, and Ruby
StackShare Editors
StackShare Editors
Rails
Rails
Node.js
Node.js
Python
Python
React
React
Java
Java
Ruby
Ruby
Go
Go
Swift
Swift
Objective-C
Objective-C
jQuery
jQuery

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
Sqreen
Sqreen
Node.js
Node.js
Ruby
Ruby
Python
Python
Java
Java
PHP
PHP
Go
Go
Slack
Slack
PagerDuty
PagerDuty

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
AWS Elastic Beanstalk
AWS Elastic Beanstalk
Heroku
Heroku
Ruby
Ruby
Rails
Rails
Amazon RDS for PostgreSQL
Amazon RDS for PostgreSQL
MariaDB
MariaDB
Microsoft SQL Server
Microsoft SQL Server
Amazon RDS
Amazon RDS
AWS Lambda
AWS Lambda
Python
Python
Redis
Redis
Memcached
Memcached
AWS Elastic Load Balancing (ELB)
AWS Elastic Load Balancing (ELB)
Amazon Elasticsearch Service
Amazon Elasticsearch Service
Amazon ElastiCache
Amazon ElastiCache

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 · | 9 upvotes · 110K views
atRent the RunwayRent the Runway
Ruby
Ruby
Python
Python
Java
Java

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
Omar Melendrez
Omar Melendrez
Front-end developer · | 4 upvotes · 4.4K views
Vue.js
Vue.js
React
React
Node.js
Node.js
C#
C#
Python
Python
#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 · 46.7K views
atGentlentGentlent
JavaScript
JavaScript
Node.js
Node.js
PHP
PHP
HTML5
HTML5
Sass
Sass
nginx
nginx
React
React
PostgreSQL
PostgreSQL
Ubuntu
Ubuntu
ES6
ES6
TypeScript
TypeScript
Google Compute Engine
Google Compute Engine
Socket.IO
Socket.IO
Electron
Electron
Python
Python

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
Engineering Manager at Taylor and Francis · | 12 upvotes · 777.9K views
MongoDB Atlas
MongoDB Atlas
Java
Java
Spring Boot
Spring Boot
Node.js
Node.js
ExpressJS
ExpressJS
Python
Python
Flask
Flask
Amazon Kinesis
Amazon Kinesis
Amazon Kinesis Firehose
Amazon Kinesis Firehose
Amazon SNS
Amazon SNS
Amazon SQS
Amazon SQS
AWS Lambda
AWS Lambda
Angular 2
Angular 2
RxJS
RxJS
GitHub
GitHub
Travis CI
Travis CI
Terraform
Terraform
Docker
Docker
Serverless
Serverless
Amazon RDS
Amazon RDS
Amazon DynamoDB
Amazon DynamoDB
Amazon S3
Amazon S3
#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
Adam Bavosa
Adam Bavosa
Python
Python
JavaScript
JavaScript
asyncio
asyncio
PubNub
PubNub

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
Python
Python
JavaScript
JavaScript
CSS 3
CSS 3
#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
Kamil Kowalski
Kamil Kowalski
Engineering Manager at Fresha · | 26 upvotes · 206.1K views
atFresha EngineeringFresha Engineering
Selenium
Selenium
Java
Java
Ruby
Ruby
Elixir
Elixir
JavaScript
JavaScript
Cypress
Cypress

When you think about test automation, it’s crucial to make it everyone’s responsibility (not just QA Engineers'). We started with Selenium and Java, but with our platform revolving around Ruby, Elixir and JavaScript, QA Engineers were left alone to automate tests. Cypress was the answer, as we could switch to JS and simply involve more people from day one. There's a downside too, as it meant testing on Chrome only, but that was "good enough" for us + if really needed we can always cover some specific cases in a different way.

See more
Bryam Rodriguez
Bryam Rodriguez
Ruby
Ruby
Rails
Rails
React
React
Redux
Redux
Create React App
Create React App
Jest
Jest
react-testing-library
react-testing-library
RSpec
RSpec
PostgreSQL
PostgreSQL
MongoDB
MongoDB
Redis
Redis
React Native
React Native
Next.js
Next.js
Python
Python
Bit
Bit
JavaScript
JavaScript

I'm working as one of the engineering leads in RunaHR. As our platform is a Saas, we thought It'd be good to have an API (We chose Ruby and Rails for this) and a SPA (built with React and Redux ) connected. We started the SPA with Create React App since It's pretty easy to start.

We use Jest as the testing framework and react-testing-library to test React components. In Rails we make tests using RSpec.

Our main database is PostgreSQL, but we also use MongoDB to store some type of data. We started to use Redis  for cache and other time sensitive operations.

We have a couple of extra projects: One is an Employee app built with React Native and the other is an internal back office dashboard built with Next.js for the client and Python in the backend side.

Since we have different frontend apps we have found useful to have Bit to document visual components and utils in JavaScript.

See more
Node.js
Node.js
Java
Java
Spring Boot
Spring Boot
Python
Python
Flask
Flask
Django
Django

Since you said that your middleware will be accessing DB and expose API, you can go with Node.js. It will make your development fast and easy. Suppose in future you will add some business logic you can choose Java with Spring Boot or Python with Flask / Django. NOTE: Language or framework doesn't matter. Choose based on your programming knowledge.

See more
Jakub Olan
Jakub Olan
DevOps Engineer · | 17 upvotes · 26K views
ataraclxaraclx
Java
Java
Python
Python
C++
C++
Node.js
Node.js
Rust
Rust
Kotlin
Kotlin
Go
Go

In our company we have think a lot about languages that we're willing to use, there we have considering Java, Python and C++ . All of there languages are old and well developed at fact but that's not ideology of araclx. We've choose a edge technologies such as Node.js , Rust , Kotlin and Go as our programming languages which is some kind of fun. Node.js is one of biggest trends of 2019, same for Go. We want to grow in our company with growth of languages we have choose, and probably when we would choose Java that would be almost impossible because larger languages move on today's market slower, and cannot have big changes.

See more
Shivam Bhargava
Shivam Bhargava
AVP - Business at VAYUZ Technologies Pvt. Ltd. · | 11 upvotes · 10K views
Swift
Swift
Kotlin
Kotlin
React
React
Python
Python
Rails
Rails
Java
Java
Node.js
Node.js
#Neobank

Hi Community! Trust everyone is keeping safe. I am exploring the idea of building a #Neobank (App) with end-to-end banking capabilities. In the process of exploring this space, I have come across multiple Apps (N26, Revolut, Monese, etc) and explored their stacks in detail. The confusion remains to be the Backend Tech to be used?

What would you go with considering all of the languages such as Node.js Java Rails Python are suggested by some person or the other. As a general trend, I have noticed the usage of Node with React on the front or Node with a combination of Kotlin and Swift. Please suggest what would be the right approach!

See more
Saurav Pandit
Saurav Pandit
Application Devloper at Bny Mellon · | 7 upvotes · 7K views
JSON Web Token
JSON Web Token
OpenAPI
OpenAPI
Java
Java
AngularJS
AngularJS
Oracle
Oracle
Python
Python

I have just started learning Python 3 week back. I want to create REST api using python. The api will be use to save form data in Oracle database. The front end is using AngularJS 8 with Angular Material. In python there are so many framework for developing REST ** I am looking for some suggestions which REST framework to choose? ** Here are some feature I am looking for * Easy integration and unit testing like in Angular we just run command. * Code packageing, like in Java maven project we can build and package. I am looking for something which I can push in artifactory and deploy whole code as package. *Support for swagger/ OpenAPI * Support for JSON Web Token * Support for testcase coverage report Framework can have feature included or can be available by extension.

See more
Interest over time
Reviews of Perl, Python, 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 Perl, Python, and Ruby
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 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 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 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.

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)

Avatar of Perljobs.Ru
Perljobs.Ru uses PerlPerl

The whole backend part (deployment and other scripts, business logic, web interface) is written in Perl.

Весь бэкенд (скрипты деплоя и прочие, бизнес-логика, веб-интерфейс) написан на Perl.

Avatar of John Galbraith
John Galbraith uses PerlPerl

I use Perl to rip through log files and compare them to some signature files I have created. When I get a match, it adds the bad guy to the list of shame in MySQL.

Avatar of Alexander Karelas
Alexander Karelas uses PerlPerl

A very expressive language, lets you say the same thing in many different ways

Avatar of rapt.fm
rapt.fm uses PerlPerl

We use perl with rex to control our distributed systems.

Avatar of ssshake
ssshake uses PerlPerl

I use perl on some legacy applications.

How much does Perl cost?
How much does Python cost?
How much does Ruby cost?
Pricing unavailable
Pricing unavailable
Pricing unavailable