who wants pasta in their computer?

  • stingpie@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    22 hours ago

    After reading a lot of comments in this thread, I’m not sure I know what spaghetti code is. I thought spaghetti code was when the order of execution was obfuscated due to excessive jumps and GOTOs. But a lot of people are citing languages without those as examples of spaghetti code. Is this just a classic “I don’t like this programming language, and I don’t know much about it.” Or is there something I’m missing?

    • thedeadwalking4242@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      16 hours ago

      It’s more incredibly tangled and highly coupled code. It’s the kinda code where you can’t change anything because it causes a catastrophic cascade of issues. Basically where software engineers throw design out the window and just starting coding random bullshit that “works”

    • Endmaker@ani.social
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      21 hours ago

      Spaghetti is all messy and tangled up; spaghetti code is the same.

      when the order of execution was obfuscated due to excessive jumps and GOTOs

      That’s one way to make your code messy and thus achieve spaghetti code.

      In general, when some code is very poorly written, it becomes spaghetti code.

    • Quatlicopatlix@feddit.org
      link
      fedilink
      arrow-up
      4
      ·
      20 hours ago

      I work in a company that has a old codebse in c with tons of realtime intime stuff that is acessed via a shared memory from the realtime to the non realtime system. Tons of strucs get copied around then typecast to other structs and global variables all over the place. You never know where a variable is written to and where it is also acessed from or if it is just a copy. No assembly but still super obscure.

  • CrazyLikeGollum@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 day ago

    Is an assembler not a compiler for an assembly language?

    Is saying “I wrote code in assembler” not functionally equivalent to saying “I wrote code in GCC?”

    Note: this is a genuine question, not sarcasm.

    • gadfly1999@lemm.ee
      link
      fedilink
      English
      arrow-up
      4
      ·
      15 hours ago

      Anywhere I’ve actually seen it used , assembler and assembly were pretty much interchangeable. Assembly code is probably technically correct, but you could be writing code for the assembler so nobody will actually be confused. Per your example, you might say “I wrote code in MASM,” to reference a specific assembler. Again nobody that’s actually worked with any of this would bat an eye at the usage.

    • dosuser123456@lemmy.sdf.orgOP
      link
      fedilink
      arrow-up
      6
      ·
      21 hours ago

      well, in my country (spain) assembler and assembly are basically used interchangeably, so i do that a lot. will take into account for future posts tho.

  • Redkey@programming.dev
    link
    fedilink
    arrow-up
    11
    ·
    edit-2
    1 day ago

    Assembler, BASIC, Old C code, Cobol…

    …Pascal, Fortran, Prolog, Lisp, Modern C code, PHP, Java, Python, C++, Lua, JavaScript, C#, Rust…

    The list is infinite.

    Show me a language in which it is impossible to write spaghetti code, and I’ll show you someone who can’t recognize spaghetti code when it’s written in one of their favourite languages.

    • UnrepentantAlgebra@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      21 hours ago

      The obvious solution is to use Rust’s upcoming “spaghetti checker” feature. Once the compiler decides that your code is too messy to be maintainable, it refuses to compile.

      • dosuser123456@lemmy.sdf.orgOP
        link
        fedilink
        arrow-up
        2
        ·
        20 hours ago

        great, now the compiler wont let me modify my programs (i really should get better at coding because i seem to only know to do spaghetti)

    • dosuser123456@lemmy.sdf.orgOP
      link
      fedilink
      arrow-up
      2
      ·
      20 hours ago

      thats exactly what the “you get the idea” line meant, i was only giving some examples because if i did itd be literally every language

      (also modern c is spaghetti, but old c is even more. legacy code is spaghetti no matter the language)

  • dosuser123456@lemmy.sdf.orgOP
    link
    fedilink
    arrow-up
    31
    ·
    edit-2
    2 days ago

    ps: you know something you wrote is funny when taken out of context when someone screenshots it and after a while youre sent the screenshot of your message

  • peoplebeproblems@midwest.social
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 day ago

    Calling assembler code spaghetti isn’t really that fair. I mean granted, everything ends up as “syscall” this and that, but it’s still more like one long spaghetti noodle with some meatballs and sauce.

    Old C code, written for like microelectronics suffers from it, sure.

    But for that gud spaghetti you gotta getti the BASIC and Cobol programs. Thems is good spaghetti.

    (And we’re going to ignore python right)

  • palordrolap@fedia.io
    link
    fedilink
    arrow-up
    9
    ·
    1 day ago

    For writing loops, many early BASICs had FOR/NEXT, GOTO [line] and GOSUB [line] and literally nothing else due to space constraints. This begat much spaghetti. Better BASICs had (and have) better things like WHILE and WEND, named subroutines (what a concept!) and egads, no line numbers, which did away with much of that. Unless you were trying to convert a program written for one of the hamstrung dialects anyway, then all bets are off.

    Assembly style often reflects the other languages people have learned first, or else it’s written to fit space constraints and then spaghettification can actually help with that. (Imagine how the creators of those BASICs crammed their dialect into an 8 or 16K ROM. And thus, like begetteth like.)

    C code style follows similarly. It is barely concealed assembly anyway.

    COBOL requires a certain kind of masochist to read and write. That’s not spaghetti, it’s Cthulhu’s tentacles. Run.

      • palordrolap@fedia.io
        link
        fedilink
        arrow-up
        2
        ·
        1 day ago

        A lot of the original C coders are still alive or only very recently gone (retired, or the ultimate retirement, so to speak), and they carried their cramped coding style with them from those ancient and very cramped systems. Old habits die hard. And then there’s a whole generation who were self-taught or learned from the original coders and there’s a lot of bad habits, twisted thinking and carry-over there too.

        (You should see some of my code. On second thought, it’s probably best you don’t.)

        • dosuser123456@lemmy.sdf.orgOP
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          20 hours ago

          You should see some of my code. On second thought, it’s probably best you don’t.

          thats the same warning i give to anyone looking at ~/scripts. particularly ~/scripts/bas, ~/scripts/js and ~/scripts/bat_bkp (which is copy of /mnt/msdos/jp/batch)

          all code in those folders is like that

  • Eiri@lemmy.ca
    link
    fedilink
    arrow-up
    4
    ·
    2 days ago

    Sometimes I call my colleagues Italians 🤌

    (None of them are from Italy, but that pasta!)