[off] краткость Java-ы

6yrop

new Long(Long.parseLong("456";

так и заикой можно стать Long, Long, Long
а на C#
long.Parse("456"); 

Werdna

int a = atoi("456");

a10027

long a = atol("456");

evgen5555

$a=intval($a);

6yrop

кратко, но не понятно

enochka1145

Не нравится прекрасная и совершенная Java - этот выдающийся язык сегодняшнего и завтрашнего дня? Вы просто не умеете её готовить.
new Long("456")

6yrop

,
ход мыслей был из C#

enochka1145

С появлением boxing-unboxing-а подобные тройные повторения мгновенно вызывают подозрения. Руки просто сами тянутся рефакторить.

psihodog

a=`atol($a)`

sergey_m

Очередной беспочвенный наезд на прекрасную и совершенную Java - этот выдающийся язык сегодняшнего и завтрашнего дня
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.

Marinavo_0507

Рассказывают, что древние греки примерно так и рассуждали.

anton7805

new Long(Long.parseLong("456";
ну это капец запись конечно...) записал бы так еще :
new Long Long) Long.parseLong("456"; -тогда точно с ума сойти можно

kamputer

>int a = atoi("456");
"Опять двойка" (с)

rosali

"Опять двойка" (с)
Поддерживаю, atol неадекватно на ошибки парсинга реагирует, ее какие-то убогие программисты придумали. Правильно пользоваться strtol, но ее уже в одну строчку на запишешь, да здравствует краткость Си!

kamputer

>Правильно пользоваться strtol, но ее уже в одну строчку на запишешь, да здравствует краткость Си!
Ну для джавовского / C# варианта (они же кидают экеспшены?) тоже по-хорошему обработчик исключений нужен. Тоже +несколько строк.
Я так вообще люблю boost::lexical_cast (правда, медленный он страшно, цуко)

garikus

Ну конечно не так коротко...
VAR x: LONGINT; res: INTEGER;
...
Strings.StringToLInt("456", x, res); ASSERT(res = 0);

Marinavo_0507

> Ну для джавовского / C# варианта (они же кидают экеспшены?) тоже
> по-хорошему обработчик исключений нужен.
Многие программы на Java, которые я видел, успешно обходились без отдельного обработчика на каждый чих. Такие программы просто срут исключениями в stderr, и всё.
Ко многим программам на C и C++ это тоже относится, особенно к k* и g*

kamputer

>Многие программы на Java, которые я видел, успешно обходились без отдельного обработчика >на каждый чих. Такие программы просто срут исключениями в stderr, и всё.
То есть я типо ввожу в поле "Сумма, $:" значение "Хуй", и программа вместо того, чтоб вежливо попросить чо-нить другое, крашится / снимает с моего счота случайную сумму денег / ...?

Marinavo_0507

Ну ты нажмёшь Ok или аналог, она напишет 2 страницы дампа стека в stderr, а в GUI ничего не изменится, примерно так обычно.

rosali

Я так вообще люблю boost::lexical_cast (правда, медленный он страшно, цуко)
Туда достаточно приписать десяток специализаций и все с ним станет в порядке. Если в целом идея здравая, то производительность всегда можно спасти

bastii

в 5ой джава и так сойдет:
Long l = Long.parseLong("1"); 

Marinavo_0507

Всё-таки три раза "Long"

bastii

да, ты прав, больше не буду прогать на джава

kamputer

>Туда достаточно приписать десяток специализаций и все с ним станет в порядке. Если в целом идея здравая, то производительность всегда можно спасти
Угу. Я в конце концов так и сделал для нужных мне случаев.

laki

+1

Dasar

> Ну ты нажмёшь Ok или аналог, она напишет 2 страницы дампа стека в stderr, а в GUI ничего не изменится, примерно так обычно.
Что еще делать с непредвиденными ошибками?

bastii

дотнетовых структур джава не хватает, а то иногда нужно особенно эффективно данные в памяти размещать

Marinavo_0507

Это очень даже предвиденная ошибка.
То, что преобразование строки в число может привести к ошибке, компилятору известно во время компиляции, а человеку - и того раньше.
Просто поленились обработчик написать.
Кроме того, ИМХО GUI-приложение не должно писать в stderr ничего, кроме случаев действительно непредвиденных ошибок, после которых восстановление невозможно.

rosali

Не очень понятно, что мешает JVM
особенно эффективно данные в памяти размещать

bastii

такую ее родили -- для данных есть только примитивные типы и классы
пока приходилось сталкиваться с проблемой когда нужен массив пар или троек интов, приходилось запихивать последовательно в массив интов

Dasar

> Это очень даже предвиденная ошибка.
> То, что преобразование строки в число может привести к ошибке, компилятору известно во время компиляции, а человеку - и того раньше.
Что нам даст - если мы ее предвидим - перехватим и что-то напишем?
Прога станет лучше работать?
Станет дешевле разработка?
ps
Имхо - важно только одно - программа должна себя корректно вести при наличии ошибок, а вылизывание поведения программы во время ошибок - это уже бантики - причем сложность этих бантиков экспонециально больше, чем основная работа программы.

6yrop

new Long(Long.parseLong("456";
--------------------------------------------------------------------------------
ну это капец запись конечно...) записал бы так еще :
new Long Long) Long.parseLong("456"; -тогда точно с ума сойти можно
посмотри исходник конструктора Long(String .. там как раз вызывается parseLong... так что написанный мною код выглядит вполне логично, просто не заметил, что возможна более короткая запись

Dasar

т.е. мое мнение - что выгоднее большую часть ошибок - считать непредвиденными.

6yrop

супер

Hastya

не пиши больше на Джаве
не надо. так всем спокойнее будет.
мой тебе дружеский совет.

enochka1145

посмотри исходник конструктора Long(String .. там как раз вызывается parseLong... так что написанный мною код выглядит вполне логично, просто не заметил, что возможна более короткая запись
Само собой. Но напрашивается встречное предложение: посмотри исходник parseLong(...) и сделай как там. Зачем тебе дурацкая короткая запись?

6yrop

Само собой. Но напрашивается встречное предложение: посмотри исходник parseLong(...) и сделай как там. Зачем тебе дурацкая короткая запись?
это от долгого использования Java-ы такая логика?

6yrop

т.е. мое мнение - что выгоднее большую часть ошибок - считать непредвиденными.
согласен

IvladV71

в меморис!
Оставить комментарий
Имя или ник:
Комментарий: