3 ms·
It's an impressive, yet symptomatic feat. With more and more people getting into coding and languages of higher and higher levels, less of us are turning to th
by guhcampos 7y ago
It's an impressive, yet symptomatic feat.
With more and more people getting into coding and languages of higher and higher levels, less of us are turning to the lower levels of computer science. Lots of developers did not study CS at all and the ones who did mostly neglected the computer architecture classes - myself included.
Sometimes I stop and wonder that most of my low level compute knowledge comes as mere luck because I ended up working for the EDA industry for a few years. If I had not, I'd be a computer scientist with close to no understanding of how a computer actually works. We should all know our HDL's.
- baybal2 7y ago> Lots of developers did not study CS at all I do feel the same. A lot of "computer science" degrees are in fact just basic programming ones, and that often goes to masters, and rare cases PhD level degrees. It is a common critic from industry that "computer science does not teach how to code," and I see too many universities seemingly taking it these days. It is ironic how once computing science was once a road to unemployability and coding was all rife, but now companies don't want to hire people without degrees to do menial jobs like webdev.
- Klathmon 7y agoCan we try to stop this gatekeeping and putting down some jobs as if they are "menial". A lot of the webdev work I've done has been significantly more challenging and technically difficult than most of the C work I've done. That's not to say C is "easier", it's not, but it is different. I've seen shitty devs in all areas, and I've worked menial jobs both in webdev and at the embedded C level (I had to write C code to display a custom font on a shitty LED display, that was easily the most boring job I've ever done).
- vectorEQ 7y agoi don't do web stuff because it's horrible frustrating and difficult. C is nice, i love it as it matches the pc platform and you can debug it normally etc. A lot of people like to hate on 'frontent developers' or 'full stack javascript developers' or w/e but you are right. whatever floats your boat will be 'better' and 'more logical' than whatever sinks your ship. for me thank sinking is caused by scipring and CSS. for others that might be C.
- cheschire 7y agoDon't let yourself get too cynical! Development is becoming more accessible, and this is skewing the ratio. I bet there are far more low level developers now than 30 years ago, however.
- baybal2 7y ago> I bet there are far more low level developers now than 30 years ago, however. 30 years ago every developer at least knew how bits and bytes with logic operations work. Now, just any minimally proficient C/Cpp devs are genuinely hard to find. I may well say that there are less of them in total now. C development community shrank a lot over the years. Things went so bad that now some people suggest running whole web servers on MICROCONTROLLERS to just blink some LEDs!
- Klathmon 7y ago> Things went so bad that now some people suggest running whole web servers on MICROCONTROLLERS to just blink some LEDs! Why is that such a bad thing? Even microcontrollers are magnitudes more powerful than they were years ago, so why stick with other "simpler" methods when you can go with something more secure, easier to write and understand, and more "standard"? I'm one of those people running webservers on microcontrollers (you'll hate this, but I program my esp8266 controllers in JavaScript!), and it seems silly to lament that. They are cheap (about $3 a piece to my door), power efficient (battery life is measured in months for the battery powered devices), and all of my code is about a dozen lines of simple code that allows me to integrate with the rest of my system.
- keepmesmall 7y agoWhy save cycles today if you can borrow tomorrow?
- rsynnott 7y agoVisual Basic (where many people didn't really know what variables were) existed 28 years ago. And it wasn't the first thing like that, by any means. Even 50 years ago, well, things like COBOL and MUMPS were fairly divorced from the details.
- deleted 7y ago[deleted]
- masterisks 7y ago>my low level compute knowledge But does it really make you better than other, very unlucky programmers, who doesn't have the "low level computer knowledge"? Does it make you the REAL programmer? Because it's not. Because that's THE reason we have higher-level programming languages (and also lower-level ones) in the first place. Is computer just a black box to you? That's completely fine. >computer scientist with close to no understanding of how a computer actually works Which is how it's supposed to be. Don't be such a gatekeeper.
- porlw 7y agoWhat I find fascinating is that Lisp, commonly perceived as too high level to be practical, is actually at its core (in its original implementations!) an incredibly low level language.
- otakucode 7y agoReally? One of the only things about Lisp and other functional languages that strive to be pure that trips me up is that I could not guess how to write a compiler for one, and especially with ample lazy evaluation I'm really not sure what the execution of a program would end up being in terms of the stream of instructions going through the CPU. When it comes to imperative coding, I at least have a fairly good idea, but with LISP I haven't the slightest idea. Does it create stack frames and do calls when recursing or does it simple 'emulate' it through maintaining its own stack? I could tell you what it's doing in terms of lambda calculus, or what it would be doing on the CPU if I had to write a Lisp 'emulator'... but what the actual Lisp runtime is doing, I've no idea!
- lispm 7y agoLisp isn't purely functional. There are a bunch of books which explain how to write Lisp compilers. There are a bunch of different strategies. > Does it create stack frames and do calls when recursing That's what a typical Lisp might do. It might also change the stack frame and just jump to a function... It's also relatively easy to check out, since Common Lisp has a built-in disassembler. One can take an implementation, compile a function and see the generated code. Just call the function DISASSEMBLE with a function object...
- btilly 7y agoIf you're interested, The Structure and Interpretation of Computer Programming winds up writing a Scheme interpreter in Scheme. This is part of a proud and surprisingly long-standing tradition. The first Lisp interpreter was originally written in Lisp by one person, and then hand translated into assembly by another. This came as a surprise to the rest of the lab who had intended to work on an actual implementation in a year or two. You know, some time after they came up with a real syntax for it.