Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

Once ecosystem matures (good async db drivers) would be pretty good option for web dev


sort by: page size:

Once async gets finalized and lands will be pretty sweet platform for backend development. (provided community develops enough to support decent size ecosystem).

I have a feeling that Javascript based NoSQL backed web development is going to be just fine in two years. Quite possibly the standard stack for a large percentage of projects.

What's the state on:

- web frameworks / servers ? (ie. is there something like Sanic that is actively maintained ?) I imagine it's too early for a consensus.

- database drivers ? (postgresql is important here. I can live without an ORM)


Maybe Vercel for web, Expo (React Native) for mobile.

Still looking for what the best database-as-a-service is though.


I should note, I'm not particularly concerned with performance. We already have fairly optimized DB code, views, sprocs, indexes etc. This layer is currently sufficient for our needs. So ideally, we would still continue to leverage the SQL-Server. What we need, is to extract business logic from the DB, into application code which is testable. All of this processing is 'batch', we also have options for deploying (Azure, PCF) which can handle issues of scale. I'm more concerned with getting it right, than making it fast. I'm not very experienced with C#, but have experience with Java/Spring web development, and have yet to find any frameworks that allow for rapid development akin to flask or rails. Java/Kotlin is great for back-end dev with spring-boot, but full-stack... not so much. Also, I don't want to manage the complexities of any front-end JS framework-du-jour. I know React, Angular and some Vue. I'm very much of the YAGNI philosophy when it comes to front-end (at least for Enterprise apps). PyPy is a viable option, as I don't see any immediate need to call into C (although this assumption is likely to come back to bite me).

Actix is really great!

You can inject web::Data<T> into your handlers for any dependency you'd like : database pools, config objects, in-memory caches that you populate from another thread.

Serde makes request and response marshalling a breeze.

The websocket support is great too.

We're using it for a couple of high traffic websites now.

The ecosystem needs better SQL tools. Diesel is too ORMy, and SQLx has rough edges around connection pooling. But these aren't show stoppers, and it'll get better.


When discussing server side web dev, I think the most important aspect is the ecosystem and libraries/frameworks available as much as the language itself.

> Rust, Kotlin, Swift, ReasonML/ReScript/OCaml, Haskell, Elm or Clojure?

OCaml is an excellent language depending on what you are intending to do. I can't imagine though that it would be a pleasant generic server side.

From a very quick search, it looks like to even connect to Postgres you'd have to manage yourself the connection pools ? https://medium.com/@bobbypriambodo/interfacing-ocaml-and-pos...

The same would apply to most languages on your list, except perhaps Clojure who has an excellent ecosystem thanks to the JVM. But then, is Clojure a good webdev language ? maybe ? I only toyed with it for a very short time, but I don't see it on par with PHP or ruby for instance.


I would use Elixir (Phoenix + liveView), to me its the most productive stack for web apps at the moment.

You can have SPA like user experience without building a separate frontend & backend. That simplifies things ALOT!

For data persistence, I would consider SQLite otherwise go with Postgres.


With support for MySql, MongoDB, and Redis on the DB side :)

Backend

.NET Core on Linux - Works really well, C# is a great language and quite performant too.

EKS/ECS on AWS with spot instances - works out pretty cheap

Cloud DBs like Aurora or DynamoDB

React for frontend, because of how many libraries are easy to get for it.


I have a lot of flexibility. I am equally comfortable finishing up in c#/asp.net or starting over with bootstrap.  I have a contract for a certain amount of money+equity to deliver a working web app, and then we are back to the negotions table where my next proposal will be for the mobile apps.  As for sql server, i think cassandra, mongo, redis, will work just as well. I'm considering using the c# to js compiler currently mentioned on the front page to serve my api to reuse some of the work that has been done. Time constraints aren't anything to worry about, and it would take me an equal amount of time to restart or flesh out the asp.net app.

Java and Postgres. For large numbers of devs, this is a very intuitive stack they have lots of experience in and can get work done super quick. Also won’t have to rewrite later because good performance. I’d stay away from depending on any vendors for anything except a VM to bring your servlet container up on.

I'm in the same situation. I've never really written a DB-backed web-based application, so I'm starting down that road. Been working mostly on C++ distributed multi-threaded servers with lots of asynchronous network communication.

I'm a big Perl fan and am comfortable with its object-oriented model so I've chosen to use it. Here's the environment/tools I've settled on so far: Apache on Linux (primary platform, might try to make sure works on Windows too); mod_perl 2 in Apache pre-fork; PostgreSQL 8.x for back-end; Rose::DB for DB persistence layer (apparently easy-to-use ORM, allows many-to-many relations unlike various other Perl-based DB layers); Template-Toolkit 2 for web template environment; going to layer on JavaScript later ... not sure which library to use yet.

To some this may not be the ideal environment or the most current or most up-to-date set of tools. For me though it seems the quickest way to seriously explore and understand web issues.

I have a big hole in my software experience where several web apps should be, and I need to fill it with something. Might try Django or some other Python tool later. I'd actually like to try Twisted some time (asynch Python network engine, not web-specific).


We're using ASP.Net MVC2 with Mongo DB as well. So far the experience has been fabulous. Even more so considering that the entire development process from coding to deployment has been done completely on Linux - giving us more flexibility with deployments like being able to use Varnish for caching, etc.

We spent three weeks evaluating Rails, Flask and Django for the app, and the team had experience with all three tools. The risky move to a statically typed, compiled environment paid off because of a solid IDE and good surrounding tools.


Not making a lot of moolah but here is the current iteration:

- HTTP API: Rust, type checks are really useful as web apps are often just messaging. Not being able to cleanly assert JSON structure in dynamic languages started to become an issue.

- DB: SQLite. Not having to manage servers, and just “click to open in GUI” on Mac OS makes development easier.

- Hosting: Google Container OS, Docker, regional disk replication. Every SQLite tx commit is replicated to two zones, the db is incrementally snapshotted hourly.

- UI: TS, React, MobX. Got tired of Reacts state APIs changing every year so just froze on MobX.

- Editor: IntelliJ. I am happy to pay monthly to not deal with plugins. Search is very fast and type aware. Works with all languages with the same shortcuts.


Thanks, I think I will go with NodeJS.

It really depends on the use-case. Async Python is nice for IO-heavy APIs If CPU-heavy workloads are likely, I'd probably look into using go.

In terms of FE, it really depends on the skill-set in the team. I went for Vue over React when we had to have a bunch of backenders whip up a FE simply because it's more opinionated and we didn't want to have to make as many choices when getting started. Also, just rendering HTML on the server side can still get you a long way

For the DB, again, it depends on your use case and what your data-model looks like, but I think a relational DB like postgres is a safe choice 99% of the time. You might need to couple it with something else on occasion (I've reached for elasticsearch more times than I can count)


Its awesome, makes you wanna write actual webapps instead of using the backend just for db queries

I've written backends using C#, PHP back in the day, a little bit of Go, Java and naked SQL, and I prefer Typescript language and npm ecosystem, hands down. May be not for writing highload distributed systems that are critical at RAM & CPU, but IO-heavy business logic where managing requirements and their changes is the hardest challenge, it's a godsend.
next

Legal | privacy