TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Best web framework in 2018

33 点作者 k120超过 7 年前
I&#x27;m trying to choose right web framework for my startup. The problem is that I haven&#x27;t followed last trends in web dev for a couple of years. Previously I used Python&#x2F;Django for all of my web projects.<p>Initially I decided to choose Python&#x2F;Django because I am familiar with that tech stack and I can be productive from first day. But I have some doubts because our web app will use heavily a lot of interactive stuff like a WebRTC, realtime whiteboard, chat messaging etc.<p>So, do I need to choose something like NodeJS based web frameworks or I can stay with Django using builtin Channels library?<p>If I need to choose NodeJS based solution, what kind of libraries do I need to use? Express, React, MongoDB, etc. Is there a some recommended ways of building such apps and do it have standard functionality with common cases like user authorization, session etc.<p>Maybe some another good alternatives here?

28 条评论

CM30超过 7 年前
I&#x27;m going to be a bit harsh here, but I think the answer is:<p>Whatever you&#x27;re good at and can get a decent MVP out of the door with.<p>That might be Python and Django like you mentioned above, it might be NodeJS, or it might be anything from React to Angular to any other framework you can imagine.<p>Because at the end of the day, whatever you actually write the product or service in matters far less than what you actually do with it. Indeed, unless your audience are programmers and run your software themselves, your audience won&#x27;t give a toss what your software was built in.<p>Pick whatever you want to write this thing it, but always remember that being early to market it usually a hell of a lot better than being late because you spent tons of time learning an all new framework for it.
评论 #16332941 未加载
JonesDE超过 7 年前
There are many good frameworks out there that are a viable choice.<p>The main reason should be the people you want to hire and how you structure your team. Also, you need to consider if you need high performance or data science<p>Rails - good choice to start off. Fast to bootstrap a product. If you do not need high performance, you can get old with it otherwise, you will move.<p>Java Spring - a lot of people know Java<p>Python - framework is not the fastest and modern, but python is a good skill to have in your team if you need data science<p>.net mvc -- became an interesting choice.<p>Elixir Phoenix - smallest community but fun to work with and awesome performance (like .net or spring) will scale very well.<p>Go&#x2F;Iris -- best performance and easy to learn. Is missing strong abstractions but an awesome community and libraries.<p>Javascript (express) - ever changing environment. Your developers can work on frontend and backend. It&#x27;s an advantage to have just one language.<p>My favourites are Go and Elixir but in the end, I would decide on the people you will hire.
评论 #16334116 未加载
jaredcwhite超过 7 年前
I&#x27;m a Rails guy through and through, but I&#x27;ll echo what many other commenters have said: stick with what you know. Trying out new frameworks, languagues, technology stacks, etc. is great for side projects. But if you&#x27;re seriously trying to get a new startup product off the ground and to MVP status quickly, the last thing you need to worry about is the headache of dealing with all sorts of new technology puzzle pieces. At the end of the day, your users won&#x27;t care if you coded the app in Ruby or Python or Javascript or Go. They&#x27;ll care if the app is good and meets their needs.
skrowl超过 7 年前
Unpopular answer, but it&#x27;s what we use here: Angular SPA front end + .NET backend<p>The &quot;best&quot; is what you can get the best product done the most efficiently, and what you&#x27;re able to hire for. If a niche new thing comes out that might be 1% faster in synthetic tests, but you&#x27;d have to spend 4 months learning it as well as what you know now and there are no people near you to hire, it&#x27;s not really the &quot;best&quot; for you.
sebst超过 7 年前
There are really good web frameworks, both frontend and backend, out there. So, I would second the opinion that the best framework is the one you feel most productive with.<p>However, I&#x27;d like to highlight ASP.net Core + Angular + Visual Studio here. Microsoft appeasement towards Open Source and cross-platform made this a solid choice. As web apps grow steadily in complexity, a modern strongly typed language like C# (and TypeScript) might be helpful for architectural patterns. And, last but not least, the tooling around the Visual Studio product family is maybe best in class.<p>I am saying all this as someone who has not touched any Microsoft product for years.
jonnycoder超过 7 年前
To answer your NodeJS question, express is a popular framework for API development and many databases are supported, <a href="https:&#x2F;&#x2F;expressjs.com&#x2F;en&#x2F;guide&#x2F;database-integration.html" rel="nofollow">https:&#x2F;&#x2F;expressjs.com&#x2F;en&#x2F;guide&#x2F;database-integration.html</a>.<p>I use sailsJS in my day job which is built on top of expressJS, and it does everything you want out of the box for GET, POST, PUT and DELETE simply by adding a model file and configuring the MongoDB connection string. It also has standard functionality with it such as logging, session, authorization, <i>BUT</i> you have to spend time learning how it works with sailsJS. Therefore it is much easier to start at a lower level framework like express and add high quality functionality modules as you need it, such as expressJS and adding your favorite logging&#x2F;apm module like New Relic.<p>I&#x27;ve done .NET, Python and now I&#x27;m doing Node at work. By far, Node is my favorite because it always just works. I develop on Windows 10 and deploy using Ubuntu 16 docker images. I use mssql node module and it has just worked in both OSs. The only cross platform issue, with Node, I&#x27;ve had was that file names are case sensitive in Linux but not Windows.<p>For UI development, that&#x27;s another beast. I wrote an Angular 5 application recently but I don&#x27;t like it. Vue and possibly React look simpler.
bnchrch超过 7 年前
Given the want for WebRTC, realtime, chat and messaging I would take a long hard look at Elixir&#x2F;Phoenix. It is perfectly suited to those problem domains.<p>As a bonus it has a good community and is in my opinion a pleasure to work with. I&#x27;ve released a couple production projects using it and am currently building my third. Ive also found from my own experience and watching a new team pick it up that the learning curve is fairly small.
antoineMoPa超过 7 年前
I&#x27;d say rails because the nodejs + PHP codebases I&#x27;ve seen aged poorly, but the rails one are still clean. The problem with node is that things move too fast. What was beautiful in JS 4 years ago now looks like legacy mainframe fortran. Laravel (a popular php framework) is nice at one point in time, but even 0.x.0 migrations will break you application and force you to work for hours...
评论 #16336154 未加载
评论 #16350899 未加载
thrownaway954超过 7 年前
&quot;I&#x27;m trying to choose right web framework for my startup.&quot; &quot;Previously I used Python&#x2F;Django for all of my web projects&quot;<p>Write your application in Python&#x2F;Django. Your concern should be getting to market fast, not which tech should I choose.
sidcool超过 7 年前
Unpopular opinion, but Rails with server side rendered ERB templates are quite quick to get started with. The convention over configuration philosophy gives a lot of things out of the box.
评论 #16334000 未加载
thijsvandien超过 7 年前
As others have pointed out already, there isn&#x27;t really such a thing as a best framework. Many of the fundamental ideas are the same no matter what you choose, so the potential benefits of switching are meager.<p>Stick with what you know for the parts that don&#x27;t absolutely require another solution; not all (parts of) pages will be so interactive. Then branch out a bit where needed, e.g. to handle socket connections well. Maybe not all of that needs to be handled by the same service?<p>If you move the semi-realtime stuff into a separate project, it will be a lot smaller in scope, hence less risky to experiment with. Regardless, I wouldn&#x27;t stray too far. If you&#x27;ll be writing Javascript anyway, NodeJS could still be fine, but don&#x27;t needlessly bring in a third language. Do try Channels, but don&#x27;t overlook other Python solutions. Tornado is a workhorse that doesn&#x27;t get nearly enough credit in my opinion.
beders超过 7 年前
I&#x27;m pretty sure there&#x27;s websocket (and related tech) support for your stack. I would explore this first.<p>If your startup is for consumers and you don&#x27;t have a good estimate of your growth or you don&#x27;t know how fast your app will need to scale, then make sure you can hire people who know quickly. Your hiring skill will be more important than your tech.<p>Also, if the complexity of your app is low or medium, consider your first implementation as a prototype that - given growth happens - can be replaced with a faster stack relatively simple.<p>If high concurrency is needed, you&#x27;ll bump into frameworks focusing on async I&#x2F;O. Java and C++ implementations are the leader here. (see techempower benchmarks for more information).<p>If you can commit to a datastore (and you rarely make a mistake by choosing PostgresQL), then replacing your prototype down the road is easier.
david90超过 7 年前
Go for backend as a service or serverless: e.g. ReactJs as front end + Skygear (<a href="https:&#x2F;&#x2F;skygear.io" rel="nofollow">https:&#x2F;&#x2F;skygear.io</a>) as backend<p>Disclaimer: I work for skygear (it&#x27;s a opensource project)
znq超过 7 年前
Without wanting to spam, I just want to share our summary of our favorite web dev tools <a href="https:&#x2F;&#x2F;mobilejazz.com&#x2F;blog&#x2F;the-best-web-frontend-development-tools-in-2018&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mobilejazz.com&#x2F;blog&#x2F;the-best-web-frontend-developmen...</a><p>(We&#x27;re a 25 people remote company and have been in business for almost 10 years now, so we&#x27;ve a little bit of an idea of what we&#x27;re talking about. Disclaimer though: one of the tools mentioned in this blog post -- Localname -- if one of our own)
dyeje超过 7 年前
Same answer as the many years before: Rails, Django, or .NET.<p>Anything else and you&#x27;re making serious tradeoffs on mindshare, features, or something else.<p>Of those 3, I know Rails has good realtime support via ActionCable.
评论 #16334953 未加载
lokarda超过 7 年前
There is no &quot;best web framework&quot; :) It depends on several factors: - your personnal preference - your domaine - your need - your budget - etc.<p>Personally, I love the combo Golang + Vue.js.
niwde超过 7 年前
Every programming language has its pros and cons. And many of them overlap.<p>A product’s success has nothing to do with which language or framework you choose. They are there to help you develop something that works as per your needs.<p>You mentioned your product deals with chat messaging. So I would suggest using something like NodeJS + SQL for the backend. NodeJS for its ability to handle high volume of events. SQL for managing the chat history of each person in a relational way.<p>My two cents worth :)
netgusto超过 7 年前
Symfony 3 (and recently 4) is a very effective, focused tool that gets out of your way and let you get the job done, once you understand and give in to dependency injection and single responsibility principle<p><a href="https:&#x2F;&#x2F;symfony.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;symfony.com&#x2F;</a><p>Killer feature: you can use every symfony component in your own app without the framework if you want (console, http router, service container, templating, etc.)
truesy超过 7 年前
Use any, really. If you want &quot;best in 2018,&quot; in Node, my recommendation is Next ( <a href="https:&#x2F;&#x2F;github.com&#x2F;zeit&#x2F;next.js&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;zeit&#x2F;next.js&#x2F;</a> ) - it is extremely good if you want to kick something up fast, and get it out as an MVP. And can be extended upon to have a rich application, with a variety of other frameworks.
johnsonjo超过 7 年前
As far as front end libraries go, I learn quite a few of them in my free time, and I found Vue.js insanely simple to pick up. One of the things I like so much about it is the tooling can be incrementally adopted. If you don’t mind paying quite a bit for a membership I would recommend the 4 hour course on frontendmasters.com by Sarah Drasner. That’s how I learned.
dawhizkid超过 7 年前
I just launched a side project with react + react router + graphQL + rails (API only) backend.
amourgh超过 7 年前
React&#x2F;Redux +.NET CORE backend,Postgres for the DB is one of the best choices i use
评论 #16339098 未加载
kapv89超过 7 年前
If you are planning to use node.js with PostgreSQL, I want to pitch in my ORM, tabel: <a href="http:&#x2F;&#x2F;tabel.fractaltech.in&#x2F;" rel="nofollow">http:&#x2F;&#x2F;tabel.fractaltech.in&#x2F;</a>
ConcernedCoder超过 7 年前
Just please not AngualarJS, not like this... please GOD not like this...
vasilakisfil超过 7 年前
you can just split backend from frontend and use in the frontend an all-in js framework like Ember, Angular etc or combination of different js front-end libs like react + redux + react-router.
adelarsq超过 7 年前
ELM
nwmcsween超过 7 年前
Hyperapp + graphql
adamiscool8超过 7 年前
LAMP
评论 #16342180 未加载