Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Why are there high level languages?

Name: Anonymous 2013-09-10 3:46

Why the hell would anyone use Python or Ruby over C. The software should be nice to use. It's not nice when the program is slow as fuck.

Their dynamic nature makes debugging software increasingly hard. Basically developing with these higher level languages takes more time than with C.

Every program should be written in C. In most cases, it would be good to also optimize tight loops with Assembly. This way programs would be fast and fun to use.

Languages such as C# and Java have no point at all. They are essentially crippled versions of C. Limited pointers and limited memory management. The virtual machine takes forever to JIT-optimize the code, thus harming the user experience. Not to mention GC, which slows everything down, providing nothing useful in return. GC is shit.

Then there are these C++-retards. Sure, you can in theory make as fast C++-code as C-code, but is it really worth it? Every C++ program in practice is slower, harder to debug, and harder to develop.

Functional languages, such as Haskell are no answer to problem. They abstract the hardware to hell and are very slow in practice.

So tell me: Why is C and Assembly not used for every program today?

Name: Anonymous 2016-05-16 21:37

>>52
it's not that it's complicated, the correct functions are easy to use. it's just that it's not consistent because you have a few different variants of same function and some of them do bounds checking, some of them don't, some of them append null byte, some of them don't and you won't guess which does which if you're not used to handling strings in C. again, I'm talking from experience of doing vuln research and code review at a major multinational corporation, people get that shit wrong all the fucking time and half of the time if not for OS- or compiler-level hardening you'd be able to exploit that shit with the most primitive shellcodes.

When people can mishandle/abuse string terminators, they can also mishandle/abuse length-prefixing.

theoretically they can but length-prefixing allows for bounds checking at runtime with very little overhead, meaning it will be harder to fuck it up. a well-designed length-prefixed string handler won't let you write past the assigned length without explicit reallocation and overwriting the prefix would require overflow in memory before the string so the attack isn't as trivial as AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA[insert shellocde here] at worst and AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA[insert lengthy ROPchain here] at best

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List