Unless the objective is to learn - then picking the one that you know best is not a good strategy :)
Most of my applications are built using Perl and the excellent CGI::Application module/framework.
I've used Dancer a couple of times, but that tends to be for smaller applications, and it has to be said that the last remaining dancer application I used in production was replaced by a port to golang this morning. Partly for a fun learning experience, and partly to simplify deployment.
For new projects, if they were small and self-contained, I'd probably gamble on golang. If they were more complex, or I was in a rush, I'd use Perl.
Mojolicious is my preferred Perl framework.
Except for perhaps an unfortunate name it was an interesting project. I can see that all links to it doesn't work anymore..
My recollection is that modules that are removed from CPAN are still mirrored, so they should still be available, but I admit I've not checked recently.
http://backpan.perl.org/authors/id/S/SK/SKX/
Why not put it back on Github? I always find it interesting to look on other projects when I have an idea etc. Deprecated or not.
I am getting tired of puppet/ansible and dream of the pure Perl + Shell world I used to live in. :)
Besides the actual functionality, that you can also get from smaller libraries, you want a framework because it gives you standard go-to solutions for many common questions you encounter when making a basic, relational database backed application (database access, database migrations, templating, forms, validation, caching, translation, etc.)
(If you don't know the ORM well, its easy to let it generate a LOT of queries, have you added django-debug-toolbar to your project to see what it is generating?)
- It depends on what you are trying to build. Basic web app can be anything from a Trello clone to Instagram. Each has it's own limitations.
- Go with what is tried and tested. Pick up something that is supported, where if you get stuck you can reach out to people for a fix. One of the few good things of the clusterfk that the current JS ecosystem is is that many many amazing developers who are extremely responsive to questions are part of it. That makes life just a little bit easier.
- Use what you are comfortable with. Prefer a proper backend and frontend? Go for it. Everything in NodeJS is your cup of tea? Works just fine. In the end happy developer = productive developer. Just because assembly is 1000 times faster than Python does not mean you should code in assembly. Pick your tradeoffs.
Whenever I write a check or sign and date something, that's how I write it.
https://s3.amazonaws.com/stackabuse/media/date-formats-world...
Working with a global company, I tend to use 29 Mar 2018, which is much more unambiguous (and in code we usually use yyyymmdd, which makes it easier to search for logs/output of a year/month/day etc.).
I've worked on pure PHP, Flask, Pyramid, Django, Laravel stacks, and I haven't warmed up to any of those. I'm in the vocal minority that says Django made me hate Python.
So here's my stack for 2018: Elixir+Phoenix on the backend, GraphQL as API protocol, React (and Typescript?) on the frontend.
Functional and immutable language on the backend + functionally-inspired data flow on the front end? Yes, please.
Now, if I could have monadic constructs and better typing on Elixir I'd be in heaven.
Regardless of your stack, use ISO 8601 for dates.
Playing devil's advocate here. This kind of date formatting is really confusing to me (German) and I almost overread that the question asked for the current en vogue tech...
You, me, and most of the world outside the USA. Check out the map here: https://en.wikipedia.org/wiki/Date_format_by_country
Are you suggesting to use ISO 8601 format to display dates to users instead of the users local or preferred format?
As such, you shouldn't be too strict about what you feel is the "logical" way of doing things.
Anyway, according to alexa, the great majority of HN readers are from the US - https://www.alexa.com/siteinfo/ycombinator.com
57.5% is not a 'great majority'. It's only slightly more than half!
> we can't expect everybody to be cognizant of that fact
That's why I remind people. Use international standards/formats and be less insular. (And FFS, go metric ;)
Yes, be less insular too... however please try to do it in a non-snarky way that won’t provoke the other human beings.
Frontend - Plain HTML/CSS/JS
Backend - Node, Express with Nunjucks for templating
If I want to get a bit fancy:
Frontend - Vue, Bootstrap4
Backend - Node, Express, Nunjucks
DB - SQLite3 using Sequelize as ORM
Surprisingly, you can accomplish lot of stuff with the second setup.
If im going to deploy to production:
Provider - Either small DO droplet ($5.00) or tiny AWS (free)
Webserver - nginx as reverse proxy for node (free)
Firewall - UFW (free)
Email - mailgun (free)
Domain - namecheap (depends on domain name. $10.00/yr more or less)
For a basic setup you wont need any scaling setup (CDN, load-balancer and whatnot) which like what, 99% of the time?
For me its ejs over nunjucks. Mysql, and no ORM. I'd also probably use something like elastic beanstalk vs piecing it all together myself - to keep things simple.
And I'd use sendgrid over mailgun, primarily for deliverability but also I find their service/api/dashboard very user friendly.
If taking payments I'd use stripe
I hate working on code where some systems engineer from the 80's thinks they're big and bad and can code an awesome website using just propel + plain php and then expect every new dev to just learn it and love it as much as they do.
As other commenters say, if you want results, choose whatever stack you are most productive with.
As you say 'basic' web app: I'd recommend using Firebase, if you are comfortable with the vendor lock-in. For auth, database and deployment it doesn't get much simpler than this.
However, if you don't know any programming languages and plan to do "just" web development, WAMP and MEAN stack is the way to go.
edit: WAMP -> (XAMP)
Do you use Swagger or sth. like that to auto-generate the boilerplate from an API spec?
Cheap, "fresh", and scalable in complexity with too many services to mention.
It's easy, plenty of example code available and will get your feet wet in the hyped secdevops which might land you a nice project sooner or later.
Frontend: React + Apollo Client + Netlify
Backend: Typescript + Node.js + Apollo Server (graphql-yoga) + Graphcool/Prisma + Apex Up to deploy to AWS Lambda + AWS RDS
Unless you have very specific requirements, it matters very little; especially if your goal is to push a product
Nowadays there are many options and a lot of them are reliable.
E.g
Rails, PostgreSQL, React
Django, PostgreSQL, VueJs
Phoenix. PostgreSQL, Jquery
Ask HN: What stack would you use to build a CRUD web app in 2018?
https://news.ycombinator.com/item?id=16508965
It has 177 comments and some good meaty answers.
Also go through https://www.tipsindeed.net