Re: The future of gitweb - part 2: JavaScript
From: Jakub Narebski <hidden>
Date: 2016-06-15 22:51:03
On Sat, 16 Apr 2011, Pau Garcia i Quiles wrote:
On Thu, Apr 14, 2011 at 11:54 AM, Jakub Narebski [off-list ref] wrote:quoted
This is second installment, talking about JavaScript (client-side) part of gitweb code. [...] Those issues are already solved in __JavaScript libraries__ and frameworks, probably better way than in our attempt. Using JavaScript framework would also give as higher level constructs, and could replace what we have and could have in gitweb/static/js/lib:
My suggestion is going to be tremendously unpopular, but still: if I were to develop my own gitweb, I'd use Wt ( http://webtoolkit.eu ) + libgit2. In fact, there is a very basic gitweb-like example bundled with Wt sources, it's available online at http://www.webtoolkit.eu/wt/examples/git
Well, nothing prevents you or anybody else from writing (yet another) web interface in C++ + Wt + libgit2. Gitweb is not the only git web interface: https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Web_Interfaces There is Gitalist in Perl which uses Catalyst MVC framework, cgit in C linking directly to git (libgit.a), git-php and ViewGit in PHP, etc.
All those detect if this feature is available or not, fallback to plain HTML (no Javascript, no AJAX), use HTML5, or SVG, or... where available are already solved (and are totally automatical) in Wt. It's C++ with Boost and Qt-like API, not plain C, Perl or bash scripting, though.
Gitweb has the advantage that if you can install git, and you have web server with CGI support, you can install and run gitweb. First part of series was about relaxing this "no non-core dependencies required" requirement. Requiring to install C++ / libstdc++, Boost and Wt... Note that git chosen to write strbuf and parseopt from scratch, instead of using some existing library (bstrings, Boost, popt,...). So, as yet another web interface, fine. As replacement for gitweb: I don't think so. BTW. do I understand correctly that Wt generates JavaScript code, in similar vein to GWT for Java, or Pyjamas for Python? -- Jakub Narebski Poland