
Ask HN: What framework/platform do you use for app development? - Narutu
I have a background in Angular 1, and recently took up Ionic with its Angular 2 implementation, but I feel that there is probably a better, and more intuitive, way to do it.
======
amirouche
I have two prefered stacks:

1) python with aiohttp framework with asyncpg for the backend serving REST and
WebSockets, with a posgresql database, memo (a pure python clone of redis),
celery (but I might switch to something lighter) and sentry. On the frontend I
use, reactjs (but I might move to preactjs because of the license) with a
custom redux-like framework built on CRA with async/await support and optional
ImmutableJS dependency. I call it the 'django2' stack.

2) GNU Guile Scheme with fibers (which brings asyncio, but still lakes
websocket support) for the backend. Database is built on top of wiredtiger
glued with Guile again using EAV pattern that I call the feature space (it's
somewhat similar to MUMPS and datomic, some call it RDF store). On the
frontend, I use a simiar framework but written in Scheme powered by BiwaScheme
(I plan to move to RacketScript). That stack is missing a lot of features
(queues for background job scheduling, proper pooling of database connections,
websockets). I call it the 'mono' stack, because everything lives in a single
processus. NO GIL FTW!

None of them support true isomorphic (or universal) web app. Even mono stack
which only rely on scheme doesn't support it. That said I can render backend
side the same thing that frontend renders and achieve the same goal without
the elegance.

------
borge
For SPAs, I mostly use ClojureScript with reagent and re-frame nowadays.

Reagent is a ClojureScript wrapper for react, and re-frame is a library for
state management, where you dispatch events kind of like in redux.

It's most productive and intuitive environment I've come across. Very little
boilerplate. I haven't tried serverside rendering with it though.

There's also re-natal if you want to use react-native, but I haven't tried
this either, so I can't vouch for it.

~~~
amirouche
Why not om?

------
alistproducer2
I usually start with WordPress because of the mature plugin ecosystem. Most
really difficult-to-implement features are available as free or cheap (<$100)
plugins. Couple that with the fact that most plugins are designed with
extensibility in mind via WP's hooks and actions (callback system) and there's
not much I haven't been able to get done in a fraction of the time compared to
starting on a different platform.

~~~
GeneralMaximus
What are the kinds of things you're building with WordPress?

I'm curious because I run a couple of WordPress blogs, and I recently realized
I can do a lot with the platform beyond just blogging.

~~~
alistproducer2
I've used WP as an access control middleware on a electronic health records
project and I'm currently using it to build a electronic contract SaaS
platform. As a concrete example with my e-contracting app, I was able to get
account management (changing passwords, deleting accounts, etc.) by using the
Ultimate Member plugin. It would've taken me at least a week of coding to
build this from scratch.

~~~
GeneralMaximus
Thanks for your answer. I would've never thought of using Wordpress for those
applications.

Where would you direct someone interested in learning more about how to extend
Wordpress with plugins, themes, taxonomies, custom types, etc.? I'd mostly
like to use it in CMS-like roles for personal projects.

~~~
alistproducer2
I've learned how to build and extend plugins via WordPress.org. I've also
spent a lot of time just digging through the source. Combine that with SO and
that's been how I've come up to speed. I do remember a good book from back in
the day called "digging into WordPress"

------
eranation
YMMV as they say, but in case you want anecdotal subjective recent
experience... I had fun (most of the time) working with Angular 2 (now 4 to be
accurate) in the frontend and fully serverless on the backend. (I can't
compare to working with React and its ecosystem, but I plan to try it soon...)

For more classic apps, and this is just because of my past experience with it,
I use Spring Boot with Thymeleaf. Once you get used to the idea of 100%
serverside rendering (even for "ajax" stuff) it is one of the more productive
frameworks I worked with. Much have changed, more convention over
configuration, no need for XML config files. And I can use Scala / Kotlin and
I assume also Groovy with it (although Java 8 is working for me most of the
time)

For simple UIs, the 2nd option was way faster, surprisingly I didn't see any
significant performance differences between the two approaches. The Spring way
for me was much more straight forward, but again, I worked with Spring for
ages...

------
iamjk
@Narutu it is unclear from the question whether you mean mobile app
development or web app development.

------
burntrelish1273
Mobile/desktop:

ionic, electron hybrid native/web apps start. Eventually native when unified-
platform dev technical debt exceeds benefit.

Web preferred:

FE: Vue, TypeScript, Ava, jsverify, brunch

Surprisingly, brunch scales really well despite being less popular.

BE: Phoenix (Elixir/Erlang), Postgres, Redis, CouchBase, Neo4j, ElasticSearch,
excheck

DevOps/SRE: C, Go and Ruby

Really interested in flexible constraint-oriented FE like Layx which allows
for specifying layout as a system of equations. It's closer to many desktop
auto-layout UI constraints, but programmic instead of pointy-clicky property
editors.

[https://github.com/layxlang/layx](https://github.com/layxlang/layx)

------
flukus
For my personal stuff lately I've been using GTK and ncurses, re familiarizing
myself with c after 10 years in higher level languages. The simplicity of c
and ncurses is simply amazing, this is how programming should be taught to
beginners.

At work, mostly WinForms (c#) and some MVC with the godforsaken devexpress
framework.

------
randomerr
Here's the general answer you get: The best tool for the job.

My personal answer is that I like populating a template with server-side JSON
(Newton JSON library and MVC on .NET or NODE.JS on other platforms) For the
front end I usually use HandlebarsJS or a custom script using jQuery.

------
forkLding
IOS:

IOS Swift + Firebase/AWS

Web:

MEAN stack (a bit outdated, I know)

------
miguelrochefort
Xamarin

------
smt88
This question has been broadly answered in an annual survey called State of
JS: [http://stateofjs.com/](http://stateofjs.com/)

