Hacker News new | past | comments | ask | show | jobs | submit login
.NET Reflector no longer a free tool - An open letter to the .NET community (red-gate.com)
93 points by amirmc on Feb 2, 2011 | hide | past | favorite | 82 comments

It seems like most messages of this type try to pretend that it's not about money. The worst is when a company uses lines like "mutually beneficial" or "we're confident this will be better for our customers." When I read that, I'm not just getting unpleasant news -- I'm getting unpleasant news from someone who thinks I'm stupid.

Redgate's message is candid and addresses me like a grown-up. I think that's much better.

A good point and they're making things simpler in the process - here's the product, it's $35 and this is what it does - no more messages, reminders about a pro version and removal of timebombs. Plus future versions will probably get even more serious features because they can justify it commercially with invested time vs income.

You know where you stand.

Red Gate's FAQ states: "we think ultimately this decision will be good for the community."

So much for that ;)

$35 isn't bad, and Reflector is an awesome tool. It'll pay for itself it no time. If it started generating some revenue, they could probably give more time to it and make it even better.

As a developer, you need to maintain your toolset. $35 is small fries. Sure, enterprisey .NET has a slew of expensive profilers, testing frameworks, and everything, but I think the price for Reflector is very reasonable.

Other fields are far more used to paying for their tools. Construction, mechanics, machinists, mechanical/electrical engineer.

But Reflector was free for years until Red Gate took it on. And since then, Red Gate haven't done a lot with it to justify the cost: apart from the Visual Studio addin, the basic functionality is the same.

The Pro version did add support for debugging which is pretty awesome. The only problem is that you can't add breakpoints into arbitrary points in the IL. You have to be able to access it via the object browser, which requires a public class/method. If they fixed that it would be worth twice its price. Now, I think the technology is great, but not useful for me.

I didn't know that. Thanks for the info about the debugging support. I guess I have to give them credit for that.

I'll agree that they haven't done a lot, however $35 pays for maybe 30 mins of some devs time?

There is no way I'd complain about $35. If they wanted to charge like $300 or $3000, then sure.

I'll preface this my saying that the last time I touched .NET was about six years ago, but my biggest turnoff with the .NET community was that it seemed like everyone wanted their $5, $10, $50 for everything. Libraries and tools that I could get for free with C++ or Ruby or Python seemed to all have price tags associated with them in .NET world. I don't remember the last time I saw the source for an assembly on GitHub et al.

I don't mind paying for good tools (and I would absolutely class Reflector as one), but there seem(s/ed) to be this very top-down mentality in the .NET world that everyone in every step of the chain has to make a buck. Reflector was a shining example of a great free tool in a sea of pay-for dreck, and it's quite sad to see that example die.

It's a bit disappointing, because this mentality seems like it really does a lot to stifle hobbyist exploration of the platform when it's doing cost you $48 in assorted widgets to build the toolset you need to try out an idea.

Edit: I should clarify that I don't think this is a bad thing, and I absolutely feel that Reflector justifies the price tag. The story just sparked some memories of my time in .NET that go a long way towards explaining why I'm not a .NET developer today. My time doing .NET development was in a professional context for my employer, so it's not like I couldn't get the tools due to cost issues, but the massive culture gap left an impression on me.

I still don't get why individual developers are so cheap. It is a paradox.

$35 is nothing. I totally believe in supporting a good product with a very reasonable price.

Compare $35 for Reflector to $800 for TypeMock... $200 for Resharper... $300+ for dotTrace.

If you use something daily, <$50 is nothing... even <$100.

Comparing the price of each tool individually yes. However, if you add them all up then it really starts to be costly if you want to use most of those tools. You are limited in what you can budget for as an individual developer and are forced to look at the marginal cost of each new purchase as well as the opportunity cost of not buying some other tool unrelated to your purchase.

(Just in your example, we are already at $1335 not including the price of Visual Studio itself since the free express edition does not support add-ins such as ReSharper and other productivity tools)

I always assumed SharpDevelop supported VS plugins.

I suspect this is because all the young developers who have the free time and inclination to release their efforts as open source are writing Ruby rather than .NET and Java these days. In a few years, they'll have mortgages and families too and will try to start charging for their work. The wheel goes round.

> this mentality seems like it really does a lot to stifle hobbyist exploration of the platform ...

It definitely does seem to stifle innovation on these platforms. Although if you need to use a bunch of commercial widgets in order to try out an idea, you're probably doing it wrong.

I understand what you're saying, but I don't think it's necessarily accurate. There are lots of people with marriages and families making good money in more open communities. I honestly don't believe the line that ".NET is a professional's community, Ruby et all are just for hobbyists". .NET has been relegated to a professional community because of the buy-in for everything, but it really doesn't have to be that way to make a living writing code.

Speaking as a 27 year-old-married-with-two-kids Rubyist, it's entirely possible to make a living charging for your work and still give away useful tools and libraries. I keep a GitHub account and publish code there, usually under MIT or BSD licenses, and while I don't publish everything I write, I have benefited so much from the open source that others have written that I contribute back to the community where I can, and somehow manage to get the bills paid at the end of the month.

I totally agree with you, and I think the simple explanation is that it starts at the top. You're building software with Microsoft tools on Microsoft platforms. You're in "commercial-land" right out of the gate. You're probably building software at a big company, or for a big company. Paying for software is common, and not a big issue. The cultures are just different.

It's not a reflection of the quality of the software or the quality of the engineers - it's just a fundamentally different culture.

Hmmmm. A forum ostensibly targeting people who want to be in the business of making money with software up in arms about a company trying to make money with software. Am I allowed to call this ironic?

The thing is though, .NET Reflector used to be Freeware, written by a guy in his spare time (incidentally, who is now an architect on Blend). He sold it to Red Gate, who keep trying to monetize it in increasingly intrusive ways (forcing updates, popping dialogs, etc).

While I understand Red Gate's need to make a return on their work, they've gone about it in an unpopular way, trying to force people to pay for an extra feature (debugging through code w/o source) that many people simply don't want.

FYI, Lutz was on Blend (then called Sparkle) since he first produced reflector, at least as far as I remember. He was the brave soul tasked with integrating some components my team was producing for them, back in the deep, dark, early-aughts.

> trying to force people to pay for an extra feature (debugging through code w/o source) that many people simply don't want

Isn't that the way software businesses work? They build features that they hope will convince people to pay for upgrades or renewals. If people don't want the new feature, the company won't make any money.

It doesn't seem to be an evil or malicious route to me; it's just charging for something which was free before because they can no longer maintain it that way.

Older versions look like they’ll remain freeware; you can’t really begrudge Red Gate for charging for future work.

No, they won't. Red Gate has timebombed them so they'll stop working in March.

AFAIK Reflector's been that way since before Red Gate got it.

In previous versions, I was stuck by how terribly Red Gate implemented the "time bomb". You run Reflector one day and an innocuous dialog comes up saying "A new version of Reflector is available. Do you want to upgrade? OK/Cancel" And if you click "Cancel", it exits, while silently deleting the executable from the disk.

I can't think of another program that violates user expectation quite so thoroughly.

If they are also written in .NET wouldn't patching the timebomb be more than easy: first you decompile the Reflector...

I tried that once; it's obfuscated.

Is there any programmer on the planet who has trouble justifying the ROI of a $35 expenditure for a useful tool? This is a total non-issue.

Reflector is a great tool. They should charge if they can.

I'm disappointed. There are many other options for licensing that would bring in revenue without hurting the solo developer or non-commercial developer. It could be free for non-commercial use, or it could be limited to a 3 users within a corporate environment. I believe their revenue will come from companies adding it to their developer tool budget, not from the individual. Let the individual love it at home and then ask for it at work. Every company I've worked at was honest about paying for 'commercial use' or more than X users.

I pay $59 for a Roku box I watch at home -- why wouldn't I pay $35 for Reflector?

Nice and short interview with Red Gate CEO about this : http://www.youtube.com/watch?v=TKnEjiSGZLA which explains commercial reasons and why they thought it was possible to keep it free and why they changed their mind

So how long until someone else makes a free, open source version...?

(For the benefit of the class: the .NET Reflector decompiles compiled .NET binaries back to cross-referenced source code.)

Not very. Lots of shops have nascent versions of the underlying mechanism in Reflector; for instance, if you need to instrument .NET programs for testing, you have a good chunk of it.

On the other hand, Reflector has a very effective UI, and $35 isn't even a rounding error. There will be more free alternatives to Reflector now, but I for one will probably be happy to shell out a trivial sum of money to keep using the best one.

Just wanted to say that this is perhaps the most accurate response to this sort of situation that I've heard in awhile. If it is a good piece of work, why not pay for it? The time it would take to verify a FOSS solution meets your needs already outweighs the $35 perpetual license fee. Not to mention, this thing rocks.

For fun and profit, peek into some Silverlight containers and run Reflector on the DLLs.

I might get hit for this, but..

1) As others have commented already: The product was free with basically _all_ features already working. Sure, it might need some work to support a complete new runtime version (i.e. 4). I don't know. And, problematic in this case for the image here is that this is a mostly "invisible" improvement. You still wonder "What do they actually add?"

2) Their "update or stop using" policy is sleazy, imo. I stopped using the tool at that point, because in my world that's not a viable way to offer any product (free or otherwise).

3) Taking over a free tool with the clear and open statement that "it's going to stay free" bites you, if you back off later. I'm sure there are good reasons (commercially) for this decision now, but it still ends up as a public "Whoops, failed" for me.

No love from my side, not because of the price (I agree with you on that point), but the "image" of this tool is utterly damaged in my world.

> If it is a good piece of work, why not pay for it?

I only hope they don't timebomb the paid version like they did the freeware version.

The announcement explicitly says it doesn't contain a timebomb.

Miguel and the mono team will probably knock this out before the weekend.

With a powerful API suc has Cecil ( http://www.mono-project.com/Cecil ) It doesn't look too hard to create a clone.

Isn't that what it used to be and then was bought by Red Gate?

I don't think it was ever open source, just a free software maintained by 1 person.

Yeah, and that guy was someone researching code UI interaction: Lutz Roeder. It actually even required you to sign up with your email to download ;P. (I'm the guy who had the open source alternative back in the day called Anakrino, which was frankly too hard for people to help me with because it was written with C++ WTL and a ton of custom COM glue code. If I had written it in .NET I may have gotten a lot of traction and code submissions.)

Reflector is a fantastic tool. I have no problem with them charging a very fair price for it.

Reflector is a great tool, no denying it, but it's been fairly buggy for me since Red-Gate took it over.

Also, yes, $35 isn't much, provided the license is per-user. If it's per-machine, it would cost most devs a lot more (I'd need at least 5-6 licenses for all my VMs + desktop + laptop). That's a whole different story.

I will say, though, that I have no interest or desire in the debugging or VS integration features; those are useless to me.

It always stings to have to pay for something you used to get for free -- basic human nature.

On the other hand, Reflector is either worth $35 or isn't. At a price that low, the decision is pretty binary -- is the tool worth the cost of a decent dining-out dinner or not? If not, live without it.

Their web page has a box on it; how quaint. I remember getting software in boxes.

Looks like JetBrains is going to release an alternative:


I think it's fair to say it was never free. It was only infinitely inexpensive.

BTW, shouldn't the title make the distinction between free software and freeware?

Correct me if I'm wrong, but existing versions will continue to be offered and will be free - is that right? I thought Lutz Roeder agreed with Red Gate that RG was free to improve upon Reflector and sell it, but that the original had to be offered for free. Obviously the version upgrade counts as improvements, but the original should still be offered for free.

"The free version will continue working until May 30, 2011."


Yeah. I do not believe free but not open source can live for a long time. If it becomes good - it will require more dedication to work on product. And this could be achieved either by open source community or by charging for product.

crap - will be sticking to my free version. Soon they will charge for access to their own software documentation.

You can't stick to your free version, I'm afraid. There's a built in expiration date in the latest free version; after April 15th 2011 it will no longer work.

(As a side note, it would be interesting to use Reflector to decompile Reflector itself and remove the expiration date or extend it to the far future. I know it's illegal and unethical, but it would be a fun and interesting exercise.)

I Reflectored Reflector once and I found that the source was obfuscated. I don't think that would be a trivial task.

Most compiled code doesn't have debug info and internal symbols. Yet, changing something like an expiry date is often a trivial task. Obfuscation just means you'll actually have to poke around a bit instead of just searching for "isExpiryDateReached".

Reflector was written by a smart guy. IIRC the obfuscation partly consists of assemblies stored as resources in the executable assembly, and loaded dynamically. But no doubt you're right - it could be disentangled.

Better and more ethical to re-write.

Interestingly, I'm pretty sure that the original wasn't obfuscated, and Red Gate obfuscated it after they received it from the original developer.

Reflector's always been obfuscated; Lutz Roeder had a paid-for version as well alongside the free one.

(You don't think the first thing we tried with Reflector was to reflect Reflector? :) )

Reflector was not always obfuscated. Old versions embedded an unobfuscated but weakly encrypted dll with the core program.

well - that's unfortunate.

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.


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.

In my view it is entirely fair game for them to charge for what they own but this is also an instance of why to avoid the .NET ecosystem altogether.

The ethos I follow and many developers whose opinion I care about follow as well is that platform technology and the most fundamental tools must not be closed source.

The irony with Reflector is that while branded a debugging tool it is mainly good for reverse engineering, so Red Gate are now effectively charging for access to third parties' source code, which I personally find a bit troubling.

whoever downvoted this to 0: what is wrong with this comment?

Yes, yes, $35 is not a lot of money. But the convenience of being able to download Reflector to any machine that you happen to be sitting at will be lost as a result of this.

Looking forward to the Mono Reflector clone...

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