Apache™ Thrift is a program built from the Apache™ Web server programming platform. It is made to generate code and work with multiple coding languages at once. Unlike similar generators, which produce unnecessary amounts of code or a heavy footprint, Apache™ Thrift works to include only necessary code so it is transparent. Many large websites that have a need for multiple languages use Thrift, because it keeps programmers from having to use separate programs and files. Thrift can work with 14 coding languages at once, though, while it has many benefits, there are a few things it cannot do.
With the Apache™ Thrift platform, a programmer does not have to build a complicated client from scratch. Rather, the programmer just starts by defining a few data types. For a login script, this could include a definition of a user’s name and password.
After defining the data types, the programmer usually has to start working on further defining them and adding a large space of code. Apache™ Thrift will instead take the defined code and generate it in whatever coding language the programmer needs. Now the programmer just has to look through the generated code and add a few lines here and there, rather than building from nothing.
As of May 2011, Apache™ Thrift is able to work with 14 coding languages. These include: C#, C++, Java®, Python®, Hypertext Preprocessor (PHP), Erlang, Ruby®, Haskell, Perl®, Cocoa®, Node.js, JavaScript®, OCaml, and Smalltalk. This allows programmers to use nearly any server-based coding language needed for specific programs or problems, all under one program. This system was made for Facebook® but became an open-source application in 2007.
One of the largest problems, especially for new users, is that Apache™ Thrift does not inherently include tutorials or documentation. This means programmers are left to figure out the program for themselves. This problem has been solved by many websites that offer tutorials and learning programs so people new to Thrift can learn how the program works and how to generate code from the platform.
Inheritance, which allows a programmer to make objects with similar commands or definitions without writing the definition for each object, is not included in the Thrift platform. This means polymorphism coding is not allowed either, because this depends on the inheritance feature. Null functions cannot be used, and all methods and containers must have unique names, even if using different coding languages. Otherwise, the program can overload.