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

Don't see the harm in charging money for labor. Everybody needs to be payed and it doesn't seem a ripoff price.



The ripoff is in the fact that they have added nothing significant to the product other than making it more difficult for people to obtain.


Ah but they paid the original dev, so by law of transference they're the ones who are creating utility for you.


So the OSS community wouldn't do a better job of building a .NET decompiler?


Is that what you understood from my comment?

Little bit touchy ;)


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.


Does the OSS community mean you or other people whose time you don't have to pay for? Open source works by volunteering and yet I don't see many people stepping up to work on an alternative.


That's because the need for an alternative has existed for less than 48 hours. I would prefer whoever has decided to do an alternative get a prototype built before announcing.

Announcing before you start can easily lead to vaporware. :)


I don't speak for the OSS community, but I am quite sure not many of them care enough about .NET to develop something like this.


Glad you don't speak for all of us...

An effort is already underway. Thankfully we have until the end of May to get this to a usable, somewhat mature state. RedGate's handling of this situation has lit a fire under me and a few other developers, and we're committed to releasing a free, open source competitor, and replacement, for Reflector.

https://github.com/jcdickinson/Monoflector

RedGate really screwed the pooch on this one.


There are some outstanding open source .NET libraries that blow away what you can get in Java. Likewise, some COTS .NET libraries blow away equivalent Java libraries (e.g., for unit testing and inversion of control, query-driven source code analysis, etc.).

But comparing .NET to anything other than Mono is apples to oranges.


Indeed. The Mono folks may be interested in building something like this and glue it into MonoDevelop.




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

Search: