• AbouBenAdhem@lemmy.world
    link
    fedilink
    English
    arrow-up
    19
    arrow-down
    2
    ·
    edit-2
    5 months ago

    I kind of see the relationship between computer science and programming as parallel to the relationship between linguistics and speaking foreign languages. You don’t need to learn linguistics to speak another language—so AI translation isn’t taking the linguistics out of translating because it wasn’t a necessary element to begin with.

  • cryptTurtle@piefed.social
    link
    fedilink
    English
    arrow-up
    16
    arrow-down
    1
    ·
    5 months ago

    I think it depends on who you ask. Some people who “vibe code” definitely use it as a crutch for a lack of understanding. But others (often more senior) tend to use it as just a really really complex auto-complete. Mostly it generates chunks and patterns but the ideas and how those pieces connect come from the dev

    • Rooskie91@discuss.online
      link
      fedilink
      arrow-up
      16
      ·
      5 months ago

      I feel like not knowing what you’re doing is a critical piece of the vibe coding definition tho. If a sr developer is using AI, understands the code generated, and can manipulate it in a secure, industry standard way, then that’s just a developer.

      • cryptTurtle@piefed.social
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 months ago

        Fair enough. I put it in quotes because honestly I’ve seen all kinds of definitions thrown around. The conversation seems to often become a substitute for pro-LLM tools and anti-LLM tools. I think it’s more about how you use it and who controls it.

    • NocturnalMorning@lemmy.world
      link
      fedilink
      arrow-up
      10
      arrow-down
      8
      ·
      edit-2
      5 months ago

      Vibe coding is shit, and will always be shit no matter who is doing it.

      Edit: The mods decided my other comment was too controversial… “I’m an engineer to genius” apparently thats too controversial for this site 🙄

      • panda_abyss@lemmy.ca
        link
        fedilink
        arrow-up
        10
        arrow-down
        4
        ·
        5 months ago

        Totally disagree. Your position is way too overly simplistic and naive.

        An engineer only builds a bridge as strong as it needs to be, and likewise I “vibe code” things based on how few fucks I need to give.

        I’m experienced and can review the output for sanity and completion. I can test it, I can rewrite it, etc.

        Stop looking at vibe coding as doing the whole thing, it’s more valuable as the glue between things, or to create scripts tools that make you more efficient.

        And you can vibe code entire apps that basically just work these days. You probably don’t want to maintain those apps but thats a question of lifecycle planning.

        It is so much faster to vibe code an API integration and a suite of tests than I can write. It’s faster to write a functional jq or bash script.

        But it’s also much much much worse at doing data viz or writing pandas code because it’s trained on 10,000 shitty medium blogs.

        You really have to know what you’re doing and what the model is doing, but it is not universally trash.

        And if you don’t believe me, put $20 into the Claude API and install Claude Code and ask it to build something.

        • snooggums@lemmy.world
          link
          fedilink
          English
          arrow-up
          7
          arrow-down
          1
          ·
          edit-2
          5 months ago

          I’m experienced and can review the output for sanity and completion. I can test it, I can rewrite it, etc.

          You aren’t vibe coding if you refactor and test properly…

          • 𝕛𝕨𝕞-𝕕𝕖𝕧@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            3
            arrow-down
            4
            ·
            5 months ago

            why do you guys always just move the goalposts?

            “X thing isn’t real AI, because real AI sucks and I might have to concede the positive attributes of X about AI generally… [OCR, chess bots, etc.]”

            “Y thing isn’t real vibe coding, because real vibing coding sucks and I might have to concede the positive attributes of Y about vibe coding…”

            like… you seem like you’ve just decided these things are “bad things” in your head and just shift your definitions the moment you meet reality and see anything that might evoke cognitive dissonance about it.

            • EnsignWashout@startrek.website
              link
              fedilink
              arrow-up
              2
              ·
              5 months ago

              why do you guys always just move the goalposts?

              “Vibe coding” has a pretty specific definition, which includes not understanding the code. So writing tests, or correcting the code both disqualify a piece of work from being technically “vibe coded”.

            • snooggums@lemmy.world
              link
              fedilink
              English
              arrow-up
              2
              ·
              edit-2
              5 months ago

              Usage by scientists to do pattern matching and by language models to replicate natural sounding language and a bunch of other AI is neat and useful but the AI is not literally intelligent as described by the people that are dumping LLMs into settings they are not actually useful for like regurgitating accurate facts.

              When we criticize AI in situations like this it is because they are using a tape ruler to hammer in a nail and then taking away people’s hammers and replacing them with tape measures and then we find out they stole all the tape measures.

              We are complaining about a combination of what it is and how it is used. We also want to make sure that a term that means something stupid is clearly used for that stupid thing and doesn’t lose meaning because they have some vaguely related usage. Using a hammer put pound in a nail and using the hammers claw to pull a nail out are two different things even if they both use a nail.

              Where as you seem to think anyone criticizing shitty use of AI means all AI that exists instead of understanding context.

  • kibiz0r@midwest.social
    link
    fedilink
    English
    arrow-up
    15
    ·
    5 months ago

    Funny. I dislike vibe coding because it takes away the “art”.

    Implicit in these remarks is the notion that there is something undesirable about an area of human activity that is classified as an “art”; it has to be a Science before it has any real stature. On the other hand, I have been working for more than 12 years on a series of books called “The Art of Computer Programming.”

    Knuth: Computer Programming as an Art

  • magic_lobster_party@fedia.io
    link
    fedilink
    arrow-up
    82
    arrow-down
    2
    ·
    5 months ago

    Computer science has always been separate from software engineering.

    In my mind:

    • Computer science: Theoretical. Deals with algorithms, complexity and such.
    • Software engineering: Practical. Deals with whatever PM has written in Jira tickets.

    Both are important in their own right.

    • theneverfox@pawb.social
      link
      fedilink
      English
      arrow-up
      15
      arrow-down
      2
      ·
      5 months ago

      Computer science is basically the study of software engineering, because computer engineering means hardware, which has grown into a separate discipline that computer science only touches on

      Programming is writing code for the ticket, architecture is designing the system that gets written into tickets, and software development is the whole process

      But all these disciplines grew faster than language, so really the titles are whatever you want them to be

      • SorteKanin@feddit.dk
        link
        fedilink
        arrow-up
        10
        ·
        5 months ago

        Computer science is basically the study of software engineering

        That’s not at all true if you ask me. Computer science is the study of data and computation, on a theoretical level. Software engineering is not theoretical at all, but very practical.

        • theneverfox@pawb.social
          link
          fedilink
          English
          arrow-up
          1
          ·
          5 months ago

          Here’s the thing…all of computer science is based on the practical, and software engineering is based on the theoretical

          The data and computation being studied? We made it up. We don’t need to do it any particular way, we’re playing with ideas to interface to computers. Computers we made up too

          Software engineering is using the lessons we learned by studying how others did things and how it works out in practice

          We teach students computer science to make them into software engineers. You can still study how things are done as a separate career, but the two ideas are like an ouroboros. It’s a cycle of creation and analysis

          • SorteKanin@feddit.dk
            link
            fedilink
            arrow-up
            8
            ·
            edit-2
            5 months ago

            all of computer science is based on the practical

            I don’t understand this at all. Computer science is based on theoretical foundations that were developed way before any actual computer existed. This goes back more than 100 years.

            We teach students computer science to make them into software engineers.

            That’s only true if you studied a very practically-oriented education. Such educations are usually called “Software engineering” rather than “Computer Science”.

            As a computer science graduate myself, my university definitely did not try to make me into a software engineer. It was very theoretical, with a clear focus on further research if that was what you wanted to pursue. You could get through the education quite okay and only ever write very little actual code. It was the maths that was the harder part to write.

            • GojuRyu@lemmy.world
              link
              fedilink
              English
              arrow-up
              2
              ·
              5 months ago

              I got an education in software engineering, not computer science, and my experience is in line yours. I had a few courses about fundamental computer science concepts but most of my education was in learning a little about many different areas of software engineering, specializing in a few. Most of the education involved working as part of a software team, using tools of the trade, applying common design patterns and that sort of stuff, even when courses weren’t explicitly about that.

              I would never call myself a computer scientist, I don’t have the education for it, I however immediately had a software engineering job ready after graduating and felt prepared for it from day one.

              I love what computer scientists do within the theoretical domain because it eventually seeps into mainstream languages and tools, in a way I benefit from. I’m just not involved with it myself, beyond when it reaches practical application.

            • theneverfox@pawb.social
              link
              fedilink
              English
              arrow-up
              1
              ·
              5 months ago

              I don’t understand this at all. Computer science is based on theoretical foundations that were developed way before any actual computer existed. This goes back more than 100 years.

              Yes, it’s code. We studied and iterated on that code long before the first computer, we came up with architectures that influenced the creation of the hardware to run it

              The way they teach it has probably changed since I went through, but we had software engineering as a concentration. I actually picked networking and just took the all the software engineering courses because it had less math requirement lol

              But it was mostly theoretical, with hands on homework to demonstrate it in practice. Everyone had certain courses they had to take, like at least 3 semesters of programming, discrete math, data structures, and a few others along with gen eds.

              You just had to get a certain amounts of credits from different levels, so you could go through and pick what you wanted to focus on. You could dive into more theoretical or practical, high level or low level, but everyone had to study the full stack enough to understand it at a basic level

              But it’s all castles made of sand. Even before the first computer, we’ve been iterating on these ideas… Studying them and building higher

              The line between the science and engineering is blurry…Hell, our jobs are blurry and usually cross-discipline

            • magic_lobster_party@fedia.io
              link
              fedilink
              arrow-up
              3
              ·
              5 months ago

              I studied computer science as well and I share this sentiment.

              Although I’m happy about my degree because I’ve learned many things I would otherwise miss, I also wish my degree prepared me more for the industry. There’s a disconnect between academia and the industry.

              What I’m mostly concerned with is how to build software that can grow with 10ish team members. I find it hard to find good academic sources on this matter.

              • theneverfox@pawb.social
                link
                fedilink
                English
                arrow-up
                1
                ·
                5 months ago

                It’s methodology. Basically what you need is the correct amount of process - you can pick agile or scrum or whatever, and then you follow it to the amount that it makes sense. If you over-adhere to it, it slows things down to a crawl

                Once you get up to 10 team members, you need to do things like feature branches, code reviews, and rigid style. You should also add in tests… At 10 you don’t have to have full coverage, but you need to be able to exercise your system enough to know when something breaks immediately

                You also need ownership. You need one primary person who is the heart and soul of the code base, and they’re going to be the one who knows the whole thing and gives everyone direction. You can spin off another team at solid interface points, like an API or a plug in system, but you need one person who owns the core system and holds the code debt back

                You also can add in code pipelines, enforce docstrings to generate documentation, you need diagrams so people understand how things flow through the system, etc

                Ultimately, a lot of it comes down to mentorship. You have to be very hands on teaching people how the code works, and really hold their hand until they gain proficiency over an area. Then let them be secondary owners over that part of the symptom… And you have to make sure to stick them in a place where they’ll be a benefit - as you grow in numbers, it gets easier for each new person to be a drain on progress.

                I’m not sure about academic sources…I dropped a lot of keywords in there that might help search, but ultimately it’s about team culture. You can’t just shove it all in at once, you have to slowly add new processes and make sure everyone is moving in the same direction

                • magic_lobster_party@fedia.io
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  5 months ago

                  I know these concepts - after working in the industry for a while. Computer science education barely touched these topics. One professor was passionate enough to hint at test driven development, but that’s about it.

      • tankplanker@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        5 months ago

        I have a BEng in software engineering. It wasn’t thst different from a normal BSc in CS. Bits that stood out to me was industrial stuff around building and programming our own circuits, making our own (very simple) compiler, and some assembly modules, I had more maths stuff but that was for 3D graphics. My dissertation was a temperature control system for radiators.

        I don’t really use any of it in my job, although I did do a ton more programming modules than most CS of the time, and those programming modules prove very useful.

    • Billegh@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      5 months ago

      Yeah, I never needed an AI to write poor, inefficient, and ineffective code. I’ve always had a tremendous personal capacity for that. Why should I give a company money to do something that I’m already good at?

      • JackbyDev@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 months ago

        lol, I feel you, but what I’m trying to say is you often don’t need to know concepts like P vs. NP for work other than an extreme baseline “is this gonna take forever if I throw more data at it?” I am not saying it’s not useful, just that for lots of work it’s not always super useful to know. Computer science as a field of study is much more mathy than a lot of fields of dev work. Then again, you’ve got other fields where it’s more important. Like I’m sure folks doing 3d graphics need to know a lot more trigonometry than I do as a backend engineer.

        • Billegh@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          5 months ago

          Surprisingly little trig, from my experience with opengl, direct3d, and vulkan. Much of the interfaces abstract that away. It helps you to understand what’s going on if you do know it, but you can go in without and be able to do fine. Most of what you interact with is angle calculations.

      • MangoCats@feddit.it
        link
        fedilink
        English
        arrow-up
        3
        ·
        5 months ago

        Because: for $20 per month to the AI company, you can output poor code much much faster.

    • dilroopgill@lemmy.world
      link
      fedilink
      arrow-up
      2
      arrow-down
      4
      ·
      edit-2
      5 months ago

      So you dont use programming languages? learning how to use them was like all of computer science’s actual classes? Lets just start with the first class, you dont use classes, vectors, arrays, forloops, while, if else, etc? cout?

      I dont understand what that means, the degree itself literally covers the fundamnetals, ehats realprogramming? (I dropped and graduated with it years ago)

      • JackbyDev@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 months ago

        When I think about computer science as a field of science I think about things like algorithmic complexity. I believe things like what you mentioned should be taught in general education prior to university (or, like calculus, as an optional elective) and are only covered because you need to know those basics to cover the advanced things.

        It’s really difficult to come up with other examples of this that aren’t contrived because computer programming is the only field I know of that’s like this. I might compare it to architects needing to know how to use tools, but I don’t think they actually cover that. Maybe a better example might be engineers needing to know how to use tools before designing machines. Either way, things like how to use tools aren’t covered in those classes and they’re either not taught or taught as shop classes (or maybe they are, I didn’t go into those fields). Things like for loops I view as learning how to make a computer operate. Like how someone who drives a car doesn’t need to know how to fix an engine but a mechanic does. But learning about computer science is more like learning about what car designers do than what mechanics do. A lot of programming work doesn’t need that low level of attention to detail.

        Like I said before, it doesn’t hurt, but it’s not super critical. A classic example is something like learning how to make a linked list. This is an early example of an assignment that starts to get into the actual computer science stuff because you start to talk about the comparisons between different data structures, like linked lists versus array lists. So in university you may be thinking “damn I’m gonna be making list implementations all the time” but you quickly learn, no, you’re not. The standard library of your language already has one and it’s worlds better than anything you made. Plus, 99% of the time you’re gonna want an array list, at least in the types of work I do.

        I hope that helps make it more clear what I’m trying to say. I’m not saying computer programming is easy or doesn’t require skills.

      • ddh@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        7
        arrow-down
        1
        ·
        5 months ago

        Computer science is much more than programming. Did you cover other topics like formal logic, finite state machines, computability, crytography, machine learning etc?

        • dilroopgill@lemmy.world
          link
          fedilink
          arrow-up
          1
          arrow-down
          1
          ·
          5 months ago

          Why are you arguing with me and the dude that said programming didnt use computer science when computer science encompasses programming…

          • GamingChairModel@lemmy.world
            link
            fedilink
            arrow-up
            3
            ·
            5 months ago

            It’s like the relationship between mathematics and accounting. Sure, almost everything accountants do involve math in some way, but it’s relatively simple math that is a tiny subset of what all of mathematics is about, and the actual study of math doesn’t really touch on the principles of accounting.

            Computer science is a theoretical discipline that can be studied without computers. It’s about complexity theory and algorithms and data structures and the mathematical/logical foundations of computing. Actual practical programming work doesn’t really touch on that, although many people are aware of those concepts and might keep them in the back of their mind while coding.

        • dilroopgill@lemmy.world
          link
          fedilink
          arrow-up
          1
          arrow-down
          1
          ·
          5 months ago

          Sure they teach that, but its not the first thing you’re thought the first two main classes for into are programming?

  • Cocopanda@lemmy.world
    link
    fedilink
    arrow-up
    3
    arrow-down
    5
    ·
    5 months ago

    I’m a comp science web designer. Because of my dyslexia. I never could get hired as a real dev. Ai does a bit of the cleaning up I have trouble with and helps me speed up my development. I appreciate it for that. But you still need to know the code for the programs to work. There is still a need for humans. So far. But for how much longer?

    • badgermurphy@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      5 months ago

      It will take at least until they take a wholly different approach to “AI”. Until they make something that has some concept of what it is saying, you’ll continue to get things much like you get today–a probability-based response that amounts to a series of symbols it thinks are a good reply to the series of symbols you entered. It has no way to validate itself nor even a concept of validation of output, so its validity will always be in question and the complexity of what it can do limited.

      • Cocopanda@lemmy.world
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        5 months ago

        How much longer until the bots are capable of knowing the code better than the developers.

        • snooggums@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          ·
          5 months ago

          Too hard to guess until we reach the stage where the bots know anything at all instead of just regurgitating text based on statistics.

        • EnsignWashout@startrek.website
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          5 months ago

          Knowing it (well, appearing to, by regurgitating the average) better than many developers, pretty soon. A huge number of us know disturbingly little about how computers actually work. (Edit: Sorry, I’m being needlessly unkind to a bunch of us, since as Snoogums said, the current stuff doesn’t actually know anything at all, yet.)

          Knowing it better than top developers is a science fiction fantasy singularity daydream.

          And even Heinlein’s and Asimov’s post singularity fiction novels acknowledged that there would likely be roles for expert humans.

      • Valmond@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        5 months ago

        Well I drive a car and I do know how it works, but I don’t need to.

        One day the AI will be a powerful tool for making software, not 100% of all software, but enough to make those cheap stuffs like most websites for example, laying off lots of those people doing it today IMO.

        • EnsignWashout@startrek.website
          link
          fedilink
          arrow-up
          2
          ·
          5 months ago

          I agree. But I mean, WordPress and SquareSpace already did that for about 98% of web traffic. It was a big part of the .Com Boom and Bust.

          But we keep coming up with new stuff to build web software for, and there’s still plenty of web developer jobs. And there’s still so so many many shit websites.

          Today’s AI can only remix, not do the new stuff. Maybe it’ll get good enough to tackle the novel new stuff, someday. I doubt I’ll live to see it, if it happens.

          The root of my crankiness is: If we’re about to no longer need developers, I should be seeing widespread websites whose search, cart and checkout actually work correctly every time.

          The snake oil salesmen are bragging that the era of carpentry has ended, from on top of a wooden stage that is falling to pieces with each step.

          I would say, it can only get better, but it can really go both ways from here.

  • finitebanjo@lemmy.world
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    5 months ago

    No, it doesn’t, because the need for programmers has not changed one single iota.

    Vibe Coders do not replace them at any level. They are not computer scientists, they are not engineers, they cannot even program any more than a regular person could (possibly much worse).

  • kbal@fedia.io
    link
    fedilink
    arrow-up
    15
    ·
    5 months ago

    Why stop there? Ouija coding takes the “science” and the “computer” out of computer science.