"Real" Programmers & Drum Memory - Computerphile

Поделиться
HTML-код
  • Опубликовано: 3 июн 2024
  • Discussing "Real" Programmers from the early days of computing with Dr Julian Onions.
    n.b. When Julian mentions "Real" programmers, he refers to the endless jokes that circulated on early online communities like Usenet.
    / computerphile
    / computer_phile
    This video was filmed and edited by Sean Riley.
    Computer Science at the University of Nottingham: bit.ly/nottscomputer
    Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com

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

  • @davidgustavsson4000
    @davidgustavsson4000 3 года назад +168

    This was no doubt a time when programmer time was cheaper than processor time.

    • @maconth93
      @maconth93 3 года назад +7

      Yes, but do remember that that is still a relatively niche field in computing. The differerence between now and then is that back then programmers were ALWAYS cheaper, not just in a specific niche sub-field.

    • @kensmith5694
      @kensmith5694 3 года назад +9

      I suspect it still is common today. The real question is "Who pays for the time".
      Imagine that a programmer at Microsoft can save some time coding up a portion of Windows by using the "bogosort" method.
      If he goes that path, Microsoft saves perhaps a days pay for him but the millions of computer around the world take a little longer to get something done. Thus the cost is distributed to people who don't know that they are paying it.

    • @Noctew
      @Noctew 3 года назад +11

      True dat. I work with databases, and the number of times I offered to optimize some SQL queries being answered by "no, we'll just add some CPU"...

    • @davidgustavsson4000
      @davidgustavsson4000 3 года назад +1

      We had a moment in one of my early programming courses where the lecturer said "anything from this point on only matters if you are doing computer science. Don't get caught doing these optimizations on the clock as an engineer."

    • @kensmith5694
      @kensmith5694 3 года назад +11

      @@davidgustavsson4000
      That was somewhat bad advice. If you are designing for a very power limited or CPU restricted environment, you need to do some optimizations your self. There are processors that cost $0.10 in quantity and others that cost $5.00. On a $20 consumer product that will sell millions, the $0.10 processor is the better one.

  • @jerrykew
    @jerrykew 3 года назад +11

    In 1976 I worked in the machine room in Wythenshawe for Shell. Big space, 3 mainframes, Two Univac and an IBM 370. They had corridors of drum store. The stats were astonishing, they weighed a quarter tonne each. I *think* 4 heads per track(1/4 latency), and 20,000 rpm. Apparently, they took hours to power up. I never saw that as that only happened on an airconditioning weekend (I wasn't invited :-) ). We had permanent Univac engineers on site. If a unit (tape deck, IOAU, CAU disk, drum etc) went down we handed that cabinet back to Univac, and they handed it back to us when working. 24hour ops of course. Only paid for it working, early AWS!!. Anyway, back to the drums, the engineers were aware of two globally that had had their bottom end bearings fail. Apparently one 'walked' through a couple of CPU or whatever cabinets and exited through a wall, the other had drilled down through the building, you don't argue with a quarter tonne at 20k rpm. I'm sure there was artistic licence to the tales, but I can still recall nervously walking the drum corridors, occasionally peering through the vertical spyglasses at the seemingly motionless drum behind.

  • @thea.igamer3958
    @thea.igamer3958 3 года назад +94

    Real programmers move electrons by hand

    • @RobertShippey
      @RobertShippey 3 года назад +13

      Real programmers build their own electrons in their garage

    • @TomFynn
      @TomFynn Год назад +5

      Real programmers debug the laws of physics.

  • @mentatphilosopher
    @mentatphilosopher 3 года назад +68

    Worked on a TSPS Switch with drum memory the size of a full size washing machine drum. Only element in the switch that was AC to spin it. It stored data tables and had a separate bit in the 34 bit word (32 data, 1 parity, 1 table end mark) to mark end of a table. The table search was hardware implemented. Give the start of the table on the drum and a key and key size and record size and it would search until a match or the end of table mark was found. Still in field use until the end of the 1980s.

  • @john_g_harris
    @john_g_harris 3 года назад +5

    The people writing programs for the English Electric Deuce computer (drum + mercury delay lines for fast access) also wrote in binary. All the tricks Julian mentions were in use which made them 'real' programmers as well.

  • @m1lkweed
    @m1lkweed 3 года назад +59

    Real programmers use butterflies.

    • @williefleete
      @williefleete 3 года назад +2

      and a magnetised needle with a steady hand

    • @noor-rx1ij
      @noor-rx1ij 3 года назад

      XKCD, for the reference.

  • @compu85
    @compu85 3 года назад +19

    Having the data positioned so that it's "ready" at the same time as the processor was used for spinning disks for quite a while - it's called interleaving. On the original PC the hard disk had an interleave of 5 - the disk controller and processor were slow enough that it took 4 sectors of time before they'd be ready to read in the next sector!

    • @jwizardc
      @jwizardc 3 года назад +1

      The processing time included reading the track and sector headers, computing and comparing the CRC (sortof like a checksum), reading the data, and computing and comparing that CRC .

    • @Electrk
      @Electrk 3 года назад +2

      The creators of Myst had to specifically plot out where on the disc each area was stored so that it would load in a decent amount of time

  • @gerteldering
    @gerteldering 3 года назад +26

    This reminds me of the story I heard in the early seventies that one of our genius "real" programmers succeeded in crashing a hard disk by moving the read/write head of the disk continuously between the innermost to the outermost cylinder of the disk. The drive was designed for random access in the literal sense of the word and not for that kind of action and it started to resonate in some way until it crashed.

    • @Roxor128
      @Roxor128 3 года назад +3

      Causing the drive to run in horizontal mode? Those washing-machine-sized drives would have had a massive amount of angular momentum. Properly exploited, I can see the potential to tip the thing over.

    • @drdca8263
      @drdca8263 3 года назад +9

      Wasn’t there a story where some people get some machines to slightly shuffle across the room by doing something like that?

    • @borisgalos6967
      @borisgalos6967 3 года назад +5

      Yes. I was called "walking the disk drive"

    • @Dawwwg
      @Dawwwg 3 года назад +5

      I'm too young for that; but I did code my own MIDI-file player that played 'notes' on the floppy-disk arm, like the Star Wars floppy tune. And of course the test-drive died during it's ~2 week of development :)

    • @esquilax5563
      @esquilax5563 3 года назад +5

      That sounds a bit like what Stuxnet did to those Iranian centrifuges

  • @MisterMcHaos
    @MisterMcHaos 3 года назад +29

    I would encourage anyone who's interested in this sort of content to acquire and read a copy of "The Jargon File".

  • @jwizardc
    @jwizardc 3 года назад +5

    The first computer I wrote (The Mark I) for had drum memory. It also had a separate Arithmetic and Logical units. My favorite "trick" was to the machine cycles that were required for a mathematic operation and execute logical instructions. For example, the divide instruction took 12 cycles. That works out to 8 - 12 logical instructions while the math unit cranked.
    It also had (if I remember correctly) 12k of 24 bit words of ram.
    Ouch. It hurts to remember that far ago.

    • @danmerillat
      @danmerillat 3 года назад

      Always cool to hear about the early days. That tradition of careful scheduling has continued to this day; from the separate floating point chip in the way-back where you could do exactly that same trick to modern processors that peek ahead and put future instructions on separate ALUs to run them at the same time.

  • @moofree
    @moofree 3 года назад +57

    Reading instruction codes as integer inputs is pretty awesome.

    • @recklessroges
      @recklessroges 3 года назад +13

      Nothing could possible go wrong with that. (Ignore the debug nightmare for the next person... it probably won't by you.) /s ;-)

    • @pgriggs2112
      @pgriggs2112 3 года назад +9

      This whole bit is lifted from the Jargon File. There is a great first-person account of a programmer that was sent in to help Mel. Spoiler: he gave up!

    • @fredgotpub871
      @fredgotpub871 3 года назад +3

      It's very meta.

    • @silaspoulson9935
      @silaspoulson9935 3 года назад +4

      @@pgriggs2112 not help - had to edit code after Mel left

    • @martensjd
      @martensjd 3 года назад +5

      Instruction codes are integers. Awesome, sure. How every computer you've ever used works, yes.

  • @Tasarran
    @Tasarran 3 года назад +58

    Wouldn't these be... drum memory roll... 'reel' programmers? :D

  • @werdna2231
    @werdna2231 3 года назад +2

    Heard the following from a former co-worker - take it as you will. A new drum-based hard drive was deployed to an airport control center. The drum spun at a "gajillion" RPM. It also had a foot pedal to activate an emergency brake. The emergency brake was rated for one use. The U.S. Federal Aviation Administration regulator required the installer to demonstrate that the emergency brake worked. In other words, spin up the disk and activate the brake. Installer explained that would use up the one-and-only-one guaranteed brake activation. Regulator didn't care. "Rules say..."

  • @dipi71
    @dipi71 3 года назад +2

    So many interleaving techniques related to these drum-based tricks. e.g. spiralized sector formatting for fast-loading data from floppy disks.

  • @usafa1987
    @usafa1987 3 года назад +61

    Real programmers use Verilog to CREATE the hardware, then programs down to it.

    • @iulianoprea6659
      @iulianoprea6659 3 года назад +10

      @@0x90h Hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaha.
      We all know that programmers are what you call Stack Overflow dwellers that use macbooks and drink expensive coffee.

    • @pluto8404
      @pluto8404 3 года назад +19

      Real programmers mine the metals for the computer hardware with their bare hands, collect the silocon in a stomach from a sperm whale they speared with nothing but a bamboo stick, and cast the parts in the skull of a 500lb gorilla they killed in a fist fight. Then after all that, they install the latest distribution of linux and install Scratch programming language and get to work.

    • @iulianoprea6659
      @iulianoprea6659 3 года назад +1

      @@pluto8404 This is........ this is ..... this is beautiful my man.....

    • @paulk314
      @paulk314 3 года назад

      I'm working on such a project now! ^_^

    • @humm535
      @humm535 3 года назад +4

      @@0x90h Real programmers don’t need to think long. Real programmers just write their programs. Stackoverflow wouldn’t know the solution a real programmer would come up with, consisting of self-modifying programs written in FORTRAN. Stackoverflow is only used by quiche eaters.

  • @BytebroUK
    @BytebroUK 2 года назад +1

    Once upon a time in the late 70s I wrote pipe-lined microcode where you could do different instructions in a single clock cycle. So very aware of using instruction timing and clock speeds to speed things up. But never until this did I realise that the same things were sometimes used to slow things down!
    Interesting vid.

  • @stephenwoods4118
    @stephenwoods4118 3 года назад +4

    Also plotters, that used stepper motors to move paper and pen in X and Y, by default the time per step was .01 second which made the damn thing very noist as the stepper motors had to stop and start. Adjusting the pot on the controller to run at about 120+ Hz made everything run much faster, 10 times more quiet and cooler as well. A three way win. OH yeah and it ran the diagnostic perfectly (the diagnostic drew trefoils all around and inside a square and were supposed to over trace the previous run (if you hadn't dropped any steps).

  • @jjdawg9918
    @jjdawg9918 3 года назад +12

    A modern day example of "real" programming is writing assembly language delay loops to accommodate the timing in different lengths of PCB traces to DDR memory pins, where the instructions to create the delay do something useful(e.g. temperature measurement). And then using this to modify the delay for clock timing drift over different temperatures.(don’t ask me how I know). Javascript programmers will never know, and I'm glad they don't have too.

    • @Segphalt
      @Segphalt 3 года назад +2

      Or design the pcb with meanders in the first place...

    • @jjdawg9918
      @jjdawg9918 3 года назад +3

      ​@@Segphalt You are correct about using meanders but I think you missed the point which is given a piece of hardware with constraints that “cannot be changed” you come up with real programming optimizations. In this case the meanders could not be added due to PCB size limitations (or maybe 10,000 PCBs were already manufactured with a bad layout; that never happens ;-)

  • @RonJohn63
    @RonJohn63 3 года назад +97

    Don't forget that Real Programmers Don't Comment Their Code.

    • @666Tomato666
      @666Tomato666 3 года назад +14

      well, obviously, it's a waste of butterfly wings to add comments to the code

    • @DarkNexarius
      @DarkNexarius 3 года назад +6

      Real Programmers only write in binary.

    • @RonJohn63
      @RonJohn63 3 года назад

      @@DarkNexarius Real Programmers write in macro, but *can* write binary (since they know how to deassemble code).

    • @alexjohnward
      @alexjohnward 3 года назад +2

      @@666Tomato666 they can comment with pencil on punch cards.

    • @Yubel1100
      @Yubel1100 3 года назад +3

      @@adamburr so no naming a variable this_variable_does_this_and_should_be_used_for_that :P

  • @computer_toucher
    @computer_toucher 3 года назад +7

    Wow, the video was about exactly what I'd thought it would be after reading the title :)

  • @aliceanderson5154
    @aliceanderson5154 3 года назад +77

    "Real programmers go straight down to the metal"

    • @tocsa120ls
      @tocsa120ls 3 года назад +17

      You have to. Embedded designers do it to this day. You don't always get the luxury of megabytes of RAM, sometimes you have to fit whatever you need into 4k.

    • @deidara_8598
      @deidara_8598 3 года назад +5

      Id' say it hugely depends on the task you're trying to accomplish. Sometime it can be benefitial to go down to the metal if you're dealing with performance constraits, other times it's better to do things in a higher-level language like Python.

    • @deidara_8598
      @deidara_8598 3 года назад

      @referral madness Java? Not exactly assembly, but it gets compiled into a sort of psuedo-assembly which can be fully assembled by the local Java distribution, which is why it's able to run on pretty much everything.

    • @dandan7884
      @dandan7884 3 года назад +3

      mining the minerals, smelting it, building the measuring tools required to create more advanced measuring tools using smelted minerals mined previously... i think there are no "real" programmers on earth :(

    • @deidara_8598
      @deidara_8598 3 года назад +1

      @referral madness Generally when it comes to computer languages, the more you hide under the hood, the slower it gets. A high-level language will always be slower than pure assembly. On the other hand you have languages like C and BASIC, which comes close to what you're describing.

  • @davedaley9093
    @davedaley9093 5 месяцев назад

    The IBM 650"s memory was on a drum storage unit which the SOAP program (i.e. Symbolic Optimized Assembly Program) could locate the instructions so that when one execution was completed the next instruction would be coming under the read head to be decoded and executed.

  • @DamonWakefield
    @DamonWakefield 3 года назад +2

    Brings back memories of my time at MIT when we programmed on a PDP-2.

  • @MalachiTheBowlingGod
    @MalachiTheBowlingGod 3 года назад +1

    Retelling one of my fav stories, thanks!

  • @pgriggs2112
    @pgriggs2112 3 года назад +17

    Please be the story of Mel. It’s the story of Mel! Yoo-hoo!

  • @patternwhisperer4048
    @patternwhisperer4048 3 года назад +12

    "Real" programmers use their computer science education to apply/choose appropriate layers of indirections to get their jobs done :^)

    • @mikefochtman7164
      @mikefochtman7164 3 года назад +1

      hehehe... We had a saying in Machine Language class.... "No problem is so difficult that it can't be solved by adding another layer of indirection."

    • @MrRedstoner
      @MrRedstoner 3 года назад +2

      @@mikefochtman7164 Except having too many layers of indirection.
      That's how the joke usually goes.

  • @stephenwoods4118
    @stephenwoods4118 3 года назад +1

    Was a drum computer (Called a MonroeBot , so I'm toled) who's instruction format was OPCODE, Next address. One could hand optimize the program on the drum so that just as the instruction was finishing the next instruction was just coming up on the drum.

  • @TomFynn
    @TomFynn Год назад

    Fun fact: As a kid - back then, before the flood - public libraries still had punch cards tucked in the back of the books, which were used to log that you checked out the book.

  • @alexisxander817
    @alexisxander817 3 года назад

    Computerphile is the most pragmatic channel on RUclips for me

  • @blackblather
    @blackblather 3 года назад +28

    INTIMATE WITH THE MACHINE 😍😍😍

    • @ayush.kumar.13907
      @ayush.kumar.13907 3 года назад

      like Kevin from Paradise PD

    • @lunahoshi2844
      @lunahoshi2844 3 года назад +6

      do not horny the computer

    • @Diapolo10
      @Diapolo10 3 года назад +1

      @@lunahoshi2844 You doubt my convictions, my reasons.

    • @FedJimSmith
      @FedJimSmith 3 года назад

      I will marry a Quantum Computer,, that would make me an ultimate Quantum Programmer

  • @BertGrink
    @BertGrink 3 года назад +10

    I hope they will tell the story of the Blackjack program in the next episode.

    • @-..-_-..-
      @-..-_-..- 3 года назад +3

      lol that's what I thought this would be

  • @davidmurray3542
    @davidmurray3542 3 года назад +2

    I went to university with a "real" programmer. His ideas were older than the lecturers (and none of them could stand him)

  • @classawarrior
    @classawarrior 3 года назад

    How did you tell the computer the address of the next operation you wanted it to run, after processing the (e.g. multiply) instruction you just gave it? Would it not just advance to the next memory location after processing each operation? Or was "oh by the way, the next instruction starts at offset X" part of the instruction set somehow?

  • @paulwomack5866
    @paulwomack5866 10 месяцев назад

    I strongly suspect Mel K was programming a Bendix G-15 (made 1956-1963), which was a comparatively common machine; around 400 were made. A clue is the company Mel worked for; "Royal McBee". And the technical characteristics fit.

  • @senkottuvelan
    @senkottuvelan 3 года назад +1

    These guys provide world class knowledge from nothing but diy stuff.

  • @martixy2
    @martixy2 3 года назад +1

    Real programmers blow on a butterfly's wings, triggering a tornado on the other side of the world that causes cosmic rays to refract through the atmosphere to flip memory bits to the right pattern.

  • @Czeckie
    @Czeckie 3 года назад +11

    in this video: horribly unmaintainable code

    • @daverotors
      @daverotors 3 года назад +3

      Look up the story of Mel the Real Programmer. It's from the perspective of the guy who was supposed to maintain it because Mel refused to do some changes :D

    • @MrRedstoner
      @MrRedstoner 3 года назад +2

      @@daverotors Or rather, did the opposite change because he valued his integrity

  • @georgebizos944
    @georgebizos944 3 года назад +2

    Would be interesting to see what "real" programming looks like today...

  • @rogeratygc7895
    @rogeratygc7895 3 года назад +1

    The first computer I used was a Stantec Zebra which had a drum memory; it kept a teleprinter (not even as fast as a teletype) waiting while it worked out the next decimal digit of a number.
    Oh, and apparently only "real" programmers have a sense of humour, judging by some of the comments!

  • @markrice41
    @markrice41 3 года назад

    You should do an article on Donzi, and the things he did with the HP computer to build a successful control for Bunker Ramo.

  • @linkVIII
    @linkVIII 3 года назад +11

    Just google "Story of Mel"

  • @vivekvarma3079
    @vivekvarma3079 3 года назад

    Please do a video on containers and containerization like docker, etc

  • @PopeLando
    @PopeLando 3 года назад +2

    A classic Real Programmer story! 🤯

  • @miharix
    @miharix 3 года назад

    What software do you use to draw your graphical animations ?

  • @toddmarshall7573
    @toddmarshall7573 3 года назад +1

    CRT storage came before drum storage. I think delay line storage came after drum storage. First I saw it used was on Control Data 200 User Terminals. They used it to refresh the screen.

    • @rennleitung_7
      @rennleitung_7 5 месяцев назад

      Drum storage was invented in the early 1930s, but I didn't find an early computer, that used drum storage.

  • @NestorCustodio
    @NestorCustodio 3 года назад +54

    "A real programmer is someone who isn't afraid to use GOTOs." ... That statement right there will get you *fired* most days.
    Also, fun fact for the kids out there: before flash storage, optical media, hard drives, floppy disks, tape storage, drum memory, magnetic-core memory, and even mercury-delay lines, there was CRT storage. Yes, CRT *storage*.

    • @farhanarieframadhan8139
      @farhanarieframadhan8139 3 года назад +2

      The monitor?

    • @yokmp1
      @yokmp1 3 года назад

      I would like to watch a video about Tubes in general.

    • @geethakm3273
      @geethakm3273 3 года назад +2

      Sir can a 'crt' be a memory,
      I love to hear from you more

    • @Tumbolisu
      @Tumbolisu 3 года назад +10

      Most programming languages still don't have an option to break out of multiple nested loops at once, making GOTO the best option.

    • @vladimir520
      @vladimir520 3 года назад +4

      ​@@Tumbolisu Exactly, that's what they're best used for. Use it for anything else and you get spaghetti code, but this is the single best use of gotos.

  • @senkottuvelan
    @senkottuvelan 3 года назад

    So first time computerphile without subtitles.

  • @thinboxdictator6720
    @thinboxdictator6720 3 года назад +20

    C-x M-c M-butterfly

  • @swiftfox3461
    @swiftfox3461 3 года назад

    Did you ever hear the tale of The Real Programmer? I thought not. It's not a story the Jedi would tell you. It's a hacker legend. Mel K was a Real Programmer, so powerful and so wise he could use memory drums to influence the Machine Code to create... life.
    He had such a knowledge of the dark side that he could even keep the programs he cared about from crashing. The dark side of the Machine Code is a pathway to many abilities some consider to be... unnatural. He became so powerful, the only thing he was afraid of was losing his cross-platform portability, which eventually, of course, he did.

  • @RealCadde
    @RealCadde 3 года назад +9

    Real programmers design their own hardware.

  • @DanielKarbach
    @DanielKarbach 3 года назад +3

    Speaking of Mel, have you done a bit on "The File" yet? (Not "The Phile" :P)

  • @Hal9526
    @Hal9526 3 года назад

    I wonder if this fellow is any relation to the great lexicographer Charles Talbut (C.T.) Onions?

  • @x3ICEx
    @x3ICEx 3 года назад +3

    But if you miss your prediction by a single millisecond then you need to wait for a full rotation of the drum.

    • @kensmith5694
      @kensmith5694 3 года назад

      That is only true for a miss in one direction. Thus you perhaps always over estimate just a little.

  • @laurv8370
    @laurv8370 3 года назад +3

    That's how to take a beautiful story and make a roll of toilet paper from it. But we love the toilet paper roll, the future internauts will know this is a 2020 video... :D

  • @guilhermedutragonzagajaime5898
    @guilhermedutragonzagajaime5898 3 года назад +1

    Dear Computerphile team, would you please enable auto subtitles and auto translation to all your youtube videos? This way We'll be able to recommend your videos to non-english speaking students.

  • @tocsa120ls
    @tocsa120ls 3 года назад +12

    If you've ever programmed a C64, you know how to time stuff to the badlines, how to write a raster line that goes all the way through the screen, etc. And what "little endian" means. Which is the correct endian-ness, by the way.

    • @vladimir520
      @vladimir520 3 года назад +1

      If you ever tried learning ASM of any kind and got to stacks you must have learned about little endianness ;P
      I've never actually written in ASM and I know what little endian means lol (all that other stuff though...)

    • @humm535
      @humm535 3 года назад +2

      > And what "little endian" means.
      I expect every programmer who touched to machine code compiled, imperative languages once to know what endianess is. That is nothing special.

    • @davedaley9093
      @davedaley9093 5 месяцев назад

      As one coming from the IBM mainframe world I would consider big-endian the correct endian-ness. Little-endian is DEC perversion.

  • @Armageddon2k
    @Armageddon2k 3 года назад +3

    A real programmer disregards the work that others have done. Yeah, seems about right...

  • @Phelan666
    @Phelan666 3 года назад +1

    When you think about it a hard disk is just a melty drum.

  • @_aullik
    @_aullik 3 года назад +3

    You would know that if you were a real professor that people have specializations and not everyone is coding directly to the hardware. Specially today when your program has to work on many different hardware.

    • @tiddergreen3667
      @tiddergreen3667 3 года назад +2

      Sounds like is very limited in what he can do these days and doesn't want to move with the times and recognise doing everything from scratch isn't always the best way

    • @_aullik
      @_aullik 3 года назад +2

      @@tiddergreen3667 I mean hardware near programming is fun. So understanding your hardware and creating fun projects will increase your coding level. That being said, its a fun project, not a production project. (That is unless you're named ben eater and your production is selling the fun project XD)

  • @pruthalikhankar4427
    @pruthalikhankar4427 3 года назад

    Please enable captions/ subtitles ..

  • @LewisCowles
    @LewisCowles 3 года назад

    I imagine "real programmers" red-case code paths would be a subject to bring balance to all this.

  • @allstartuition267
    @allstartuition267 3 года назад

    Everyone criticising the prof clearly didn’t read the description.

  • @CraftMine1000
    @CraftMine1000 3 года назад

    On a side note, that broken disk really broke, since the heads weren't parked I assume they crashed into the disk after a controller failure or impact failure, bet it made quite a noise as well

  • @danmerillat
    @danmerillat 3 года назад

    How do you tell the computer to jump to an arbitrary instruction without using an instruction as a goto?

  • @TheSpacecraftX
    @TheSpacecraftX 3 года назад

    Problem is it only works on one computer. You have to know that that memory drum is used at the same speed, with the same processor speed as the computer the program was written for.

    • @danmerillat
      @danmerillat 3 года назад

      In those days, entire companies would only have one computer.

  • @THEMithrandir09
    @THEMithrandir09 3 года назад

    Can we get an episode about geohashes?

  • @tidemover
    @tidemover 3 года назад +3

    One thing to keep in mind is to even control an 8086 using hex code isn't an easy task(Which I did with an 8085) . Plus , you would be wasting time reinventing the wheel . Since routines etc are already written.

    • @pgriggs2112
      @pgriggs2112 3 года назад

      Mel wasn’t wasting time as there were no functions to use except for his! Lol!

    • @kensmith5694
      @kensmith5694 3 года назад

      @@pgriggs2112
      Early machines didn't have a call instruction
      On things like the PDP-8, the "call" was "jump to subroutine"
      That instruction stored the return address where you pointed it to and then started doing instructions that followed that location. Recursive code was slightly harder to write on a machine like that.

  • @3dlabs99
    @3dlabs99 3 года назад

    These skills are still very relevant -- just look at modern CPU-design.

  • @vic91020
    @vic91020 3 года назад

    It's a shame such low level interactions are not portable... I really want to know how he tried to keep that barely mantainable

  • @waasar
    @waasar 3 года назад +2

    Just learnt that I'm not actually a programmer

  • @qqq1234x
    @qqq1234x 3 года назад +14

    Terry Davis was a real programmer..

    • @-..-_-..-
      @-..-_-..- 3 года назад +1

      that's true, which is why his os only works on one architecture lol

    • @qqq1234x
      @qqq1234x 3 года назад

      @@-..-_-..- c'mon bro he created his own os from a scratch on his own... just take a moment to appreciate his genius hard work... will you.. xD

    • @jmw1500
      @jmw1500 3 года назад +1

      @@qqq1234x No. Intro operating systems is an undergraduate course. Any relatively smart person can make an OS on their own.
      He spent most of his decades making the OS big and fancy looking, with games and other random things.

    • @qqq1234x
      @qqq1234x 3 года назад +2

      @@jmw1500 :V
      Waw can u make me an OS? I need it! :D ty very much

    • @qqq1234x
      @qqq1234x 3 года назад +3

      @@jmw1500 also make a new programming lang and a compiler first.. :D ty much appreciated.. :)

  • @R.-.
    @R.-. 3 года назад +1

    Which came first: reel programmers or drum programmers? Ba dum tish.

  • @TheAMadMan
    @TheAMadMan 3 года назад +2

    The way he says "real"programmer is a truly exclusionary way to talk about your profession. To me it sounds more like those guys were doing the best with what they had, but were really working with inadequate technology that hindered rather than helped their goals.

  • @swapnilrana2206
    @swapnilrana2206 3 года назад

    Wow, it's so cool to watch Satya Nadella and Bill Gates talking

  • @burpleson
    @burpleson 3 года назад +2

    Real Programmers Don't Eat Quiche

  • @anarcho.pacifist
    @anarcho.pacifist 3 года назад +1

    I'm not a real programmer, but a floating-point one (point one). :)

  • @goranjosic
    @goranjosic 3 года назад +10

    A real programmer would spin that disc with his own hand! :D

    • @pvc988
      @pvc988 3 года назад +2

      Real progreammer would mine raw materials for his computer himself.

  • @subliminalvibes
    @subliminalvibes 3 года назад

    Curta calculators! ;D

  • @chamaldesilva
    @chamaldesilva 3 года назад

    Are programmers of unreal engine real or unreal?

  • @nathancortes3722
    @nathancortes3722 3 года назад +3

    I disagree with the premise, a real programmer ought to be able to use logic correctly.

  • @LuizDahoraavida
    @LuizDahoraavida 3 года назад +2

    Between breaking DRY principle and using a well labeled goto, I'd roll with the goto.

  • @mayankraj2294
    @mayankraj2294 3 года назад

    The intro sounds like news from an ai intelligence worlds.......................

  • @nutsnproud6932
    @nutsnproud6932 3 года назад

    Thanks for the video. The video is fine at 240p on my very slow ADSL.

  • @peppers1758
    @peppers1758 3 года назад

    Could they not just STOP the drum from moving? No Steppers?
    "Real programmers use GOTO" hahaha

  • @humm535
    @humm535 3 года назад

    “Real Programmers don’t use Pascal.”

  • @avi12
    @avi12 3 года назад

    For me, the best programmer of all time is gotta be John Carmck

    • @QDIGS06
      @QDIGS06 3 года назад +2

      What about Terry A. Davis.

    • @peterfireflylund
      @peterfireflylund 3 года назад

      QDIGS06 mr Davis didn’t hold a candle to Carmack.

  • @kylewilson4097
    @kylewilson4097 Год назад

    Sounds as if a 'real' engineer would adjust the rotation rate of the drum to match their required timing so that timing was optimized. Personally I'm a very real programmed (and a BS EE with significant digital design experience) but I would never play these sorts of low level games (not that many would work in a modern pipelined cached, speculatively executing CPU) as the code would become a maintenance nightmare as less experience people needed to maintain it in the future.

    • @not_herobrine3752
      @not_herobrine3752 9 месяцев назад

      this could either be interpreted as "job security" or "a hostage situation" depending on how you look at it

  • @cranknlesdesires
    @cranknlesdesires 3 года назад

    Real programmers hand craft the cogs they use.

  • @user-cy1rm5vb7i
    @user-cy1rm5vb7i 3 года назад

    am I the only one who waited for some fun tale of this machine going out of sync and completely messing things up?

  • @pj20050
    @pj20050 3 года назад +3

    The core take away is to consider the spatial and temporal locality of your data and organise it to be cache friendly; this isn't something many programmers give much thought to unfortunately, they're more concerned with how it looks in their text editor as if the source is the product they ship rather than the binary.

    • @pj20050
      @pj20050 3 года назад +1

      @@niklas3128 You sound pretty ignorant on the matter or just don't care about the performance of your program. I suggest you watch Mike Acton's presentation from CPP con 2014 to be enlightened on just how "intelligent" compilers are at producing optimisations and how much they can really help you.

  • @CharlesAntoinePavy
    @CharlesAntoinePavy 2 года назад

    1 machine = 1 binary

  • @TimothyWhiteheadzm
    @TimothyWhiteheadzm 3 года назад +1

    These days, a real programmer just buys a faster SSD. Problem solved.

    • @kensmith5694
      @kensmith5694 3 года назад

      This doesn't apply if you are making code for a micro controlled commercial product. These days things like your clothes washer has a micro with many lines of code. The cheaper the processor that can be used the more goes to the bottom line.

  • @torb-no
    @torb-no 3 года назад

    I’m not a real programmer, I’m a imaginary programmer.

    • @nickpalance3622
      @nickpalance3622 3 года назад +1

      Then all you need to do is turn yourself 90 degrees.

  • @lucidmoses
    @lucidmoses 3 года назад +8

    Your idea of a "Real" programmer is way out of date. Back when computers were simpler those optimizations where simple enough. Now a days if any of my people did that we would have words.

    • @kensmith5694
      @kensmith5694 3 года назад +1

      That just means you are not "a real manager". The question to always ask is "was that the best choice for getting the job done"

    • @lucidmoses
      @lucidmoses 3 года назад +3

      @@kensmith5694 "best choice for getting the job done" Absolutely not! Not only would we have words. that would get you fired if you kept up that nonsense. Absolutely no one on my team is allowed to be that short sighted. "Real" programs produce things that are;
      Fault torrential.
      Check point able.
      Back out recoverable.
      Well balanced with resources and other concurrent processes.
      Long term maintainable.
      etc etc.
      You show me a shop that focuses/priorities getting the job done and you'll find that shops thrust is at screwing over there customers or critically focused on time because they are too busy fighting fires cased by programming hacks that are focused on what "was that the best choice for getting the job done".
      Systems don't exist to satisfied the ego of one developer.

    • @kensmith5694
      @kensmith5694 3 года назад

      @@lucidmoses
      You have the who fires whom backwards.
      "best choice to get the job done" is the right question in all design. That you can't see that even after the prompt from me means you are doing harm to whoever you work for. You are not a competent manager.

  • @not_a_human_being
    @not_a_human_being 3 года назад

    Real programmers never use whitespace.. or is that real hackers?

    • @kensmith5694
      @kensmith5694 3 года назад +1

      "whitespace" is also the name of a computer language.

  • @rennleitung_7
    @rennleitung_7 5 месяцев назад

    Real (and unreal) programmers are useless without inventors like Gustav Tauschek, who invented the drum storage some 90 years ago. A "real" 😉 enthusiast would have mentioned him.

  • @TheJaguar1983
    @TheJaguar1983 3 года назад +3

    We're so spoiled as programmers these days. Compilers do so much optimisation for us, including re-ordering instructions based on CPU cycles (a digital equivalent to efficiently placing instructions on the drum)

  • @jimbobbyrnes
    @jimbobbyrnes 3 года назад

    i would call them mechanical programmers since most programmable machines today have no moving parts and the price of them makes them disposable. no reason to learn the mechanics if there are none. all you have to do is minimize latency with better memory since the cost of the memory is probably less than the cost of your time.

  • @abbasogaji958
    @abbasogaji958 3 года назад

    Mehn i wish i could school here

  • @raykent3211
    @raykent3211 3 года назад +3

    Sorry, but i think this is poor. Valves are slow? They were fast enough for the MHz range, which is a heck of a lot faster than a drum, or I think, a modern hard disk. Ergo: machine needs an adder, the adder can add 7 much quicker than searching on a drum for a numerical instruction that happens to have the value 7. Which, of course, must not be overwritten without messing up the instruction set. What a weird example, the adding of a literal constant. As for the seeming machismo of not being afraid to use goto (ponder the choice of the word "afraid"), well I'm not the least bit afraid. Nor am I afraid of beetroot, I just don't like it. The later subroutine call simply embeds a goto along with a return address. So the programmer is using a goto, but not explicitly. Which is hardly ever inefficient. Is this man from the Ark?

    • @costa_marco
      @costa_marco 3 года назад +1

      Is your nick Key Rant? ;)

    • @pgriggs2112
      @pgriggs2112 3 года назад +1

      In a way, yes. Mel was the operating system! Otherwise, there wasn’t any room for one. To your point, there is a reason you are not familiar with the Royal McBee Computer Company now days.

    • @peterfireflylund
      @peterfireflylund 3 года назад +1

      Ray Kent valves were fast... but expensive. So machines back then were bit serial. Internal registers could use valves (expensive) or acoustic delay lines (slowish). Delay lines didn’t have to use a liquid. A metal wire worked fine. An add instruction involved more than just reading a value from the drum a bit by bit and adding it to some other number in a register... so the drum *did* move a bit during the add. It moved more during a multiply. Some kind of floating-point support wasn’t unusual at the time, which was even slower.