Hi everyone
I would like to discover new things/technologies. So, my question is if you need to create a new project (web and mobile), what technologies would you potentially choose for backend/front-end and mobile?
Thanks for sharing!
Again and again I see young developers asking the same question and making the same mistake.
Technology stack for businesses is like politics for engineers.
In other words - it doesn't matter. Moreover, you can't answer that question without more information about a project.
Business requirements, budget and a team experience first > tech stack second and never vice versa.
Only those questions will determine a tech stack:
If you goal is to have fun, build own project and not a business, and you want to dicover something new, then again, it doesn't matter. Take whatever you don't know and jump into it.
For mobile apps - native tools always should be used, i.e. Swift 3 for iOS and not hybrid crazy JS everywhere.
For back-end I am using PHP7 because it was made for that simple use case and because I am working with it for almost ten years. For front-end I am using vanilla JS (ES6 now) since it is a powerful and simple tool to script the browser and it is the only way to "speak to browser". With solid knowledge of these technologies you can move mountains and you are always flexible, may add as many abstraction, frameworks and libraries on top of it any time.
For a website without server side rendering.
Most of the rest is just tooling and utility libraries.
Well, it will depends on the values we want to deliver to the customers. Today, Single Page Web Application is on rise because SPA eliminate page refreshing behaviours in the browser when the user navigates from one view to other views through performing actions on the page (e.g. click buttons, links, etc), which in turn delivers desktop-like experience to the user. A web SPA also opens opportunity to the team to re-use the codebase by building it into hybrid mobile android/iOS applications or even as cross platform desktop application that runs on Mac/Windows/Linux machines. This would help your team moving faster delivering your front end solutions to your customers which use variaous devices.
Personally, I'd like to follow on this trend due to its advantages and the stacks that we can use to deliver this experiences are Angular.js, Angular 2 or Reactjs. As for building the web SPA into desktop application, we could use Github Electron to achieve this. Ionic Framework v1 , v2 or React Native can be choosen for producing hybrid mobile application that runs on iOS & Android phones/tablets, from the webSPA's codebase.
As for the backend App (API) development, personally, i'd like to use backend development stacks that could free me from setting up & maintaining servers/ containers either on cloud or on premise. Today, we do see such this stack: The Serverless framework. This framework will allow us to deploy our Web SPA files into AWS S3 Bucket and host it in there without require us to setup express, apache, IIS servers (because AWS S3 Bucket can host static webpage & web SPA app now). Also, the framework could help us simplifying our efforts deploying our Node.js Backend logic by hosting our logics on AWS Lambda. During the deployment, it also prepare endpoint routes to each of the deployed AWS Lambda functions, by defining them on AWS API Gateway. Thus , it freed us from setting up our own EC2 in AWS or setup Nginx Reverse proxy as our API Gateway. Serverless & AWS Lambda + API Gateway get our jobs done on this part.
Back end/Front end: Node.js, TypeScript + Babel, React + Redux, redux-saga, Immutable, Redis, Postgresql, Amazon Web Services (Elastic Beanstalk, Lambda, S3, SES, VPC, RDS, Elastic Cache, Route 53, CloudFront), webpack (only for lack of a better alternative)
Mobile: Probably React Native.
Lately I've been investing my time in learning VueJS 2.0. I think it's something that can easily be used in a wide variety of projects. Especially since Vue 2.0 supports server side rendering (with streams!). Then for feeding the application data, I'd go for GraphQL with Apollo.
My preferred technology stack would then be:
Well as @rajkumarpb said depends, but for me more or less:
Well, this is the kind of generic questions, which put you in bad mood! Still, I would like to give you an answer.
It depends!
It depends on lot of factors. Size of the team, Complexity, cost involved and lot more which vary based on the company!
For example, for a freelancer, who is familiar with PHP, he would prefer to go with PHP with any JS MVC Framework with Bootstrap/Foundation to cover mobile aspect!
See, as I said, it depends! Try to give out more information next time you ask a question!
Nick Redmark
Cofounder of eLiveness
Meteor functionality minus meteor magic.