Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra) в [info]ljr_todo
@ 2005-07-20 22:30:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Постинги пользователей из LJ
Я вдруг подумал, что должно быть не оченть сложно разрешить LJ-юзерам постить комменты
"под собой" - просто вместо окошечка с LJR user/password, предлагать LJ user/password
(ну у линков параметр соотвествующий сделать - что отвечает человек из LJ). Проверить
login/пароль на валидность LJ API позволяет вполне штатно.


(Читать комментарии) - (Добавить комментарий)


[info]drz
2005-07-21 13:37 (ссылка)
"Ява на мой взгляд как просто язык программирования - зло неимоверное."

Ошибка человека, слабо знакомого с явой :)

"Тяжелая"

В смысле требований к памяти если только. И это оправдано, ибо это целая платформа, на базе которой пишутся весьма сложные системы. Аналогов нет просто, .net - не конкурент, у него кривизны неизмеримо больше и работает только под виндой.

"кривая"

В чём кривость? Точно не в языке, язык достаточно элегантен. Кривость в реализации некоторых вещей в ява-машине, но это не сильно ломает.

"вещь в себе"

Не понял.

"После generics - еще и сложная."

Что там сложного-то? :)

"Насчет веба сам не пробовал - но мне все эти j2ee сильно ругали - в основном, что тормоза неимоверные."

Так именно в вебе познаётся вся прелесть явы. Клиентские же приложения на яве - да, пурга. Насчёт тормозов: это касается исключительно EJB, в остальном - летает как ракета. Апач бы, например, с перлом/пхп/ещё-что-там при таких нагрузках просто бы впал в клинч, а ява бегает и не чихает даже. Согласен, что неэффективно использовать яву для простых проектов, а вот чем сложнее проект, тем быстрее отпадают альтернативы.

"utf-8 и cp1251 в гнусе - я на нем перекодировщик быстренько накатал"

На яве это с полпинка делается, ничего и писать не надо.

И вообще, чем чаще от начальства слышишь, что "проект нужно сделать вчера", тем сильнее осознаёшь, что ява - единственный выбор в такой ситуации.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2005-07-21 14:21 (ссылка)
Я, к сожалению, на Java как раз довольно долго писал. Вспоминаю как
страный сон.

Язык - практически слегка ухуденный Simula-67. Идейный уровень 67 года и есть. Синтаксис - неимоверно громоздкий (не сделать синтаксис для коллекций, сверток и т.п. - это было прилично 20 лет назад, сейчас это просто глупость, особенно учитывая область применения Java).

Замыкания ужасны. Невозможно оттюнить представление данных (а от этого может в разы зависеть и скорость и потребность в памяти), все эти "фортрановские" хаки - когда массив структур раскладывается на пачку паралельных массивов примитивных типов, только чтобы не заводить кучу ненужных оъектов. etc etc.

А "вещь в себе" - именно что "платформа". В 90% случаев это ни на хрен не надо. То есть - единственные две пользы - библиотеки и сборка мусора. Но уродства языка это не извиняет.

В остальном - даже С++ - практиченее.

PS: А generics Java - самый навернутый параметрический полиморфизм, который я видел. Причем - результат не впечатляет. В сложных случаях написать тип или понять, что ему там не нравится - головоломка даже для тех, кто вывод этих типов писал.

И замечательные плюшки типа выражений, у котороых в Java невозможно написать тип (то есть - выражение, которое нельзя выделить в пемеренную).

Тип метода Object.getClass () - это вообще песня. Рекомендую внимательно прочитать описание.

Людей, которые такие хаки вставляют в компилятор надо убивать на месте. Или отдавать [info]tiphareth@lj для опытов.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]drz
2005-07-21 14:35 (ссылка)
"Синтаксис - неимоверно громоздкий"

Хм... Ну, вот у XSLT я понимаю, громоздкий синтаксис. А здесь... Все нормальные идешки умеют делать автокомплит...

"Невозможно оттюнить представление данных"

Что под этим подразумевается?

"когда массив структур раскладывается на пачку паралельных массивов примитивных типов, только чтобы не заводить кучу ненужных оъектов."

Не понял. Не было ни разу таких проблем. Массив структур - однозначно коллекции, например, ArrayList.

"А "вещь в себе" - именно что "платформа". В 90% случаев это ни на хрен не надо."

Всё-таки очень полезная вещь. Конечно, можно долго спорить, но не хочу, мне достаточно того, что на своём опыте я убедился в полезности именно такого подхода.

"Но уродства языка это не извиняет."

Я ещё не встречал языка совсем без уродств.

"В сложных случаях написать тип или понять, что ему там не нравится - головоломка даже для тех, кто вывод этих типов писал."

У меня почему-то всё просто. Может быть, дело в писателях? :)

А "вывод типов" - зачем? Куда?

"И замечательные плюшки типа выражений, у котороых в Java невозможно написать тип (то есть - выражение, которое нельзя выделить в пемеренную)."

Тоже ничего не понял. Как это "выражение, которое нельзя выделить в пемеренную"?

"Людей, которые такие хаки вставляют в компилятор надо убивать на месте."

Мне вот сишные генерики никогда не нравились. Здесь, конечно, тоже не фонтан, но, опять-таки, жить можно. Вот будет адекватная альтернатива яве, будем посмотреть. А так, деваться некуда, работы море, а успевать надо всё. И успевается. Вот сейчас заканчиваем АСУ "Деканат" разрабатывать, на вебе, разумеется (про работу деканатов рассказывать можно долго, и это просто ужас какой-то), если бы выбрали что-то отличное от явы, сейчас бы сидели в лучшем случае на половине пути и кусали локти от невыразимой сложности вылавливания багов.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2005-07-21 15:17 (ссылка)
Ну вот пример про массив - нужен
массив из class { int no; Seg ind; int hash; }
где class Index { int no; int len; }

Типы от балды, но точно воспроизводящий реальный пример. И из него надо устроить массив. Содержательный размер элмента - 16 байт, тут - сверху - 4 байта ссылка в массиве, два объекта (каждый - минимум +4 байта сверху, если не 8), и еще одна ссылка. - то есть - как минимум - еще столько же. Плюс к этому в С я могу уплотнить это дело.

2-3 раза - величина весьма значимая. Если массив большой, а так часто бывает, надо что-то делать. Единственный способ - массив разваливается на 4 паралельных, с правкой всего кода. Тогда в С довольно много вещей делаются вообще прозрачно. С С#, кстати, тоже.

Если речь идет не о массиве, а просто о структуре - там вообще никак не выкрутиться. А такие вещи довольно часто означают ухудение характеристик в несколько раз. То есть - Java не очень плоха, пока ресурсы не поджимают, но они почему-то рано или поздно всегда начинают поджимать. Вот с NPJ-то видно, что Миша был прав и у npj действительно начинаются проблемы с производительностью.

Платформа - это тоже не подарок. Например - необходимо поставлять JRE вместо с продуктои, да и вообще - javaские продукты несколько, ээээ, кривовато вписываются в внешнюю среду. Уши jvm торчат.

Про вывод типов - консилиум с участием человека, который просто писал проверку типов в generic - ну был довольно штатным мероприятием. Неочевидно. С++ шаблоны по крайней мере не содержат хаков, да и вообще - и проще и практичнее.

По поводу getClass - прелесть же там в том, что нет у этого метода никакого типа результата. Есть хак в компиляторе, который и описан в доке. Описать такой же в своей программе невозможно. Хотя в O'Caml например - такое вполне делается. А язык проще.

То есть - большой проект бы я на Java делать не стал. Жопа будет. Разве что очень припрет с библиотеками. Есть у нее еще достоинство - на Java можно сажать "тупых" программистов. Облажаться на ней довольно трудно. В этом смысле - да - такой Visual Basic с более все-таки пристойным синтаксисом.

А про "выражение, которое нельзя выделить в переменную" - это очень просто - именно так - у него тип есть, но на Java переменную с таким типом описать нельзя. То есть - в Java 1.5 в общем случае корректный introduce variable невозможен. Бывает и довольно часто вокруг <? extends T>. Пример рожу как соберусь Java отставить. Оно не то, чтобы, на практике смертельно, но generic'и с такими пенками назвать простой конструкцией - никак невозможно.

На самом деле пример того, как можно - вот я O'Caml-евскую программку постил - это не скриптовый язык. Это статически типизированный язык (вообще без всякой runtime type information), который компилится в нативный код (хороший код, кстати). Когда Саны Java рожали - это уже лет 15 как было придумано - в смысле семейство ML. Собственно сейчас-то и C# и Java те самые люди и наворачивают, но когда навороты вставляют задним числом всегда кривь получается.

То есть Java ругать можно очень много за что. Пока я на ней не пописал - тоже думал - С++ плохо, Java - хорошо (ну люблю я и GC и надежную типизацию). В общем - в долгосрочной перспективе с Java imho шаносов влипнуть в серьезные проблемы больше.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]drz
2005-07-21 15:30 (ссылка)
"Единственный способ - массив разваливается на 4 паралельных, с правкой всего кода."

Я вообще не могу себе представить ситуацию, когда нужен этот самый массив.

"Вот с NPJ-то видно, что Миша был прав и у npj действительно начинаются проблемы с производительностью."

НПЖ - на пхп. И этим всё, увы, сказано.

"Например - необходимо поставлять JRE вместо с продуктои"

Вы опять ушли в тему клиентских приложений, я уже высказывался, что клиентские приложения на яве суть зло. Сервер - вот среда обитания явы.

"писал проверку типов в generic"

Не понял. Компилятор ведь сам проверяет.

"То есть - большой проект бы я на Java делать не стал"

Я бы - ровно наоборот :) . Уже объяснил, почему. Сопровождение проектов на яве проще в разы по сравнению со всем, что сейчас есть.

"на Java можно сажать "тупых" программистов."

Вот это - ни в коем случае! А то вся организация будет завалена горами оторванных рук.

"А про "выражение, которое нельзя выделить в переменную" - это очень просто - именно так - у него тип есть, но на Java переменную с таким типом описать нельзя."

Всё-таки примера конкретного хочется.

"который компилится в нативный код (хороший код, кстати)."

Ява тоже в нативный код компилит. И летает весьма шустро. См. HotSpot.

"То есть Java ругать можно очень много за что"

Если это делать как Максим Кизуб, там действительно здравые наезды.

"В общем - в долгосрочной перспективе с Java imho шаносов влипнуть в серьезные проблемы больше."

Хм... с 98-го года некоторые проекты наши работают, до сих пор некоторые улучшаем (т.е. добавляем функциональности), про другие уж и забыли, люди просто пользуются и не жалуются.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2005-07-21 15:58 (ссылка)
А может лучше по email? - а то, честно говоря, не хочется флудить здесь избитой и левой темой. Оно как-то начало разрастаться.

Мне можно писать на msk собака oktetlabs точка ru

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]drz
2005-07-22 05:58 (ссылка)
Лучше в НПЖ:
http://npj.ru/drz/diskussija_o_jave

Или в РЖЖ, но у меня:
http://lj.rossia.org/users/drz/2975.html

(Ответить) (Уровень выше)


(Читать комментарии) -