Hi all,<p>I feel like I'm behind the trends in building apps. I see lots of new stuff-as-a-service, and need to refresh my knowledge.<p>Could you tell what would you choose for your next app ?<p>Backend / frontend does not matter.<p>Thanks in advance.
It really depends on the target platform, who will wind up maintaining the code (and for how long!), and how the build will be done.<p>But the short version is that I would (and do) favor Clojure for personal projects. These are cases where I have limited time to invest, a high desire for tangible results, and no other developers to worry about. For that set of tradeoffs (and my skillset), this has generally been the best way for me to achieve my goals. (I also have some code that abstract out some patterns I find useful or importatn.)<p>In these sorts of projects, if I need client side code, I'll tend to favor straight JavaScript (with markup rendered by Hiccup) if I can get away with it, and ClojureScript/Reagent if I have a requirement that implies a need for client side logic. (Tolerance of lost network connections, incremental page update, and the like.)<p>For more commercial projects, I'd be thinking TypeScript/React with a Java (JVM?) backend for starters. I'd also be open to Node or Python for the back end, but it really depends on the skillset of the team and where the best libraries are.<p>And all of this would be done with an eye towards the exit. Any codebase that has a reasonable life expectancy will likely have to at least interoperate with other language ecosystems, if not incorporate them bodily. Being mindful of how that might happen is important. (Which practically speaking, means decent interface definitions, testing, and the like.)
Web:<p>If I'm paying: Wordpress, LAMP, vanilla JS, MySQL, and PHP<p>If I'm maintaining: Ruby on Rails, PostgreSQL, JQuery, ReactJS<p>If I'm building a resume: Either C# or Python, SQL, and Javascript, hosted on either AWS or Azure.<p>Mobile: Swift/iOS and Java/Android both.
For the frontend I always use Nuxt, which is a server side rendered flavor of Vue. Vue just makes sense to me with how it handles markup, styling, and code in a single component’s scope. The only time I really make use of Vuex, the Vue solution for Redux, is if there’s user data that I need to share into other views.<p>For backend I’d want something either rock solid and fault tolerant like Elixir, or very speedy like Rust or even Go. Kind of depends if I’m doing this in my own or with others.
For quick proof of concepts<p><i>Backend:</i> Flask -> MySQL -> Docker -> Digital Ocean<p><i>Frontend:</i> Vanilla JS + Bootstrap or VueJS + Template<p>Have yet to fail me. It makes for easy transition once things get serious and I want to migrate over to GCP/AWS
frontend: Vue
Backend: Golang/Laravel
PostgresQL database<p>No SPA. I use server side templates and just call the vue components in them as needed.
After 5 years on iOS/Android I wanted to build a cross platform desktop app. I came up with an idea (make thermal label printers a joy to use) and started hacking a proof of concept using <a href="https://github.com/electron-react-boilerplate/electron-react-boilerplate" rel="nofollow">https://github.com/electron-react-boilerplate/electron-react...</a>.<p>It’s been an incredible learning process, super laborious and an absolute joy to see people buying my app and emailing with questions and ideas.<p>I’ve had to learn React, modern JS development, semantic UI, redux, native node modules, maintaining a cross platform build system, publishing on app stores, selling direct and building my own license system using react/express/graphql/jwt not to mention auth, and other APIs, deployment to Heroku... the list goes on and on.<p>Check out my app at <a href="https://label.live" rel="nofollow">https://label.live</a>
I'd like to use BCHS[1] next time around.<p><a href="https://learnbchs.org/" rel="nofollow">https://learnbchs.org/</a><p>I want something that's simple, and reasonably secure by default so that if the crap I build turns out to be insecure, it's my own damn fault.
I'm working on a new frontend framework, as well as a couple of applications that make use of it: <a href="https://github.com/maxharris9/layout" rel="nofollow">https://github.com/maxharris9/layout</a><p>One of my goals is for my framework to compete with Flutter. So why not just use Flutter? Two reasons: Flutter's API is object-oriented, and Layout's is functional. I also prefer a declarative style for specifying views, but can't stand Babel's bigness/slowness, so I built a JSX transformer (<a href="https://github.com/maxharris9/jsx-layout" rel="nofollow">https://github.com/maxharris9/jsx-layout</a>).
My current swiss army knife is Rails+Vue for web/api, plus React Native for mobile if necessary.<p>Of course, I'd use something different if the project necessitated anything in particular.
Getting it done:<p>Frontend - Typescript/React + miscellaneous libraries. Maybe CSS compiler, maybe raw CSS.<p>Backend - I'd use C# and .NET but that is for reasons of familiarity. I would also be comfy using NodeJS but I prefer the comparative sanity of C#.NET.<p>For Fun:<p><a href="https://safe-stack.github.io/docs/overview/" rel="nofollow">https://safe-stack.github.io/docs/overview/</a>
Web/services and keeping it boring and basic:<p>Aurelia, Mongo, HAProxy, Nginx, Express, Redis, ELK, Ansible<p>Depends on the dependencies, some things I need have very great implementations and support in golang (network traffic, routing).