Нелюбимый язык?

User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Нелюбимый язык?

Post by Alexander Troyansky »

thinker wrote:
Alexander Troyansky wrote:Да хотя б за то, что даже операции типа конвертирования строки в целое число могут бросить ошибку Overflow (например, "32768"), при том, что обработки ошибок толком и нету нормальной приходится пейсать глупости "On Error Resume Next", проверять была ли ошибка и заканчивать всё это "On Error Goto 0"
я использовал Val function без каких либо проблем.
"On Error Resume Next" использовал для обхода других вещей.
Да много чего приходится так проверять. Вот ещё пример из SO:

Code: Select all

Function SheetExists(shtName As String, Optional wb As Workbook) As Boolean
    Dim sht As Worksheet
   If wb Is Nothing Then Set wb = ThisWorkbook
     On Error Resume Next
     Set sht = wb.Sheets(shtName)
     On Error GoTo 0
     SheetExists = Not sht Is Nothing
 End Function
http://stackoverflow.com/questions/6688 ... eet-exists" onclick="window.open(this.href);return false;

в JScipt try-catch, а в VBA/VBS - жопа
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
User avatar
thinker
Уже с Приветом
Posts: 26871
Joined: 29 Aug 2000 09:01

Re: Нелюбимый язык?

Post by thinker »

Alexander Troyansky wrote:Да много чего приходится так проверять. Вот ещё пример из SO:

Code: Select all

Function SheetExists(shtName As String, Optional wb As Workbook) As Boolean
    Dim sht As Worksheet
   If wb Is Nothing Then Set wb = ThisWorkbook
     On Error Resume Next
     Set sht = wb.Sheets(shtName)
     On Error GoTo 0
     SheetExists = Not sht Is Nothing
 End Function
http://stackoverflow.com/questions/6688 ... eet-exists" onclick="window.open(this.href);return false;

в JScipt try-catch, а в VBA/VBS - жопа
Ну и из вашей же ссылки мы узнаем, что можно обойтись и без всяких "On Error..." . Я бы так и сделал:

Code: Select all

    For i = 1 To Worksheets.Count
        If Worksheets(i).Name = strSheetName Then
            SheetExist = True
            Exit Function
        End If
    Next i
All rights reserved, all wrongs revenged.
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Нелюбимый язык?

Post by perasperaadastra »

thinker wrote:
perasperaadastra wrote:> Язык как и все другие,

Э нет! VBA это вещь в себе! Это была попытка МС освободиться от оков логики и здравого смысла.
Ну приведите хотя-бы несколько примеров отсутвия логики или здравого смысла.
Я ж несерьезно. Не люблю я его просто. Мы недавно обсуждали VBA вот тут: viewtopic.php?f=46&t=205359" onclick="window.open(this.href);return false;
User avatar
Alexander Troyansky
Уже с Приветом
Posts: 5753
Joined: 15 Aug 2008 00:52

Re: Нелюбимый язык?

Post by Alexander Troyansky »

thinker wrote:
Alexander Troyansky wrote:Да много чего приходится так проверять. Вот ещё пример из SO:

Code: Select all

Function SheetExists(shtName As String, Optional wb As Workbook) As Boolean
    Dim sht As Worksheet
   If wb Is Nothing Then Set wb = ThisWorkbook
     On Error Resume Next
     Set sht = wb.Sheets(shtName)
     On Error GoTo 0
     SheetExists = Not sht Is Nothing
 End Function
http://stackoverflow.com/questions/6688 ... eet-exists" onclick="window.open(this.href);return false;

в JScipt try-catch, а в VBA/VBS - жопа
Ну и из вашей же ссылки мы узнаем, что можно обойтись и без всяких "On Error..." . Я бы так и сделал:

Code: Select all

    For i = 1 To Worksheets.Count
        If Worksheets(i).Name = strSheetName Then
            SheetExist = True
            Exit Function
        End If
    Next i
О чём и речь... чтобы получить элемент коллекции, надо либо использовать OnErrorResumeNext/OnErrorGoto0 или перебирать каждый элемент коллекции (которая может быть между прочим большая) пока не будет найден этот элемент или не будет исчерпана коллекция. Также и достаются самые различные свойства. Это называется "заезд на кривой козе"
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
User avatar
thinker
Уже с Приветом
Posts: 26871
Joined: 29 Aug 2000 09:01

Re: Нелюбимый язык?

Post by thinker »

Alexander Troyansky wrote:О чём и речь... чтобы получить элемент коллекции, надо либо использовать OnErrorResumeNext/OnErrorGoto0 или перебирать каждый элемент коллекции (которая может быть между прочим большая) пока не будет найден этот элемент или не будет исчерпана коллекция. Также и достаются самые различные свойства. Это называется "заезд на кривой козе"
Искать по многим sheets - да, немного коряво. Однако поиск чего-то на одном будь то sheet, колонке или строчке происходит очень быстро, без всякого перебора. Кроме этого, есть очень мощные средства для установки фильтра. Также можно быстро и удобно форматировать целые колонки или любые "ranges", как и удобно менять свойства/цвет/формат/you-name-it тысяч клеток одной командой.
All rights reserved, all wrongs revenged.
User avatar
Kolbasoff
Уже с Приветом
Posts: 3481
Joined: 02 Jan 2005 22:10

Re: Нелюбимый язык?

Post by Kolbasoff »

OtherSide wrote:SQL вне конкуренции
Я люблю SQL. В сочетании с грамотно задизайнеными UDFs/UDAs это мощная и хорошо читаемая штука. Я когда увидел MongoDB query lang, то авторов хотел под суд отдать. Невозможно читать после SQL. Я думал, что хуже языка для select невозможно придумать. Но недавно я увидел DruidDB. И понял, что возможно.
Deckel
Ник закрыт за хамство.
Posts: 357
Joined: 16 Feb 2014 18:34

Re: Нелюбимый язык?

Post by Deckel »

Про язык, который я убил бы, многие здесь и не слышали. Что и неплохо, само по себе.
Это SAS. В нем почти буквально у каждой функции свой синтаксис, варьирующийся от Бейсика до Джавы и обратно, через Брейнфак.
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Нелюбимый язык?

Post by perasperaadastra »

Я слышал про SAS. В сочетании с характеристикой "abomination".
User avatar
mikeG
Уже с Приветом
Posts: 8485
Joined: 02 Aug 2003 01:32
Location: SPb->SFBA

Re: Нелюбимый язык?

Post by mikeG »

Язык, на котором .bat файлы пишут (у него и названия-то нет)
DDoS
Уже с Приветом
Posts: 1309
Joined: 16 Feb 2017 02:05

Re: Нелюбимый язык?

Post by DDoS »

mikeG wrote:Язык, на котором .bat файлы пишут (у него и названия-то нет)
"Язык интерпретатора CMD". Неистово плюсую!
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Re: Нелюбимый язык?

Post by f_evgeny »

А что C++ никто не вспоминает?
Дальше, все будет только хуже. Оптимист.
User avatar
Medium-rare
Уже с Приветом
Posts: 9195
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Нелюбимый язык?

Post by Medium-rare »

f_evgeny wrote:А что C++ никто не вспоминает?
Он платит многим из нас по счетам. По моим, процентов так на 80%.
Last edited by Medium-rare on 22 Feb 2017 00:06, edited 1 time in total.
... and even then it's rare that you'll be going there...
helg
Уже с Приветом
Posts: 4827
Joined: 15 May 2001 09:01

Re: Нелюбимый язык?

Post by helg »

Все языки прагромиравання фуфло. https://wiki.theory.org/YourLanguageSucks" onclick="window.open(this.href);return false;
User avatar
thinker
Уже с Приветом
Posts: 26871
Joined: 29 Aug 2000 09:01

Re: Нелюбимый язык?

Post by thinker »

mikeG wrote:Язык, на котором .bat файлы пишут (у него и названия-то нет)
Под линуксом shell script называется.
All rights reserved, all wrongs revenged.
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Нелюбимый язык?

Post by perasperaadastra »

helg wrote:Все языки прагромиравання фуфло. https://wiki.theory.org/YourLanguageSucks" onclick="window.open(this.href);return false;
А где Фортран и КОБОЛ? Почему они не сосут?

Return to “Вопросы и новости IT”