• Aux@feddit.ukBanned
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    3
    ·
    3 days ago

    They are extremely useful for software development. My personal choice is locally running qwen3 used through AI assistant in JetBrains IDEs (in offline mode). Here is what qwen3 is really good at:

    • Writing unit tests. The result is not necessarily perfect, but it handles test setup and descriptions really well, and these two take the most time. Fixing some broken asserts takes a minute or two.
    • Writing good commit messages based on actual code changes. It is a good practice to make atomic commits while working on a task and coming up with commit messages every 10-30 minutes is just depressing after a while.
    • Generating boilerplate code. You should definitely use templates and code generators, but it’s not always possible. Well, Qwen is always there to help!
    • Inline documentation. It usually generates decent XDoc comments based on your function/method code. It’s a really helpful starting point for library developers.
    • It provides auto-complete on steroids and can complete not only the next “word”, but the whole line or even multiple lines of code based on your existing code base. It gets especially helpful when doing data transformations.

    What it is not good at:

    • Doing programming for you. If you ask LLM to create code from scratch for you, it’s no different than copy pasting random bullshit from Stack Overflow.
    • Working on slow machines - a good LLM requires at least a high end desktop GPU like RTX5080/5090. If you don’t have such a GPU, you’ll have to rely on a cloud based solution, which can cost a lot and raises a lot of questions about privacy, security and compliance.

    LLM is a tool in your arsenal, just like other tools like IDEs, CI/CD, test runners, etc. And you need to learn how to use all these tools effectively. LLMs are really great at detecting patterns, so if you feed them some code and ask them to do something new with it based on patterns inside, you’ll get great results. But if you ask for random shit, you’ll get random shit.

      • skisnow@lemmy.ca
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        edit-2
        3 days ago

        Having spent some small time in the information theory and signal processing world, it infuriates me how often people champion LLMs for writing things like data dictionaries and documentation.

        Information is measured in information theory as “the difference between what you expected and what you got”, ergo, any documentation generated automatically by an LLM is by definition free of Information. If you want something explained to you in English then it can be generated just as easily as and when you want it, rather than stored as the authoritative record.

        • Aux@feddit.ukBanned
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          3
          ·
          3 days ago

          You’re not looking at a bigger picture. That also raises the question of your alleged qualifications.

      • Aux@feddit.ukBanned
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        2
        ·
        3 days ago

        It’s much better than commit messages like “WIP”, “Quick fix”, “Refactoring” and other mental diarrhea every developer is guilty of.

    • Evotech@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      3 days ago

      It’s also pretty good at explaining what a function does or why something is where it is. Good for navigating large codebases or working on something you don’t normally work on