I love it. But seeing this now, in 2017, is a bit depressing to me. For the last 15 years Microsoft has been putting out the same RAD tools, but based on ASP.NET/C#/Visual Studio. Things like drop-in provider-based OAuth, editing versioned database projects, WYSIWYG UI, etc. Publishing to the web, even the flow of clicking on a button to edit its handler looks like it was based directly on Winforms which is a 12 year…
I am the developer of Solvent IDE, which attempts to tackle this problem in a comprehensive way, ie from the ground up as a platform: http://codesolvent.com/web-dev/ It is not as easy a problem as it seems...beyond the technical hurdle, a major obstacle is developers :) While you like this paradigm, I am afraid a lot of developers generally scuff at these types of products.
Anvil: full stack web apps built only with Python
171–180 of 207 posts
Re: Anvil: full stack web apps built only with Python
#172I love it. But seeing this now, in 2017, is a bit depressing to me. For the last 15 years Microsoft has been putting out the same RAD tools, but based on ASP.NET/C#/Visual Studio. Things like drop-in provider-based OAuth, editing versioned database projects, WYSIWYG UI, etc. Publishing to the web, even the flow of clicking on a button to edit its handler looks like it was based directly on Winforms which is a 12 year…
I am the developer of Solvent IDE, which attempts to tackle this problem in a comprehensive way, ie from the ground up as a platform: http://codesolvent.com/web-dev/ It is not as easy a problem as it seems...beyond the technical hurdle, a major obstacle is developers :) While you like this paradigm, I am afraid a lot of developers generally scuff at these types of products.
Re: Anvil: full stack web apps built only with Python
#173Earlier quoted context omitted.
> Why aren't there more of these things out there? There are a few - I did like the MS PowerApps recently. But these things work well in an enterprise environment where "works" is important, but "users don't want to kill themselves during interaction" is not. These tools are usually great at putting together a quick CRUD app that fits requirements. But they're typically not flexible enough to give you that finished a…
"users don't want to kill themselves during interaction" - touché :) I agree with you, but taking the create-react-app example again - I can very quickly scaffold a react app with necessary toolsets, built on top of webpack. This gets me up and running without having to mess with webpack config. At some point, I need to break out of these opinionated guardrails and do my own thing. At that point create react app has…
A much more interesting approach is to acknowledge that your system will always be incomplete, and provide ways of using more complex external features without abandoning simplicity for the other 90% of your project. We call this pattern an "escape hatch", rather than an "ejector seat", because you don't need to jump all the way out at once.
Anvil has escape hatches all over the place:
* If you need to use code (or hardware) outside our server environment, you can use our Uplink library to connect arbitrary code anywhere in the world to your app - but you still get our drag'n'drop front end and seamless RPC. (You can even use our built-in database from uplink code.)
* If you need a browser feature we don't support yet, you can call to/from Javascript with our FFI - but you can still wrap it up in a Python form and use that from our visual designer.
* If you need to use a front end that isn't built with the Anvil UI toolkit, you can expose Anvil server functions as REST endpoints and use them from your {iOS|Android|vue.js} app. But you can still use those same server functions from Anvil client code, with full autocomplete.
* If you need direct textual access to your source code, or to do advanced version control operations, or to do CI/CD, you can clone your app as a Git repository. But the moment you push those branches back up into Anvil, you can edit your app with all our tools. (The editor will happily represent Git histories that it cannot [yet] create itself.)
Give me an escape hatch over an ejector seat any day.
Re: Anvil: full stack web apps built only with Python
#174This looks really really cool. In the 90s we had RAD tools like Delphi or Visual Basic which allow you to create simple apps very quickly. I feel that we are missing RAD on the web these days. There are so many different moving pieces. To do a full modern web app you need to learn different languages and frameworks plus other technologies for hosting such as containers or AWS, etc. That might work for complex apps, b…
Containers and container schedulers should be employed when it’s harder to not use them, at which point you can afford full-time SREs.
Re: Anvil: full stack web apps built only with Python
#175Earlier quoted context omitted.
Honestly, we would absolutely love to open-source it! The issue is that we're a bootstrapped start-up, and it's rather difficult to make open source pay the bills, even if it becomes huge (see, eg, Docker's troubles). By charging for the product, we can claim some of the value we create, and be sustainable so the platform stays around.
For a counter-example, see RedHat :) I can certainly understand your position, but it isn't impossible to make money from Open Source. One approach to get some funding might be a KickStarter or Patreon type offering. (Or a combination of both). You also have your hosting service. Just some ideas, there are lots of open source business models- good luck whatever you decide.
I'd also discourage a patreon- or kickstarter-style offering for a B2B product, because it signals very clearly that you're not playing with the big fish.
Re: Anvil: full stack web apps built only with Python
#176Earlier quoted context omitted.
"users don't want to kill themselves during interaction" - touché :) I agree with you, but taking the create-react-app example again - I can very quickly scaffold a react app with necessary toolsets, built on top of webpack. This gets me up and running without having to mess with webpack config. At some point, I need to break out of these opinionated guardrails and do my own thing. At that point create react app has…
As a rule, I'm not a fan of the "Eject button" pattern. It's an admission of defeat. It says, "because you needed one advanced feature, I am now dumping you into the Wild West I was previously protecting you from. Good luck!" A much more interesting approach is to acknowledge that your system will always be incomplete, and provide ways of using more complex external features without abandoning simplicity for the othe…
It sounds like these features go a long way toward addressing the concerns people had re. my parent comment. You can provide custom frontend or backend code with sacrificing too much of the power of Anvil.
Re: Anvil: full stack web apps built only with Python
#177So I've been working on a python flask web app in part time/spare time for my business for almost two years (in addition to running a company doing several million USD in sales over that time without the app.) In that two years, I've tracked my programming time with wakatime and I'm at >1000hrs now, more than 25 full-time 40hr work weeks of actual coding time. I'm running the app on a dedicated GPU server, as part of…
With AWS Lambda, Python, AWS Cognito, Postgres and ReactJS I can build large scale complete applications.
I think I'm vastly more productive today than I was then. That's partly a function of being a much better programmer in general, partly about now having developed expertise with my chosen technology set.
There's no way I'd go back to something as bare bones as Bottle or Flask any more. If I had to use a Python framework I'd look at a batteries included system like Django. As I say however, I've settled on Lambda, Cognito, Python, Postgres and ReactJS. I've done the hard yards... years of learning and many thousands of lines of code written.
>> Need to subclass and override much of it to finally have something usable.
This is really not something you should be spending your minimal available programming time doing.
Re: Anvil: full stack web apps built only with Python
#178Earlier quoted context omitted.
Ok, so I can run 3.6 code on the server and return the output? As Py2 is EOL in about two years it feels risky for anything to be built on it.
That's exactly what you can do! If you open up a Server Module, you'll see a drop-down in the top-right. That will allow you to select a Python 3.6 runtime. The client-side code is Python 2 only for now, but we're already upgrading our Python-to-Javascript compiler to include Python 3 syntax.
Re: Anvil: full stack web apps built only with Python
#179Earlier quoted context omitted.
For a counter-example, see RedHat :) I can certainly understand your position, but it isn't impossible to make money from Open Source. One approach to get some funding might be a KickStarter or Patreon type offering. (Or a combination of both). You also have your hosting service. Just some ideas, there are lots of open source business models- good luck whatever you decide.
RedHat was bought and incorporated by a pre-existing business. It wasn't bootstrapped. I'd also discourage a patreon- or kickstarter-style offering for a B2B product, because it signals very clearly that you're not playing with the big fish.
As for signaling, one would not have to use those providers if they felt it did not fit their brand, and could roll their own platform. But if signaling that you want to "play with the big fish" is what one wants, most companies hire sales team who go out and play golf with prospects. Having an open source product and using other forms of funding certainly does not preclude doing that. (Though being a small bootstrapped business might make it more difficult).
Re: Anvil: full stack web apps built only with Python
#180The world does not need more interpreted languages on the backend.
Visual UI layout is cool for beginners but almost useless for serious projects. Plus if you're a beginner (or a non-programmer) maybe an existing CMS is better? e.g. WordPress.
If a project started with this tool was to ever evolve and get big, I can't imagine that maintaining it will be anything but a nightmare.