Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Keep in mind Ruby on Rails had been out for less than a year at the time I wrote that, and the only thing I said about it was that brand new frameworks are not the kind of thing that enterprises like to bet the farm on.


As opposed to things like, say, brand new languages that compile down to VBScript.

The whole Wasabi story sounds eerily similar to this classic Daily WTF: http://thedailywtf.com/Articles/Classic-WTF-We-Use-BobX.aspx


A good reason not to do anything interesting with programming languages in your company: because if word gets out that you did, you'll never, ever hear the end of the snarky comments about it.


well said. i was actually quite impressed that they were willing to pay the up-front cost for developer productivity by writing a targeted dsl for their app.


I don't think you get it: enterprises don't want to put new runtimes, platforms, etc on their hardware, EVER. As far as the enterprise IT dude is concerned, the VBScript is VBScript. He doesn't know or care how it was created, as long as it runs on the Windows box the 2006 corporation demanded he use. It seems to me that Joel was just trying to code once, and have the app run for customers who were tied to Windows only (and PHP ran like shit on Windows back then). Keep in mind how difficult it can be to deploy software in a large enterprise. It's never technical difficulty, its bureaucratic. Go to ACME Widgets, Inc., try to install Ruby on a server, and see how many weeks/months of hell you have to go through to stand it up.


When I was working for a large enterprise the only way to get around it was to work on an illegal server someone had built. They had it sitting under their desk and only let a few people have access to the box to ensure that word didn't get out that a 'rogue' box had been set up on the network.


As long as you either control the whole stack, or the stack is built on top of components that are considered mature, there is not much of a problem there.


Joel doesn't run an Enterprise company. So that advice doesn't apply to him. There's nothing difficult about this to understand.


Was Wasabi a deliberate attempt at a new language, or did it organically grow out of your ASP to PHP compiler? You used a subset of ASP (and enforced stuff like Hungarian notation) - was the Wasabi language 1.0 just "Wasabi is the subset of ASP that compiles into PHP using Thistle, so stop submitting bugs on unsupported features" kind of thing? And from there, it's a small step to adding syntactic sugar (then it's "a superset of a subset of ASP").


In the beginning, there was Thistle. Thistle was, at best, a glorified regex that converted ASP to PHP. It was written by an intern, and it showed.

Later, Thistle was broadened out into an ASP to PHP compiler. Compiler was still a loose term; there was still a lot of regex magic that relied on you following Hungarian apps notation. That said, I'm fairly confident that this version of Thistle did build an AST for code generation, which does mean it qualified as a real compiler.

That matters because this version of Thistle was extended out with two additional features: it could compile VBScript to JavaScript, and it added some conveniences to VBScript, such as macros (called picture functions (don't ask)), lambdas, and simplifications to the declaration system. Don't laugh too much at the former; the motivation was the same as for RJS or Seaside's JavaScript support. All three technologies are dead now, and for good reason, but it was modish at the time.

Later, when .NET came out, and VBScript was end-of-lifed, that left us with the option of rewriting the whole thing...or making a "real" compiler that could compile VBScript to .NET. Wasabi was born. Wasabi was written as a proper compiler that could translate VBScript to C# and (for legacy reasons; see above) JavaScript. Wasabi, unlike Thistle, was a real, full-blown compiler, in a CS sense, so it was feasible to add type inference, lambda expressions, and several other niceties, without spending too much effort. That said, the goal here was to allow transition: new components, with restrictions, could be written in C#. The idea was that, at least hopefully, Wasabi would gradually be deprecated.

So no. It was never meant to be a new language. It was always intended to be a stepping stone, a translator between languages, not a real language in itself. While it gained some additional features, that was to make working in the damn thing palatable--not to be a real language in its own right. Emitting C# and .NET IL are actually about equally easy if you have a real compiler, but Wasabi always emitted C#, specifically so that we could one day ditch the whole thing.


What's the status today? Have you ditched it?


>ASP to PHP compiler

O_o




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: