Codi obert LLM programació amb IA OpenCode Models locals Gemma 4 Qwen 3.6 Tauri

Qwen 3.6 27B contra Gemma 4 31B: dos models locals construeixen la mateixa app Tauri

Zero to MVP encarrega a Qwen 3.6 27B i Gemma 4 31B la mateixa aplicació d’escriptori amb Tauri. Tots dos generen una base funcional, però Gemma acaba en menys de la meitat de temps i cap resultat funciona al primer intent.

Quin model obert pot fer de programador principal en un ordinador local? El canal Zero to MVP compara Qwen 3.6 27B i Gemma 4 31B amb una tasca molt més reveladora que una pregunta aïllada: construir, des de zero i amb el mateix prompt, un visor i editor de Markdown multiplataforma basat en Tauri. Els dos models s’executen successivament al mateix ordinador i es controlen des d’un MacBook mitjançant OpenCode.

El resultat és un empat amb matisos. Qwen prepara un pla més detallat i genera més elements d’interfície; Gemma acaba la implementació en menys de la meitat de temps i deixa el repositori més ordenat. Cap aplicació arrenca al primer intent i totes dues necessiten correccions manuals petites. La prova mostra que un model local de 27–31 mil milions de paràmetres ja pot crear una base útil, però no demostra que un sigui universalment millor.

Una prova pràctica amb el mateix encàrrec

L’autor vol una aplicació que obri fitxers Markdown, permeti editar-los i mostri una previsualització en temps real. Tria Tauri perquè combina una interfície web amb una capa nativa en Rust i permet generar aplicacions per diversos sistemes operatius. El projecte és prou ampli per exigir planificació, estructura, dependències, accés al sistema de fitxers i interfície gràfica.

Cada model rep exactament el mateix document de requisits en una carpeta separada. Primer ha d’analitzar-lo i escriure un pla dividit en fases i tasques. Després, en una única execució llarga, ha de completar tot el projecte prenent decisions autònomes. L’autor reconeix que, en un desenvolupament normal, treballaria fase per fase i provaria cada canvi; aquí elimina aquests controls per estressar l’agent.

OpenCode serveix d’arnès: llegeix el repositori, proporciona eines al model i pot connectar-se a servidors locals compatibles. La documentació oficial confirma que admet models locals i múltiples proveïdors. Això permet comparar pesos oberts sense enviar necessàriament el codi a una API externa, encara que la privadesa final depèn de la configuració escollida.

Maquinari, memòria i models densos

La comparació utilitza Qwen 3.6 27B i Gemma 4 31B, tots dos en variants denses. El creador prefereix aquesta arquitectura per programar, però és una decisió personal, no una regla general. Un model dens activa tots els paràmetres a cada pas; un mixture of experts només n’activa una part i pot oferir una relació diferent entre velocitat, memòria i qualitat.

Les fitxes oficials ajuden a dimensionar-los. Qwen declara 27.000 milions de paràmetres i un context natiu de 262.144 tokens. Gemma 4 31B té uns 30.700 milions i fins a 256.000 tokens. Google estima aproximadament 69,9 GB per carregar Gemma en BF16, 34,9 GB en 8 bits o 17,5 GB en Q4, incloent un marge del 20%. La implementació real també necessita memòria per al context, el servidor i les eines.

Per això el vídeo insisteix en la VRAM. La quantització permet entrar en una GPU de consum a canvi d’una possible pèrdua de qualitat. També importa l’electricitat: mentre Gemma treballa, l’autor mostra el consum de l’ordinador i recorda que mantenir una GPU sota càrrega moltes hores té un cost. La prova no publica prou detalls de quantització, temperatura, paràmetres de mostreig o velocitat de tokens per reproduir una comparació exacta.

Qwen 3.6: millor pla, 46 minuts i dos errors

Qwen necessita uns quatre minuts per redactar el pla. El divideix en gairebé el doble de fases que Gemma i descriu més tasques i matisos. Després treballa durant 46 minuts. L’autor observa que detecta alguns errors mentre genera codi i intenta corregir-los, un comportament útil en una execució agentiva llarga.

El primer llançament falla perquè falta el bloc que inicia el servidor de desenvolupament del frontal. Afegir-lo exigeix només unes línies. El segon intent troba un error en Rust: Qwen ha utilitzat un mètode de la primera versió de Tauri que ja té un altre nom. Després de les dues correccions manuals, l’aplicació arrenca.

La base és convincent. Hi ha dues columnes, edició i previsualització responen en temps real, i un fitxer del disc s’obre i es renderitza correctament. Qwen també crea una barra d’eines, però els botons de format no funcionen. No és una aplicació acabada; sí un esquelet sobre el qual continuar treballant. El detall important és que l’agent no havia executat una prova final capaç de detectar els errors d’arrencada abans d’aturar-se.

Gemma 4: el doble de ràpid i un repositori més net

Gemma redacta el pla en dos minuts i mig i completa el projecte en vint minuts. La diferència respecte dels 46 minuts de Qwen és gran en aquesta execució, però no permet atribuir tota la velocitat al model. La llargada del raonament, la quantització, el servidor d’inferència i el nombre de fitxers generats també influeixen.

L’aplicació tampoc arrenca a la primera. El codi utilitza correctament els connectors d’accés al sistema de fitxers, però no els registra a la configuració de Tauri. Un cop afegits, compila i s’obre. La interfície torna a mostrar editor i previsualització, els canvis es renderitzen i els fitxers del disc es carreguen sense problemes.

Gemma sorprèn en reorganitzar els requisits i el pla dins una carpeta de documentació sense que l’usuari ho demani. També implementa bé els botons que alternen edició i previsualització. En canvi, ignora els controls de format que ella mateixa havia inclòs al pla. És un error de cobertura: el model entén el requisit, però no verifica que totes les tasques planificades hagin arribat al producte.

Què diu realment el resultat

Tots dos models completen el nucli funcional després d’una intervenció humana breu. Qwen produeix més interfície però acumula dos errors d’inici i tarda més. Gemma genera menys elements, acaba abans i organitza millor el repositori, però omet una funció prevista. Per al creador no hi ha guanyador clar i decideix continuar utilitzant-los conjuntament.

La metodologia té almenys cinc límits: una sola tasca, una sola execució per model, un únic ordinador, correccions manuals diferents i cap conjunt de proves automatitzades. Tampoc es mesuren seguretat, mantenibilitat, accessibilitat, rendiment ni qualitat del Rust. Si es repetís cinc vegades, la variabilitat de generació podria canviar l’ordre.

La conclusió transferible és una altra. Un benchmark de codi no substitueix una prova dins l’eina, el maquinari i el repositori reals de cada persona. La velocitat importa, però també el nombre d’intervencions, la capacitat de seguir tots els requisits i la facilitat de revisar el resultat.

Com convertir l’experiment en un flux fiable

Per usar aquests models en producció, convé dividir la feina en fases curtes: pla, esquelet, compilació, proves i revisió. Cada fase ha de tenir criteris verificables. En aquest projecte, una ordre automàtica que compilés el frontal i Rust hauria detectat els errors abans que l’agent declarés la tasca acabada; una llista de comprovació hauria revelat els botons absents o inactius.

També cal fixar versions de Tauri i connectors, registrar el prompt, la quantització, el servidor, els paràmetres i el consum. Així la comparació deixa de ser una impressió i es pot repetir. Per a codi sensible, executar localment aporta control, però no elimina la necessitat de revisar dependències, permisos del sistema de fitxers i vulnerabilitats.

Qwen 3.6 i Gemma 4 no substitueixen el desenvolupador de l’experiment: amplien la quantitat de codi que pot provar. La victòria real és que tots dos arriben a una aplicació utilitzable en menys d’una hora de generació. El límit també queda clar: sense compilació, proves i criteri humà, «ha acabat» encara no significa «funciona».

Contrast i context

Fonts consultades

6 fonts
  1. 01
  2. 02
  3. 03
    Google AI for Developers Gemma 4 model card
  4. 04
  5. 05
  6. 06

Font de treball

Transcripció amb marques de temps

12 fragments
Consulta la transcripció
  1. 0:00 , obre el vídeo en una pestanya nova

    After I tested Qwen 3.6 on tasks of varying complexity, I realized that this model is fully ready to take the role of the main local model I use. However, since that role is currently held by Gemma 4, the logical next step for me is to compare them and choose a winner. It is important to note that I will not be doing abstract benchmarking or trying to compare the models objectively. On the contrary, I want to find out which of these models suits me personally, for my specific tasks and on my specific hardware. Still, I hope the results of such a comparison will also be interesting to you and that you will be able to draw some useful conclusions for yourself. So, the first thing I need is to come up with a comprehensive test for the models in order to understand where the limits of each of them lie. But at the same time, I would like to get some extra value from these tests, rather than simply throwing away the generated code afterward. While thinking about such a test, I remembered that a few days ago, I couldn't quickly find a markdown file viewer for macOS that

  2. 0:54 , obre el vídeo en una pestanya nova

    suited me. At the time, I postponed the task so I could calmly look for one over the weekend. But now, remembering that situation, I decided that building a desktop app for viewing or perhaps even editing and viewing markdown files would be a very good and sufficiently challenging test for AI models. So, I quickly wrote a short description of the markdown editor I want to get. Although it will probably be more of a viewer with editing capabilities rather than a full editor, since convenient viewing is the main priority for me. But the ability to quickly make changes is also important. And briefly about the technology stack I chose. For this application, I decided to use the Tauri framework. I have used it for a long time, I like it, and it has proven itself well in many of my previous projects. It will also allow me to make the application cross-platform, which will be useful for me as well. Now, let's get back to the models. For both Gemma and Qwen, I will use dense models of the largest size that my graphics

  3. 1:46 , obre el vídeo en una pestanya nova

    card can handle. I explained in detail why I prefer dense models in my previous video about Qwen 3.6, where I compared different AI model architectures. In short, for tasks related to writing code, dense models tend to deliver better results. So, today I will be comparing the 27 billion parameter Qwen 3.6 model with the 31 billion parameter Gemma 4 model. Both will be launched one after another on my desktop computer, and I will use them over the local network from my MacBook. On the screen, you can see the specifications of this desktop. If you also decide to run these models yourself, the main thing to pay attention to is making sure your graphics card has plenty of memory. That is the most important parameter for running LLM models. So, for today's test, I created a separate folder containing two subfolders, one for each model. Inside each folder, I placed the same file in which I briefly described my vision of the application I want to get. I think I'll start with the Qwen 3.6 model. I go

  4. 2:41 , obre el vídeo en una pestanya nova

    into its folder and launch Open Code. That's what I'll be using today. I already have both of these models connected in Open Code, so I simply select Qwen. Since the markdown editor task itself is quite complex, the first thing I asked the model to do is analyze my description and create detailed implementation plan breaking everything down into small tasks. All right, I won't show the response generation process. It took about 4 minutes, and there was nothing particularly interesting there. So, I'll jump straight to the result. As I requested, the model wrote the plan and tasks into a separate file. Let's take a look at it. As you can see, the entire development plan is divided into phases, and each phase is split into smaller tasks. The tasks contain specific descriptions of what needs to be done along with important nuances. Overall, I like this plan. It looks like Qwen handled the planning stage well. All right, now I'll launch Open Code again and run the init command in this folder

  5. 3:33 , obre el vídeo en una pestanya nova

    so the agent can understand what kind of project this is and review both the application description file and the file containing the plan and tasks. Well, then, now we can finally move on to actually implementing the project. I asked the model to complete all the tasks from the plan one by one while making decisions on its own whenever possible. Of course, the proper way to work on a project would be to implement it gradually, phase by phase, or even one task at a time. But, I want to do a kind of stress test for the model and see how well it can independently work on a complex project for a long period of time. As you can see, the model has started actively reasoning through the tasks. I think the whole response generation process will take quite a while, so of course I won't show all of it, but I'll mention at the end how long it took. It is encouraging that the model identifies its own mistakes during the process and thinks about how to fix them. Excellent. So, the model has finally finished working on the project. It took about 46 minutes. Of course,

  6. 4:27 , obre el vídeo en una pestanya nova

    that is quite a long time, but for a local model working on a complex task, it is a acceptable result. Now, let me try to launch what the model generated. I doubt everything will work immediately, but let's see. Yes, unfortunately, the application did not start and instead shows an error. Something is wrong with the front end. I suspect the port may be set incorrectly. Let me check. Oh, that is strange. The entire block responsible for starting the server is missing. I'll have to add it manually, but that's nothing serious, just a couple of lines. Now, I'll try launching it again. Oops, another error, this time in the Rust code. But, no problem. I think I know what the issue is. I ran into a similar error once before. The problem is that Qwen used a method from the old version of Tauri, the first version. Now, that method has a different name. That is also just a minor fix. All right, then. Let's try launching it one more time. And finally, everything started without errors. That is already

  7. 5:19 , obre el vídeo en una pestanya nova

    encouraging. But, now we need to see whether the application actually works in principle. All right, for an initial version, it looks quite good. There is even a toolbar. The window is split into two sections. Most likely, one side is meant for text input and editing, while the other is for previewing the result. Excellent. The editor responds properly to text input and the real-time preview works correctly. Great. Now, I'll try something like recursion and open the Markdown editor development plan inside the editor itself. Oh, excellent. The file opened and displayed without errors. If I add something to it, the result is immediately shown in the preview window. Perfect, but it seems the toolbar buttons behave somewhat strangely, and the editing buttons apparently do not work at all. There is no reaction when pressing them. That can all be fixed gradually. The important thing is that there is a working foundation. It would be strange if everything worked perfectly from a single prompt to the model. So, the result I got is very good. I'm

  8. 6:11 , obre el vídeo en una pestanya nova

    impressed, even despite the minor launch errors. Well, then, now it is Gemma 4's turn. I move to a separate folder for this model. Inside it, I have the same project description file as I used for Qwen. I launch Open Code and switch the model to Gemma 4. Then, I give it the same task as before, to create a complete implementation plan for the project and break it down into small tasks. Interestingly, this model handled the planning stage faster. It took 2 and 1/2 minutes. Just as I requested in my prompt, the plan was written into a markdown file. Let's take a look at it now. Just like the plan created by Qwen, this plan made by Gemma breaks the entire process into phases, and each phase contains separate tasks with specific descriptions of what needs to be done and what to pay attention to. Excellent. I also want to open both plans side by side so I can compare them visually. They are quite similar. Surprisingly, the plan created by Qwen contains almost twice as many phases into which the project is divided.

  9. 7:04 , obre el vídeo en una pestanya nova

    Accordingly, it also contains more tasks. It will be interesting to see how that affects the final result. All right, I switch back to Open Code, and just as I did for Qwen, run the init command. After the command finishes, I send the same request for full project implementation. I change nothing. For Gemma, everything is exactly the same, word for word, as it was for Qwen. All right, the model has started working on the project, and once again, I will skip this long and tedious part and show the result when it finishes implementing the plan. And while the model is working, I'll show you how much power the desktop consumes under active load. This is an important point that many people overlook, because if your local model is running constantly, your monthly electricity bill can increase significantly. So, the model has finally finished. The entire process took 20 minutes. That is twice as fast as the previous model. As a reminder, Qwen took 46 minutes. Not bad, but the real question is the result. By the way, I

  10. 7:58 , obre el vídeo en una pestanya nova

    really liked how Gemma listed all the tasks it worked on at the end of its response. All right, I exit open code and try to launch the application created by the Gemma model. So far, everything is compiling successfully. But no, it still did not launch on the first try and there is some kind of error. All right, let's see what the problem is. It looks like the issue is on the rust side. Something related to file system access. Okay, I'll debug it and then come back to you with the result. So, I figured out what the problem was. The issue was that the configuration did not include the plugins responsible for working with the file system. However, they were used correctly in the code itself, so all I had to do was add them there. All right, now after these fixes, I'll try launching the application again. The compilation process has started. So far, there are no errors, which is encouraging. Hooray, the application launched. Great. Let's take a closer look at it and test it. So, we are greeted by a similar

  11. 8:51 , obre el vídeo en una pestanya nova

    two-panel interface. Text input and rendering work correctly. The buttons that switch the editor between editing mode and preview mode also work properly. Excellent. Now, I'll check whether it can open a markdown file from disk. By the way, notice that Gemma moved all the original files describing the program, as well as the development plan, into a separate documentation folder. Even though I did not ask it to do that, I like it. It makes the repository look much cleaner. All right, the file opened without any problems. All the markdown in it is displayed correctly. Excellent. It is safe to say that Gemma also successfully completed the task. Well then, it is time to sum everything up and draw some conclusions. In my opinion, even despite the minor bugs when launching the applications, both models successfully completed the task. They were placed in a fairly stressful situation and had to implement the entire plan at once, which in itself is already quite challenging. But as I said

  12. 9:44 , obre el vídeo en una pestanya nova

    before, I did that intentionally. As for who won today's test, in my view, both models delivered very similar results. What I liked about Qwen was that it created a more detailed plan. However, it also had more initial errors that I needed to fix before launching the application. Gemma, on the other hand, completed the project twice as fast, but it completely ignored creating toolbar buttons for text formatting, which is strange since it had created tasks for that in its own plan. So, I will probably continue using both of these models together, and over time I hope I will be able to settle on just one of them. Write in the comments whether you have already tried these models and which one you like more and why. I would be interested to hear your opinion. I think that will help me make a choice between them. That is probably all for today. If you enjoyed this video, leave a like and subscribe so you don't miss the next episodes. See you soon. Take care of yourself.