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

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ก.ย. 2024
  • Recorded live on twitch, GET IN
    My Stream
    / theprimeagen
    Best Way To Support Me
    Become a backend engineer. Its my favorite site
    boot.dev/?prom...
    This is also the best way to support me is to support yourself becoming a better backend engineer.
    MY MAIN YT CHANNEL: Has well edited engineering videos
    / theprimeagen
    Discord
    / discord
    Have something for me to read or react to?: / theprimeagenreact
    Kinesis Advantage 360: bit.ly/Prime-K...
    Get production ready SQLite with Turso: turso.tech/dee...

ความคิดเห็น • 312

  • @zachmoring284
    @zachmoring284 20 วันที่ผ่านมา +304

    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 20 วันที่ผ่านมา +26

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

    • @zeppelinmexicano
      @zeppelinmexicano 20 วันที่ผ่านมา +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 20 วันที่ผ่านมา +11

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

    • @michaelewen5498
      @michaelewen5498 20 วันที่ผ่านมา +4

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

    • @CallousCoder
      @CallousCoder 20 วันที่ผ่านมา +2

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

  • @Kynatosh
    @Kynatosh 20 วันที่ผ่านมา +313

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

    • @matthijskortekaas3811
      @matthijskortekaas3811 20 วันที่ผ่านมา +10

      Skill issue

    • @connorsmith6039
      @connorsmith6039 20 วันที่ผ่านมา +8

      Someone get Flip another coffee

    • @Reichstaubenminister
      @Reichstaubenminister 20 วันที่ผ่านมา +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 20 วันที่ผ่านมา +2

      Its been confirmed. Prime is an AI 😂

    • @jfieqj
      @jfieqj 20 วันที่ผ่านมา +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.

  • @yintercept4612
    @yintercept4612 20 วันที่ผ่านมา +244

    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 20 วันที่ผ่านมา +15

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

    • @mxbx307
      @mxbx307 16 วันที่ผ่านมา

      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 14 วันที่ผ่านมา

      😂 too real... Just dealt with this

    • @Brettler99
      @Brettler99 11 วันที่ผ่านมา

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

  • @disieh
    @disieh 20 วันที่ผ่านมา +63

    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 19 วันที่ผ่านมา

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

    • @georgerogers1166
      @georgerogers1166 18 วันที่ผ่านมา

      Theo DeRadt is even better.

    • @censoredeveryday3320
      @censoredeveryday3320 18 วันที่ผ่านมา +3

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

    • @StCreed
      @StCreed 10 วันที่ผ่านมา

      ​@@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 20 วันที่ผ่านมา +132

    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 20 วันที่ผ่านมา +16

      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 20 วันที่ผ่านมา +8

      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 20 วันที่ผ่านมา +4

      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 20 วันที่ผ่านมา +2

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

    • @vargab95
      @vargab95 20 วันที่ผ่านมา +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.

  • @king4aday4aday
    @king4aday4aday 20 วันที่ผ่านมา +134

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

    • @PySnek
      @PySnek 20 วันที่ผ่านมา +20

      in scratch!

    • @Ayotundejerry
      @Ayotundejerry 20 วันที่ผ่านมา +2

      🤣 We get the joke

    • @waltwhite8126
      @waltwhite8126 20 วันที่ผ่านมา +4

      BLOW, Jonathan.

    • @ArrKayLondon
      @ArrKayLondon 15 วันที่ผ่านมา

      Someone clearly went to the Elon Musk school of programming.

  • @jfernandez76
    @jfernandez76 20 วันที่ผ่านมา +31

    Fun fact: is you reverse Oracle, then it says "Elcaro", which in spanish means "the expensive". I heard this joke probably 25 years ago.

    • @jonathanjacobson7012
      @jonathanjacobson7012 20 วันที่ผ่านมา +2

      So it makes Oracle the OPPOSITE of expensive

  • @erwinkonopka7071
    @erwinkonopka7071 20 วันที่ผ่านมา +28

    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.

  • @matt_milack
    @matt_milack 20 วันที่ผ่านมา +241

    I know a guy who has been working in various IT roles since the mid-90s. Once, I asked him what the hardest role he ever stumbled upon was. He told me that you need to be a literal genius to be a database administrator. Now, I kind of see why.

    • @as_below_so_above
      @as_below_so_above 20 วันที่ผ่านมา +38

      Pretty accurate. Databases are rather complicated once you look under the hood and start tinkering around.

    • @Xnozea
      @Xnozea 20 วันที่ผ่านมา +40

      Database Admin or Database Developer?

    • @matt_milack
      @matt_milack 20 วันที่ผ่านมา +10

      @@Xnozea Admin.

    • @jamesp1389
      @jamesp1389 20 วันที่ผ่านมา +16

      I absolutely hated learning about databases at uni

    • @MattThomson
      @MattThomson 20 วันที่ผ่านมา +27

      On the surface database admin seems pretty straightforward. When you have to keep a production cluster performing and redundant offsite for immediate disaster recovery scenarios it gets pretty in depth. Add to that the specific indexing and weird workload balance that differs even between sites using the same software.

  • @kollpotato
    @kollpotato 20 วันที่ผ่านมา +155

    these bot comments are blazingly fast

    • @1roadrage1
      @1roadrage1 20 วันที่ผ่านมา

      Beep boop schizo man!!!!!!

    • @InvalidPersistentName
      @InvalidPersistentName 20 วันที่ผ่านมา +10

      You are blazingly fast 🥔

    • @kollpotato
      @kollpotato 20 วันที่ผ่านมา +3

      @@InvalidPersistentName 🥔🥔🥔

    • @andguy
      @andguy 20 วันที่ผ่านมา +17

      They’re written in Rust

    • @raptorate2872
      @raptorate2872 20 วันที่ผ่านมา +1

      ​@@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.

  • @gregjor
    @gregjor 20 วันที่ผ่านมา +43

    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 20 วันที่ผ่านมา

      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 20 วันที่ผ่านมา +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 20 วันที่ผ่านมา

      @@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 17 วันที่ผ่านมา

      Apple, I’d assume

  • @censoredeveryday3320
    @censoredeveryday3320 18 วันที่ผ่านมา +6

    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.

  • @Kane0123
    @Kane0123 20 วันที่ผ่านมา +94

    Still better than being a frontend dev.

    • @elorrambasdo5233
      @elorrambasdo5233 20 วันที่ผ่านมา +3

      So true

    • @MrEnsiferum77
      @MrEnsiferum77 19 วันที่ผ่านมา +1

      it's not even a job frontend dev

  • @ivanmaglica264
    @ivanmaglica264 20 วันที่ผ่านมา +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 20 วันที่ผ่านมา +6

      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?

  • @JarheadCrayonEater
    @JarheadCrayonEater 20 วันที่ผ่านมา +95

    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 20 วันที่ผ่านมา +1

      Just sounds like you're lousy drunks

    • @69k_gold
      @69k_gold 20 วันที่ผ่านมา +2

      Isn't that just your fault💀💀

    • @JarheadCrayonEater
      @JarheadCrayonEater 20 วันที่ผ่านมา +14

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

    • @friedpizza262
      @friedpizza262 20 วันที่ผ่านมา

      I hope at least you like their beers

    • @christophkogler6220
      @christophkogler6220 20 วันที่ผ่านมา +13

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

  • @UnFiltered1776
    @UnFiltered1776 20 วันที่ผ่านมา +38

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

    • @NJ-wb1cz
      @NJ-wb1cz 20 วันที่ผ่านมา +14

      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

  • @hinzster
    @hinzster 20 วันที่ผ่านมา +20

    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 20 วันที่ผ่านมา +1

      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_ 20 วันที่ผ่านมา

      @@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.

  • @sdi87hhk
    @sdi87hhk 20 วันที่ผ่านมา +13

    I love Linus' unhingedness, God bless his soul lol

  • @dennisk648
    @dennisk648 20 วันที่ผ่านมา +15

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

  • @nerdycatgamer
    @nerdycatgamer 20 วันที่ผ่านมา +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)

  • @kephir4eg
    @kephir4eg 20 วันที่ผ่านมา +43

    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 20 วันที่ผ่านมา +2

      Was the article dishonest then?

    • @kephir4eg
      @kephir4eg 20 วันที่ผ่านมา +27

      @@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 20 วันที่ผ่านมา +5

      @@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.

  • @steffenbendel6031
    @steffenbendel6031 20 วันที่ผ่านมา +14

    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.

  • @lobovutare
    @lobovutare 16 วันที่ผ่านมา +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.

  • @paraluchs_
    @paraluchs_ 20 วันที่ผ่านมา +15

    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 20 วันที่ผ่านมา +4

      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_ 20 วันที่ผ่านมา

      ​@@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 20 วันที่ผ่านมา +8

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

    • @retropaganda8442
      @retropaganda8442 20 วันที่ผ่านมา

      ​@@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.

  • @mr3745
    @mr3745 20 วันที่ผ่านมา +13

    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.

  • @reaperinsaltbrine5211
    @reaperinsaltbrine5211 20 วันที่ผ่านมา +23

    "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...

  • @gammalgris2497
    @gammalgris2497 20 วันที่ผ่านมา +8

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

  • @yuvrajsingh-gm6zk
    @yuvrajsingh-gm6zk 20 วันที่ผ่านมา +5

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

  • @kiseitai2
    @kiseitai2 20 วันที่ผ่านมา +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.

  • @kilngod1943
    @kilngod1943 20 วันที่ผ่านมา +6

    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.

  • @mab932
    @mab932 20 วันที่ผ่านมา +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.

  • @B20C0
    @B20C0 20 วันที่ผ่านมา +2

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

  • @retropaganda8442
    @retropaganda8442 20 วันที่ผ่านมา +3

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

  • @volchonokilliR
    @volchonokilliR 6 วันที่ผ่านมา

    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

  • @elmoqbobo
    @elmoqbobo 18 วันที่ผ่านมา +1

    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

  • @flyingmadpakke
    @flyingmadpakke 20 วันที่ผ่านมา +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.

    • @xPinkyDash
      @xPinkyDash 13 วันที่ผ่านมา +1

      ...wait a minute.

  • @johanlarsson9805
    @johanlarsson9805 20 วันที่ผ่านมา +2

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

  • @mingweihuang6287
    @mingweihuang6287 20 วันที่ผ่านมา +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

  • @jdrumgoole
    @jdrumgoole 20 วันที่ผ่านมา +1

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

  • @TehKarmalizer
    @TehKarmalizer 9 วันที่ผ่านมา

    Having used oracle software, I’m not surprised.

  • @benbowers3613
    @benbowers3613 20 วันที่ผ่านมา +1

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

  • @DataToTheZero
    @DataToTheZero 19 วันที่ผ่านมา

    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.

  • @ser-sf6qd
    @ser-sf6qd 20 วันที่ผ่านมา +3

    thumbnail - POLAND MOUNTAIN

  • @BothoHohbaum
    @BothoHohbaum 20 วันที่ผ่านมา +3

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

  • @DataToTheZero
    @DataToTheZero 19 วันที่ผ่านมา

    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.

  • @ich6885
    @ich6885 20 วันที่ผ่านมา +3

    Shoud've programmed Oracle DB in JDSL 🤷

  • @davidiamyou
    @davidiamyou 15 วันที่ผ่านมา

    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.

  • @exception05
    @exception05 7 วันที่ผ่านมา

    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.

  • @silvestroroberto9412
    @silvestroroberto9412 16 วันที่ผ่านมา +1

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

  • @michaelweaver4439
    @michaelweaver4439 20 วันที่ผ่านมา +4

    What do you mean Unix is not a commercial product?

    • @thewiirocks
      @thewiirocks 20 วันที่ผ่านมา +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.

  • @Jasonlhy
    @Jasonlhy 20 วันที่ผ่านมา +3

    At least there have test cases

  • @lucetta-v7v
    @lucetta-v7v 20 วันที่ผ่านมา +398

    What are the best strategies to protect my portfolio? I've heard that a downturn will devastate the financial market, so I'm concerned about my $200k stock portfolio.,..

    • @tegan-x6r
      @tegan-x6r 20 วันที่ผ่านมา

      Mind if I ask you to recommend this particular coach you using their service? Seems you've figured it all out.

    • @tegan-x6r
      @tegan-x6r 20 วันที่ผ่านมา

      Thank you for the lead. I searched her up, and I have sent her an email. I hope she gets back to me soon.

    • @thatanimepfpguy
      @thatanimepfpguy 20 วันที่ผ่านมา

      BUY PHYSICAL GOLD

    • @birthdayzrock1426
      @birthdayzrock1426 18 วันที่ผ่านมา +3

      @@thatanimepfpguy bot thread

  • @logananderon9693
    @logananderon9693 20 วันที่ผ่านมา +1

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

  • @privatesocialhandle
    @privatesocialhandle 20 วันที่ผ่านมา +6

    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 20 วันที่ผ่านมา +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.

  • @AdamS-lo9mr
    @AdamS-lo9mr 19 วันที่ผ่านมา

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

  • @IsaacShoebottom
    @IsaacShoebottom 20 วันที่ผ่านมา +4

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

    • @UnidimensionalPropheticCatgirl
      @UnidimensionalPropheticCatgirl 20 วันที่ผ่านมา +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.

  • @pyaehtetaung
    @pyaehtetaung 20 วันที่ผ่านมา

    Thor said "Caboose" is something you did prime.

  • @valentynvorobec7834
    @valentynvorobec7834 17 วันที่ผ่านมา

    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. 😂

  • @zeppelinmexicano
    @zeppelinmexicano 20 วันที่ผ่านมา

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

  • @ffelegal
    @ffelegal 20 วันที่ผ่านมา +2

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

    • @saharatul
      @saharatul 20 วันที่ผ่านมา +2

      Isn't most of that just drivers?

    • @ITSecNEO
      @ITSecNEO 20 วันที่ผ่านมา

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

  • @jonathanjacobson7012
    @jonathanjacobson7012 20 วันที่ผ่านมา

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

  • @mastertainment116
    @mastertainment116 20 วันที่ผ่านมา +1

    I thought he was talking about LInus tech tips. lol

  • @amiddled
    @amiddled 20 วันที่ผ่านมา +1

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

  • @sophiophile
    @sophiophile 20 วันที่ผ่านมา

    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.

  • @JacoBoogie
    @JacoBoogie 20 วันที่ผ่านมา

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

  • @mattcargile
    @mattcargile 15 วันที่ผ่านมา

    Oh yeah this was a great post.

  • @D.von.N
    @D.von.N 20 วันที่ผ่านมา

    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.

  • @jaybrooks1098
    @jaybrooks1098 19 วันที่ผ่านมา

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

  • @jfieqj
    @jfieqj 20 วันที่ผ่านมา +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 20 วันที่ผ่านมา +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 20 วันที่ผ่านมา

      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 20 วันที่ผ่านมา +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.

  • @LKamii
    @LKamii 20 วันที่ผ่านมา +4

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

  • @brianguzman1428
    @brianguzman1428 14 วันที่ผ่านมา

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

  • @a.k8069
    @a.k8069 20 วันที่ผ่านมา +5

    Mauro = Maw-Row

  • @LuxGamer4ever
    @LuxGamer4ever 20 วันที่ผ่านมา

    What an ending to a video

  • @PopescuAlexandruCristian
    @PopescuAlexandruCristian 19 วันที่ผ่านมา

    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

  • @-parrrate
    @-parrrate 20 วันที่ผ่านมา

    lawnmower can't steer a ship

  • @JorgeEscobarMX
    @JorgeEscobarMX 17 วันที่ผ่านมา

    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.

  • @emaayan
    @emaayan 8 วันที่ผ่านมา

    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?

  • @piratestreasure2009
    @piratestreasure2009 20 วันที่ผ่านมา

    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.

  • @CheesyAceGameplay
    @CheesyAceGameplay 20 วันที่ผ่านมา

    Makes me feel good about my current legacy code base…

  • @baumulrich
    @baumulrich 19 วันที่ผ่านมา

    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.

  • @jouebien
    @jouebien 20 วันที่ผ่านมา

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

  • @fg-zm2yu
    @fg-zm2yu 20 วันที่ผ่านมา

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

  • @alberto3028
    @alberto3028 20 วันที่ผ่านมา

    What a monster!

  • @aaron-pw4nj
    @aaron-pw4nj 20 วันที่ผ่านมา

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

  • @omnizsk
    @omnizsk 20 วันที่ผ่านมา

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

  • @williamsloan7857
    @williamsloan7857 20 วันที่ผ่านมา

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

  • @AlexMax2742
    @AlexMax2742 19 วันที่ผ่านมา

    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.

  • @modolief
    @modolief 20 วันที่ผ่านมา

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

  • @jordanjackson6151
    @jordanjackson6151 20 วันที่ผ่านมา

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

  • @MarcDunivan-WO
    @MarcDunivan-WO 20 วันที่ผ่านมา

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

  • @indiandeveloper4624
    @indiandeveloper4624 20 วันที่ผ่านมา +1

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

  • @14zrobot
    @14zrobot 20 วันที่ผ่านมา

    Multiply issues by a 1000 and you get Windows

  • @ffs55
    @ffs55 20 วันที่ผ่านมา +1

    Hall of fame episode right here. Shows how a pure Go solution is lean and mean and kills it -- all running on the metal. a 100W mac mini M1 can run a 50 meg exe Go-based server and tear through workloads while efficiently using ram. idle footprint of just 20 megs of ram.

  • @JeremyAndersonBoise
    @JeremyAndersonBoise 20 วันที่ผ่านมา

    Mauro earned that one, ngl

  • @leila-codes
    @leila-codes 16 วันที่ผ่านมา

    The one thing I don't understand is why these devs don't sound like they help themselves and others. Like if I spent two weeks trying to understand said macro I'd litter the thing with comments so the next poor soul can save at least 1 hour of their time reading through the macro next time. 😅

  • @2rx_bni
    @2rx_bni 19 วันที่ผ่านมา

    Mauro is pronounced as mahroh. Italian is hard.

  • @TheTeddie
    @TheTeddie 20 วันที่ผ่านมา

    The name...

  • @jonathanniels
    @jonathanniels 20 วันที่ผ่านมา

    Flaky tests are the best

  • @drxyd
    @drxyd 20 วันที่ผ่านมา

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

  • @tjmnkrajyej
    @tjmnkrajyej 20 วันที่ผ่านมา

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