Life As An Oracle DB Dev - 25 Million Lines Of Code

Поделиться
HTML-код
  • Опубликовано: 27 окт 2024

Комментарии • 301

  • @zachmoring284
    @zachmoring284 2 месяца назад +363

    While working for Undisclosed Big Old Transport Company as a "SQL developer," the oldest stored proc I had to touch was older than me. First written in 1989, last updated in 1997 by a guy three "generations" before me in that role

    • @nezbrun872
      @nezbrun872 2 месяца назад +33

      Could've been me ;-) My SQL career started in 1988.

    • @zeppelinmexicano
      @zeppelinmexicano 2 месяца назад +6

      I'm assuming that the procedure wasn't bad if it lasted that long, but maybe it also forced some behaviors in the calling code that weren't so ideal? Interesting how long something can last but why mess with something that works? I'd hate to be you if you had messed with it, hahaha.

    • @retropaganda8442
      @retropaganda8442 2 месяца назад +15

      You're seriously too young to touch that codebase. Wait until you've got your basic 25 years of professional experience

    • @michaelewen5498
      @michaelewen5498 2 месяца назад +4

      If you don't understand the word "generation" then you probably shouldn't be touching that codebase.

    • @CallousCoder
      @CallousCoder 2 месяца назад +3

      It’s very normal to have 30-40 year old code based in critical systems.

  • @yintercept4612
    @yintercept4612 2 месяца назад +426

    You mentioned the word ORACLE. A team of licensing experts will now audit your channel to determine how much money you owe Larry Ellison.

    • @z352kdaf8324
      @z352kdaf8324 2 месяца назад +23

      I think I heard mention of Java also. That'll up the cost for him

    • @mxbx307
      @mxbx307 2 месяца назад +2

      The same letter used in multiple sentences and in multiple lines and paragraphs? That's an extra seat. More money please.

    • @Falcon-gw2ec
      @Falcon-gw2ec Месяц назад +1

      😂 too real... Just dealt with this

    • @Brettler99
      @Brettler99 Месяц назад +3

      Meanwhile, if you mention the word G*Og*e, your account gets shadowbanned.

    • @xj0ex39
      @xj0ex39 23 дня назад

      And chat. After he acquisitions of course.

  • @Kynatosh
    @Kynatosh 2 месяца назад +337

    I love the "DELETE ME DELETE ME" in the description instead of the article source

    • @matthijskortekaas3811
      @matthijskortekaas3811 2 месяца назад +10

      Skill issue

    • @connorsmith6039
      @connorsmith6039 2 месяца назад +8

      Someone get Flip another coffee

    • @Reichstaubenminister
      @Reichstaubenminister 2 месяца назад +7

      Just a bug in the templating library Prime's brain uses. Or maybe the worker queue entry got lost. Or the code got commented out. A true mystery.

    • @JiggyJones0
      @JiggyJones0 2 месяца назад +2

      Its been confirmed. Prime is an AI 😂

    • @jfieqj
      @jfieqj 2 месяца назад +5

      Never underestimate the value of DELETE ME in an item name. So many times has that saved me from having to spend 30 minutes digging to see if I still need a file or a configuration item or a whatever... past self has told me it's OK. I trust you past self. Thank you.

  • @king4aday4aday
    @king4aday4aday 2 месяца назад +163

    "Psh, I could rewrite it in a weekend from scratch"

    • @PySnek
      @PySnek 2 месяца назад +24

      in scratch!

    • @Ayotundejerry
      @Ayotundejerry 2 месяца назад +3

      🤣 We get the joke

    • @waltwhite8126
      @waltwhite8126 2 месяца назад +6

      BLOW, Jonathan.

    • @ArrKayLondon
      @ArrKayLondon 2 месяца назад +3

      Someone clearly went to the Elon Musk school of programming.

    • @xj0ex39
      @xj0ex39 23 дня назад +1

      @@ArrKayLondonElongate U

  • @disieh
    @disieh 2 месяца назад +74

    The big problem IMHO with old gigantic, monolithic projects is once you grow past certain size, it becomes impossible to grok the whole thing at once. This is where good design, architecture and people like Linus comes in. Good design keeps dependecies sane, individual parts grokkable and Linus keeps devs from undermining the design.

    • @MrEnsiferum77
      @MrEnsiferum77 2 месяца назад

      What Linus had bring? Hardly u can find linux kernel devs... that's why is rust crap in linux kernel...

    • @georgerogers1166
      @georgerogers1166 2 месяца назад

      Theo DeRadt is even better.

    • @censoredeveryday3320
      @censoredeveryday3320 2 месяца назад +4

      And then he allowed Rust into the kernel....

    • @StCreed
      @StCreed Месяц назад

      ​@@censoredeveryday3320 Yeah, what does he know, right?
      Having been a scientific programmer in C++, I can only applaud his decision. I see so many people without formal training, no knowledge of how to proof correctness in programming, and no habit of using patterns that allow the validation of the correctness of your program. And they're working on fricking kernels.
      Rust is a necessity for the future. Very few people are getting educated on C anymore, and self-taught people are not getting the formal CS training you need to do it competently on a large and sensitive codebase such as the Linux kernel.

  • @alevyts3523
    @alevyts3523 2 месяца назад +153

    The C language is not intended for writing large programs-according to the creators of the language. In a 1978 paper, Ken Thompson estimated that the UNIX kernel consisted of about 10,000 lines of C code (plus a small amount of assembly language). Other UNIX components were of comparable size; in another 1978 paper, Dennis Ritchie and colleagues estimated the size of the PDP-11 C compiler to be 9660 lines. By today's standards these are really small programs. They thought no one would write programs for 100,000 or even 1,000,000 lines of code in C-this is madness.

    • @zeppelinmexicano
      @zeppelinmexicano 2 месяца назад +19

      What you said, I did not know but have always suspected. The tool has to be correct for the scale of the project, but so does the design of how to use it. I'm not sure we have either for a 25 million line code base, but it's massively popular and reliable in production despite its nightmarish maintenance problems. Some day it has to become a Weekend At Bernie's affair though. Think of how fast it will burn through maintenance coders and all the while The They are discouraging kids from become coders because "AI is going to displace you and leave you homeless with no other skills".

    • @No-mq5lw
      @No-mq5lw 2 месяца назад +13

      Well, at that point 20MB wasn't a trivial amount of storage space to screw around with nor cheap, so going crazy with the LOC wasn't in their best interest. Have a feeling that C was very much designed around the storage and storage constrained programming paradigms of the time, rather than strictly not being for large programs. After all, logic is logic, and logic doesn't really care about how many LOC there are, just if the whole thing works or not.

    • @ivanjermakov
      @ivanjermakov 2 месяца назад +5

      What language has to do with the size and complexity of the project? Proper type definitions and module/artifact separation allows you to split a product of ANY complexity into a reasonable chunks (let's say under 10kloc). The problem is that such projects never have requirements written in advance and built up on top of poor foundations.

    • @dennisk648
      @dennisk648 2 месяца назад +2

      @@ivanjermakov, you are saying it like generations of programmers had no clue.

    • @vargab95
      @vargab95 2 месяца назад +1

      I think maintainability depends more on the quality of design and implementation then LOC or the language. I'm working on a database started somewhere around 1980. It has above 2 million LOC in C and we don't have such problems. We can maintain it and still bring in new features with only a few devs.

  • @kollpotato
    @kollpotato 2 месяца назад +164

    these bot comments are blazingly fast

    • @1roadrage1
      @1roadrage1 2 месяца назад

      Beep boop schizo man!!!!!!

    • @InvalidPersistentName
      @InvalidPersistentName 2 месяца назад +10

      You are blazingly fast 🥔

    • @kollpotato
      @kollpotato 2 месяца назад +3

      @@InvalidPersistentName 🥔🥔🥔

    • @andguy
      @andguy 2 месяца назад +18

      They’re written in Rust

    • @raptorate2872
      @raptorate2872 2 месяца назад +2

      ​@@andguythat's not even funny as rust isn't really as fast as most of its competition. But cultists be culting in the comment section.

  • @erwinkonopka7071
    @erwinkonopka7071 2 месяца назад +41

    Yeah. I worked in code bases like that. Nobody understood how it all worked and it was all strongly coupled so each time you changed something you ran a huge suite of tests and see how much did fail. If 1k+ failed then it was a small mistake and fixing it was easy. If few failed you were ducked since it was a complex set of conditions to cause it.

  • @reaperinsaltbrine5211
    @reaperinsaltbrine5211 2 месяца назад +31

    "The fact thet this product even works is nothing sort of a miracle". This actually sums up nicely ANY modern CPU or GPU or ASIC, made up from billions of basic units - often integrated from different design houses running at 2GHz and up...

  • @censoredeveryday3320
    @censoredeveryday3320 2 месяца назад +9

    I worked at Oracle and on that code base for several years and yes it's all very fragile. Even the build system (called ADE) was this horrible Clearcase monster that used NFS to mount up different volumes to pull in various dependencies and other associated files. The bug tracking system is likely still the same and written in the 90s with web 1.0.

  • @kephir4eg
    @kephir4eg 2 месяца назад +47

    I worked on that code for 6 years. It's not half as bad as it looks. One of the better things I worked on in my career.

    • @Blaisem
      @Blaisem 2 месяца назад +3

      Was the article dishonest then?

    • @kephir4eg
      @kephir4eg 2 месяца назад +30

      @@Blaisem not necessarily. E.g. he brings the q of macros with dozens of flags. It is indeed the case, there can be multiple level deep macros with non trivial conditional logic. But it's not hard to understand how they worked and most of them were very well documented. Sometimes the comments for a macro are hundreds of lines of well written docs. Also, you are developing a highly robust system with extremely complex logic across hundreds of weird features. In plain C. You need some kind of domain specific language on top of C, it makes your life easier not harder. That's just one example. Don't get me wrong, some code was extremely bad. But overall it was an o.k. experience.

    • @zeppelinmexicano
      @zeppelinmexicano 2 месяца назад +6

      @@kephir4eg great comments especially about the domain-specific language to control C with all its macros and flags. I suppose this gives Rust people some hope that they could do a better job but damn, 25 million lines, some very accomplished people have to ride herd over that.

  • @gregjor
    @gregjor 2 месяца назад +47

    Good story, and a typical programmer perspective. He should have mentioned that Oracle created the market for commercial relational databases, which replaced stuff even more crap. Oracle became ubiquitous and one of the most profitable pieces of software ever written. One might even conclude that code quality, as understood by programmers, has little to nothing to do with customers buying and using the code, and making a shitload of money from it.

    • @Fanmade1b
      @Fanmade1b 2 месяца назад +2

      That's really crazy. I've seen a lot of companies running on very bad code but still making a lot of money from being good at selling their shit, and a few companies with good software but bad sales and/or management that failed to become successful.
      I am always wondering if I'll ever find a company which is good at both.

    • @gregjor
      @gregjor 2 месяца назад +4

      @@Fanmade1b Oracle the second largest software company, after Microsoft, by market cap. The next one is SAP, also reported to have a giant crap codebase.

    • @Fanmade1b
      @Fanmade1b 2 месяца назад

      @@gregjor yeah. I've actually had to deal with code from all of them.
      SAP has a special place in my heart.
      One of the companies I worked for which actually had good code was developing an SAP and a PHP (Laravel) application in parallel, with both doing essentially the same, but with different target groups and implementations.
      One day at lunch, the SAP project managers were talking about a new feature that was requested by their customers. Their application basically matched ours in the affected place, so we (at this time PHP devs) asked them to explain that request to us.
      It was basically just one button to run a small series of actions which were always the same in a specific use case.
      We liked the idea, because even though our customers haven't actually asked for it, we could imagine that it could be useful for them and that page in the UI was pretty empty anyway, so that button wouldn't hurt even if it would've been rarely used.
      Since it was such a small task, we didn't even create a ticket for it and deployed it on the same afternoon (or the next day, I don't really remember exactly).
      The customers actually liked it and they started to use it right away.
      A few months later we heard one of the SAP guys mention that use case again and we asked what it was about. He then answered that they tried to implement that functionality, but it didn't work and they had to abandon that part of the project. But the customers already payd five figures for it and everybody was blaming each other. I don't know if it came to a lawsuit, but at that time it already sounded close.
      Well, even though our customers liked our PHP version a lot and they even wanted to have it for other facilities (it was about work safety, mainly used in the oil industry), our boss wanted to focus more on the SAP version, since there was more money in it.
      I quit a few months after he made that decision public and it took about two more years for the company to close down.
      So there we have a case of good software making some money and bad software making a lot of money at first and then none at all after it became a complete mess.

    • @macicoinc9363
      @macicoinc9363 2 месяца назад

      Apple, I’d assume

  • @JarheadCrayonEater
    @JarheadCrayonEater 2 месяца назад +100

    When I was in the Marines, from 1999-2007, Oracle hosted a company party in one of our hangers, and invited a few hundred of us to join.
    We drank all of the beer within the first 30 minutes, and they had to order more. They were pissed, and we didn't care. I've always hated working with Oracle products.

    • @LitheInLitotes
      @LitheInLitotes 2 месяца назад +1

      Just sounds like you're lousy drunks

    • @69k_gold
      @69k_gold 2 месяца назад +3

      Isn't that just your fault💀💀

    • @JarheadCrayonEater
      @JarheadCrayonEater 2 месяца назад +19

      @@69k_gold, what's my fault? That we drank all the beer, and didn't care because fuck Oracle?

    • @friedpizza262
      @friedpizza262 2 месяца назад

      I hope at least you like their beers

    • @christophkogler6220
      @christophkogler6220 2 месяца назад +18

      What did they expect hundreds of Marines to do? NOT drink the free beer? Are they stupid?

  • @Kane0123
    @Kane0123 2 месяца назад +104

    Still better than being a frontend dev.

  • @UnFiltered1776
    @UnFiltered1776 2 месяца назад +38

    This is gonna be good. The bots seem to love it.

    • @NJ-wb1cz
      @NJ-wb1cz 2 месяца назад +15

      Bots seemingly switched to talking about bots to avoid being banned. Any video I click nowadays, the first comments are always about bots and there are no other comments

  • @paraluchs_
    @paraluchs_ 2 месяца назад +20

    Say what you want about the company but the database itself is even constantly evolving. In the releases after 12.2 there were tons of new features all around; Oracle contributes to the SQL standard a lot lately. I guess they must have improved something.
    And the quality is crazy good, imagine pushing an update to critical systems of 90 somewhat percent of fortune 500 companies.
    Amazing piece of engineering.

    • @nERVEcenter117
      @nERVEcenter117 2 месяца назад +6

      The description in the post in the video and "Amazing piece of engineering" are not compatible. If I knew this about the codebase of a product I was critically dependent on, I wouldn't use it. Everyone bends over backwards coping because of organizational inertia: Oracle is trapped supporting DB, and clients are trapped using DB. So everyone acts like it's actually great and a miracle until a failure nukes 5% of the world economy.

    • @paraluchs_
      @paraluchs_ 2 месяца назад

      ​@@nERVEcenter117 Well Oracle is not "trapped". Look at some features of the last 5 years:
      - new JSON format that easily beats mongo in performance
      - vector storage and indexes
      - invented new data access types for graph-relational and json-relational auto mapping
      - introduced domains
      - introduced a data descriptive language
      - AI utilities (chunking and other stuff lang chain would do)
      - Import AI models into the database and run them there
      - huge high availability improvements
      - Multi lingual engine to run JavaScript, Python or Java inside the database
      - leadership position of standardising JSON SQL functionalities, etc.
      You can argue whether you need these features but they definitely are not held-back fighting against their own source code.
      And look up how many times Oracle "nuked up" or anything like that, you will have a hard time finding anything. They are in the game too long for agile quality issues. Also just run on-prem and test patches?!

    • @Blaisem
      @Blaisem 2 месяца назад +9

      Oracle would be more impressive if Postgres didn't exist.

    • @retropaganda8442
      @retropaganda8442 2 месяца назад

      ​@@nERVEcenter117if you do use oracle extensively, you cannot not be amazed at what the product does. It is a great piece of engineering, probably unmatched.

  • @hinzster
    @hinzster 2 месяца назад +21

    2:00 Unix is not a single product either. It's a collection of a lot of different products and it runs on all kinds of different architectures (non-MMU-Unix anybody?). This modularity means some code has been changed A LOT, while some code hasn't changed (because there was no reason to change it). Oracle is a monolith and I wouldn't be surprised if there are some pieces of 1977 code still in the codebase, and you can't just rip them out and replace them with your own shitty code (Rust mentioned, well, I didn't mention Rust, but you know what I mean).

    • @thecollector6746
      @thecollector6746 2 месяца назад +3

      Not really. There is no one "Unix" ; and what is and isn't' a "Unix" depends on who you are asking to at any given moment. Depending on your definition of what a Unix is, it will or will not be a single product. For example...if you are talking about the kernel...it's a single product. If you are talking about GNU Linux...it isn't a single product. If you are talking about any of the mainline BSDs, it's a single product. Ad infinitum.

    • @_sneer_
      @_sneer_ 2 месяца назад

      @@thecollector6746 technically, an OS has to be certified as Unix according to Single UNIX Specification (SUS). Therefore, Unix is a commercial product, since certification to use Unix trademark costs and then certified Unix OS is being sold. GNU's Not Unix, generally Linux Is Not UniX, Free/Net/OpenBSD are not as well. Those are Unix-like systems. Unix has a strict definition. macOS is a Unix, certified to Unix 03 specification. AFAIK only two chinese Linux distros ever had Unix certification: Inspur K-UX 2.0 & 3.0 and Huawei EulerOS 2.0.

  • @mr3745
    @mr3745 2 месяца назад +15

    From your paycheck, to all the essential public and private services you rely on, a large part of your life lives in Oracle databases that are secure, highly available, and have been upgraded and evolved countless times over those 40+ years. Sounds like this guy just doesn't really want to work in a huge, established C code base.

  • @nerdycatgamer
    @nerdycatgamer 2 месяца назад +7

    13:22 just wanna point out that you can do structural typing in C and is done for Unix socket API (like casting struct sockaddr_in* tosttruct sockaddr*), but it relies on potentially unsafe casts and you need to know what you're doing. This is allowed because the standard mandates that the order of struct members is the same as they are declared, and the standard mandates this for this exact use case too lol.
    in actual C code, void* is extremely rare, because it normally sucks. the only time I see void* is for some 3rd party callback API to pass the arguments to a callback function (along the lines of qsort in the stdlib)

  • @kilngod1943
    @kilngod1943 2 месяца назад +7

    LOL - As a dev, having to target multiple engines Oracle, DB2, MS SQL, My SQL, Informix Etc. Oracle is the most over rated, don't get me wrong Oracle is very good but its really about collecting a pay check by the ever shrinking and outsourced Oracle DB team as the total cost of Oracle is out of this world.

  • @dennisk648
    @dennisk648 2 месяца назад +18

    The best comment I put in the code: "I am sorry."

  • @steffenbendel6031
    @steffenbendel6031 2 месяца назад +19

    So Oracle started a month before I was born. And their code is like DNA. Optimised over generations and tested again the environment. It does not make sense anymore, but it works.

  • @ivanmaglica264
    @ivanmaglica264 2 месяца назад +20

    For a 50 year old product, this is not shocking. The coding styles alone have changed so much in that time. Half of those 12mloc are probably tests anyway. I wonder when was the last time they have done a complete rewrite.

    • @meatcow417
      @meatcow417 2 месяца назад +8

      I doubt there's any engineer on their team capable of leading a feat like that. How many decades would one have to work on that software to understand the nuances and use cases of hundreds of flags to know how you would need to simplify and/or remove any of them?

  • @sdi87hhk
    @sdi87hhk 2 месяца назад +13

    I love Linus' unhingedness, God bless his soul lol

  • @gammalgris2497
    @gammalgris2497 2 месяца назад +8

    There must be a lot of requirements after almost 50 years of product history.

  • @kiseitai2
    @kiseitai2 2 месяца назад +2

    Controversy incoming. I love templating in Cpp. My last personal websocket server was made fully with templates. It’s not hard unless you do not give yourself clues. The error stack is occasionally useful but rarely rely on it because templates do make that extremely messy.

  • @retropaganda8442
    @retropaganda8442 2 месяца назад +4

    Oracle 23ai was released as stable just recently. And it's still amazing that it's that stable 😂

  • @jdrumgoole
    @jdrumgoole 2 месяца назад +3

    I worked at Oracle in 2002. When I was there it took 12hrs to compile.

  • @lobovutare
    @lobovutare 2 месяца назад +1

    It's actually quite cool to be able to just give up on a piece of code. I've never ever done that in my life. I've always felt that if I would do that it would end my career immediately. Once, I cried on the toilet after trying to fix a bug for 2 weeks straight. I felt like if I can't fix that bug then I am just now worthy to be a software engineer. After crying I found new inspiration and fixed the bug that day :) That was over 20 years ago.

  • @mab932
    @mab932 2 месяца назад +4

    One trick I've used when there is complex preprocessor code that I can't tell what is going on is run the processor and see the code it generates.

  • @elmoqbobo
    @elmoqbobo 2 месяца назад +2

    I worked 25 yrs oracle dba and application development (from 1983). Now it seems to haved morphed into the inflexible Sap mode. No more fun user exits

  • @yuvrajsingh-gm6zk
    @yuvrajsingh-gm6zk 2 месяца назад +5

    I wanna wish you very luck programmers working on this legacy code in the year 2077!

  • @js32096
    @js32096 Месяц назад +1

    This is excellent content. Idk why I didn’t sub sooner. I need more entertaining and productive coding content in my life

    • @js32096
      @js32096 Месяц назад +1

      FYI it’s not this video why I’m subbing, but the one I watch about the ugly codebase plus knowing I’ve liked other videos of yours. Subbed within the first few minutes of this one.

  • @flyingmadpakke
    @flyingmadpakke 2 месяца назад +1

    Where I work you can't merge with a red x, it's actually kinda smart because it forces you to always run the tests beforehand so you know which ones to delete before making a pull request.

  • @B20C0
    @B20C0 2 месяца назад +2

    To be fair, "Do not break user space" is like the first commandment of Kernel maintainers, so it's kinda understandable Linux flipped.

  • @privatesocialhandle
    @privatesocialhandle 2 месяца назад +7

    I love the comment about Linus. You really need a man like that stop the code crap. Sugar-coating is okay when you performance manage a secretary. But dependable code needs strict and serious controls.

    • @herlegz6969
      @herlegz6969 2 месяца назад +1

      You need direct honest feedback and can do it even with folks who missed something basic without being horrible. No one is perfect, don't expect perfection, but don't allow mistakes.

  • @johanlarsson9805
    @johanlarsson9805 2 месяца назад +3

    Linus defenestrating people is a funny term. He is "throwing them out of windows", so... into Linux?

  • @Felianther
    @Felianther Месяц назад

    This is why you fix technical debt as you go along and it's super important to report and actually fix the debt. If they had clean codebase, all new features would be implemented in hours instead of weeks

  • @mingweihuang6287
    @mingweihuang6287 2 месяца назад +1

    Ive worked on a database software for about 1.5 years, the experience is similar except there are only a core set of tests required to pass for merging (about 20min to run in the code gate, and it's required to run a little bit larger set locally but I never did) while other tests are maintained by specific teams or testers

  • @benbowers3613
    @benbowers3613 2 месяца назад +1

    Googled what defenestrate meant and here's the first definition:
    1.
    RARE
    throw (someone) out of a window.

  • @DataToTheZero
    @DataToTheZero 2 месяца назад

    In case people don't know. If you got complex macro behavior clang and gcc have -E which just processes the macros and spits out what the file looks like to the actually compiler. Remember macros are literally text macros like you would find in a text editor. For Example, #include literally just places the contents of the other file as plain text in your file. Then processes the macros in that text as if they were in your file.

  • @DataToTheZero
    @DataToTheZero 2 месяца назад

    Your tester should be tested by the last good version of your tester. Sort of like the compiler written in the language it compiles. The best part about this is when you implement a language feature and then realize this language feature is the prefect feature for implementing it self. So you implement it twice, once to get it into the compiler and then a 2nd time to use it on itself. The tester version of this would be adding the feature to the tester and then using that feature to test the feature.

  • @BothoHohbaum
    @BothoHohbaum 2 месяца назад +3

    whaaaat? HP-UX, AIX, (...), are no commercial products????!!!!!

  • @davidiamyou
    @davidiamyou 2 месяца назад

    Interned on IBM DB2 10+ years ago. Was not much different with 30M loc. Takes weeks to consult expert developers from different teams to understand some magic feature in order to implement a minimal first version on some new feature. That was before DB2 went for column based. Can’t imagine what’s it like now.

  • @NateSmithIsHere
    @NateSmithIsHere Месяц назад

    This seems just like a giant vent, but no real problem solving. Good luck to anyone in software development.

  • @volchonokilliR
    @volchonokilliR Месяц назад

    Part of it is how it feels like to work on a big ORACLE & PL/SQL codebase running on an ORACLE DB. For example, there was this one big...Query. With subqueries inside it. I only could understand it after color-coding parts which worked together and staring at it afterwards for some hours

  • @ich6885
    @ich6885 2 месяца назад +3

    Shoud've programmed Oracle DB in JDSL 🤷

  • @ser-sf6qd
    @ser-sf6qd 2 месяца назад +3

    thumbnail - POLAND MOUNTAIN

  • @exception05
    @exception05 Месяц назад

    I read a long time ago that early versions of this DB were shitty as hell. In that time Oracle Inc. used IBM DB inside their infrastructure. Only when they migrated to their own Oracle DB, they realised why the clients weren't happy about their product. Through their own usage Oracle DB become a pretty good DB, so far as I recall the first usable version of DB was this one, where they implemented table triggers.

  • @jfieqj
    @jfieqj 2 месяца назад +1

    The thing I don't understand about projects like this enormous C Oracle project are... is there really a good excuse for that? What is keeping them from introducing encapsulation where they can start adding new code in a way that won't break existing code? Start migrating ridiculous code blob monoliths to something resembling reasonable separation of concerns or encapsulation or anything that would make it less insane? Is it purely incompetent leadership or are they somehow trapped in a 25 million line C hell?

    • @thewiirocks
      @thewiirocks 2 месяца назад +4

      The problem with something like Oracle is that you're plugging in a myriad of features to a relatively limited usage path. For example, I bet 12 million of those lines are just the computations for query planning and optimizing. The database has to make decisions about partitions, indexes, parallelization, and join algorithms just to start. Then it also needs to make advanced decisions like "do I apply a star transform here?" or "can I use a bloom filter to prune partitions?" Each of those having massive alternate paths to follow.
      All of that needs to pull together into a final query plan that the database is capable of executing. Is there any wonder there are thousands of flags? It's not necessarily bad architecture. It's just the complexity of the task being performed.

    • @Blaisem
      @Blaisem 2 месяца назад

      I don't know if I'd phrase it as "incompetence." Rearchitecting a 25 million code project _into something better_ would be nothing short of a super computer level of intellect.

    • @UnidimensionalPropheticCatgirl
      @UnidimensionalPropheticCatgirl 2 месяца назад +2

      Oracle still needs their flagship db to scale to insane sizes while maintaining at least reasonable performance, encapsulation and separation of concerns is in conflict with scalability and performance at fundamental level. Plus refactoring enormous C codebase including the insane amount of regression testing is incredibly costly, so it probably aint happening anytime soon.

  • @zeppelinmexicano
    @zeppelinmexicano 2 месяца назад

    Flag Abuse + Macro Abuse = OOP Inheritance Abuse? A lot of nice little tools explode when we scale with them.

  • @jaybrooks1098
    @jaybrooks1098 2 месяца назад

    wait. so oracle was available to the mini computers? can you imagine running a server on one of those s-100 bus systems...

  • @TehKarmalizer
    @TehKarmalizer Месяц назад

    Having used oracle software, I’m not surprised.

  • @itjechnician
    @itjechnician Месяц назад

    Literally have kernel-level malware all the way down to the boot sequence, and its main exe is pulseaudio. Ion even have speakers on my monitor lmaooooo wtf I didnt expect to hear that

  • @Ziggy0120
    @Ziggy0120 Месяц назад

    Im convinced Larry Ellison life force is sustained by the tears and misery of developers forced to interact with oracle products

  • @michaelweaver4439
    @michaelweaver4439 2 месяца назад +4

    What do you mean Unix is not a commercial product?

    • @thewiirocks
      @thewiirocks 2 месяца назад +6

      As much as Primeagen claims to be old, he's actually pretty damn young. He's among the whippersnappers who completely missed the Unix Wars. All they know is Darth Windows and the scrappy (but well funded by their own interests) Linux rebellion.

  • @valentynvorobec7834
    @valentynvorobec7834 2 месяца назад

    I kinda understand him. I started a job in company where whole system infrastructure has been built by one person for 30 years in C. You have to learn so much just to understand basic and transitioning to other languages or separating from it is a slow process. 😂

  • @ffelegal
    @ffelegal 2 месяца назад +2

    What are you talking about? The Linux kernel is 30 million lines of code.

    • @saharatul
      @saharatul 2 месяца назад +2

      Isn't most of that just drivers?

    • @ITSecNEO
      @ITSecNEO 2 месяца назад

      ​@@saharatulyes, the core is pretty small in relation

  • @dd3715
    @dd3715 Месяц назад

    Why all great products started before Uncle Bob manifestos?

  • @bestviralvideosclips
    @bestviralvideosclips Месяц назад

    I still remember working on a legacy on-prem product which was on OSGi. What the heck... is OSGi was my first reaction.

  • @pyaehtetaung
    @pyaehtetaung 2 месяца назад

    Thor said "Caboose" is something you did prime.

  • @silvestroroberto9412
    @silvestroroberto9412 2 месяца назад +1

    If you're an Oracle employee, you can't say publicly that there's a bug, or they'll fire you.

  • @jonathanjacobson7012
    @jonathanjacobson7012 2 месяца назад

    This explains the price of Oracle DB, which is a great product btw.

  • @AdamS-lo9mr
    @AdamS-lo9mr 2 месяца назад

    Can't even imagine what it would be like to work on such a large codebase.

  • @piratestreasure2009
    @piratestreasure2009 2 месяца назад

    Next time we hear Oracle is rewriting everything in Rust.
    Well the same problem was with Apple's Final Cut code, so Apple just rewrote it. New Final Cut had way less features and people were upset but that was the way to go.

  • @amiddled
    @amiddled 2 месяца назад +2

    It's paid for Larry's yacht at least...

  • @AlexMax2742
    @AlexMax2742 2 месяца назад

    Word to the wise. Linus and Theo might have been able to get away with being a jerk to other maintainers in the interests of code quality, but most people aren't a quarter as smart as Linus/Theo, and should probably default to being pleasant.

  • @IsaacShoebottom
    @IsaacShoebottom 2 месяца назад +4

    The funny thing is rhat Unix was a commercial product during its early life through the 70s to 80s.

    • @UnidimensionalPropheticCatgirl
      @UnidimensionalPropheticCatgirl 2 месяца назад +5

      Actual unix distributions (Solaris, AIX, zOS, HPUX) still are almost always commercial and closed source, BSDs and Darwin are the two big outliers in that. Prime just doesn’t remember the early UNIX wars nor the massive BSD legal shenanigans.

  • @williamb9389
    @williamb9389 Месяц назад +1

    Oracles first major “enterprise” deals were with the CIA 😉

  • @PopescuAlexandruCristian
    @PopescuAlexandruCristian 2 месяца назад

    I think this is standard enterprise development if you work on anything that has a relevant user base and is 10+ years old. Our mutant is c++ we strive to keep it modern but my day to day work is similar fix bug/add feature, see 100 failed regressions, try to understand why, try to fix them, repeat

  • @TheSatyamsingham
    @TheSatyamsingham 7 дней назад

    I was asked to clean such a code🤣, it was then i realized how out of depth i was.
    whenever we have to debug some issue, we cant rely on comment on what the stored proc is supposed to do. because it might be doing something completely different.

  • @JorgeEscobarMX
    @JorgeEscobarMX 2 месяца назад

    2:00 I agree with him on this one. I rather have a mean lead maintainer than whatever this Oracle C code base abomination is.

  • @modolief
    @modolief 2 месяца назад

    Mauro - it's probably pronounced MOW-RO - think in these subunits: MA U RO

  • @sophiophile
    @sophiophile 2 месяца назад

    Whats wrong with pulseaudio? Ive used it for tons of stuff without any issue. Added USB audio playing to my router just fine with it.

  • @D.von.N
    @D.von.N 2 месяца назад

    Is this related to the oracle like SGD that after retiring the OSGD I can no longer work over two screens when remotely accessing the drives of my organisation? It was such a breeze previously and suddenly I am restricted to just one screen when I need to work on like 8 windows.

  • @emaayan
    @emaayan Месяц назад

    2:30 the only way linus gets away with this type of communication is that he knows he's irrplaceable, if this was a corporate linus would be plastered by hr so fast no matter if he was right or wrong (unless he was politically connected) or they would have had workplace bullying lawsuites
    Which begs the question is the linux project as good as long as linus... lives? What happpens to it when he's gone?

  • @baumulrich
    @baumulrich 2 месяца назад

    well, oracle would have enough money to potentially just start a new decision, even with 10000 engineers, that copies the code base and refractors it into something maintainable.

  • @logananderon9693
    @logananderon9693 2 месяца назад +1

    How long does it take to fix a bug and push a change to CrowdStrike?

  • @jouebien
    @jouebien 2 месяца назад

    What happens to the kernel when Linus Dies? Will there be someone prevent the kernel going to shit?

  • @fg-zm2yu
    @fg-zm2yu 2 месяца назад

    Linus is right -> do not break your users' operations (your customers).

  • @aaron-pw4nj
    @aaron-pw4nj 2 месяца назад

    If I ever worked for Oracle I will just pretend I'm an techpriest from 40k

  • @CheesyAceGameplay
    @CheesyAceGameplay 2 месяца назад

    Makes me feel good about my current legacy code base…

  • @jordanjackson6151
    @jordanjackson6151 2 месяца назад

    So ummm. What’s the longest line of Assembly Language today?

  • @mastertainment116
    @mastertainment116 2 месяца назад +1

    I thought he was talking about LInus tech tips. lol

  • @drxyd
    @drxyd 2 месяца назад

    They clearly need a rewrite or else they'll suffice themselves into oblivion.

  • @JacoBoogie
    @JacoBoogie 2 месяца назад

    the red check in CI would like to talk to the boy who cried wolf

  • @kamertonaudiophileplayer847
    @kamertonaudiophileplayer847 Месяц назад

    Why don't you ask AI - when Oracle DB was created? It's faster than search.

  • @williamsloan7857
    @williamsloan7857 2 месяца назад

    Linus is still somewhat of a teddy bear compared to Theo DeRaat (OpenBSD)

  • @Jasonlhy
    @Jasonlhy 2 месяца назад +3

    At least there have test cases

  • @brianguzman1428
    @brianguzman1428 Месяц назад

    While it may the be the most unmaintainable code base, at least it can support more workloads and critical feature set then AWS Aurora.

  • @14zrobot
    @14zrobot 2 месяца назад

    Multiply issues by a 1000 and you get Windows

  • @amansagar4948
    @amansagar4948 Месяц назад

    Imagine doing a rewrite of that stuff

  • @tjmnkrajyej
    @tjmnkrajyej 2 месяца назад

    When did "the reason is is X" become grammatically correct?

  • @MarcDunivan-WO
    @MarcDunivan-WO 2 месяца назад

    If ONLY they use Agile Development from the start! 🤣🤣🤣

  • @georgehelyar
    @georgehelyar 2 месяца назад

    The crazy thing is the oracle devs think the mysql code is bad.

  • @indiandeveloper4624
    @indiandeveloper4624 2 месяца назад +1

    As a database developer I can say db developer are the real deal.

  • @LKamii
    @LKamii 2 месяца назад +4

    I refuse to believe that Oracle has got any tests in their code bases.

  • @omnizsk
    @omnizsk 2 месяца назад

    How can I find a link to the original blog post?

  • @mattcargile
    @mattcargile 2 месяца назад

    Oh yeah this was a great post.

  • @-parrrate
    @-parrrate 2 месяца назад

    lawnmower can't steer a ship