2,631 karma · joined April 16, 2008
They both naturally blend together. I honestly can't understand what is the difference between these two that you are thinking about.
> Essentially, whether or not it turns out to be useful assumes that it is used as the central collaboration platform to an extent.
This is the initial plan.
> Though on the other hand, merely tracking changes on a higher-level could be sufficient.
Some day we can implement a client side structural diff tool.
If anyone else is going to make something similar for .NET, then yes.
But we are going to build our own custom C# language parser.
Thanks!
> Are you planning to parse PHP?
Sure, more languages are on the way! The problem with PHP, however, is that when it is used in a HTML page as template language, you can't get much from it. On the other side, when it is a simple class file with no HTML markup, things should work as with any other language.
C is really hard to parse because of preprocessor. We built a prototype parser for it, and it mostly works, but it's not ready yet for the prime time.
Lisp must be a much simpler language to parse, though.
> scanning for API changes between two versions of a framework
Yes, we have this idea on the to-do list! Imagine that you are comparing two different branches of development, or two different tagged releases, and see high-level API changes between them.
That is correct. The structural diff algorithm is generic, it operates on langauge-neutral feature trees. And those are built with the langauage-specific parsers.
> Can I hook in new parsers to add language support?
Writing a parser is not an easy job. But some day we hope to open API for developers to write custom plugins.
* http://www.informatik.uni-trier.de/~ley/db/conf/dbpl/
* http://citeseerx.ist.psu.edu/index
* http://rjlipton.wordpress.com/
* http://www.scottaaronson.com/blog/
* http://scientopia.org/blogs/goodmath/
and the like
And I think that's the good thing. Over years I finally realized, it's not the programming language you use that matters, or makes you look smarter. It's the kind of problem you are trying to solve by writing code. Computer Science field is far, far reacher than the PL research subfield.
I mean, you may be writing another boring enterprise web application in Haskell, or solving Artificial Intelligence problem in Visual Basic. I would prefer later rather than former, although I hate VB. I know, both situations are contrived, this is just a thought experiment to illustrate my point.
Don't get me wrong, I love "esoteric" programming languages. Few years ago I spent quite a lot of time playing with Haskell, Prolog Lisp, etc, and I don't regret it. No, I don't use these on daily basis or going to, but I studied a hell lot of coll new stuff. Most importantly, it taught me about new _paradigms_ of programming, that I really think every programmer should understand.
These days, however, I try to squeeze as much math and algorithms from different domains as I can in my poor stupid head and I think that payoff of this would be much bigger for me.
PS
Few month ago at a local functional programming meetup some guys presented their Scala solution to a trivial problem of validating web forms in a rather trivial web application. Their solution employed the whole lot of functional stuff, like functors, mappings and the things whose names I forgot. I was trying to understand what they are doing but they lost me after fifth minute of the presentation. It took them maybe a week to write all this code. Do you see the irony?
Although I must admint, jogojapan has written a really clear and thoughtful explanation of Ukkonen's algorithm on stackoverflow, the best one I've ever read.
Probably not.
http://www.moshesipper.com/finch/
He makes a rather grandiose claim -- “We believe that in about fifty years' time it will be possible to program computers by means of evolution. Not merely possible but indeed prevalent.”Direct link to the portal: http://algoviz.org/
I once had a two-monitor setup, and I dind't like it. Way too much clutter and information overload on the desktop. Managing that wide screen real estate is cumbersome. The view angle is too wide. You never know where the focus is, etc.
I peronally would prefer just one display with really good resosution.
> The first study revealed that the users' productivity increased by 9 percent. Further studies showed even greater increases - at times up to 50 percent for tasks such as cutting and pasting.
What a great productivity boost for a programmer! Yeah, copy-pasting is what we do all day long.
Still I fill very allergic to all this positive thinking, self-help, goal-achieving and motivation literature. The skeptic in me just cannot stand it, everybody who writes it automatically gets "scam" mark from me. I'd rather suggest reading something like "Bright-sided: How the Relentless Promotion of Positive Thinking Has Undermined America" by Barbara Ehrenreich instead.