| View previous topic :: View next topic |
| Author |
Message |
Egor
Joined: 26 Nov 2011 Posts: 12
|
Posted: Wed Nov 30, 2011 6:01 pm Post subject: |
|
|
...
(3). В топике, где выкладывают скрипты для AkelPad, подавляющее большинство скриптов написано на JS, но для WSH (как мне казалось) обычно пишут на VBS, это какое-то религиозное предпочтение? Просто лично я не люблю JS, у него смнтаксис тупой какой-то, в коде разобраться трудно. |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 850
|
Posted: Thu Dec 01, 2011 6:02 am Post subject: |
|
|
(3) Есть несколько скриптов на VBS, а так да, основной - JS, видимо, потому, что похож на С  |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1893 Location: Vinnitsa, Ukraine
|
Posted: Thu Dec 01, 2011 9:15 am Post subject: |
|
|
| Quote: | | обычно пишут на VBS | Обычно делают то что умеют лучше. В данном случае большинство народа лучше всего умеют писать на ECMA262, так как он более распространен(ибо развелось школоты аля программисты - веб программисты). Как только WSH научится Lua я перейду на него. А если научится С++ - тем более. |
|
| Back to top |
|
 |
opk44
Joined: 16 Jan 2010 Posts: 190
|
Posted: Thu Dec 01, 2011 2:50 pm Post subject: |
|
|
Egor(3).
Кроме синтаксиса есть и иные различия. Пусть и малозаметные, но иногда "вдруг" становящиеся важными.
Например в списке методов AkelPad есть начинающиеся с символа подчеркивания: _TCHAR, _TSTR, _TSIZE, _X64. В VBS такие имена недопустимы, поэтому если такие методы вам в скрипте понадобятся, то очевидно, что этот скрипт будет написн на JS. А когда что-то кем-то ранее написано на JS, то логичнее не изобретать велосипед на VBS, а просто "подворовывать" из имеющегося. Но с другой стороны, в Jscript нет, например, полного аналога паре Asc()/Chr() из VBScript (если возникает необходимость работать не с юникодом, а именно с байтовыми кодировками), поэтому отказываться от VBScript окончательно ни к чему. |
|
| Back to top |
|
 |
Egor
Joined: 26 Nov 2011 Posts: 12
|
Posted: Thu Dec 01, 2011 6:15 pm Post subject: |
|
|
| opk44 wrote: | | В списке методов AkelPad есть начинающиеся с символа подчеркивания: _TCHAR, _TSTR, _TSIZE, _X64. В VBS такие имена недопустимы, поэтому если такие методы вам в скрипте понадобятся, то очевидно, что этот скрипт будет написн на JS |
Понятно. А почему они начинаются именно с "_" — это какая-то неизбежная необходимость или просто разрабам "так захотелось"? |
|
| Back to top |
|
 |
Serge Yolkin
Joined: 27 Jul 2010 Posts: 122
|
Posted: Thu Dec 01, 2011 7:24 pm Post subject: |
|
|
Egor
Вы исключаете вероятность тьго, что "разрабы" не знают Васика и ограничений его синтаксиса?
(Я не знаю) |
|
| Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1433
|
Posted: Thu Dec 01, 2011 7:33 pm Post subject: |
|
|
Так, вроде, открытым текстом написано:
| Code: | 'VBScript deny names start with (_) underscope
if AkelPad.IsOldWindows() then
TCHAR="A"
TSIZE=1
TSTR=0
else
TCHAR="W"
TSIZE=2
TSTR=1
end if |
(Scripts-Rus.txt)
А вот аналога для _X64 что-то не видать.
P.S. И да, underscore  |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1893 Location: Vinnitsa, Ukraine
|
Posted: Thu Dec 01, 2011 10:03 pm Post subject: |
|
|
| Quote: | | А почему они начинаются именно с "_" — это какая-то неизбежная необходимость или просто разрабам "так захотелось"? | А почему у нас правостороннее дорожное движение, а у японцев и англичан левостороннее?
В общем легенда такая.
Заметили что эти константы имеют общее? А именно: _T
Так такая вот комбинация символов используется в Microsoft SDK для унификации структуры приложений которые должны быть совместимы на разных версиях оболочки: на ANSI-версиях и на UNICODE-версиях. Ну а так как это довольно таки удобно, то почему бы его тут не сделать? |
|
| Back to top |
|
 |
Egor
Joined: 26 Nov 2011 Posts: 12
|
Posted: Fri Dec 02, 2011 6:10 pm Post subject: |
|
|
| Я все-таки так и не понял: когда разрабы создавали AkelPad и его объектную модель, они были _вынуждены_ использовать символ "_" в начале некоторых констант, или они просто решили, что это типа прикольно ("похоже на C++")? Я не программист и не имею ни малейшего представления, как там WSH прикручен к AkelPad, я рассуждаю, наверное, тупо, но: если плагин Scripts основан на WSH, а под WSH пишут либо на JS, либо на VBS, то почему произошло так, что VBS применительно к AkelPad претерпел "расовую дискриминацию":)? |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1893 Location: Vinnitsa, Ukraine
|
Posted: Fri Dec 02, 2011 7:28 pm Post subject: |
|
|
Egor
Также у программистов принято начинать с символа _ или называть только символом _ переменные либо функции, которые не имеют значения для процесса решения прикладной задачи(служебные) либо вообще не нужны. Например, код для обмена двух переменных значениями: | Code: | int supernumberone = 55;
int supernumbertwo = 66;
// меняем используя временную пременную
int _temp = supernumberone;
supernumberone = supernumbertwo;
supernumbertwo = _temp; |
В этом примере переменная _temp не играет никакой полезной прикладной роли в отличии от supernumberone и supernumbertwo, а потому её назвали с подчеркиванием в голове. Конечно могли назвать и temp, но тогда при обилии таки временных переменных среда разработки засоряла бы список подсказки на слова начинающиеся с temp, и вместо того что-бы сразу же подсказать например какого-нибудь temperature_last_known, оно засорит его temp1,temp2,temp2, и т.д. и вся польза от подсказки улетучится.
Второй пример: | Code: | const _TCHAR* format = _T("Super format string %s%s%s");
_tprintf(format,_T("Hello"),_T(", "),_T("World!\n")) |
В этом примере макросы _T, _TCHAR и _tprintf - служебныу макросы, суть которых знать не обязательно, ибо прикладной задачи не несут. Потому оформлены с _. Так удобно, ибо программист знает что полезной прикладной функции они не несут. |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 850
|
Posted: Mon Dec 05, 2011 10:07 am Post subject: |
|
|
FeyFre
но все же надо признать, что это фича в основном сишная. И как большинство сишного, неинтуитивная (а ведь есть еще и двойное "_" ...) |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1893 Location: Vinnitsa, Ukraine
|
Posted: Mon Dec 05, 2011 10:49 am Post subject: |
|
|
| Fr0sT, игнорируя свою практику, говорю: судя по тому чего напринимали в ISO/IEC 14882:201 (известен как C++11) то нам понадобятся не только _T но и хз ещё что. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|