VBScript vs JScript
От: loknalori Россия  
Дата: 15.06.07 10:01
Оценка:
Не уверен что сюда, но на мой взгляд вопрос скорее философский, чем практический.
Есть ряд задач автоматизации который в силу ряда причин следует реализовать в виде скриптов для WSH. Вопрос, чем отличается направленность этих языков???

Дело в том что согласно референсу JScript показался мне более гибким, навороченым в смысле готовых функций, более WEB ориентированым. И в качестве минуса — не возмоджность передать несколько возвращаемых значений без сложностей (т.е. нужно делать коллекции или массивы, что не всегда удобно)

В VBScript не вводились нововведения достаточно давно, т.е. и на 2000м я получу тот же функционал что и на XP. Ну и вроде бы и все.

А как на самом деле обстоит дело?
Re: VBScript vs JScript
От: _pk_sly  
Дата: 15.06.07 10:06
Оценка:
L> не возмоджность передать несколько возвращаемых значений без сложностей (т.е. нужно делать коллекции или массивы, что не всегда удобно)


function f()
{
    return { a:1, b:2 };
}

var x = f();
WSH.echo(x.a);
WSH.echo(x.b);
Re: VBScript vs JScript
От: Left2 Украина  
Дата: 15.06.07 10:14
Оценка: +1
L>Дело в том что согласно референсу JScript показался мне более гибким, навороченым в смысле готовых функций, более WEB ориентированым. И в качестве минуса — не возмоджность передать несколько возвращаемых значений без сложностей (т.е. нужно делать коллекции или массивы, что не всегда удобно)

Лехко :
function ReturnManyValues()
{
    return {strFirstValue:"1", nNumValue:2, bBoolValue:true};
}

var oRes = ReturnManyValues();
window.alert(oRes.strFirstValue);
window.alert(oRes.nNumValue);
window.alert(oRes.bBoolValue);


L>А как на самом деле обстоит дело?


JScript — это самый красивый язык из всех которые я видел. Очень лаконичный и минималистичый — но одновременно мощный и красивый. VBScript просто жуткое убожество по сравнению с JScript.

Выбирай JScript, однозначно.
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re: VBScript vs JScript
От: fplab Россия http://fplab.h10.ru http://fplab.blogspot.com/
Дата: 15.06.07 10:16
Оценка:
Здравствуйте, loknalori, Вы писали:

L>Не уверен что сюда, но на мой взгляд вопрос скорее философский, чем практический.

L>Есть ряд задач автоматизации который в силу ряда причин следует реализовать в виде скриптов для WSH. Вопрос, чем отличается направленность этих языков???

L>Дело в том что согласно референсу JScript показался мне более гибким, навороченым в смысле готовых функций, более WEB ориентированым. И в качестве минуса — не возмоджность передать несколько возвращаемых значений без сложностей (т.е. нужно делать коллекции или массивы, что не всегда удобно)


L>В VBScript не вводились нововведения достаточно давно, т.е. и на 2000м я получу тот же функционал что и на XP. Ну и вроде бы и все.


L>А как на самом деле обстоит дело?

Я бы (IMHO, разумеется) выбрал JScript. Все-таки он очень похож на JavaScript, который стандартизован.
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Re: VBScript vs JScript
От: Othello  
Дата: 15.06.07 10:17
Оценка:
Единственное, что я не видел в JScript — это аналога MidB и их братьев из VB.

а в целом — это выбор в силу привычки наверно...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: VBScript vs JScript
От: loknalori Россия  
Дата: 15.06.07 10:24
Оценка:
Здравствуйте, _pk_sly, Вы писали:

L>> не возмоджность передать несколько возвращаемых значений без сложностей (т.е. нужно делать коллекции или массивы, что не всегда удобно)



__>
__>function f()
__>{
__>    return { a:1, b:2 };
__>}

__>var x = f();
__>WSH.echo(x.a);
__>WSH.echo(x.b);
__>


этот способ не удобно реализовывать когда ты в свое приложение встраиваеш WSH
Re[3]: VBScript vs JScript
От: loknalori Россия  
Дата: 15.06.07 10:25
Оценка:
Здравствуйте, loknalori, Вы писали:

L>этот способ не удобно реализовывать когда ты в свое приложение встраиваеш WSH

сразу поясню — для сложных типов нужно реализовывать свои COM интерфейсы, что менее тривиально как для встроенных типов.
Re[4]: VBScript vs JScript
От: _pk_sly  
Дата: 15.06.07 10:29
Оценка:
L>>этот способ не удобно реализовывать когда ты в свое приложение встраиваеш WSH
L>сразу поясню — для сложных типов нужно реализовывать свои COM интерфейсы, что менее тривиально как для встроенных типов.

встраивал.
никаких сложностей.

благо есть wizardы — что для ATL что для MFC. добавления нового объекта или свойства делается в несколько кликов либо копи-пастов.
Re: VBScript vs JScript
От: Ramzzes Россия http://ramzes.ws/
Дата: 15.06.07 10:32
Оценка:
А как на JScript делаются классы?
Re[2]: VBScript vs JScript
От: . Великобритания  
Дата: 15.06.07 10:37
Оценка:
Othello wrote:

> Единственное, что я не видел в JScript — это аналога MidB и их братьев

> из VB.
substr
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: VBScript vs JScript
От: elmal  
Дата: 15.06.07 10:38
Оценка:
Здравствуйте, loknalori, Вы писали:

L>А как на самом деле обстоит дело?

Имхо на JScript возможностей побольше, но у VBScript более прозрачный синтаксис в некоторых вещах. Есть такой оператор как class, методы могут быть приватными. У JScript объектно ориентированный синтаксис очень уж нестандартный, но возможности практически как в нормальных языках. Тут и конствукторы c параметрами, и исключения нормальные, и еще много всего (можно у объекта в процессе выполнения подменить, удалить и добавить метод и т.д., собственно объект это Map<VARIANT,VARIANT>, очень оригинально).
Re[2]: VBScript vs JScript
От: . Великобритания  
Дата: 15.06.07 10:38
Оценка: +1
Ramzzes wrote:

> А как на JScript делаются классы?

Они там не нужны, там есть объекты.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[3]: VBScript vs JScript
От: Othello  
Дата: 15.06.07 10:53
Оценка:
Здравствуйте, ., Вы писали:

.>Othello wrote:


>> Единственное, что я не видел в JScript — это аналога MidB и их братьев

>> из VB.
.>substr

там есть Mid и MidB
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: VBScript vs JScript
От: . Великобритания  
Дата: 15.06.07 10:56
Оценка:
Othello wrote:

>> > Единственное, что я не видел в JScript — это аналога MidB и их братьев

>> > из VB.
> .>substr
> там есть Mid и Mid*B*
Байтов в js нету (да и нафиг оно в скриптовом языке??). И MidB уже выкинули из следующей версии VB.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[3]: VBScript vs JScript
От: Left2 Украина  
Дата: 15.06.07 11:55
Оценка:
>> А как на JScript делаются классы?
.>Они там не нужны, там есть объекты.

+100
Но всё-таки классы и наследование там делаются.
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[2]: VBScript vs JScript
От: Left2 Украина  
Дата: 15.06.07 11:55
Оценка:
L>>А как на самом деле обстоит дело?
E>Имхо на JScript возможностей побольше, но у VBScript более прозрачный синтаксис в некоторых вещах. Есть такой оператор как class, методы могут быть приватными.
E>У JScript объектно ориентированный синтаксис очень уж нестандартный, но возможности практически как в нормальных языках.
Возможности его — ПОБОЛЬШЕ чем во многих "нормальных" языках
Оччень вкусная штука — возможность создавать функции где угодно c возможностью юзать переменные из текущего контекста

В JS надо привыкнуть к таким непривычным вещам:
— "окрытости" обьектов. Т.е. к обьекту могут добавляться свойства и функции, которые суть тоже свойства, в течение всего времени жизни обьекта.
— "странным" областям видимости переменных/функций — к примеру, фигурные скобки внутри функции не влияют на видимость. Т.е.:
function foo()
{
    var i = 0;
    {
      var j = 1;
    }
    i = j; // Тут всё OK! i <= 1
}

— прототипы и конструкторы обьектов. Единственная, имхо, сложная вещь в JS. Впрочем, после того как я её для себя понял я перестал ей пользоваться Просто потому что наследование — вешь неродная для JS. Тут рулят функции, а не классы
— замысловатая система передачи параметров в функцию — надо привыкнуть к тому что строки и числа — только по значению, обьекты (в т.ч.) массивы — только по ссылке.

Поначалу после С++ было сложно. Правда, здОрово помогало наличие прекрасного (по сравнению с C++) отладчика c возможностями подёргать код "на коленке". Но после привыкания к JS слезть с него уже становится проблемой
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[4]: VBScript vs JScript
От: Left2 Украина  
Дата: 15.06.07 11:58
Оценка:
L>>этот способ не удобно реализовывать когда ты в свое приложение встраиваеш WSH
L>сразу поясню — для сложных типов нужно реализовывать свои COM интерфейсы, что менее тривиально как для встроенных типов.

Ты разъясни подробнее суть проблемы. Что именно тебе нужно сделать? У тебя функция f() вызывается из C++ и ты хочешь получить много возвращаемых значений?
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[3]: VBScript vs JScript
От: loknalori Россия  
Дата: 15.06.07 12:09
Оценка:
L>Поначалу после С++ было сложно. Правда, здОрово помогало наличие прекрасного (по сравнению с C++) отладчика c возможностями подёргать код "на коленке". Но после привыкания к JS слезть с него уже становится проблемой

Какой такой отладчик?!
Re[5]: VBScript vs JScript
От: loknalori Россия  
Дата: 15.06.07 12:11
Оценка:
Здравствуйте, Left2, Вы писали:

L>>>этот способ не удобно реализовывать когда ты в свое приложение встраиваеш WSH

L>>сразу поясню — для сложных типов нужно реализовывать свои COM интерфейсы, что менее тривиально как для встроенных типов.

L>Ты разъясни подробнее суть проблемы. Что именно тебе нужно сделать? У тебя функция f() вызывается из C++ и ты хочешь получить много возвращаемых значений?


да. Суть сложности (на счет проблемы — не знаю, пока не пробовал), что значения предадутся по COM интерфейсу. Если данные укладываются в VARIANT, то все нормально, но 2 значения — это уже массив...
Re[6]: VBScript vs JScript
От: Left2 Украина  
Дата: 15.06.07 12:22
Оценка:
L>>Ты разъясни подробнее суть проблемы. Что именно тебе нужно сделать? У тебя функция f() вызывается из C++ и ты хочешь получить много возвращаемых значений?

L>да. Суть сложности (на счет проблемы — не знаю, пока не пробовал), что значения предадутся по COM интерфейсу. Если данные укладываются в VARIANT, то все нормально, но 2 значения — это уже массив...


Напиши простенькую обёрточку которая из обьекта JS (видимого в C++ как IDispatch) доставала все значения (или значения по их именам). Это решит твою проблему?
... << RSDN@Home 1.2.0 alpha rev. 676>>