6 ms·
True, nodejs really doesn't have _the_ framework. Python had flask, php is WordPress and RoR. Why is that? Especially since most of the new frameworks copy the
by Towaway69 3y ago
True, nodejs really doesn't have _the_ framework. Python had flask, php is WordPress and RoR.
Why is that? Especially since most of the new frameworks copy the ideas of existing frameworks.
P.S. Perhaps because a JS framework based off the ideas of rails would be called jails! /s
- dkdbejwi383 3y ago> P.S. Perhaps because a JS framework based off the ideas of rails would be called jails! /s https://sailsjs.com/ https://sailsjs.com/
- monooso 3y agoLaravel would be a better example for PHP, especially as it borrowed so many ideas from Rails.
- pocketsand 3y agoCorrect.
- AlchemistCamp 3y agoI agree. The only frameworks I’ve found about as productive as Rails are Laravel and Phoenix. Django and Sails.js both seemed like they were a step down in terms of general productivity, though each had a unique advantage of their own (admin out of the box, websockets & realtime features). I haven’t had a chance to really give RedwoodJS a trial run, but it's the JS-based fullstack framework I'm most curious about.
- kugelblitz 3y agoAfter a few years, and as my own application has grown, I feel I'm more productive in Symfony than Laravel, because there's less magic, I know where stuff is, and it's more "loosely" coupled components whilst Laravel is "All in or get out". I've been updating my app since Symfony 3.3-ish to now 6.3 and it's been fun! I've had to exchange the auth, the admin section, added new features, killed off features, but I feel with time, that my code has gotten more stable. Maybe my first update experience with Laravel was a bit of a mess (v4.2 to v5.0 "The recommended method of upgrading is to create a new Laravel 5.0 install and then to copy your 4.2 site's unique application files into the new application. This would include controllers, routes, Eloquent models, Artisan commands, assets, and other code specific to your application."), and I couldn't easily "see" the models' properties and the Facades, that's why I have shy-ed away from it a bit. I have worked with several Laravel applications since then and have gone through the v6 through v10 upgrade cycle and can say it's gotten easier (though I wish they could settle on a release schedule), but my preference is still Symfony. Plus when I checked out Django, I felt a bit more "at home" (e.g. see Twig templating language and how they used Django templating language as inspiration). I've worked with Vue.js and AngularJS 1 and Angular 2+, but I'm glad htmx is coming in strong, so I can focus on logic, speed and stability instead of glueing the frontend and backend API together and debugging in the different browsers.
- kaba0 3y agoIt will probably not be a well-liked comment, but Spring is absolutely there in terms of productivity, and the cool thing about it is that it never leaves your side when it comes to more and more complex requirements. It really has everything and especially Spring Data with JPA is unbeatable.
- dominuskelvin 3y agoI have been using Sails since 2018 and it’s what feels close to Laravel for me and the way I keep coming to for building on the web.
- riffraff 3y agoWouldn't python's _the framework_ be Django?
- noirscape 3y agoYeah for a default rigidness with the ability to tinker in obvious ways the framework for python is imo Django. Flask is almost completely freeform in what it allows you to do, it just has a few style recommendations and a ton of community convention, but you could technically ignore 90% of it since Flask doesn't really expect any sort of structure.
- mooreds 3y agoYes. Django is to Rails as Flask is to Sinatra, imo.
- pier25 3y agoI've wondered about this for years. Express was the default with Node for some years but it was mostly used for APIs to feed front ends. These days lots of people have switched to Fastify but again mostly for APIs. There's really nothing fullstack in the JS world that can be compared to Rails, Laravel, or Django. Current fullstack solutions (Next, Nuxt, SvelteKit, etc) in JS are trying to kludge front end components into the server which IMO is a mistake. And I say this as someone who has been doing mostly front end since the 90s.
- joshmanders 3y ago> There's really nothing fullstack in the JS world that can be compared to Rails, Laravel, or Django. I would like to introduce you to Adonis. https://adonisjs.com https://adonisjs.com
- pier25 3y agoIt's cool. Another similar option is Platformatic by the creator of Fastify. https://platformatic.dev/ https://platformatic.dev/ But still... There are no queues or jobs. No HTML over the wire. No colocation of presentation logic. Etc.
- joshmanders 3y agoAll of that stuff can be easily added using 3rd party packages, just like Laravel, Rails, Django, etc all have userland addons. https://packages.adonisjs.com https://packages.adonisjs.com
- pier25 3y agoI didn't know about these packages. But still, nothing really that improves rendering. https://packages.adonisjs.com/?category=Rendering https://packages.adonisjs.com/?category=Rendering And the fact that these aren't official is kind of the point I've been making. In the JS world there isn't a holistic fullstack framework. You have to stitch it all up yourself. In Adonis, Express, Fastify, Next, SvelteKit, etc.
- chpmrc 3y agoI've built Django projects for years and wondered the same thing whenever I had to build something in Javascript land. There are some scaffolding tools that do pretty much what those frameworks do (e.g. create.t3.gg, which I've used recently for a couple of small projects and really liked) but obviously lack that feeling of cohesion that strong opinionated frameworks like Rails or Django come with. Not sure if that's a plus or a minus, after all there might be devs whose preferred stacks differ by 1 or 2 items (e.g. prisma over drizzle, nextauth over something else) and they'd both benefit from having a standardized template to start with. EDIT: just remembered I fell in love with Meteor for a while. Then they started shoving React and other external stuff into it to gain more market share and it inevitably lost that opinionanted nature that, IMO, made it so good. Choice isn't always a good thing for the end user (even, and sometimes especially, when that end user is a professional who just wants to get things done).
- reducesuffering 3y agoDespite what others will say here, it actually is Next.js. People don't agree with parts of the stack (just as C#/Java people didn't agree with what Rails was doing in 2005), or point out projects with the equivalent mindshare of Sinatra/Flask like Nuxt and Svelte, but when you look at what company-level projects are majority building with in 2023, it's Next.js. https://insights.stackoverflow.com/trends?tags=next.js%2Cnestjs%2Cnuxt.js%2Csvelte%2Cruby-on-rails https://insights.stackoverflow.com/trends?tags=next.js%2Cnes...
- singlepaynews 3y agoHow do we know it's not Django/React?(not sarcasm; trying to learn) Adding those two to your link shows them on similar "these increase as rails decreases" correlations, with more area under curve: https://insights.stackoverflow.com/trends?tags=next.js%2Cnestjs%2Cnuxt.js%2Csvelte%2Cruby-on-rails%2Cdjango%2Creactjs https://insights.stackoverflow.com/trends?tags=next.js%2Cnes...
- reducesuffering 3y agoWell, for one, stackoverflow trends are not the only criteria I'm using here. Recent GitHub projects, HN who's hiring threads, frequency of features shipped, and more are being factored in, personally. Next.js is using React, it's a piece of the fullstack framework, like Rails and erb. React is the primary fullstack JS templating system, that's even more featureful as it's a better client side JS interop story than html templates. By the stackoverflow graph, it's clear that most complex projects have moved onto frontend frameworks like React, instead of templated html, which standard Django is using. Django used in conjunction with a frontend framework, is most often through Django Rest Framework, which fares much less popular on stackoverflow trends: https://insights.stackoverflow.com/trends?tags=next.js%2Cruby-on-rails%2Cdjango%2Creactjs%2Cdjango-rest-framework https://insights.stackoverflow.com/trends?tags=next.js%2Crub...
- cloverich 3y agoIME many of the earlier new frameworks were somewhat poor attempts at replicating established players from other languages. That resulted in a lot of cargo culting of bad code, then inevitably churn. I think that's one (of several) reason(s) why Express became more ubiquitous early on. Then from there, since Express became the most popular, and it was more of a micro framework, it allowed multiple competing sub frameworks to emerge. I really tried to use some of the other JS frameworks at the time, and having migrated from Python / PHP always felt they were not very usable by comparison. Moreover, JS really encouraged the use of API driven development + React, at a time when that trend was in general growing. I bet this impacted the ORM development space, as I suspect FE style devs were perhaps more demanding of an ORM while more backend oriented devs were perhaps fine writing SQL. With other frameworks I find the coupling of ORM and template views to be slightly more natural. Maybe this is just me inventing story lines but its how it feels. I think the lack of a quality ORM _really_ hurt the most. Lastly there was a growing trend towards micro dependencies and assembling from parts, and I think it promised more than it could deliver. I think if Node had shipped a higher quality standard lib, perhaps akin to Go or (maybe) how Deno is trying to do, the story might have looked much different. This is my take as a consumer, rather than creator / maintainer of these frameworks, so not sure how accurate this is. Just my viewpoint with my dev career growing alongside the early emergence of Node.
- dominuskelvin 3y agoWe have Sails which was inspired by Rails