Hacker News new | past | comments | ask | show | jobs | submit login

Respectfully, their example code is the following:

  <%
  <WebEntryPoint("example.asp")> _
  Sub Example()
    %>
    <!DOCTYPE html>
    <html>
      <head>
        <title>An Example Wasabi Program</title>
        <meta charset="utf-8">
      </head>
      <body>
        <h1>An Example Wasabi Program</h1>
        <p>Arithmetic: 1 + 1 = <%= 1 + 1 %></p>
        <p>Dynamic Content: x + y = <%= IntRequest("x") + IntRequest("y") %>
      </body>
    </html>
    <%
  End Sub
  %>
I mean, they basically went to the trouble of building their own compiler to be able to keep writing Frankenstein ASP. If they'd built a language like Elixir I think people would be a lot more sympathetic.

http://jacob.jkrall.net/wasabi-the-parts/a_first_program.htm...




The thing is, "frankenstein asp" (and PHP) are so damn easy. Yeah it mixes presentation with logic and after a point it all gets really messy but on the other hand everything about a page is right there and you don't need to do any builds and you can code in notepad and deploy with xcopy/rsync.

Before rich client/ajax took off, it was more than adequate for most e-commerce, web publishing, and internal administrative applications. Truth be told, it still is, but it's just soooo 2001.


I love that he calls <%%> "tie fighters."


Thanks for the explanation! I had no idea what that phrase referred to.


Not sure I follow.


If you go to the trouble to write your own language, make it not terrible?

  Public Abstract Class Animal
    Abstract Function Speak() As String

    Overridable Function Eat() As String
      Return "Yum!"
    End Function
  End Class

  Public Class Dog Inherits Animal
    Override Function Speak()
      Return "Woof!"
    End Function

    Override Function Eat()
      Return Base.Eat() & " Woof!"
    End Function
  End Class
http://jacob.jkrall.net/wasabi-the-parts/classes.html#access...


It wasn't written that way to facilitate future spaghetti code, but to make sure the old stuff still worked.

Without that, you'd have to rewrite, in which case, why not rewrite in an existing language?


That isn't Classic ASP code, that's more .NET-ish stuff. So it wouldn't have required a rewrite to avoid it, right?


That's the ++ in the ASP++. Stock ASP/VB works (or worked) too, but lots of new syntax was added to support .net.


Another volunteer to rewrite all the existing ASP code!


He means if they were going to compile to ASP and PHP anyway, they could have at least gone with a better source language than ASP++.


ASP++ Was the path of least resistance given where they started, which was classic ASP and VBScript.

I suspect that many of the armchair critics can't relate to being constrained by decisions made years ago at the start of a project -- decisions that one might now regret but nonetheless constrain the way the codebase can evolve.


The path of least resistance would have been to write the ASP-to-PHP transpiler, check in the PHP, and stop there.


That would, at a minimum, have created substantial turbulence on the windows side. Continuing to ship the same windows installer with the same system requirements was less resistance.


I can relate, for sure, but it's not like they'd written a 50 million line operating system in ASP.

At the point you've decide to build a terrible new internal-only language just to maintain a single bug-tracking app codebase ... perhaps you aren't been doing an accurate cost/benefit analysis?


Literally every single person on this thread agrees: if you're going to rewrite code by hand, you wouldn't deploy something like Wasabi. Wasabi exists entirely to facilitate not rewriting.

You've also got several current and former FC'ers on this thread, all? of whom don't like Wasabi as a language, all saying that from a pure cost/benefit perspective, Wasabi paid off.


Wasabi is a case study in technical debt. This entire thread is a case study in I wasn't there, but I know more about it than the people who were.


And possibly of Greenspun's Tenth Rule. (Wasabi, not the thread.)


s/but/because




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

Search: