[ home / overboard ] [ date ] [ soy / qa / raid / incel ] [ int / pol ] [ a / biz / fit / mtv / r9k / sude / tech / v / x ] [ q / news / chive / rules / pass / bans / status ] [ booru / wiki ]

A banner for soyjak.party

/tech/ - Soyence and Technology

Download more RAM for your Mac here
Catalog
Email
Subject
Comment
File
Password (For file deletion.)

File: 1792695380025a.png 📥︎ (11.53 KB, 128x138) ImgOps

 â„–44227[Quote]

>i want to learn [some high level language]
>first reply is "learn C/C++ instead"
Nusois I may be retarded but what is the logic behind this? Something like Java isn't the same thing as C, you can't really compare them like that because they're different things that are used for different purposes right?

 â„–44228[Quote]

>>44227 (OP)
true lauding and hating on other languages is retarded

 â„–44230[Quote]

what actually happens when you declare a variable, call a function, allocate an object, or create a thread?

what’s the stack? where does it exist? cpu or ram? who allocates it? does every thread have its own? what happens when it grows or overflows? do local variables always live there, or can the compiler put them in registers or optimize them away?

what’s the heap? who manages it? is it shared between threads? does every allocation involve a syscall? what’s the difference between reserving virtual address space and committing physical memory? how does virtual memory even map to ram?

what’s a pointer? what exactly does it point to? what’s dereferencing? how do pointers differ from references across languages? what’s the difference between copying an object and copying a reference? what’s aliasing, object lifetime, or a dangling pointer? how can aliasing affect compiler optimizations?

 â„–44231[Quote]

what memory do threads share? what’s thread local? can one thread access another thread’s stack? what’s a data race? why can the same multithreaded program work 99 times and fail on the 100th? how do synchronization and context switching work?

why is sequential access to contiguous memory usually faster than random access despite identical time complexity? what’s cache locality, a cache line, prefetching, or a tlb? why are registers, cpu caches, and ram so different in latency? why can a dynamic array outperform a linked list despite worse theoretical insertion complexity?

does the cpu execute python source directly? what’s bytecode, an interpreter, native machine code, a runtime, a calling convention, an instruction set, or a system call? how does code actually get executed?

 â„–44232[Quote]

how does garbage collection work? who determines when an object dies? how do allocation, ownership, and lifetimes relate?

why can you write thousands of lines of python or javascript without ever needing to understand any of this? why does learning a higher level language first make it so easy to ignore the underlying mechanisms?

and if understanding "low level" concepts makes higher level abstractions easier to reason about, but knowing the abstractions dont teach you what’s underneath them at all, wouldn’t it make sense to learn them earlier?

that’s why it’s worth learning c++.



[Return][Catalog][Go to top][Post a Reply]
Delete Post [ ]
[ home / overboard ] [ date ] [ soy / qa / raid / incel ] [ int / pol ] [ a / biz / fit / mtv / r9k / sude / tech / v / x ] [ q / news / chive / rules / pass / bans / status ] [ booru / wiki ]