<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.developerdotstar.com/community" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>developer.* Blogs - In Defense of Joel&amp;#039;s Wasabi Indirection Layer - Comments</title>
 <link>http://www.developerdotstar.com/community/node/571</link>
 <description>Comments for &quot;In Defense of Joel&#039;s Wasabi Indirection Layer&quot;</description>
 <language>en</language>
<item>
 <title>I can&#039;t get it</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1557</link>
 <description>&lt;p&gt;Any idea on how the Fog Creek folks will reuse that platform (PHP and VBScript) libraries? A lowest common denominator may be the case, but then I think this denominator is very minimal (e.g. even basic classes have different methods in different languagues). Hmm...&lt;/p&gt;
</description>
 <pubDate>Wed, 04 Oct 2006 22:49:41 -0700</pubDate>
 <dc:creator>Tien</dc:creator>
 <guid isPermaLink="false">comment 1557 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>Customer perspective</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1490</link>
 <description>&lt;p&gt;So far, most of the discussion has centred on the relative technical merits of one choice or another with the odd side-track into packaging and deployment considerations. I&#039;d like to offer my perspective as one of the 3 people charged with keeping everything up and running.&lt;/p&gt;
&lt;p&gt;For better or worse, it has become my role here at Crestline to make sure that risk assessment is given at least lip-service. I am of the opinion that every new install carries with it some risk of system instability. Likewise, every new server also introduces risks. It&#039;s true that the risks of not installing something or adding a server are greater than those associated with the potential for instability, so that is where the analysis comes in.&lt;/p&gt;
&lt;p&gt;In the vast majority of cases, there is a good-enough solution available that limits the impact on our existing system. If we are a Linux shop and FogBugz runs only on ASP, then I have to help decide whether to find a way to get ASP extensions in place, add a server, or find something &#039;native&#039; that will be good enough. Similar concerns apply if we are a Windows shop already running IIS with FogBugz available only in PHP.&lt;/p&gt;
&lt;p&gt;In both cases, even if FogBugz ships with a one-click install, full uninstall/rollback capabilities, free (and fast!) install support, and a money-back guarantee, I will be checking to see what additions and changes to our system are really there. If I feel that the changes amount to the implementation of a whole new operational platform instead of a &#039;simple&#039; application that utilizes the existing platform, then I start looking for alternatives. In the case of FogBugz, I&#039;m quite certain that suitable alternatives can be had without requiring that I install a whole new platform, regardless of how easy that install might be.&lt;/p&gt;
&lt;p&gt;I&#039;m not sure that Wasabi was the optimal solution, but I think the concepts are quite sound. Although they still have two code-bases to maintain (Wasabi and Fogbugz instead of FB-PHP and FB-ASP), they make it very hard for me to find reasons to not buy.&lt;/p&gt;
</description>
 <pubDate>Thu, 07 Sep 2006 07:29:32 -0700</pubDate>
 <dc:creator>Ron Porter</dc:creator>
 <guid isPermaLink="false">comment 1490 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>Control and Packaging</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1489</link>
 <description>&lt;p&gt;I&#039;m not entirely sure about Joel&#039;s technical choices (C, C++ or Perl might have been better), but I&#039;ve certainly learned that it is important to have control over as much of the product code as possible. The often overused phrase about not re-inventing the wheel is more applicable to smaller in-house development projects than it is to major commercial endeavors. You canâ€™t fix what you donâ€™t own â€“ and you always need to fix problems with software. &lt;/p&gt;
&lt;p&gt;As far as products are concerned, any specific language issues should be mitigated by packaging. If the product installs easily and cleanly, and doesnâ€™t require significant external maintenance, then the language and underlying technologies used to build the code becomes insignificant. Integration with other products should be isolated from the main development stream â€“ so again the language used to develop the core should be encapsulated. Suitability, stability and the ability to hire experienced programmers are probably more important issues.&lt;/p&gt;
</description>
 <pubDate>Wed, 06 Sep 2006 17:45:46 -0700</pubDate>
 <dc:creator>Paul W Homer</dc:creator>
 <guid isPermaLink="false">comment 1489 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>Toolsets and Tools</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1488</link>
 <description>&lt;p&gt;This is a very interesting discussion. As Ken points out, people do indeed tend to be protective of their programming language of choice. In addition, programmers also tend to be disdainful of programming languages that they choose not to use or that they know little about, a point I have made myself once or twice.&lt;/p&gt;
&lt;p&gt;Joel&#039;s choice to write an app in a propriatary language to solve an adoption problem among his user base (whether it&#039;s Windows users refusing to adopt a PHP program or Linux/Unix users refusing to adopt an ASP program) is interesting and was clearly his call to make. My take on Joel, from reading many an interesting post to his site, is that he likes to do what he likes to do. He makes &quot;shrinkwrapped&quot; software because that&#039;s more fun than writing custom business software. And he happens to be at a place in life where he&#039;s free to make these kinds of choices.&lt;/p&gt;
&lt;p&gt;Still, going so far as writing an application in a propriatary language is clearly a big leap, and not something I think would work in most situations. Edward Nilges often speaks of how developers get in trouble for reinventing the wheel--creating new tools where 3rd party tools exist, for example. Sometimes it makes more sense to re-invent the wheel than to figure out how someone else&#039;s wheel is supposed to work and how it&#039;s supposed to integrate with your monster truck. &lt;/p&gt;
&lt;p&gt;Personally, though, I think using your own language is a bridge too far when there are so many languages out there. It&#039;s not just that your language might not be perfect or mature. To me the real problem is that widely accepted languages have tons of tools and toolsets available to improve your productivity. If you&#039;ve rolled your own language, well, you&#039;re own your own. &lt;/p&gt;
&lt;p&gt;Did the Fog Creek team write their own IDE, I wonder? Write all of their own string parsers, etc? Clearly they seem to be happy with this situation, but I can&#039;t imagine that it&#039;s applicable to a lot of other business problems.&lt;/p&gt;
&lt;p&gt;Also, I wonder why they did not choose to write their app in one language or the other and then write a translator that would translate from VBScript, say, to PHP? Obviously you&#039;d be stuck with a lowest common denominator subset of the language you used to make sure everything would translate, but this seems like a much more productive and easier to maintain/test situation than using your own langauge.&lt;/p&gt;
&lt;p&gt;Regardless, I bet it was a fun project to work on!&lt;/p&gt;
</description>
 <pubDate>Wed, 06 Sep 2006 14:53:52 -0700</pubDate>
 <dc:creator>Rob MacGrogan</dc:creator>
 <guid isPermaLink="false">comment 1488 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>Choosing the right tools for your mission</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1487</link>
 <description>&lt;p&gt;I do not want to go into the depth of the last comments, nor do I have the time for it (here in Israel, it&#039;s not that rare for developers to work 12-13 hours a day).&lt;/p&gt;
&lt;p&gt;What I&#039;d love to say is that, as Joel wrote, people tend to be too protective of their Programming Language of Choice. The Ruby guys were &quot;insulted&quot; and were in too hurry to insult the VBScript language. I do not think that either is bad, but it&#039;s all a matter of the right place to use each one. If not for VB, VBA and their relatives, a lot of self trained coders would have probably won&#039;t have the break to start their careers. I, personally know of some small products, which are VERY productive and cost effective to their clients, that are written in uncool languages, such as VBA over MSACCESS. The client doesn&#039;t give a (beep) about the architecture, the designability, scalability of other buzzility of the product. He wants it fast, good, and cheap. Sometimes the best thing (from the business point of view) is to do just that.&lt;/p&gt;
&lt;p&gt;And here enters my second argument, the one that&#039;s stated in the comments title. You are not always in the need of the full armada of soldiers to get yourself a little hilltop. Not need the wall Auto-Bots in order to take out the whiny Star-Scream. Even Bumblebee would do.&lt;/p&gt;
&lt;p&gt;Therefore, choosing the well-aimed-for-it&#039;s-target Wasabi for the exact situation were needed, was probably a good decision, without the debate of if it&#039;s a good or bad language.&lt;/p&gt;
&lt;p&gt;Is French a bad language? It depends on the where you live. Maybe English is better, but both wont do you much if your living underwater. (okay, that was a long shot. cut me a break - I need some sleep to be coherent).&lt;/p&gt;
&lt;p&gt;So g&#039;dnight.&lt;/p&gt;
</description>
 <pubDate>Wed, 06 Sep 2006 11:39:55 -0700</pubDate>
 <dc:creator>Ken Egozi</dc:creator>
 <guid isPermaLink="false">comment 1487 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>Reading comprehension</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1486</link>
 <description>&lt;p&gt;You didn&#039;t read the part where I talk about the &quot;common denominator&quot; or decided to ignore 80% of my comment.&lt;/p&gt;
&lt;p&gt;Not only what I wrote holds true, but your examples are weak. Most byte code can&#039;t be edited without specialized tools and a great knowledge of the input language and its target plataform and the software/code goals. Certainly not what we would qualify as a &quot;programming language&quot;, much less one that&#039;s productive.&lt;/p&gt;
&lt;p&gt;And &quot;almost compiled&quot; and &quot;less powerful&quot; isn&#039;t &quot;sound, secure and performant&quot;, so even on your quote selection you&#039;ve failed. Show me a moderately complex (id FogBuzz&#039;s level) IronPython code transformed into Python transformed into C transformed into ASM that does the same thing as the original code and I surrender to your intelligence.&lt;/p&gt;
&lt;p&gt;If you didn&#039;t want so much to quickly disqualify what i wrote, I am sure you would have catch the zeitgeist of the text. But you had to be a show-off...&lt;/p&gt;
</description>
 <pubDate>Wed, 06 Sep 2006 09:28:49 -0700</pubDate>
 <dc:creator>Julio Nobrega</dc:creator>
 <guid isPermaLink="false">comment 1486 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>Compiling to another language</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1484</link>
 <description>&lt;p&gt;Your argument saying, &quot;you can&#039;t write in one language and expect it to output a sound, secure and performant&quot; is just not valid. We have many examples of compiling one language to another (often less powerful) language with great success.&lt;/p&gt;
&lt;p&gt;C/C++ is compiled to ASM every day (and often cross compiled to multiple ASM targets).&lt;/p&gt;
&lt;p&gt;Python can be compiled to python byte code, java byte code, or .net asm.&lt;/p&gt;
&lt;p&gt;All .net languages are compiled to .net asm and later recompiled to ASM.&lt;/p&gt;
&lt;p&gt;PHP is compiled into ZEND byte code.&lt;/p&gt;
&lt;p&gt;Haskell is almost always compiled into C.&lt;/p&gt;
&lt;p&gt;There are just too many examples to compiling into a lower-level language for your argument to hold.&lt;/p&gt;
</description>
 <pubDate>Wed, 06 Sep 2006 07:38:04 -0700</pubDate>
 <dc:creator>Stefan</dc:creator>
 <guid isPermaLink="false">comment 1484 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>Embedded SQL al a LINQ</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1483</link>
 <description>&lt;p&gt;Thanks for catching that, Larry!&lt;/p&gt;
&lt;p&gt;Dan&lt;/p&gt;
</description>
 <pubDate>Tue, 05 Sep 2006 18:38:55 -0700</pubDate>
 <dc:creator>Daniel Read</dc:creator>
 <guid isPermaLink="false">comment 1483 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>A comment</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1482</link>
 <description>&lt;p&gt;Hey Dan,&lt;/p&gt;
&lt;p&gt;No, you can&#039;t write in one language and expect it to output a sound, secure and performant PHP 4/5 and ASP application, unless you target the lowest common denominator between N enviroments, otherwise we would have already the one true language, which outputs to 2 languages, which in turn output to 4 languages, and it goes on and on until machine code is reached.&lt;/p&gt;
&lt;p&gt;But if you target the lowest common denominator, or you have a sales pitch like Joel&#039;s &quot;you get the source code to fix any bugs&quot; (which is awesome IMHO), Wasabi is a good thing. FogBuzz probably doesn&#039;t scale to Wikipedia or LiveJournal&#039;s level without some *heavy* modifications, but who cares? It won&#039;t probably ever need to.&lt;/p&gt;
&lt;p&gt;I am not making less of Wasabi for targetting what I called the &quot;lowest common denominator&quot;, what I mean is that I think there isn&#039;t a need for the more advanced stuff from each language (PHP or ASP), and anyway, different files can be written on each language and later included on the distribution to complement a feature after Wasabi is &quot;compiled&quot;.&lt;/p&gt;
&lt;p&gt;And I don&#039;t think you quite understand what Copilot is... the part &quot;hosted&quot; is pratically nothing, since the product is mostly a VPN with a central proxy (hence the C#). RoR, or any other web framework, would have solved very little to its development problems.&lt;/p&gt;
</description>
 <pubDate>Tue, 05 Sep 2006 18:33:09 -0700</pubDate>
 <dc:creator>Julio Nobrega</dc:creator>
 <guid isPermaLink="false">comment 1482 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>Embedded SQL</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1481</link>
 <description>&lt;p&gt;After reading your &quot;I don&#039;t recall Joel at any point saying that Wasabi included embedded SQL....&quot; I double-checked and&lt;br /&gt;
&quot;...we like closures, active records, lambdas, embedded SQL a la LINQ, etc. etc. and so those are the kinds of features we put into Wasabi.&quot; at &lt;a href=&quot;http://www.joelonsoftware.com/items/2006/09/01b.html&quot; title=&quot;http://www.joelonsoftware.com/items/2006/09/01b.html&quot;&gt;http://www.joelonsoftware.com/items/2006/09/01b.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Good post! &lt;/p&gt;
&lt;p&gt;Cheers,&lt;br /&gt;
Larry&lt;/p&gt;
</description>
 <pubDate>Tue, 05 Sep 2006 18:15:16 -0700</pubDate>
 <dc:creator>Larry O&#039;Brien</dc:creator>
 <guid isPermaLink="false">comment 1481 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>Joe misses the point</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1480</link>
 <description>&lt;p&gt;Joe, you (and DHH and his swarm of followers blinded by rage over the criticism of RoR) are the one who completely misses the point. As Joel already explained in his follow-up post:&lt;/p&gt;
&lt;p&gt;&quot;Even though PHP is available for Windows, it&#039;s not preinstalled&quot;&lt;/p&gt;
&lt;p&gt;There are big differences between writing internal or hosted apps and writing packaged software. The minute Joel picks PHP as his implementation language of choice, he&#039;s instantly going to be cutting his revenue potential in half. As Daniel pointed out above, just because PHP will run on IIS doesn&#039;t mean companies are going to install it.&lt;/p&gt;
&lt;p&gt;Out of the companies that I&#039;ve worked for, most probably would not be willing to install PHP in order to run a bug tracking system if they had a choice of another system that would run on plain vanilla IIS. Thus the obvious solution that DHH-and-company can&#039;t see even when it&#039;s spelled out to them.&lt;/p&gt;
</description>
 <pubDate>Tue, 05 Sep 2006 17:59:26 -0700</pubDate>
 <dc:creator>Jacob</dc:creator>
 <guid isPermaLink="false">comment 1480 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>A Stupid Idea?</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1478</link>
 <description>&lt;p&gt;Thanks for your comments, Joe. I appreciate the input, and you have hit on exactly the part of the debate I find interesting. I cannot agree, though, that I missed the point entirely, or that &quot;wasabi was a stupid idea in the first place.&quot;&lt;/p&gt;
&lt;p&gt;In my analysis, this all comes down to two determining factors: first, did Fog Creek implement a solution that made sense within their business situation and given their specific goals; and second, does the thing work?&lt;/p&gt;
&lt;p&gt;From reading everything Joel has written on the topic, and taking into account my general high regard for what Joel has to say (a regard that is clearly not shared by all), my conclusion is that an &quot;indirection&quot; language with target-specific compilers seems like a good idea given Fog Creek&#039;s market realities, business goals, and legacy code base. In his &quot;Wasabi&quot; post, Joel addresses the PHP question raised by Joe:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;In most deployed servers today, the lowest common denominators are VBScript (on Windows), PHP4, and PHP5 (on Unix). If we try to require anything fancier on the server, we increase our tech support costs dramatically. Even though PHP is available for Windows, it&#039;s not preinstalled, and I don&#039;t want to pay engineers to help all of our Windows customers install PHP. We could use .NET, but then I&#039;d have to pay engineers to install Mono for all our Unix customers, and the .NET runtime isn&#039;t quite ubiquitous on Windows servers.&lt;/p&gt;
&lt;p&gt;Since we don&#039;t want to program in VBScript or PHP4 or even PHP5 and we certainly don&#039;t want to have to port everything to three target platforms, the best solution for us is a custom language that compiles to our target platforms.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;One can disagree with his reasoning, but its clear that it&#039;s not like they just failed to account for PHP&#039;s cross-platform support. Joe, you also write that &quot;It is an idiotic task to write a whole new language when your application is already written in a cross platform language.&quot; I think this misses two critical points:&lt;/p&gt;
&lt;p&gt;First, as Joel himself explains, they started out with a legacy code base (VBScript/ASP) that &quot;goes back many years.&quot; So a full port to PHP would be in order; even if you can pull that off quickly, you run smack dab into the second critical point: PHP may be cross-platform, but there is resistance in Windows-oriented development shops for adopting a PHP application for something as critical and long-lasting as a bug tracking and task management system.&lt;/p&gt;
&lt;p&gt;I have witnessed exactly this resistance myself in two different shops: certain managers (whether your or I think they were right or not) refused to consider a PHP application to run on their IIS servers. We could debate about whether this is logical, and bitch about how stubbornly homogenous Windows adopters can be, but when you&#039;re trying to maximize your potential customer base and give people what they want, the calculus is different.&lt;/p&gt;
&lt;p&gt;Which brings us back to what I identified as the second determining factor: does Wasabi work as advertised? Can you really write the application in Wasabi, run it through some compilers, and come out with a sound, secure, and performant PHP5 application? I personally have no idea, and I can think of several things that would make that tricky, but at this point I&#039;m willing to give Joel and Fog Creek the benefit of the doubt that it does work--otherwise, I don&#039;t think they&#039;d be using it, and I don&#039;t think they&#039;d be bragging about it. But I could be wrong.&lt;/p&gt;
&lt;p&gt;Thanks again,&lt;br /&gt;
Dan&lt;/p&gt;
</description>
 <pubDate>Tue, 05 Sep 2006 08:20:25 -0700</pubDate>
 <dc:creator>Daniel Read</dc:creator>
 <guid isPermaLink="false">comment 1478 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>You missed the point entirely.</title>
 <link>http://www.developerdotstar.com/community/node/571#comment-1476</link>
 <description>&lt;p&gt;The point is that wasabi was a stupid idea in the first place. When faces with a situation where you have to deliver your product in two languages on two platforms you don&#039;t spend a bunch of time writing a new language and a new compiler. You use a cross platform language. &lt;/p&gt;
&lt;p&gt;Surprisingly PHP is just such a language. It runs great on Windows, supports IIS, has full support for SQL server, has tons of database abstraction layers and ORMS, and installs with one click on windows.&lt;/p&gt;
&lt;p&gt;It is an idiotic task to write a whole new language when your application is already written in a cross platform language.&lt;/p&gt;
&lt;p&gt;I still don&#039;t think Joel is that stupid. I honeslty think he is either pulling your leg or doing this to get publicity for his product (which by the way is pretty mediocre).&lt;/p&gt;
</description>
 <pubDate>Mon, 04 Sep 2006 19:01:48 -0700</pubDate>
 <dc:creator>Joe</dc:creator>
 <guid isPermaLink="false">comment 1476 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>In Defense of Joel&#039;s Wasabi Indirection Layer</title>
 <link>http://www.developerdotstar.com/community/node/571</link>
 <description>&lt;p&gt;I can&#039;t resist contributing my own modest viewpoint to the debate that has been sparked by a recent pair of posts (&quot;&lt;a href=&quot;http://www.joelonsoftware.com/items/2006/09/01.html&quot;&gt;Language Wars&lt;/a&gt;&quot; and &quot;&lt;a href=&quot;http://www.joelonsoftware.com/items/2006/09/01b.html&quot;&gt;Wasabi&lt;/a&gt;&quot;) by Joel Spolsky regarding his company&#039;s use of a proprietary, home-grown language called Wasabi to produce the company&#039;s FogBugz product. Joel in the same posts shared his view that Ruby is not up to full enterprise production snuff (my paraphrasing), which triggered defensive responses by Ruby on Rails founder David Hansson, &quot;&lt;a href=&quot;http://www.loudthinking.com/arc/000596.html&quot;&gt;Fear, Uncertain, and Doubt by Joel Spolsky&lt;/a&gt;&quot; (sic) and &quot;&lt;a href=&quot;http://www.loudthinking.com/arc/000597.html&quot;&gt;Was Joel&#039;s Wasabi a joke?&lt;/a&gt;&quot;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.developerdotstar.com/community/node/571&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.developerdotstar.com/community/node/571#comment</comments>
 <category domain="http://www.developerdotstar.com/community/taxonomy/term/20">Software Development</category>
 <category domain="http://www.developerdotstar.com/community/taxonomy/term/6">Platforms</category>
 <category domain="http://www.developerdotstar.com/community/taxonomy/term/23">Ruby</category>
 <pubDate>Mon, 04 Sep 2006 14:49:13 -0700</pubDate>
 <dc:creator>Daniel Read</dc:creator>
 <guid isPermaLink="false">571 at http://www.developerdotstar.com/community</guid>
</item>
</channel>
</rss>
