57 ms·
Just an aside, but it always felt weird to me that we call is bare-metal while the actual code runs on mostly semiconductors. I am very glad that in my bachelo
by newswasboring 7y ago
Just an aside, but it always felt weird to me that we call is bare-metal while the actual code runs on mostly semiconductors.
I am very glad that in my bachelor program our microcontrollers class actually made us hand enter hex codes in a kit. It got tedious after a while (maybe it should have been for only a few weeks not the whole semester), but it gave me a weird sense of being one with the machine. And it has as awesome ice breaker when talking with older programmers. For some of them I am the only one of my age that they have met who has ever done this. Another thing is it helped me sort of see the flow of it and encouraged optimization.
(I don't want to give too much credit to my college, they did it not as some great pedagogical trick but to save money and laziness)
- caspper69 7y agoMy first actual programming class was on an Intel 8085 kit, and I have to say that hand-assembling on pre-printed carbon sheets was pretty cool. It has served me well in my career to have started at that level.
- alharith 7y agoIt would serve everyone well to start at that level. I write enterprise CRUD webapps, and learning these things helped me tremendously. Unfortunately we now have a culture that views this type of knowledge acquisition as "gatekeeping"
- prox 7y agoHow so? Why would that be gatekeeping?
- terminalcommand 7y agoMaybe that is so, because teaching people assembly allows them to pull magic tricks on companies. An example I can think is Apple banning all dynamic code generation and execution on ios apps.
- alharith 7y agoSearch on twitter for "computer science" and "gatekeeping" and ask all those people, I dunno. I gave up trying to reason with unreasonable people a long time ago.
- commandlinefan 7y agoNot OP but I can venture a suggestion. There are a lot of people who believe that programming computers is fundamentally simple, and that programmers really only need to know about 10% or so of the things that programmers are traditionally taught. These are the people who will insist that things like algorithms and data structures are meaningless for most programming tasks: as long as you remember all of the Javascript keywords, you've got as much education as you need. So if you or I come along and say "you'll be a better programmer in any language if you understand assembler", somebody else will invariably accuse you of perpetuating an elitist system that prioritizes meaningless theory over actual practice (i.e. "gatekeeping").
- throwaway894345 7y agoI think it's largely people talking past each other. One group claims that deeper understanding is useful and the other group says "no way, you don't need deeper understanding to get into (e.g., web) dev!". Being useful doesn't mean "necessary for an entry level position in the highest-level subdomains of computing".
- commandlinefan 7y ago> necessary for an entry level position I still can't figure out how programming computers (the most complex task a human can undertake) managed to become singled out as the only profession in the history of humanity that is simultaneously assumed by so many to be something you need only a cursory understanding of to be proficient at.
- newswasboring 7y agoYeah the claim that it is "the most complex task a human can undertake" is a little.... iffy. I mean, most of the times its really not. Most of programming is exactly as complex as most of civil engineering or most of plumbing. Most of a sufficiently mature field is usually not that complex at all because the most complex stuff is abstracted out. My civil engineering friends don't design bridges from scratch and my plumber doesn't threads the pipes themselves. They rely on industry standards which give them enough abstraction to be productive. Now this is not to say on the frontiers of it its not very complicated. But so is every other field. Ever thought about plumbing a space station? Or designing a rapid deploy bridge? You can't compare frontiers of one field with the middle of the other.
- pjc50 7y agoIt's entirely in the phrasing. "It would be beneficial to learn how the machine actually works" versus "you're not a real programmer unless ..." Bootcamps demonstrate that not knowing assembly is not a barrier to earning a decent software engineer salary.
- pjmlp 7y agoMost universities and technical schools of enough quality do have Assembly programming classes, even if it is a kind of light introduction to the subject.
- tyingq 7y agoI think it might come from auto body shop terminology. We would remove layers of paint or rust and get down to the "bare metal" for prep work. That "down to the bare metal" phrase was very commonly used. That is to say "no layers" or "right on the substrate". Just a guess though.
- newswasboring 7y ago> That is to say "no layers" or "right on the substrate". Ok, I feel very pedantic saying this, but the substrate is the thing that is mostly semi conductors :P.
- deleted 7y ago[deleted]
- pjc50 7y agoThis "silicon is not a metal" pedantry is a whole new layer of tedium. But if you want to take it that way: the data is mostly carried in the metal layers of aluminium, and the substrate is .. a substrate that's not doing very much.
- newswasboring 7y agoIf you really want to be pedantic then the data is processed and stored in flip flops and stored as charge in semi conductor dielectrics. But don't take this so seriously, I work in semiconductor manufacturing and even I don't take it that seriously.
- torbital 7y agoI've always thought: All possible abstraction removed = bare metal
- ChrisSD 7y agoOn x86/64 only the CPU vendors go down to that level. Well them and security researchers.
- deleted 7y ago[deleted]
- GeorgeTirebiter 7y agoBare metal comes from mainframe days. The largest systems like IBM 360-67 and others were called "Big Iron" - see https://www.ibm.com/ibm/history/ibm100/us/en/icons/system360/transform/ https://www.ibm.com/ibm/history/ibm100/us/en/icons/system360... for NASA's moonshot-era Big Iron. You could run programs on OS/360 or you could, if daring, run code directly on the machine, on the "Bare Metal". It's quite common to run 1-card programs on the Computer History Museum's IBM 1401 --- which was not really considered 'Big Iron' at the time, although today we call it a 'Mainframe' https://computerhistory.org/exhibits/ibm1401/ https://computerhistory.org/exhibits/ibm1401/
- newswasboring 7y agoInteresting. But why were they called big iron? It doesn't seem to be in IBMs marketing material (at least I couldn't find it) and the wikipedia reference points to a 2005 vulture article where they call it the big iron[1] [1] https://www.theregister.co.uk/2005/07/20/ibm_mainframe_refresh/ https://www.theregister.co.uk/2005/07/20/ibm_mainframe_refre...
- stan_rogers 7y agoHasn't always been semiconductors... or electronics at all, for that matter. That just happens to be the current majority physical implementation, where metal is a little scarcer than it used to be.
- abhishekjha 7y agoWe also pogrammed the 8085 machine very recently(2015). It was a very weird feeling realising all the myriad of abstactions come down to basic load/store/arithmetic/logical instructions. Had fun implementing squaring a number whose result wouldn't fit in a register. EDIT: It was 8085 kit, not 8086.
- basementcat 7y agoAstrophysicists consider any element heavier than Hydrogen or Helium a metal. :) https://en.wikipedia.org/wiki/Metallicity https://en.wikipedia.org/wiki/Metallicity
- leggomylibro 7y agoIndividual transistors are made of doped silicon, but I think that integrated circuits still contain plenty of metal - the gates are connected by 'wires', after all.