Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
DW
Зарегистрирован: 26.08.2005 Сообщения: 17
|
Добавлено: Ср Авг 31 2005 10:01 Заголовок сообщения: Не технический вопрос по VB |
|
|
Просмотрев несколько десятков примеров написания программ, классов, компонентов и т.д. и т.п. я обратил внимание на одну вещь: все они, без исключения, написаны с использованием латинских букв (если использовать RegExp то можно записать так: [0-9A-Za-z]). Вот только я не понимаю почему. Ведь сам VB позволяет использовать кирилицу в качестве имен переменных, функций, констант и т.п. Вот только никто это не использует. Ну я еще понимаю, написания DLL для проекта, который пишут разные люди на разных языках програмирования. Да и то, это относиться только к интерфейсным, экспортируемым функциям. А точнее к их именам. Ну а "внутренности" намного удобнее, во всяком случае лично мне, писать на кирилице.
Возможно я несколько "шовинист", если так можно сказать в этом случае, но если есть возможность писать программы на родном языке, то почему-бы это и не использовать?
Но может я ошибаюсь, и использовать кирилицу при написании программ нельзя? Обьясните мне тогда почему. Ведь программы написаные таким образом вполне работоспособны.
P.S. у меня стоит VB6 pro rus.
P.P.S. Именно из-за этой особенности VB - поддержки кирилицы в именах переменных- я и начал на нем писать . |
|
Вернуться к началу |
|
|
mpakmopucm
Зарегистрирован: 24.12.2002 Сообщения: 58 Откуда: Москва
|
Добавлено: Ср Авг 31 2005 10:23 Заголовок сообщения: |
|
|
RegExp на самом деле выглядел бы несколько иначе: [a-zA-Z_][a-zA-Z_0-9]*
А на самом деле, скорее привычка+вероятность словить кучу труднообнаруживаемых глюков. Если даже учесть, что все компиляторы понимают локали, можно отловить такое: ты пишешь что-нибудь с другим челом на одном компиляторе. А ему нравятся классические (латинские) имена. И у него есть переменная, допустим cpy. Сколькими способами ее можно написать так, чтобы для человека (но не для компилятора) она выглядела одинаково? 7-ю способами. А даже если и один работаешь, библиотечные, функции, операторы ведь один фиг латинские, так что прыгая из раскладки в раскладку очень легко вбить один символ не так. И думай потом, почему это значение переменной - null, хотя вот она, родная. То же самое можешь получить при адаптации к себе какого-нибудь примера, скачанного из инета или любого другого источника. IMHO так. |
|
Вернуться к началу |
|
|
DW
Зарегистрирован: 26.08.2005 Сообщения: 17
|
Добавлено: Ср Авг 31 2005 11:20 Заголовок сообщения: |
|
|
mpakmopucm писал(а): | RegExp на самом деле выглядел бы несколько иначе: [a-zA-Z_][a-zA-Z_0-9]* |
Согласен. Существенное уточнение.
mpakmopucm писал(а): |
А на самом деле, скорее привычка+вероятность словить кучу труднообнаруживаемых глюков. Если даже учесть, что все компиляторы понимают локали, можно отловить такое: ты пишешь что-нибудь с другим челом на одном компиляторе. А ему нравятся классические (латинские) имена. И у него есть переменная, допустим cpy. Сколькими способами ее можно написать так, чтобы для человека (но не для компилятора) она выглядела одинаково? 7-ю способами. А даже если и один работаешь, библиотечные, функции, операторы ведь один фиг латинские, так что прыгая из раскладки в раскладку очень легко вбить один символ не так. И думай потом, почему это значение переменной - null, хотя вот она, родная. То же самое можешь получить при адаптации к себе какого-нибудь примера, скачанного из инета или любого другого источника. IMHO так. |
Согласен с замечаниями. Да, конечно при использовании только латинских символов в именах переменных можно избежать этой ошибки. Но ведь если компилятор допускает использования локали то при написании комментария и последующем выходе из него есть вероятность не переключить раскладку. А компилятор это проглотит. Да, я согласен, что в таком случае вероятность гораздо мешьше.
Другой аспект. Уже очень много написано о том, что следует давать максимально информативные имена переменным. Кроме того. Если двое людей пишут один проект, то они большей частью используют не переменные а функции из модуля или класса. При чем именно Public-фнукции, тоисть интерфейсные. А им априори следует давать максимально информативные имена. Так что часть проблем это снимает. А насчет различного написания одних и тех же переменных есть в VB такая полезная штука как Option Explicit, если не ошибаюсь. Так что на все заранее не обьявленые переменные компилятор будет матюгаться |
|
Вернуться к началу |
|
|
mpakmopucm
Зарегистрирован: 24.12.2002 Сообщения: 58 Откуда: Москва
|
Добавлено: Ср Авг 31 2005 16:41 Заголовок сообщения: |
|
|
Цитата: | А насчет различного написания одних и тех же переменных есть в VB такая полезная штука как Option Explicit, если не ошибаюсь. Так что на все заранее не обьявленые переменные компилятор будет матюгаться Smile |
Да, будет весело так матюгаться, но помимо своих собственных ошибок придется отвлекаться еще и на эту (и ,кстати, в памяти ее постоянно держать).
А в остальном - пофигу. Привычка.
P.S. Я, между прочим, сейчас в html-файле на ява-скрипте локализованную (русскую, есс`-но) переменную для экспериментов замутил. И нифига. Работает. И ехплорер, и фирефокс, и мозилла, и нетшкаф, и опера: никто не ругнулся. Даже нелокализованные браузеры.
Прикольно. if (хуу!=оопа)... |
|
Вернуться к началу |
|
|
DW
Зарегистрирован: 26.08.2005 Сообщения: 17
|
Добавлено: Ср Авг 31 2005 17:02 Заголовок сообщения: |
|
|
mpakmopucm писал(а): |
Да, будет весело так матюгаться, но помимо своих собственных ошибок придется отвлекаться еще и на эту (и ,кстати, в памяти ее постоянно держать).
А в остальном - пофигу. Привычка.
P.S. Я, между прочим, сейчас в html-файле на ява-скрипте локализованную (русскую, есс`-но) переменную для экспериментов замутил. И нифига. Работает. И ехплорер, и фирефокс, и мозилла, и нетшкаф, и опера: никто не ругнулся. Даже нелокализованные браузеры.
Прикольно. if (хуу!=оопа)... |
Точно. У меня тоже подобная реакция была. Только про JS я не знал. Мне даже в голову не приходило. А когда я впервые попробовал использовать кирилическую переменную (это было в каком-то скрипте то-ли для Word-а, толи для Exel-я, сейчас уже не помню), по ошибке между прочим, и это прокатило - у меня чуть глаза не вылезли . Я на радостях даже написал крошечную програмульку на VB и послал ее другу по E-Mail. Она называлась "Обалдеть.exe". Вот с тех пор так и пишу с использованием кирилицы. Где-то уже 2-3 года наверное.
P.S. Я тоже думаю что в основном всему виной привычка. |
|
Вернуться к началу |
|
|
mpakmopucm
Зарегистрирован: 24.12.2002 Сообщения: 58 Откуда: Москва
|
Добавлено: Ср Авг 31 2005 18:48 Заголовок сообщения: |
|
|
Я же придерживаюсь классического подхода.
А JavaScript - это так... Просто прикольнутся над IE захотелось. А оказалось - работает . Дай, думаю, фирефокс удивлю... А он не удивляется; жрет. Ладно. Есть опера. Щас устроим... Мля, вот собака! В общем надо мной прикололись . Только вот текстовыми браузерами не пробовал. Типа Lynx. |
|
Вернуться к началу |
|
|
Aragaer
Зарегистрирован: 28.03.2005 Сообщения: 164
|
Добавлено: Чт Сен 01 2005 01:26 Заголовок сообщения: |
|
|
Гм. Лично у меня кириллица в программах проскакивает только если я переключаюсь в редактор из аськи/еще чего, забыв переключить раскладку. После чего нещадно изничтожается. Комментарии все на английском, вывод тоже стараюсь делать на английском, до тех пор, пока делаю для себя.
Просто я расчитываю на то, что один и тот же текст программы я могу править в разных текстовых редакторах и даже в разных операционных системах и мне очень не хочется получать лишние проблемы из-за кодировок. _________________ Open your eyes.
And Awaken. |
|
Вернуться к началу |
|
|
DW
Зарегистрирован: 26.08.2005 Сообщения: 17
|
Добавлено: Чт Сен 01 2005 09:55 Заголовок сообщения: |
|
|
Aragaer писал(а): | Гм. Лично у меня кириллица в программах проскакивает только если я переключаюсь в редактор из аськи/еще чего, забыв переключить раскладку. После чего нещадно изничтожается. Комментарии все на английском, вывод тоже стараюсь делать на английском, до тех пор, пока делаю для себя.
|
Я не настолько хорошо знаю английский, чтобы все писать только на этом языке. И, кроме того, как я уже говорил в начале, я немножко "шовинист". Это значит, что я хочу писать, по возможности конечно, программы на своем родном языке.
Aragaer писал(а): |
Просто я расчитываю на то, что один и тот же текст программы я могу править в разных текстовых редакторах и даже в разных операционных системах и мне очень не хочется получать лишние проблемы из-за кодировок. |
На счет кодировок - я полностью согласен. Это громадное препятствие. Но я же начинал эту, если можно так выразится, дискуссию только по поводу VB. А он не очень-то распространен на различних операционных системах (скрипты не в счет).
P.S. Правда я недавно встретил в сети сообщение, что M$ выпустила версию VB специально для Linux-а. Незнаю, незнаю... Но думаю что он, VB, там не приживется... |
|
Вернуться к началу |
|
|
mpakmopucm
Зарегистрирован: 24.12.2002 Сообщения: 58 Откуда: Москва
|
Добавлено: Чт Сен 01 2005 10:04 Заголовок сообщения: |
|
|
Цитата: | P.S. Правда я недавно встретил в сети сообщение, что M$ выпустила версию VB специально для Linux-а. Незнаю, незнаю... Но думаю что он, VB, там не приживется... |
А чего! Вон openoffice в линухе есть. Аналоги вордов, там всякие, екселей и т.п. Дык, мс офис - это не только ценный мех... не только ворд с екселем, а помимо всяких прибамбасов еще и вба. Так вот, опять же ради прикола решил я посмотреть, что с ентим в опенофисе (Линух АСП-9). И что? А то! Есть он там. Уж не знаю, каким раком он там реализован, но крутейший скрипт в стиле дедушки Кернигана
Код: | msgbox "Hello world!" |
прекрасно зарабртал без единой ошитбки. |
|
Вернуться к началу |
|
|
DW
Зарегистрирован: 26.08.2005 Сообщения: 17
|
Добавлено: Чт Сен 01 2005 10:45 Заголовок сообщения: |
|
|
mpakmopucm писал(а): |
А чего! Вон openoffice в линухе есть. Аналоги вордов, там всякие, екселей и т.п. Дык, мс офис - это не только ценный мех... не только ворд с екселем, а помимо всяких прибамбасов еще и вба. Так вот, опять же ради прикола решил я посмотреть, что с ентим в опенофисе (Линух АСП-9). И что? А то! Есть он там. Уж не знаю, каким раком он там реализован, но крутейший скрипт в стиле дедушки Кернигана
Код: | msgbox "Hello world!" |
прекрасно зарабртал без единой ошитбки. |
Ну я же сказал, что скрипты не в счет... А если говорить об OO, то VB там реализован наверное для совместимости с M$ Office. Вообще-то странно было бы если бы в OO небыло VB. Тогда я вообще не понимаю каким макаром могла бы быть хоть какая-то совместимось. |
|
Вернуться к началу |
|
|
|