I am starting a new web development project. Should I learn Django which has multiple components or something like Anvil which is strictly Python? Which one would be faster in terms of loads? Is Anvil scalable? Not sure how to approach this. Let me know if anyone has done this or has any insight. Thanks.
What kind of web application are you building? This might allow folks to be more specific with their answers.
People around here feel that Anvil is pretty hard to beat. Anvil is a paradox: easy to use and incredibly powerful.
…cue the outpouring of love for Anvil .
Let’s just say, I’ve written a few django apps in my time (and Ruby on rails and .Net apps too). I even once gave a talk at DjangoCon Europe on why I thought it was the best choice available to me at the time.
I won’t be going back to any of them any time soon!
Ditto on the question about the type of web application.
I’d pick Anvil over anything else for a web app that doesn’t need to be indexed by search engines, hands-down. My level of productivity is far higher with Anvil than with any other framework I’ve tried, in any language.
If I needed more of a CMS site with public pages that should be indexed by search engines, I’d go with something other than Anvil. Anvil’s lack of non-hash based URLs makes that sort of site problematic, at least for me.
My current project is a combination of a site that must be indexed and a web app that does not. The site doesn’t need to be modified by anyone but me, so doesn’t need a web based CMS, so I’m using a static site generator for it. Then Anvil is being used for the web app.
If you are not an expert in all the things listed above, I strongly advise you to start with Anvil and stay with Anvil.
Trying to be a full stack developer without being an expert on all the steps is fun (that’s why I tried it), but has a long learning curve (that’s why I use Anvil, I like to use my time being productive rather than managing all the moving parts), and cutting corners can be dangerous (knowing that a team of experts is keeping the Anvil framework secure feels safer than trying to keep up with the vulnerability of the day)
The web application would be based on algorithmic trading of different asset classes (stocks, bonds, commodities, crypto, etc.) using machine learning and AI to predict direction and rank those assets according to probabilities.
Wow, a lot of great replies from everyone.
@owen.campbell very powerful statement you made about Anvil.
@jshaffstall the site would not be indexed so Anvil should fit the bill.
Servers speak http(s).
Databases speak sql.
Etc,etc, you get the gist.
You drag and drop UI components and write python code, Anvil translates your drag and drops and your python bits to whatever language / protocol / technology each bit needs to be translated to.
I definitely understand that impulse. My difficulty in following it lies in the sheer number of layers, and the complexity of the connections between them. Ultimately you end up at the hardware level, only to discover that, since SPECTRE et al, even that can’t be guaranteed.
As a practical matter, there is usually some horizon beyond which we have to trust the infrastructure we’re using, to some extent – or not use it. Mostly, that horizon is defined by the time available for learning those ins and outs, in depth. Then, there’s the cost of keeping up with it, because it’s constantly changing.
This statement in a " Django or Anvil?" post makes very little sense.
If the post was “Django + Skulpt or Anvil?” then I would list all the goodies that come with Anvil and not with Django: graphic form editor, hosting, security, user management, etc. Yes, all those goodies are available in a way or the other in Django too, and with Django you can do much more than what you can do with Anvil, but you have to do it. In Anvil all of those things are there for you to use. It just works.
So, please don’t think of Anvil as a Django with Skulpt. It’s much much more than that.
You’re right, of course. There is much more to Anvil. I meant only to suggest a starting point “If you want (or need) to head down that rabbit hole”.
Meredydd’s recent response in a different thread addresses this concern:
If you go to django, flask, laravel, expressjs, hapijs… forum and ask the same question you will get the same answer, the framework of that forum.
So, I try to give an unbiased answer.
In terms of dev time, nothing beat Anvil. Also, you really feel enjoyable when working with Anvil as well, it just works.
But there are few things to be considered. The cloud IDE, which is awesome, is the only place to code. While you can find some way to code without it, it is quite tricky.
The cloud host Anvil is the only PaaS option, and the open source Anvil require sysadmin skills to manage servers, security update… Good news is docker can be used to deploy anvil app.
Furthermore, the open source Anvil doesn’t have much contribution from the community and if there is issue, a pull request need to sign CLA, which is unfortunately not available now.
Furthermore, I am not 100% confident using the open source Anvil in production given the basic issues it has (for example above link). Http-kit, not a production ready server, is used. It seems for dev, not for production.
So using cloud Anvil for production is the only option.
With django, you are free to choose IDE, cloud providers, most importantly, it is battle tested, easy to find jobs, a lot of book and resources to learn.
So, I use Anvil for line of business apps using inside the company firewall and django for critical mission apps.
Final thought, without Anvil, I cannot make tons of amazing apps fast, easy and enjoyable. I really wish that I can use Anvil open source in production.
It takes days to learn Anvil, but weeks or even months to learn Django. So learn Anvil first.
From UI, UX pount if view, Anvil is much faster since it is SPA.
Yes, with cloud version
After mastering Anvil, working with Django / Laravel / ExpressJs / RoR / Asp core … is pain in the ass. Every line of code makes me miss Anvil.