>>You'll never make it with JavaScript user, you don't really know how to code until you learn all of these niche academic languages (some of the ones memed about are high level like Lisp)
Is low level a meme? Why do neckbeard programmers push it so much?
Dunno, i suck assembly dick because i fucking love binary exploiting, reverse engineering and malware writing.
Fragile white dudes can’t stand seeing people of color succeed and quite frankly win with JavaScript, Swift, Python, etc, so they pretend all that work is meaningless.
>low level a meme?
No, it's all about performance.
Imagine not being able to read a binary lmao
This.
Of course it has a place but is it the holy fountain from which all CS knowledge flows even if you're gonna mostly code in Java, Python, JavaScript like most working people do?
Its always good to know how lower languages work. But no, its not absolutely necessary if you just want to be a codemonkey
>you're gonna mostly code in Java, Python, JavaScript like most working people do?
aka the peasants
many "programmers", esp JavaScript, Lisp, Python has no idea how to use debugger.
O O P
O
L
tfw haven't used a debugger in years because print statements combined with breakpoints work well enough
>breakpoints without a debugger
u fockin wot?
>C
>low level
into the trash
"Debugger" usually refers to deeper features than breakpoints. Any IDE has breakpoints, even fucking notepad++ has breakpoints.
If you know low level, you know everything. It's like learning a manual car first, then going to use automatic.
Also, performance, the python meme is fucking horrible
C and C++ are not low level languages. They have nothing to do with modern hardware. If your language compiles to machine code, you can write performance software on it. C and C++ just happen to have a large set of optimisations which help.
web.archive.org
how did you learn to do this stuff
another garbage thread
everything that's being used clearly has a purpose
no you're not going to code a website in x86 assembly so fucking stop asking
en.wikipedia.org
>A low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture—commands or functions in the language map closely to processor instructions.
It's surely low level by that definition.
you're retarded
Great counterargument.
he's just stating facts
if you think that C "provides little or no abstraction from a computer's instruction set architecture" in modern days you are, unfortunately, retarded
an argument to what, your personal opinion on what low-level is?
You really think these 2 sides are the same level of abstraction? Assembly language is an abstraction by itself as well
Repeating a baseless insult doesn't makes it factual.
>an argument to what, your personal opinion on what low-level is?
I posted a Wikipedia definition and data. Where do you see a personal opinion?
>You really think these 2 sides are the same level of abstraction? Assembly language is an abstraction by itself as well
Obviously not, but I don't see why you think this is relevant. Relative to other 'higher level' languages, as you can see in Keller's slide, C is 'lower level' by definition. Scapegoating the compiler doesn't change this.
>non-whites are too retarded to code
Most racist shit i have read kek.
They are cause you can manipulate the RAM directly.
am I supposed to call Rust low-level as well now?
Christ you people are retarded, go fuck yourselves with your neverending revisionism
Cause that uses a lib you could call Java through its JNI also low level language
knowing how to assemble a jet engine does not make you a jet engine designer
losses in performance will be negligible in most cases, assuming code has good enough quality. at high level there are different priorities anyway, it's more important to release stuff on time and have it easy to modify and extend
for python to be fair its rather because most software uses tons of libaries, so the actual product doesnt require that much code as it is not where the actual computing happens
not him but if you want a personal opinion how to divide low and high level abstractions, consider this:
>low level is when code describes the instructions you give to the computer
>high level is when the code describes the business logic you sell to the user - implementation details (computer instructions) can be omitted
of course there's more levels of abstraction than just "high" and "low". applications can have an arbitrary number of internal abstractions. the operating system can have an arbitrary number of abstractions. hardware can have its own abstractions. it also depends on the perspective, one person's "high" will be another person's "low".
>tfw haven't used a debugger in years because print statements combined with breakpoints work well enough
This is how I program. Code. Print statement. Expected? Good. More code. Print statement.
Idiot. C has *nothing* to do with x86-64, ARM RISC, and PPC.
Only on some microcontrollers. Contemporary OSs have virtual memory, which C does not take in effect.
Protip: High end Intel and AMD chips are a tiny, tiny, tiny fraction of all processors out there.
Maybe in production numbers, but as an architecture they dominate the laptop and desktop market. A market people recommend C and C++ as low level languages, which they are not.
It's a mixture of elitism since low level languages are seen as harder, a look back at "better times" when low level languages were the norm and the observation that while computer grew more powerful, computing actually got slower because performance was only considered a factor in so much that it would run on the machines it targetted at all. I think we could improve a lot with better coding standards and making the languages we are largely using now more efficient. Nobody is helped by the people who are making shitty Python code today producing shitty Assembly code tomorrow. Just because a language lets you optimize it, doesn't mean its programmers will.
Can I do low-level programming in C#? What language / resource should I use to learn low-level programming coming from .NET web stuff?
But notepad++ uses an external debugger to make them work.
You must be new here nigger
If you know assembly, you know how the machine actually works. It's not necessary if you just want to make shitty websites for jewgold.
It will come in handy in the coming years as commercial technology turns into insubordinate iShit, and the States of the world come to take advantage of an unprecedented level of access to your private lives.
>Why do neckbeard programmers push it so much?
no they don't
everything assembly related thread/tutorial/discussion I've seen mentions it's power, but limited use
you're making a false claim and dancing a victory dance because you managed to win an argument no one makes
sir! we are even winning i n real time languages like java. we have icon of java sir
In this day and age low lwewl programming doesn't matter anymore unless you are a senior developer working with hardware.
making it =/= getting a code monkey job 10+ years and then getting fired/becoming an excel pusher until retirement
Passable for early college, undoable for any real world application.
That's why I hate coding so much, thank goodness I left, so much retarded shit to deal with
Programming is writing your ideas in code. If you have to sit down and debug at all you are either using the wrong language or have no idea what you want really.
Reversing is much more fun than being a js codemonkey
to overcome the cloud operating system.
A friend and I just fucked around on the computer and got our way through trial and error, good old Pentium 2 days
Business programming is writing someone else's ideas in code. You have to debug because their ideas are insane.
Well the low level languages are totally worth it because you can build anything from scratch
It's the gateway to embedded. And you should never go embedded, it's not worth it. Your colleagues are literal boomers. You'll be stuck debugging logic gates, porting undocumented drivers while getting lead poisoning at the same time. You learn nothing of value the entire time, there's no room for growth. Also if you end up in defense sector you're automatically on a list for the rest of your life. I had to wear something equivalent to a bomb suit and work in an air gapped room at my first gig.
Yeah working with fat colored hair dykes, trannies and nu-males is much better! I bet you like Rust too fag
is learning pseudo code a waste of my time or what
Thinking about learning assemhly to write hacks to games(mmorpgs) and cracking games, is just learning assembler enough or is there anything else i should know?
must add, doing this to get some money, i have literally no jobs to apply fuck living in a 3rd world.
Lol touche.
how will you get money doing that
>defense sector
Like Raytheon? Tell me more about that I really want to work for them.
For cracking games i can get a patreon or donations or voluntary bitcoin mining.
for hacks i can simply sell them.
>sell them
is there a market for that? where can i find it
I am not quite sure where you can find this kind of shit but you can take commissions for trainers and bots, i'd wager that for mmorpgs its specially profitable
>>that provides little or no abstraction
C provides abstraction over all the instructions from the cpu. This makes it a high level language period. This is why C code is portable in the first place. What it does do to enhance performance is map it's instructions closely to how most cpus work. But we could for example also write a compiler for quantum cpus which work completely different from the archs we use now. If we we compiled C code to a quantum computer the language will be far different to the workings of the cpu which would make it perform way worse then you'd expect. Assembly doesn't have this problem since it actually is a low level language.
But I'm going to argue that people here are overestimating actual low level programming. You should use low level programming when making very high performing software like libraries or resource heavy bits of a software project, not for large projects. That's where you should use high level languages. I will say that it's important to know assembly and C to have a better understanding about what the cpu does and what compilers do. This knowledge helps you write better performing software in higher level languages. I've seen someone that loves assembly optimise Python code which produced very large performance gains. There are a lot of ways to gain big performance gains in high level languages if you actually know what the compiler/interpreter is doing.
C is not low level in the sense of CPU but it is in memory, you know exactly how the memory will be at every point. Unlike langs with gc
The virtual memory. In a low level language you deal with physical memory.
C and Assembly aren't academic languages they're still used to program hardware
>programming resource heavy code in assembly
>not in machine code
I shiggydiggy
It still abstract some things. I know a assembly programmer on avr chips that has a register fetish. He uses every register he can get. Is there a timer set? No? Well I'll take that register. Wait, these pins are unused? More registers for me! You can't do this in C since it assumes nothing about the registers available in the underlying arch. You can only assign to general purpose registers and even then you can't specify which one.
Again. C is not low level. It's a very useful language to know, but not low level. C is great for portable high performing libs, performance critical parts of applications or system programming purposes like kernels. For other purposes there are better suited languages. People should learn it anyway this study what the compiler does.
Is Go a low level language?
If you take all programming languages into consideration, C is low level
it's one step above assembly, the lowest level available to programmers
say "C isn't low level" makes the term low level meaningless
Found the web dev. There is no way you'll be programming close to any metal and not be inspecting registers.
I've never worked for defense. But I used to work for RENESAS, they were anal about corporate confidentiality, we couldn't even use Internet during work hours.
>You can only assign to general purpose registers and even then you can't specify which one.
Pretty sure that's wrong.
> unpassable for private sector
> literally the private sector
It technically is high level and this doesn't make the term low level useless. Low level languages are languages in which you instruct the computer directly and not by abstractions.
C is basically the minimal amount of abstractions necessary to write portable code. That's the complete opposite of assembly which uses no abstractions. This makes C technically high level. But I wouldn't mind dividing high level languages into new sub categories since there are so many different kinds of high level languages that the term itself isn't sufficiently descriptive. I just think we can't use the term low level since that's already reserved for direct instructions for the computer.
Maybe mid level would be a decent category for it.
>C provides abstraction over all the instructions from the cpu. This makes it a high level language period.
yourlogicalfallacyis.com
Yes, it's a meme. Only low level people do low level programming.
Because full stack devs make way more money than some neckbeard who can only program C. It's envy
C is a high level language btw. Anyone arguing otherwise is a tard.
How many instructions are retired in a python hello world?
it's not, somebody has to code and maintain low-level code like OS kernels, drivers etc so that we can build more abstract and high-level programs.
also I highly recommend the book in OP's pic, and the author is a pretty chill guy IRL.
Also embedded systems.
High level languages have their place, and so do low level languages.
>C has *nothing* to do with x86-64, ARM RISC, and PPC.
C programs are able to compile to those platforms. That's something, retard.
>No access to stacks built into the hardware, all stack implementations use abstractions ultimately built on top of RAM
>No different sized pointers
>Reliance on typing
>Hides syscalls and interrupts behind functions
>No access to SIMD
""""directly""""
>t. brainlet
Lower level is easier to understand. It's possible to understand. With more complex languages, you can't really even be sure what the computer is doing. I think that's the main appeal of low-level programming.
Assembly is an abstraction over machine code. Machine code is an abstraction over micro code. High / low level is a relative qualifier, not a technical term
You would have had a case if the definition wasn't defined clearly. But since the definition has conditions we can test the conditions against there is no in between.
>The word "low" refers to the small or nonexistent amount of abstraction between the language and machine language
C is a language which abstracts all opcodes with constructs that map closely to, but aren't opcodes.
>Programs written in low-level languages tend to be relatively non-portable
Since the word tend is included this isn't black and white, but this still doesn't make a good case for C since it's very portable.
>Low-level languages can convert to machine code without a compiler or interpreter
I think this is pretty clear. C failed every condition so far. I tend to not think too black and white but when there are conditions that can be tested you should as is the case here.
Assembler is a language that substitutes the binary with mnomics. This isn't an abstraction, this is just substitution. An assembler also isn't a compiler. It doesn't compile anything, it substitutes the mnomics. Also we don't feed a cpu micro code, the cpu manages this step itself in the instruction decoder. Assemby directly maps to the instructions the cpu accepts making it a low level language by the conditions I also tested C against.
assembly isn't always 1:1 to machine code. It's a minimal abstraction. C is the next level up. The fact that you don't have access to micro code doesn't change the fact that machine code is still an abstraction over micro code. Saying C isn't low level means Assembly is the only low level language, making it a useless qualifier
>lisp
You have absolutely no clue what you are talking about.
>>The word "low" refers to the small or nonexistent amount of abstraction between the language and machine language
small
>>Programs written in low-level languages tend to be relatively non-portable
tend
>>Low-level languages can convert to machine code without a compiler or interpreter
Just use your brain to do the conversion.
There, C is a low level programming language. Deal with it.
POC's succeed on a playing field where the White team has been hobbled by moving goalposts and constantly changing rules.
>a language that abstracts all opcodes is just a small amount of abstraction
>let's still say tend even if I've mentioned it myself
>it's not compilation if I use my brain to compile
C isn't a low level language, deal with it. I feel like high level isn't a correct assessment too but that doesn't make it low level.
Everyone should learn assembly to more intuitively understand what they're actually doing, but no one should actually use it.
1. It takes way too long and bugs induce a special kind of insanity.
2. All the algorithmic optimizing was done by people with math doctorates decades ago. Good luck coming up with something better.
Just use C++ if you want to go fast.
Unless you're doing something that needs to go fast there's no reason to not write in a high level language to save time.
Literally knowing assembly is such an asspull thing to say. It's more like learning how a bunch of micro ops and memory and register manipulation somehow gets you useful work. Overall I never remember that shit and always look up all the instructions and fancy register names and only do it when I have to debug some broken ass coredump or some other debugging insanity. If you want a low level language to learn, I'd focus on learning LLVM IR.
GCC is shit at optimizing retard.
You literally only should use assembly for these reasons
You what mate? Are you off your rocker or some shit? Hell we're seeing new research on literally transparently rewriting hand tweaked simd into other simd instruction implementations.
Yet GCC "optimizations" run slower than my handmade assembly.