Live data from Hacker News

Ask HN: What tech stack would you choose for a serious, long-term business app

news.ycombinator.com

1–10 of 80 posts

Ask HN: What tech stack would you choose for a serious, long-term business app

#1
If you were about to start building a very vital brand new application for your company that needs to be maintained long term what tech stack would you choose? Put aside what devs at your company may already be comfortable with and lay out what you think is best.

When I ask tech stack I'm talking the whole dam thing, for example:

DB engine : ie MySQL, Postgres

API layer : ie Node w/joy, Java w/spring, PHP w/laravel, Elixer w/phoenix

Frontend SPA : ie React, Vue (do you use typescript or flow, webpack etc)

Caching : ie Redis, Mongo

PaaS : ie AWS, Google, Azure

Interested to hear your thoughts, and don't want any flame wars stating x is always better than y etc.

Feel free to just specify the stack but better to also back up why you think it is best in a few sentences.

Re: Ask HN: What tech stack would you choose for a serious, long-term business app

#2
1. Tech stack has to be decided based on functional requirements (real-time chat, less-write but read-intensive etc) and non-functional requirements (concurrent connections to support, regulatory compliance requirements etc).

2. Any serious business system (not just one app) will have multiple tech stack.

3. In the long term tech stack has to change depending on the changing business needs.

Assuming a whole lot about above 3 points, choice could be postgres, python, react, aws. Purely because they are battle tested. Any discussions about their merits are moot without knowing requirements.

Re: Ask HN: What tech stack would you choose for a serious, long-term business app

#3
Your first mistake is that you limit yourself to what's "in", rather than what gets the job done "properly".

For serious long term business apps you want to use multiple technologies that all integrate with each other, where each are used for the tasks they suit best.

Re: Ask HN: What tech stack would you choose for a serious, long-term business app

#4
Answer for your given question: Java + Oracle. They'll both be supported by legions of enterprise devs until shortly before the heat death of the universe.

Real answer: it depends. You've told us nothing about your application's business requirements, operating environment, or staffing availability.

I'd also caution on the idea "put aside what your devs are already familiar with" - different tech can give you different velocities, but either you accept a much lower velocity for a long initial period while your team spins up OR you accept a significant recruiting cost to hire new devs & teach them enough about the business to make good decisions.

Re: Ask HN: What tech stack would you choose for a serious, long-term business app

#6
As we're talking business and long lifetime...

First point: nothing Microsoft. Done that show for 20 years and been through all the marketoid schizophrenia promoted rewrites for no business value. Now the new "start again" is .Net core and a big chunk of stuff just isn't portable and never will be. Plus the price gouging, licensing hell etc when you have to scale up. Entire ecosystem is a wasteland of unmaintained crap and automation prospects are terrible. Forget it at this point. I'm done.

At this point, I'd pick Java + Spring + Postgres + CentOS. Does most of the stuff you need out of the box, good support available, long product lifespan, well maintained, possible to automate everything. No SPA, just old fashioned dynamic pages with light weight in house JS framework that does partial page replacement, simple validation etc via DOM. Not even jQuery which has been nothing but hell to upgrade so I'm loathed to pick anything more complicated.

PaaS: none. Either in house or old fashioned colo, with HP hardware. If you have to go PaaS, then AWS which seems the most glacial in deprecation so far.

Edit: also desperately avoid any non portable abstractions and vendor specific features. They will ruin you. For example when someone suggests a database engine, hide it behind hibernate and only use the hibernate API!

Edit 2: it is important to assign an exit cost for every decision as well. What's true now is not going to be in a decade.

Re: Ask HN: What tech stack would you choose for a serious, long-term business app

#7
The stack should be chosen based on the requirements, not just "needs to be a long term application".

Honestly I echo the Java suggestion plus a rdbms. You have a big talent pool, it's well supported and "enterprise stable", and it's multiplatform.

Re: Ask HN: What tech stack would you choose for a serious, long-term business app

#8
post #4

Answer for your given question: Java + Oracle. They'll both be supported by legions of enterprise devs until shortly before the heat death of the universe. Real answer: it depends. You've told us nothing about your application's business requirements, operating environment, or staffing availability. I'd also caution on the idea "put aside what your devs are already familiar with" - different tech can give you differe…

I'd like to second the important of staffing. If we were in a perfect universe we could use domain oriented languages for every project because devs would be familiar and competent with them. Obviously that is not the case.

Re: Ask HN: What tech stack would you choose for a serious, long-term business app

#9
Tech or nontech business? Engineering driven org or not? Size of org? Structure of existing team? Relationship of this team to other teams? Overall structure of org? Hiring strategy? Where in culture spectrum does your business require you to be?

Re: Ask HN: What tech stack would you choose for a serious, long-term business app

#10
DB: Postgres

API: Ruby on Rails

Frontend: React, the react_on_rails gem to set up webpack, Flow, Redux, Immutable.js

Background Jobs: Sidekiq and Redis

Caching: Memcached

PaaS: convox (on AWS). See: https://convox.com and https://github.com/convox/rack (But you should start with Heroku.)

I recommend the Rails stack. It's not the "hot new thing", but it's very stable, secure, and productive.

Post reply on HN