> The compiler builds fine for me on MinGW + MSYS on Windows. If you could write up some step-by-step instructions, that would be great. We've had *lots* of people complaining that they can't figure out how to build it.
> When I get some time, and if it would > help, I could build a .MSI that has thrift.exe and some .dlls. That would be awesome. --David On 08/27/2010 09:24 AM, Michael Lum wrote: > The compiler builds fine for me on MinGW + MSYS on Windows. Autotools, > lex, and yacc are only needed to build Thrift from source, not to > generate code from Thrift IDLs. When I get some time, and if it would > help, I could build a .MSI that has thrift.exe and some .dlls. Windows > users could then generate Thrift code without the need for Cygwin, > MinGW, or anything. > > This is not an anti-Java position (we use Java extensively here), I'm > just saying that so far all the reasons given so far for switching the > compiler to Java have been build and packaging related, not with the C++ > language itself. > > On 8/27/2010 7:39 AM, Rush Manbert wrote: >> >> On Aug 26, 2010, at 5:15 PM, Mark Slee wrote: >> >>>>> I have to admit that when I first looked at the Thrift compiler >>>>> I was a bit puzzled by the choice of language and the >>>>> dependence on Boost. then I realized that they probably didn't >>>>> have open sourcing it in mind when they made that decision. >>> >>> I'll provide the historical backstory here in case folks are >>> interested. C++ was actually chosen *because* of the early >>> commitment to open source. C++ was by far the best available option >>> for ease of distribution and installation. Using Python would have >>> required everyone to have the right Python extensions, like PLY, >>> which are not part of the core language. This work started in 2006 >>> -- Python has continued to gain popularity over the past 4-5 years, >>> not all developer were so on board with it back then. Same issues >>> with Java -- the core language does not have a parser built in. >>> Also, there are still a fair amount of people interested in Thrift >>> that fall in the religiously-anti-Java camp (I am not one of them, >>> I like Java, but I accept that for better or worse a lot of >>> systems-y people dislike it). Not all Linux distributions have >>> consistent Python/Java interpreters setup as part of vanilla >>> installs (notably, the images we were using at Facebook did not >>> include a Java runtime, as we generally had no need for it). And if >>> you don't have root, dealing with things like site-packages and >>> paths is a big headache. So, using those languages would have meant >>> putting a big hurdle in front of many users considering trying out >>> Thrift. >>> >>> By contrast, lex/yacc are *completely* standard. You'll be >>> hard-pressed to find a *NIX distro anywhere on Earth that doesn't >>> have working versions out of the box, they've been around forever >>> and their interfaces are super stable. Like the autotools, even if >>> they're not the prettiest things to work with, everyone has them >>> lying around, and they almost always just work. Choosing C++ meant >>> that for 99% of users, getting the compiler up and running (step >>> one in evaluating Thrift) was as simple as (1) download (2) >>> configure (3) make. >>> >> >> Just one small comment. It seems that most on this list don't really >> care about Windows compatibility. (Not a criticism. That's just the >> picture that I get.) The argument can be made that if you want to use >> Thrift on Windows, you just install Cygwin and have at it. >> >> But many people can't do that for various reasons, and lex and yacc >> are not available, nor are the autotools. I have managed to wrestle >> the entire C++ runtime library into a shape where it can be used in >> Windows without requiring any GNU tools installed. (Of course, I had >> to use more boost libraries to make that happen. :-) But I couldn't >> do anything about the Thrift compiler. For us, and others who develop >> on both Windows and *nix platforms, we can sidestep the compiler >> issue by generating all the code on the *nix system. But it seems to >> me that this is a rather large barrier to adoption in the Windows >> world. >> >> For us, the Thrift compiler performance is absolutely not an issue, >> and I don't think it would become one if the compiler were written in >> Java. As long as it Just Worked and only required us to install a >> standard Java distro, I'd be happy. >> >> So I'm +1 on a Java version of the compiler. >> >> - Rush >>
