yoheinakajima / babyagi

MIT License
19.9k stars 2.61k forks source link

Non-Docker? #188

Open z3Nsk1Fh5a opened 1 year ago

z3Nsk1Fh5a commented 1 year ago

Anyone working on a non-docker fork? It's not universally appropriate.

thebigbone commented 1 year ago

What's wrong with it?

z3Nsk1Fh5a commented 1 year ago

Many find it a frustrating user experience. An over-reliance on Docker reduces choice.

I get why it appeals to developers, but for newer users as well as those that do not use it for work; it's overkill and adds unnecessary complexity.

thebigbone commented 1 year ago

The whole point of using Docker is to make the deployment as easy as running only a single command.

However, according to you that adds "complexity" for the user which is quite the opposite of the truth.

z3Nsk1Fh5a commented 1 year ago

Docker might seem straightforward. For casual and entry-level users; it frequently poses more challenges than it solves. The intended simplicity gets lost without the prerequisite knowledge to use Docker effectively and troubleshoot problems.

It has a steep learning curve. Understanding images, containers, networking, volumes, CLI commands, Compose files, etc. is challenging for new users.

A single Docker run command is great but it means little to the people that do not grasp these concepts.

Problems are difficult to troubleshoot. When something goes wrong, users are confronted with an ecosystem they don't fully understand. Troubleshooting networking issues, permission problems, or why an image/container won't start can be difficult.

Breaking changes are common. Updates to Docker, Docker Compose, or images/tools a user depends on can easily break their setup in unexpected ways. This frustrates new users.

It feels like "magic". Docker hides a lot of complexity behind the scenes.

Not understanding what's really happening — leads to confusion, lack of control, and problems down the line as requirements change.

For people just getting started (perspective) with BabyAGI or AutoGPT; the additional complexity and learning curve of Docker only serves to intimidate them, or turn them away altogether.

wolfgangmeyers commented 1 year ago

Docker might seem straightforward. For casual and entry-level users; it frequently poses more challenges than it solves. The intended simplicity gets lost without the prerequisite knowledge to use Docker effectively and troubleshoot problems.

It has a steep learning curve. Understanding images, containers, networking, volumes, CLI commands, Compose files, etc. is challenging for new users.

A single Docker run command is great but it means little to the people that do not grasp these concepts.

Problems are difficult to troubleshoot. When something goes wrong, users are confronted with an ecosystem they don't fully understand. Troubleshooting networking issues, permission problems, or why an image/container won't start can be difficult.

Breaking changes are common. Updates to Docker, Docker Compose, or images/tools a user depends on can easily break their setup in unexpected ways. This frustrates new users.

It feels like "magic". Docker hides a lot of complexity behind the scenes.

Not understanding what's really happening — leads to confusion, lack of control, and problems down the line as requirements change.

For people just getting started (perspective) with BabyAGI or AutoGPT; the additional complexity and learning curve of Docker only serves to intimidate them, or turn them away altogether.

I can understand where you're coming from, but from experience, running something with docker is orders of magnitude easier than setting up most projects for local development. Dependencies change and break all the time, and what worked perfectly well a week ago might not work today. You might find yourself learning far, far more than you ever wanted to about the nature of 10-20 different obscure errors before even getting something running, and then it crashes on you for different reasons. The whole idea of docker is to give you predictability, a known working state. A single developer or a team works on the docker image and goes through all of the pain once so everyone else doesn't have to. If it seems complicated to get working, the alternative is usually much more difficult and a lot more work.

The best way to open this up to use for non-technical folks adapt it and deploy as a website, and you can find multiple examples in the inspired projects section of the readme.

z3Nsk1Fh5a commented 1 year ago

My advice would be not to assume Docker simplifies things for everyone, especially newcomers.

Providing thorough documentation, tutorials focused on understanding (not just commands), and options for those less comfortable with Docker are good first steps. But recognizing that sometimes a simpler solution to the project, without containers can also help reduce frustration without forcing users. The needs of the audience matter here.

I'm not anti-Docker — I just encourage considering if it is warranted for every use case as it has become a supreme default.

Solutions that turn away newcomers can hamper adoption. Sometimes simpler is better.

Just wanted to provide some perspective.

thebigbone commented 1 year ago

Providing thorough documentation, tutorials focused on understanding (not just commands), and options for those less comfortable with Docker are good first steps.

That is beyond the scope of any project. Docker documentation does a great job in helping anyone who is willing to get familiar with Docker.

But recognizing that sometimes a simpler solution to the project, without containers can also help reduce frustration without forcing users.

Well, that's the beauty of open-source; if you don't like something, you can contribute to change it to a better alternative.

z3Nsk1Fh5a commented 1 year ago

That is beyond the scope of any project. Docker documentation does a great job in helping anyone who is willing to get familiar with Docker.

This issue/inquiry is merely pointing out that Docker itself complicates things. Entry-level users unfortunately can’t reliably navigate and work with a tool as complex as Docker for even basic use cases. It can’t just be picked up without acknowledging its challenges or providing truly supportive project-specific resources, which does them a disservice if their focus/goal involves a few trending repos or a single project in particular.

One tool will not fit all use cases and skill levels.

Well, that's the beauty of open-source; if you don't like something, you can contribute to change it to a better alternative.

Indeed. This thread is aimed to discuss options for beginners and perspectives of those using/working on alternatives to avoid the complexity of Docker rather than referring to more context of Docker/RTFD.

For many beginners, if not most in general; a few Python commands provide a far more simple and accessible on-ramp than wrestling towards becoming familiar with Docker. Users need simpler alternatives, open-source can be open towards fresh newcomers.

francip commented 1 year ago

We have the docker config for folks that want to run in Docker. But... you could just do pip install and ./babyagi.py without Docker.

The readme in fact never mentions Docker, it just tells you to run the script.