Link to home
Start Free TrialLog in
Avatar of jskubick
jskubick

asked on

Is JScript a 'first class' equal peer to VBscript in NON-dotNet ASP?

I need to write a few new scripts for an ancient app running in a pre-.NET ASP environment. To tell the truth, I hate VBscript and Visual Basic syntax in general with a passion. JScript isn't much better, but at least it uses halfway civilized syntax (I happen to like punctuation better than verbosity. Ok, and I keep forgetting the )@$*( 'Then' after 'If' statements... grrr....).

Anyway, is JScript TRULY an equal peer to VBscript insofar as pre-.NET ASP is concerned?  Are all the objects available to VBscript (Server, Response, etc.) available to JScript? Are there any innate capabilities of VBscript relevant to ASP that simply aren't available (or are massively kludged) in JScript?

I'm assuming the answer is a resounding 'no', but can you mix languages in a single page (using multiple <script language="xxx" runat="server" blocks specifying different languages in different places)? And if you can, do they share a common object space? For instance, can you Dim a String variant in a block of VBscript and assign it a value near the top of the page, then do something with that variable in a block of JScript further down the page? How about complex objects? Say, an object defined using VBscript syntax, possibly created within a VBscript block, then called by a JScript block further down the page?

Is there any good online reference to using JScript in the context of pre-.NET ASP? I've been searching for over an hour, but everything I keep finding is either

* an article about using VBscript that just happens to contain the word "JScript" somewhere

* an article about client-side JScript within IE

* An article about something .NET related that, like the mountain of VBscript articles, just happens to mention JScript in passing.
Avatar of sybe
sybe

I agree that JScript is a nicer language to work with then VBScript. In fact in older ASP versions, JScript had more possibilites then VBScript (although there probably also were some things in VBScript that weren't possible in JScript).

In my opinion you can use Jscript just as well as VBScript in ASP.
It it also nice to mix languages if needed. You can even use perlscript, if you install it.
Mixing languages is no problem, they all will be have access to public variables.

There one thing that is really different in VBScript and JScript: arrays. A VBScript and a JScript array are completely different things. Now that I talk about arrays: VBScript has truly multi-dimensional arrays, while JScript hasn't.

The thing is that most ASP pages are written in VBScript, and if you want advice, then it's easier to get in in VBScript. I believe however that most ASP programmers als have quite a knowledge of client-side javascript (look at the expert-rankings here on EE, you'll see that most high ranked ASP maybe are not top-javascript experts, but have a considerable amount of point in the javascript area).

If you hate to program in VBScript, there's really nothing against using JScript from the point of possibilites.


Avatar of jskubick

ASKER

Is there a JScript equivalent to
<% Option Explicit %> ?

How about sharing variables? I assume a variable assigned a value of null by vbscript will have a value of null when checked by JScript, but does vbscript's 'empty' map directly to jscript's 'undefined'? Aside from not trying to share arrays, are there any other not-necessarily-obvious things that will cause JScript to crash and burn, even though the same thing theoretically works from vbscript? Situations where one language expects something to pass by value where the other expects it to pass by reference, perhaps?
ASKER CERTIFIED SOLUTION
Avatar of sybe
sybe

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
A very big advantage of JScript is the ability to create enumerated script classes. In VBScript you can't do that.
Jscript can measure milliseconds, VBScript has a minimal time-unit 1000/256 second.
JScript has optional parameters to functions, VBScript hasn't