I'm using LAMoPy - Linux, Apache, Mongo, Python (flask)
I don't buy into the whole Node.js thing, I much prefer the stability and maturity of apache. Mongo just because it's easy to use with python, and python because I love it <3
I'd be more curious to see a timeline of which tools and frameworks were popular over the last 10 years. I bet the amount of churn would surprise people.
Angular 1.5, Tornado 4.2 & RethinkDB 2.3.5 for me. Tornado coroutines play beautifully with Rethink queries and change feeds. I've also got a proprietary C++ framework in the middle tier, so some of the server processes are C++ Python hybrids. Fortunately Tornado makes it easy to dispatch events into the C++ code via a think wrapper built in Python's C++.
Using Apollo Server, I get around authentication with an auth query which updates the context object of the query with the auth token of the user. Then, any subsequent queries can use that auth token to authenticate the user and authorize it for the query themselves.
I've also seen it where the authentication is handled by middleware before GraphQL even touches the request. I figure those two methods work for about every use case.
Using Apollo Server, I get around authentication with an auth query which updates the context object of the query with the auth token of the user. Then, any subsequent queries can use that auth token to authenticate the user and authorize it for the crease themselves.
I've also seen it where the authentication is handled by middleware before GraphQL even touches the request. I figure those two methods work for about every use case.
I do auth with a simple Ajax form and make all of my graphql calls take an auth header. Auth is really somewhat orthogonal to graphql. You can do it with graphql or not, up to you.
Do you have any example projects or resources you used for getting everything working together nicely? I have tinkered with that setup a bit but haven't come up with something I love yet.
Isn't nginx for static pages mostly, and it proxies load-balance/dynamic-content to other servers behind, will LEMP make development less straightforward comparing to LAMP? I'm actually using lighttpd these days due to its light-weight, and dynamic/static page support all-in-one.
Correct, you can't run PHP inside the NGINX process like Apache can with mod_php. You have to run a PHP service listening for Fast CGI connections and configure NGINX to proxy via FastCGI to that service. The `php-fpm` package on Linux makes this easy to do.
Ruby on Rails or Node.js for the backend (API) and React for the front end. Rails is excellent for database migrations. Postgresql / MongoDb / Firebase for the database, depending on requirements.
I started backend development with Nodejs because I was familiar with JavaScript. I dropped sails after a month because of the lack of documentation and help available when something went wrong.
A few months later I happened to try Rails and realized that that was what Sails was trying to be for JavaScript. At some point Sails will become awesome, but until then I'll stick with Rails.
ASP.NET Core is a lean and composable framework for building web and cloud applications. ASP.NET Core is fully open source and available on GitHub. ASP.NET Core is available on Windows, Mac, and Linux.
I've spent at least the last 10 years (including Uni days) writing mostly Java or .NET in some form or other.
I don't mind Java, I generally like using Java 8, but I would happily be writing C# instead if I could run it as easy in as many places. The syntactic sugar, Linq, the latest MVC framework, etc- are generally much faster to get moving in and don't require the configuration hell you can run into w/ Java.
However, as a guy who ALSO maintains the servers and deployment process for the things we build, I'll continue avoiding .NET until it can be built, archived, and deployed as easily as we do our Java based applications. I don't think I could even maintain a Windows Server now if I had to.
We use Octopus Deploy at work to deploy .NET. There's a bit of a learning curve, and it has a few quirks and annoyances, and you might need to write some Powershell scripts to fill in a few gaps (which it can run), but once you've got it in place, it's super simple to deploy everything. Every single deploy used to be a big hullabaloo at our company, now it's super smooth thanks to Octopus.
If you're talking about Ant, Maven, Tomcat, etc for Java deployment, it's been about 5 years since I've had to use that, but I'd say Octopus is a much better process than that.
We tried using Octopus (3 years ago) as part of our CI/CD pipeline and ran into a big problem with it choking on file sizes and handling all the bundled dependencies we threw at it. Eventually we just scripted MSBuild and archived them ourselves for retrieval when we needed them.
We don't have anything too huge we give it. I think our largest package is like 100MB. But we do have about 40 active projects in its system. Also, I attended something by a guy who worked for Accenture, who talked about using it with thousands of active projects and some of the technical issues they had to overcome (and work directly with Octopus team to help resolve, at some points) with such a massive amount of projects.
It was this guy that gave the talk, he has a blog with lots of information about his experience with Octopus. A few of the quirks I encountered when getting everything set up with our company were resolved by reading his blog: http://ianpaullin.com/category/octopus-deploy/
I am a unix a guys that recently moved to a MS wonderland.
I have to tell you Windows Server and the tooling feels much more polished than Linux and the mess around it.
And powershell...powershell is kind here.
Not really, at this point of time I just love that it's now possible to write a code, run and debug my project in both of Windows and Mac OS, that's a huge step forward.
I'm in the middle of a project that uses.NET Core. It's been great so far but Microsoft is in the middle of changing the tooling for it, which is a major pain point right now. They are essentially changing the project file format that defines dependencies and build options, and SDK tools and IDEs don't all support both formats yet.
.NET Core has almost all of the features of the full .NET framework and C# is a pleasure to work with. My team is very productive and we are able to iterate very quickly. Since it is a compiled language, most errors are caught at build time.
Deploying is another pain point. You have to install the framework on Linux and ship all of your dependencies. They make it easy with the `dotnet publish` command. I'm excited for .NET Native which will package everything into a binary.
Yes, we did experience obstacles. I wanted to use MySQL for our project and there was no GA Entity Framework implementation when we started. Oracle is way behind the ball on an official driver and their license (GPLv2) is super restrictive. I found `Pomelo.EntityFrameworkCore.MySql` to be a pretty good implementation and started contributing. We ported it to use `MySqlConnector` as a base MySQL driver. Both libraries have matured a lot, are MIT Licensed, optimized for performance, and are now used in production.
I think that PostgreSQL has a similar open source story. There's `Npgsql` for a driver and `Npgsql.EntityFrameworkCore.PostgreSQL` for the Entity Framework implementation.
It took some work, but I like that Entity Framework Core allows for it's implementations to be done by the Open Source community. In MySQL's case, we've added lots of MySQL-specific optimizations to the Entity Framework implementation after getting feedback from the community. The new open Microsoft development approach here is great.
I used Laravel for some projects that deal a few users.
Where I work, we are reviewing different stacks for a project that will deal with a bigger quantity of users and I would really like to use Laravel, does Laravel have some performance issues or similar stuff when dealing with lot of users?
I used Django a few years back for a large project that involved facility management. It was a breeze to work with. The Django Admin functionality alone saved us weeks of work.
That was version with 1.3! I wonder what the current state of the framework is. I need to get back into writing Python and using Django
I'd like to think Django devs are busy getting stuff done instead of obsessing over the latest tech stack :)
In all seriousness, Django Channels looks to be a very good offering to compete with the async real time capabilities Go/Elixir/Node bring to the table.
I have gone through work using Codeigniter, Laravel, Spring then Django. Django was very easy to learn coming from Laravel and has lot les boilerplate than Spring. Never going back!
Maybe it is just hype but I am trying out Elixir. I am interested in the functional programming too so its a win -win for me.
Which day? Just reading the comments shows a wide variety of options, so how do you determine popularity? I remember at my employer going through gyrations to determine the best popular JS framework about 4 yrs ago. None of the finalists even exist today. Whatever decision you make today, always plan to change everything even if you don't: you can't predict where your choices will go.
124 comments
[ 3.9 ms ] story [ 163 ms ] threadhttps://stackshare.io
and their blog for featured posts...
https://stackshare.io/posts
I don't buy into the whole Node.js thing, I much prefer the stability and maturity of apache. Mongo just because it's easy to use with python, and python because I love it <3
Apache is for static content and to act as an HTTP proxy for managing connections.
You can, and should, put Apache (or Nginx) in front of a Node.js web service.
Honestly, though, I'm doing everything with GraphQL now. It is a huge benefit for all aspects of application stack design now.
I've also seen it where the authentication is handled by middleware before GraphQL even touches the request. I figure those two methods work for about every use case.
I've also seen it where the authentication is handled by middleware before GraphQL even touches the request. I figure those two methods work for about every use case.
>Phoenix Absinthe Vue.js TypeScript Apollo Ethereum
http://hotframeworks.com/
Sails.js is a framework. You could argue that Express is. But Node itself if not.
Sails.js, Meteor.js, and etc... are frameworks that use/run on Node.js.
A few months later I happened to try Rails and realized that that was what Sails was trying to be for JavaScript. At some point Sails will become awesome, but until then I'll stick with Rails.
HN discussion: https://news.ycombinator.com/item?id=12634577
https://news.ycombinator.com/newsguidelines.html
Have you built something significant with it you can point to? This is not snark - I'd really love to hear about it.
I don't mind Java, I generally like using Java 8, but I would happily be writing C# instead if I could run it as easy in as many places. The syntactic sugar, Linq, the latest MVC framework, etc- are generally much faster to get moving in and don't require the configuration hell you can run into w/ Java.
However, as a guy who ALSO maintains the servers and deployment process for the things we build, I'll continue avoiding .NET until it can be built, archived, and deployed as easily as we do our Java based applications. I don't think I could even maintain a Windows Server now if I had to.
.Net core runs on linux, so you don't even need a windows server.
If you're talking about Ant, Maven, Tomcat, etc for Java deployment, it's been about 5 years since I've had to use that, but I'd say Octopus is a much better process than that.
It was this guy that gave the talk, he has a blog with lots of information about his experience with Octopus. A few of the quirks I encountered when getting everything set up with our company were resolved by reading his blog: http://ianpaullin.com/category/octopus-deploy/
.NET Core has almost all of the features of the full .NET framework and C# is a pleasure to work with. My team is very productive and we are able to iterate very quickly. Since it is a compiled language, most errors are caught at build time.
Deploying is another pain point. You have to install the framework on Linux and ship all of your dependencies. They make it easy with the `dotnet publish` command. I'm excited for .NET Native which will package everything into a binary.
I think that PostgreSQL has a similar open source story. There's `Npgsql` for a driver and `Npgsql.EntityFrameworkCore.PostgreSQL` for the Entity Framework implementation.
It took some work, but I like that Entity Framework Core allows for it's implementations to be done by the Open Source community. In MySQL's case, we've added lots of MySQL-specific optimizations to the Entity Framework implementation after getting feedback from the community. The new open Microsoft development approach here is great.
Full disclosure: primarily a Java dev but have worked in PHP, and to a lesser degree python as well. Oh, and I now work full time on .Net.
https://lumen.laravel.com/
If you're running jobs, be sure to do so on the queue.
That was version with 1.3! I wonder what the current state of the framework is. I need to get back into writing Python and using Django
A close second is the world's easiest ORM.
In all seriousness, Django Channels looks to be a very good offering to compete with the async real time capabilities Go/Elixir/Node bring to the table.
https://channels.readthedocs.io/en/stable/
Wish i could get the same money for django as i could for java and id switch today
Maybe it is just hype but I am trying out Elixir. I am interested in the functional programming too so its a win -win for me.
- https://medium.com/@jespr/create-a-simple-chat-web-app-using...
- https://github.com/ssuprunenko/phoenix-vue-2-example
- http://fullstackstanley.com/read/realtime-chat-with-vue-js-a...