Kythe: A pluggable ecosystem for building tools that work with code
11–20 of 22 posts
Re: Kythe: A pluggable ecosystem for building tools that work with code
#12Earlier quoted context omitted.
You can build the same tools as before -- the purpose of Kythe isn't to fundamentally change the kinds of tools you can make, it's intended to make it easier to glue those tools together. Google uses this approach internally to generate cross-references for a huge, heterogeneous multi-language codebase. Linking across generated code, connecting documentation to its references, and exposing all those features in edito…
Kythe isn't really a "product", but rather an interlanguage for tools that manipulate source code. That's a concise explanation. Thanks. Of course, the bottleneck is always in achieving widespread integration with existing tooling. Your overview lists requirements for compiler and build system instrumentation alike, as well as tools that then consume and filter the graph data. It'll be interesting to see if Kythe gai…
You're right that the work needed to connect (say) a compiler or static analyzer to (say) an editor is usually substantial.
Right now, projects typically duplicate this work over and over again, for each combination of language and editor. We've found that for a lot of common cases you can re-use the work you did to instrument a given compiler and/or editor for others to mix and match, if they can agree on a format for the data.
Obviously this doesn't work for every such problem, but in our experience it's surprisingly effective for most of the day-to-day tasks engineers need to solve, such as figuring out what will break if I commit this change to the repo.
Re: Kythe: A pluggable ecosystem for building tools that work with code
#13The big features I'd like to see are more around collaboration and remote execution. The ability to share, search, remotely debug a big stack easily would be great. Github has taken some big steps forward on that but I'd love wrap that up into the editor. Use cases like natively connecting to a coworker's editor and see what is failing or review some code.
Re: Kythe: A pluggable ecosystem for building tools that work with code
#14Is there search built-in or planned? I see some discussion in the storage format section, but only as a negative statement.
Re: Kythe: A pluggable ecosystem for building tools that work with code
#15What does this do? I've browsed through the site for a few minutes, and still have no idea what kind of tools you could build with this that you couldn't build before. Is this for cross-language doc generation? Refactoring tools? Something else? Are there any concrete examples of a tool built on top of this that would otherwise be impossible / very difficult?
You can build the same tools as before -- the purpose of Kythe isn't to fundamentally change the kinds of tools you can make, it's intended to make it easier to glue those tools together. Google uses this approach internally to generate cross-references for a huge, heterogeneous multi-language codebase. Linking across generated code, connecting documentation to its references, and exposing all those features in edito…
Shared IR (graph schema) and optimizers. Pluggable front ends (syntax viewers, editors, etc.) and backends (languages).
Re: Kythe: A pluggable ecosystem for building tools that work with code
#16What does this do? I've browsed through the site for a few minutes, and still have no idea what kind of tools you could build with this that you couldn't build before. Is this for cross-language doc generation? Refactoring tools? Something else? Are there any concrete examples of a tool built on top of this that would otherwise be impossible / very difficult?
Re: Kythe: A pluggable ecosystem for building tools that work with code
#17Re: Kythe: A pluggable ecosystem for building tools that work with code
#18For those interested in code analysis and dev tools, another library you might want to check out is srclib (I'm one of the authors). srclib is an open-source polyglot code analysis library designed for editors and code explorers. Its mission, supporting a common language-independent schema to support building better language-aware tools, is closely aligned with Kythe's. There's documentation and a succinct description of the problem we're trying to solve at https://srclib.org.
srclib currently supports Go, Java, Python, JavaScript, Ruby, Haskell, and soon PHP. There's a simple command line API that editor plugins can call, and currently there are srclib plugins for Emacs, Sublime, and Atom. srclib also powers https://sourcegraph.com.
I'm looking forward to seeing where Kythe goes and hopefully integrating Kythe and srclib. I think this is a huge step forward toward better tools for programmers. Just ask anyone who works/used to work at Google about the quality of their internal dev tools vs. the outside world. Thanks to the Kythe team for sharing this with the world!
Re: Kythe: A pluggable ecosystem for building tools that work with code
#19Re: Kythe: A pluggable ecosystem for building tools that work with code
#20This sounds like the Grok project that Steve Yegge described in his post about software conservatives and liberals ( https://plus.google.com/110981030061712822816/posts/KaSKeg4v... ). Anybody know if it's the same project? I think an interesting possible application of this tool would be source-to-source compilation between languages. For example, once Objective-C support is added, could Kythe be the basis for someth…