Conversation
All I want for Xmas is sane documentation <3
1
1
1

@buherator i dont think a crappy api gets any better with documentation

1
1
0
@pancake But I had a chance to choose the appropriate interface instead of blindly trying things in an environment you can't properly debug...
1
0
0

@buherator both ghidra and ida are awful platforms for developing anything. My condolescenses

1
1
0
@pancake "Gentlemen don't argue about good taste" :) I don't think Ghidra is bad at all (API stability is a good indicator of this IMO), but I have very objective arguments against IDA...
2
0
1

@buherator the reason is backward compatibility. Because companies pay to keep their ancient plugins to stay alive after updating. My complains in ghidra are simplified design decisions and the use of singletons or global states just to make stuff visible around, api stability is not always a good thing if you keep mistakes. But that’s clearly good for llms and it makes developer’s life easier to maintain things.

0
1
0

@buherator it’s also about finding a balance, not saying r2 apis are the best but i focus on fun and i try to stabilize apis in r2 and i prefer not to document anything as it’s time lost and prefer meaningful apis/structs

1
1
0
@pancake Aren't IDA scripts/plugins closely tied to (main) versions?

I'm all for self-explanatory API's, but you should keep in mind that you have a lot of context to build on in case of your own project that others may lack (as a general observation, I'm not familiar with r2's API).

Re: Ghidra I think it usually comes down to a Java vs. The World thing, and once you accept the fundamental paradigms the API is reasonable. I'm curious though about what you find overly "simplified" there?
1
0
0

@buherator i’m not really an expert in ghidra api, but i checked how relocs work, the memory layout apis and binary parsing logic, and it all felt like a toy compared to how r2 is designed and capable of where you can define cyclic memory layouts, hook virtual devices to memory ranges, create maps on segments with multiple io devices like null maps, alignment rules, bus sizes, cache layers, banked memory (essential for gameboy) or stuff like middle endian or 7 bit bytes

0
1
0