What is Rails and what are its top alternatives?
Top Alternatives to Rails
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. ...
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. ...
Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort. ...
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project. ...
It is a web application framework with expressive, elegant syntax. It attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching. ...
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. ...
It is a software task management and build automation tool. It allows the user to specify tasks and describe dependencies as well as to group tasks in a namespace. ...
.NET is a developer platform made up of tools, programming languages, and libraries for building many different types of applications. ...
Rails alternatives & related posts
- Rapid development619
- Open source459
- Great community394
- Easy to learn344
- Beautiful code208
- Great packages186
- Great libraries173
- Comes with auth and crud admin panel59
- Great documentation55
- Great for web52
- Great orm35
- Great for api31
- All included24
- Web Apps20
- Used by top startups16
- Easy setup12
- Convention over configuration10
- Allows for very rapid development with great libraries7
- The Django community7
- Its elegant and practical5
- Great MVC and templating engine5
- Full stack4
- Easy Structure , useful inbuilt library4
- Fast prototyping4
- Easy to develop end to end AI Models4
- Easy to use3
- King of backend world3
- Batteries included3
- Have not found anything that it can't do3
- Zero code burden to change databases2
- Full-Text Search2
- Very quick to get something up and running2
- Many libraries2
- Python community2
- Great peformance2
- Just the right level of abstraction2
- Easy to change database manager1
- Underpowered templating24
- Underpowered ORM19
- Autoreload restarts whole server18
- URL dispatcher ignores HTTP method15
- Internal subcomponents coupling10
- Not nodejs7
- Configuration hell6
- Not as clean and nice documentation like Laravel3
- Bloated admin panel included3
- Overwhelming folder structure2
- Not typed2
- InEffective Multithreading1
related Django posts
Simple controls over complex technologies, as we put it, wouldn't be possible without neat UIs for our user areas including start page, dashboard, settings, and docs.
Initially, there was Django. Back in 2011, considering our Python-centric approach, that was the best choice. Later, we realized we needed to iterate on our website more quickly. And this led us to detaching Django from our front end. That was when we decided to build an SPA.
For building user interfaces, we're currently using React as it provided the fastest rendering back when we were building our toolkit. It’s worth mentioning Uploadcare is not a front-end-focused SPA: we aren’t running at high levels of complexity. If it were, we’d go with Ember.js.
However, there's a chance we will shift to the faster Preact, with its motto of using as little code as possible, and because it makes more use of browser APIs. One of our future tasks for our front end is to configure our Webpack bundler to split up the code for different site sections. For styles, we use PostCSS along with its plugins such as cssnano which minifies all the code.
All that allows us to provide a great user experience and quickly implement changes where they are needed with as little code as possible.
- Programme friendly600
- Quick to develop533
- Great community488
- Open source272
- Powerful one-liners138
- Easy to learn56
- Easy to start48
- Diverse web frameworks19
- Fun to write19
- Reads like English11
- Makes me smarter and happier8
- Elegant syntax7
- Very Dynamic6
- Programmer happiness5
- Generally fun but makes you wanna cry sometimes4
- Fun and useful4
- Object Oriented3
- There are so many ways to make it do what you want3
- Easy packaging and modules2
- Primitive types can be tampered with2
- Elegant code2
- Memory hog7
- Really slow if you're not really careful7
- Nested Blocks can make code unreadable3
- Encouraging imperative programming2
- Ambiguous Syntax, such as function parentheses1
related Ruby posts
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 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 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?
- Open source35
- Great ecosystem of tools13
- Ease of use10
- If you know http you know sinatra8
- Large Community5
- Flexibilty and easy to use1
related Sinatra posts
- Virtual dom651
- Data flow174
- Isn't an mvc framework123
- Reactive updates113
- Explicit app state110
- Learn once, write everywhere23
- Uni-directional data flow18
- Easy to Use16
- Works great with Flux Architecture14
- Great perfomance10
- Built by Facebook8
- TypeScript support5
- Easy to start4
- Feels like the 90s4
- Fancy third party tools3
- Server side views3
- Great migration pathway for older systems2
- Server Side Rendering2
- Fast evolving2
- Simple, easy to reason about and makes you productive2
- Rich ecosystem2
- Has functional components2
- Has arrow functions2
- Strong Community2
- Very gentle learning curve2
- Excellent Documentation2
- Super easy2
- Scales super well2
- Just the View of MVC2
- Start simple1
- Split your UI into components with one true state1
- Every decision architecture wise makes sense1
- Beautiful and Neat Component Management1
- Allows creating single page applications1
- Requires discipline to keep architecture organized33
- No predefined way to structure your app21
- Need to be familiar with lots of third party packages20
- Not enterprise friendly6
- One-way binding only1
- State consistency with backend neglected1
related React posts
I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.
I've used both Vue.js and React and I would stick with React. I know that Vue.js seems easier to write and its much faster to pick up however as you mentioned above React has way more ready made components you can just plugin, and the community for React is very big.
It might be a bit more of a steep learning curve for your friend to learn React over Vue.js but I think in the long run its the better option.
- Clean architecture504
- Growing community364
- Composer friendly339
- Open source315
- The only framework to consider for php295
- Quickly develop189
- Dependency injection155
- Application architecture143
- Embraces good community packages129
- Write less, do more57
- Restful routing52
- Orm (eloquent)47
- Artisan scaffolding and migrations43
- Database migrations & seeds42
- Great documentation33
- Awsome, Powerfull, Fast and Rapid25
- Promotes elegant coding25
- Build Apps faster, easier and better24
- Easy to learn, scalability22
- JSON friendly22
- Most easy for me21
- Eloquent ORM21
- Modern PHP19
- Blade Template18
- Based on SOLID11
- Clean Documentation11
- Easy to attach Middleware10
- Convention over Configuration10
- Easy Request Validatin9
- Get going quickly straight out of the box. BYOKDM8
- Its just wow8
- Laravel + Cassandra = Killer Framework8
- Easy to use8
- Super easy and powerful7
- Friendly API7
- Less dependencies7
- Simplistic , easy and faster7
- Great customer support6
- Its beautiful to code in6
- Active Record5
- Fast and Clarify framework5
- The only "cons" is wrong! No static method just Facades5
- Easy views handling and great ORM4
- Minimum system requirements4
- Laravel Mix4
- Laravel Nova3
- Laravel casher3
- Laravel Spark3
- Intuitive usage3
- Ease of use3
- Cashier with Braintree and Stripe3
- Laravel Forge and Envoy3
- Laravel Horizon and Telescope3
- Laravel Passport3
- Heart touch2
- Like heart beat2
- Touch heart artisan2
- Rapid development2
- Laravel love live long2
- Too many dependency27
- Slower than the other two19
- A lot of static method calls for convenience15
- Too many include13
- Does not work well for file uploads in Shared Hosting4
- Too underrated3
- Not fast with MongoDB2
- Difficult to learn1
- Not using SOLID principles1
related Laravel posts
Back at the start of 2017, we decided to create a web-based tool for the SEO OnPage analysis of our clients' websites. We had over 2.000 websites to analyze, so we had to perform thousands of requests to get every single page from those websites, process the information and save the big amounts of data somewhere.
Very soon we realized that the initial chosen script language and database, PHP, Laravel and MySQL, was not going to be able to cope efficiently with such a task.
By that time, we were doing some experiments for other projects with a language we had recently get to know, Go , so we decided to get a try and code the crawler using it. It was fantastic, we could process much more data with way less CPU power and in less time. By using the concurrency abilites that the language has to offers, we could also do more Http requests in less time.
Unfortunately, I have no comparison numbers to show about the performance differences between Go and PHP since the difference was so clear from the beginning and that we didn't feel the need to do further comparison tests nor document it. We just switched fully to Go.
There was still a problem: despite the big amount of Data we were generating, MySQL was performing very well, but as we were adding more and more features to the software and with those features more and more different type of data to save, it was a nightmare for the database architects to structure everything correctly on the database, so it was clear what we had to do next: switch to a NoSQL database. So we switched to MongoDB, and it was also fantastic: we were expending almost zero time in thinking how to structure the Database and the performance also seemed to be better, but again, I have no comparison numbers to show due to the lack of time.
As of now, we don't only use the tool intern but we also opened it for everyone to use for free: https://tool-seo.com
I use Laravel because it's the most advances PHP framework out there, easy to maintain, easy to upgrade and most of all : easy to get a handle on, and to follow every new technology ! PhpStorm is our main software to code, as of simplicity and full range of tools for a modern application.
Google Analytics Analytics of course for a tailored analytics, Bulma as an innovative CSS framework, coupled with our Sass (Scss) pre-processor.
To deploy, we set up Buddy to easily send the updates on our nginx / Ubuntu server, where it will connect to our GitHub Git private repository, pull and do all the operations needed with Deployer .
CloudFlare ensure the rapidity of distribution of our content, and Let's Encrypt the https certificate that is more than necessary when we'll want to sell some products with our Stripe api calls.
Asana is here to let us list all the functionalities, possibilities and ideas we want to implement.
- Great libraries1.1K
- Open source791
- Great for apis480
- Great community417
- Great for realtime apps387
- Great for command line utilities292
- Node Modules78
- Uber Simple65
- Great modularity53
- Allows us to reuse code in the frontend53
- Easy to start38
- Great for Data Streaming33
- Non blocking IO23
- Can be used as a proxy16
- High performance, open source, scalable15
- Non-blocking and modular14
- Easy and Fun13
- Same lang as AngularJS12
- Easy and powerful11
- Future of BackEnd10
- Cross platform8
- Mean Stack7
- Easy concurrency5
- Great for webapps5
- Easy to use and fast and goes well with JSONdb's4
- Fast, simple code and async4
- Its amazingly fast and scalable3
- Great speed3
- Fast development3
- Isomorphic coolness3
- Control everything3
- It's fast2
- Not Python2
- Blazing fast2
- One language, end-to-end2
- TypeScript Support2
- Easy to learn2
- Easy to use2
- Less boilerplate code2
- Sooper easy for the Backend connectivity2
- Great community2
- Scales, fast, simple, great community, npm, express2
- Performant and fast prototyping2
- Event Driven0
- Bound to a single CPU46
- New framework every day40
- Lots of terrible examples on the internet34
- Asynchronous programming is the worst28
- Dependency based on GitHub11
- Dependency hell10
- Low computational power10
- Can block whole server easily7
- Very very Slow6
- Callback functions may not fire on expected sequence6
- Unneeded over complication3
- Breaking updates3
- No standard approach1
related Node.js posts
When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?
So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.
React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.
Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.
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:
related RAKE posts
- Great mvc7
related ASP.NET posts
Finding the most effective dev stack for a solo developer. Over the past year, I've been looking at many tech stacks that would be 'best' for me, as a solo, indie, developer to deliver a desktop app (Windows & Mac) plus mobile - iOS mainly. Initially, Xamarin started to stand-out. Using .NET Core as the run-time, Xamarin as the native API provider and Xamarin Forms for the UI seemed to solve all issues. But, the cracks soon started to appear. Xamarin Forms is mobile only; the Windows incarnation is different. There is no Mac UI solution (you have to code it natively in Mac OS Storyboard. I was also worried how Xamarin Forms , if I was to use it, was going to cope, in future, with Apple's new SwiftUI and Google's new Fuchsia.
This plethora of techs for the UI-layer made me reach for the safer waters of using Web-techs for the UI. Lovely! Consistency everywhere (well, mostly). But that consistency evaporates when platform issues are addressed. There are so many web frameworks!
But, I made a simple decision. It's just me...I am clever, but there is no army of coders here. And I have big plans for a business app. How could just 1 developer go-on to deploy a decent app to Windows, iPhone, iPad & Mac OS? I remembered earlier days when I've used Microsoft's ASP.NET to scaffold - generate - loads of Code for a web-app that I needed for several charities that I worked with. What 'generators' exist that do a lot of the platform-specific rubbish, allow the necessary customisation of such platform integration and provide a decent UI?
I've placed my colours to the Quasar Framework mast. Oh dear, that means Electron desktop apps doesn't it? Well, Ive had enough of loads of Developers saying that "the menus won't look native" or "it uses too much RAM" and so on. I've been using non-native UI-wrapped apps for ages - the date picker in Outlook on iOS is way better than the native date-picker and I'd been using it for years without getting hot under the collar about it. Developers do get so hung-up on things that busy Users hardly notice; don't you think?. As to the RAM usage issue; that's a bit true. But Users only really notice when an app uses so much RAM that the machine starts to page-out. Electron contributes towards that horizon but does not cause it. My Users will be business-users after all. Somewhat decent machines.
Looking forward to all that lovely Vue.js around my TypeScript and all those really, really, b e a u t I f u l UI controls of Quasar Framework . Still not sure that 1 dev can deliver all that... but I'm up for trying...
I found Heroku to be a great option to get ExpressJS up and running with very little hustle. The free tier is great, but I'd recommend to set up a cronjob to visit your site every few minutes so that the server stays awake. Netlify was the option to host the front-end because doing the server side rendering on #Heroku would have taken a little more time than I'd like to. For the moment pre-rendering the app with prerender-spa-plugin is enough to help with #seo. Puppeteer was my choice over other options because it made it easier to scrape websites made on ASP.NET which is what I needed in this case. And Vue.js is my top choice at the moment because it's really beginner friendly and it has a lot of the features I like about Angular 2 and React. vuex is a must in most of the app I build.