powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Кто-нибудь пишет корпоративные приложения для БД на Java?
71 сообщений из 71, показаны все 3 страниц
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32469556
Осел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из ознакомления с буржуйскими книгами следует, что там, в буржуинстве эта среда очень даже широко используется для создания корпоративных приложений. Мне интересно, а в России кто-нибудь использует java для тех же целей?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32469561
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да пишут, пишут.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32470195
ORA-XXXXX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишут - по типу Клиент (браузер) - Приложение( Tomcat-Servlets) - База (Oracle)
со всеми зонами разработки, тестирования и эксплуатации. Все по серьезному для серьезного заказчика.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32470262
Осел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем объясняется тот факт, что данная среда (язык) для этих целей в России распространены гораздо слабее, чем, например Delphi или С++? Все дело в слабой активности Sun, или есть другие причины?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32470337
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Delphi и C++ под Web вряд ли пишут, это для другого, а распр. они наверное потому что в институтах и универах по ним учат и большенству проще интерфес с БД реализовать как-нибудь на дельфи
А по большому счету, главный конкурент яве ( и J2EE собственно ) это Microsoft со своим C# и .Net, а еще у них неплохо продвинут ASP ( аналог ему JSP ). Не знаю как в Москве, но у нас по Java в книжных магазинах стало появляться что то путнее где-то последние года 2, а так ,все по Microsoft-у полки завалены. Но вроде как ситуация поправляется, народ стал интересоваться :)

P.S.
лично мое мнение
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32470383
Осел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanek842 ,
Значит ты согласен с тем, что это распределение связано просто с неточной информацией для "населения" (ее отсутствием)? Хорошо хоть сейчас есть сеть и можно спокойно обсудить достоинства и недостатки того или иного инструмента, а не бежать туда, куда ломанулось стадо.
А под "корпоративными приложениями" я подразумевал как раз не Web, а обычные приложения, используемые предприятиями для своих повседневных нужд. Они чаще всего не web, хотя почему бы им и не быть web?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32470490
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну а если не Web, тогда Java, на мой опять же взгляд, не самый лучший вариант. Это вариант на случай если нужна кроссплатформенность, но вряд ли кто из простых пользователей сидит под Linux.
Я долго занимался VC6.0++, одни тамошние средства отладки чего стоят, да и удобен в исп-ии. Где-то год назад писал на Си клиент-серверное приложение с исп. TCP, серверную часть писал тоже сам, чтобы избавить заказчика от установки oracle-клиента ( иначе мне бы пришлось по командировкам ездить ). Все это нормально работает, только единственное, что меня уже достало, это они там попросят что-нибудь добавить, приходится всем новую клиентскую оболочку рассылать, а порой в серверной части искать пути поддержки клиентов старых версий. Вот оно где и вылазит, писал бы под Web, было б проще. Хотя среде отладки нужно отдать должное Microsoft-у и Borland-у.

А насчет стада тут еще как посм., если ты работаешь в команде над общим проектом то всеравно лучше чтоб использовалось что-то одно, да и спросить есть у кого.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32471823
Осел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanek842 ,
А я начинающий. У меня сейчас техподдержка-дороботка маленькой программки на VB, из-за того, что криво написано и на таком плохом языке, поддерживать ее очень неудобно. Предметную область и требования я впитал. Хочу переписать ее в чем-нибудь более подходящем, найти человека на поддержку и вести более размеренную жизнь.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32472400
Грасоff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanek842а еще у них неплохо продвинут ASP ( аналог ему JSP ). Не знаю как в Москве

это с какой стороны "аналог"?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32472517
Pilot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а еще у них неплохо продвинут ASP (аналог ему JSP). Не знаю как в Москве
Хехе.. Зато анолог ASP.NET не найти.. :)

Для корабля, который не знает куда плыть, нет попутного ветра...
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32472873
Pilot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
анолог
Вот, блин, описка тупая!
аналог.

Для корабля, который не знает куда плыть, нет попутного ветра...
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32472920
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вот придрались :)
я просто когда был на конференции, Мирончик ( препод такой есть ) слегка провел параллель между ASP и JSP. Внятно я всеравно не смогу все объяснить, может это сделает кто-то другой. На ASP никогда не писал, но знаю что там тоже многое можно делать, вставлять JScript или VBScript, обращаться к COM-объектам, примерно такие же обращения к БД, но все это исполняется я так понимаю, как интерпретатор ( в отличие наверное от ASP.Net ), а JSP при первом обращении, делает байт-код и дальше работает как сервлет. К тому же тут приемущества идут уже не то что там в JSP можно больше делать, а в самом механизме контейнеров, тут же и load balancing, если нада, вот есть кластер, надежность распределения запросов, неплохая схема аутентификации типа JAAS. И при всем при том, что по идее Web сервер должен стоять на стабильной ОС и преднозначенной для администратора, а не для пользователя ) скланяет к выбору application серверов под J2EE.

ну, поправьте, если я где заблуждаюсь.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32475398
Pilot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все это исполняется я так понимаю, как интерпретатор ( в отличие наверное от ASP.Net )
Ага. Там тоже ASP.NET есть JIT. Блин, я как будто рекламирую.. :)



Для корабля, который не знает куда плыть, нет попутного ветра...
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32479344
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбирайте ASP .NET или, если Java, то JSF или Tapestry. А вообще-то, поверьте опыту работы как с .NET так и с Java: Если Вам не нужет MS Office - выбирайте Java, поскольку, когда что-либо не работает, то всегда можно посмотреть исходники, а в .NET - NET. И вообще по Java работа кажется
продвигается медленно, но ощущении надежности горазда выше, чем
при работе с .NET
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32479956
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если разработка ведется для фирмы, использующей только продукты Microsoft, было бы странно писать на Java. На ASP.NET как раз удобно разрабатывать тяжелый web-интерфес для корпоративных приложений, и WinForms лучше выглядят и проще делать.

Однако на Java в данный момент больше бесплатных библиотек с открытым кодом, например, для объектно-реляционного отображения. Собственно говоря, многоплатформенность и возможность свободно переходить от одной базы данных к другой - тоже плюс.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32487007
Осел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ustazz <На ASP.NET как раз удобно разрабатывать тяжелый web-интерфес для корпоративных приложений
А вы в этом разбираетесь? Возможно ли вообще переписать несложное корп. приложение под один web-интерфейс, чтоб на клиента ничего не ставить? Логика представления при этом тоже на сервере будет?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32495189
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одно из преимуществ web-приложений в том, что на компьютер пользователя не придется ничего ставить, кроме браузера. Если в приложение вносятся изменения, все пользователи одновременно начинают работать с новой версией. В случае специального клиентского приложения, пользователям (или администратору) пришлось бы устанавливать его на все машины. При этом требовалось бы поддерживать и новую и старую версии системы.

Под тяжелым web-интерфейсом я имел ввиду, страницы размером до 200 кБ, с сохранением состояния между перезагрузками, поддрежкой компонентно-ориентированной модели программирования, сложной логики работы интерфеса пользователя. В интрасети такое можно сделать на ASP.NET достаточно легко. На Java, думаю, тоже, но использовать нужно не сервлеты и JSP, а что-то более высокоуровневое, например, упоминавшиеся здесь JSF и Tapestry.

Использовать один, несколько web-интерфесов или спец. клиенты зависит от задачи. Web может работать и быстрее и медленнее по сравнению с обычным приложением, но зато возможностей для оптимизаций и кеширования данных на разных уровнях больше.

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

И еще по поводу "распределения". Java у нас не распространен, ибо подавляющее большинство пользователей используют операционную систему и другие продукты сами знаете какой фирмы. Если не нужна многоплатформенность, зачем использовать более сложный подход? Если нужно взаимодействовать с MS SQL, управлять оборудованием через COM-объекты, работать с данными из Active Dircetory, отсылать письма через CDO и обрабатывать Word и Excel документы, Java не самый удачный выбор.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32510207
vmkz777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Valery Shiskin
> Если Вам не нужет MS Office - выбирайте Java
Хотелось бы поодробнее узнать, почему если не нужен MS Office - выбирайте Jаva. Что Java с мс офисом не дружит. Объясните.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32514746
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmkz777


имеется ввиду Microsoft Office. Для работы со Star Office или Open Office Java даже очень хороша ( и, по моему даже лучше чем .NET + MS Office 2003 )
Для c MS Office есть хорошие разработки
например POI от Jakarta/Apache, но это не то. Да можно создать таблицы excel или документы word, но создать приложение, такое как .NET + Office или
Java + Star Office ( события генерируемые элементами офисных документов и упр. эл-ов VBA и .т.д ) невозможно ( без страшных извращения типа win32 + COM + JNI )
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32699775
VortexCorba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В России не знаю а вот у нас в Казахстане самые популярные языки Java и C#
Дельфи и все дерьмо собачее под Windows дерьмовщины.

А насчет корпоративных приложении для БД у нас в основном пока на PowerBuilder & C# пишут, но вот наша компания обной из первых взялась на Жава писать, вот уже пол года как на Жава пишу, когда то был сторонником Дельфи, но со временем Жава больше понравился, удобный язык, особенно пишешь под Windows или Linux и спокойно на IBM OS запускаешь. Просто супер.
Я вам скажу Жава очень сильный язык в сетевых технологиях. Сам пишу и приятно.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32699999
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VortexCorbaВ России не знаю а вот у нас в Казахстане самые популярные языки Java и C#
Дельфи и все дерьмо собачее под Windows дерьмовщины. бла-бла-бла

Нуну, не надо брызгать слюной по поводу выньдоса. Тот же самый ЦеШарп работает только под оную пока ещё.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32700797
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой интересный топик вылез :)

Не зависимо от того является ли клиент web или gui-приложением, плюсов java это не умоляет. Вся логика и трудность программирования в корпоративном приложении сосредоточена в серверной части.

На краййййййний случай (если машины у клиентов оч.слабые), никто не мешает написать клиента на С++ :) Хотя резона в этом чертовски мало.


Все это нормально работает, только единственное, что меня уже достало, это они там попросят что-нибудь добавить, приходится всем новую клиентскую оболочку рассылать, а порой в серверной части искать пути поддержки клиентов старых версий. Вот оно где и вылазит, писал бы под Web, было б проще.
Добавить autoupdate на клиенте чем не решение всех проблем? :)
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32700800
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUsКакой интересный топик вылез...
Аха. Этот паря все архивы поднимает, похоже. :)
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32702304
GammiBear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Непосредственно по subj :

Пишем системы технического обслуживания для телекомунникационного оборудования, системы класса CRM. схема стандартная : тонкий клиент + app.server (jboss или tomcat) + RDBMS сервак(и). есть отдельные элеиенты на CORBA (JacORB 2.x). целевая платформа - JDK 1.4.x
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32702324
GammiBear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОселА чем объясняется тот факт, что данная среда (язык) для этих целей в России распространены гораздо слабее, чем, например Delphi или С++? Все дело в слабой активности Sun, или есть другие причины?

Неплохого дельфиста монжно в принципе найти за $400-500 / месяц.
более-мене адекватный жаба-программер будет стоить $700 - $1000 / месяц.

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

Дальше объяснять надо?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32774878
vmkz777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VortexCorba
Код: plaintext
1.
В России не знаю а вот у нас в Казахстане самые популярные языки Java и C#
Дельфи и все дерьмо собачее под Windows дерьмовщины.


Неверная информация. Всегда Delphi в Казахстане шел на первом месте. И сейчас идет. Но сильно сдает позиции C#. Мое мнение С# окончательно вытеснит Delphi.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32781868
АндрейБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanek842ну а если не Web, тогда Java, на мой опять же взгляд, не самый лучший вариант
Готов поспорить, что если и не лучший то один из лучших. У нас в конторе все только на жабе и пишется, очень удобно(особенно для работы с БД) и это отнюдь не Web а обычные GUI applications, правда работают ч/з WebStart. c++ вообще не прижился, а о delphi мы и не вспоминаем...
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32783418
Gurney
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pilot[quot ]а еще у них неплохо продвинут ASP (аналог ему JSP). Не знаю как в Москве
Хехе.. Зато анолог ASP.NET не найти.. :)
[quot]
Jakarta Tapestry
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32783430
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sun кричит о том что его ПО самое надежное в мире. Но это справедливо в том случае, если этот софт стоит на Sun-овском железе под операционкой Солярис. Если СУБД - то только Оракл. Если сервер приложений то только Java. Если в Sun-машине поломается кулер - то вызывать нужно сертифицированного спеца .... по Sun-железу. Так-то.
Нам такие расклады не подходят по ряду экономических причин.
Вот и работаем на самом различном портированном софте.
А про железо и говорить нечего... сами собираем.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32783920
saysu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большинство из вас, когда пишете на жава, вы RAD(JBuilder) пользуетесь или jdkx.x(sun)?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32784107
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GammiBearНеплохого дельфиста монжно в принципе найти за $400-500 / месяц.
более-мене адекватный жаба-программер будет стоить $700 - $1000 / месяц.

Я бы отметил другой факт. Производительность этого жаба-программера в жанре корпоративной БД будет раза в три меньше.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32784153
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saysuБольшинство из вас, когда пишете на жава, вы RAD(JBuilder) пользуетесь или jdkx.x(sun)?
а че - jbuilder не использует разве jdk? молодцы они все-таки!
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32784305
saysu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
 2  А.Грасоff™ 
конечно используют, просто я не правильно спросил, я хотел спросить разработчики пользуются JBuilder-ом(это я для себя хочу узнать с чего начинать), в консолье разрабатывать или на JBuilder-е?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32784363
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saysu
Код: plaintext
 2  А.Грасоff™ 
конечно используют, просто я не правильно спросил, я хотел спросить разработчики пользуются JBuilder-ом(это я для себя хочу узнать с чего начинать), в консолье разрабатывать или на JBuilder-е?

посмотри в сторону intellij idea (это по поводу - с чего начинать).
мне кажется, надо быть полным извращенцем, чтобы в блокноте
сделать веб-приложение, состоящее из (хотя бы) 30 классов,
имеющее несколько тысяч строк кода и т.д. и т.п.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32785056
Фотография Alexey Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторsaysu
http://www.citforum.ru/internet/javascript/crjp/
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32785629
saysu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор2 Alexey Popov сэнкс, то что нужно
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32795459
VortexCorba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор
Неверная информация. Всегда Delphi в Казахстане шел на первом месте. И сейчас идет. Но сильно сдает позиции C#. Мое мнение С# окончательно вытеснит Delphi.

Дельфи уже отстал. На нем пишут школьники. И воаще не сравнивай Жаву и Дельфи. Это как небо и земля.
Дельфи: Гуд сайт: Очень удобный интерфейс. Писать очень легко.
Бэт сайт: Под Виндоус. Не устойчивый. Например если в DBGrid загрузить много инфы, прога просто молчит, зависает, и не только прога, а вес виндоус. Только визуально программирование. Под Дос у него идет паскаль, что то похожее, херня короче. В Net технологоиях отстает Жавы на миллион км. Проги написанные на Дельфи весят очень много.
Жава: Гуд сайт: Платформно независимый. Можно и на блокноте писать, лиж бы ЖДК был. Мало занимает. В сетевых техн. просто монстр. J2EE+J2SE просто супер технологии. Можно одновременно писать и веб и простые приложения.
и т.д Короче много плюсов.
Бэт сайт: Ну даже не знаю, может то что он медленее чем Си работает. Хотя Жава2 почти не отстает.
Короче Жава рулез С#, дельфи, и все прочее must die
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32795972
fynda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VortexCorba
Дельфи уже отстал. На нем пишут школьники.


Ну зачем же так категорично-то?

VortexCorba
И воаще не сравнивай Жаву и Дельфи. Это как небо и земля.


Это другой разговор, но дело вовсе не в "школьности". Просто RAD есть RAD.

VortexCorba
Дельфи: Бэт сайт: Под Виндоус.


Для 90% российских юзверей (sic!) - некритично. Для остальных есть kylix и qt.

VortexCorba
Не устойчивый. Например если в DBGrid загрузить много инфы, прога просто молчит, зависает, и не только прога, а вес виндоус.


180220 записей - это достаточно много? Странно, ничего не тормозит, пока fetch all не сделаешь. Хотя я не уверен, что это именно DBGrid, но написано на дельфях - 100%. Хотя... Можно конечно попробовать загрузить тот же объем в JTable, но не думаю, что результат fetch all от этого будет сильно различаться.

VortexCorba
Только визуально программирование.


Да ну?!!!!!! :D

VortexCorba
Под Дос у него идет паскаль, что то похожее, херня короче.


Вот так сравнил! BTW: а что у джавы идет под ДОС? Нет, не под виндовую консоль, а под MS-DOS v 6.22? Хотя бы JDK 1.4 есть? А если нет - какой смысл с досовым паскалем сравнивать?

VortexCorba
В Net технологоиях отстает Жавы на миллион км.


Не в курсе, а что там есть в смысле .Net у джавы?

VortexCorba
Проги написанные на Дельфи весят очень много.


Смотря как писать. И с чем сравнивать.

VortexCorba
Жава: Гуд сайт: Платформно независимый.


Да, конечно, но для клиентских машин - не такой уж это и плюс. А как server-side Delphi вроде и не обсуждается.

VortexCorba
Можно и на блокноте писать, лиж бы ЖДК был.


В дельфях тоже можно. Теоретически.

VortexCorba
Короче Жава рулез С#, дельфи, и все прочее must die

Короче ерунда это все. Совершенно разные средства программирования, по разному заточенные и на разные вещи нацеленные. Оба одинаково хороши, если применять по назначению. А сравнивать их - все равно что тольчь воду в ступе ИМХО.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32796462
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VortexCorbaДельфи уже отстал. На нем пишут школьники. И воаще не сравнивай Жаву и Дельфи. Это как небо и земля.
Безусловно - разные вещи.

VortexCorbaДельфи: ....Не устойчивый. Например если в DBGrid загрузить много инфы, прога просто молчит, зависает, и не только прога, а вес виндоус
Не соответствует действительности. В DBGrid физически невозможно загрузить много информации - он является виртуальным окном над датасетом, и информации в нем ровно столько, сколько строк помещается на экране.

Я верю, что Вы как-то добились этого эффекта. Но - полагаю, то что выше уже показывает, насколько серьезно Вы этим занимались. А закона кривых рук еще никто не отменял.

VortexCorbaПод Дос у него идет паскаль, что то похожее, херня короче.
Дельфа не идет под ДОС :) Но как язык, Object Pascal продвинутей Java - это мое личное мнение, которое, если хочется, можно обсудить отдельно.

VortexCorbaВ Net технологоиях отстает Жавы на миллион км.
Да, собственно, и не предназначался для них.

VortexCorbaПроги написанные на Дельфи весят очень много.
"Очень много" - сложный вопрос. Дистрибутив проги на дельфе весит много меньше дистрибутива проги на джаве.

VortexCorbaМожно и на блокноте писать, лиж бы ЖДК был.
Как и в дельфе. Соответственно, не вижу смысла относить это к плюсам в сравнении.

VortexCorbaБэт сайт: Ну даже не знаю,
Хм. Бэт сайт: нормальное клиентское приложение на нем.. я пока не видел. Дико тяжелые, дико тормозные. Можно, конечно, сказать, что Borland и Oracle не умеют писать на Java - комментировать не буду.

Бэт сайт: JDK - плохо проработанный продукт как минимум в части оконного интерфейса. Очень мощный, но с соответствующим количеством недоделок и неудачных решений.

Особенно неприятно, что он неконтролируемый. Типа - вывалил printStackTrace() и продолжает работать; с точки зрения пользователя - при нажатии на кнопку просто ничего не произошло.

Бэт сайт: глупости в языке и библиотеке. Например, отсутствие enumeration. Например, возврат функции необходимо проверять на null, на length = 0 итп - и при этом помнить, что из нее запросто может вылететь exception, хотя никакого throws у нее не объявлено. Вообще, много всего по мелочи.

Бэт сайт: очень громоздкий код. Обратная сторона мощности - но тем не менее, большой минус. Практически эквивалентный код на дельфе выглядит вдвое, если не втрое короче.

Резюме: главное достоинство Java - очень мощное api, а также VM, приспособленная к решению сетевых задач (ClassLoader-ы итп). Главное достоинство дельфы - возможность быстрой разработки качественного кода в широком спектре клиентских приложений. Области практически не пересекаются - хотя борландеры и пытаются лезть в веб.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32796951
fynda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
VortexCorbaДельфи: ....Не устойчивый. Например если в DBGrid загрузить много инфы, прога просто молчит, зависает, и не только прога, а вес виндоус
Не соответствует действительности. В DBGrid физически невозможно загрузить много информации - он является виртуальным окном над датасетом, и информации в нем ровно столько, сколько строк помещается на экране.

Я верю, что Вы как-то добились этого эффекта. Но - полагаю, то что выше уже показывает, насколько серьезно Вы этим занимались. А закона кривых рук еще никто не отменял.


IMVHO 90% тех, кто добивается этого эффекта, добиваются его примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 with  grid.datasource.dataset  do  
   begin 
  Selectsql = "select * from very_large_table";
  Open;
  First;
  Last
   end ;

... ну или другой вариант классических граблей с FetchAll. Причем есть IMHO #2, что в java на эти грабли наступают не сильно реже.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32797361
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не удержался, сорри :)

softwarer VortexCorbaБэт сайт: Ну даже не знаю,
Хм. Бэт сайт: нормальное клиентское приложение на нем.. я пока не видел. Дико тяжелые, дико тормозные.
Приведу в пример IntellejIdea. Эта IDE полностью написана на Java. С функциональностью сравнится разве что бог. Занимает 50мб в отличии пары дисков ЖБорланда.


Можно, конечно, сказать, что Borland и Oracle не умеют писать на Java - комментировать не буду.

Я тоже не буду, т.к. не видел их клиентских приложений.




Бэт сайт: JDK - плохо проработанный продукт как минимум в части оконного интерфейса. Очень мощный, но с соответствующим количеством недоделок и неудачных решений.

Использование "как минимум" граничит с использованием заголовков типа "папа съел своего ребёнка" в желтой прессе.

Если не понимать как работает решение, это не значит, что оно неудачное.
Swing'и великолепно проработаны. Где там "соответствующее кол-во недоделок", мне лично не понятно.


Особенно неприятно, что он неконтролируемый. Типа - вывалил printStackTrace() и продолжает работать; с точки зрения пользователя - при нажатии на кнопку просто ничего не произошло.

Если программист решил не обработать Exception, а вывалить его в консоль или отдать эту функцию VM - это проблемы программиста, а не Java. В java API этим не балуются.

А кстати, вариант повиснуть/выпасть лучше? :)


Бэт сайт: глупости в языке и библиотеке. Например, отсутствие enumeration.

Есть.


Например, возврат функции необходимо проверять на null, на length = 0 итп

?!
я тут чуть не упал вместе с коллегами.


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

Не обработанные самой функцией RuntimeException's и Error's - это ошибки программиста. В релизе, такие ошибки не должны возникать.
Если кто-то использует из вместо Exception - не надо нанимать школьников.


Вообще, много всего по мелочи.

Имхо, эти мелочи следствие не понимания языка, используемых в нём паттернов.



Бэт сайт: очень громоздкий код. Обратная сторона мощности - но тем не менее, большой минус. Практически эквивалентный код на дельфе выглядит вдвое, если не втрое короче.

Cкриптовые языки требуют ещё меньше места, это же не вовод всё бросить и писать на них? :)
Хотя был тут один человек, который говорил, что php >> java.

Я писал только на паскале, с дельфи дела не имел, поэтому приходится верить вам на слово.
Но даже если это так, то этот параметр имеет значение только для маленьких приложений. Как только скелет приложения определён (ой как грубо), размер уже не имеет значения. Разработка/доработка/поддержка - это уже игра вокруг классов, все рефакторинги которых автоматизированны (почти все, IDEA). Работать со множествно небольших методов (всумме занимающих в 2 раза больше строчек, чем один большой) на порядок удобнее чем с одним большим.

Короче, не вижу бед сайт.


Резюме: главное достоинство Java - очень мощное api, а также VM, приспособленная к решению сетевых задач (ClassLoader-ы итп).
Главное достоинство дельфы - возможность быстрой разработки качественного кода в широком спектре клиентских приложений. Области практически не пересекаются - хотя борландеры и пытаются лезть в веб.
Учитывая, что клиентские приложения в основном мальнькие прилепки к БД или серверам, так оно и есть.

Из пушки по мухам не бьют :) (опять не удержался :))
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32798053
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fyndaПричем есть IMHO #2, что в java на эти грабли наступают не сильно реже.
Я когда-то смотрел, как это делать в java. Google - выдал, разумеется, кучу ссылок, из которых на первой странице на разные лады повторялся примерно одинаковый код заполнения DefaultTableModel из ResultSet-а - само собой, с fetch all. То есть - не было даже автоматизации модели с fetch all; модели без fetch all я вообще не нашел (P.S. Речь идет о JDK 1.3 - потом, может быть, и появилась).
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32798147
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUsИспользование "как минимум" граничит с использованием заголовков типа "папа съел своего ребёнка" в желтой прессе.
Использование "как минимум" означает, что я знаю далеко не весь JDK, и поэтому не хочу наговаривать на неизвестные мне модули, которые, возможно, реализованы хорошо.

NotGonnaGetUsЕсли не понимать как работает решение, это не значит, что оно неудачное.
Swing'и великолепно проработаны. Где там "соответствующее кол-во недоделок", мне лично не понятно.
Не напомнишь, в какой версии JDK появилась такая крайне сложная и необычная процедура, как "максимизировать окно"?

Великолепно проработаны - пока не начинаешь использовать. Скажем, тривиальная такая задачка: имея строку "A / B / C", сгенерировать cоответствующий пункт меню (то есть - найти/создать подменю A, в нем найти/создать подменю B, в нем создать пункт C). Посмотри для интереса - сколько идиотских действий при этом нужно совершить.

NotGonnaGetUsЕсли программист решил не обработать Exception, а вывалить его в консоль или отдать эту функцию VM - это проблемы программиста, а не Java. В java API этим не балуются.
Если бы так.. exception while event dispatching - и стек в консоль. Помню, видел не раз.

При этом - стоит помнить, что исключение запросто выпадает даже из подпрограмм, в которых никаких throws нет. А потому, практически единственный путь защититься - писать безусловный catch в каждой функции.

NotGonnaGetUsА кстати, вариант повиснуть/выпасть лучше? :)
Лучше - предусмотреть разумную реакцию по умолчанию (выдавать окно с сообщением) и дать программисту изменить эту реакцию на ту, которую хочет он.

NotGonnaGetUs
Бэт сайт: глупости в языке и библиотеке. Например, отсутствие enumeration.

Есть.
Значит, невнимательно слежу за развитием. Ссылочку можно - типа, ключевое слово? Может, и break-и в switch-е уже не нужны?

NotGonnaGetUsя тут чуть не упал вместе с коллегами.
Рад за ваш моцион.

NotGonnaGetUsНе обработанные самой функцией RuntimeException's и Error's - это ошибки программиста.
Факт. Вопрос только - какого программиста. Если из класса JDK вылетает что-нибудь типа NullPointerException - я знаю, какого программиста это ошибка.

Да, причина кроется в том, что этот JDK-шный класс попытались использовать как-то так, как автор не предполагал. И если бы оттуда вылетел разумный Exception - все было бы как надо. А если идет такая хрень - увы.

NotGonnaGetUsИмхо, эти мелочи следствие не понимания языка, используемых в нём паттернов.
В чем-то, наверняка так. Странно, однако, что я пользовался как минимум десятком языков, разумеется, далеко не все детально изучал - и только джава создала такое впечатление.

NotGonnaGetUsCкриптовые языки требуют ещё меньше места, это же не вовод всё бросить и писать на них? :)
Не повод. Но это именно один из факторов, который влияет на выбор. Грубо говоря, есть область, в которой разумно применять скриптовые языки и есть область, в которой разумно применять джаву.

NotGonnaGetUsЯ писал только на паскале, с дельфи дела не имел, поэтому приходится верить вам на слово.
Ничего не имею против - но, полагаю, стоит понимать, что в такой ситуации Ваши возможности объективно сравнивать заведомо ограничены. Как, само собой, и мои - я не считаю, что хорошо знаю джаву.

NotGonnaGetUsНо даже если это так, то этот параметр имеет значение только для маленьких приложений. Как только скелет приложения определён (ой как грубо), размер уже не имеет значения.
Не соглашусь. Размер и сложность кода прямо влияет на читаемость и все вытекающие из нее параметры - количество мелких ошибок, сложность отладки и сопровождения.

NotGonnaGetUs Разработка/доработка/поддержка - это уже игра вокруг классов, все рефакторинги которых автоматизированны (почти все, IDEA). Работать со множествно небольших методов (всумме занимающих в 2 раза больше строчек, чем один большой) на порядок удобнее чем с одним большим.
Хм. Я как-то написал выражение, которое на Java требовало 14 открывающих и закрывающих скобок. На дельфе аналогичное потребовало бы четырех. Это уже не имеет отношения к рефакторингу :)

Да, в итоге, само собой, я переписал это выражение в виде присваиваний двум или трем промежуточным переменным. Так оно стало более понятно, нежели в оригинальном виде - и осталось менее понятно, чем то же в простом виде.

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

NotGonnaGetUs Короче, не вижу бед сайт.
Не удивлен. Каждый из нас смотрит сквозь призму своих задач - а задачи подбираются под используемый инструмент :)

NotGonnaGetUs Учитывая, что клиентские приложения в основном мальнькие прилепки к БД или серверам, так оно и есть.
Это крайне сильное утверждение. Впрочем, учитывая убогость веб-интерфейса, его источники вполне понятны.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32798405
fynda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer fyndaПричем есть IMHO #2, что в java на эти грабли наступают не сильно реже.
Я когда-то смотрел, как это делать в java. Google - выдал, разумеется, кучу ссылок, из которых на первой странице на разные лады повторялся примерно одинаковый код заполнения DefaultTableModel из ResultSet-а - само собой, с fetch all.

Ну да, а отсутствие в стандартной поставке хотя бы самого общего, но правильного примера реализации SQLQueryTableModel только усугубляет ситуацию. Ведь на первый взгляд все так просто: сделал FetchAll, табличка заполнилась и голова не болит. И пока база пустая - все просто летает. А что там будет у пользователя через полгода - ну разве это кого волнует...
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32798583
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUsИмхо, эти мелочи следствие не понимания языка, используемых в нём паттернов.
Раз уж вспомнил: каким именно паттерном языка объясняется невозможность написать

Код: plaintext
1.
 try  { something; }  catch  { something wrong; }

Почему я обязан писать что-то типа (Throwable t), если мне совершенно неинтересен этот t?

Или каким паттерном объясняется, что код

Код: plaintext
1.
2.
3.
4.
5.
 class  MyObject  extends  MyAncestor {
   public  MyObject ( int  value) {
     super  ((value >  0 ) ? value :  0 );
  }
}

работает, а код

Код: plaintext
1.
2.
3.
4.
5.
6.
 class  MyObject  extends  MyAncestor {
   public  MyObject ( int  value) {
     int  newvalue = (value >  0 ) ? value :  0 ;
     super  (newvalue);
  }
}

не компилится?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32798670
Anatoly K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По правилам Java вызов конструктора базового класса должен быть первым предложением в описании конструктора производного класса. А почему - ... его знает. Где-то прочитал, чтобы не было возможности перехватывать исключения, возбуждаемые в базовом классе в конструкторе производного класса. Короче - нельзя так делать.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32798708
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer

Это бы и в C++ и в C# не скомпилировалось и мне, например, даже в голову бы не пришло Так что ясно - C++ и java и C# - неправильные языки - правильный - это конечно pascal...

про Throwable не понял...
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32799161
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По правилам Java вызов конструктора базового класса должен быть первым предложением в описании конструктора производного класса. А почему - ... его знает.

Потому что конструктор - это не виртуальная функция... Так что у нее свои правила
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32799373
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly KПо правилам Java вызов конструктора базового класса должен быть первым предложением в описании конструктора производного класса. А почему - ... его знает. Где-то прочитал, чтобы не было возможности перехватывать исключения, возбуждаемые в базовом классе в конструкторе производного класса. Короче - нельзя так делать.
Что нельзя - я в курсе.

Обратите внимание: два описанных фрагмента - эквивалентны (если не считать дополнительной области видимости переменной). И первый из них - нормально работает, допустим и не вызывает ни проблем, ни вопросов.

То есть - вместо действительного, разумного критерия, определяемого реализацией, проверяется чисто формальный критерий, не имеющий физического смысла ("первая строка").

Вот именно это я и называю глупостями языка. И просил привести "паттерн", которого я при этом не понимаю. Само по себе требование вызывать super до остального - скажем так, в случае java я не вижу в этом однозначной необходимости, но не более того.

Anatoly KЭто бы и в C++ и в C# не скомпилировалось
В "идеологичном" C++ такое нельзя написать синтаксически (поскольку родительские конструкторы вызываются отдельно), и тому есть причина - проблемы реализации множественного наследования. Да, туда добавили вариант синтаксиса с конструкторами после "{" - в рамках всегдашней сишной необходимости примирять плохо совместимые реализации. Не более того.

В джаве это - не обусловлено совершенно ничем.

funikovyuriТак что ясно - C++ и java и C# - неправильные языки - правильный - это конечно pascal...
Нечего сказать, поэтому начинаешь ерничать. Достойно и красиво.

funikovyuriпро Throwable не понял...
Раз уж тебе нравится идея "правильности"...

В дельфе при желании я могу написать:

Код: plaintext
1.
 try  Something  except  SomethingWasWrong  end  ;

То есть - обработать все возможные ошибки одним универсальным обработчиком.

В джаве - я обязан при этом писать лишние слова, то есть просто

Код: plaintext
 try  { Something; }  catch  { SomethingWrong; }

не компилируется. Опять же - мелкая раздражающая деталь, необходимости в которой нет совершенно никакой. И таких деталей - мягко говоря, хватает.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32799642
Гости
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
author ляляля....
В дельфе при желании я могу написать:

Код: plaintext
1.
 try  Something  except  SomethingWasWrong  end  ;

То есть - обработать все возможные ошибки одним универсальным обработчиком.

В джаве - я обязан при этом писать лишние слова, то есть просто

Код: plaintext
 try  { Something; }  catch  { SomethingWrong; }

не компилируется. Опять же - мелкая раздражающая деталь, необходимости в которой нет совершенно никакой. И таких деталей - мягко говоря, хватает.
не понял, а если вот так:
Код: plaintext
1.
2.
3.
4.
5.
 try { 
  ...
}
 catch  (Exception e){
  ...
}

Запарили уже засирать языки. Каждый пишет на том на чем нравится.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32800013
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гости SoftwarerВ джаве - я обязан при этом писать лишние слова, то есть просто
не понял, а если вот так:
Говорю же: обязан писать лишние слова. И, кстати, не Exception, а Throwable - через написанное Вами куча исключений отлично провалится.

Это, кстати, очень показательный момент, поскольку повсеместная ошибка программирования на Java. Случается следующее: пользователь нажимает кнопку, в обработчике происходит что-нибудь типа VerifyError, NullPointer итп, оно проваливается сквозь такой catch - и в результате с точки зрения пользователя "программа молча ничего не сделала, словно и не нажимал", а где-нибудь в stdout появляется сообщение об ошибке. Это - почти худший из возможных вариантов поведения программы в такой ситуации. Хуже только "молча падать".

ГостиЗапарили уже засирать языки.
Хм. С моей точки, "засирать" - это начать обсуждение "на дельфе не писал, но DBGrid виснет". Безусловно, любые темы сравнения флеймовы, но при корректном подходе в них можно найти пользу - и я стараюсь удерживаться именно в этих рамках.

Гости Каждый пишет на том на чем нравится.
Я бы сказал - на том, что требуется исходя из задачи.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32800080
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer

В "идеологичном" C++ такое нельзя написать синтаксически
да, потому что передача параметров в конструкторы идет через список инициализации членов...

причина - проблемы реализации множественного наследования.
Извини, но это называется слышал звон... Единственное на что повлияло наличие множественного наследования так это на необходимость указывать все суперклассы по имени (вместо super или base).

В джаве это - не обусловлено совершенно ничем.
Угу, я уже писал чем это обусловлено. Конструктор - это НЕ виртуальная функция - ни в C++ ни в C# ни в java... И еще - конструкторы ВСЕГДА выполняются в строгом порядке от суперкласса к подклассу! Поэтому ты и не можешь написать свой код - так как когда выполняется код из super - твое присвоение еще не отработало! Просто в sun решили упростить синтаксис и убрать список инициализации как отдельную языковую конструкцию - и все - надо смотреть в корень.

Ты говоришь, что знаешь еще 10 языков, в которых принято другое поведение - я знаю только один - это VFP - да и то просто в силу виртуальности ВСЕХ методов его классов.

Теперь насчет
try { Something; } catch { SomethingWrong; }
Я никогда не писал на pascal'e, а ты видно на C++. Если без долгих разговоров - C++ - это главный идеологический предшественник и java и C# - так вот в нем для обработки всех исключений без указания их классов используется конструкция
try { Something; } catch (...) { SomethingWrong; }
и мне, например, она кажется более наглядной чем вариант pascal'я - хотя я далек от мысли что это как-то влияет на выразительность всего языка...


Понимаешь - ты сам своим тоном вынуждаешь отвечать жестко. С самого начала ты не расположен дискутировать. Например, пишешь про конструкторы в С++, и при этом используешь фразу про "проблемы реализации множественного наследования" - ну и какие там проблемы с его реализацией? Так зачем же так писать? и так везде - тебе вообще не кажется, что критиковать такую платформу как java по синтаксису catch'а - это ну как критиковать машину по форме руля. Так что я не люблю ерничать - просто отвечать пока не на что
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32800103
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer

Родной, ну нельзя же так - уже даже не смешно

Вот иерархия классов относящихся к проблеме

http://java.sun.com/docs/books/tutorial/essential/exceptions/throwable.html

Так кто виноват в использование Exception так где надо Throwable? Sun?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32800106
Гости
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Говорю же: обязан писать лишние слова. И, кстати, не Exception, а Throwable - через написанное Вами куча исключений отлично провалится.

Это, кстати, очень показательный момент, поскольку повсеместная ошибка программирования на Java. Случается следующее: пользователь нажимает кнопку, в обработчике происходит что-нибудь типа VerifyError, NullPointer итп, оно проваливается сквозь такой catch - и в результате с точки зрения пользователя "программа молча ничего не сделала, словно и не нажимал", а где-нибудь в stdout появляется сообщение об ошибке. Это - почти худший из возможных вариантов поведения программы в такой ситуации. Хуже только "молча падать".


Никогда не говорил, что я знаю жабу на зубок, но не пойти ли вам уважаемый софтварер и подучить оную? На этом форуме полно старых тредов по поводу какой язык лучше, какой хуже. Ни один из них ни к чему не привел. Каждый как писал на своем любимом ЯП, так и пишет, только пара-тройка "деятельных" товарищей с барабаном в руках всё продолжает бестолковый флейм (кстати, теперь я тоже в этих рядах оказался, ну и *** с ним).

По поводу мистического "проваливания", кто мешает ловить конкретное исключение и не париться? Не вижу причин почему я не могу указать в кэтч блоке подкласс Throwable - Exception.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32801004
Frame Relay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Вернёмся же к нашим баранам!"
Люди, не затевайте ещё одну holly war!
Ведь тема топика была не о Delphi vs. Java, а о корпоративных приложениях на Яве.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32802066
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri
причина - проблемы реализации множественного наследования.
Извини, но это называется слышал звон... Единственное на что повлияло наличие множественного наследования так это на необходимость указывать все суперклассы по имени (вместо super или base).
Далеко не только на это. Последствия множественного наследования очень сложны и запутанны.

Думаю, ты понимаешь причину ошибки "объект не инициализирован", которая будет зафиксирована, если ты попробуешь, например, передать параметром super поле класса.

В случае множественного наследования - объект может быть "частично инициализированным". Соответственно, логика усложняется, появляются вопросы, на которые нет разумного ответа. Скажем (из головы): идет наследование "ромбом" (то есть от класса А унаследованы B и C, от B и C унаследован D). В A есть некоторое поле. Будет ли оно считаться "инициализированным", если вызван конструктор B, но еще не вызван конструктор C? Если нет - почему оно доступно в конструкторе B, но недоступно после конструктора B? Если да - почему полем объекта-предка можно крутить до вызова конструктора (последнего конструктора) этого объекта-предка?

Промежуточные выкладки - еще более усложняют логику в этом месте.

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

funikovyuri
В джаве это - не обусловлено совершенно ничем.
Угу, я уже писал чем это обусловлено. Конструктор - это НЕ виртуальная функция
Виртуальность конструктора совершенно не при чем. Ты упираешь на виртуальные конструкторы дельфы - но они вовсе не обязаны быть виртуальными. В дельфе они могут быть виртуальными - не более того. Единственное отличие - дельфа разрешает доступ к полям объекта до вызова конструктора предка. Что, может быть, неидеологично - не буду спорить.

Конструктор - практически обычная функция, основной особенностью которой является "неинициализированное" состояние объекта на входе. Поэтому компилятор совершенно справедливо блокирует действия с этим объектом, да и справедливо не дает вызвать конструктор инициализированного объекта - тут дельфа действует хуже.

Что касается локальных переменных и внешних объектов - манипуляции с ними до инициализации ничуть не страшны. Рассмотри следующий псевдокод:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// --> вызов new
выделить память
выполнить/инициализировать статики
инициализировать поля суперкласса
// --> практически, здесь начинается конструктор 
вызвать/выполнить тело конструктора суперкласса
инициализировать поля класса 
выполнить тело конструктора класса (тело - то, что без супера)

Давай предположим, что "тело конструктора суперкласса" вычисляет какую-нибудь локальную или глобальную переменную. Имеет право? Имеет.

Вопрос: что изменится (с точки зрения среды выполнения, реализации), если это вычисление выполнится не внутри тела, а непосредственно до него?

Таким образом, по реализации вопросов нет. Что касается идеологии - идеологично было бы запихнуть конструктор туда же, куда и в C++. Или - реализовать выполнение похожим на общую логику выполнения программного кода.

А так - унаследовали глупость из C++, назвав ее "упрощение синтаксиса".

funikovyuri- ни в C++ ни в C# ни в java... И еще - конструкторы ВСЕГДА выполняются в строгом порядке от суперкласса к подклассу!
И что из этого?

funikovyuriПоэтому ты и не можешь написать свой код - так как когда выполняется код из super - твое присвоение еще не отработало!
Давай разберем тут чуть поподробнее. Ниже я напишу код и псевдокод, в который он компилится:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 public  MyObject ( int  i) {
   super  (i+ 1 );
  // .....
}

// псевдокод:
// internal_variable = i + 1
// super (internal_variable)

И вот теперь объясни - почему следующий код нельзя трактовать как следующий же псевдокод:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 public  MyObject ( int  i) {
   int  j = i +  1 ;
   super  (j);
  // .....
}

// псевдокод:
// internal_variable = i + 1
// super (internal_variable)
// int j = internal_variable

funikovyuriПросто в sun решили упростить синтаксис и убрать список инициализации как отдельную языковую конструкцию - и все - надо смотреть в корень.
Давай смотреть в корень. Суть твоего объяснения - в том, что код { some_action; super(); ... } реально должен был бы быть выполнен как { super(); some_action; ...} - потому что super() фактически, как и в C++, выполняется в отдельном блоке инициализации класса, до "тела конструктора", которые ты пишешь.

Это так. Но ты называешь это упрощением синтаксиса? Лично я полагаю это неуместным запутыванием ситуации.

funikovyuriТы говоришь, что знаешь еще 10 языков, в которых принято другое поведение
Цитату, пожалуйста.

funikovyuri- я знаю только один - это VFP - да и то просто в силу виртуальности ВСЕХ методов его классов.
Да при чем тут виртуальность?

В дельфе виртуальность конструкторов проявляется только в одном: можно написать конструкцию, аналогичную следующему а-ля java-коду:

Код: plaintext
1.
2.
 Class  myClass = MyObject.getClass();
Object myObject = myClass. new ();

и при этом будет вызван конструктор класса MyObject (если он виртуальный).

В джаве ты делаешь абсолютно то же самое через newInstance - разве что в дельфе ты при этом можешь еще и передать параметры, а в newInstance, если не изменяет память - нет.

funikovyuriЯ никогда не писал на pascal'e, а ты видно на C++.
Увы, мимо - я писал на C++.

funikovyuri- без указания их классов используется конструкция
try { Something; } catch (...) { SomethingWrong; }
В C++ - да. А что, мне пора обновлять компилятор? Этот код откомпилируется в джаве? Или все-таки в джаве приходится писать catch (Throwable t)?

funikovyuri-
и мне, например, она кажется более наглядной чем вариант pascal'я
Хм. Ты предлагаешь перейти к сравнению паскаля с C++? Не хотелось бы.

Лично мне - нравится вообще без всего, но это вопрос привычки. Вариант "как в C++" меня в целом устроил бы. Но в моем компиляторе такое не проходит. И в руководствах тоже вроде не упоминался такой вариант.

funikovyuriПонимаешь - ты сам своим тоном вынуждаешь отвечать жестко. С самого начала ты не расположен дискутировать.
Понимаешь ли, ты подключился к разговору с середины. Начался он с того, что некто покинувший нас начал говорить образцово неграмотные глупости про дельфу - почему я и начал "отвечать ему жестко". На что-то ты ответил со стороны, на что-то, вероятно, я отвечал, где-то перенеся на тебя общий фон разговора. За последнее, если было так - прощу прощения.

funikovyuriНапример, пишешь про конструкторы в С++, и при этом используешь фразу про "проблемы реализации множественного наследования" - ну и какие там проблемы с его реализацией?
Кажется, расшифровал. Впрочем, если тебя не устроит такая версия - можем продолжить обсуждение или зафиксировать несогласие.

На самом деле я больше не уверен в некоторых других своих словах - например, в том, что в JDK 1.5 не появилось таки нормальной табличной модели для ResultSet-ов.

funikovyuriТак зачем же так писать? и так везде - тебе вообще не кажется, что критиковать такую платформу как java по синтаксису catch'а - это ну как критиковать машину по форме руля.
Хм. Ответ на это состоит из двух отдельных мыслей - учти.

1. Лично я привык отделять мух от котлет. То есть для меня "великолепная машина, но с неудачным рулем" - вполне разумная характеристика.

2.1 Некий человек сказал, что "бэт сайтов" не видит - причем в контексте довольно неграмотных попыток назвать плохие стороны дельфы.

2.2. Я назвал несколько "бэт сайтов" джавы - именно в контексте "хорошая вещь для своих задач, но имеет и недостатки".

2.3. Вы (мои оппоненты, извини, не хочется читать еще раз весь тред, чтобы найти поименно) обратили внимание на одну из деталей одного из названных мной недостатков.

2.4. Теперь ты говоришь, что я критикую джаву по этой детали - ты уверен, что это корректно? Я готов заявить, что если бы это был единственный недостаток джавы - она была бы абсолютно, немыслимо великолепным продуктом. Но ряд таких мелочей - то, что реально раздражает, суммарно являются существенным (для меня) недостатком.

2.5 Я понимаю точку зрения "я привык именно так и неудобным кажется все остальное".
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32802075
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriТак кто виноват в использование Exception так где надо Throwable? Sun?
Sun виноват в том, что из функций, объявленных без throws, беспроблемно вылетает Throwable. Это - нарушение контракта; понятие "контракт", надеюсь, знакомо.

Дополнительная мелочь - отсутствие формы безусловного catch - приводит к более тяжелым последствиям этой ошибки.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32802080
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frame RelayВедь тема топика была не о Delphi vs. Java, а о корпоративных приложениях на Яве.
А по сути уже все сказано.

Если корпоративное приложение должно быть вебовским - писать его на джаве вполне разумно. И пишут.

Для написания gui-клиентов java - не лучший выбор. Поэтому.. скажем так, не видел продуктов этого жанра, и вряд ли много увижу.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32802847
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Не напомнишь, в какой версии JDK появилась такая крайне сложная и необычная процедура, как "максимизировать окно"?

А в какой нельзя было максимизировать окно?


Великолепно проработаны - пока не начинаешь использовать. Скажем, тривиальная такая задачка: имея строку "A / B / C", сгенерировать cоответствующий пункт меню (то есть - найти/создать подменю A, в нем найти/создать подменю B, в нем создать пункт C). Посмотри для интереса - сколько идиотских действий при этом нужно совершить.

Ни одного. Все действия осмысленны.


Если бы так.. exception while event dispatching - и стек в консоль. Помню, видел не раз.

Не всегда есть возможность пробрасывать exception вверх, в надежде, что кто-то его обработает, особенно если оно происходит в thread'е созданном внутри метода, который давно уже завершён.
Исключение говорит о том, что существует ошибка - либо в приложении, либо в библиотеке. Разработчик зная об ошибке может её найти и исправить. Проблем ноль.
Поэтому в "стеке в консоль" нет ничего мистически не постижимого. Я очень рад, что thread'ы не молча умирают из-за не обработанной исключительной ситуации, а сообщают об этом.


При этом - стоит помнить, что исключение запросто выпадает даже из подпрограмм, в которых никаких throws нет. А потому, практически единственный путь защититься - писать безусловный catch в каждой функции.

Единственный путь защититься - это понимать, что пишешь. И проверять, действительно ли ты понимаешь или нет.


Значит, невнимательно слежу за развитием. Ссылочку можно - типа, ключевое слово? Может, и break-и в switch-е уже не нужны?

http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html
Без break из switch теряет часть своей функциональности. Imho, вместо того, что бы плодить два разных switch'a - убрать его целиком.


Да, причина кроется в том, что этот JDK-шный класс попытались использовать как-то так, как автор не предполагал. И если бы оттуда вылетел разумный Exception - все было бы как надо. А если идет такая хрень - увы.

За всю свою практику, не встречал случаев, что бы из библиотечных классов просто так вылетали NPE.
Для меня NPE чертовски разумное исключение. Исходный код jdk классов всегда перед галазами. Соглашения об использовании методов там же.
Не вижу ваших больших проблем...


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

Не удивительно.
Все "остальные языки" - одинаковы по сути. Java - это не язык - это платформа программирования. java это не только синтаксис, это ещё архитектура библиотек.


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

Возмём группу из 10 мальких методов, про которых ясно что и как они делают
и один большой собранный из этих 10. По вашему последний метод одифицировать/исправлять легче? А то, что все 10 методов можно использовать повторно внутри класса то же ерунда? Ну тогда не соглашайтесь.

На читаемость влияет не кол-во открывающих и закрывающих скобок, сам код. Элегантно втиснутый в 5 строчек код на который надо потратить "два часа", что бы понять что он делает - вот это пример не читаемости, а не "лишняя" пара скобок и разбитый на логические составляющие метод.


Хм. Я как-то написал выражение, которое на Java требовало 14 открывающих и закрывающих скобок. На дельфе аналогичное потребовало бы четырех. Это уже не имеет отношения к
рефакторингу :)

Это уже ни к чему не имеет отношения.
Программист - это не стенаграфистка, которая без останова выдаёт 200 символов кода в минуту.


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

Рефакторинг - это не выделение произвольных кусков кода в методы.
Будем говорить о рефакторинге?


Не удивлен. Каждый из нас смотрит сквозь призму своих задач - а задачи подбираются под используемый инструмент :)

Моя задача проектировать/писать хороший код. Через неё и смотрю.
Лучшего инструмента для этого, чем java не видел :)
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32802857
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerРаз уж вспомнил: каким именно паттерном языка объясняется невозможность написать

Код: plaintext
1.
 try  { something; }  catch  { something wrong; }

Почему я обязан писать что-то типа (Throwable t), если мне совершенно неинтересен этот t?


Через весь язык проходит идея простоты. Язык не должен заставлять думать над своим синтаксисом. Думать нужно о том, что делаешь.
Поэтому в java нет этих бессмысленных (по существу) упрощений синтаксиса, которые есть в том же C++.
Если пишешь catch, то будь добр написать, что именно ты ловишь, Error, RuntimeException или Exception или всё сразу.
Нет ничего более ужасного, чем
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 int  foo( int  x){
 int  result =  0 ;
 try {
  result =  1 /x * anotherFoo();
} catch  (Throwable t){
  result = - 1 ;
}
 return  result;
}
Так никогда и не узнаешь, где ошибка, в пораметрах переданных методу или в в внутри метода anotherFoo(), причём t может содержать вполне ясное сообщение об ошибке, которое никто и никогда уже не сможет обработать.


Или каким паттерном объясняется, что код

Код: plaintext
1.
2.
3.
4.
5.
 class  MyObject  extends  MyAncestor {
   public  MyObject ( int  value) {
     super  ((value >  0 ) ? value :  0 );
  }
}

работает, а код

Код: plaintext
1.
2.
3.
4.
5.
6.
 class  MyObject  extends  MyAncestor {
   public  MyObject ( int  value) {
     int  newvalue = (value >  0 ) ? value :  0 ;
     super  (newvalue);
  }
}

не компилится?

Это правило следует из того же принципа простоты, о котором уже шла речь.

Оно позволяет избежать всякого рода трудностей в последовательности инициализации переменых класса, исключает ошибки связанные с обращением к унаследованным полям, до их корректной инициализации и т.д.
Легко нарушить контракты суперкласса, если начать дёргать его методы до того, как класс полностью инициализирован.

Программист не должен думать о том, как будет интерпретирован компилятором или, в случае java, виртуальной машиной его код, это должно быть очевидно.

Из Java убранны потенциально опасные конструкции, по сравнению с тем же C++, где из воз и маленькая тележка.

Объяснения чего ещё требуются? :)
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32802864
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Sun виноват в том, что из функций, объявленных без throws, беспроблемно вылетает Throwable. Это - нарушение контракта; понятие "контракт", надеюсь, знакомо.

Дополнительная мелочь - отсутствие формы безусловного catch - приводит к более тяжелым последствиям этой ошибки.


Нарушает контракт только программист, который пишет код думая, что throws это и есть контракт.

Каждый метод каждого класса из состава jdk снабжён исчерпывающим описанием своего поведения. Остальное есть в описании самого класса.

Вот простой пример.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
    /**
     * Creates a new instance of the class represented by this <tt>Class</tt>
     * object.  The class is instantiated as if by a <code>new</code>
     * expression with an empty argument list.  The class is initialized if it
     * has not already been initialized.
     *
     * <p>If there is a security manager, this method first calls the security
     * manager's <code>checkMemberAccess</code> method with <code>this</code>
     * and <code>Member.PUBLIC</code> as its arguments. If the class is in a
     * package, then this method also calls the security manager's
     * <code>checkPackageAccess</code> method with the package name as its
     * argument. Either of these calls could result in a SecurityException.
     *
     * @return     a newly allocated instance of the class represented by this
     *             object.
     * @exception  IllegalAccessException  if the class or its nullary 
     *               constructor is not accessible.
     * @exception  InstantiationException 
     *               if this <code>Class</code> represents an abstract class,
     *               an interface, an array class, a primitive type, or void;
     *               or if the class has no nullary constructor;
     *               or if the instantiation fails for some other reason.
     * @exception  ExceptionInInitializerError if the initialization
     *               provoked by this method fails.
     * @exception  SecurityException if there is no permission to create a new
     *               instance.
     *
     */
     public  Object newInstance() 
         throws  InstantiationException, IllegalAccessException  {
...
}


SecurityException и ExceptionInInitializerError - не должны быть перечисленны в throws. Потому что это RuntimeException и Error. Если не знаешь как их правильно обработать - не обрабатывай, т.к. проблему всё равно не решишь, а только закапаешь её по глубже, что бы потом коллегам было "интреснее" работать.

Если их не отлавливать на основании, что их нет в throws - то это не проблемы Sun'a, а проблемы мозга.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32803506
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUsА в какой нельзя было максимизировать окно?
Таки я буду учить Вас пользоваться источниками по java? http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Frame.html#setExtendedState(int) . Там написано - с какой. Заодно стоит оценить осмысленность названия метода :)

NotGonnaGetUsНи одного. Все действия осмысленны.
Блаженны верующие. Но попробуйте таки сделать - думаю, уверенности поубавится.

NotGonnaGetUsЯ очень рад, что thread'ы не молча умирают из-за не обработанной исключительной ситуации, а сообщают об этом.
Я, кажется, писал, как надо "сообщать". Вы можете продолжать утверждать, что "по сравнению с умиранием молча jdk ведет себя разумно". Согласен - но только по сравнению с умиранием молча.

NotGonnaGetUsЕдинственный путь защититься - это понимать, что пишешь. И проверять, действительно ли ты понимаешь или нет.
До тех пор, пока код целиком твой - безусловно. Когда используется большой массив чужого кода - обычно невозможно детально разобраться в нем прежде чем начинать работу.

Дальше - все очень просто. Есть, например, кнопочка, нажав на которую, я получаю необходимый try..catch вокруг функции - с отловом тех ошибок, которые она может вернуть. Очень удобно. Вот только ряда ошибок там нет - и с твоей точки зрения, это правильно. Ну.. допустим, правильно. Я этого не понимаю и вряд ли пойму.

http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html
Не прошло и десяти лет.. И то хлеб, спасибо за информацию.

Imho, вместо того, что бы плодить два разных switch'a - убрать его целиком.
Имхо, надо было сразу сделать нормальный case. Сейчас, безусловно, уже поздно что-то менять.

За всю свою практику, не встречал случаев, что бы из библиотечных классов просто так вылетали NPE.
Хм. Посмотри на несколько топиков в сторону от этой темы :) Увидишь :)

Для меня NPE чертовски разумное исключение.
Для меня оно - признак ламерства. Разумным исключением будет "не сделано то-то", "не инициализировано то-то" или любая другая разумная и четкая проверка.

Исходный код jdk классов всегда перед галазами.
Это, безусловно, большой плюс - как, кстати, и в дельфе, если продолжать сравнения. Без этого в java было бы вообще невозможно работать.

Соглашения об использовании методов там же.
Хм. С моей точки зрения, NPE допустим разве что если я явно передаю null как параметр функции, ожидающей not null - да и то, лучше бы таки явное исключение. Насчет соглашений.. Что ты имеешь в виду? Искать по исходникам, что необходимо, чтобы метод отработал?

Не вижу ваших больших проблем...
Больших - нет. А вот дорогая - есть. Называется "время, которое приходится тратить на эту муть, а не на дело".


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

Не удивительно.
Все "остальные языки" - одинаковы по сути. Java - это не язык - это платформа программирования. java это не только синтаксис, это ещё архитектура библиотек.


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

Возмём группу из 10 мальких методов, про которых ясно что и как они делают
и один большой собранный из этих 10. По вашему последний метод одифицировать/исправлять легче? А то, что все 10 методов можно использовать повторно внутри класса то же ерунда? Ну тогда не соглашайтесь.

На читаемость влияет не кол-во открывающих и закрывающих скобок, сам код. Элегантно втиснутый в 5 строчек код на который надо потратить "два часа", что бы понять что он делает - вот это пример не читаемости, а не "лишняя" пара скобок и разбитый на логические составляющие метод.


Хм. Я как-то написал выражение, которое на Java требовало 14 открывающих и закрывающих скобок. На дельфе аналогичное потребовало бы четырех. Это уже не имеет отношения к
рефакторингу :)

Это уже ни к чему не имеет отношения.
Программист - это не стенаграфистка, которая без останова выдаёт 200 символов кода в минуту.


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

Рефакторинг - это не выделение произвольных кусков кода в методы.
Будем говорить о рефакторинге?


Не удивлен. Каждый из нас смотрит сквозь призму своих задач - а задачи подбираются под используемый инструмент :)

Моя задача проектировать/писать хороший код. Через неё и смотрю.
Лучшего инструмента для этого, чем java не видел :)[/quot]
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32803539
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во, блин... когда ж этот флэйм прекратится?
коллеги, не пройти ли вам в просто треп?

--
FUCK THE iNET!!!
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32803601
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUsЧерез весь язык проходит идея простоты. Язык не должен заставлять думать над своим синтаксисом.
Возьми тот же break в switch - я бы никак не назвал его "идеей простоты".

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

NotGonnaGetUsПоэтому в java нет этих бессмысленных (по существу) упрощений синтаксиса, которые есть в том же C++.
Ладно, это, видимо, философский вопрос. То есть я считаю, что это нужно, ты считаешь, что это не нужно - давай запишем в "моменты, относительно которых не придем к единому мнению".

NotGonnaGetUsНет ничего более ужасного, чем....Так никогда и не узнаешь, где ошибка,
И опять ты применяешь тот же прием: берешь образцово плохой пример применения обратной идеи и на нем пытаешься объяснить, чем плоха вся идея.

Что ужасного в варианте

Код: plaintext
  try  { ... куча всего ... }  catch  { sendAlarmToAdmin (logOfExecution); }

Нет, не спорю - я привык к дельфе, где текст ошибки можно получить в таком вот безусловном catch-е - но нем не менее, он нужен не всегда. Типичный пример - отсутствие в API возможности проверить некий факт иначе чем попытавшись сделать нечто, типа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 boolean  isFloat (String s) {
   try  {
     Float .strToFloat (s);  
     return  true;}
   catch  {
     return  false;
  }
}

NotGonnaGetUsЭто правило следует из того же принципа простоты, о котором уже шла речь.

Оно позволяет избежать всякого рода трудностей в последовательности инициализации переменых класса, исключает ошибки связанные с обращением к унаследованным полям, до их корректной инициализации и т.д.
Не позволяет. Я все равно могу попытаться употребить поле класса, например, как параметр в вызове super, я могу даже - тоже наследие C - написать что-то типа

Код: plaintext
1.
 super  (i =  2 , j =  3 );

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

NotGonnaGetUsЛегко нарушить контракты суперкласса, если начать дёргать его методы до того, как класс полностью инициализирован.
Именно поэтому меня вполне устраивает подход C++, где вызов конструкторов вынесен отдельно. Не возникает вопроса, почему я не могу объявить там локальную переменную :)

Тут - неудачно скопировали. "Половину оттуда, половину отсюда".

NotGonnaGetUsПрограммист не должен думать о том, как будет интерпретирован компилятором или, в случае java, виртуальной машиной его код, это должно быть очевидно.
Хм. Джава слишком много взяла из C, чтобы это требование выполнялось.

NotGonnaGetUsИз Java убранны потенциально опасные конструкции, по сравнению с тем же C++, где из воз и маленькая тележка.
Ой. Ну если говорить о потенциально опасных конструкциях - давай снова вспомним тот же switch. Насколько я помню, он считается настолько опасным, что современные компиляторы C выдают warning на отсутствие break. А java - по крайней мере, у меня - глотает без проблем.

NotGonnaGetUsОбъяснения чего ещё требуются? :)
Почему, если они выдвинули такие принципы, они так очевидно их нарушили? :)
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32804925
Nightwish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего мне бы хотелось от Явы:
1. Возможность писать шаблоны на базовые типы.
2. Возможность использывания алиасов типов и класов.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32806027
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nightwish2. Возможность использывания алиасов типов и класов.
А это для чего? Убирать конфликты имен?
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32806749
hgst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не напомнишь, в какой версии JDK появилась такая крайне сложная и необычная процедура, как "максимизировать окно"?
Хех...
Давно было. Знакомый как-то на работу новую ушел на UNIX - так получилось. До этого сидел тока на Win только. Комментарии сродни этим были: что за дерьмо - дисков (A:, B:, C:, D:, ...) нету, почему не сделать "стандартно" A - это дисковод, С: - это типа первый диск; а то одни каталоги - что за бред, какой больной это придумал... и т.д. в таком же духе.

Не сделали - значит были проблемы реализации на всех платформах.


И опять ты применяешь тот же прием: берешь образцово плохой пример применения обратной идеи и на нем пытаешься объяснить, чем плоха вся идея.

Что ужасного в варианте

try { ... куча всего ... } catch { sendAlarmToAdmin (logOfExecution); }


Нет, не спорю - я привык к дельфе, где текст ошибки можно получить в таком вот безусловном catch-е - но нем не менее, он нужен не всегда. Типичный пример - отсутствие в API возможности проверить некий факт иначе чем попытавшись сделать нечто, типа

boolean isFloat (String s) {
try {
Float.strToFloat (s);
return true;}
catch {
return false;
}
}

Скажу что плохого - для Java :)
То что строка в некорректном формате ловится через NumberFormatException. А если на вход функции подадут строку размером в пару десятков мегов или по случайному совпадению - они всегда случайные почему-то - у тебя закончится память в системе, то это не NumberFormatException а OutOfMemoryError. Что есть вещи немножко (имхо) разные. Только не будем уж про вероятности таких событий и т.д. - ок? :) Они случаются - нечасто, но бывают реально .

Имхо все же если человек пишет он должен точно знать что именно его код делает и что именно происходит. Отсюда NPE и т.д. - но это не есть норма языка. С таким же успехом можно в Делфи накатать приложение вообще без обработки исключений - и ничего, компилятор не поперхнется. Если человек индус или аргентинец (ну это из собственного опыта :)) то тут уже ничего не исправишь - пишет он на Делфи или Java не имеет никакой разницы.

В том же духе по большинству остальных вещей - просто для того чтобы понимать язык, на нем писать нужно (достаточно много - пока оно (понимание) не придет). Ну а не придет - так поговорки можно перефразировать в духе "к умному придет, а дураку и не надо" :) А просто так сравнивать с позиции другого языка нет смысла - немного другие паттерны, немного другие принципы. Вроде все близко и все же как-то не так. Лично я ничего не имею против Делфи - сам на нем писал достаточно.

Вообще на Java кода кривого пишется - ема ё. Те же Exceptions - ну приходят люди и просто сами не знают что с ними делать :) - в лог и типа что-то там по дефолту присвоить, но, есть у меня смутное подозрение, что в том же Делфи или C++ они их просто даже и не обрабатывали бы - а тут, как говорится, компилятор обязывает - вот и приводит их это в ступор :).

А GUI на яве нормальный есть. Посмотри к примеру что пишут на SWT - в частности тот же eclipse - более чем приемлемо.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32808384
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hgst было. Знакомый как-то на работу новую ушел на UNIX - так получилось. До этого сидел тока на Win только. Комментарии сродни этим были: что за дерьмо - дисков (A:, B:, C:, D:, ...)
Я работал на unix-ах. Есть вещи, которые мне в них не нравятся, есть вещи объективно убогие - но "таких" вопросов не возникало.

hgstНе сделали - значит были проблемы реализации на всех платформах.
С трудом представляю, но дело не в этом. Вспомни изначальное утверждение -java не лучший инструмент для gui-интерфейса. А объективные ли это проблемы или дыра разработчиков - какая юзеру разница, если он хочет получить окно на весь экран, а я не могу ему такого выдать? (вернее, выдать-то могу, только часть окна уходит под таскбар).

hgstСкажу что плохого - для Java :)
То что строка в некорректном формате ловится через NumberFormatException. А если на вход функции подадут строку размером в пару десятков мегов
Если мне нужно ловить "строку в неверном формате" - ты прав. А вот в варианте "мне нужно значение, а какая ошибка мешает ее получить - пофиг" - наплевать мне на все самые немыслимые исключения, которые мешают. Мне нужно что-то делать - скажем, использовать значение по умолчанию, чтобы автономный сервер не перестал работать из-за такой ерунды.

Согласен, в варианте "конкретное сообщение об ошибке неважно" это бывает редко. Но тоже бывает. Например, одна из моих программ уже почти год крутится без нормального администратора - она-то может сообщать о проблемах, только что-то мало-мальски нетривиальное все равно никто не исправит :)

hgstИмхо все же если человек пишет он должен точно знать что именно его код делает и что именно происходит.
Его код - да. Стандартный код, который он вызывает, должен быть надежным. Если последовательностью нормальных в принципе вызовов можно получить NPE - это плохо.

hgstС таким же успехом можно в Делфи накатать приложение вообще без обработки исключений - и ничего, компилятор не поперхнется.
Можно. Мало того, простое приложение такого рода в дельфе будет нормально работать.

Вопрос в том, что в дельфе получить NPE от стандартного кода можно только специально, зная как работают компоненты и потратив сколько-то сил. В джаве для этого достаточно не разобраться в деталях, как они работают.

Если человек индус или аргентинец (ну это из собственного опыта :)) то тут уже ничего не исправишь - пишет он на Делфи или Java не имеет никакой разницы.

hgstно, есть у меня смутное подозрение, что в том же Делфи или C++ они их просто даже и не обрабатывали бы - а тут, как говорится, компилятор обязывает - вот и приводит их это в ступор :).
В той же дельфе необработанное исключение выскочит на экран - что не очень хорошо, но и не очень плохо. В джаве оно попадет в консоль, где его никто не увидит, если не знает, что туда надо смотреть. С точки зрения пользователя - "я нажал кнопку, и ничего не произошло". Это - почти худший вариант. Хуже только молча падать.

hgstА GUI на яве нормальный есть. Посмотри к примеру что пишут на SWT - в частности тот же eclipse - более чем приемлемо.
Может быть, соглашусь с этим. Но "мало" - означает "трудно".
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32808709
Гости
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не буду ничего писать, т.к. модер отмодырит.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32810779
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ говорит правильно.

2 Softwarer:
Если чудовищные силы заставляют пользоваться чужими библиотеками, к которым нет документации и из которых NPE сыпятся во все стороны, тут конечно ничего не скажешь - беда. Так же, как ничего не скажешь, если придётся пользоваться глючащими либами в delphi.

--

У java есть "одна" проблема - её нельзя понять просто познакомившись с синтаксисом, она отличается от других языков. Но разве может такая мелочь смутить человека знающего 10 ЯП или всю жизнь писавшего на С и переползшего на С++, так и не поняв зачем? Конечно нет!

Чего стоит перл (не помню автора) про то, что объекты в java передаются в методы по значению, с иллюстрацией на примере String.

Таким людям бесполезно объяснять, что все контракты касательно вызовов методов описаны в javaDoc's. Что исключения это лишний повод не зарывать ошибки в глубину кода. Что Swing не синхранизирован и при написании гуи только программист ответственнен за ошибки в event dispatcher thread. Что не перехваченные исключения можно обработать любым удобным способом, а не только по дефолту про дампить в консоль. И т.д. и т.п.
...
Рейтинг: 0 / 0
Кто-нибудь пишет корпоративные приложения для БД на Java?
    #32813056
fplab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, не удержался таки :) Пара слов в похвалу Java при сравнении с Delphi. Буквально вчера увидел у коллеги на мониторе такой вот код (Delphi):
Код: plaintext
1.
2.
3.
  ...
  sqlInsDept.ParamByName ('BACK_TYPE_ID').AsInteger   := StrToInt (cxTextEdit1.Text);
  ...
Кто не знает Delphi - это код передачи параметра в хранимую процедуру. Когда я спросил коллегу, а что будет если в cxTextEdit1 ввести не число, а строку, он сказал (дословно): "Ну и что ? Вылетит exception. Делов то". А вот Java таких "делов" попросту не позволит сделать и заставит написать нечто вроде этого:
Код: plaintext
1.
2.
3.
4.
5.
   ...
    try  {param = Integer.parseInt  (cxTextEdit1.getText ());}  catch  (NumberFormatException nfe) {
  // Мой обработчик ошибок ...
   }
   ...
Дельфины скажут, что можно вставить в код try-exception, а я скажу так: не можно, а нужно. И контролироваться это должно на уровне компилятора. Дальше - больше: на мое предложение явно ловить исключение, тот коллега сказал, что мол это лишняя писанина, я понял, что переубеждать его бессмысленно - это диагноз :(
...
Рейтинг: 0 / 0
71 сообщений из 71, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Кто-нибудь пишет корпоративные приложения для БД на Java?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]