Hello,

I installed Ubuntu a few months ago on my work laptop and I’ve been running and loving it since.

However, I am used to VsCode, so this is what I am using in Ubuntu as well.

So I am curious, what kind of coding so you do? And what is your workflow.

I am an embedded firware developper and mainly use C. I am cross compiling my code in VsCode for a FPGA from Xilinx (dual core arm + PL)

Never dove into make files and cmake more than what I needed in the past, but I had an opportunity to learn CMake and build a project from it.

So my workflow is :

  1. Code in VsCode
  2. Build in CMake
  3. Transfer the app through scp on the target with a custom script (target is running petalinux, which is yocto + Xilinx recipes)
  4. Use gdb server to debug the code.

It’s a pretty simple workflow, but I’d like to know what you guys are running so that I can maybe upgrade my workflow.

  • Marxine@lemmy.ml
    link
    fedilink
    arrow-up
    15
    ·
    1 year ago
    • Code in VSCodium
    • Code in Kate to keep thing fresh
    • Code in Nvim because I still need to learn it
    • Cry while debbuging a React app because the error messages aren’t very good
    • Wish I were working with Svelte or had enough backend experience to switch to being a backend dev
    • Play with terminal configs and shell scripting to distract myself from my woes
    • Rinse and repeat.

    Aside from the (not so much) jokes, give VSCodium a try, it’s to VSCode what Chromium is to Chrome, and works just as well.

    • Croquette@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I will look into VSCodium. I’ve heard a little about it, but I couldn’t tell you what is the difference between the two.

      • Lucky@lemmy.ml
        link
        fedilink
        arrow-up
        5
        ·
        1 year ago

        Microsoft develops vscode as open source, but compiles it with proprietary telemetry tooling.

        VSCodium compiles from the same source code but without the telemetry

          • Marxine@lemmy.ml
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            They are, but some might not be available from the extension store. Usually copying from vscode extensions folder works with no issues in my experience, but search the Codium store first just in case.

            • Croquette@sh.itjust.worksOP
              link
              fedilink
              arrow-up
              1
              ·
              1 year ago

              Alright, I’m going to install VsChromium next monday and switch over. I don’t use a lot of addons, but I’d like to have my most used addons

    • Kogasa@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I do too. Nvim for text editing, vs code for the occasional one/two file script, jetbrains for anything more extensive

    • balp@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      JetBrains, the refactoring tools are much better than any alternative, and that is a great productivity booster. Also, it has excellent remote support. Mainly at the moment, I’m using pycharm and clion.

    • Croquette@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Isn’t JetBrains a paid suite? I’ve heard a lot of good things about it, but since my workflow is basic, VsCode was always the choice wherever I worked.

          • 133arc585@lemmy.ml
            link
            fedilink
            arrow-up
            2
            arrow-down
            1
            ·
            1 year ago

            It’s not just Java. It supports a few other languages as well. I am pretty sure it supports Rust, HTML, JavaScript and maybe a couple others. It doesn’t support Python, Go, PHP, C/C++, or Ruby (as they have separate products for those).

  • thepiguy@lemmy.ml
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    Tmux + nvim for editing code and bspwm for a fully keyboard only workflow. I have some keybinds in tmux to open a new pane and run cargo or whatever command is necessary to run the code.

    • Croquette@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      How long have you been using nvim/vim in general?

      I have to use vi/vim from time to time for basic editing (like on petalinux for example), but it is quite intimidating to get into. I’m already over my head right now, so adding a new learning curve might not be the best timing.

      • JoeyJoeJoeJr@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        I had to use vi for work (only editor installed on the servers), and it snowballed and now I can barely type in anything that doesn’t have vim bindings.

        The first few days were pretty rough, but I learned the absolute minimal basics, and then just organically learned features as I needed them/whenever I felt like what I was doing was tedious, and there had to be a better way. It’s been about 10 years, and I’m still learning!

        One small suggestion, check YouTube for videos of people showing off vim features, e.g. https://youtu.be/5r6yzFEXajQ. You won’t remember everything from one watch, but it’ll help you see what is possible/how powerful vim is, which can guide your “this is so painful how do I make this better” searches down the line.

  • under2x@lemdit.com
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    I’m an old school emacs guy, I prefer that for c++/python/etc and run KDE Neon because I like KDE and I’m used to ubuntu (and Kubuntu has some issues). For c++ I use CMake, google test. Not really a fan of docker etc. but I have used Kubernetes and docker in the past. Those types of containers just create new and more complicated problems than just testing on the target platform, but in some niche cases it can be useful.

    I can’t stress enough how awesome emacs is, but it takes a serious investment to get efficient with it.

    • shassard@lemmy.ca
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      emacs with magit and meow are just amazing efficiency add-ons to my workflow. when your tools just get out of your way and keep you in the flow, it’s much easier to stay productive.

  • fx_@feddit.de
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago
    1. Code in Emacs
    2. Create a Nix Flake for building my Environment
    3. Build with whatever buildsystem the language requires, often Stack or Cargo
    4. Package for nixpkgs
    • andruid@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I really want to get more into neovim, being able to host the backend service and just point to it from other servers seems super useful for me!

  • treadful@lemmy.zip
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 year ago

    I’m the only Sublime Text guy here, I guess. Mostly with extensions for formatting, linting, and detecting compilation/type errors. I work with all kinds of languages, mostly interpreted. Python, Rust, Bash, JS/Typescript, Solidity, and a smidge of others so it’s hard to pin down one workflow.

    EDIT: Just wanted to add that it’s really cool to see the diversity in the replies. This here is the power of Linux.

  • StefanT@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    Transfer the app through scp […]

    I use an ad-hoc while loop in a shell with inotifywait to wait for changes in the watched directory and then scp it.

    • Croquette@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      That’s clever. I’m not used to shell scripting yet, but I really like that it is easy to automate things in Linux. If you can run it in terminal, you can script it.

  • lelgenio@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    I work with backend web development, so running code could not be any easier, normally there’s a docker image setup watch for changes, recompile and execute.

    My text editor is Kakoune, after learning the keybindings I just cannot go back to vim or vscode, selection based editing just makes so much sense to me.

    I use NixOS, which comes in handy for keeping my home and office computers in-sync. I also use nix shells to declare the tools necessary to develop each project.

    As for window management I use sway, one big window for kakoune to the left, other terminals for docker/tests/git to the right.

    • Croquette@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I tried to get into window management but it was a bit much at the time. I will retry soon.

      I have one big 48 inch 4k screen, so a window manager will definitely be a big plus.

  • selawdivad@lemm.ee
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    I mainly use Python, so my workflow is the same on every OS: Neovim and a shell, usually one of each in a vertical split. This transfers nicely to remote SSH sessions too, and even works in Termux on my phone!

    Have you investigated whether it’s possible to test your cross-compiled builds in Qemu, rather than copying them to the host?

    • Croquette@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      It’s possible to use QEMU, but since my primary goal is to use the hardware (GPIO, ADCs, SPI, etc.), it isn’t as useful for me in that case since I want to physically interact with the board. There is certainly a point where I will use QEMU more, but for the moment, it’s not practical.

  • vsh@lemm.ee
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    For python:

    • Pycharm with integrated git For web dev and game dev:
    • vscode with GitHub desktop or integrated git, XAMPP if I’m doing back end
  • mrmanager@lemmy.today
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    1 year ago

    Neovim. I work in devops so it’s terraform, ansible and aws cli right now… No need to compile anything or build anything. It’s quite nice and simple. :)

    The ability to do everything with shortcuts and no mouse means i get into a certain flow feeling that is really nice. When I need to web search, I use the mouse however. I don’t like the vim like plugins for the browser. The mouse is way faster there.

  • vaalla@discuss.tchncs.de
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    I mostly write rust now, but this workflow was finetuned over years. Use 2 terminals each on a diferent monitor, one runs neovim and the other is for building/running. If the project is a bit more complex, I will run it in a docker container( maybe mount the /etc/shadow and frieds so all artefacts are created using the same user as in the outside) . Developed a bunch of tools over the years to optimise this:

    • a ‘package manager’ in bash so I have a folder for each project/context. One for work, one common, one for the server stuff like this. All are in PATH.
    • parterm - remote control for the terminal so i can start a build from neovim in a different terminal.
    • ‘ndock’ - at work I use a bunch of branches, this script will set up a few envs and then start a docker in a folder coresponding to that branch.

    At my old job had to work on a remote vm so I setup sshfs for a while, but was slow and just moved all my tools there.

    I have a pattern where i put all my projects in ~/dev/<project><branch> and all info related to a task in ~/dev/<project>/bugs/<issue_nr>. This is usefull because I can have scripts the work similar for different projects with small changes. For example to run my binary with the config for a issue i just do

    ndock <branch>
    nr <issue nr>
    

    This will start docker or connect to an existing one for that branch if available, compile the code, run my binary with the config present in the bug folder. In the last few month started running it with rr to be sure i can debug any random issue.