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

Django

29.6K
26.5K
+ 1
3.9K
Rails

16.7K
11.5K
+ 1
5.4K
Add tool

Django vs Rails: What are the differences?

Developers describe Django as "The Web framework for perfectionists with deadlines". Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. On the other hand, Rails is detailed as "Web development that doesn't hurt". Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.

Django and Rails can be primarily classified as "Frameworks (Full Stack)" tools.

"Rapid development", "Open source" and "Great community" are the key factors why developers consider Django; whereas "Rapid development", "Great gems" and "Great community" are the primary reasons why Rails is favored.

Django and Rails are both open source tools. It seems that Rails with 43.4K GitHub stars and 17.5K forks on GitHub has more adoption than Django with 42.3K GitHub stars and 18.2K GitHub forks.

Instacart, StackShare, and Shopify are some of the popular companies that use Rails, whereas Django is used by MIT, Sentry, and Zapier. Rails has a broader approval, being mentioned in 2320 company stacks & 779 developers stacks; compared to Django, which is listed in 979 company stacks and 882 developer stacks.

Advice on Django and Rails
Needs advice
on
SpringSpringLaravelLaravel
and
DjangoDjango

Hi all. I want to rewrite my system. I was a complete newbie 4 years ago and have developed a comprehensive business / finance web application that has been running successfully for 3 years (I am a business person and not a developer primarily although it seems I have become a developer). Front-end is written in native PHP (no framework) and jQuery with backend and where many processes run in MySQL. Hosted on Linux and also sends emails with attachments etc. The system logic is great and the business has grown and the system is creaking and needs to be modernised. I feel I would stick with MySql as DB and update / use Django / Spring or Laravel (because its php which I understand). To me, PHP feels old fashioned. I don't mind learning new things and also I want to set the system up that it can be easily migrated to Android/iOS app with SQLite. I would probably employ an experienced developer while also doing some myself. Please provide advice -- from my research it seems Spring/Java is the way to go ... not sure. Thanks

See more
Replies (4)
Recommends
Vue.jsVue.jsLaravelLaravel

PhP might be old fashionned but Laravel is really great. I've tried nodeJs backend with express, python with flask and a little bit of serverless, and quite frankly, laravel was by far the best in my opinion. It has a lot of official packages that speeds up development (from authentification to serverless deployement), it also uses Eloquent ORM that support Mysql databases. Finally it works great with VueJs for the front end development.

See more
Harry Jin

I recommend ExpressJS or NestJS as BackEnd and React as Front-End and PostgreSQL as the database. The reason is as follows. First of all, since it is a financial system, various services will exist, and each service must be well connected and combined with each other. The organic combination of small services that work very well is the foundation of a great system. For this, it is best to use Node.js based, and I think ExpressJS or NestJS is the best choice. We recommend choosing React or Vue as the FrontEnd. PostgreSQL is currently the best performing database. These three combinations have many examples, and their superiority has been confirmed by my implementation in many projects already. If you are interested in my advice and have any questions, please feel free to contact me.

See more
Jayson Pamittan
Full Stack Developer at Synchronosure · | 4 upvotes · 16K views
Recommends
LaravelLaravel

On my end for me it's better to choose Laravel. It has very good documentation and easy to code. The framework supports MVC and you can create either monolithic or API only. The community is also big. If you combined a Domain Driven Development (DDD) and Test Driven Development (TDD) on Laravel then it will be a superb.

See more

Since you are using PHP more natural is Python - it can handle high traffic - Python is very effective in coding. Python is superset of Java and C++ - True Object Oriented and have very clear syntax (Spring is hard to learn and debug - you can be confused many times). It is human readable you can code 2-4 times faster with small speed sacrifice. Jinja2 is more faster/flexible Django - whatever Django is better with ORM. Flask is just proposal - many other options of web servers.

See more
Amir Beheshtaein
Needs advice
on
RailsRailsNext.jsNext.js
and
JavaScriptJavaScript
in

I've inherited a monolithic Rails app for an MVP product. We're planning to slowly migrate away from RoR to build the remaining parts of the app. App requirements: - Video streaming w/ audio - Real time chat - User authentication & roles - Payment system Performance, scalability, and attracting dev talent(s) are important to our team.

I'm considering the microservices approach, SSR + CSR & caching with Next.js (prefer Svelte-kit but it's in beta). I also prefer to keep this a full JS household. What other JavaScript frameworks/libs would you recommend? Keep in mind the existing RoR will not be deprecated. We'll be consuming the APIs and slowly moving away from them until they can safely be deprecated.

See more
Replies (2)
Paul Keen
Recommends
StimulusStimulusRailsRails

Moving from Rails will reduce development velocity (if you want to have easy support and update the app) and will require more skilled (expensive) developers to support it.

Without previous experience (5+ years) do not suggest moving to node.js. That code will easily become hard to learn and support.

You always can implement microservices with Ruby, but this approach should be considered only after Series-A and when you will have more than 5 developers and dedicated SRE/DevOps.

See more
Ray Arayilakath
Full-stack Developer && Software Engineer at Self-employed · | 4 upvotes · 970 views

I see it's been some time since this was posted, but I'm glad you are migrating to Next.js 🎉!

Me personally, I would run an Express.js backend so that frontend and backend logics don't feel blurred, especially if you want to attract more developers to your project. Keeping frontend separated from the backend makes for a healthier workspace ecosystem and often confuses people less. Furthermore, implementation is a lot easier and later on as you move from RoR to an Express.js server there won't be too much confusion as to how certain parts mesh together.

Based on the features you're looking at I would consider using websockets (WSS or Socket.IO) for the chat application or rolling that with features from WebRTC, which you would need to support video streaming anyways. For authentication you could look at Auth0 which has some very nice libs for authentication or you could rig up your own stitching individual OAuths (Google, Facebook, etc.) along with a simple User/Pass signup that you manage in your database. For payment I would consider using Stripe, it's very popular in the JS ecosystem right now, has lots of documentation and features, and is also pretty cost-effective.

I know it's been some time since you have posted this and you have already made some decisions, but if you (or anyone else reading this) has any question feel free to let me know :)

See more
Aleyna ARSLAN
Entrepreneur at Oblong Digital Marketing & Ads · | 5 upvotes · 24.1K views
Needs advice
on
.NET.NET
and
DjangoDjango
in

Hi everyone, I have a new venture project, we do frontend development mainly with Tailwind CSS, JavaScript, CSS, HTML, and React. This project will run on a cloud platform and it will be a web platform with data analysis. At Backend, we can't decide which technology to continue with. We will necessarily use Python for data analysis and algorithms, but should the backend be written with Django or C# .NET, can I get your suggestions within the cloud platform? Price performance is our priority.

See more
Replies (2)
Miles Fawcett
Recommends
DjangoDjango

If you are already committed to Python for the data analysis then it would make sense to use Django for the framework and stick with Python throughout. In general the fewer technologies you use (unless there is real justification) will improve process and long term costs.

All things being equal the fact you would not have less (likely no) licensing costs with a Python based solution will overall reduce your long term costs.

See more
Recommends
DjangoDjango

If you will be doing data analysis and complex algorithms Django is best suited for this because of it' maturity and the huge communities providing lots of Python libraries for data analysis and more.

See more
Needs advice
on
SpringSpringRailsRails
and
DjangoDjango
in

Hi everyone! I'm starting a personal project that I've been postponing for a little while and I'm starting with the backend first.

  • It's an app that needs to query open APIs (It could go up to a hundred APIs) and do filtering and other manipulations onto the data and then store it in my own database. So basically, the end result medium/long term is a lot of data!

  • Besides filtering/storing data from other APIs, the API will interact with my client application. I should note that the client app attempts to give real-time information.

Question: I would want to launch the API within 6 months as I'm also planning to make it available for other devs through platforms like RapidAPI. With all being said, my question is twofold:

  1. Which backend framework would allow me to do these operations with the best response time possible?

  2. Which framework would be the easiest to deal with deployment on AWS?

Background:

I have a background in Spring since I'm using it at work, I have none in Rails and Django but I don't mind trying something new as long as the learning curve isn't crazy. I know python but not Ruby. Beginner on AWS and choose that one after some research.

Thank you very much, sorry it was a bit long. Cheers

See more
Replies (1)
Jorge Velasco
Full Stack Developer at Fintual · | 8 upvotes · 29.8K views

The most relevant part is the central architecture more than the specific backend. For me, it makes sense to go for an event-driven solution. In this case, an event is emitted on every new data, and one or more listeners react to it. In AWS, you can easily get this by storing your data in DynamoDB, which is pretty fast, and have as many lambdas working on the received data (here you can find more details). This way, you keep your worker(s) busy fetching data while others consolidate it. I wouldn't get too crazy on the lambdas, and I'd start with one as there will be only one client by your description. My only concern is how similar the APIs you're consuming are. Depending on that, it may be easier to have different lambdas by target API. My only note on the backend language is that if you want low latency, I'd discard Python and Ruby and choose Go (I know that is not in the list, but given that you're open to learning a new language, you could give it a try). It is easy to learn, has excellent performance, and is the only Lamdba runtime with an X (1.X) in the supported language, making it a great choice.

See more
Needs advice
on
DjangoDjango
and
ASP.NET CoreASP.NET Core

Hi, I am a professional accountant, not a computer programmer but I know programming concept and love it, in past have learned VB.Net in the year 2008. I want to use my accounting experience in programming by developing Web-Based ERP/Accounting Software integrated with to eCommerce platform. I want to develop ERP and eCommerce for a particular industry which can be used by 100+ companies. I am not very sure which programming language and framework I should use for the project. I found that Python-Django is the most powerful platform/framework to build any kind of application. Sometimes I am thinking about ASP.NET because I have learned little .Net concept. Now I want to invest my time and money in something which is very robust and helps to develop my project. So, I am very much confused between ASP.Net or Django. Please could anybody advise me which framework would be ideally good to develop this project which will carry for coming many years... Many thanks for your suggestions and advice.

See more
Replies (4)

If you are starting from scratch, I would recommend Express.js as a backend web framework. It is faster and more flexible than Django. Express makes it easy to build web applications offering numerous benefits such as efficiency and quicker development times. Some features that are worth mentioning: middlewares, templating, routing, and debugging.

The most important element that is missing the stack is the database. A Web-Based ERP/Accounting Software require a powerful Relational Database to comply with ACID princliples (Atomicity, Consistency, Isolation and Durability). By atomicity, we mean that that database is able to perform the transactions in an atomic manner. A transaction is just a single unit of work, which can either be one query, or multiple queries. Let's say that we have two accounts. And we need to transfer $100 from account one to account two. Now this transfer is just one transaction, but it is going to consist of three different steps. The first step is checking if the account one does have $100. The second would be upgrading the amount of account one to be $900. And the third would be taking this $100 and making the balance and account two be $200. If the database does support atomic transactions, if one of these three steps fail, the whole transaction should fail. This is what atomicity is.

Consistency means that the database should help in achieving the correct data state, adding certain constraints. We can add a constraint on the amount column that it can never be negative, and the database must make sure that this constraint must always be followed.

Then, we have isolation, which is mainly about the concurrency control. Let's say that we have an account which has $1,000, and there are two persons A and B trying to get the money out of this account. So $1,000 and $100. If we let both of these transaction happen at the same time, this would result in the reduction of $1,100. So the balance will result in the negative $100. Isolation prevents this to happen.

Finally, durability means that once a transaction is committed, the data must be written to the non volatile memory or the storage. So that even if the crash happens or something wrong happens with the database, the data must be there and not be corrupted.

In terms of relational database my recomendation is using Postgres. Postgres is an object-relational database, while MySQL is a purely relational database. This means that Postgres includes features like table inheritance and function overloading. Postgres also adheres more closely to SQL standards.

See more
Guillaume Maka
Full Stack Web Developer · | 6 upvotes · 27.7K views

If you already have some knowledge in C# you can go with ASP.NET Core MVC and continue your learning path (if you liked the language in the first place). but both solution will allow you to build an ERP/eCommerce project.

There is not too much difference between Django and ASP.Net Core MVC both follow the same design principles for building application, they both flexible, provide a lot of library, have a great community support..

The downside (thats my opinion) with ASP.Net Core you are going to follow the Microsoft philosophy of doing thing and you will mostly by tight to there products lineup. Instead of Django where you'll have more freedom.

If your concern is - Robustness: both are valid choice - Long Term Support: Go ASP.Net why? Because the project is maintained by Microsoft the chance that the project go unmaintained is low. Django is more Open Source we never know when it will stop be maintained.

The best I can give you, it's to try both and make your own opinion. Build a Proof of Concept and see by yourself.

See more
Oleksandr Krakovetskyi

I found that Python-Django is the most powerful platform/framework to build any kind of application. It's not. Even you change "Python-Django" to something else, it still will not be a valid statement. Each tool/service/language/framework has advantages and disadvantages and should be considered in each case separately.

Next, Python is a scripting language, C# is a typed one. For serious projects in most cases typed languages are the better choice.

Finally, if you have some .NET experience, ASP.NET Core looks obvious choice.

See more
Recommends
DjangoDjango

ASP.NET will work better in a windows environment. Django probably works better in a Unix environment. I feel like there are a lot more hosting options for Django on Unix (digitalocean, Heroku, Linode, AWS, ...).

So, I think Django.

However, I like Unix and python better, so I'm biased.

See more
Needs advice
on
Spring BootSpring Boot
and
DjangoDjango

I have 1 year of experience as a Django developer but my main role is as a frontend developer and my current company is not using Django they are using Spring Boot and I also want to do backend work.

my perception is spring boot developers get paid much higher than Django and can be there in the market for a long time.

Please give me valuable comments and guidance.

See more
Replies (3)
Mayank Choudhary
Senior Software Engineer at Cisco · | 11 upvotes · 38.3K views
Recommends
DjangoDjango

My mantra is not sticking to a particular technology. That is what I'd suggest. Going by that, I recommend you learn both, Django and Spring Boot. But if you want to choose one among the two, I'd say stick with Django. Saves you the effort of learning a new language and a new framework. Rather, you can spend that time honing your Django skills. It is a wrong notion among young graduates that organizations decide pay based on your technology stack. You just need to be good at a technology that is in demand. You'd be paid well no matter the technology. Django is a wonderful framework and there are tons of companies looking for Django experts. The same can be said about Spring Boot. Both are wonderful technologies in their own accord. As for you, just go with the technology you are already familiar with. It is a misconception that Spring Boot developers get paid better than Django developers.

See more
Adrien Horgnies
Recommends
Spring BootSpring Boot

Globally, Spring Boot is more demanded than Django. For example, there are about ten times more open positions for Spring Boot than for Django in Brussels. So this naturally drives up the price of developers mastering Spring Boot. If you have an opportunity to work with Spring Boot, I suggest you take it, as it is a sound career decision. Furthermore, your experience with Django will help you to master Spring Boot, as both frameworks share many concepts. That said, Django positions do also exist, and it's absolutely not a bad decision to become an expert with that framework either. Django developers seem to like it very much.

See more

Learn both. Spring boot takes more time to learn, because you need to understand spring core first, then spring MVC, then build tools like maven, pom (to truly master spring boot application deployment) One specific technology is never going to land you a job. Go for the whole stack. Example, organizations that use spring boot, won't just look for candidates with spring boot. They might ask for docker, Kubernetes, JavaScript, some ui framework like angular/react, maven, git, etc. Learning curve for python django is easy and small. Focus one technology at a time. Learn it in a couple of weeks. Then go on to another technology in the stack. If you master multiple stacks say java stack, data science stack, web development stack then you should not be short of opportunities. More opportunities means more bargaining power. Having said that, don't run behind money. Money is necessary to sustain but it is not worth pursuing. Pursue moral values, or at least technical excellence. And money will follow wherever you go.

See more
Needs advice
on
Node.jsNode.js
and
DjangoDjango
in

Situation: I need to make a website for my Final Year Project. It's the website for brain analysis. The website features include chat, blogs, posts, users, payment methods. One of the main features includes the use of AI, which I know only in Python.

Decisions and Confusions: I decided to make two backends and one front-end. One backend will be using Django with GraphQL/RestAPI that will be running my AI models. The other backend is for the website. It will add users, chat, post, etc. I'm thinking of using TypeScript, Prisma, ExpressJS, GraphQL, MongoDB/PostgreSQL.

Please guide me to the latest and stable tech stack I can use. Because one of the requirements of our Final Year Project is to use the latest tech stacks. 1st Backend advice? (This will be used to run AI models) 2nd Backend advice? Frontend to 2nd Backend advice?

Thank you.

See more
Replies (2)

Hey there 👋,

Daniel from the Prisma team here.

I think your choice of a stack would work well for your final year project.

Some recommendations: - Use PostgreSQL if you need a stable stack. Prisma support for MongoDB is currently in Preview and therefore isn't stable. Moreover, PostgreSQL being a relational database enforces a schema more strictly than MongoDB which is useful given that your data model involves multiple relations. - If your Django backend exposes a REST API, you can also expose it over the GraphQL API by proxying requests from the GraphQL API to the REST API. That way, you have a unified API for all operations. This is typically known as wrapping. - Regarding the GraphQL part, I would consider looking at Nexus and nexus-prisma.

For inspiration, check out the Prisma Examples ​repository which contains many ready-to-run examples.

Here's another fully-fledged example using Prisma, Fastify, GraphQL, and PostgreSQL: https://github.com/2color/fastify-graphql-nexus-prisma

See more

Hi. Maybe you can try use FastAPI instead Django https://fastapi.tiangolo.com It could be faster. The FastAPI documentation is so useful and elegant.

Also you can try split a little more the backend and use an "microservice" architecture. Using Kubernetes to deploy your services.

See more
Needs advice
on
RedisRedisNode.jsNode.js
and
DjangoDjango

Hey everyone, I am planning to start a personal project that would be yet another social media project with real-time communication facilities like one-to-one chat, group chat, and later voice and video chat using WebRTC. The thing I am concerned about is Django being able to handle all the real-time stuff using websockets. I can use Django Channels, but I don't think that would be a very scalable solution. Moreover, django_channels require alto of configurations, and deployment is also a pain. My plan is to use a separate Node.js server to handle all the socket connections and have it talk to the main django server through Redis. My question is whether the above-mentioned solution is a good choice? If yes, how this can be achieved, keeping in mind all the authentication other related problems. It might be simple, but I have never done this before, which might be the main reason I am concerned. But any suggestion will be appreciated.

Thanks in advance 😊

See more
Replies (1)
Sergey St.

Try to do it with less - Nodejs + Redis + socket.io, optionally you can always communicate with django, but you can do it all in Nodejs, use pm2 and cluster too. For Redis you can also use Pub/Sub, is a good combination for future scaling.

See more
Needs advice
on
RailsRailsLaravelLaravel
and
DjangoDjango

Which is better of Laravel, Rails and Django for creating great products quickly?

Which is better for creating open source apps that others might want to contribute to?

I want a mature tool for creating web apps that qualifies for:

  • Quick prototyping
  • Easy to get to production level for backend
  • Maintainable and buildable by one person alone
  • Enforces conformity, so others can easily read and contribute to the code, making successfully open sourcing possible
  • Works well with React
  • Has a mature and fairly stable ecosystem for the basics (auth, storage, db, image handling, backups, change history, etc.
  • Has an ecosystem that will still be alive in 10 years, responding to changes.

I would have to learn Ruby, Python or PHP for each, so that factors in too.

I'm proficient in React and Node.js, but I feel the node backend ecosystem is too immature with a million different ways to do everything, and too many decisions to make, too much wiring to get everything to work together, and too many packages that end up not being supported a few months down the line.

Which would you choose for me to learn?

See more
Replies (5)
malekmfs
at Meam Software Engineering Group · | 7 upvotes · 104.6K views
Recommends
RailsRailsDjangoDjango

Comparing them end-to-end, Rails comes the most productive in my opinion. But there are bolder parameters you may consider. i.e. no one switches from Django to Rails to improve productivity and vice versa (probably from Laravel to one of those two).

  • The language's productivity also matters, which both Ruby and Python are better for that.

  • There is a philosophical difference between #Django and #Rails :

  • Django supports the "Explicit over Implicit" idea, making it easier for newcomers to understand what's going on. This idea also has downsides. This allows beginners to start working with Django without even learning Django and best practices and defer learning by using references like Stackoverflow.com, which is not a good idea because you potentially don't know things that you don't know! Also, you may find many different project styles.

  • On the other hand, Rails support the "Convention over configuration" and Scaffolding idea. It's easier for a Rails developer to be added to a new project or just review a random Rails project. Everything has a default and also it has some downsides as well. e.g. As a beginner, everything feels like magic in Rails, and you don't understand what is going on and how Rails understand while you didn't "explicitly" say what do you want sometimes.

Conclusion: Rails and Django are more productive and you can build projects on your own quickly (many giant startups launched this way!).

Node.JS isn't immature, also sometimes shows better performance comparing the mentioned alternatives. But if you suffer from "a million different ways to do everything" and "many decisions to make", Take Ruby on Rails for sure.

P.S: for learning RoR I suggest the book/video from Michael Hartl.

See more
Recommends
DjangoDjango

I picked Django because we use it at work. But honestly, if you don't know any of them, I would look at the jobs around where you live and learn the one that either has the most jobs posted or if you can look at the trends the one that is growing the number of jobs the most.

All three would satisfy your needs and all three are good choices. Dotnet core would also be a good choice, again if there are jobs in your area for said technologies. If you literally don't care about this for employment, learn them all and just do it in alphabetical order :)

Note: I think you are wrong about Node being too immature - there are also MOSTLY standards for everything you want to do on the backend that have not changed for many years.

See more
Andrew Kornilov
Co-founder, Principal Developer · | 4 upvotes · 46.5K views
Recommends

Rails uses too much magic and sugar. Laravel is something from the previous century. I'd say Django can be well balanced choice. I have extensive experience with all three. So, this advice based on practical projects

See more
Malo Skrylev

I recommend Ruby/Rails. I write the text in question answer form:

Quick prototyping

Yes you can use the prototyping in Rails or not. And this can be realized by adding any of testing framework like Cucumber or RSpec for example. Writing the test you can work on the application prototype without a change real code in production, or even development environment.

Easy to get to production level for backend

Yes it is easy, you are able to use the capistrano gem with its modules, if required, to deploy application to production within a day.

Maintainable and buildable by one person alone

Since the Rails gets on itself the main code part of a data processing, you are able easily to generate the required code with build-in Rails or external gem generators, and to merely maintain the your code, if you would cover it with a test of selected test framework.

Enforces conformity, so others can easily read and contribute to the code, making successfully open sourcing possible

As far as I said you can barely control a contribution to your project with using the test covering frameworks, to keep conformity the project.

Works well with React

You can use React along with any JS NPM module easily using webpacker gem.

Has a mature and fairly stable ecosystem for the basics (auth, storage, db, image handling, backups, change history, etc.

Of course the Rails framework is supported by many three-side gems, which can be found at rubygems, that support the authentication (devise), storage feature (fog), db (pg/mysql/sqlite3), image handling (rmagick), backups (backup), change history (history)

Has an ecosystem that will still be alive in 10 years, responding to changes.

Ruby/Rails with the RubyGem ecosystem is actively envolving and not plan to be collapsed and abandned with of development both Ruby language and Rails framework.

So, you can freely and fearlessly start using the Rails framework as server side base for your project.

See more
Sebastian Gaviria Tangarife

DJango after a little practice, with migrations and support to a lot of libraries and modules is very efficient to create small projects.

Edit: Between Laravel, Django or RoR (Ruby on Rails)

See more
Needs advice
on
.NET.NET
and
DjangoDjango

I'm working in a university in the IT department where they are developing web Apps with a .NET framework, and I'm starting a master course with python (python programming, ML, AI, NLP, and Django). My manager doesn't mind using any technology. Please guide me. Should I go to learn .NET with Django or stick with Django? What is the best for the future?

See more
Replies (2)
Lukas Batteau

Since the course is in Python, a Python web framework seems like a logical choice. Django is a good option, but Flask and FastAPI are far more lightweight than Django, and great for quickly adding an API on top of your ML/NLP code. Django has its merits, especially the generated admin interface, but requires a lot of boilerplate code.

See more
Alvin Mites
Recommends

The one thing I wouldn't do is mix the two, different structures and ideas for how to do things

Taking a class in python already? I'd lean to Django Want to learn a language that will carry forward to a good paying job .net

Python is an excellent language, though it's often being replaced with things like go which uses a similar syntax

Over time you're going to learn many languages if you want to be a great programmer spend your time with one and dive deep, learn what makes it shine and what the draw backs are grow proficient with it and then consider learning something different so you can compare

Early on learning a single language at depth is more important than tinkering with several or learning any specific language

Good luck

See more
Decisions about Django and Rails
Christian Stefanescu
Head of IT at lawpilots · | 5 upvotes · 57.6K views

A big part of our needs fits perfectly into what Django has to offer: an ORM with support for PostgreSQL , the amazing auto-generated admin interface, consolidated tooling around the application lifecycle and a well-established community with solutions to the majority of common problems.

We use Django whenever we need the auto-generated admin and the friendly templating language to build capable web applications which are relatively easy to maintain for a comparably long time. The excellent integrations for Celery and Django REST framework make it easy to build the necessary integrations with other services.

See more
Tyrell Perera
Director - Software & Systems Engineering at Telstra · | 5 upvotes · 43.8K views
Migrated
from
DjangoDjango
to
Spring BootSpring Boot

I inherited a large Python Django application as part of a corporate re-structure. After careful analysis, working with the new team, we decided to break the monolith into a microservices architecture. While doing so, we managed to port some of those microservices into Spring boot. Better performance and widely available expertise within my current team made me make this decision.

See more
Ing. Alvaro Rodríguez Scelza
Software Systems Engineer at Ripio · | 12 upvotes · 197K views

I was considering focusing on learning RoR and looking for a work that uses those techs.

After some investigation, I decided to stay with C# .NET:

  • It is more requested on job positions (7 to 1 in my personal searches average).

  • It's been around for longer.

  • it has better documentation and community.

  • One of Ruby advantages (its amazing community gems, that allows to quickly build parts of your systems by merely putting together third party components) gets quite complicated to use and maintain in huge applications, where building and reusing your own components may become a better approach.

  • Rail's front end support is starting to waver.

  • C# .NET code is far easier to understand, debug and maintain. Although certainly not easier to learn from scratch.

  • Though Rails has an excellent programming speed, C# tends to get the upper hand in long term projects.

I would avise to stick to rails when building small projects, and switching to C# for more long term ones.

Opinions are welcome!

See more
Fronted Rent

We’re a new startup so we need to be able to deliver quick changes as we find our product market fit. We’ve also got to ensure that we’re moving money safely, and keeping perfect records. The technologies we’ve chosen mix mature but well maintained frameworks like Django, with modern web-first and api-first front ends like GraphQL, NextJS, and Chakra. We use a little Golang sparingly in our backend to ensure that when we interact with financial services, we do so with statically compiled, strongly typed, and strictly limited and reviewed code.

You can read all about it in our linked blog post.

See more

This website was originally written in Yii as PHP was my main language back then. After learning Django, I realized just how quickly you could build a web app with less lines. So I migrated my website to Django in a week or two and managed to cut down the lines of code by half. Some of the lines saving came from the models, the views, and the expressiveness of Python. Django requires like config for the models and they provide many generic views that abstracts away common patterns.

See more

I am planning to develop project management system SAAS based. Can any one help me with selection of platforms from Django or Laravel and for database MongoDB or Firebase/Firestore or MySql? On front end I am going to use Quasar Framework (VueJS). Note : project will be Webapp, Mobile app and desktop app.

See more
Shiqi Lin
Software Developer at BigClarity · | 3 upvotes · 118.5K views

We will use Django to set up our backend and Django REST Framework (DRF) for our API creation. The easiness of performing development tasks (eg. user authentication, URL routing, and schema migration) attracts our attention. Also, Django with PostgreSQL provides many benefits: 1. Some data types in Django will only work with PostgreSQL; 2. Django offers django.contrib.postgres to operate on PostgreSQL; 3. Django supports many features of PostgreSQL. Moreover, Django is compatible with Redis.

See more
Hampton Catlin
VP of Engineering at Rent The Runway · | 7 upvotes · 223.8K views

Starting a new company in 2020, with a whole new stack, is a really interesting opportunity for me to look back over the last 20 years of my career with web software and make the right decision for my company.

And, I went with the most radical decision– which is to ignore "sexy" / "hype" technologies almost entirely, and go back to a stack that I first used over 15 years ago.

For my purposes, we are building a video streaming platform, where I wanted rapid customer-facing feature development, high testability, simple scaling, and ease of hiring great, experienced talent. To be clear, our web platform is NOT responsible for handling the actual bits and bytes of the video itself, that's an entirely different stack. It simply needs to manage the business rules and the customers experience of the video content.

I reviewed a lot of different technologies, but none of them seemed to fit the bill as well as Rails did! The hype train had long left the station with Rails, and the community is a little more sparse than it was previously. And, to be honest, Ruby was the language that was easiest for developers, but I find that most languages out there have adopted many of it's innovations for ease of use – or at least corrected their own.

Even with all of that, Rails still seems like the best framework for developing web applications that are no more complex than they need to be. And that's key to me, because it's very easy to go use React and Redux and GraphQL and a whole host of AWS Lamba's to power my blog... but you simply don't actually NEED that.

There are two choices I made in our stack that were new for me personally, and very different than what I would have chosen even 5 years ago.

1) Postgres - I decided to switch from MySql to Postgres for this project. I wanted to use UUID's instead of numeric primary keys, and knew I'd have a couple places where better JSON/object support would be key. Mysql remains far more popular, but almost every developer I respect has switched and preferred Postgres with a strong passion. It's not "sexy" but it's considered "better".

2) Stimulus.js - This was definitely the biggest and wildest choice to make. Stimulus is a Javascript framework by my old friend Sam Stephenson (Prototype.js, rbenv, turbolinks) and DHH, and it is a sort of radical declaration that your Javascript in the browser can be both powerful and modern AND simple. It leans heavily on the belief that HTML-is-good and that data-* attributes are good. It focuses on the actions and interactions and not on the rendering aspects. It took me a while to wrap my head around, and I still have to remind myself, that server-side-HTML is how you solve many problems with this stack, and avoid trying to re-render things just in the browser. So far, I'm happy with this choice, but it is definitely a radical departure from the current trends.

See more
Chose
RailsRails
over
DjangoDjango

I have used both the tools . Both of them are super awesome , very reliable and their learning curve is also super easy. But, the reason I choose Ruby on Rails over Django is the fact that the dependency injection is super easy in Rails than Django. What I mean is the fact that, Django requires a lot of import statement to do a lot of work, which remembering is not so easy and even after that you may need to write a lot of code. But Ruby on Rails uses gem to add addition feature or dependency in the project. Which requires just copying the gem statement from github and pasting it in the Gemfile, then running bundle install(these days just bundle works super fine). And there you are with the new feature in your app. You can see this with the example of Authentication, where in Django you require several steps like adding class based views and many more, but in rails it's just as easy as installing the 'devise' gem . And if you want to make it beautiful use bootstrap_template gem to make it look prettier. Now with Rails 6 , Rails is a total developer's fervent friend because it has come up with features like Action Mail and Action Text.

See more
washie mugo
Chose
DjangoDjango
over
LaravelLaravel

i find python quite resourceful. given the bulk of libraries that python has and the trends of the tech i find django which runs on python to be the framework of choice to the upcoming web services and application. Laravel on the other hand which is powered by PHP is also quite resourceful and great for startups and common web applications.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More