Hacker News new | past | comments | ask | show | jobs | submit login

I agree $35 isn't a ripoff price, but not that 'everybody needs to be paid'.

For instance, Red Gate recently added an F# mode, which essentially doesn't work. If Reflector had been open source and free, I'd have been willing to get this feature running. The benefit I'd derive from a working F# mode would likely make the effort worthwhile.




I could be interested in building a Reflector clone if somebody would write an F# plug-in to the project. I would probably start with looking at the CCI-Metadata project on Codeplex, and the Microsoft Phoenix compiler framework. Mono has similar libraries, but I only know a very small subset of Mono.Cecil API.

Cheers, Z-Bo


I did look into cloning Reflector when Red Gate originally acquired it. The work involved looks similar to that needed to build a .NET compiler, but in reverse. That is, you take a low-level machine representation; then build up a control flow graph; then map that control flow graph onto common high-level constructs such as if statements and for loops.


I'm very familiar with engineering compilers and de-compilers. Have you seen Microsoft Phoenix? It lets you sink/hoist intermediate representations; the key for this would be having an API that allows ordering graph rewriting rules so that you can take the MSIL and convert it the right higher-level form (e.g., should this use LINQ? Well, what does the app settings say the user wants to see the code as?). Anyway, since Reflector is written in C#, it would be able to develop a clone much faster using code generation, since I bet Reflector uses a ton of Visitor patterns and needless C# boilerplate.

I won't promise performance comparable to Redgate's Reflector, but my rule of thumb is Correct. Clear. Fast. In that order.


I hadn't seen Phoenix before reading your comment, but I like the look of it. Looks useful for general compiler tinkering.

When I looked at this a while back, I was trying to do it in C# on Mono.Cecil. I got bogged down writing things like CSharpWhileLoopVisitor...


Reflector uses Mono's Cecil. It ships with a copy of the Cecil license.


Thank you very much for that tidbit.


That's true. But not everybody needs open source their software.

And i'm not judging against open sourcing software either.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: