Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > Почему так не любят Delphi?


Автор: yura13 20.1.2012, 13:31
Реально, ведь под уиндовс больше не на чем писать. Джава и сишарп требуют установки своих виртуальных машин, да ещё и актуальной версии. С++ язык для извращенцев. Что же использовать? Укажите на адекватное средство программирования под уиндовс а потом хайте делфи. Ведь действительно, программы ведь не на чём писать.

Автор: Данкинг 20.1.2012, 13:48
Не знаю, наверное, завидуют простоте, с которой можно писать на Дельфи, причём писать что угодно. smile 

Автор: DarkProg 20.1.2012, 14:21
Цитата(Данкинг @  20.1.2012,  14:48 Найти цитируемый пост)
Не знаю, наверное, завидуют простоте, с которой можно писать на Дельфи, причём писать что угодно.

Я не пробовал писать пока службы, так что не решусь сказать сложно это или нет. Хотя в ближайшее время попробую написать.

Основная направленость Делфы это написание пользовательских приложений, или как бы это точнее сказать - всё для пользователей.

Более того на сегодняшний день XE2 позволяет собирать приложения для Mac, но тоже пока ещё не опробовал, хотя мак есть у начальника и он согласен был добровольно его дать под опыты с приложениями smile У нас просто была заинтересованность тогда smile

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

Единстввенное для чего не годится делфа, так это программирования микроконтроллеров... к сожалению...

А ругают и с пеной у рта доказывают, что делфи туфта те кто ничего не понимает в программировании. Я могу задать встречный вопрос и задаю всем в последнее время, что лучше Китайский или Английский?

Автор: LSD 20.1.2012, 14:28
Цитата(Данкинг @  20.1.2012,  14:48 Найти цитируемый пост)
Не знаю, наверное, завидуют простоте, с которой можно писать на Дельфи, причём писать какую угодно фигню.

У тебя там опечатка smile 

Автор: Artemon 20.1.2012, 15:10
Мне кажется такая неприязнь формируется со школьной скамьи.
Кому-то преподают Pascal, кому-то C++

Мне вот например преподавали C++
И у меня априори негативное отношение к Delphi, как говорится не читал, но осуждаю.

Автор: Snowy 20.1.2012, 15:16
user posted image
рис 1. yura13

Автор: Данкинг 20.1.2012, 15:17
Цитата(DarkProg @  20.1.2012,  15:21 Найти цитируемый пост)
Я не пробовал писать пока службы, так что не решусь сказать сложно это или нет.

Ну да, если какие-нибудь драйверы писать, то Дельфи тоже не подойдёт, думается.
Цитата(LSD @  20.1.2012,  15:28 Найти цитируемый пост)
У тебя там опечатка

Зависит от цели программиста. smile

Добавлено через 1 минуту и 16 секунд
Взять работу с ole-объектами. Ну-ка, как на C++ сиё будет выглядеть? Или на джаве?

Автор: LSD 20.1.2012, 15:56
Цитата(Данкинг @  20.1.2012,  16:17 Найти цитируемый пост)
Зависит от цели программиста.

Результат программирования на дельфи, не зависит от программиста smile 

Автор: newbee 20.1.2012, 16:07
Делфи не любят за быдлокодеров, которые там раньше копошились, обсосано уже сто раз было.

Сейчас по этой же причине не любят петухон.

Автор: AndreyIQ 20.1.2012, 16:14
Цитата(DarkProg @ 20.1.2012,  14:21)

Я не пробовал писать пока службы, так что не решусь сказать сложно это или нет. Хотя в ближайшее время попробую написать.

Как-то писал протокол копирования файлов с/на флешку, ввиде службы, легко и просто.
Цитата(DarkProg @ 20.1.2012,  14:21)

Единстввенное для чего не годится делфа, так это программирования микроконтроллеров... к сожалению...

Не Delphi конечно, но все же, под PIC'и, есть MickroPascal

Автор: Данкинг 20.1.2012, 17:12
Цитата(LSD @  20.1.2012,  16:56 Найти цитируемый пост)
Результат программирования на дельфи, не зависит от программиста

Результат программирования - это программа, которая написана за счёт меньшего числа операторов, чем на том же C++.

Добавлено через 3 минуты и 2 секунды
Пример - работа с Excel. Какое это извращение на Билдере и как всё просто и понятно на Дельфи.

Автор: 502 20.1.2012, 17:26
Ocaml ^_^

Автор: LSD 20.1.2012, 17:44
Цитата(Данкинг @  20.1.2012,  18:12 Найти цитируемый пост)
Результат программирования - это программа, которая написана за счёт меньшего числа операторов, чем на том же C++.

Только у быдлокодеров скорость разработки ограничена скоростью печати smile 

Автор: Данкинг 20.1.2012, 17:52
Цитата(LSD @  20.1.2012,  18:44 Найти цитируемый пост)
Только у быдлокодеров скорость разработки ограничена скоростью печати

А при чём здесь быдлокодеры? Речь о ЯП, а не быдлокоде/кодерах.

Автор: LSD 20.1.2012, 17:59
Цитата(Данкинг @  20.1.2012,  18:52 Найти цитируемый пост)
А при чём здесь быдлокодеры? Речь о ЯП, а не быдлокоде/кодерах.

Потому что скорость разработки и количество операторов очень слабо связаны. К.О.

Автор: Данкинг 20.1.2012, 18:24
"Опытный программист на С++ легко решит любые, несуществующие в Паскале проблемы" ?

Автор: 502 20.1.2012, 18:25
Цитата(Данкинг @  20.1.2012,  18:24 Найти цитируемый пост)
"Опытный программист на С++ легко решит любые, несуществующие в Паскале проблемы" ? 

в паскале есть метапрограммирование?

Автор: Данкинг 20.1.2012, 18:30
Цитата(502 @  20.1.2012,  19:25 Найти цитируемый пост)
в паскале есть метапрограммирование? 

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

Автор: 502 20.1.2012, 18:34
Цитата(Данкинг @  20.1.2012,  18:30 Найти цитируемый пост)
Но для повседневной работы Дельфи куда удобнее. 

чем?

Автор: rodnover 20.1.2012, 21:18
С базами и формочками работать. smile 3 года прописал в связке Delphi+Firebird. Дико удобно, но как решишь чего архитектурно извратиться или улучшить - начинаются костыли. На C++ этого нет. Там, правда, другие костыли... И, кстати, всё больше убеждаюсь в том, что мышкотыкательное делание формочек менее удобно и практично.

Автор: Данкинг 20.1.2012, 21:36
Цитата(502 @  20.1.2012,  19:34 Найти цитируемый пост)
чем? 

Простотой.
Цитата(rodnover @  20.1.2012,  22:18 Найти цитируемый пост)
С базами и формочками работать. 

И с базами тоже, кстати.
Цитата(rodnover @  20.1.2012,  22:18 Найти цитируемый пост)
мышкотыкательное делание формочек менее удобно и практично. 

Т.е. динамически создавать формы на джаве, задавая все параметры, удобнее?

Автор: DarkProg 21.1.2012, 11:51
Цитата(rodnover @  20.1.2012,  22:18 Найти цитируемый пост)
И, кстати, всё больше убеждаюсь в том, что мышкотыкательное делание формочек менее удобно и практично.

Интересно и что тратить процессорное время на то чтобы своять форму, вместо того чтобы вязть сделать один шаблончик формы, кнуть его в репозиторий и потом в зависимости от задач для конкретного програмного продукта подправлять в ту или иную сторону? Я на типовые формы благодаря такому методу трачу не более 5 минут. Сложные же формы, которых ещё не было в программе делаются с нуля минут ну за 20-30, особенно если там какая-нить хитрая заморочка, а потом уже коддинг.

Вопрос к тем кому не нравится делфи, нука назовите мне компоненты для других языков?
Для делфи существуют горы готовых компонентов у меня стоит TMS+SUI+DevExpress - этого с избытком хватает для решения любых задач. В редких случаях когда негде хранить свойства приходится делать наследника, но это делов на 5 минут smile

Автор: newbee 22.1.2012, 01:12
Цитата(502 @  20.1.2012,  19:25 Найти цитируемый пост)
в паскале есть метапрограммирование? 
Ты так говоришь, будто в С++ есть нормальное метапрограммирование))) Посмотри исходники бустовского модуль метапрограммирования и пусть тебе будет грустно. Не говоря уже о том, что и этот модуль умеет чуть менее чем ничего.

Добавлено через 1 минуту и 46 секунд
Цитата(Данкинг @  20.1.2012,  22:36 Найти цитируемый пост)
Простотой.
В очередной раз убеждаюсь, что большинство людей не умеют ценить простое, зацикливаясь на высоком самомнении, основанном на умении пользоваться сложным.

Автор: 502 22.1.2012, 14:21
Цитата(newbee @  22.1.2012,  01:12 Найти цитируемый пост)
Ты так говоришь, будто в С++ есть нормальное метапрограммирование))) Посмотри исходники бустовского модуль метапрограммирования и пусть тебе будет грустно. Не говоря уже о том, что и этот модуль умеет чуть менее чем ничего.

ну хоть что-то есть  smile 

Автор: k0rvin 22.1.2012, 17:17
Цитата(502 @ 20.1.2012,  18:25)
в паскале есть метапрограммирование?

А разве в C++ оно есть?

Добавлено через 1 минуту и 41 секунду
Цитата(Данкинг @ 20.1.2012,  21:36)
Цитата(rodnover @  20.1.2012,  22:18 Найти цитируемый пост)
мышкотыкательное делание формочек менее удобно и практично. 

Т.е. динамически создавать формы на джаве, задавая все параметры, удобнее?

Вообще зачастую да, однако в любой современной IDE для джавы есть и визуальный дизайнер формы.

Автор: 502 22.1.2012, 17:21
Цитата(k0rvin @  22.1.2012,  17:17 Найти цитируемый пост)
А разве в C++ оно есть?

 smile 
ну может не такое кошерное как в lisp или nemerle

Автор: yura13 24.1.2012, 11:35
На Делфи можно построить систему любой сложности с минимумом затрат  smile 

Автор: LSD 24.1.2012, 11:45
Цитата(yura13 @  24.1.2012,  12:35 Найти цитируемый пост)
На Делфи можно построить систему любой сложности с минимумом затрат

Как построишь что-то сложнее чем:
Цитата(rodnover @  20.1.2012,  22:18 Найти цитируемый пост)
С базами и формочками работать

позови smile 

Автор: yura13 24.1.2012, 11:56
Цитата(LSD @ 24.1.2012,  11:45)
Цитата(yura13 @  24.1.2012,  12:35 Найти цитируемый пост)
На Делфи можно построить систему любой сложности с минимумом затрат

Как построишь что-то сложнее чем:
Цитата(rodnover @  20.1.2012,  22:18 Найти цитируемый пост)
С базами и формочками работать

позови smile

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

Автор: Akella 24.1.2012, 12:19
Цитата(502 @ 20.1.2012,  18:34)
Цитата(Данкинг @  20.1.2012,  18:30 Найти цитируемый пост)
Но для повседневной работы Дельфи куда удобнее. 

чем?

Чем-чем? Чем С++!

Добавлено через 1 минуту и 47 секунд
Говорили, что на дельфи много-много не заработаешь, но тем не мене, http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=911488&msg=11942052 вакансия дельфи программиста 600-1800 уёв. Я думаю, это неплохая зарплата smile

Автор: 502 24.1.2012, 12:23
Цитата(Akella @  24.1.2012,  12:19 Найти цитируемый пост)
Чем-чем? Чем С++!

не убедил smile 

Цитата(Akella @  24.1.2012,  12:19 Найти цитируемый пост)
вот вакансия дельфи программиста 600-1800 уёв. Я думаю, это неплохая зарплата

вопрос в том, сколько этих вакансий smile 


Автор: k0rvin 24.1.2012, 13:16
Цитата(Akella @ 24.1.2012,  12:19)
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=911488&msg=11942052 вакансия дельфи программиста 600-1800 уёв. Я думаю, это неплохая зарплата smile

Здесь же, на винграде, в Руби-разделе было несколько вакансий на RoR от 80 круб. При том, что писать на Руби значительно проще и удобней, чем на Делфи =)

Автор: Akella 24.1.2012, 17:44
А что в сях нету try/finally  smile ?

Добавлено через 7 минут и 21 секунду
При чём здесь руби, что же вы сравниваете руби и дельфи?

Добавлено через 8 минут и 43 секунды
Цитата

 На Ruby можно писать широкий класс приложений: консольные утилиты, утилиты с оконным пользовательским интерфейсом, сетевые сервисы и web- приложения.

это называется широкий  smile 

Автор: k0rvin 24.1.2012, 18:13
Цитата(Akella @ 24.1.2012,  17:44)
А что в сях нету try/finally  smile ?

В сях как бы вообще нет исключений. А в сях++ юзают http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%B0_%D0%B5%D1%81%D1%82%D1%8C_%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F, поэтому там finally не нужен.

Автор: LSD 24.1.2012, 18:31
Любят языки в которых есть (чем больше пунктов тем лучше):
- есть куча синтаксического сахара, чтоб аж попа слипалась
- есть куча библиотек, фреймворков и желательно чтоб бесплатно
- есть несколько IDE на выбор
- вообще выбор очень важен, пусть 99% используют одну IDE и пару библиотек, выбор важен, нет выбора - язык проприетарный отстой
- сложны для освоения, это тешит ЧСВ тех кто их освоил
- просты для освоения, но при этом не слишком популярны чтобы не было толпы школьников
Так что Дельфи выпадает практически по всем пунктам.

Автор: Akella 24.1.2012, 23:39
Цитата(LSD @  24.1.2012,  18:31 Найти цитируемый пост)
- есть куча библиотек, фреймворков и желательно чтоб бесплатно

ну по этому точно не выпадает  smile 

Автор: LSD 25.1.2012, 14:58
Цитата(Akella @  25.1.2012,  00:39 Найти цитируемый пост)
ну по этому точно не выпадает

Расскажи ка про библиотеки для написания веб приложений smile 


И кстати, к этому вашему VCL эмбакадабра прикрутила MVC, или как г0внокодили так и г0внокодите?

Автор: yura13 25.1.2012, 20:19
Цитата(LSD @  24.1.2012,  18:31 Найти цитируемый пост)
Любят языки в которых есть (чем больше пунктов тем лучше):

Да нет, не в этом дело. За java стоит oracle, за .net microsoft, за python google. Embarcadero этим троим не конкурент, поэтому его никто особо не пиарит. Вот отсюда и ростут ноги, и ниодному с выше упомянутых Delphi не уступает. C с/c++ другая история, тут и оптимизация и низкоуровневый и куча уже существующих либ.

Цитата(LSD @  25.1.2012,  14:58 Найти цитируемый пост)
Расскажи ка про библиотеки для написания веб приложений

В нашей компании как раз таки веб на Delphi + MVC(почти) стоит. Да, у нас свой MVC фреймворк для Delphi свой вебсервер. Производительность в результате имеем, по оценке независимых экспертов, больше чем в 10(!) раз превышающую аналогичные решения на java и .net. По разработки для веб на Delphi могу сказать следующее, что разрабатывать сложно только для разработчиков одиночек или для небольших компаний. большая же компания вполне может содержать команду, в нашем случае всего 5 человек, которые будут работать над веб сервером и веб фреймворком. Профит от этого колоссальный. Буквально 3 года назад руководство хотело мигрировать на одну из следующих технологий: java, python, ruby. Мы пригласили архитекторов, работающих с этими технологиями для консультации. Все из них согласились, что лучше нашего фреймворка, для НАШЕЙ компании ничего нет! ВСЕ архитекторы с этим согласились, хотя всё начиналось примерно так: "Delphi для веб??? MVC на Delphi??? Ребята, вы что? Это всё не правильно!". Много говорили о динго, рор и прочих вещах. Но после того, как они начали понимать КАК это всё работало, они соглашались, что всё очень грамотно продумано и лучше для нашей компании ничего быть не может. Так что инвестиции в создание платформы для веб на Delphi сторицей окупаются. Более того, Embarcadero продолжает развивать свой продукт, и вскоре мы покинем мир уиндовс! smile  Да здравстует линукс, привет яблоки smile  smile  smile 

Автор: yura13 25.1.2012, 22:45
Я почему эту тему создал. Просто хочется чтобы как можно больше разработчиков умело смотреть на мир чистыми глазами, а не замурзанными ораклом или майкрософтом. Отбросьте предрассудки и пишите чистый код, на чистых, а не прокладочных ЯП!

Автор: 502 26.1.2012, 10:27
Цитата(yura13 @  25.1.2012,  22:45 Найти цитируемый пост)
Я почему эту тему создал. Просто хочется чтобы как можно больше разработчиков умело смотреть на мир чистыми глазами, а не замурзанными ораклом или майкрософтом. Отбросьте предрассудки и пишите чистый код, на чистых, а не прокладочных ЯП! 

это про Dart?  smile 

Автор: yura13 26.1.2012, 12:24
Цитата(502 @ 26.1.2012,  10:27)
Цитата(yura13 @  25.1.2012,  22:45 Найти цитируемый пост)
Я почему эту тему создал. Просто хочется чтобы как можно больше разработчиков умело смотреть на мир чистыми глазами, а не замурзанными ораклом или майкрософтом. Отбросьте предрассудки и пишите чистый код, на чистых, а не прокладочных ЯП! 

это про Dart?  smile

Как же достали эти новички user posted image
виртуальные машины java и .net имеются ввиду. Имеется ввиду, что писать нужно код родной для ОС. Ни JS ни Dart в эту категорию не попадут, так как это ЯП бля браузера, а следовательно нативными для ОС никак не могут быть.

Добавлено через 2 минуты и 1 секунду
502, ты бы лучше книжку какую нибудь почитал чем на форумах бред постить smile 

Автор: 502 26.1.2012, 12:27
Цитата(yura13 @  26.1.2012,  12:24 Найти цитируемый пост)
Ни JS ни Dart в эту категорию не попадут, так как это ЯП бля браузера, а следовательно нативными для ОС никак не могут быть. 

ахахахахаха LOL
про node.js не слышал, а Dart позиционируется как для браузера так и для сервера

Автор: yura13 26.1.2012, 12:33
Цитата(502 @  26.1.2012,  12:27 Найти цитируемый пост)
про node.js не слышал, а Dart позиционируется как для браузера так и для сервера 

Покажи мне где я Dart позиционировал для сервера??? И в мыслях такого не было! И вообще, здесь тема о Делфи, если что  smile 

Автор: 502 26.1.2012, 12:36
Цитата(yura13 @  26.1.2012,  12:33 Найти цитируемый пост)
Покажи мне где я Dart позиционировал для сервера???


Цитата(yura13 @  26.1.2012,  12:24 Найти цитируемый пост)
Ни JS ни Dart в эту категорию не попадут, так как это ЯП бля браузера

вот тут
а про js ты вообще бред пишешь

Цитата(yura13 @  26.1.2012,  12:33 Найти цитируемый пост)
И вообще, здесь тема о Делфи, если что

и чо? обсуждаем delphi в вакууме?

Автор: yura13 26.1.2012, 12:36
А сервер на JS это изврат ещё тот. Если в браузере деваться некуда, то для сервера технологий хватает.

Добавлено через 2 минуты и 9 секунд
Цитата(502 @  26.1.2012,  12:36 Найти цитируемый пост)
вот тут

здесь???
Цитата(502 @  26.1.2012,  12:36 Найти цитируемый пост)
и JS ни Dart в эту категорию не попадут, так как это ЯП бля браузера

здесь написано что-то о Dart на сервере? мне кажется ты меня троллишь smile 

Автор: 502 26.1.2012, 12:39
Цитата(yura13 @  26.1.2012,  12:24 Найти цитируемый пост)
лучше книжку какую нибудь почитал чем на форумах бред постить

говори себе это почаще
Цитата(yura13 @  26.1.2012,  12:36 Найти цитируемый пост)
то для сервера технологий хватает. 

и чо?
Цитата(yura13 @  26.1.2012,  12:36 Найти цитируемый пост)
А сервер на JS это изврат ещё тот.

сервер на delphi это изврат, да
а js няшка

Автор: newbee 26.1.2012, 12:48
Цитата(yura13 @  26.1.2012,  13:24 Найти цитируемый пост)
Имеется ввиду, что писать нужно код родной для ОС.
Кому нужно? А мужчина слышал, что та же ява в процессе выполнения программы компилируется в нативный код? А что оверхед с этого в программах, выполняющихся более десяти секунд, стремится к нулю, и проблемы явы далеко не в нативности исполняемого кода?

Цитата(yura13 @  26.1.2012,  13:24 Найти цитируемый пост)
Ни JS ни Dart в эту категорию не попадут, так как это ЯП бля браузера, а следовательно нативными для ОС никак не могут быть.
Пойду напишу что-нибудь на http://en.wikipedia.org/wiki/XUL.

Цитата(yura13 @  26.1.2012,  13:24 Найти цитируемый пост)
а следовательно нативными для ОС никак не могут быть.
Могут, достаточно просто написать компилятор, транслирующий JS в машинный код. Ты же крутой программер, напиши компилятор своего любимого Dart smile

Подумай на досуге, чем обычно десктопная программа занимается 99% своего времени выполнения. И да, 502 ты дал правильный совет, но тебе тоже не помешало бы заполнить чем-нибудь пустоту в голове.

Добавлено через 1 минуту и 51 секунду
Для сервера Dart позиционирует гугл, есличо.

Автор: LSD 26.1.2012, 13:57
Цитата(yura13 @  25.1.2012,  21:19 Найти цитируемый пост)
Да нет, не в этом дело. За java стоит oracle, за .net microsoft, за python google. Embarcadero этим троим не конкурент, поэтому его никто особо не пиарит. Вот отсюда и ростут ноги, и ниодному с выше упомянутых Delphi не уступает. C с/c++ другая история, тут и оптимизация и низкоуровневый и куча уже существующих либ.

А за Ruby и JS кто стоит? ZOG? smile 



Цитата(yura13 @  25.1.2012,  21:19 Найти цитируемый пост)
В нашей компании как раз таки веб на Delphi + MVC(почти) стоит. Да, у нас свой MVC фреймворк для Delphi свой вебсервер. Производительность в результате имеем, по оценке независимых экспертов, больше чем в 10(!) раз превышающую аналогичные решения на java и .net. По разработки для веб на Delphi могу сказать следующее, что разрабатывать сложно только для разработчиков одиночек или для небольших компаний. большая же компания вполне может содержать команду, в нашем случае всего 5 человек, которые будут работать над веб сервером и веб фреймворком. Профит от этого колоссальный. Буквально 3 года назад руководство хотело мигрировать на одну из следующих технологий: java, python, ruby. Мы пригласили архитекторов, работающих с этими технологиями для консультации. Все из них согласились, что лучше нашего фреймворка, для НАШЕЙ компании ничего нет! ВСЕ архитекторы с этим согласились, хотя всё начиналось примерно так: "Delphi для веб??? MVC на Delphi??? Ребята, вы что? Это всё не правильно!". Много говорили о динго, рор и прочих вещах. Но после того, как они начали понимать КАК это всё работало, они соглашались, что всё очень грамотно продумано и лучше для нашей компании ничего быть не может. Так что инвестиции в создание платформы для веб на Delphi сторицей окупаются.

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



Цитата(yura13 @  25.1.2012,  21:19 Найти цитируемый пост)
Более того, Embarcadero продолжает развивать свой продукт, и вскоре мы покинем мир уиндовс!   Да здравстует линукс, привет яблоки

Жители Москвы, стесненные жилищным кризисом, бросятся в ваш великолепный город. Столица автоматически переходит в Васюки. Сюда переезжает правительство. Васюки переименовываются в Нью-Москву, а Москва - в Старые Васюки. … Нью-Москва становится элегантнейшим центром Европы, а скоро и всего мира.
 smile

Добавлено через 2 минуты и 41 секунду
И кстати я до сих пор не услышал ничего
Цитата(LSD @  25.1.2012,  15:58 Найти цитируемый пост)
про библиотеки для написания веб приложений

Я так понимаю они отсутствуют как класс? И что там с распределенными кешами и нереляционными базами, есть чо?


Цитата(LSD @  25.1.2012,  15:58 Найти цитируемый пост)
И кстати, к этому вашему VCL эмбакадабра прикрутила MVC, или как г0внокодили так и г0внокодите?

Автор: 502 26.1.2012, 18:44
Цитата(yura13 @  25.1.2012,  20:19 Найти цитируемый пост)
Мы пригласили архитекторов, работающих с этими технологиями для консультации. Все из них согласились, что лучше нашего фреймворка, для НАШЕЙ компании ничего нет!

а при чем тут delphi? такой фреймворк что нельзя написать на другие ЯП?
LOOOOOOOOOOOOOOOOOOOOOOOOL

Автор: yura13 26.1.2012, 19:08
Цитата(LSD @  26.1.2012,  13:57 Найти цитируемый пост)
И кстати я до сих пор не услышал ничего
Цитата(LSD @  25.1.2012,  15:58 )
про библиотеки для написания веб приложений


Что греха таить, нет хороших решений. Есть решения от третьих лиц, но в своё время нам они не подошли.
Цитата(LSD @  26.1.2012,  13:57 Найти цитируемый пост)
А за Ruby и JS кто стоит? ZOG?

Ну по популярности Ruby до Java ой как далеко. А JS в список популярных вообще случайно попал, теперь всем миром не могут его от туда убрать smile 

Цитата(LSD @  26.1.2012,  13:57 Найти цитируемый пост)
Даже если оставить в стороне явное привирание про 10 кратное преимущество в скорости, тут куча других проблем.

Извини, но у нас наши сервера в суме отдают несколько десятков гигабайт REST/XML данных за секунду. И в основном это XML меньше 1 кб. Каждый сервер обрабатывает несколько тысяч запросов в секунду. И + ещё бд дёргает. Благо 4 вида кеша обращения к бд сильно гасят. А теперь скажите, что тут делать хвалёной яве? Да она сразу ложится, даже и не дёргается, проверяли. Вот почему создание своей веб платформы на Delphi сторицей окупается.
Цитата(LSD @  26.1.2012,  13:57 Найти цитируемый пост)
Даже если оставить в стороне явное привирание про 10 кратное преимущество в скорости, тут куча других проблем. Теоретически за счет узкой специализации, самописный лисапед может превосходить готовые решения. На практике же как всегда есть куча но (речь идет о живых и развивающихся проектах, а не о заброшенных):
- готовые библиотеки постоянно внедряют поддержку новые фич
- готовые библиотеки тестируются гораздо большем числом пользователей, и значит более стабильны
- производительность готовые библиотеки получает больше внимания разработчиков, чем свой лисапед
- готовые библиотеки поддерживаются средами разработки, тулами
- готовые библиотеки имеют комюнити и документацию, как минимум для них известны подводные камни и ограничения
Самое главное: готовые библиотеки известны и поддерживаемы. Если у вас завтра уволятся все разработчики вашего велосипеда, то с вероятностью 90% его будет проще переписать, чем поддерживать. А вот если бы вы использовали стандартный веб сервер, то можно было бы легко найти человека который бы обладал соответствующим опытом.

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

Цитата(LSD @  26.1.2012,  13:57 Найти цитируемый пост)
Ваш велосипед он нужен не из-за каких-то там мифических преимуществ Дельфи, а "от бедности" Дельфи на веб фреймворки.

Есть решения универсальные а есть специальные, мы себе можем позволить специальное и имеем с этого профит.

Цитата(LSD @  26.1.2012,  13:57 Найти цитируемый пост)
И кстати, к этому вашему VCL эмбакадабра прикрутила MVC, или как г0внокодили так и г0внокодите?

Для десктопа уж лучше MVP. Его мы для десктопа не используем, а используем г0внокодинг. Есть несколько заготовленных шаблонных проектов. С помощью нашей маленькой IDE создаются нужные прокси-классы, и другие специфичные вещи. Дале мы размещаем компоненты smile и пишем логику. Порой, такой проект бывает готов за 3(!) дня. То есть, от постановки требования, до возможности использовать проходит меньше недели. вот вам и Делфи  smile  Далее, если подобный функционал нужен будут постоянно мы переносим его в веб. Не знаю, может для кого-то это и г0внокод, но мы имеем реальный результат.

Цитата(newbee @  26.1.2012,  12:48 Найти цитируемый пост)
Пойду напишу что-нибудь на XUL.

Пользователи Iphone 4 это оценят smile 

Цитата(newbee @  26.1.2012,  12:48 Найти цитируемый пост)
Могут, достаточно просто написать компилятор, транслирующий JS в машинный код. Ты же крутой программер, напиши компилятор своего любимого Dart

Цитата

Пользователи Iphone 4 это оценят smile 


Цитата(newbee @  26.1.2012,  12:48 Найти цитируемый пост)
Кому нужно? А мужчина слышал, что та же ява в процессе выполнения программы компилируется в нативный код?

А мужики то думали что ява до сих пор интерпретируется  smile 

Цитата(newbee @  26.1.2012,  12:48 Найти цитируемый пост)
А что оверхед с этого в программах, выполняющихся более десяти секунд, стремится к нулю, и проблемы явы далеко не в нативности исполняемого кода?

Нас мало волнует почему ява тупит. А тупит в основном потому что опирается на JVM, что и есть прокладка. Нас интересует производительность, а её в яве, ну скажем, не так много.


Автор: 502 26.1.2012, 22:01
Цитата(yura13 @  26.1.2012,  19:08 Найти цитируемый пост)
Пользователи Iphone 4 это оценят

причем тут вообще iphone, и да js там есть, а delphi нет smile 

Цитата(yura13 @  26.1.2012,  19:08 Найти цитируемый пост)
А мужики то думали что ява до сих пор интерпретируется

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


Автор: LSD 27.1.2012, 15:02
Цитата(yura13 @  26.1.2012,  20:08 Найти цитируемый пост)
Ну по популярности Ruby до Java ой как далеко.

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html, при том что у них не было Борланда.


Цитата(yura13 @  26.1.2012,  20:08 Найти цитируемый пост)
Извини, но у нас наши сервера в суме отдают несколько десятков гигабайт REST/XML данных за секунду. И в основном это XML меньше 1 кб. Каждый сервер обрабатывает несколько тысяч запросов в секунду. И + ещё бд дёргает. Благо 4 вида кеша обращения к бд сильно гасят. А теперь скажите, что тут делать хвалёной яве? Да она сразу ложится, даже и не дёргается, проверяли. Вот почему создание своей веб платформы на Delphi сторицей окупается.

Бедные мужики из твитеру, ораклу, сану, ибеэму и т.д., как они там со своей явой мучаются. Тут же такой классый сервер на дельфях простаивает. Сходите к ним, предложите свой сервер, потом вместе поржем smile 


Цитата(yura13 @  26.1.2012,  20:08 Найти цитируемый пост)
используем г0внокодинг

Я бы это сформулировал так: г0внокодинг это дельфи вей smile 


Цитата(yura13 @  26.1.2012,  20:08 Найти цитируемый пост)
С помощью нашей маленькой IDE создаются нужные прокси-классы, и другие специфичные вещи

У вас еще и IDE своя? user posted image
У вас там чо, рекрутинг проходит по параметру сколько своих лисапедов написал? smile 


Цитата(yura13 @  26.1.2012,  20:08 Найти цитируемый пост)
Над платформой для веб работает не кто попало, а люди, которые уже имели опыт в подобных вещах и знают что делают.

Уже не один проект на совести этих профессионалов. smile 


Цитата(yura13 @  26.1.2012,  20:08 Найти цитируемый пост)
Нас мало волнует почему ява тупит. А тупит в основном потому что опирается на JVM, что и есть прокладка. Нас интересует производительность, а её в яве, ну скажем, не так много.

Ты рассуждаешь про вещи в которых не разбираешься.

Автор: yura13 27.1.2012, 16:09
Цитата(502 @  26.1.2012,  22:01 Найти цитируемый пост)
java компилируется в байткод

Учись различать сарказм  smile 

Цитата(LSD @  27.1.2012,  15:02 Найти цитируемый пост)
Уже не один проект на совести этих профессионалов. 

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

Цитата(LSD @  27.1.2012,  15:02 Найти цитируемый пост)
У вас еще и IDE своя?

Каждый Delphi разработчик нашей компании имеет Embarcadero RAD Studio 2010 редакции Architect. По сути Architect каждому не нужна, но мы хотим поддержать этот проект. А то что своя IDE есть, то тут нечему удивляться. Есть вещи, специфичные для нашей компании, и через приблуды к Embarcadero RAD Studio всё не так хорошо решается.

Цитата(LSD @  27.1.2012,  15:02 Найти цитируемый пост)
Ты рассуждаешь про вещи в которых не разбираешься. 

Не совсем. Я ещё в студенческие годы два проекта на яве педалил.

Цитата(LSD @  27.1.2012,  15:02 Найти цитируемый пост)
На уровне Дельфи, при том что у них не было Борланда.

Иногда я думаю что лучше бы у нас тоже не было Борланда smile По крайней мере последние годы его существования он Делфи делал скорее вред. 

Цитата(LSD @  27.1.2012,  15:02 Найти цитируемый пост)
Я бы это сформулировал так: г0внокодинг это дельфи вей  

Дельфи вей - это решения производственных задач за 3 дня, которые в яве решаются 3 месяца.

Цитата(LSD @  27.1.2012,  15:02 Найти цитируемый пост)
Бедные мужики из твитеру, ораклу, сану, ибеэму и т.д., как они там со своей явой мучаются. Тут же такой классый сервер на дельфях простаивает. Сходите к ним, предложите свой сервер, потом вместе поржем

Я же говорил, наше решение не универсальное - а специальное.

Автор: Pawl 27.1.2012, 19:30
Что ж вы так все на Delphi в целом и на Юру13 в частности накинулись? Ну, нравится человеку Дельфа, ну пишет он на ней, так и слава Богу - при любимом деле ведь, за которое еще и деньги, небось, платят! Тем более, походу, у буржуинов. Не каждому дано такое счастье! А что до Delphi, все-же развивают его, на что-то надеются. Вон, каждый год по новой версии выпускают. Видимо, окупается, иначе давно бы обанкротились. Т. е. пишут люди, да еще и за лицуху денежки платят! Вон, Кристиан Гислер для своего тотала только Delphi и использует, и нечего такой файл-менеджерчик получился, мне нравится. Короче, тут как в природе: не приспособился - вымер, а пока не вымер - имеешь право на существование. Delphi же сейчас не только существует, но и развивается, т. е. совершенствуется. А что из этого получится - время покажет!

Автор: kin 27.1.2012, 19:50
Привет! Вы, конечно, извините, что вмешиваюсь в ваш, высокоинтеллектуальный спор, от которого несомненно зависит будущее этого мира, но ощущение того, что вы, yura13, то ли рекламируете вашу фирму, то ли ее продукцию, с увеличением количества страниц этого поста становиться  все сильнее и сильнее... В общем, как в анекдоте"...ты тоже из далека начал..."
P.S. Усы, лапы..., главное - хвост!...

Автор: Данкинг 29.1.2012, 12:47
http://forum.vingrad.ru/index.php?showtopic=346127&view=findpost&p=2453920 один из примеров, когда в Билдере (даже не "чистый" С !!!) появляются ошибки, которых в Дельфи в принципе быть не может.

Автор: Akella 30.1.2012, 01:37
Цитата(LSD @  25.1.2012,  14:58 Найти цитируемый пост)
Цитата(Akella @  25.1.2012,  00:39 Найти цитируемый пост)
ну по этому точно не выпадает

Расскажи ка про библиотеки для написания веб приложений smile 


Ну вот список. Есть реально живые и развивающиеся smile, в том числе и халявные
Indy, intraweb, TMS Intraweb, spring, Responsive Software Framework, Raudus, uniGUI, DelphiOnRails, ExtPascal, WebHub, xxm, RTC, G Framework, iwelite, ExpressWeb.

Добавлено через 6 минут и 22 секунды
Цитата(LSD @  25.1.2012,  14:58 Найти цитируемый пост)
И кстати, к этому вашему VCL эмбакадабра прикрутила MVC, или как г0внокодили так и г0внокодите? 

И без MVC хорошо.

Цитата(yura13 @  25.1.2012,  20:19 Найти цитируемый пост)
Производительность в результате имеем, по оценке независимых экспертов, больше чем в 10(!) раз превышающую аналогичные решения на java и .net

Ну да, а как по другому. Не надо сравнивать какие-то там циклы и куски кода. Нужно сравнивать производительность приложения в целом. И программы на дельфи весьма шустренькие smile

У каждого языка есть своя ниша, так сказать.

Добавлено через 13 минут и 4 секунды
Цитата(newbee @  26.1.2012,  12:48 Найти цитируемый пост)
Пойду напишу что-нибудь на XUL.

угу smile 
http://www.msbtree.ru/

Автор: Stolzen 30.1.2012, 12:56
Цитата(Akella @  30.1.2012,  02:37 Найти цитируемый пост)
Indy, intraweb, TMS Intraweb, spring, Responsive Software Framework, Raudus, uniGUI, DelphiOnRails, ExtPascal, WebHub, xxm, RTC, G Framework, iwelite, ExpressWeb.

 smile 
DephiOnRails? 
Да вы знаете толк в извращениях  smile 

Какую-нибудь базу за пару дней наваять - Delphi для этого отлично подходит. Что-то большее... На любителя. 

Автор: Данкинг 30.1.2012, 13:47
Цитата(Stolzen @  30.1.2012,  13:56 Найти цитируемый пост)
Какую-нибудь базу за пару дней наваять - Delphi для этого отлично подходит. 

Базу на Дельфи наваять? smile 

Автор: Stolzen 30.1.2012, 13:50
Накидать по формочке элементов, да связать их с СУБД. За пару дней можно управиться, если сложной логики не нужно. 

Автор: LSD 30.1.2012, 14:00
Цитата(yura13 @  27.1.2012,  17:09 Найти цитируемый пост)
У нас тут не Москва, наша компания находится в одной из самых высокотехнологичных стран мира, и у нас так не принято.

Ну все, мы все попадали со стульев, от крутизны вашей компании smile 



Цитата(yura13 @  27.1.2012,  17:09 Найти цитируемый пост)
Я ещё в студенческие годы два проекта на яве педалил.

Какой опотный разаботчик  smile 



Цитата(yura13 @  27.1.2012,  17:09 Найти цитируемый пост)
Я же говорил, наше решение не универсальное - а специальное.

Я говорю, что если эти ваши "специалисты", которые работают "в одной из самых высокотехнологичных стран мира" заявляют:
Цитата(yura13 @  26.1.2012,  20:08 Найти цитируемый пост)
А теперь скажите, что тут делать хвалёной яве? Да она сразу ложится, даже и не дёргается, проверяли.

То это говорит исключительно за радиус кривизны рук этих "специалистов".



Цитата(Akella @  30.1.2012,  02:37 Найти цитируемый пост)
Indy, intraweb, TMS Intraweb, spring, Responsive Software Framework, Raudus, uniGUI, DelphiOnRails, ExtPascal, WebHub, xxm, RTC, G Framework, iwelite, ExpressWeb

Первый же пример в точку:
Цитата
The Indy Project is an Open Source group that supports several projects that grew out of the original Indy.Sockets (VCL) project team.

Нужно веб приложение? Вот тебе сокеты, сиди пиши smile 



Цитата(Akella @  30.1.2012,  02:37 Найти цитируемый пост)
И без MVC хорошо.

Я и говорю: дельфи вей smile 
Дельфи провоцирует разработчиков разводить ### в коде. Щелкнул мышкой на кнопку и получил свой Button111OnClick, и прям там и накодил логику. А когда потом надо будет разделить бизнес логику и слой презентации, хрен это у тебя получится.

Автор: Akella 30.1.2012, 14:29
Цитата(LSD @  30.1.2012,  14:00 Найти цитируемый пост)
Нужно веб приложение? Вот тебе сокеты, сиди пиши  

Ну во первых дельфи не направлен на написание веб-приложение, тем не менее позволяет.

Вот, например, на TMS IntraWeb можно писать:
http://www.tmssoftware.com/site/products.asp?t=iw
http://www.tmssoftware.com/site/tmsiwpro.asp


TMS IntraWeb Charts 
TMS IntraWeb Component Pack Pro Script Edition 
TMS IntraWeb Component Pack Pro 
TMS IntraWeb Component Studio 
TMS IntraWeb HTML5 Controls Pack 
TMS IntraWeb Planner 
TMS IntraWeb Query Builder 
TMS IntraWeb Security System 
TMS IntraWeb iPhone controls pack 


Добавлено через 1 минуту и 1 секунду
Цитата(LSD @  30.1.2012,  14:00 Найти цитируемый пост)
Дельфи провоцирует разработчиков разводить ### в коде. Щелкнул мышкой на кнопку и получил свой Button111OnClick, и прям там и накодил логику. 

Кого он провоцирует, это их проблемы.

Добавлено через 7 минут и 2 секунды
Мне интересно, какая будет будет производительно у программ с использованием FireMonkey.

Автор: LSD 30.1.2012, 14:44
Цитата(Akella @  30.1.2012,  15:29 Найти цитируемый пост)
Ну во первых дельфи не направлен на написание веб-приложение

А вот "гуру" считает что еще как направлен.


Цитата(Akella @  30.1.2012,  15:29 Найти цитируемый пост)
Кого он провоцирует, это их проблемы.

Вот именно из-за таких "проблемных", дельфи и не любят. На одного Ghisler десяток таких г0внокодеров.

Добавлено через 35 секунд
И кстати, а чем борланд писали свой интербейз?

Автор: Akella 30.1.2012, 15:45
Цитата(LSD @  25.1.2012,  14:58 Найти цитируемый пост)
И кстати, к этому вашему VCL эмбакадабра прикрутила MVC, или как г0внокодили так и г0внокодите? 


Без понятия. Я не вникал в тонкости MVC.

Тут что-то нашёл: http://pyatochkin.blogspot.com/2010/10/delphi-mvc-pattern.html и даже с примером.

Добавлено через 5 минут и 45 секунд
Цитата(LSD @  30.1.2012,  14:44 Найти цитируемый пост)
А вот "гуру" считает что еще как направлен.

и что с того  smile 

Автор: Stolzen 30.1.2012, 16:21
Цитата(LSD @  30.1.2012,  15:44 Найти цитируемый пост)
И кстати, а чем борланд писали свой интербейз? 

На делфи, наверное. Они же и делфи писали на делфи.

Добавлено через 1 минуту и 13 секунд
А хотя он древний очень. Наверное тогда на крестах.

Автор: tzirechnoy 30.1.2012, 18:49
Цитата
А хотя он древний очень. Наверное тогда на крестах.


Он настолько древний, что по тем временам этот препроцэссор для С никому не был интересен.

Автор: yura13 30.1.2012, 23:57
Цитата(kin @  27.1.2012,  19:50 Найти цитируемый пост)
Привет! Вы, конечно, извините, что вмешиваюсь в ваш, высокоинтеллектуальный спор, от которого несомненно зависит будущее этого мира, но ощущение того, что вы, yura13, то ли рекламируете вашу фирму, то ли ее продукцию, с увеличением количества страниц этого поста становиться  все сильнее и сильнее... В общем, как в анекдоте"...ты тоже из далека начал..."

Вы ошиблись
Цитата(Stolzen @  30.1.2012,  13:50 Найти цитируемый пост)
За пару дней можно управиться, если сложной логики не нужно.  

На Делфи можно писать логику любой сложности, это вам не яваскрипт.
Цитата(LSD @  30.1.2012,  14:00 Найти цитируемый пост)
Какой опотный разаботчик

Я не говорю что опытный. Но хотя я на яве и не пишу, но регулярно сталкиваюсь. Можно подумать у вас есть приличный опыт разработки на Делфи?
Цитата(LSD @  30.1.2012,  14:00 Найти цитируемый пост)
То это говорит исключительно за радиус кривизны рук этих "специалистов".

Если в явы нет производительности - значит разработчики криворукие. Железная логика smile 
Цитата(LSD @  30.1.2012,  14:00 Найти цитируемый пост)
Дельфи провоцирует разработчиков разводить ### в коде. Щелкнул мышкой на кнопку и получил свой Button111OnClick, и прям там и накодил логику. А когда потом надо будет разделить бизнес логику и слой презентации, хрен это у тебя получится. 

Некоторые люди, наивно полагают что с MVC нельзя г0внокодить. Наверное вы не видели как люди пишут вьюхи, генерирующие для себя контроллеры. В любом случае MVC от г0внокодинга не спасает. Да и простор для г0внокодинга за пределами MVC хватает.
И ещё, есть люди, которые наивно полагают, что используя MVC они будут меньше кода писать smile . Потом они становятся более опытны, и уже начинают наивно полагать что их приложения будет проще поддерживать и развивать smile . Потом, они становятся ещё опытнее и думают что их приложения будет проще тестировать, если они на MVC. И когда они окончательно растеряли свои иллюзии, они начинают понимать, что MVC их проблем не решит smile 
А вот полностью логику приложения писать в обработчиках - это уже надо руки отрывать. Пишутся классы, содержащие логику, а в обработчиках они создаются и вызывают какие-то свои методы, это нормально smile 
Цитата(LSD @  30.1.2012,  14:44 Найти цитируемый пост)
А вот "гуру" считает что еще как направлен.

За "гуру" спасибо, польщён. Вот только не припомню где писал что направлен. Я писал что большая компания может себе позволить и будет иметь с этого профит. Однако, для команды < 30 человек, скорее всего, найдутся более удобные технологии.
Цитата(LSD @  30.1.2012,  14:44 Найти цитируемый пост)
На одного Ghisler десяток таких г0внокодеров.

Что тогда про пхп говорить?

Автор: 502 31.1.2012, 10:09
Цитата(yura13 @  30.1.2012,  23:57 Найти цитируемый пост)
Что тогда про пхп говорить?

и чо? если пхп плохой ЯП то дэлфай автоматически становится хорошим, как был УГ так и остается smile 

Автор: LSD 31.1.2012, 13:40
Цитата(LSD @  30.1.2012,  15:44 Найти цитируемый пост)
И кстати, а чем борланд писали свой интербейз?

Его даже не борланд начал разрабатывать.


Цитата(yura13 @  31.1.2012,  00:57 Найти цитируемый пост)
Я не говорю что опытный. Но хотя я на яве и не пишу, но регулярно сталкиваюсь. Можно подумать у вас есть приличный опыт разработки на Делфи?

Опыт небольшой, но я и не говори про ограничения дельфи как ЯП. Я говорил про ущербность велосипедов.


Цитата(yura13 @  31.1.2012,  00:57 Найти цитируемый пост)
Если в явы нет производительности - значит разработчики криворукие. Железная логика

Если разработчик говорит, что с помощью ХХХ задачу не реализовать он на 100% в этом уверен, а при этом существуют примеры реализации задачи с помощью ХХХ. То из этого следует вывод, или разработчик по глупости делает такие заявления, или сознательно обманывает заказчика. Какой вариант был в вашем случае - тебе виднее.


Цитата(yura13 @  31.1.2012,  00:57 Найти цитируемый пост)
Некоторые люди, наивно полагают что с MVC нельзя г0внокодить. Наверное вы не видели как люди пишут вьюхи, генерирующие для себя контроллеры. В любом случае MVC от г0внокодинга не спасает. Да и простор для г0внокодинга за пределами MVC хватает.
И ещё, есть люди, которые наивно полагают, что используя MVC они будут меньше кода писать  . Потом они становятся более опытны, и уже начинают наивно полагать что их приложения будет проще поддерживать и развивать  . Потом, они становятся ещё опытнее и думают что их приложения будет проще тестировать, если они на MVC. И когда они окончательно растеряли свои иллюзии, они начинают понимать, что MVC их проблем не решит

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


Цитата(yura13 @  31.1.2012,  00:57 Найти цитируемый пост)
За "гуру" спасибо, польщён.

Цитата(yura13 @  27.1.2012,  17:09 Найти цитируемый пост)
Учись различать сарказм smile 



Цитата(yura13 @  31.1.2012,  00:57 Найти цитируемый пост)
Что тогда про пхп говорить?

А! Так вот на кого дельфи равняется, на похапе smile Это многое объясняет smile 

Автор: LSD 31.1.2012, 17:10
http://habrahabr.ru/blogs/compilers/137336/
Я прям даже не знаю как на это реагировать smile 

Автор: 502 31.1.2012, 17:26
Цитата(LSD @  31.1.2012,  17:10 Найти цитируемый пост)
Я прям даже не знаю как на это реагировать

бросай java`u

Автор: LSD 31.1.2012, 18:07
Цитата(502 @  31.1.2012,  18:26 Найти цитируемый пост)
бросай java`u

И куда бежать дельфи или JS?

Автор: 502 31.1.2012, 18:11
Цитата(LSD @  31.1.2012,  18:07 Найти цитируемый пост)
И куда бежать дельфи или JS? 

ну так все, js уже нинужен
Цитата(LSD @  31.1.2012,  17:10 Найти цитируемый пост)
Транслятор из Delphi в javascript

 smile 

Автор: kemiisto 31.1.2012, 18:36
Цитата(LSD @  31.1.2012,  16:10 Найти цитируемый пост)
Я прям даже не знаю как на это реагировать

Тут не исправить уже ничего. Господь, жги!

Автор: newbee 31.1.2012, 19:22
Цитата(LSD @  31.1.2012,  19:07 Найти цитируемый пост)
И куда бежать дельфи или JS? 
FORTRAN!

Автор: LSD 1.2.2012, 12:29
Цитата(newbee @  31.1.2012,  20:22 Найти цитируемый пост)
FORTRAN!

Сразу вспоминается байка про цикл в программе управления космическим кораблем. Когда по ошибке вместо:
Код

      do 10 i = 1,10
         ...
  10  continue

написал:
Код

      do 10 i = 1.10
         ...
  10  continue

и аппарат не вышел на орбиту (это не про фобос-грусть если чо smile ).

Автор: yura13 1.2.2012, 13:44
Цитата(LSD @  31.1.2012,  13:40 Найти цитируемый пост)
сли разработчик говорит, что с помощью ХХХ задачу не реализовать он на 100% в этом уверен, а при этом существуют примеры реализации задачи с помощью ХХХ. То из этого следует вывод, или разработчик по глупости делает такие заявления, или сознательно обманывает заказчика. Какой вариант был в вашем случае - тебе виднее.

Вопрос был не о возможности сделать, а о производительности.

Цитата(LSD @  31.1.2012,  13:40 Найти цитируемый пост)
Некоторые люди наивно полагают, что читать что пишет оппонент излишне, достаточно приписать ему свои фантазии.

Ты не использование MVC приравниваешь в г0внокодингу, я тебе и говорю, что MVC не панацея, и его применение с г0внокодера разработчика не сделает.

Цитата(LSD @  31.1.2012,  13:40 Найти цитируемый пост)
Учись различать сарказм 

Это и был сарказм. Это был саркастическая реакция на твой саркастический комплимент smile 

Цитата(LSD @  31.1.2012,  17:10 Найти цитируемый пост)
Я прям даже не знаю как на это реагировать   

Можешь так как на GWT. Люди давно пишут трансляторы в JS с разных ЯП, так как на JS писать ни один здравый разработчик не хочет. 

Автор: Zloxa 1.2.2012, 15:43
Цитата(LSD @  30.1.2012,  14:00 Найти цитируемый пост)
Нужно веб приложение? Вот тебе сокеты, сиди пиши

Потребовалось жавой мне с FTP выбрать файлы по маске и вдуть их.
Гуглил, гуглил - http://www.nsftools.com/tips/JavaFtp.htm  smile 
Цитата

Option 1: Use a URL string 
This method can work if:
 - the site supports it
 - you know exactly what file you need and where it is
 - you don't have to do anything other than just download a file

Option 2: Write your own FTP class 

Option 3: Use the sun.net.ftp class 
Despite the fact that this class is officially undocumented and unsupported, it appears to be widely used.


:facepalm

Автор: LSD 1.2.2012, 18:09
Цитата(yura13 @  1.2.2012,  14:44 Найти цитируемый пост)
Вопрос был не о возможности сделать, а о производительности.

А я за производительность и писал smile Нагрузка на тот же твиттер будет поболее чем на ваши серваки.


Цитата(yura13 @  1.2.2012,  14:44 Найти цитируемый пост)
Ты не использование MVC приравниваешь в г0внокодингу, я тебе и говорю, что MVC не панацея, и его применение с г0внокодера разработчика не сделает.

Я приравниваю не использование общепринятых шаблонов проектирования в базовой библиотеке языка, как дурной пример для новичков => провоцирование г0внокодинга.


Цитата(yura13 @  1.2.2012,  14:44 Найти цитируемый пост)
Люди давно пишут трансляторы в JS с разных ЯП, так как на JS писать ни один здравый разработчик не хочет.

Так и на дельфи нормальный разработчик писать не хочет smile 





Цитата(Zloxa @  1.2.2012,  16:43 Найти цитируемый пост)
Потребовалось жавой мне с FTP выбрать файлы по маске и вдуть их.
Гуглил, гуглил - нагуглил

Чо-то ты фигню какую-то нагуглил. http://java-source.net/open-source/network-clients
Что у тебя за запрос то был, что выдал такую фигню?

Автор: Zloxa 1.2.2012, 19:09
Цитата(LSD @  1.2.2012,  18:09 Найти цитируемый пост)
 Open Source Network Clients in Java

Выставка велосипедов? smile

Добавлено через 5 минут и 26 секунд
Цитата(LSD @  1.2.2012,  18:09 Найти цитируемый пост)
фигню

Нифига не фигня. Там четвертым пунктом предлагают Apache Commons Net™ library.  smile 


Автор: yura13 2.2.2012, 13:11
Цитата(LSD @  1.2.2012,  18:09 Найти цитируемый пост)
А я за производительность и писал  Нагрузка на тот же твиттер будет поболее чем на ваши серваки.

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

Цитата(LSD @  1.2.2012,  18:09 Найти цитируемый пост)
Я приравниваю не использование общепринятых шаблонов проектирования в базовой библиотеке языка, как дурной пример для новичков => провоцирование г0внокодинга.

Делфи имеет весьма солидный возраст, и модификация базовой библиотеки языка (VCL) это очень ответственная задача. Может в новых версиях с FireMonkey уже есть поддержка. Хотя можно начать с того, что Делфи всё же не ориентирован на веб, а на десктопе MVC/MVP как собаке 5 лапа.

Цитата(LSD @  1.2.2012,  18:09 Найти цитируемый пост)
Так и на дельфи нормальный разработчик писать не хочет

Ну если нормальный - это тот, кому ораклы с майкрософтом мозг промыли, тогда да smile 

Цитата(Zloxa @  1.2.2012,  19:09 Найти цитируемый пост)
Нифига не фигня. Там четвертым пунктом предлагают Apache Commons Net™ library.

Во-во. Только и занимаются тем что друг у друга передирают. Я уже умолчу как майкрософт делфи передрал с свой .нет

Цитата(LSD @  1.2.2012,  18:09 Найти цитируемый пост)
Чо-то ты фигню какую-то нагуглил. Open Source Network Clients in Java

Я вот скачал по этой ссылке ФТП клиент на яве, jftp. Запустил его и задумался, начнут ли когда-то на яве делать нормальный, человеческий гуй???!!!

Автор: Stolzen 2.2.2012, 13:20
Цитата(yura13 @  2.2.2012,  14:11 Найти цитируемый пост)
а на десктопе MVC/MVP как собаке 5 лапа.

Да ладно 

Автор: 502 2.2.2012, 13:21
Цитата(yura13 @  2.2.2012,  13:11 Найти цитируемый пост)
И первая из них та, что если он был бы написан на делфи, такие как ты им бы принципиально не пользовались бы. 

что за чушь, мне все ровно на чем написан  smile 
skype`ом же пользуюсь

Цитата(yura13 @  2.2.2012,  13:11 Найти цитируемый пост)
Я уже умолчу как майкрософт делфи передрал с свой .нет

ЯП vs платформа  smile 




Автор: LSD 2.2.2012, 15:09
Цитата(Zloxa @  1.2.2012,  20:09 Найти цитируемый пост)
Выставка велосипедов?

Публичные библиотеки не могут быть велосипедами smile 


Цитата(Zloxa @  1.2.2012,  20:09 Найти цитируемый пост)
Нифига не фигня. Там четвертым пунктом предлагают Apache Commons Net™ library.

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


Цитата(yura13 @  2.2.2012,  14:11 Найти цитируемый пост)
И первая из них та, что если он был бы написан на делфи, такие как ты им бы принципиально не пользовались бы.

Отсыпь smile 


Цитата(yura13 @  2.2.2012,  14:11 Найти цитируемый пост)
А всё потому, что евангелисты из ораклу не зря свой хлеб едят. Промылили всем мозг уже этой явой, пока на яве не напишешь сообщества не поддержат. А нагрузку твиттеры вполне себе могут решить количеством серверов.

Я же говорю:
Цитата(LSD @  27.1.2012,  16:02 Найти цитируемый пост)
Ты рассуждаешь про вещи в которых не разбираешься.

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


Цитата(yura13 @  2.2.2012,  14:11 Найти цитируемый пост)
Мы же не понимаем, зачем покупать лишнее железо и нанимать людей, которые будут всё это обслуживать.

Сервер стоит как месячная зарплата хорошего разработчика (или дельфисты рабатают за еду? smile ). Проще, дешевле и перспективнее иметь хорошо масштабируемое приложение, чем заниматься микро оптимизацией, пытаясь получить 5% ускорение.


Цитата(yura13 @  2.2.2012,  14:11 Найти цитируемый пост)
кому ораклы с майкрософтом мозг промыли, тогда да

И это говорит человек у которого сервера под виндой работают smile 

Автор: Zloxa 2.2.2012, 16:52
Цитата(LSD @  2.2.2012,  15:09 Найти цитируемый пост)
О котором ты скромно умолчал (наверное чтобы фейспалм получился убедительней). Хотя одно то, что они рекомендуют писать свой велосипед при наличии хороших готовых решений, уже многое говорит про этих ребят.

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

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

Цитата(LSD @  2.2.2012,  15:09 Найти цитируемый пост)
Публичные библиотеки не могут быть велосипедами  

НЕ совсем понял. Если я предоставлю публичный доступ к своему велосипеду, он, что, в феррари превратится чтоле?  smile 

Цитата(Stolzen @  2.2.2012,  13:20 Найти цитируемый пост)
Да ладно  

Для меня тоже крайняя необходимость применения паттерна MVC для десктопа - сомнительна. Куда убедительнее было бы если бы вместо "да ладно" был бы срыв покровов или же феерическая расстановка точек какая-никакая. Для многих моих знакомых преход с делфи на свинг(он же реализует МВЦ, так ведь?) добавил много рутины, не предоставив при том очевидного профита.

Цитата(LSD @  1.2.2012,  18:09 Найти цитируемый пост)
провоцирование г0внокодинга.

В жавьей среде тоже не мало г0внокодеров. Отличие жавьего г0внокода от делфевого заключается, мне думается, лишь во впечатлениях, полученных в резльтате его производства. Делфевый г0внокод производится легко и не принужденно. А жавий средством неимоверных усилий и потуг, катарсис в результате - да, получается улетный.  smile 

Автор: lukas 2.2.2012, 17:51
Ну кстати говоря Java не так уж плох (как язык), попробовал я недавно один веб-фреймворк по типу Django + Grails, называется Play! (http://www.playframework.org/), очень даже мощно и нет никаких сервелетов, компонентов и прочего нагромождения Java.

Автор: Stolzen 3.2.2012, 09:04
Цитата(lukas @  2.2.2012,  18:51 Найти цитируемый пост)
и нет никаких сервелетов, компонентов и прочего нагромождения Java.

Если вы не видите суслика, это еще не значит, что его нет. 

Автор: LSD 3.2.2012, 15:10
Цитата(Zloxa @  2.2.2012,  17:52 Найти цитируемый пост)
Но ход мысли, мне кажется, вполне правильным.
Сначала убедиться что типовое решение платформы не подходит, следом оценить  трудозатраты по самостоятельной реализации необходимого функционала, следом поискать решение от вендора платформы, лишь затем искать решение сторонних производителей.

Категорически не согласен:
1. Встроенное решение платформы.
2. Сторонняя библиотека.
3. Свой велосипед.


Цитата(Zloxa @  2.2.2012,  17:52 Найти цитируемый пост)
НЕ совсем понял. Если я предоставлю публичный доступ к своему велосипеду, он, что, в феррари превратится чтоле?

Я тебе в http://forum.vingrad.ru/forum/topic-165364.html отвечу smile 


Цитата(Zloxa @  2.2.2012,  17:52 Найти цитируемый пост)
В жавьей среде тоже не мало г0внокодеров.

Их везде полно. Вопрос в том, что делается для того чтобы их было поменьше.


Цитата(Zloxa @  2.2.2012,  17:52 Найти цитируемый пост)
Отличие жавьего г0внокода от делфевого заключается, мне думается, лишь во впечатлениях, полученных в резльтате его производства.

Традиционный вопрос: сколько у тебя аккопыта разработки на Java? smile

Автор: Zloxa 3.2.2012, 15:42
Цитата(LSD @  3.2.2012,  15:10 Найти цитируемый пост)
Традиционный вопрос: сколько у тебя опыта разработки на Java?

Нисколько.
Любые попытки приобрести этот опыт ввергают меня в полное, кромешное уныние. smile 

Автор: lukas 3.2.2012, 16:27
Цитата(Zloxa @  3.2.2012,  15:42 Найти цитируемый пост)
Нисколько.
Любые попытки приобрести этот опыт ввергают меня в полное, кромешное уныние. smile 


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

Автор: yura13 3.2.2012, 18:50
Цитата(Zloxa @  3.2.2012,  15:42 Найти цитируемый пост)
Нисколько.
Любые попытки приобрести этот опыт ввергают меня в полное, кромешное уныние.   

Опытному разработчику с Делфи соскочить трудно, ему нужно видеть явный профит от перехода. В моём случае его не видно. Может, если бы я был одиноким фрилансером, и делал проекты для веб, то может бы и увидел. Но даже для веб в делфи есть решения, коллега выше приводил. Другое дело что заказов не будет, но причину я пояснил, евангелисты свой хлеб едят не зря.

Цитата(Zloxa @  2.2.2012,  16:52 Найти цитируемый пост)
Для меня тоже крайняя необходимость применения паттерна MVC для десктопа - сомнительна. Куда убедительнее было бы если бы вместо "да ладно" был бы срыв покровов или же феерическая расстановка точек какая-никакая. Для многих моих знакомых преход с делфи на свинг(он же реализует МВЦ, так ведь?) добавил много рутины, не предоставив при том очевидного профита.

В жавистов бытует мнение что гуй должен быть построен с кода, вот они и цепляются за всякие MVC/MVP. Хотя весь мир давно понял, что декоративный лучше.
Если нужно приложение, в которого 100500 экранов + свистелки, перделки, дрочилки, плевалки, профит от MVP скорее всего будет. Если же вам всего лишь иногда скрыть некоторые контролы, MVP напрасная трата времени.

Цитата(LSD @  2.2.2012,  15:09 Найти цитируемый пост)
Ты хоть википедию открой, когда твиттер появился, на чем он вначале был написан, на чем сейчас. Когда в конце концов оракл купил сан. 

Я поверил тебе на слово, что он был написан на яве. То что он переехал с руби на яву и его производительность выросла, меня не удивляет. Но на Делфи можно добиться ещё большего.

Цитата(LSD @  2.2.2012,  15:09 Найти цитируемый пост)
Сервер стоит как месячная зарплата хорошего разработчика (или дельфисты рабатают за еду?  ). Проще, дешевле и перспективнее иметь хорошо масштабируемое приложение, чем заниматься микро оптимизацией, пытаясь получить 5% ускорение.

Если бы 5%. У нас другие проценты smile 
Не знаю сколько там у вас сервера стоят с колько получает разработчик, но у нас сервер(железо + софт) строит в разы меньше чем месячная зп джуниора. А вот хороший админ стоит дороже чем средний разработчик. В общем вопрос не идёт про один сервер а о сотнях а может и тысячах.

Цитата(LSD @  2.2.2012,  15:09 Найти цитируемый пост)
И это говорит человек у которого сервера под виндой работают   

Это скоро закончится. Вопрос в том, что пока другой возможности нет.

Автор: Stolzen 3.2.2012, 18:55
Цитата(Zloxa @  2.2.2012,  17:52 Найти цитируемый пост)
Для меня тоже крайняя необходимость применения паттерна MVC для десктопа - сомнительна. Куда убедительнее было бы если бы вместо "да ладно" был бы срыв покровов или же феерическая расстановка точек какая-никакая. Для многих моих знакомых преход с делфи на свинг(он же реализует МВЦ, так ведь?) добавил много рутины, не предоставив при том очевидного профита.

А тестируете вы как? Ручками тыкаете? 
И свинг не реализует MVC (ну за исключением некоторых компонентов), на нем можно делать точно такие же волшебные кнопки, как и на делфях. 

Автор: LSD 6.2.2012, 16:07
Цитата(Zloxa @  3.2.2012,  16:42 Найти цитируемый пост)
Любые попытки приобрести этот опыт ввергают меня в полное, кромешное уныние.

Нечто подобное я чувствую, когда приходится писать на PL/SQL smile 


Цитата(yura13 @  3.2.2012,  19:50 Найти цитируемый пост)
Но на Делфи можно добиться ещё большего.

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



Цитата(yura13 @  3.2.2012,  19:50 Найти цитируемый пост)
А вот хороший админ стоит дороже чем средний разработчик. В общем вопрос не идёт про один сервер а о сотнях а может и тысячах.

Например датацентр эпл http://www.washingtonpost.com/business/economy/cloud-centers-bring-high-tech-flash-but-not-many-jobs-to-beaten-down-towns/2011/11/08/gIQAccTQtN_story.html включая весь обслуживающий персонал и посменную работу. Так что или у вас админы такие, или администрирование виндовых серверов требует экстра затрат.



Цитата(yura13 @  3.2.2012,  19:50 Найти цитируемый пост)
Это скоро закончится. Вопрос в том, что пока другой возможности нет.

В смысле закончится? Дельфи умрет окончательно? smile 

Автор: Zloxa 6.2.2012, 19:58
Цитата(LSD @  6.2.2012,  16:07 Найти цитируемый пост)
Нечто подобное я чувствую, когда приходится писать на PL/SQL

Ты не поверишь, но я тоже. Определенно я  Формсам предпочту свинги. Потому что если жава это просто не удобна и рутинна, то Формсы это просто наиживейшее воплощение пи#деца.


Цитата(LSD @  1.2.2012,  18:09 Найти цитируемый пост)
провоцирование г0внокодинга.

Пример вот под руку подвернулся.
Тривиальненькая задачка - В аппликушке продернуть процедурки из PL/SQL пакетика. Соответственно, его(пакетик) не плохо было бы врапнуть. Проникнувшись презрением старших товарищей к всяким велосипедам, стал гуглить, искать готовые решения. Нашел. JPublisher. Врапнул.
Результат врапа процедуры, которая принимает в качестве параметра абонента, в результат отдает номер посылки и курсор с данными:
Код

  public void getPackData (
    oracle.sql.NUMBER P_ABONENT,
    oracle.sql.NUMBER O_POST_NUM[],
    java.sql.ResultSet O_POST_DATA[])
  throws java.sql.SQLException
{
...
   // retrieve OUT parameters
   O_POST_NUM[0] = (oracle.sql.NUMBER)__sJT_st.getNUMBER(2);
   O_POST_DATA[0] = (java.sql.ResultSet)__sJT_st.getCursor(3);
...

Так то я понимаю, что в жаве нет out параметров -  дело житейское, наверное ведь из благих побуждений так было делано, но, простите, к чему, в результате это провоцирует? smile 

И вот что теперь делать? Смириться? Переписать давно работающую серверную часть? Писать собственный враппер лапами? Писать врапер над врапером?
Как тут не впасть в уныние? smile 

Автор: lukas 6.2.2012, 20:56
Да я тоже не могу представить себе - как совместить MVC и GUI. Может есть удачные попытки?

Цитата(Zloxa @  6.2.2012,  19:58 Найти цитируемый пост)
Так то я понимаю, что в жаве нет out параметров 


Представляешь, в JavaScript их тоже нет. Решается относительно через то, что в Java и так объекты передаются по ссылке, если передаешь примитивный тип, то оборачивай его в объект. Например int -> new Integer(<value>)

Автор: LSD 7.2.2012, 14:11
Цитата(Zloxa @  6.2.2012,  20:58 Найти цитируемый пост)
Так то я понимаю, что в жаве нет out параметров -  дело житейское, наверное ведь из благих побуждений так было делано, но, простите, к чему, в результате это провоцирует?

В данном случае хорошее решение, это создать комплексный объект с результатами выполнения процедуры и возвращать его. Менее красивое но идеологически более близкое к out параметрам это AtomicReference.

Вообще сама концепция out параметров это нечто очень странное, вроде это параметр функции, но на деле это ее результат. В PL/SQL это скорее костыли, чтобы не пугать DBA созданием объектов.

Автор: Zloxa 7.2.2012, 16:03
Цитата(LSD @  7.2.2012,  14:11 Найти цитируемый пост)
В данном случае хорошее решение, это создать комплексный объект с результатами выполнения процедуры и возвращать его.

Увы, сие есть суть "написать собственный велосипед" vs "воспользоватсья сторонней разарботкой". ((( Но это правда - да, для другой темы, на которую ты тут ссылался.

JPublisher вроде как предлагает http://docs.oracle.com/cd/E11882_01/java.112/e10587/genclint.htm#JJPUB24140 возвращения out параметров, я еще не до конца с этим разобрался, но каждый из них, правда, уже оставил ощущение того самого, к чему, по твоему мнению, провоцирует делфи.

Однако ж самое печальное в том, что курсор, возвращенный этим врапером, после выхода из процедуры, оказывается закрыт, и применение оставшихся двух методик, вероятно, приведет к тому же самому  smile 

Увы, по подобному сценарию развивается почти все мое знакомство с жавой. 
1) О! - есть офигенная фича, аккурат под задачу, вдохновенно пытаемся применить
2) Бля, идея хороша, но реализация ограничена. Только для сферических коней в вакууме, в реалии - нонюзефул!
3) Боремся с разочарованием, сожалеем о потраченном времени
4) Уныло велосипедируем, мимоходом г0внокодя.

Цитата(LSD @  7.2.2012,  14:11 Найти цитируемый пост)
В PL/SQL это скорее костыли

Аут параметры реализованы не только в PL/SQL. И да, я с тобой согласен, что, возможно, их использование - не верх эстетики. Но погуглив я обнаружил, что в жаве существуют вполне устоявшиеся методики обхода этого ограничения платформы. Т.е. ограничение призванное упорядочить код провоцирует пораждение г0внокода.

К чему я это все пишу? Прежде всего к тому, что то, чем ты объяснял не любовь к делфи, в не малой степени присуще и жаве. Возможно даже в большей степени - попытаюсь объяснить почему. 
1) Г0внокод в большинстве случаев образуется в результате не понимания концептуальных основ. В современной жаве переплетаются множество концепций, и все они, с моей точки зрения, далеко не просты для понимания.
2) Г0внокод в ряде случаев возникает на стыке технологий. В самой жаве используется множество технологий, и не все друг с другом согласуются. Там где плохо стыкуется, образуется множество кастылей и заплаток
3) Зачастую г0внокод появляется в виду наличия ограничений платформы. Да, многие ее ограничения призваны уберечь разраба от производства г0внокода, но порой, эти ограничения обходить приходится.

Автор: LSD 7.2.2012, 19:14
Цитата(Zloxa @  7.2.2012,  17:03 Найти цитируемый пост)
Увы, сие есть суть "написать собственный велосипед" vs "воспользоватсья сторонней разарботкой".

"Велосипед vs сторонняя либа" это когда речь идет о неком универсальном решении, а не врапер над конкретной процедурой в твоей конкретной базе. Или ты пытаешься реализовать свой JPublisher с блекджеком и шлюхами? smile 



Цитата(Zloxa @  7.2.2012,  17:03 Найти цитируемый пост)
JPublisher вроде как предлагает три способа возвращения out параметров, я еще не до конца с этим разобрался, но каждый из них, правда, уже оставил ощущение того самого, к чему, по твоему мнению, провоцирует делфи.

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

Ребята попытались сделать универсальный код, так чтобы юзеру не пришлось самому ничего писать, но получилось хреново. http://static.springsource.org/spring/docs/current/spring-framework-reference/html/jdbc.html#jdbc-simple-jdbc-call-1 хорошая реализация от Спринга. Они не стали пытаться автоматически генерировать объект и автоматически заполнять его данными. Просто предоставили удобный способ сделать такой враппер.



Цитата(Zloxa @  7.2.2012,  17:03 Найти цитируемый пост)
К чему я это все пишу? Прежде всего к тому, что то, чем ты объяснял не любовь к делфи, в не малой степени присуще и жаве. Возможно даже в большей степени - попытаюсь объяснить почему. 
...

1) Согласен.
2) Согласен частично. Если две популярные технологии плохо стыкуются между собой, то довольно скоро появляются библиотеки/тулы для решения этой проблемы.
3) В подавляющем большинстве случаев это говорит, или несоответствии целей и средств, или издержках legacy кода. Не могу припомнить таких проблем во вновь проектируемых системах.

Автор: Zloxa 7.2.2012, 19:36
Цитата(LSD @  7.2.2012,  19:14 Найти цитируемый пост)
"Велосипед vs сторонняя либа" это когда речь идет о неком универсальном решении, а не врапер над конкретной процедурой в твоей конкретной базе. 

Т.е. врапать ручками десятки объектов и пакетов это не велосипедировать?
Или врапать десятки объектов и пакетов универсальным решением, но пяток-другой перехирачивать кастомом это не г0внокодинг?

Цитата(LSD @  7.2.2012,  19:14 Найти цитируемый пост)
 Вот хорошая реализация от Спринга.

Спасибо большое, поковыряю. smile 

Автор: Zloxa 8.2.2012, 10:51
Цитата(LSD @  7.2.2012,  19:14 Найти цитируемый пост)
Вот хорошая реализация от Спринга.

Но это же совсем не то  smile
Да, это несколько более няшно нежели создавать коллабл стайтмент и биндить параметры по индексу, но суть все равно - та же. Все равно что позднее связывание, если этот термин тут применим. При изменении спецификации вызываемой процедуры мы получим ошибку во время исполнения, а не во время билда проекта. Это же никуда не годная практика  smile 

Автор: Stolzen 8.2.2012, 11:22
Цитата(Zloxa @  7.2.2012,  20:36 Найти цитируемый пост)
Т.е. врапать ручками десятки объектов и пакетов это не велосипедировать?

Используйте тогда ОРО (ORM)

Автор: AndreyIQ 8.2.2012, 11:26
 smile  по моему содержание темы не соответствует названию smile 

Автор: AndreyIQ 8.2.2012, 12:15
Цитата(LSD @ 6.2.2012,  16:07)
В смысле закончится? Дельфи умрет окончательно? smile

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Автор: 502 8.2.2012, 14:05
Цитата(AndreyIQ @  8.2.2012,  12:15 Найти цитируемый пост)
Популярность Delphi растет

ага, программировать нам скоро на Logo  smile 

Автор: lukas 9.2.2012, 18:51
Цитата(AndreyIQ @  8.2.2012,  12:15 Найти цитируемый пост)
Популярность Delphi растет smile 


А С++ падает...  smile 

Автор: LSD 10.2.2012, 12:06
Цитата(Zloxa @  7.2.2012,  20:36 Найти цитируемый пост)
Т.е. врапать ручками десятки объектов и пакетов это не велосипедировать?

Выполнять руками большой объем работы который может быть автоматизирован это конечно г0внокодинг. Но тут надо понимать разницу между: простыми DTO генерируемыми JPublisher-ом и няшными самописными Business Objects, в которых все сделано по уму, инкапсуляция, целостность, бизнес логика и т.д. Перекладывать руками из процедуры в plain DTO смысла не много. А вот создавать Business Objects с которыми потом приложение может полноценно работать, это совсем другое.


Цитата(Zloxa @  7.2.2012,  20:36 Найти цитируемый пост)
Или врапать десятки объектов и пакетов универсальным решением, но пяток-другой перехирачивать кастомом это не г0внокодинг?

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


Цитата(Zloxa @  8.2.2012,  11:51 Найти цитируемый пост)
Да, это несколько более няшно нежели создавать коллабл стайтмент и биндить параметры по индексу, но суть все равно - та же. Все равно что позднее связывание, если этот термин тут применим. При изменении спецификации вызываемой процедуры мы получим ошибку во время исполнения, а не во время билда проекта. Это же никуда не годная практика

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

Автор: Zloxa 10.2.2012, 14:16
Цитата(LSD @  10.2.2012,  12:06 Найти цитируемый пост)
Удали из таблицы колонку получишь ошибку во время выполнения селекта. Ну научились же с этим как-то жить.

В этом, пожалуй, заключается одно из основных преимуществ реализации логики работы с данными на стороне СУБД. Изменил спецификацию таблицы, все связанные объекты ревалидирутся, ошибки всплывают сразу и без юнит тестов. Привыкнумши к этому однажды, необходимость отвыкать обратно при переходе на другую платформу, сложно воспринимать иначе как откровенный дауншифт.

Цитата(LSD @  10.2.2012,  12:06 Найти цитируемый пост)
иногда приходится изделие тщательно обработывать напильником

Я так полагаю подобный автоматически генерируемый код должен бы регенерироваться  билд сценарием. Согласись, это было бы очень здорово. При изменении схемы данных, при изменении спецификации серверных процедур, ошибки вылазили бы еще на этапе сборки. Допиливание напильником полностью нивелирует данный профит. Тут допустимо только наращивание костылей сверху. В моем случае так, увы, не получится - полученный врапер не работоспособен в принципе. Он закрывает стайтмент внутри функции, что влечет за собой и закрытие возваращаемого курсора. Сейчас хочу попробовать врапнуть PL/SQL пакет другим PL/SQL пакетом который будет иметь спецификацию, которую JPublisher сможет врапнуть корректно. Пока - не получается.

К слову, справедливости ради, надо отметить, что врапперы от http://www.allroundautomations.com/doapkg.html, таки тоже местами приходилось допиливать напильником. Помню, давно-давно, когда я еще писал на делфи, а не в песочницу, и о винграде вообще слыхом не слыхивал, в каком-то форуме, где обсуждались проблемы работы этого визарда, затесался какой-то жава девелолопер и с очень обидным пафосом и опломобм изрек бла-бла вроде "не стоит сравнивать велосипеды с иномарками, на велосипед, как ни крути, кондиционер не приспособишь". Сейчас, имея более близкое знакомство с технологиями Жавы нежели тогда, я бы уже не затаил бы обиды, а преисполнился бы иронией к автору этой сентеции.

Автор: Zloxa 10.2.2012, 14:54
Цитата(Stolzen @  8.2.2012,  11:22 Найти цитируемый пост)
Используйте тогда ОРО (ORM) 

Гугл http://www.google.ru/search?aq=f&sourceid=chrome&ie=UTF-8&q=%D0%9E%D0%A0%D0%9E#q=OPO+ORM&hl=ru&prmd=imvns&ei=JQM1T9idAoyO4gTQ3dz1AQ&start=10&sa=N&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=3f4df5ca4036165c&biw=1280&bih=909. Не окажите ли услугу дать прямой линк?
Цитата(AndreyIQ @  8.2.2012,  12:15 Найти цитируемый пост)
Популярность Delphi растет 

Я не смог придумать как нарисовать линию тренда так, чтобы последний скачек можно было действительно назвать ростом. smile
user posted image 

В то же время жава имеет куда более очевидный тренд
user posted image

В отличии от C#
user posted image

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

Автор: Stolzen 10.2.2012, 16:24
Цитата(Zloxa @  10.2.2012,  15:54 Найти цитируемый пост)
Гугл подводит. Не окажите ли услугу дать прямой линк?

Да, конечно - http://en.wikipedia.org/wiki/Object-relational_mapping
В джаве самый популярный это Hibernate, в дотнете есть NHibernate и какой-то майкросовтовский фреймворк со словом Entity в начале.
Java да, тоже умрет когда-нибудь - что поделаешь. Однако ближайшие лет 10 джавистам беспокоиться не о чем.
Вон, делфи - сколько лет уже пребывает в агонии, однако программисты до сих пор умудряются программировать на нем  smile

Добавлено через 54 секунды
Цитата(Zloxa @  10.2.2012,  15:54 Найти цитируемый пост)
Гугл подводит. Не окажите ли услугу дать прямой линк?

А буквы в ОРО русские, кстати. Объектно-реляционное отображение это расшифровывается. 

Автор: LSD 10.2.2012, 17:16
Цитата(Zloxa @  10.2.2012,  15:16 Найти цитируемый пост)
В этом, пожалуй, заключается одно из основных преимуществ реализации логики работы с данными на стороне СУБД. Изменил спецификацию таблицы, все связанные объекты ревалидирутся, ошибки всплывают сразу и без юнит тестов. Привыкнумши к этому однажды, необходимость отвыкать обратно при переходе на другую платформу, сложно воспринимать иначе как откровенный дауншифт.

Посмотри на проблему шире. Ты смотришь на свой маленький кусочек: СУБД+около СУБД-шная логика. У любой более менее сложной системы есть внешние системы, которые так же могут поменять API и твое приложение перестанет работать, или наоборот они перестанут работать. Конечно если все делать в СУБД, то таких проблем можно избежать (да и то не всегда, не забываем про динамический SQL). Но такое решение выглядит, мягко говоря странным, не говоря уж про его реализуемость.


Цитата(Zloxa @  10.2.2012,  15:16 Найти цитируемый пост)
Согласись, это было бы очень здорово. При изменении схемы данных, при изменении спецификации серверных процедур, ошибки вылазили бы еще на этапе сборки.

Особенно когда у тебя несколько баз для разработки и на каждую патчи по своему графику накатываются smile




Цитата(Zloxa @  10.2.2012,  15:54 Найти цитируемый пост)
Я не смог придумать как нарисовать линию тренда так, чтобы последний скачек можно было действительно назвать ростом.
...
В то же время жава имеет куда более очевидный тренд
...
В отличии от C#
...
здесь с-ка рост очевиден.
Не могу не похвалить себя. Когда еще в 2002м году я пролистал первую книжку по C#, я пришел к заключению, мол все мы там будем. (

Ну тогда у С++ еще более печальная тенденция smile
user posted image
Ты просто неправильно расцениваешь эти графики.
Цитата
The ratings are based on the number of skilled engineers world-wide, courses and third party vendors.

Это скорее индикатор модности языка, чем реальное положение на рынке.

Добавлено через 4 минуты и 23 секунды
http://habrahabr.ru/blogs/statistics/137926/ один рейтинг.

Автор: Stolzen 10.2.2012, 18:15
Цитата(LSD @  10.2.2012,  18:16 Найти цитируемый пост)
Вот еще один рейтинг. 

Хороший рейтинг, да.

Автор: Zloxa 10.2.2012, 18:23
Цитата(LSD @  10.2.2012,  17:16 Найти цитируемый пост)
У любой более менее сложной системы есть внешние системы, которые так же могут поменять API и твое приложение перестанет работать, или наоборот они перестанут работать.

Я не понял мысли которую ты пытался сейчас донести.  smile 
Следует сознательно отказаться от идеи организовать жесткую связь на уровне исходного кода между модулями в гетерогенной системе в пользу динамической связи, потому что шит вездесущ и всяко может хаппенс?  smile 

Цитата(Stolzen @  10.2.2012,  16:24 Найти цитируемый пост)
А буквы в ОРО русские, кстати. Объектно-реляционное отображение это расшифровывается.  

Я подумал было, что это имя собственное ))

Цитата(Stolzen @  10.2.2012,  16:24 Найти цитируемый пост)
Hibernate

Будучи труЪ датабазником, когда я слышу это слово, я просто обязан уронить на пол кирпич  smile 

Автор: LSD 10.2.2012, 19:26
Цитата(Zloxa @  10.2.2012,  19:23 Найти цитируемый пост)
Следует отказаться от возможности организовать жесткую связь на уровне исходного кода между модулями в гетерогенной системе в пользу динамической связи, потому что шит вездесущ и всяко может хаппенс?

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

Автор: Zloxa 11.2.2012, 13:45
Цитата(LSD @  10.2.2012,  19:26 Найти цитируемый пост)
только потому, что очень здорово когда при изменении схемы данных ошибки вылазят еще на этапе сборки. 

А какие для этого еще нужны аргументы?  smile 
Может и жесткую типизацию - нуеганафиг? В пользу динамической типизации? Фигли, юнит тестами все вытестим.

Автор: LSD 13.2.2012, 10:31
Цитата(Zloxa @  11.2.2012,  14:45 Найти цитируемый пост)
А какие для этого еще нужны аргументы?   
Может и жесткую типизацию - нуеганафиг? В пользу динамической типизации? Фигли, юнит тестами все вытестим. 

Спокуха, без фанатизма smile Разделение системы на несколько независимых, слабосвязанных компонент имеет свои преимущества и недостатки. На мой взгляд преимуществ выноса логики из СУБД гораздо больше, чем преимуществ от того, что схема данных валидируется на этапе компиляции.

Автор: Zloxa 13.2.2012, 10:54
Цитата(LSD @  13.2.2012,  10:31 Найти цитируемый пост)
преимуществ выноса логики из СУБД

Я высосал из пальца лишь http://forum.vingrad.ru/index.php?showtopic=229816&view=findpost&p=2245674. И все три - не про оракл. Для каждого из трех кейсов, в динамическом связывании преимуществ не вижу.  smile 

Автор: LSD 13.2.2012, 11:22
Цитата(Zloxa @  13.2.2012,  11:54 Найти цитируемый пост)
Для каждого из трех кейсов, в динамическом связывании преимуществ не вижу.

Динамической связывание, это следствие распределенности, а не самоцель.

Автор: Zloxa 13.2.2012, 11:41
Цитата(LSD @  13.2.2012,  11:22 Найти цитируемый пост)
это следствие

провокация к г0внокодину детектед  smile 

Автор: LSD 13.2.2012, 11:56
Цитата(Zloxa @  13.2.2012,  12:41 Найти цитируемый пост)
провокация к г0внокодину детектед 

У вас детектор сломался smile 

Автор: Zloxa 13.2.2012, 12:09
Цитата(LSD @ 13.2.2012,  11:56)
Цитата(Zloxa @  13.2.2012,  12:41 Найти цитируемый пост)
провокация к г0внокодину детектед 

У вас детектор сломался smile

Это просто вы уж принюхались, не замечаете smile 

Автор: LSD 13.2.2012, 12:52
Цитата(Zloxa @  13.2.2012,  13:09 Найти цитируемый пост)
Это просто вы уж принюхались, не замечаете

Зато я замечаю как кое-кто предлагает пихать весь код в базу. Полностью игнорируя тот факт, что СУБД вообщем-то не особо рассчитана.

Автор: Zloxa 13.2.2012, 14:29
Цитата(LSD @  13.2.2012,  12:52 Найти цитируемый пост)
 весь код

Окстись. Отнюдь ведь не весь. Только ту часть логики, которая оперирует непосредственно данными.

Не смотря на то,что на PL/SQL способен получить http реквест и отдать http респонз, я не заблуждась в том, что размещение логики визуализации на стороне СУБД действительна уместна в общем, не исключительном случае. Не понятно почему вы так держитесь за свои заблуждения, что логика работы с данными обязана быть вынесена за пределы базы данных. Ведь лопатить данные жавой получается на столько же коряво, как и формировать хттпреспонз из PL/SQL.

Добавлено через 3 минуты и 12 секунд
Вот многие мои знакомые делфисты, кстати, чураются реализовывать логику работы с данными средствами делфи. И кто, спрашивается, после этого овнокодер?

Автор: LSD 13.2.2012, 14:59
Цитата(Zloxa @  13.2.2012,  15:29 Найти цитируемый пост)
Окстись. Отнюдь ведь не весь. Только ту часть логики, которая оперирует непосредственно данными.

Что значит оперирует непосредственно данными? Я думал что 90% кода как раз занимаются тем что оперируют данными, а оставшийся код обслуживает эти 90%.


Цитата(Zloxa @  13.2.2012,  15:29 Найти цитируемый пост)
Не смотря на то,что на PL/SQL способен получить http реквест и отдать http респонз, я не заблуждась в том, что размещение логики визуализации на стороне СУБД действительна уместна в общем, не исключительном случае. Не понятно почему вы так держитесь за свои заблуждения, что логика работы с данными обязана быть вынесена за пределы базы данных. Ведь лопатить данные жавой получается на столько же коряво, как и формировать хттпреспонз из PL/SQL.

Я считаю, что логика по возможности должна быть в одном месте. Если у вас логика настолько простая, что она спокойно реализуется на PL/SQL, пусть будет в базе. Но только чтобы вся, а не размазывалась тонким слоем по базе, среднему уровню и клиенту.

Добавлено через 1 минуту и 15 секунд
Цитата(Zloxa @  13.2.2012,  15:29 Найти цитируемый пост)
Вот многие мои знакомые делфисты, кстати, чураются реализовывать логику работы с данными средствами делфи.

И кстати, я тоже чураюсь реализовывать логику работы с данными средствами дельфи smile

Добавлено через 9 минут и 45 секунд
Вспомнил историю из жизни: есть у нас некая система которая хранит и обрабатывает некие данные. Мы ей шлем запрос сделай мне то-то и то-то, система проверяет входные данные и делает что велено. Все проверки сделаны тригерами. А тут клиентам захотелось странного, чтобы проверять пользовательский ввод до того как он нажал Submit, и показывать сообщение об ошибке. Будь эта логика не в СУБД мы бы это легко реализовали, а так жди пока они все вытащат этот код из тригеров.

Автор: Zloxa 13.2.2012, 16:24
Цитата(LSD @  13.2.2012,  14:59 Найти цитируемый пост)
Если у вас логика настолько простая, что она спокойно реализуется на PL/SQL

Да, у нас логика на столько простая, что спокойно реализуется на PL/SQL.
И вынос на выделенный сервер приложений ее многократ усложнит. И тогда та же логика станет действительно сложной. Сложной станет как в разработке, так и при эксплуатации.  smile 

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

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

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

Все остальное в этом модуле - обвяз. Принять по AQ XML со списком товар+размещение, по которым должен произвестись расчет, посчитать для каждого товара скорость, упаковать в XML результат+сопутствующую статистику, отдать результат тем же AQ.

Код

Connected as avgspd@dc_rac_prod
 
SQL> select count(*) from user_source;
 
  COUNT(*)
----------
       477

Менее пятисот строк. Глянул, из них не менее ста - коментарии и закоментированные фрагменты кода, так что - все четыреста.
Действительно все достаточно просто. Но, боюсь, реализация того же самого функционала средствами жавы оказалась бы куда менее проста и лаконична. А елси бы для доступа к данным использовался ОРМ, боюсь это было бы еще и неадекватно ресурсоемко.

Автор: LSD 13.2.2012, 16:27
Цитата(anonymous @  13.2.2012,  15:30)
Ни в коем случае не суйся в Паскаль и другие мудреные языки. Зря потратишь свое время. Изучай только то, с чего можно быстро "встать на ноги".

Надеюсь дельфисты поняли smile 

Автор: k0rvin 13.2.2012, 16:29
Цитата(Zloxa @ 13.2.2012,  14:29)
Вот многие мои знакомые делфисты, кстати, чураются реализовывать логику работы с данными средствами делфи. И кто, спрашивается, после этого овнокодер?

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

Автор: LSD 13.2.2012, 16:40
Цитата(Zloxa @  13.2.2012,  17:24 Найти цитируемый пост)
Менее пятисот строк. Глянул, из них не менее ста - коментарии и закоментированные фрагменты кода, так что - все четыреста.
Действительно все достаточно просто. Но, боюсь, реализация того же самого функционала средствами жавы оказалась бы куда менее проста и лаконична.

И что? Из Java нельзя выполнить этот запрос? Или я где-то утверждал, что нельзя использовать SQL там где это нужно/удобно?

Автор: Zloxa 13.2.2012, 16:48
Цитата(LSD @  13.2.2012,  14:59 Найти цитируемый пост)
Вспомнил историю из жизни: есть у нас некая система которая хранит и обрабатывает некие данные. Мы ей шлем запрос сделай мне то-то и то-то, система проверяет входные данные и делает что велено. Все проверки сделаны тригерами. А тут клиентам захотелось странного, чтобы проверять пользовательский ввод до того как он нажал Submit, и показывать сообщение об ошибке. Будь эта логика не в СУБД мы бы это легко реализовали, а так жди пока они все вытащат этот код из тригеров. 

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

Что же касается кода в триггерах, то радуйтесь что у вас он есть. Радуйтесь, что как бы вы не накосячили со своим контроллем ввода, логику стороннего приложения(не отключая, конечно триггеров), вы не закривите. У нас вон, есть на жаве писаный Oracle RPM(Retail Price Management). И бизнес нас просит подлить туда правила ценообразования для 20 магазинов о 150тыщ наименований товаров в каждом. А мы не можем. Исходный код закрыт, логика не описана, если хибер сочтет что целостность данных нарушена, RPM просто перестает работать. Понять чего ему не хватает можно только трассировкой, которая очень усложняется тем, что используется пулл коннектов. Бизнесу придется ручками эти данные херачить.

Добавлено @ 16:52
Цитата(LSD @  13.2.2012,  16:40 Найти цитируемый пост)
И что? Из Java нельзя выполнить этот запрос? Или я где-то утверждал, что нельзя использовать SQL там где это нужно/удобно? 

Можно. Но из PL/SQL выполнять этот запрос - удобнее. Мне кажется правильным было бы - завернуть этот запрос в пакетик и дернуть его из жавы. Но это уже размазывание логики. Нет?

Но и опять же, в чем профит тут тогда от использования жавы? Где пресловутая абстракция от БД?

Автор: LSD 13.2.2012, 18:22
Цитата(Zloxa @  13.2.2012,  17:48 Найти цитируемый пост)
Я тебе как-то уже приводил историю из жизни, когда реализуя логику на стороне приложения, две разные команды ее реализовали несколько по разному и мы, в результате, получили сохраненные в одной структуре документы, которые оказались по разному отражены в регистрах остатков.

Цитата(LSD @  13.2.2012,  15:59 Найти цитируемый пост)
Я считаю, что логика по возможности должна быть в одном месте.




Цитата(Zloxa @  13.2.2012,  17:48 Найти цитируемый пост)
Что же касается кода в триггерах, то радуйтесь что у вас он есть. Радуйтесь, что как бы вы не накосячили со своим контроллем ввода, логику стороннего приложения(не отключая, конечно триггеров), вы не закривите. У нас вон, есть на жаве писаный Oracle RPM(Retail Price Management). И бизнес нас просит подлить туда правила ценообразования для 20 магазинов о 150тыщ наименований товаров в каждом. А мы не можем. Исходный код закрыт, логика не описана, если хибер сочтет что целостность данных нарушена, RPM просто перестает работать. Понять чего ему не хватает можно только трассировкой, которая очень усложняется тем, что используется пулл коннектов. Бизнесу придется ручками эти данные херачить.

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



Цитата(Zloxa @  13.2.2012,  17:48 Найти цитируемый пост)
Но из PL/SQL выполнять этот запрос - удобнее.

Чем?


Цитата(Zloxa @  13.2.2012,  17:48 Найти цитируемый пост)
Но и опять же, в чем профит тут тогда от использования жавы? Где пресловутая абстракция от БД?

Абстракция будет если использовать простой select без специфичных фишек оракла.

Автор: Zloxa 13.2.2012, 19:12
Цитата(LSD @  13.2.2012,  18:22 Найти цитируемый пост)
Чем?

Фиксацией связи с объектами схемы.
Синтаксическим анализом на этапе компиляции, а не исполнения.
Возможностью влиять на план запроса без пересборки приложения.

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

Цитата(LSD @  13.2.2012,  18:22 Найти цитируемый пост)
Абстракция будет если использовать простой select без специфичных фишек оракла. 

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

Если мы подобный запрос пустим на блокировочнике вроде MS SQL в режиме изоляции read commited, на время исполнения он блокирует регистры остатков. Прочие приложения, двигающие по остаткам - встанут колом. Да и сам запрос может встать на блокировке. Могут случиться взаимные блокировки. Результат будет получен согласованным на момент окончания работы стейтмета. А оракл никого не заблокирует, и сам на блокировке не встанет. Результат будет согласованным на момент начала работы стейтмента. Для версионников и  блокировочников таки нужен несколько разный подход при решении однотипных задач. 

Если мы хотим абстрагироваться от платформы БД, нам придется свести свое взаимодействие с ней до очень примитивного уровня и серьезно так навелосипедировать.  smile  

Цитата(LSD @  13.2.2012,  18:22 Найти цитируемый пост)
 у нас есть древнее глючное ПО, которое мы костылим с помощью ХХХ. А потому ХХХ это очень хорошая штука, и все новые проекты тоже должны его использовать.

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

Цитата(LSD @  13.2.2012,  18:22 Найти цитируемый пост)
Я считаю, что логика по возможности должна быть в одном месте.

Я тоже так считаю.
И лучше чем база - место сложно придумать.

И пофиг будет ли писать в базу дерзкий студент жавапис, матерый ли, но мудаковатый делфист, харизматичный ли индус-формсист, или же дешевый суппортер, с базовыми навыками sql, получивший заявку "удалить накладную" на сервисдеск, от своевременного исполнения которой зависит его KPI. Никто из них не должен иметь возможность закривить данные, нарушить логику приложения, а суппортер таки должен получить бонусную часть своей и без того крохотной зарплаты, начисляемой по KPI.  smile 

Автор: LSD 14.2.2012, 15:51
Цитата(Zloxa @  13.2.2012,  20:12 Найти цитируемый пост)
Фиксацией связи с объектами схемы.
Синтаксическим анализом на этапе компиляции, а не исполнения.
Возможностью влиять на план запроса без пересборки приложения.

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

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


Цитата(Zloxa @  13.2.2012,  20:12 Найти цитируемый пост)
Один и тот же стейтмент, дающий один и тот же результат в режиме монопольного доступа к данным, в конкурентном режиме на версионниках и блокировочниках будет выполняться по разному и может дать даже разные результаты.

Если мы подобный запрос пустим на блокировочнике вроде MS SQL в режиме изоляции read commited, на время исполнения он блокирует регистры остатков. Прочие приложения, двигающие по остаткам - встанут колом. Да и сам запрос может встать на блокировке. Могут случиться взаимные блокировки. Результат будет получен согласованным на момент окончания работы стейтмета. А оракл никого не заблокирует, и сам на блокировке не встанет. Результат будет согласованным на момент начала работы стейтмента. Для версионников и  блокировочников таки нужен несколько разный подход при решении однотипных задач. 

Если мы хотим абстрагироваться от платформы БД, нам придется свести свое взаимодействие с ней до очень примитивного уровня и серьезно так навелосипедировать.

1. Ты слишком преувеличиваешь проблему взаимных блокировок. Я вот за все время ни разу не сталкивался с подобными проблемами.
2. Абстрагирование это не поменять настройки конекта, и опа мы уже работаем с MS SQL вместо Оракла. Это возможность портировать приложение с Оракла на MS SQL с минимальными усилиями. А если вам хочется полной независимости от СУБД, то тут конечно придется свести взаимодействие к примитивным селектам.


Цитата(Zloxa @  13.2.2012,  20:12 Найти цитируемый пост)
И потому не надо делать мифа из того, что XXX это само по себе хорошая штука, его использование не уберегает от гуано на выходе. Ни использование модных технологий и шаблонов проектирования не могут являться препятствием для г0внотечи.

Даже и не знаю, где ты такое увидел.
Есть хорошие общепринятые практики при разработке ПО, они не гарантируют что у тебя получится хороший продукт, но значительно этому способствуют. А их неиспользование наоборот. Аналогия со здоровым образом жизни, не гарантирует что ты не будешь болеть, но сильно уменьшает вероятность многих болезней.



Цитата(Zloxa @  13.2.2012,  20:12 Найти цитируемый пост)
Я тоже так считаю.
И лучше чем база - место сложно придумать.

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

Ты слишком базоориентирован smile Ты исходишь из того, что все крутится вокруг базы и все должны на нее молиться. А жизнь, то она разнообразнее smile
У нас есть система персистит данные в memory mapped file, и потом отдельный процесс неспешно разгребает это все и сохраняет в базу. В работе системы база не участвует, она нужна для архива. Есть другая система которая представляет из себя большой Oracle Coherence кластер, в который сохраняются данные и в нем же происходит агрегации и другие вычисления, база тут тоже задействована исключительно для архивных функций.

Автор: Zloxa 14.2.2012, 17:35
Цитата(LSD @  14.2.2012,  15:51 Найти цитируемый пост)
Никуда эти проблемы не деваются. Раньше у тебя в строке лежал текст запроса, а теперь текст вызова процедуры. Понадобится еще один параметр в where добавить, переписываем процедуру, и все сигнатура изменилась будет ошибка во времени исполнения.

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

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

Если мы интегрируемая с внешней системой средствами XML, мы ведь имеем ту же самую картинку. Если на той стороне изменится спецификация обмена, нам будет предоставлен измененный XSD, по которому завсегда мы можем регенернуть врапер и все места, где нам следует что-то предпринять тут же разметятся в коде красными выделениями. Почему желать подобного от связки с БД, ты находишь странным?

Цитата(LSD @  14.2.2012,  15:51 Найти цитируемый пост)
1. Ты слишком преувеличиваешь проблему взаимных блокировок.

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

О том что запрос может рубануться по дедлоку упомянул потому лишь, что между делом об этом подумалось. Впрочем, оракл тоже может рубануть запрос по snapshot too old.

Цитата(LSD @  14.2.2012,  15:51 Найти цитируемый пост)
Я вот за все время ни разу не сталкивался с подобными проблемами.

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

Да и бэкоффис у нас работает, как правило, в длинной транзакции, тоже приходится об этом постоянно думать.

Цитата(LSD @  14.2.2012,  15:51 Найти цитируемый пост)
Ты слишком базоориентирован  Ты исходишь из того, что все крутится вокруг базы и все должны на нее молиться.

Рассогласованную базу вернуть в согласованное состояние многократ сложнее нежели исправить ошибку в коде, приводящую к ее рассоглаованию. Порой - вообще не возможно, если отсутствует не искаженный источник. Потерянные или же искаженные алгоритмы восстановить оказывается куда проще. Понятно что ценность данных форумного движка, или даже витрины интернет магазина - не велика, требования к качеству таких данных смехотворны. А вот ценность данных, на основе которых формируется финансовая отчетность, на основании которых принимаются управленческие решения - крайне велика. Я помню времена, когда мы пускали новую учетную систему. Данные оказались искажены и  была утеряна связь между обобщенными кодами товара, на которых делается заказ поставщикам и индивидуальных кодов, на которых ведется учет в магазинах. В результате к нам на склады в очередь выстраивались фуры с товаром, склады были переполнены, нанимали таджиков на разгрузку, при этом магазинные полки были пустые. Это были безумные денежные потери. И если бы проблема была вызвана не верно работающиим алгоритмом, можно было бы дернуть данные в эксель или матлаб, посчитать чо как надо, и принять верное управленческое решение вручную, мимо системы. А если данные дерьмо - на чем принимать решение? Это уже потеря бизнеса. Как тут не замолиться вокруг базы?

Цитата(LSD @  14.2.2012,  15:51 Найти цитируемый пост)
У нас есть система 

Я не отрицаю, что существуют случаи, когда решение на жаве оказывается предпочтительнее связки Delphi + PL/SQL. Но я работаю в этой связке и смотрю с этой колокольни. Мое признание вовсе не означает что в  результате замены этой связки на жаву, даже при условии следованиям паттерннам и бестпрактикам, будет получен сколь нибудь ощутимый профит. На данном этапе своего личностного развития, я скорее ожидаю обратного. Причем по той самой причине, которую ты озвучил, как причину нелюбви к делфи. Жава, вероятно от избыточной гибкости, для придания общей конструкции определенной прочности, требует следования паттернам и практикам, вынуждая тем самым отказ от использования смежных технологий, способных решать задачи более эффективно, провоцируя тем самым велосипедирование и овнокодинг.

Автор: LSD 15.2.2012, 18:53
Цитата(Zloxa @  14.2.2012,  18:35 Найти цитируемый пост)
Таки вероятность того, что изменится спецификация интерфейсной процедуры меньше, чем вероятность, что изменятся объекты схемы, с этой интерфейсной процедурой связанные. На то она и интерфейсная. И тем полезнее было бы иметь возможность генерировать врапперы для таких процедур. 

А вьюхи вам кто не велит использовать?


Цитата(Zloxa @  14.2.2012,  18:35 Найти цитируемый пост)
Иной раз, глядишь, разраб пересмотрит модификацию схемы данных, если увидит, что он не сможет в этом случае поддержать взаимодействие с уже написанным клиентом.

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


Цитата(Zloxa @  14.2.2012,  18:35 Найти цитируемый пост)
Если мы интегрируемая с внешней системой средствами XML, мы ведь имеем ту же самую картинку. Если на той стороне изменится спецификация обмена, нам будет предоставлен измененный XSD, по которому завсегда мы можем регенернуть врапер и все места, где нам следует что-то предпринять тут же разметятся в коде красными выделениями. Почему желать подобного от связки с БД, ты находишь странным?

С тем же JSON-ом такой лафы (в виде XSD) нет. Однако многие веб сервисы его используют, и ничего как-то живут. Да XSD не панацея, если тебя не информировали вовремя что XSD изменился, и надо использовать новую версию.
А еще есть проблема старых клиентов. Я вообще не представляю как вы у себя можете позволить делать breaking change при наличии 300 филиалов.


Цитата(Zloxa @  14.2.2012,  18:35 Найти цитируемый пост)
Я в данный момент в первую очередь думал о блокировке по чтению. В блокировочниках это бич. Нельзя снимать тяжелые аналитические отчеты с оперативно изменяемых данных. Только в режиме грязных чтений, рискуя получить не согласованный результат. Важно каковы требования к чистоте данных. Может статься, решение использования блокировочника против версионника, пожет потребовать и радикальной смены архитектуры.

Сам Оракл рекомендует разносить по разным базам OLTP и аналитику. Так что достаточно просто их разнести. На OLTP быстрые запросы и много DML, на аналитике длинные запросы и минимум DML-я.



Цитата(Zloxa @  14.2.2012,  18:35 Найти цитируемый пост)
Рассогласованную базу вернуть в согласованное состояние многократ сложнее нежели исправить ошибку в коде, приводящую к ее рассоглаованию...

1. При этом ты как-то игнорируешь тот факт, что ошибка приводящая к рассогласованию может с таким же успехом быть и в коде ХП/триггеров.
2. Не надо путать бизнес логику и sanity checks для поддержания целостности. Sanity checks должны в обязательном порядке присутствовать в базе. А логику от туда лучше вынести.



Цитата(Zloxa @  14.2.2012,  18:35 Найти цитируемый пост)
Но я работаю в этой связке и смотрю с этой колокольни. Мое признание вовсе не означает что в  результате замены этой связки на жаву, даже при условии следованиям паттерннам и бестпрактикам, будет получен сколь нибудь ощутимый профит.

Я про твою конкретную систему вообще не говорил. Я про нее ничего не знаю.

Автор: AlekXL 15.2.2012, 23:50
http://www.itwriting.com/blog/5423-cross-platform-windows-and-mac-lifts-delphi-sales-by-54.html

только я лично FM не люблю. Не проще ли было сделать порт VCL? Пока под FM не появятся VirtualTreeView,THTML и др либы подобной сложности, не стоит даже и смотреть в ее сторону, имхо. Сила Д. в сверхпродуктивных, feature-rich и быстрых контролах (что даже на доднете трудно повторить), а не в раскрашенных кнопках.

Но сам факт "поддержки" Mac OSX немного сбивает спесь с евангелистов и ###кодеров, от кривизны рук подавшихся в веб-разработку

А лазарь под вин уже не внушает отвращения, между прочим...

Автор: Zloxa 16.2.2012, 02:01
Цитата(LSD @  15.2.2012,  18:53 Найти цитируемый пост)
А вьюхи вам кто не велит использовать?

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

С вьюхами мороки больше. Основная проблема - применение критериев отбора. Оракл не поддерживает параметризированных вьюх, а некоторые предикаты лучше прописать глубоко-глубоко в подзапросе. http://docs.oracle.com/cd/E11882_01/server.112/e16638/optimops.htm#PFGRF94586 вещь конечно опупенная, но не идеальная, спасает далеко не всегда. Опять же, от того, какие предикаты будут применены и как - может меняться и план запроса. В некоторых случаях, в зависимости от значения параметров, запрос не плохо было бы переформулировать. А если его еще и хинтовать придется... согласись эти вещи далеки от компетенций жава программиста, их лучше оставить на стороне базы данных.

Цитата(LSD @  15.2.2012,  18:53 Найти цитируемый пост)
Как бы предполагается, что разработчик модифицирует БД не потому, что его левая нога захотела, а потому что перед ним появилась некая задача реализация которой требует подобную модификацию. И он обсуждает предполагаемые изменения со всеми кто использует эту базу.

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

Цитата(LSD @  15.2.2012,  18:53 Найти цитируемый пост)
Однако многие веб сервисы его используют, и ничего как-то живут

На "как-то" будем ориентироваться? Ну так и на формсах  smile  люди тоже как-то пишут.

Цитата(LSD @  15.2.2012,  18:53 Найти цитируемый пост)
Да XSD не панацея, если тебя не информировали вовремя что XSD изменился, и надо использовать новую версию.

Я согласен. Но я ведь рассматривал не эту ситуацию, я рассматривал ситуацию, когда меня информировли, и что мне очень много времени сэкономит, если я по измененной спецификации регенерну обертку к этому XML, и тут же в коде получу список мест, где надо подправить код. 

Цитата(LSD @  15.2.2012,  18:53 Найти цитируемый пост)
Я вообще не представляю как вы у себя можете позволить делать breaking change при наличии 300 филиалов.

Узнал новое слово  smile 
У нас интеграция с филиалами не на прямую - через файлобмен. Филиал, в высокой степени автономен. Регламент допускает какое-то время задержки в обмене.  Возможно я тебя ввел в заблуждение, используя слово "интерактивно". Не понмю, что я под ним подразумевал. Вероятно я имел в виду "интенсивно".

Но вообще я не помню что мы делали, когда у нас менялась спецификация интерфейсов. Ровно как и не помню, когда в последний раз такое случалось. Как то выкручивались. smile

Цитата(LSD @  15.2.2012,  18:53 Найти цитируемый пост)
Сам Оракл рекомендует разносить по разным базам OLTP и аналитику. 

Так то оно так.. но иногда бывает когда OLTP чуть больше чем OLTP, но далеко не DWH и выносить аналитику в одельную базу, организовывать ETL процессы как то не адекватно накладно. 

Цитата(LSD @  15.2.2012,  18:53 Найти цитируемый пост)
1. При этом ты как-то игнорируешь тот факт, что ошибка приводящая к рассогласованию может с таким же успехом быть и в коде ХП/триггеров.

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

Цитата(LSD @  15.2.2012,  18:53 Найти цитируемый пост)
2. Не надо путать бизнес логику и sanity checks для поддержания целостности.

Еще одно новое слово  smile 
Расчет остатков (запасов) это бизнес логика?
В некоторой степени это системная логика - как бы преаггрегация данных  бизнес-транзакций. Но на основе этих данных принимаются бизнес-значимые решения.
То же самое, скажем, рейтинг прайслистов поставщиков. Тоже своего рода преаггегация. Прайслист - да, как бы бизнесс-объект. А вот рейтинг, уже как бы системный.
Мне не нравится слово бизнес-логика. Я не совсем его понимаю. 

Блин вот серьезно, претит мне идея считать такие вещи как остатки за пределами базы. Очень претит.


Автор: lukas 16.2.2012, 11:52
Люди о чем вы спорите?  smile 

Автор: Zloxa 16.2.2012, 12:21
Цитата(lukas @  16.2.2012,  11:52 Найти цитируемый пост)
Люди о чем вы спорите? 

О религиозных воззрениях же, епрст smile 

Автор: LSD 16.2.2012, 15:48
Цитата(Zloxa @  16.2.2012,  03:01 Найти цитируемый пост)
В чем, скажи, принципиальная разница - дергать интерфейсную вьюху, созданную специально для приложения или же процедуру?

Какие вопросы тебя волнуют в 3 часа ночи smile 
Я не вижу большой разницы что использовать для сокрытия структуры базы: процедуры или вьюхи.


Цитата(Zloxa @  16.2.2012,  03:01 Найти цитируемый пост)
А если его еще и хинтовать придется... согласись эти вещи далеки от компетенций жава программиста, их лучше оставить на стороне базы данных.

Для этих целей у нас есть DBA/DBD мы приходим к ним с запросами которые медленно работают и спрашиваем "какого х... валера?".


Цитата(Zloxa @  16.2.2012,  03:01 Найти цитируемый пост)
Вообще это как раз таки офигенный тезис в пользу организации интеграции средствами интерфейсных объектов схемы. По связанным объектам, ты сразу видишь кто и как использует объекты, которые ты желаешь изменить и можешь проанализировать, а закривишь ли ты кого. В результате такого анализа можно очень резко сократить список участников процесса и лист согласования дизайна.

По связным объектам ты видишь только связи внутри БД. Из этих связей совершенно неясен публичный API базы.
Ну и самое главное изменение даже не публичных API может иметь side эффект на публичных.


Цитата(Zloxa @  16.2.2012,  03:01 Найти цитируемый пост)
На "как-то" будем ориентироваться?

Просто посмотрим как там решаются эти проблемы smile 


Цитата(Zloxa @  16.2.2012,  03:01 Найти цитируемый пост)
Что же касается причин,  основная причина рассогласования данных - таки обход логики. Пройти мимо логики, реализованной в базе - тяжелее всего. А задействовать ее, в свою очередь - проще всего.

А как ты предполагаешь "пройти мимо логики" реализованной в среднем уровне? Как будто клиентам кто-то дает логин/пароль в базу и позволяет внешние соединения с базой.


Цитата(Zloxa @  16.2.2012,  03:01 Найти цитируемый пост)
Расчет остатков (запасов) это бизнес логика?

Да. И sanity checks это тоже часть бизнес логики. Но ее дублирование мы допускаем, ради высших целей smile

Автор: lukas 17.2.2012, 13:37
Так, я выбираю MongoDB, их девиз "никакой логики в базе данных", база данных должна лишь хранить информацию и умело ее искать и доставать. Вся логика должна быть в коде.

Автор: 502 17.2.2012, 14:00
Цитата(lukas @  17.2.2012,  13:37 Найти цитируемый пост)
Так, я выбираю MongoDB, их девиз "никакой логики в базе данных"

а что в mongo уже нельзя писать функции? o_O

Автор: Zloxa 17.2.2012, 14:09
Цитата(lukas @  17.2.2012,  13:37 Найти цитируемый пост)
искать 

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

Автор: LSD 5.3.2012, 18:18
Чой-то дискуссия подзатихла, надо подкинуть аргументов на вентилятор smile 


Стало интересно а какие CI сервера для дельфей есть. Кроме Automated Build Studio, ничего не нашел. С тулами для сборки ситуация еще более кислая, не нашел ни одной. user posted image

Автор: Stolzen 6.3.2012, 15:32
http://dou.ua/lenta/articles/chtoby-razrabotchiki-ne-begali-ili-delphi-navsegda/

Автор: LSD 7.3.2012, 10:50
Каменты доставляют:
Цитата
Delphi — это сила. Самый быстрый нативный код, уступающий только C++, C#, Java! Пару лет назад даже дженерики сделали. Немного раньше — юникод. Теперь делают аналог WPF — FireMonkey. Очень динамично развивающийся язык! Лет через 5 сделают компиляцию под Android 2.2 с помощью FreePascal и прикрутят нативный линуксовый компилятор от Кайликса (вот только старые исходники от Борланда скомпилируют). А кипрский офшор Atozed засунет за пояс Майкрософт с их ASP.Net своим IntraWeb-ом. Или Embarcadero купит Altium с их Морфиком. В общем, лет через 10 дельфи захватит мир. Так что срочно все на Петровку, закупать «бестселлеры» Фленова и Архангельского!

Цитата
Да с таким подходом, надо на кобол переходить — чем мертвее и неудобнее технология, тем меньше шансов, что ваш работник куда-нибудь уйдёт. Хотя с другой стороны, можно просто забрать паспорт smile

Автор: Akella 14.3.2012, 14:42
Цитата(LSD @  6.2.2012,  16:07 Найти цитируемый пост)
Кстати, есть хоть один публично доступный сайт который бы работал на дельфи?


адрес не помню, но недавно на нём был, как только вспомню, скину сюда smile

Добавлено через 3 минуты и 23 секунды
На дельфи лучше писать веб-приложение, а не веб-сайт.

Добавлено через 6 минут и 36 секунд
Вот этот сайт
http://www.delphifaq.ru/

Автор: LSD 14.3.2012, 15:27
Цитата(Akella @  14.3.2012,  15:42 Найти цитируемый пост)
Вот этот сайт
http://www.delphifaq.ru/ 

Слог то какой:
Цитата
Прочтений: 326


Добавлено через 5 минут и 41 секунду
У-у-у-у как все запущено, ребята даже 404 нормально не отрабатывают.
http://www.delphifaq.ru/abc/ - ошибка нормально обрабатывается
http://www.delphifaq.ru/abc - так нет.

Автор: Akella 15.3.2012, 10:32
и чё?

Автор: Zloxa 15.3.2012, 11:08
Akella, ну согласись, ведь это несколько абсурдно - писать собственный веб сервер, чтобы замутить сайт. 
LSD, ну согласись, ведь это несколько абусрдно - говорить что молоток плох тем, что гвозди доставать удобнее пассатижами.

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

Автор: Akella 15.3.2012, 11:17
Цитата(Zloxa @  15.3.2012,  11:08 Найти цитируемый пост)
Akella, ну согласись, ведь это несколько абсурдно - писать собственный веб сервер, чтобы замутить сайт. 


Ну да, согласен. Но дельфи позволяет писать как StandAlone апликации, так и примочку для апача/ISS, разве нет?

Автор: LSD 15.3.2012, 11:33
Цитата(Akella @  15.3.2012,  11:32 Найти цитируемый пост)
и чё?

Вебсервер - любительская поделка которая максимум тянет на proof of concept.


Цитата(Zloxa @  15.3.2012,  12:08 Найти цитируемый пост)
LSD, ну согласись, ведь это несколько абусрдно - говорить что молоток плох тем, что гвозди доставать удобнее пассатижами.

Не понял к чему относится твой комментарий.


Цитата(Zloxa @  15.3.2012,  12:08 Найти цитируемый пост)
Что же касатеся CI, я канешна понимаю, что это все ниэпически круто. Но в реалии мне не доводилось участвовать в проектах, где это было край необходимо.

А мне вот наоборот, доводилось участвовать в проектах в которых вначале не было CI, а потом мы его внедрили. И могу сказать, что польза от него была ощутимая. И?

Автор: Akella 15.3.2012, 11:44
Цитата(Zloxa @  15.3.2012,  11:08 Найти цитируемый пост)
Раньше еще был человечек, который на жаве рисовал вебовую морду. Но по юзабилити веб приложение всегда уступало гуевому, и в конце концов, им никто не пользовался, а трудозатраты на веб приложение существенно превышали трудозатраты на гуевую морду, поэтому от этой практики мы в конце концов отказались. 


Вот-вот.
Я админю, так сказать, большую фирму. У нас есть своя программа с базой. Когда-то я для них писал это всё на дельфи с огнептичкой. А 2,5 года назад учредитель захотел переехать в веб. Выбирал я между дотнетом и пхп. В итоге пришел к пхп из-за сравнительной дешевизны. Хотелось кроссбраузерности и кроссплатформенности. Но не тут-то было! Оказалось, что даже кроссбраузерность не всегда легко дается.  Так и порешили, и перешли полностью в веб: пхп + мускуль. И всё это было из-за того, что канал связи в центральном офисе и на филиалах был не ахти какой. Да, с функциональностью и дизайном проиграли. Ужасно проиграли. Может потому что разработчики оказались не очень компетентные, может потому что инструменты программирования были хуже. Не знаю. Но теперь я жалею и думаю, что можно было избежать этого, оставить приложение как есть и продолжать его использолвать и дописывать. Просто базу перенести на хостинг с firebird. Пользователям новое веб-приложение оказалось сильно непривычное, неудобное, они потеряли много удобства в своей работе, сильно плевались и фукали на новую программу. Мало того, мы нормально можем использовать только Firefox, т.к. код (JavaScript) нормально работает только в Firefox, а потом уже, если есть время, то может быть допиливают для остальных браузеров, хотя сильно этим не занимаются. Как всегда нет времни и особого желания.

И я вот свою программу тоже хочу перекинуть в веб. Вернее только базу в веб, жаль что хостингов с firebird можно по пальцам пересчитать.

Так что можно сейчас смело писать веб-приложения на дельфи, а лучше на firemonkey, т.к. firemonkey предоставляет кроссплатформенность. Но, почему-то много примеров для 3D программирования и графики, и очень мало для LiveBindings и баз данных. Нет документации, особенно на русском :(

Я прошу не путать веб-приложения и веб-сайты.

Автор: Zloxa 15.3.2012, 11:58
Цитата(Akella @  15.3.2012,  12:17 Найти цитируемый пост)
примочку для апача/ISS, разве нет? 

Фиг его знает, товарищ майор. :unnw
Если говорить об ISS, там сам бох велел ASP зюзать. Преимуществ у делфи тут не вижу.
Если говорить об апаче, апач кроссплатформенен, здесь бы жава была бы очень уместа.

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

Цитата(LSD @  15.3.2012,  12:33 Найти цитируемый пост)
Не понял к чему относится твой комментарий.

К тому, что не высокая привлекательность инструментария для использования в веб разработке, в целом не характеризует инструментарий.

Цитата(LSD @  15.3.2012,  12:33 Найти цитируемый пост)
И?

Ваш же проект был на жаве - так? И без этих кастылей вам было плохо - так?
А нам без этих кастылей прекрасно живется. Мы даже слова такие из википедии вычитываем, на столько нас не парят те проблемы, которые вы имеете на своей платформе. smile 

Автор: LSD 15.3.2012, 13:01
Цитата(Zloxa @  15.3.2012,  12:58 Найти цитируемый пост)
К тому, что не высокая привлекательность инструментария для использования в веб разработке, в целом не характеризует инструментарий.

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



Цитата(Zloxa @  15.3.2012,  12:58 Найти цитируемый пост)
Ваш же проект был на жаве - так? И без этих кастылей вам было плохо - так?
А нам без этих кастылей прекрасно живется. Мы даже слова такие из википедии вычитываем, на столько нас это не парит.

Повторяю еще раз: это элемент культуры разработки.
Вот у вас счастливых дельфистов, сколько разработчиков и сколько тестировщиков? Что будет в случае 10 минутного простоя системы?



Цитата(Zloxa @  15.3.2012,  12:58 Найти цитируемый пост)
Я вообще скептически отношусь к современной разработке под веб.

Это потому, что тебе не приходилось обновлять клиента для сотни тысяч внешних клиентов. smile

Автор: Zloxa 15.3.2012, 15:17
Цитата(LSD @  15.3.2012,  14:01 Найти цитируемый пост)
Это потому, что тебе не приходилось обновлять клиента для сотни тысяч внешних клиентов.  

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

Я не говорю что веб бесперспективняк. Я лишь говорю, что птенец еще не вылупился и еще даже не понятно что там вобще проклевывается. Рано еще это чудо называть курицей. И использовать его там, где нужны лишь формочки к базам (80% задач корпоративного сектора), получается весьма убого. Но жить с этим, как-то уже можно и сейчас. И живут как-то. Но не уверен, что к этому "как-то" надо осознанно стремиться. Скорее это издержки, которые обуславливают профит совсем в других вещах. И далеко не везде этот профит может быть получен. И далеко не везде эти издержки учитываются при принятии решения, решение нередко принимается под влиянием веяний времени. Мне кажется случай, описанный Акеллой достаточно характерен. Хотели поинновационнее, а в результате всем поплохело.

Цитата(LSD @  15.3.2012,  14:01 Найти цитируемый пост)
Вот у вас счастливых дельфистов, сколько разработчиков и сколько тестировщиков? Что будет в случае 10 минутного простоя системы?

Для того чтобы 10минутный простой не приводил к пи#де и потере бизнеса, мы строим системы с высокой степенью автономности узлов. Возможно да, решения получаются несколько дороже и в разработке и в обслуживании. Но наши магазины будут продавать, даже если наш датацентр взорвется.

Сотен тыщ клиентов у нас нет. У нас есть триста магазинов в Москве и области. В каждом магазине ведется учет делфевой самопиской. Одна инсталляция на магазин, около десятка рабочих мест. Где-то больше - где-то меньше. Поддержкой трехсот инсталляций этой софтины занимаются 2,5 человека. Они отвечают в том числе и за расстановку версий. Расстановка производится вручную. Но не сказал бы я, что расстановка это основное их занятие. Как процесс организован в других наших подразделениях, в других регионах, на других учетных системах - не уверен, но кажется дела обстоят схожим образом. Разработка этой самописки ведется на стороне, но, думаю, не ошибусь, если скажу что разработчиков 1,5-2 человека. Тестированием занимаются и они на своей стороне своими двумя человеками и мы на своей - своими двумя с половиной. Выбор правильного инструментария качественно снижает количество задействованного ресурса  smile  (Тут троллю, конечно. У нас сейчас на жаве новую нескучную POS пишут. Не знаю сколько у них разарботчиков. Я общаюсь только с одним. Но подручные у него помоему есть, так что можно считать что те же 1,5 - 2 человека)

В течении достаточно длительного времени у нас муссировалась тема "облегченной" POS. POS которая не ведет учет, регистриует лишь факты продаж, а приходно/расходные операции оформляются через веб. От идеи пришлось в конце концов отказаться. Мы достаточно жестко ограничены законодательством в ценообразовании, нам нужен строгий партионный учет, который вписать в эту концепцию нам не удалось.

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

Автор: LSD 15.3.2012, 17:45
Цитата(Zloxa @  15.3.2012,  16:17 Найти цитируемый пост)
Так то хром как то умудряется обновляться легко и не принужденно, не заметно для пользователя. Вопрос, я так понимаю, лишь кривизны рук.

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



Цитата(Zloxa @  15.3.2012,  16:17 Найти цитируемый пост)
Я не говорю что веб бесперспективняк. Я лишь говорю, что птенец еще не вылупился и еще даже не понятно что там вобще проклевывается. Рано еще это чудо называть курицей. И использовать его там, где нужны лишь формочки к базам (80% задач корпоративного сектора), получается весьма убого. Но жить с этим, как-то уже можно и сейчас. И живут как-то. Но не уверен, что к этому "как-то" надо осознанно стремиться. Скорее это издержки, которые обуславливают профит совсем в других вещах. И далеко не везде этот профит может быть получен. И далеко не везде эти издержки учитываются при принятии решения, решение нередко принимается под влиянием веяний времени. Мне кажется случай, описанный Акеллой достаточно характерен. Хотели поинновационнее, а в результате всем поплохело.

А кто говорил, что веб интерфейс это серебрянная пуля? Достаточно очевидно, что плохие каналы связи, это первый признак того, что веб гуй тут не подходит.
Что касается обработки больших объемов данных, у нас в соседнем проекте ребята делали систему для аналитики на Flex+Java Server. И ничего система нормально работала, на тормоза никто не жаловался. Справедливости ради надо отметить, что она использовалась только в интранете, так что сетевые задержки были минимальны. Вообще говоря: пользователь больше пары тысяч строк глазами все равно не просмотрит, если данных больше значит нужна фильтрация, группировка или еще как реорганизовывать отображение.

На остальное отвечу позже.

Автор: Zloxa 15.3.2012, 19:51
Цитата(LSD @  15.3.2012,  18:45 Найти цитируемый пост)
 Достаточно очевидно, что плохие каналы связи, это первый признак того, что веб гуй тут не подходит.

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

И, если уж на то пошло, не плохо бы вспомнить, что изначально вся эта веб байда гордо именовалась "тонкий клиент" и предназначалась для использования как раз таки на малостабильных каналах связи  smile  Сейчас иной толстый клиент куда тоньший канал требует ;))

Автор: serger 20.3.2012, 18:30
Delphi мне понравился... Я балдел от него... Пока не пришлось переставлять софт на машине.
Потом каждый раз при необходимости установки и настройки делфей, меня от них тошнило всё больше и больше...
Ну и ещё, было дело, уже когда я сильно их не любил, надо было разобраться с delphi кодом. Очень понравилось выяснять, какие свойства в каком компоненте описаны, как установлены и откуда в коде берётся определённое поведение (а это ок-ся компонент в форму закинут и там установлены определённые свойства). Кстати, с net щас похожие проблемы (недавно надо было разобраться с кодом). Да и много где начинают похожее городить.. Ладно хоть описание форм теперь в xml - для контроля версий лучше.

А сам язык нормальный - есть конечно загибоны (var... interface), но они терпимы...

зы
Цитата(Zloxa @  15.3.2012,  16:17 Найти цитируемый пост)
Я не говорю что веб бесперспективняк. Я лишь говорю, что птенец еще не вылупился и еще даже не понятно что там вобще проклевывается. Рано еще это чудо называть курицей. И использовать его там, где нужны лишь формочки к базам (80% задач корпоративного сектора), получается весьма убого. Но жить с этим, как-то уже можно и сейчас. И живут как-то. Но не уверен, что к этому "как-то" надо осознанно стремиться. Скорее это издержки, которые обуславливают профит совсем в других вещах. И далеко не везде этот профит может быть получен. И далеко не везде эти издержки учитываются при принятии решения, решение нередко принимается под влиянием веяний времени. Мне кажется случай, описанный Акеллой достаточно характерен. Хотели поинновационнее, а в результате всем поплохело.

Веб сложен, потому что каждому охота вы*** со своим дизайном... Были тут умники - приходили пытались научить, как сэкономить на вёрстке... ;)
Ну а формочки в вебе уже давно неплохо так клепаются, в том же grails.

Автор: LSD 21.3.2012, 12:51
Цитата(Zloxa @  15.3.2012,  16:17 Найти цитируемый пост)
Для того чтобы 10минутный простой не приводил к пи#де и потере бизнеса, мы строим системы с высокой степенью автономности узлов. Возможно да, решения получаются несколько дороже и в разработке и в обслуживании. Но наши магазины будут продавать, даже если наш датацентр взорвется.

Это не заслуга Дельфи и не ваша. Просто таков ваш бизнес, что отдельные элементы могут достаточно долго работать в автономном режиме. А есть бизнес где это не возможно. Я не представляю как организовать тот же трейдинг без централизации, так чтобы каждый трейдер торговал сам по себе.




Цитата(Zloxa @  15.3.2012,  16:17 Найти цитируемый пост)
Возможно в банкинге дела обстоят как-то сильно иначе и требования централизации там более насущны. Не знаю. Помню подглядывал в монитор теточки в юниаструме. Пяток лет назад она забивала мои анкетные данные через делфевую формочку на удаленном рабочем столе(кажись цитриксом). Пару же лет назад, уже через вебморду. В обоих случаях пришлось подождать - были какие-то затыки с коннектом. Но юниаструм фиг с ним, там клиентская проходимость низкая. Теточки по большей части чаи гоняют. А вот в сбере бы за это "немножко подождать" сотрудниц офиса линчевала бы очередь негодующих клиентов. В Сбере в каждом отделении стоит автономная система - не знаешь? Или они через веб формы работают? Мне кажется - у них филиалы весьма автономны.

Веб гуй может быть очень отзывчивым особенно если использовать RIA. Могут ли отделения банка работать в автономном режиме, я не очень в курсе. Банковский день надо закрывать централизованно, так что связь должна быть, но вот допустимо ли ее пропадание в середине для - не знаю.



Цитата(Zloxa @  15.3.2012,  20:51 Найти цитируемый пост)
Так то я не столько о каналах связи говорил, сколько о сложностях реализации презентативного слоя. И тут не только верстка. Тут еще кастыльность связи между набором данных и его визуальным отражением. Нечеткое определение сессии, невозможность использования длинных транзакций... Дофига там проблем, не присущих классическим, толстым, клиентам.

Есть куча библиотек которые облегчают эту задачу. Тот же грид на ExtJS реализуется достаточно просто, и при этом он весьма отзывчив. Посмотри их http://www.sencha.com/products/extjs/examples/. При использовании Flex можно вообще использовать мышкокликательное программирование так любимое Дельфистами. Хотя по мере набора опыта, все Flex программисты которых я знаю, перешли на написание гуя руками. Думаю это все от недостатка опыта в разработке веб приложений.

Автор: Zloxa 21.3.2012, 13:34
Цитата(LSD @  21.3.2012,  13:51 Найти цитируемый пост)
Тот же грид на ExtJS реализуется достаточно просто, и при этом он весьма отзывчив.

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

Цитата(LSD @  21.3.2012,  13:51 Найти цитируемый пост)
Веб гуй может быть очень отзывчивым особенно если использовать RIA.

У RIA, если я правильно понял о чем речь, - я вижу основное преимущество не столько в отзывчивости, сколько в возможности иметь собственную сессию c сервером приложений, принцип работы которой отличается от HTTP сессии и ближе к классической клиент-серверной сессии. Это позволяет реализовать пессимистическую стратегию блокирования, которую не возможно реализовать в класическим веб приложении, и которая очень востребована в корпоративном секторе. Например накладную куда проще заблокировать на время ее модификации пользователем, нежели свести воедино результат параллельной работы над ней двух разных пользователей. Если же попытаться заблокировать ресурс в http сессии, возникает непонятка, когда его освобождать, пользователь может закрыть окно редактирования, не завершая сессии и сервер приложения не будет оповещен об этом факте. Да, существуют разнородые кастыли, которые применить для получения желаемого, но даже до статуса органических протезов им весьма далеко.

Я так понимаю Oracle Forms можно отнести к этим самым RIA. Его концепция, в этом отношении, мне очень нравится. Принцип построения вебового приложения не отличается от классического клиент-сервера. Но во всем же остальном, увы, это буквально чудовище.

Flex - не ковырял, но в виду его иметь, наверное стоит. Ораклиный металинк на флексе врой как переписан. Но кто его знает, не ждет ли этот флекс участь жава апплетов, которые казались столь же перспективными еще так недавно. Не будет ли для флекса HTML5 тем же самым, чем стал для апплетов флэш?

Автор: LSD 21.3.2012, 15:31
Цитата(Zloxa @  21.3.2012,  14:34 Найти цитируемый пост)
Его я в том числе и имел в виду, когда говорил о недовылупленности. Да - тема офигенна. Но фора традиционного гуя пока еще далеко не покрыта. Делфевые, доднетные гриды и умеет больше и допиливаются проще.

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


Цитата(Zloxa @  21.3.2012,  14:34 Найти цитируемый пост)
У RIA, если я правильно понял о чем речь, - я вижу основное преимущество не столько в отзывчивости, сколько в возможности иметь собственную сессию c сервером приложений, принцип работы которой отличается от HTTP сессии и ближе к классической клиент-серверной сессии. Это позволяет реализовать пессимистическую стратегию блокирования, которую не возможно реализовать в класическим веб приложении, и которая очень востребована в корпоративном секторе. Например накладную куда проще заблокировать на время ее модификации пользователем, нежели свести воедино результат параллельной работы над ней двух разных пользователей. Если же попытаться заблокировать ресурс в http сессии, возникает непонятка, когда его освобождать, пользователь может закрыть окно редактирования, не завершая сессии и сервер приложения не будет оповещен об этом факте. Да, существуют разнородые кастыли, которые применить для получения желаемого, но даже до статуса органических протезов им весьма далеко.

Есть веб сокеты. Правда они появились недавно, потому не очень распространены пока.

Добавлено через 1 минуту и 8 секунд
Ах да, главная претензия к Дельфям, они наш null обозвали nil! И вы еще спрашиваете за что их не любят?! smile 

Автор: Zloxa 21.3.2012, 16:43
Цитата(LSD @  21.3.2012,  16:31 Найти цитируемый пост)
 наш null


Вам с вашим null и обращаться то достойно не дозволено
Код

if (null==null)
    System.out.println("facepalm.jpg");

user posted image

Автор: LSD 21.3.2012, 16:46
Цитата(Zloxa @  21.3.2012,  17:43 Найти цитируемый пост)
Вам с вашим null и обращаться то достойно не дозволено

А что не так?

Автор: Zloxa 21.3.2012, 16:53
Цитата(LSD @  21.3.2012,  17:46 Найти цитируемый пост)
А что не так? 

Трехзначная логика - где?
Ваш null - значение, характеризующее неопределенное значение.  smile 
Т.е. значение определено, но оно не определено - подвоха не чуствуешь? Принюхался?

Вот оно - достойное поведение:
Код

SQL> select case
  2          when null = null then  'equal'
  3          when null != null then  'not equal'
  4          else 'unknown'
  5        end result
  6  from dual;
 
RESULT
---------
unknown

Автор: LSD 21.3.2012, 17:27
Цитата(Zloxa @  21.3.2012,  17:53 Найти цитируемый пост)
Трехзначная логика - где?

Где-где -- в су-бэ-де smile 



Цитата(Zloxa @  21.3.2012,  17:53 Найти цитируемый пост)
Ваш null - значение, характеризующее неопределенное значение.

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


Цитата(Zloxa @  21.3.2012,  17:53 Найти цитируемый пост)
Вот оно - отстойное поведение:

У тебя опечатка smile 
Что будет в результате?
Код

select length('abc') + length('') from dual

 smile 

Автор: Zloxa 21.3.2012, 18:58
Цитата(LSD @  21.3.2012,  18:27 Найти цитируемый пост)
''

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

Цитата(LSD @  21.3.2012,  18:27 Найти цитируемый пост)
а наш это...  и все

А ваш это недонаш null  smile 

Автор: LSD 22.3.2012, 10:20
Цитата(Zloxa @  21.3.2012,  19:58 Найти цитируемый пост)
К тому же, приняв это как данность, привыкнув к этому, действительно начинаешь понимать, на сколько бесполезно, маразматично и порочно понятие "пустая строка". 

Я так понимаю, следующая стадия это считать, что 0 в числах маразматичен и порочнен, достаточно null smile 
А еще varchar2 в два раза лучше чем varchar smile 

Автор: Lazin 22.3.2012, 11:07
"не любят" - неправильное выражение, скорее не берут в расчет при выборе платформы для разработки приложений, даже под "уиндоус"

Автор: Zloxa 23.3.2012, 11:09
Цитата(LSD @  22.3.2012,  11:20 Найти цитируемый пост)
Я так понимаю, следующая стадия это считать, что 0 в числах маразматичен и порочнен, достаточно null 


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

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

Зато очень хорошо помню что при написании клиентов для других систем приходилось вешать чеки length(str)> 0 вместо обычных not null, т.к. при сохранении формы в базе не заполненные edit box'ы сохранялись как ''. Тоже и при разборе XML "<a/>" текст для этого элемента не определен, но экстракт по "/a/text()"  вернет пустую строку, сохраняем в базе - обманываем not null констрейнты.
Цитата(LSD @  22.3.2012,  11:20 Найти цитируемый пост)
А еще varchar2 в два раза лучше чем varchar 

smile
Варчар круче. Но он пока сферический и в вакууме.
Цитата

Do not use the VARCHAR data type. Use the VARCHAR2 data type instead. Although the VARCHAR data type is currently synonymous with VARCHAR2, the VARCHAR data type is scheduled to be redefined as a separate data type used for variable-length character strings compared with different comparison semantics.

http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements001.htm#SQLRF50978

Автор: LSD 26.3.2012, 10:29
Цитата(Zloxa @  23.3.2012,  12:09 Найти цитируемый пост)
LSD, вот реально, на практике сколько раз тебе доводилось выполнять операцию со строками подобную той, что ты продемонстрировал?
Я вот не припомню.
На том, что length от пустой строки возвращает null я не припомню, чтобы спотыкался даже в начале своего знакомства с оркалом. Обычно длина строки нужна для того чтобы определить больше ли она нуля или же меньше ли ее некое значение.

А часто ли тебе в базе приходится парсить тексты, регулярки и т.п.? smile 



Цитата(Zloxa @  23.3.2012,  12:09 Найти цитируемый пост)
Варчар круче. Но он пока сферический и в вакууме.

В этом весь Оракл. Куча древнего гoвна мамонта, оставшегося с 1979 года. Но за который они крепко держаться, и всех пытаются убедить, что это фича а не баг. Вместо того чтобы придти и сказать, с версия 12 будет обратно несовместима и мы вычистим оттуда весь шлак. Кому влом переписывать сидите на 11.

Автор: Zloxa 26.3.2012, 12:07
Цитата(LSD @  26.3.2012,  11:29 Найти цитируемый пост)
А часто ли тебе в базе приходится парсить тексты, регулярки и т.п.?  

Вообще достаточно часто. Задача "вдувать по расписанию в базу CSV/XML c ftp" уже набила жуткую оскомину.
Но я не понял к чему этот вопрос.

Цитата(LSD @  26.3.2012,  11:29 Найти цитируемый пост)
В этом весь Оракл. Куча древнего гoвна мамонта, оставшегося с 1979 года. Но за который они крепко держаться, и всех пытаются убедить, что это фича а не баг. Вместо того чтобы придти и сказать, с версия 12 будет обратно несовместима и мы вычистим оттуда весь шлак. Кому влом переписывать сидите на 11. 

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

Если ты архаичным гуано называешь именно тип varchar2... К той же категории можно отнести и все строки фискированной длинны, которые в новых проектах никем не используются, но поддерживаются практически всеми движками баз данных. А за счет того, что эти типы данных были опрометчиво стандартизированы, их поддержку придется обеспечивать и в новых, не скучных СУБД, буде такие появятся. Зачем допиливать ансишное поведение ораклиным строкам - вопрос весьма не однозначный. Я, например, не могу на него сходу ответить. Шаблоны это рвет только тем кто не привык к этому. Тем же кто привык, это практически не доставляет неудобства, зато профит - очевиден. Я, лично, не уверен что прейду на varchar, если оракл его реализует, и его отличие от varchar2 будет лишь в части синонимичности пустоты и неопределенности. Мне такой varchar будет определенно менее удобен.

Если ты архаичным гуано зазываешь прочие плюшки от оракла... вроде версионной изоляции транзакций, реализованной в пику имеющихся тогда(да и сейчас) стандартам, не в полной мере их поддерживающих... То, на сколько мне известно, этот тип изоляции уже вройкак пытаются стандартизировать как обособленный, майкрософт его уже с 2005й версии и к себе допилил в какой -то степени. Уж больно офигительно это получилось в конце то концов.


Автор: Akella 26.3.2012, 13:43
http://www.teobit.ru/
и здесь есть несколько сайтов: http://www.teobit.ru/#Portfolio
сайты написан на http://morfik.com/stories_delphi

Автор: LSD 26.3.2012, 14:38
Цитата(Zloxa @  26.3.2012,  13:07 Найти цитируемый пост)
Вообще достаточно часто. Задача "вдувать по расписанию в базу CSV/XML c ftp" уже набила жуткую оскомину.

Ты их парсишь руками (substring/regex)?
Просто когда шаблон совпадает с пустой строкой, получить null вместо этой самой строки довольно неприятно.



Цитата(Zloxa @  26.3.2012,  13:07 Найти цитируемый пост)
Если ты архаичным гуано называешь именно тип varchar2...

Я называю древним гoвном мамонта, несовместимости со стандартом и явные косяки:
- пустые строки
- null и уникальные индексы
- varchar2



Цитата(Zloxa @  26.3.2012,  13:07 Найти цитируемый пост)
К той же категории можно отнести и все строки фискированной длинны, которые в новых проектах никем не используются, но поддерживаются практически всеми движками баз данных.

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

Автор: Zloxa 26.3.2012, 15:36
Цитата(LSD @  26.3.2012,  15:38 Найти цитируемый пост)
Ты их парсишь руками (substring/regex)?

CSV - да.
Для разбора XML есть нативные инструменты.

Цитата(LSD @  26.3.2012,  15:38 Найти цитируемый пост)
Просто когда шаблон совпадает с пустой строкой, получить null вместо этой самой строки довольно неприятно.

Тут я опять не уверен, что понимаю что ты имеешь в виду. Но если бы я наталкивался на эту неприятность, я, наверное, запомнил бы, и, вероятно, понял бы о чем ты ))

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

Цитата(LSD @  26.3.2012,  15:38 Найти цитируемый пост)
- null и уникальные индексы

Это офигенно же! Часто доводится этой фичей пользоваться. Без нее, прям даже не представляю - как без рук. smile

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

Цитата(LSD @  26.3.2012,  15:38 Найти цитируемый пост)
А строки фиксированной длинны использовать приходилось чаще, как правило это некий идентификатор фиксированного формата. 

Я не вижу особых преимуществ хранения идентификаторов фиксированного формата в строках фиксированной длинны. Быть может даст экономию каких то спичек на перфомансе. Сам храню такие в варчар2.

Цитата(LSD @  26.3.2012,  15:38 Найти цитируемый пост)
- varchar2

Этот пункт повторяет первый. Наверно для большей весомости повторен smile 

Цитата(LSD @  26.3.2012,  15:38 Найти цитируемый пост)
Я вот длинные транзакции использовал всего один раз, да и они бы прекрасно сработали и на любой другой базе.

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

Добавлено через 10 минут и 57 секунд
Цитата(Zloxa @  26.3.2012,  16:36 Найти цитируемый пост)
Тут я опять не уверен, что понимаю что ты имеешь в виду. Но если бы я наталкивался на эту неприятность, я, наверное, запомнил бы, и, вероятно, понял бы о чем ты ))

Зато вот, кстати, вспомнилось. Сейчас имею неприятности на интеграции с PG. PG сохраняет пустые строки в not null поля. Эти пустые строки, не будучи не определенными, упаковываются в пустые элементы xml, размеченные в DTD как обязательные и, соответственно успешно валидируется. Блин, неужели это противоречит "человеческой" логике, что если, скажем, поле "номер  документа" или "ГТД" размечены в как обязательные для заполенния, то пустой строки там быть не должно. smile 

Автор: RockClimber 26.3.2012, 18:36
Топик не читал. Выскажу свою версию по сабжу.
Во-первых, Delphi не так уж сильно не любят. Многим просто параллельно. Большинство нелюбящих его тупо не видели никогда, и ругают по принципу "все побежали, и я побежал". Остальные, видимо, никак не могут смириться с тем, что хоронят его уже второй десяток лет, а он, с**ко, никак не умирает  smile  А сейчас, говорят, у Embarcadero продажи растут на 50% в год, так что новая анти-delphi волна не загорами, запасайтесь попкорном.  smile 

Автор: ivanfain 26.3.2012, 20:54
Цитата(RockClimber @  26.3.2012,  18:36 Найти цитируемый пост)
Многим просто параллельно. Большинство нелюбящих его тупо не видели никогда, и ругают по принципу "все побежали, и я побежал".

Я наоборот замечал что ругают как раз те, кто с него ушли. А тем кто не видели его, тем он по-барабану.

Цитата(RockClimber @  26.3.2012,  18:36 Найти цитируемый пост)
а он, с**ко, никак не умирает 

А по мне так он давно мёртв. То, что его продают, ещё ничего не доказывает.

Автор: Akella 28.3.2012, 23:14
Уже говорили, что судя по отзывам, все ЯП мертвы, кроме питона, и тот на таблэтках  smile 

Автор: Stolzen 29.3.2012, 08:33
Цитата(Akella @  29.3.2012,  00:14 Найти цитируемый пост)
Уже говорили, что судя по отзывам, все ЯП мертвы, кроме питона, и тот на таблэтках  smile  

А как же шарп и дядя Билли?  smile 

Автор: LSD 29.3.2012, 11:04
Цитата(Zloxa @  26.3.2012,  16:36 Найти цитируемый пост)
Тут я опять не уверен, что понимаю что ты имеешь в виду. Но если бы я наталкивался на эту неприятность, я, наверное, запомнил бы, и, вероятно, понял бы о чем ты ))

Ну например вычислить сколько пробелов надо для padding-а:
Код

col_width - length(resulting_string)

и вместо ожидаемого col_width получаем null. Очень мило smile 



Цитата(Zloxa @  26.3.2012,  16:36 Найти цитируемый пост)
Я не вижу особых преимуществ хранения идентификаторов фиксированного формата в строках фиксированной длинны. Быть может даст экономию каких то спичек на перфомансе. Сам храню такие в варчар2.

Обратно, нет никаких причин отказываться от них.



Цитата(Zloxa @  26.3.2012,  16:36 Найти цитируемый пост)
Этот пункт повторяет первый. Наверно для большей весомости повторен

Наверно для того чтобы напомнить, что даже в такой простой вещи как типы данных Оракл умудрился выпендриться и сделать полностью несовместимую вещь. Простейщий create table не перенесешь на другую СУБД, без ручной правки.
Цитата(Zloxa @  26.3.2012,  13:07 Найти цитируемый пост)
А varchar2 называется так чтобы не путали с ансишным вачрчаром, т.к. его поведение, в части сравнения с null отличается от описанного в стандартах.

Тип DATE тоже не соответствует стандарту, но что-то они не спешат вводить DATE2 smile 



Цитата(Zloxa @  26.3.2012,  16:36 Найти цитируемый пост)
Зато вот, кстати, вспомнилось. Сейчас имею неприятности на интеграции с PG. PG сохраняет пустые строки в not null поля. Эти пустые строки, не будучи не определенными, упаковываются в пустые элементы xml, размеченные в DTD как обязательные и, соответственно успешно валидируется. Блин, неужели это противоречит "человеческой" логике, что если, скажем, поле "номер  документа" или "ГТД" размечены в как обязательные для заполенния, то пустой строки там быть не должно.

Ты явно не понимаешь проблему, но пытаешься переложить ее на PG. У тебя проблема с валидацией входных данных, поля "номер  документа" или "ГТД" не могут быть не только пустыми строками, но и строками состоящими только из пробелов, не может там быть и иероглифов и т.д. Оракл выполнял за тебя одну простейшую проверку и ты почему-то решил, что это круто и этого достаточно.

Автор: Akella 29.3.2012, 12:28
http://www.spring4d.org/

Автор: Zloxa 29.3.2012, 12:42
Цитата(LSD @  29.3.2012,  12:04 Найти цитируемый пост)
код SQL
1:
col_width - length(resulting_string)

и вместо ожидаемого col_width получаем null. Очень мило  

А как бы ты падил на другой, более православной, субэдэ? Где исходная строка может принимать как не определенное значение, так и значение пустой строки? Если у тебя поле nullable, тебе всяко пришлось бы на это закладываться. Если нет, то - нет.

Цитата(LSD @  29.3.2012,  12:04 Найти цитируемый пост)
Ты явно не понимаешь проблему

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

Цитата(LSD @  29.3.2012,  12:04 Найти цитируемый пост)
ожидаемого 

Это ключевое слово. Ты не приывк работать с неопределенностью, не имеешь ее в виду, но пытаешься использовать устоявшиеся практики работы с другим инструментом. Это выглядит почти http://forum.vingrad.ru/index.php?showtopic=345645&view=findpost&p=2472112. Только вот в данном конкретном случае, у меня не создается впечатления что ты прикалываешься. Возможно ты делаешь это черезмерно уж тонко, а я, как баран, веду с тобой беседу на полном серьезе.


Цитата(LSD @  29.3.2012,  12:04 Найти цитируемый пост)
Тип DATE тоже не соответствует стандарту, но что-то они не спешат вводить DATE2

Да, было бы классно. Меня задолбало всякий раз придумывать имя для атрибута даты сущности, не пересекающееся с зарезервированными словами. Зачастую приходится его префиксовать именем сущности. Масло же масленное выходит... ASN.ASN_DATE  smile. DATE2, определенно, решило бы эту проблему  smile 

Автор: LSD 29.3.2012, 15:25
Цитата(Zloxa @  29.3.2012,  13:42 Найти цитируемый пост)
А как бы ты падил на другой, более православной, субэдэ? Где исходная строка может принимать как не определенное значение, так и значение пустой строки? Если у тебя поле nullable, тебе всяко пришлось бы на это закладываться.

Это может быть не только поле, но и результат substr или trim.



Цитата(Zloxa @  29.3.2012,  13:42 Найти цитируемый пост)
Да, я действительно не понимаю принципиального различия между пустой строкой и не определенным значением. Я действительно не могу придумать что может характеризовать пустая строка иначе как неопределенность. 

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



Цитата(Zloxa @  29.3.2012,  13:42 Найти цитируемый пост)
Это ключевое слово. Ты не приывк работать с неопределенностью, не имеешь ее в виду, но пытаешься использовать устоявшиеся практики работы с другим инструментом. Это выглядит почти так же.

Ожидаемый это не только привычки, но и поведение других типов. Почему для чисел 0 и null это разные вещи? Почему в CLOB или RAW пустая строка и null это разные вещи?



Цитата(Akella @  29.3.2012,  13:28 Найти цитируемый пост)
http://www.spring4d.org/

Что ты тут со своим Дельфи, не видишь у нас тут уже ораклосрач smile 

Автор: Zloxa 29.3.2012, 17:04
Цитата(LSD @  29.3.2012,  16:25 Найти цитируемый пост)
Это может быть не только поле, но и результат substr или trim.

И substr и trimm могут быть применены к nullable значению. Потому на то, что в результате будет is null все равно, как правило, приходится закладываться.

На счет результата тримма от заведомо определенного значения, что правильнее вернуть null или '', действительно не столь уж и очевидно. Но с сабстром.... Он вернет null лишь в том случае, если ты у него запросишь то, неведомо что. Неопределеность, в этом случае, мне кажется, куда ближе соответствует естественной логике нежели пустая строка.

Цитата(LSD @  29.3.2012,  16:25 Найти цитируемый пост)
Ожидаемый это не только привычки, но и поведение других типов. 

Весьма же нелепый тезис. Если мы будем основывать свои ожидания на поведенческих особенностях других типов, дождемся что в результате "100"+"500" в результате станем ожидать"600". 

Цитата(LSD @  29.3.2012,  16:25 Найти цитируемый пост)
Почему 0 может характеризовать что-то отличное от неопределенности, а пустая строка - нет?

У меня нет практики работы с системой, где null эквивалентно 0. Я не могу оценить эту идею.
У меня есть практика работы с системой, где null эквивалентно ''. И мне действительно не понятно что вызывает такой сильный анальный зуд. Неудобства эта особенность особого не доставляет. Профит, хоть и не бессомненный, от этого, какой, да есть. Причины с этим что-то срочно делать, для меня далеко не очевидны. Оснований назвать это прям уж таки порочной практикой у меня - нет. На этом и строятся мои сомнения в действительной полезности такого понятия, как пустая строка. Твои же попытки раскрыть ее несомненную пользу, пока, я оцениваю как тщетные.

Цитата(LSD @  29.3.2012,  16:25 Найти цитируемый пост)
Плюс абзац был посвящен вовсе не пустым строкам, но ты почему-то полностью проигнорировал все что написано дальше.

Я тебе начал было отвечать на тот абзац, но получилось уныло и не интересно.

Цитата(LSD @  29.3.2012,  16:25 Найти цитируемый пост)
ораклосрач 

Я вообще не понимаю о чем тут сраться. Я не нахожу что продукты оракла являются верхом эстетики. Скорее наоборот. Я согласен с тем, что у оракла весьма дурной вкус. smile 

Автор: RockClimber 29.3.2012, 23:11
Цитата(ivanfain @  26.3.2012,  20:54 Найти цитируемый пост)
А по мне так он давно мёртв. То, что его продают, ещё ничего не доказывает.

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

Автор: RockClimber 29.3.2012, 23:41
Вот, кстати, к вопросу о том, "за что не любят делфи": http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=898212&msg=11665115 Очень показательна критика некоторых товарищей, которые искренне считают, что их любимые крутейшие фичи появились именно в дотнете, а не в delphi десятью годами ранее  smile 

Автор: Akella 30.3.2012, 11:37
RockClimber, у LSD и Zloxa уже сраз пошёл в другую тему, как мне показалось  smile , просто междуусобица

Автор: LSD 30.3.2012, 12:18
Цитата(Zloxa @  29.3.2012,  18:04 Найти цитируемый пост)
И substr и trimm могут быть применены к nullable значению. Потому на то, что в результате будет is null все равно, как правило, приходится закладываться.

На счет результата тримма от заведомо определенного значения, что правильнее вернуть null или '', действительно не столь уж и очевидно. Но с сабстром.... Он вернет null лишь в том случае, если ты у него запросишь то, неведомо что. Неопределеность, в этом случае, мне кажется, куда ближе соответствует естественной логике нежели пустая строка.

substr и trimm от неопределенного значения должны вернуть неопределенной значение или выкинуть эксепшн (смотря что поддерживается языком).
substr и trimm при корректных параметрах должны вернуть конкретное значение. Т.е. если запросили substr(5, 0) то и вернутся должна пустая строка или должно быть отдельно оговорено в контракте substr() что length должен быть строго больше нуля иначе будет эксепшн.



Цитата(Zloxa @  29.3.2012,  18:04 Найти цитируемый пост)
Весьма же нелепый тезис. Если мы будем основывать свои ожидания на поведенческих особенностях других типов, дождемся что в результате "100"+"500" в результате станем ожидать"600". 

1. На самом деле твой пример содержит ошибку (или это сознательное мухлевание? smile ). Операция сложения к строкам не применима, к строкам применима операция конкатенации и даже если они обе обозначаются одним символом, это не значит что это одна и та же операция smile 
2. По твоей логике мы не должны ожидать что результат сложения целых и дробных чисел будет одинаков, типы данных то разные.
3. Есть тип CLOB, который от VARCHAR2 отличается только реализацией, почему там другое поведение?



Цитата(Zloxa @  29.3.2012,  18:04 Найти цитируемый пост)
У меня нет практики работы с системой, где null эквивалентно 0. Я не могу оценить эту идею.

А какие еще СУБД/ЯП реализуют подобную логику? Как думаешь почему?

Автор: lukas 30.3.2012, 12:50
Вам не надоело строчить столько текста друг другу?  smile 

Автор: Zloxa 30.3.2012, 13:37
Цитата(LSD @  30.3.2012,  13:18 Найти цитируемый пост)
А какие еще СУБД/ЯП реализуют подобную логику?

А какие ЯП(кроме SQL) реализуют трехзначную логику? smile
Стоит ли лишь на этом основании срать кирпичами на SQL, требовать сделать как у всех нормальных языков, чтоб LSD удобно было?

Цитата(LSD @  30.3.2012,  13:18 Найти цитируемый пост)
Т.е. если запросили substr(5, 0) то и вернутся должна пустая строка

Почему именно пустая строка? Это же абсурд! Должно вернуться не определенное значение. Это же логично!
Цитата(LSD @  30.3.2012,  13:18 Найти цитируемый пост)
или должно быть отдельно оговорено в контракте substr() что length должен быть строго больше нуля иначе будет эксепшн.

Если в документации оговорено что "If substring_length is less than 1, then Oracle returns null.", то, как бе все по контракту и получается что все пучком  smile 

Цитата(LSD @  30.3.2012,  13:18 Найти цитируемый пост)
должны 

Кому должны, LSD? И почему должны? Потому что так сделано в яве? Потому что так сделано у майкрософта? Потому что тебе так привычно? smile

Цитата(LSD @  30.3.2012,  13:18 Найти цитируемый пост)
2. По твоей логике мы не должны ожидать что результат сложения целых и дробных чисел будет одинаков, типы данных то разные.

Сложение может и будет одинаково. Но вот деление, по твоей логике, должно бы работать тоже одинаково?
Код

      System.out.println((float)10/(float)3);
      System.out.println((int)10/(int)3);

Цитата

3.3333333
3

:facepalm

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

Цитата(LSD @  30.3.2012,  13:18 Найти цитируемый пост)
3. Есть тип CLOB, который от VARCHAR2 отличается только реализацией, почему там другое поведение?

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

Автор: Zloxa 30.3.2012, 14:21
Нуи, в общем, так.... 

Мне не нравится что наша дискусия перешла в русло очевидных для меня вещей. Я бы был более склонен обсудить вещи для меня не столь очевидные. В частности - разница null и "". Я, привыкнув к ораклу, действительно ее перестал улавливать. И чтобы ее уловить(или же убедиться что ее нет), мне таки требуется стороннее мнение.

 - Я не нахожу принципиальной разницы в том, используем ли мы четыре буквы или два символа для обозначения суть одного и того же. 
 - Я не нахожу неудобным то, что взятие функции length от null возвращает null. Там, где нужно получить 0 вместо null, ничего не мешает использовать nvl
 - Меня очень радует, что конкатенация с null в результате дает не null а эквивалент конкатенации с пустой строкой. В системах, где null не эквивалентен пустой строке, это, временами, несколько усложняет жизнь, а профит от этого для меня не очевиден. Конкатенацию строк мне доводится пользовать много чаще расчета длины строки.
 - Меня очень радует, что после отображения строки в элементе управления, по команде пользователя "сохранить", мне не надо думать о том, как ее сохранять: как null, каким это значение было до того, как было помещено в элемент управления, или же как пустую строку, которая хранится в элементе управления.

Я действительно не способен смоделировать ситуации, когда различение null и пустой строки - принципиально.

По этой причине я нахожу лишним одно из двух. Либо строки не должны быть nullable, либо строки, в принципе не должны быть пустыми. Варианты, в принципе, равнозначны, у каждого есть плюсы, у каждого есть минусы. Ненулобельная строка всегда будет считаться count'ом и сохраняться в индексе, что очень досадно. В то же время для nullaбельной строки length может вернуть null, что тоже досадно, но имхо - не на столько же.

Автор: Akella 30.3.2012, 14:36
Цитата(lukas @ 30.3.2012,  12:50)
Вам не надоело строчить столько текста друг другу?  smile

У них просто работы нет  smile , нужно же чем-то заняться

Автор: kemiisto 30.3.2012, 14:37
10 страниц оффтопа про nil и пустую строку. МОГЁТЕ! smile 

Автор: LSD 30.3.2012, 14:42
Цитата(Zloxa @  30.3.2012,  14:37 Найти цитируемый пост)
А какие ЯП(кроме SQL) реализуют трехзначную логику? 
Стоит ли лишь на этом основании срать кирпичами на SQL, требовать сделать как у всех нормальных языков, чтоб LSD удобно было?

Не передергивай, там еще и СУБД упоминались. В каких СУБД кроме Оракла пустая строка эквивалентна null? И какое отношения эквивалентность '' и null имеет к трехзначной логике?


Цитата(Zloxa @  30.3.2012,  14:37 Найти цитируемый пост)
Если в документации оговорено что "If substring_length is less than 1, then Oracle returns null.", то, как бе все по контракту и получается что все пучком

Опиши контракт полностью и нелогичность станет очевидна smile 


Цитата(Zloxa @  30.3.2012,  14:37 Найти цитируемый пост)
Но вот деление, по твоей логике, должно бы работать тоже одинаково?

Наверно я тебя удивлю, но деление бывает двух видов: целочисленное и дробное. Для разных типов может использоваться разное деление как в Java/C++ или одно и то же как в Deplhi. Но поведение деления одинаково для byte/short/int/long и для float/double.


Цитата(Zloxa @  30.3.2012,  14:37 Найти цитируемый пост)
Клоб, чар и варчар это совершенно разные типы, имеют различное предназначение, различную механику и нет ничего странного в том, что они имеют разную специфику. Почему ты не находишь странным ожидать от чара поведения подобного варачару, но не находишь странным ожидать того же от клоба?

И в чем же принципиальная разница между CLOB и VARCHAR2? (ограничения на максимальную длинну, методы по работе с типом и т.д., это не принципиальные ограничения, это детали реализации)

Автор: Zloxa 30.3.2012, 15:40
Цитата(LSD @  30.3.2012,  15:42 Найти цитируемый пост)
Не передергивай, там еще и СУБД упоминались. В каких СУБД кроме Оракла пустая строка эквивалентна null? И какое отношения эквивалентность '' и null имеет к трехзначной логике?

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

Цитата(LSD @  30.3.2012,  15:42 Найти цитируемый пост)
Опиши контракт полностью и нелогичность станет очевидна 

Я не понял о чем ты говоришь.

Цитата(LSD @  30.3.2012,  15:42 Найти цитируемый пост)
Наверно я тебя удивлю, но деление бывает двух видов: целочисленное и дробное. Для разных типов может использоваться разное деление как в Java/C++ или одно и то же как в Deplhi. Но поведение деления одинаково для byte/short/int/long и для float/double.

Наверное я тебя удивлю, но строки бывают разных типов.. для разных типов может.... бла бла бла....

Цитата(LSD @  30.3.2012,  15:42 Найти цитируемый пост)
И в чем же принципиальная разница между CLOB и VARCHAR2?

В чем принципиальная разница null и ''?

Автор: LSD 30.3.2012, 16:50
Цитата(Zloxa @  30.3.2012,  16:40 Найти цитируемый пост)
Зачем сводить все к тому, что сотни мух не могут ошибаться?

Тут более уместна другая аналогия: "Вся рота идет не в ногу, один прапорщик в ногу".


Цитата(Zloxa @  30.3.2012,  16:40 Найти цитируемый пост)
Я не понял о чем ты говоришь.

Цитата
Returns a new string that is a substring of this string. The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex-beginIndex.

Если добавить сюда замечание насчет того что If length of the substring is zero, than null would be returned это будет выглядеть как явное исключение из общего правила. Ради чего нарушать единообразие?


Цитата(Zloxa @  30.3.2012,  16:40 Найти цитируемый пост)
Наверное я тебя удивлю, но строки бывают разных типов.. для разных типов может.... бла бла бла....

Расскажи поподробней про разные типы строк.


Цитата(Zloxa @  30.3.2012,  16:40 Найти цитируемый пост)
В чем принципиальная разница null и ''?

Расскажу, но после того как ты ответишь на вопрос.

Автор: Zloxa 30.3.2012, 17:42
Цитата(LSD @  30.3.2012,  17:50 Найти цитируемый пост)
Ради чего нарушать единообразие?

Ради чего его соблюдать?

Цитата(LSD @  30.3.2012,  17:50 Найти цитируемый пост)
Расскажи поподробней про разные типы строк.

Клоб - не строка. Сравнивать варчар с клобом, имхо, все равно что сравнивать строку со стримом или с чем то вроде. Может не самая лучшая аналогия, но в целом - как то так. Clob, объявленный как переменная, переменной по факту не явлется. Он является локатором, посредством которого ты можешь получить доступ к этим неким текстовым данным. То же самое и в таблице.

Ты бы стал задаваться вопросом в чем разница между строкой и чарактерстримом? Просто ли бы тебе было сформулировать эту разницу, если бы ответ на этот идиотский вопрос с тебя настойчиво требовали?

Цитата(LSD @  30.3.2012,  17:50 Найти цитируемый пост)
Расскажу, но после того как ты ответишь на вопрос.

Как смог - рассказал. Жду.

Автор: LSD 30.3.2012, 19:12
Цитата(Zloxa @  30.3.2012,  18:42 Найти цитируемый пост)
Ради чего его соблюдать?

Каждый exceptional case потенциальный источник ошибок.



Цитата(Zloxa @  30.3.2012,  18:42 Найти цитируемый пост)
Клоб - не строка. Сравнивать варчар с клобом, имхо, все равно что сравнивать строку со стримом или с чем то вроде. Может не самая лучшая аналогия, но в целом - как то так. Clob, объявленный как переменная, переменной по факту не явлется. Он является локатором, посредством которого ты можешь получить доступ к этим неким текстовым данным. То же самое и в таблице.

В общем случае стрим отличается от строки тем что: 
- стрим имеет неизвестную длинну (в частном случае мы можем узнать ожидаемое количество данных)
- стрим поступает из некого внешнего источника данных и поступление может неожиданно прерваться
Стрим это некая абстракция с помощью которой можно получить доступ к данным, но это не единственно возможная абстракция. Например файл можно прочесть и как стрим, можно с помощью RandomAccessFile читать произвольные байты, можно замапить как memory mapped files - 3 разных абстракции для одно и того же файла, но файл то один smile
Я не вижу у CLOB как типа данных никаких особенных качеств по сравнению с VARCHAR2. Есть только особенности реализации, связанные с ограничением по памяти, производительности и т.п., но по сути та же строка.



Цитата(Zloxa @  30.3.2012,  18:42 Найти цитируемый пост)
Ты бы стал задаваться вопросом в чем разница между строкой и чарактерстримом? Просто ли бы тебе было сформулировать эту разницу, если бы ответ на этот идиотский вопрос с тебя настойчиво требовали?

Если я не знаю ответ на некий вопрос (каким бы дурацким он не казался), это повод задуматься действительно я понимаю эту разницу. Или я просто привык и перестал задаваться "дурацкими вопросами", но сути не понимаю.

Автор: Zloxa 30.3.2012, 20:52
Цитата(Zloxa @  30.3.2012,  18:42 Найти цитируемый пост)
Жду


Автор: RockClimber 31.3.2012, 20:14
LSD, Zloxa!
У ну пошли вон со своим эскуэлем из делфисрача!  smile 

Автор: ivanfain 2.4.2012, 04:14
Цитата(Akella @  29.3.2012,  12:28 Найти цитируемый пост)
http://www.spring4d.org/ 

Где ты такое откапываешь? Ты им сам пользовался? Если нет, то пожалуйста, не рекомендуй дабы не позорится.

Автор: RockClimber 2.4.2012, 22:34
Как умирает Delphi: наблюдаем в деталях.
Вот http://www.tdelphiblog.com/2012/04/samoe-interesnoe-v-delphi-blogah-za.html список только самых интересных статей (по мнению составителя) из Delphi-блогов за 2011-й год. Чтоб я всю жизнь так умирал  smile 

Автор: Lazin 3.4.2012, 22:21
Цитата(RockClimber @ 2.4.2012,  22:34)
Как умирает Delphi: наблюдаем в деталях.
Вот http://www.tdelphiblog.com/2012/04/samoe-interesnoe-v-delphi-blogah-za.html список только самых интересных статей (по мнению составителя) из Delphi-блогов за 2011-й год. Чтоб я всю жизнь так умирал  smile

Добрая половина статей написана Реймондом Ченом совсем не о delphi, все остальное - неинтересные статьи про delphi smile

Добавлено через 6 минут и 51 секунду
Итак, внимание! Заходим вот сюда: http://stackoverflow.com/tags
Видим самый популярный тег - c#, почти 300k вопросов. Вбиваем в поле ввода "delphi" и видим, что самый популярный тег не дотягивает до 15к вопросов, delphi теги, все вместе, едва дотягивают до 17k. И где здесь популярность? Для сравнения, тег haskell - 6k. Тег perl - 18k. C++ - 120k. smile 
Это говорит о том, что delphi в мире используют примерно так же часто как перл.  smile 

Автор: RockClimber 6.4.2012, 20:24
Цитата(Lazin @  3.4.2012,  22:21 Найти цитируемый пост)
 И где здесь популярность?

Так он умер или просто непопулярный? Или это одно и то же? А за что его не любить? За то, что уже умер, или за то, что никак не умрет? Объясните, а то я уже запутался. smile 

Автор: k0rvin 11.4.2012, 13:23
Возможно одна из причин то, что в Эмбаркадеро упоротые люди работают?
Цитата
1. Многие - да - признают язык Паскаль, как не просто "хороший", а "самый лучший" для обучения программированию. Исследования в Великобритании показали, что школьники, изучающие информатику и программирование на Delphi, получают более высокий рейтинг по "их" ЕГЭ. А C# (Visual Basic .NET), С/С++ и Java вообще рекомендуют изъять из обучающих технологий. Но современный Object Pascal такой же мощный, как и другие ОО языки, каким он стал после Delphi 2010 (с новой RTTI) и Delphi 2009 (Unicode, методы в записях, generics и т.д.). И реализация FireMonkey на 100% чистом ObjectPascal - явное тому доказательство.

http://www.delphinotes.ru/2012/03/blog-post.html

Автор: Alexeis 11.4.2012, 14:51
Цитата(RockClimber @  6.4.2012,  21:24 Найти цитируемый пост)
Так он умер или просто непопулярный? Или это одно и то же? А за что его не любить?

  Можно не любить за то что не популярный. Потому что код написанный на непопулярном языке сложнее сопровождать и развивать. 
  На самом деле ответ на вопрос ТС был дан еще 10 страниц назад. Собственно он состоит в том, что легкость освоения привело к засилию его быдлокодерами, которых собственно и не любят. Отсюда параллель язык для быдлокодеров. 

Автор: RockClimber 13.4.2012, 19:01
Цитата(Alexeis @  11.4.2012,  14:51 Найти цитируемый пост)
На самом деле ответ на вопрос ТС был дан еще 10 страниц назад.
У меня в настройках форума стоит "50 постов на страницу". Так что я пока на шестой  smile 

Цитата(Alexeis @  11.4.2012,  14:51 Найти цитируемый пост)
Собственно он состоит в том, что легкость освоения привело к засилию его быдлокодерами, которых собственно и не любят. Отсюда параллель язык для быдлокодеров. 
А виноват язык, ага. Очень хороший показатель уровня интеллекта тех, кто так считает. Экстраполируя мысль, рискну предположить, что абсолютно лучший язык - это тот, который не освоит никто вообще  smile 

Автор: Akella 16.4.2012, 16:26
Цитата(Lazin @  3.4.2012,  22:21 Найти цитируемый пост)
Видим самый популярный тег - c#, почти 300k вопросов. Вбиваем в поле ввода "delphi" и видим, что самый популярный тег не дотягивает до 15к вопросов, delphi теги, все вместе, едва дотягивают до 17k. И где здесь популярность?


Почему именно так определяешь популярность?

Автор: Akella 16.4.2012, 19:32
Цитата(ivanfain @ 2.4.2012,  04:14)
Цитата(Akella @  29.3.2012,  12:28 Найти цитируемый пост)
http://www.spring4d.org/ 

Где ты такое откапываешь? Ты им сам пользовался? Если нет, то пожалуйста, не рекомендуй дабы не позорится.

Тебя кто-то заставляет или в чем проблема?

Автор: Akella 12.5.2012, 14:56
Цитата(LSD @  30.1.2012,  14:00 Найти цитируемый пост)
Дельфи провоцирует разработчиков разводить ### в коде. Щелкнул мышкой на кнопку и получил свой Button111OnClick, и прям там и накодил логику. А когда потом надо будет разделить бизнес логику и слой презентации, хрен это у тебя получится.


Можно в коде создать кнопку, написать процедуру и присвоить её событию на нажатие кнопки, или я не понял чего-то?

Вот тебе нужно написать некий код, процедуру, например, создания и показа окна. Чтобы пользователь нажал кнопку на панели или выбрал меню, или использовал клавиши быстрого доступа? Как ты будешь делать?

Ну так, кратенько.
В дельфи есть такая компонента, как ActionList, там можно создать action(ы) с некоторыми свойствами/событиями. Затем присвоить созданный action кнопке(ам), меню, "горячим" клавишам. Всё.

Добавлено @ 14:58
Я не пытаюсь типа спорить, если так это можно назвать, мне просто интересно.

Автор: LSD 12.5.2012, 15:03
Цитата(Akella @  12.5.2012,  15:56 Найти цитируемый пост)
Можно в коде создать кнопку, написать процедуру и присвоить её событию на нажатие кнопки, или я не понял чего-то?

Не можно, а нужно. Но кто же будет так делать, когда есть способ проще. Когда Борланд сваяла свой JBuilder который и в Яве позволял делать то же самое Щелкнул мышкой на кнопку и получил свой Button111OnClick, то и на Яве появилось достаточно количество проектов в таком же стиле. Но потом JBuilder умер smile 

Автор: Akella 12.5.2012, 16:33
Ну так как же всё-таки правильно, по твоему?

Автор: LSD 12.5.2012, 17:18
Правильно разделять представление и бизнес логику.

Автор: Akella 12.5.2012, 17:35
нет, ну конкретнее, как быть в той ситуации?

Автор: k0rvin 17.5.2012, 11:14
Цитата(Akella @ 12.5.2012,  17:35)
нет, ну конкретнее, как быть в той ситуации?

Мне, например, нравится, как это сделано у Apple:

1.
Код

// ViewController.h
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (nonatomic, retain) IBOutletCollection(UITextField) NSArray *name;

- (IBAction)setFieldsEnabled:(UISwitch *)sender;
- (IBAction)setRightAlign:(UISwitch *)sender;

@end

Код

// ViewController.m
#import "ViewController.h"

@implementation ViewController

@synthesize name;

- (void)setFieldsEnabled:(UISwitch *)sender {
    BOOL state = [sender isOn];
    for (UITextField *field in name) {
        [field setEnabled:state];
    }
}

- (void)setRightAlign:(UISwitch *)sender {
    UITextAlignment alignment = [sender isOn] ? UITextAlignmentRight : UITextAlignmentLeft;
    for (UITextField *field in name) {
        [field setTextAlignment:alignment];
    }
}

@end

http://www.youtube.com/watch?v=_KAtEK7j06Y

2.
Код

// Model.h
#import <Foundation/Foundation.h>

@interface Model : NSObject

@property (nonatomic) NSInteger value;

@end

Код

// Model.m
#import "Model.h"

@implementation Model

@synthesize value;

@end

http://www.youtube.com/watch?v=MIo5EF2zDBY

Автор: LSD 17.5.2012, 12:18
Цитата(Akella @  12.5.2012,  18:35 Найти цитируемый пост)
нет, ну конкретнее, как быть в той ситуации?

Что ты подразумеваешь под "конкретнее", ты хочешь код что ли?

Автор: Akella 17.5.2012, 12:48
Цитата(LSD @ 12.5.2012,  15:03)
Цитата(Akella @  12.5.2012,  15:56 Найти цитируемый пост)
Можно в коде создать кнопку, написать процедуру и присвоить её событию на нажатие кнопки, или я не понял чего-то?

Не можно, а нужно. Но кто же будет так делать, когда есть способ проще. Когда Борланд сваяла свой JBuilder который и в Яве позволял делать то же самое Щелкнул мышкой на кнопку и получил свой Button111OnClick, то и на Яве появилось достаточно количество проектов в таком же стиле. Но потом JBuilder умер smile

Ты хочешь сказать, что всё нужно делать в коде? И не заниматься "компонентомкидательством" на форму?

Автор: LSD 17.5.2012, 13:56
Цитата(Akella @  17.5.2012,  13:48 Найти цитируемый пост)
Ты хочешь сказать, что всё нужно делать в коде? И не заниматься "компонентомкидательством" на форму?

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

Автор: Zloxa 17.5.2012, 14:21
Цитата(LSD @  17.5.2012,  14:56 Найти цитируемый пост)
Вообще по хорошему действие и его вызов из гуя должны быть настраиваемыми. Т.е. мы можем повесить хоткей на некое действие, можем добавить кнопку на тулбар, или создать свое главное или контекстное меню, куда добавить это действие.

Акелла правильно кивнул на TAction. Он именно этим и занимается. Ввели, емнип в еще 5й делфе.

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

Всамделе - бомба вещь. smile 

Автор: ivanfain 20.5.2012, 16:06
Цитата(LSD @  17.5.2012,  13:56 Найти цитируемый пост)
Если ты делаешь действительно сложный гуй - то да.

Не правда. Сложный гуй проще сделать в дизайнере, потому как у тебя нервов не хватит каждый раз запускать проект, дабы передвинуть контрол на пиксель в лево, потомы что он почему-то совсем не смотрится. Уже давно люди поняли, что гуй десктопных приложений нужно делать в дизайнере, только явистам это пока не всем дошло. Ну так вы посмотрите и на программы, написанные на яве.
В обработчике Button1OnClick можно создать класс, который вызовет один единственный метод, вот и всё. Ну и конечно там можно писать всё, что касается гуя.
Если вы не согласны, что сложный гуй можно сделать в дизайнере, то скажите, много ли вы знаете насколько динамичных гуев, который сложно сделать размещением компонентов на форму? Вокруг меня: хром, ворд, тоталкомандер, скайп и тд. не помню программы, где гуй каждую секунды с ног на голову переворачивается.
А вот, что касается размещения на форме Не визуальных компонетов, и не имеющих отношения к гую - это, простите, быдлокод.

Автор: serger 21.5.2012, 07:35
ivanfain, бред.
Полностью не согласен.

Автор: Zloxa 21.5.2012, 09:11
Цитата(ivanfain @  20.5.2012,  17:06 Найти цитируемый пост)
А вот, что касается размещения на форме Не визуальных компонетов, и не имеющих отношения к гую - это, простите, быдлокод. 

Тут согласен. Процесс ручного фомрирования километровых XML конфигов - дает куда большее удовлетворение и яркий экстаз, если это наконец заработает.  smile 

Автор: LSD 21.5.2012, 14:20
Цитата(ivanfain @  20.5.2012,  17:06 Найти цитируемый пост)
Не правда. Сложный гуй проще сделать в дизайнере, потому как у тебя нервов не хватит каждый раз запускать проект, дабы передвинуть контрол на пиксель в лево, потомы что он почему-то совсем не смотрится. Уже давно люди поняли, что гуй десктопных приложений нужно делать в дизайнере

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

Автор: Zloxa 21.5.2012, 14:35
Цитата(LSD @  21.5.2012,  15:20 Найти цитируемый пост)
И в результате получаем гуй состоящий из нагромождения контролов и который может работать в одном разрешении экрана.

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

Автор: LSD 21.5.2012, 16:08
Цитата(Zloxa @  21.5.2012,  15:35 Найти цитируемый пост)
Наверное ты не о разрешении а об коэффиценте увеличения

Нет именно про разрешение. Если компоненты выравниваются попиксельно, то ни о каком изменении размеров окна и речи не идет.

Автор: Zloxa 21.5.2012, 16:41
Цитата(LSD @  21.5.2012,  17:08 Найти цитируемый пост)
Нет именно про разрешение. Если компоненты выравниваются попиксельно, то ни о каком изменении размеров окна и речи не идет. 

Есть крюки (емнип, называются anchos), которые можно определить для визуального компонента и сразу же проверить, в дизайнере, как это будет работать при растягивании/сжатии формы. Появилась плюшка не сразу. Кажись в седьмой делфе, возможно в пятой. Раньше резиновые формы приходилось делать панелями. Чуть менее удобно, но куда удобнее, нежели лапами кодить.

Автор: ivanfain 21.5.2012, 17:50
Цитата(Zloxa @  21.5.2012,  09:11 Найти цитируемый пост)
Тут согласен. Процесс ручного фомрирования километровых XML конфигов - дает куда большее удовлетворение и яркий экстаз, если это наконец заработает.    

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

Цитата(LSD @  21.5.2012,  16:08 Найти цитируемый пост)
Нет именно про разрешение. Если компоненты выравниваются попиксельно, то ни о каком изменении размеров окна и речи не идет. 

 smile 
Цитата(Zloxa @  21.5.2012,  16:41 Найти цитируемый пост)
Есть крюки (емнип, называются anchos), которые можно определить для визуального компонента и сразу же проверить, в дизайнере, как это будет работать при растягивании/сжатии формы.

Всё решается, разрешение экрана уже давно не является страшной проблемой при визуальном проектировании приложения. Тем более, никто не запрещает и с кода какие-то элементы подвинуть. Другое дело полностью на mvc приложение делать. В общим у кого нету опыта с обоими юзезкейсами, тому не понять. 

Автор: k0rvin 22.5.2012, 11:42
Цитата(Zloxa @ 21.5.2012,  16:41)
Есть крюки (емнип, называются anchos), которые можно определить для визуального компонента и сразу же проверить, в дизайнере, как это будет работать при растягивании/сжатии формы. Появилась плюшка не сразу. Кажись в седьмой делфе, возможно в пятой. Раньше резиновые формы приходилось делать панелями. Чуть менее удобно, но куда удобнее, нежели лапами кодить.

А еще есть Layout'ы всякие.

Автор: Zloxa 22.5.2012, 14:57
Цитата(k0rvin @  22.5.2012,  12:42 Найти цитируемый пост)
А еще есть Layout'ы всякие.

Это наверное позже седьмой версии появилось?
То я и не ковырял вовсе. Это уже не труЪ делфи  smile 

Автор: k0rvin 22.5.2012, 19:29
Цитата(Zloxa @ 22.5.2012,  14:57)
Это наверное позже седьмой версии появилось?
То я и не ковырял вовсе. Это уже не труЪ делфи  smile

В данном случае я не столько о делфи, сколько в общем. И чем layout'ы не Ъ-делфи?

Автор: LSD 23.5.2012, 11:33
Цитата(Zloxa @  21.5.2012,  15:35 Найти цитируемый пост)
 Тут конечно да, жава срала на эти настройки гуеоса, и при их любых настройках выглядит одинаково.

Проверил -IDEA масштабирует все контролы и шрифты в соответствии с установленным DPI.



Цитата(ivanfain @  21.5.2012,  18:50 Найти цитируемый пост)
Тем более, никто не запрещает и с кода какие-то элементы подвинуть.

Все прогрессивное человечество давно использует для этого layout manager-ы. И только дельфисты что то там из кода двигают smile


Цитата(ivanfain @  21.5.2012,  18:50 Найти цитируемый пост)
В общим у кого нету опыта с обоими юзезкейсами, тому не понять.

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

Автор: ivanfain 24.5.2012, 20:01
Цитата(LSD @  23.5.2012,  11:33 Найти цитируемый пост)
се прогрессивное человечество давно использует для этого layout manager-ы. И только дельфисты что то там из кода двигают 

Ну я то не дельфист.
А скажите пожалуйста, в каких единицах измерения вы ставите отступы между элементами управления?


Цитата(LSD @  23.5.2012,  11:33 Найти цитируемый пост)
У меня есть опыт и того и другого, и я пришел к выводу, что при наличии опыта написание гуя руками дает лучший результат чем дизайнером. Плюс опыт моих коллег, минимум две знакомые командами разработчиков отказались от дизайнеров в пользу ручного написания.
Правда надо заметить, что во всех случаях использовались нормальные языки с layout manager-ами, а не с "попиксельным позиционированием". 

А кто говорил что нужно попиксельно позиционировать? Я не знаком с layout manager-ами, но что-то мне подсказывает что используемые мной средства будут хуже. Тем не менее, в конечном итоге приходишь к выводу, что в дизайнере делать лучше. Подумайте сами, ведь изначально гуевые приложения начали создавать с кода, потом пришли к дизайнеру форм. Однако всем хочется пробовать что-то новое, вот и используют мвс, и первое время даже начинают видеть в этом профит. Но вот есть куча моментов когда это не удобно, перечислю которые первые приходят в голову: 1. Как я уже говорил, пока не запустишь приложения, не будешь знать как оно выглядит, и хотя ты будешь знать что элемент А находится за элементом В, всё равно это всё не сможешь оценить, если не увидишь всю картину. 2. приложения созданные в дизайнере проще модифицировать. так уж получается, что требование к ПО постоянно меняются, а как ни странно, приложение на мвс сложнее модифицировать при изменении структуры, так что разделение логики и представления в мвс это понты для приезжих. 3. иногда не хочется весь этот огород городить с мвс, а хочется по больше сосредоточится на основной задачи приложения, дизайнер форм делает всё гораздо быстрее, кроме того, не приходится писать однообразный код реализации мвс.

Автор: Zloxa 25.5.2012, 09:17
Цитата(LSD @  23.5.2012,  12:33 Найти цитируемый пост)
У меня есть опыт и того и другого, и я пришел к выводу, 

Судя по тем заблуждениям, что ты высказывал раньше(относительно экшн, относительно нагромождения контролов, не способного работать с разными разрешениями), опыта у тебя в одном, определенно меньше нежели в другом. Выводы, при таком раскладе, делать не совсем корректно.
Цитата(LSD @  23.5.2012,  12:33 Найти цитируемый пост)
что при наличии опыта написание гуя руками дает лучший результат чем дизайнером. 

Здесь отчасти согласен. В этом утверждении, определенно что-то есть. При проектировании структуры БД мне определенно проще использовать ddl, нежели графические дизайнеры схемы данных. Припоминаю, что некогда функционал для ПЛИС мне было проще реализовывать средствами vhdl, нежели используя графический редактор логики, предоставляемый производителем ПЛИС. Но в обоих случаях, достоинство декларативного языка обуславливается вполне определенными недостатками графических средств. В обоих случаях я начинал с графических дизайнеров, и, лишь не удовлетворившись ими, начинал изучать семантику декларативного языка. От ворда, к примеру, я не ушел ни к какому языку разметки текста. От делфийского дизайнера форм, я не ушел к динамической компоновке форм. Это говорит о том, что эти средства в достаточной степени покрывают мои потребности. То, что вам проще херачить формы лапами, говорит лишь о том, что прочие средства предоставляемые вам платформой еще более убоги.

Автор: LSD 25.5.2012, 16:27
Цитата(ivanfain @  24.5.2012,  21:01 Найти цитируемый пост)
А скажите пожалуйста, в каких единицах измерения вы ставите отступы между элементами управления?

Использовал дефолтные (99% процентов случаев) smile 



Цитата(ivanfain @  24.5.2012,  21:01 Найти цитируемый пост)
А кто говорил что нужно попиксельно позиционировать?

Цитата(ivanfain @  20.5.2012,  17:06 Найти цитируемый пост)
у тебя нервов не хватит каждый раз запускать проект, дабы передвинуть контрол на пиксель в лево, потомы что он почему-то совсем не смотрится




Цитата(Zloxa @  25.5.2012,  10:17 Найти цитируемый пост)
Судя по тем заблуждениям, что ты высказывал раньше(относительно экшн, относительно нагромождения контролов, не способного работать с разными разрешениями), опыта у тебя в одном, определенно меньше нежели в другом.

Ты про TAction? Так я про него ничего и не говорил, я говорил про то как себя по умолчанию ведет визуальный редактор Дельфей. Если бы он спрашивал имя для нового TAction, а потом создавал отдельный класс для него и регистрировал как обработчик события, тогда бы я бы согласился, что редактор гуя делает максимум того, на что он способен. Но насколько я знаю, он этого не делает.

Автор: Zloxa 25.5.2012, 16:48
Цитата(LSD @  25.5.2012,  17:27 Найти цитируемый пост)
 Если бы 

И зачем это нужно там, где это не нужно?

Автор: LSD 28.5.2012, 18:48
Цитата(Zloxa @  25.5.2012,  17:48 Найти цитируемый пост)
зачем

Затем чтобы приучать начинающих быдельфи програмистов к хорошему стилю smile 

Автор: Akella 30.5.2012, 20:34
Цитата(Zloxa @ 17.5.2012,  14:21)
Цитата(LSD @  17.5.2012,  14:56 Найти цитируемый пост)
Вообще по хорошему действие и его вызов из гуя должны быть настраиваемыми. Т.е. мы можем повесить хоткей на некое действие, можем добавить кнопку на тулбар, или создать свое главное или контекстное меню, куда добавить это действие.

Акелла правильно кивнул на TAction. Он именно этим и занимается. Ввели, емнип в еще 5й делфе.

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

Всамделе - бомба вещь. smile

Разработчики DevExpress пошли дальше и создали бомбу по мощнее в лице dxBarManager smile
А TActionList + TcxImageList + TdxBarManager весьма сильно разгружают программиста по времени.

Добавлено через 4 минуты и 48 секунд
Цитата(LSD @ 21.5.2012,  14:20)
Цитата(ivanfain @  20.5.2012,  17:06 Найти цитируемый пост)
Не правда. Сложный гуй проще сделать в дизайнере, потому как у тебя нервов не хватит каждый раз запускать проект, дабы передвинуть контрол на пиксель в лево, потомы что он почему-то совсем не смотрится. Уже давно люди поняли, что гуй десктопных приложений нужно делать в дизайнере

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

зависит от компонентов
для дельфи много компонентов, позволяющих строить "резиновый дизайн"

Добавлено через 10 минут и 16 секунд
Цитата(LSD @  23.5.2012,  11:33 Найти цитируемый пост)
Все прогрессивное человечество давно использует для этого layout manager-ы. И только дельфисты что то там из кода двигают smile


1. Можно из кода, а можно и не из кода.
2. Ты сам подумай, если не ты в своём приложении двигаешь НЕ из кода, то кто-то другой до тебя в любом случае двигает из кода smile 

Автор: LSD 31.5.2012, 10:26
Цитата(Akella @  30.5.2012,  21:34 Найти цитируемый пост)
для дельфи много компонентов, позволяющих строить "резиновый дизайн"

Пропущено ключевое слово сторонних smile 



Цитата(Akella @  30.5.2012,  21:34 Найти цитируемый пост)
Ты сам подумай, если не ты в своём приложении двигаешь НЕ из кода, то кто-то другой до тебя в любом случае двигает из кода

Layout manager уже написаны и хорошо протестированы сотнями программистов. В отличие от самописного управления расположением компоненов.

Автор: Zloxa 31.5.2012, 10:41
Цитата(Zloxa @  15.3.2012,  16:17 Найти цитируемый пост)
У нас сейчас на жаве новую нескучную POS пишут

От проекта вроде как не отказались, но приоритет этой новой нескучной POS на жаве, сильно задвинули.
В параллель пустили новую не скучную POS на 1С.
Разработка в обоих случаях - java и 1С ведется двумя человеками. Кастом - дичайший. 1С используется скорее как платформа, нежели решение.
Выводы пока делать рано, но кое-что уже можно попытатсья сравнить.

Период от начала разработки - выход на интеграционные тесты на жаве занял более полугода. 1С - менее месяца.
За две недели интеграционного тестирования с POS на 1С мы продвинулись по процессам на два шага дальше, чем за два месяца интеграционного тестирования с POS на Java.
1Cники ни разу пока не упомянули словосочетание "хорошая практика", в дискуссии на подобные темы не пускались. Вместо этого: "надо? Сделаем!". 
Технические вопросы, вроде того, как изменить формат XML сообщений обмена, чтобы он был воспринят "гибкими" фреймворками, 1Сниками вообще не поднимались, вдули как им дали, не привередничая. Вобще с 1Сниками обсуждалось больше прикладные вопросы, чем технические. До обсуждения прикладных вопросов с Java программистами, мы вроде как и не дошли вовсе.

Добавлено @ 10:43
Цитата(LSD @  31.5.2012,  11:26 Найти цитируемый пост)
Пропущено ключевое слово сторонних  

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

Автор: RockClimber 6.6.2012, 19:17
Цитата(LSD @  23.5.2012,  11:33 Найти цитируемый пост)
И только дельфисты что то там из кода двигают

Буквально несколькими сообщениями ранее делфистов ругали за то, что они этого не делают  smile 

Автор: LSD 7.6.2012, 12:22
Цитата(RockClimber @  6.6.2012,  20:17 Найти цитируемый пост)
Буквально несколькими сообщениями ранее делфистов ругали за то, что они этого не делают

Где?

Автор: Akella 15.6.2012, 13:02
http://code.google.com/p/fpos/wiki/FPOSWiki
Many people judge that Pascal can't be used to write an OS, this project will prove that they are WRONG.

Автор: LSD 15.6.2012, 14:05
Цитата(Akella @  15.6.2012,  14:02 Найти цитируемый пост)
Many people judge that Pascal can't be used to write an OS, this project will prove that they are WRONG.

In fact many people judge that Pascal can't be used to write an OS suitable for everyday usage smile 

Автор: k0rvin 15.6.2012, 14:23
Цитата(Akella @  15.6.2012,  13:02 Найти цитируемый пост)
Many people judge that Pascal can't be used to write an OS, this project will prove that they are WRONG. 

"So what?"

ОС и на Хаскелле есть, и на Лиспах разных их несколько, толку-то?

Автор: LSD 21.6.2012, 13:19
Есть такие хорошие программы PL/SQL Developer и TOAD. Для Оракла пожалуй лучшие средства разработки. Но у них есть фатальный недостаток: они написаны на Дельфи. Из-за этого на 64 битной винде, они не могут использовать 64 битного клиента и приходится специально для них ставить 32-х битный клиент. Бедному Christian Ghisler приходится извращаться с отдельным исполняемым файлом, чтобы получить поддержку 64 битных систем.

Автор: Zloxa 21.6.2012, 16:03
Однако ж, надо заметить, для оракла предостаточно и средств разработки, написанных и на жаве. Хоть они и могут крутиться и на линуксе и на виндовсе и на 32, и на 64.... Но юзабилити их заставляет ставить 32х разрядный клиент и пользовать PL/SQL Developer и TOAD smile

Вот не ясно - что мешает жаваписам написать описюнительную среду разработки для оракла? smile

Сайд эффект, кстати, от производителя PL/SQL Developer'а - DOA прекраснейшая библиотека доступа к ораклу. Тоды - не знаю, ODAC - не ихний ли? Тоже хвалят. Жабьи либы для оракли - угнетают :(

Автор: Akella 21.6.2012, 16:20
Цитата(LSD @  21.6.2012,  13:19 Найти цитируемый пост)
сть такие хорошие программы PL/SQL Developer и TOAD. Для Оракла пожалуй лучшие средства разработки. Но у них есть фатальный недостаток: они написаны на Дельфи. 


Что мешает написать на яве очень удобную и быструю среду разработки?  smile 

Автор: LSD 21.6.2012, 16:28
Цитата(Zloxa @  21.6.2012,  17:03 Найти цитируемый пост)
Вот не ясно - что мешает жаваписам написать описюнительную среду разработки для оракла?

Не надо передергивать. На Java можно писать прекрасные IDE, IDEA тому пример. А то что бесплатные IDE уступают коммерческим лидерам рынка, так это вполне естественная ситуация в мире ПО. Так же хотелось бы заметить, что в плане наворотов и PL/SQL Developer-у и TOAD-у до той же IDEA или NetBeans очень далеко.



Цитата(Zloxa @  21.6.2012,  17:03 Найти цитируемый пост)
Сайд эффект, кстати, от производителя PL/SQL Developer'а - DOA прекраснейшая библиотека доступа к ораклу.

Вот только не понятно, что мешало заюзать в PL/SQL Developer DOA и не связываться вообще с оракловым клиентом. Что же это сапожник без сапог.



Цитата(Zloxa @  21.6.2012,  17:03 Найти цитируемый пост)
Жабьи либы для оракли - угнетают :(

Чем?

Добавлено через 31 секунду
Цитата(Akella @  21.6.2012,  17:20 Найти цитируемый пост)
Что мешает написать на яве очень удобную и быструю среду разработки?

Ничего не мешает, более того такие IDE есть.

Автор: LSD 21.6.2012, 18:03
Цитата(Zloxa @  21.6.2012,  17:03 Найти цитируемый пост)
Однако ж, надо заметить, для оракла предостаточно и средств разработки, написанных и на жаве. Хоть они и могут крутиться и на линуксе и на виндовсе и на 32, и на 64.... Но юзабилити их заставляет ставить 32х разрядный клиент и пользовать PL/SQL Developer и TOAD 

Вот не ясно - что мешает жаваписам написать описюнительную среду разработки для оракла?

А вот и причина по которой Оракл не может написать приличную IDE под свою базу: http://www.gazeta.ru/business/news/2012/06/21/n_2400053.shtml smile 

Автор: Zloxa 21.6.2012, 18:21
Цитата(LSD @  21.6.2012,  17:28 Найти цитируемый пост)
Не надо передергивать. На Java можно писать прекрасные IDE, IDEA тому пример. А то что бесплатные IDE уступают коммерческим лидерам рынка, так это вполне естественная ситуация в мире ПО. Так же хотелось бы заметить, что в плане наворотов и PL/SQL Developer-у и TOAD-у до той же IDEA или NetBeans очень далеко. 

Спору нет. Делфийская IDE тоже на Object Pascal написана. И до ней тоже Плскл девелоперам и тодам расти и расти. 
Но ведь и комерческих IDE на жаве для оракла на слуху особо нет. Те что на слуху- те оба делфевые (что, правослово, всамделе удивляет). Почему комерсанты брезгуют жавой, но не брезгуют делфи?

Цитата(LSD @  21.6.2012,  17:28 Найти цитируемый пост)
Вот только не понятно, что мешало заюзать в PL/SQL Developer DOA и не связываться вообще с оракловым клиентом. Что же это сапожник без сапог.

DOA, емнип, через OCI работает. Здесь direct, скорее всего означает возможность работать с наборами данных в том числе и мимо всяких там делфийских датасетов, когда нужно. Но могу ошибаться. Давно писал клиентов на делфи.

Цитата(LSD @  21.6.2012,  17:28 Найти цитируемый пост)
Чем?

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

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

В третью, всякая около вкуснота, вроде тех же врапперов, DOAвские врапперы можно юзать, пусть и рехтовать напильником иногда приходится приходится. От враперов Jpublisher'а пришлось отказаться в силу категорической не пригодности. Для очреедей, алертов, пайпов, и прочей фиготы DOA предоставляет удобные обертки. В жаве вроде только для очередей, вроде как JMS, вроде как написано что замечательно стыкуется. Только вот фиг я разобрался откуда этот jms качнуть, как к проекту подключить. Времени на разборки потратил куда больше чем раньше тратил на реализацию, и безрезультатно. Пришлось по дедовски - препаред стайтмент для PL/SQL блока, бинды вопросиками и уже в PL/SQL создавать объекты, ставить в очередь - не тоска ли?

Правда, DOA - тоже коммерческий продукт. Мож есть пусть и коммерческий, но удобный на жаве? smile

Автор: LSD 22.6.2012, 12:05
Цитата(Zloxa @  21.6.2012,  19:21 Найти цитируемый пост)
Спору нет. Делфийская IDE тоже на Object Pascal написана. И до ней тоже Плскл девелоперам и тодам расти и расти. 
Но ведь и комерческих IDE на жаве для оракла на слуху особо нет. Те что на слуху- те оба делфевые (что, правослово, всамделе удивляет). Почему комерсанты брезгуют жавой, но не брезгуют делфи?

Для Оракла существует пяток IDE, и еще десяток универсальных клиентов. Считать такую выборку репрезентативной не серьезно.


Цитата(Zloxa @  21.6.2012,  19:21 Найти цитируемый пост)
DOA, емнип, через OCI работает.

Да, я DOA с ODAC перепутал.


Цитата(Zloxa @  21.6.2012,  19:21 Найти цитируемый пост)
В первую очередь - вопросиками.

Кто о чем... user posted image



Цитата(Zloxa @  21.6.2012,  19:21 Найти цитируемый пост)
Во вторую, отсутствием возможности работы со всякими ораклеспицифик плюшками. Точно на вскидку не помню, кажись коллекцию биндом - хер передашь. С объектными типами тоже, кажется, отгребал.

Поконкретнее, в чем проблема? В самом JDBC конечно нет никаких классов и методов для работы с специфичными оракловыми фишками, но в самом оракловом драйвере все есть и объекты и коллекции. Как по твоему SQL Developer работает? smile 



Цитата(Zloxa @  21.6.2012,  19:21 Найти цитируемый пост)
В третью, всякая около вкуснота, вроде тех же врапперов, DOAвские врапперы можно юзать, пусть и рехтовать напильником иногда приходится приходится. От враперов Jpublisher'а пришлось отказаться в силу категорической не пригодности. Для очреедей, алертов, пайпов, и прочей фиготы DOA предоставляет удобные обертки. В жаве вроде только для очередей, вроде как JMS, вроде как написано что замечательно стыкуется. Только вот фиг я разобрался откуда этот jms качнуть, как к проекту подключить. Времени на разборки потратил куда больше чем раньше тратил на реализацию, и безрезультатно. Пришлось по дедовски - препаред стайтмент для PL/SQL блока, бинды вопросиками и уже в PL/SQL создавать объекты, ставить в очередь - не тоска ли?

Я не понимаю твою страсть к враперам, так что не буду комментировать.
Что же касается того, что ты не смог разобраться с JMS, как-то странно обвинять драйвер smile 

Автор: Zloxa 28.6.2012, 08:41
Цитата(Zloxa @  21.3.2012,  14:34 Найти цитируемый пост)
 Ораклиный металинк на флексе врой как переписан. Но кто его знает, не ждет ли этот флекс участь жава апплетов, которые казались столь же перспективными еще так недавно. 

Походу - ждет.

Оракл прислал письмо:
Цитата

Dear Valued My Oracle Support User,

We recently http://www.oracle.com/us/dm/76544-wwsu11104830mpp001-oem-1635893.htmlyou about the launch of the new My Oracle Support HTML user interface and the upcoming retirement of the Flash-based user interface.


Добавлено @ 08:44
Цитата(LSD @  22.6.2012,  13:05 Найти цитируемый пост)
Я не понимаю твою страсть к враперам

Тебе просто не приходится работать с логикой, реализованной на стороне БД. Допустим есть пакет, из него торчат писят процедур/функций. Большая их часть используется приложением. Како тут без враппера? Уныло. Весьма уныло.

Что же касается целесообразности выноса логики на сервер, приведу пример:
user posted image
Здесь реализация функции проведения фискального (один из нескольких типов документа) документа по регистру исторического остатка(один из нескольких регистров). Всего четыре мержика. В совокупности тянут чуть более чем на тыщщу строк.

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

Можешь мне назвать хоть одну разумную(ессно с моей точки зрения) причину, почему этот функционал должен реализовываться вне базы данных?

Автор: Zloxa 28.6.2012, 09:06
Цитата(LSD @  22.6.2012,  13:05 Найти цитируемый пост)
Что же касается того, что ты не смог разобраться с JMS, как-то странно обвинять драйвер

Я не драйвер обвиняю, а сожалею об отсутствии простых и удобных средств доступа к функционалу БД. 

Автор: LSD 28.6.2012, 11:41
Цитата(Zloxa @  28.6.2012,  09:41 Найти цитируемый пост)
 Допустим есть пакет, из него торчат писят процедур/функций. Большая их часть используется приложением. Како тут без враппера? Уныло. Весьма уныло.

Писят процедур/функций не появляются за один день. Они пишутся по мере развития системы, и по мере их появления к ним дописывается враперы.


Цитата(Zloxa @  28.6.2012,  09:41 Найти цитируемый пост)
Что же касается целесообразности выноса логики на сервер, приведу пример:

Иногда это целесообразно, а иногда нет. И что?


Цитата(Zloxa @  28.6.2012,  10:06 Найти цитируемый пост)
Я не драйвер обвиняю, а сожалею об отсутствии простых и удобных средств доступа к функционалу БД.

Я работал и с нативным API AQ и через JMX, и с другими JMX провайдерами. Нет там ничего сложного, средний программист на Java разберется за пару дней.

Автор: Zloxa 28.6.2012, 12:18
Цитата(LSD @  28.6.2012,  12:41 Найти цитируемый пост)
Писят процедур/функций не появляются за один день. Они пишутся по мере развития системы, и по мере их появления к ним дописывается враперы.

Они и писались по мере развития системы.
И потребность написания жабьего клиента - тоже возникла в процессе эволюционного развития.
Впрочем ты дал ответ. Жававэй - врапать лапами, биндить вопросиками. От чего же тогда не тоска?

Цитата(LSD @  28.6.2012,  12:41 Найти цитируемый пост)
Нет там ничего сложного, средний программист на Java разберется за пару дней. 

Среднему программисту на делфи не потребуется пары дней, чтобы разобраться с DOA API для AQ. И даже интернеты не нужны.
На жаве я ниже среднего программист. Сделал пару, тройку наскоков, не понял даже с чем разбираться. Когда сроки прижали, бахнул через pl/sql в препаред стайтменте. Делов там было всего - создать достаточно не сложный объект, да поставить его в очередь. Времени это у меня заняло меньше, чем я потратил на попытки разобраться, но не красиво. Ввергает в уныние (

Хуже было бы если бы у меня объект инкапсулировал бы еще и коллекцию. Хрен бы я бахнул это через PL/SQL. Сорвал бы сроки.

Цитата(LSD @  28.6.2012,  12:41 Найти цитируемый пост)
Я работал и с нативным API AQ 

Это как? Через dbms_aq?
Цитата(LSD @  28.6.2012,  12:41 Найти цитируемый пост)
JMX

Спасибо, запомню ключевое слово для будущего гугления.
Я прально понимаю, что это имплементация JMS, который, по сути лишь интерфейс, сиречь сферический и в вакууме?

Автор: Zloxa 28.6.2012, 12:38
Цитата(LSD @  28.6.2012,  12:41 Найти цитируемый пост)
Иногда это целесообразно, а иногда нет. И что?

Желаю расширить свой кругозор. smile
Просто в моей практике случаев, когда вынос фунционала из базы не целесообразен существенно превышает количество случаев, когда он целесообразен. Потому я мыслю однобоко. Потому я и пытаюсь это обсуждать. В твоей же практике, я так понимаю, другой перевес. При этом ты оставляешь ощущение весьма компетентного человека, вполне способного отрефлексить более одной точки зрения. Потому я и пытаюсь это обсуждать именно с тобой.

Автор: LSD 29.6.2012, 15:19
Цитата(Zloxa @  28.6.2012,  13:18 Найти цитируемый пост)
Среднему программисту на делфи не потребуется пары дней, чтобы разобраться с DOA API для AQ. И даже интернеты не нужны.

Не верю (при условии конечно, что этот самый программист впервые сталкивается с message-oriented middleware). Просто почитать, понять концепцию топиков и очередей, понять как это создается в Оракле, уже день, другой займет.


Цитата(Zloxa @  28.6.2012,  13:18 Найти цитируемый пост)
Это как? Через dbms_aq?

У AQ есть Java API не являющееся реализацией JMS.


Цитата(Zloxa @  28.6.2012,  13:18 Найти цитируемый пост)
Спасибо, запомню ключевое слово для будущего гугления.

Забудь, это опечатка, там должно быть JMS smile Я тебе другое подкинул MOM (message-oriented middleware) smile


Цитата(Zloxa @  28.6.2012,  13:18 Найти цитируемый пост)
Я прально понимаю, что это имплементация JMS, который, по сути лишь интерфейс, сиречь сферический и в вакууме?

JMS это просто API который имплементится вендором.



Цитата(Zloxa @  28.6.2012,  13:38 Найти цитируемый пост)
Просто в моей практике случаев, когда вынос фунционала из базы не целесообразен существенно превышает количество случаев, когда он целесообразен. Потому я мыслю однобоко. Потому я и пытаюсь это обсуждать. В твоей же практике, я так понимаю, другой перевес. При этом ты оставляешь ощущение весьма компетентного человека, вполне способного отрефлексить более одной точки зрения. Потому я и пытаюсь это обсуждать именно с тобой.

С моей точки зрения, у вас типичная ERP (исходя из того что я от тебя слышал). Как и все ERP она ориентированна на данные. Данные вы храните в СУБД и обрабатывать их встроенными средствами СУБД (хранимки) и удобней и быстрей. И вся архитектура вашей системы выстроена под эту концепцию.
И тут внезапно у вас появляется необходимость "прикрутить" туда Java и вот тут мое понимание уже заканчивается. Для чего вам Java модуль какова его функция в вашей системе?

Автор: Zloxa 29.6.2012, 15:33
Цитата(LSD @  29.6.2012,  16:19 Найти цитируемый пост)
Не верю (при условии конечно, что этот самый программист впервые сталкивается с message-oriented middleware). Просто почитать, понять концепцию топиков и очередей, понять как это создается в Оракле, уже день, другой займет.

Я предполагаю, что человек, желающий поставить сообщение в очредь, уже знает, что он хочет сделать. Ему для этого нужен только инструмент. И не знаком ему именно инструмент.

Цитата(LSD @  29.6.2012,  16:19 Найти цитируемый пост)
Забудь, это опечатка, там должно быть JMS

Забыл, спасибо.
Цитата(LSD @  29.6.2012,  16:19 Найти цитируемый пост)
MOM (message-oriented middleware)

Запомнил, спасибо.

Цитата(LSD @  29.6.2012,  16:19 Найти цитируемый пост)
 Для чего вам Java модуль какова его функция в вашей системе? 

Всякие обменные процессы c внешними контрагентами/системами. Формировать/разбирать всякие xls, xml, csv, зиповать их, выкладывать на ftp, слать емайлы, принимать - не совсем удобно в pl/sql. 

Хотя есть некоторые процессы, того же характера, когда трафик не ожидается большим, проще бахнуть то же на pl/sql и засунуть в жобу, нежели писать клиент, выделять сервер, шедулить, мониторить...

Добавлено @ 15:35
Цитата(LSD @  29.6.2012,  16:19 Найти цитируемый пост)
у вас типичная ERP

smile
Но и логику многих типичных ERP многие стремятся вынести на миддл. В том числе и Oracle corp.

Автор: irinazanuda 29.6.2012, 15:36
Не по теме, но кто знает, я люблю гифки-- с помощью какого языка они делаются??? Тот я буду любить

Автор: LSD 29.6.2012, 19:00
Цитата(Zloxa @  29.6.2012,  16:33 Найти цитируемый пост)
Всякие обменные процессы c внешними контрагентами/системами. Формировать/разбирать всякие xls, xml, csv, зиповать их, выкладывать на ftp, слать емайлы, принимать - не совсем удобно в pl/sql.

Я не могу сходу предложить удобного и легкого решения как состыковать СУБД и Java (да еще такого, чтобы понравилось дельфистам  smile  ).



Цитата(Zloxa @  29.6.2012,  16:33 Найти цитируемый пост)
Но и логику многих типичных ERP многие стремятся вынести на миддл. В том числе и Oracle corp.

Мидл проще масштабировать чем базу. Хотя у Оракла есть RAC, но там все не так радужно с масштабированием, а вот Кохеренс как раз масштабируется прекрасно.

Автор: Nikolja 29.6.2012, 21:25
Цитата(irinazanuda @ 29.6.2012,  15:36)
Не по теме, но кто знает, я люблю гифки-- с помощью какого языка они делаются??? Тот я буду любить

При помощи литературного русского языка. smile ЛюбИте его! А программирования там не надо.
И ещё немножко при помощи какого-нибудь графического редактора. smile

А по Дельфи... Любят -- не любят. Вспоминается песня Трофима "Я скучаю по тебе":
"Только в логику любовь никак не запихнуть"

А если всё-таки рассуждать логично, то Delphi -- это не Microsoft.
Потому-то одни его не любят, а другие -- ровно наоборот. smile


Автор: LSD 4.7.2012, 18:07
Похоже что http://habrahabr.ru/post/147133/ зачем нужен MVC.

Автор: Zloxa 4.7.2012, 18:18
Цитата(LSD @  4.7.2012,  19:07 Найти цитируемый пост)
зачем

На сколько я могу судить, там больше говорится о "как", нежели о "зачем"

Автор: LSD 4.7.2012, 18:31
Цитата(Zloxa @  4.7.2012,  19:18 Найти цитируемый пост)
На сколько я могу судить, там больше говорится о "как", нежели о "зачем"

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

Автор: Zloxa 4.7.2012, 19:56
Цитата(LSD @  4.7.2012,  19:31 Найти цитируемый пост)
человек 

сейчас ты говоришь об одном человеке, раньше говорил о многих, используя термин "делфисты"
Цитата(LSD @  4.7.2012,  19:31 Найти цитируемый пост)
Если человек начал на практике применять что-то, то с высокой долей вероятности он понимает зачем он это делает.

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

К тому же, излагаемое в этой статье, мне думается, подлежит определенной ревизии на прдемет действительного соответствия следования паттерну MVC. Вполне возможно, человек, поддавшийся стандному инстинкту, выдает желаемое за действительное. smile

Автор: LSD 5.7.2012, 11:22
Цитата(Zloxa @  4.7.2012,  20:56 Найти цитируемый пост)
сейчас ты говоришь об одном человеке, раньше говорил о многих, используя термин "делфисты"

Судя по коментам:
Цитата
У нас есть замечательное правило — писать софт так, чтобы в любой момент можно было отделть GUI и сделать, например, сетевой сервер.

есть и другие понимающие дельфисты.



Цитата(Zloxa @  4.7.2012,  20:56 Найти цитируемый пост)
Я бы так не сказал. Вполне возможно человек просто поддался стадному инстинкту. Я не раз сталкивасля с ситуацией, когда человек следует паттерну потому лишь, что очень наслышан об этом паттерне, не более того.

Делать "как все" это тоже мотивация, причем в зависимости от ситуации она может быть вполне разумной.

Автор: LSD 5.7.2012, 16:04
Дельфисты продолжают свое http://habrahabr.ru/post/147198/, при этом они четко отдают себе отчет в том что дельфи и MVC плохо совместимы smile 

Автор: Zloxa 5.7.2012, 16:40
Цитата(LSD @  5.7.2012,  12:22 Найти цитируемый пост)
Делать "как все" это тоже мотивация, причем в зависимости от ситуации она может быть вполне разумной. 

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

Цитата(LSD @  5.7.2012,  17:04 Найти цитируемый пост)
Дельфисты продолжают свое погружение в MVC, при этом они четко отдают себе отчет в том что дельфи и MVC плохо совместимы

Бегло просмотрел, на сколько могу судить, тема "зачем", опять не раскрыта.

Автор: Akella 15.7.2012, 12:01
Цитата(Zloxa @ 4.7.2012,  18:18)
Цитата(LSD @  4.7.2012,  19:07 Найти цитируемый пост)
зачем

На сколько я могу судить, там больше говорится о "как", нежели о "зачем"

я просто не могу понять, а зачем этот MVC-подход?

что он реально дает, кроме того, что тебе потом скажут, что ты нереально крутой программер?

Автор: Akella 15.7.2012, 15:34
я так думаю, что правильное применение ActionList и так даст приличный выигрыш без mvc
в дельфи просто этот самый mvc нифиг не нужен

Автор: Shaggie 15.7.2012, 17:20
Цитата(Akella @  15.7.2012,  16:34 Найти цитируемый пост)
в дельфи просто этот самый mvc нифиг не нужен

Независимо от задачи?
Дельфи такой специфичный, оказывается, язык, что ему нет нужды отделять данные от способов их отображения и обработки?
Наверное это очень удобно, всю логику нажатия кнопки в один единственный Button1.Click() засунуть, чтобы и в базу лезло, и интерфейс обновляло, и по сети перемигивалось.
И копипастнуть в остальные 37 обработчиков кнопок.

Автор: Zloxa 15.7.2012, 17:52
Цитата(Shaggie @  15.7.2012,  18:20 Найти цитируемый пост)
Дельфи такой специфичный

Может кто нить подсказать, какой десктопный фреймоврк, библиотека классов и что-то вроде ориентирован на паттерн MVC?

Я раньше полагал, что свинги его реализуют, но камрады в этом топике меня разуверили.

Автор: Akella 16.7.2012, 12:02
Цитата(Shaggie @  15.7.2012,  17:20 Найти цитируемый пост)
И копипастнуть в остальные 37 обработчиков кнопок. 

ты дельфи-то юзал хоть раз по нормальному?

Добавлено через 1 минуту и 23 секунды
Тут дело не в дельфи, тут дело в самом программисте. Захочет он использовать MVC/MVP, то будет использовать, а если ему нафиг оно ненуна, то не будет.

Автор: Alexeis 16.7.2012, 16:55
Цитата(Akella @  15.7.2012,  13:01 Найти цитируемый пост)
я просто не могу понять, а зачем этот MVC-подход?

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

Автор: k0rvin 17.7.2012, 12:35
Цитата(Zloxa @ 15.7.2012,  17:52)
Может кто нить подсказать, какой десктопный фреймоврк, библиотека классов и что-то вроде ориентирован на паттерн MVC?

Cocoa?

Автор: Akella 17.7.2012, 21:35
Цитата(Zloxa @  15.7.2012,  17:52 Найти цитируемый пост)
Может кто нить подсказать, какой десктопный фреймоврк, библиотека классов и что-то вроде ориентирован на паттерн MVC?



если опираться на ту нуДную статью и на пример  с чекбоксом, то можно использовать DevExpress

Автор: Akella 18.7.2012, 10:17
Цитата(k0rvin @ 17.7.2012,  12:35)
Цитата(Zloxa @ 15.7.2012,  17:52)
Может кто нить подсказать, какой десктопный фреймоврк, библиотека классов и что-то вроде ориентирован на паттерн MVC?

Cocoa?

Наверное, имелось ввиду для Delphi?

Автор: k0rvin 18.7.2012, 13:28
Цитата(Akella @ 18.7.2012,  10:17)
Наверное, имелось ввиду для Delphi?

По-моему имелось в виду вообще.

Автор: Akella 18.7.2012, 13:43
Зачем ему вообще, если здесь речь о Delphi?

Автор: LSD 18.7.2012, 15:24
Цитата(Akella @  18.7.2012,  14:43 Найти цитируемый пост)
Зачем ему вообще, если здесь речь о Delphi?

Дельфи не нужен smile 

Автор: Akella 18.7.2012, 16:37
говори токма за себя  smile 

Автор: Zloxa 18.7.2012, 19:33
Цитата(Akella @  18.7.2012,  14:43 Найти цитируемый пост)
Зачем ему вообще, если здесь речь о Delphi? 

Паттерн MVC, как я думаю, придуман для веба. На вебе, ввиду гетерогенности, презентативный слой технологически изолирован от слоя логики, а попытки сделать прозрачным взаимодействие этих слоев пока нелепы. MVC это вынужденный компромисс переходного периода.
Десктопные приложения,  даже не будучи гомогенными, имеют куда более развитые средства взаимодействия промеж сообой. Казалось бы выдели прикладную логику в COM да дергай ее из любой морды, сервиса и бла-бла. Прикладная логика отдает сложный объект, вроде резалтсета - да бога ради, с этим можно как-то справиться. Особой нужды тут в следовании MVC как бы и не прослеживается.

Вот и спрашивал, есть ли  прецеденты. k0rvin, спасибо.

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

Добавлено @ 19:37
Цитата(Shaggie @  15.7.2012,  18:20 Найти цитируемый пост)
Дельфи такой специфичный, оказывается, язык, что ему нет нужды отделять данные от способов их отображения и обработки?

Если уж на то пошлло..... классическая делфийская связка DataSet-DataSource-<data aware controll> как бы вполне себе в писывается в MVC. Когда-то я даже понимал зачем это надо, теперь, увы, забыл.

Автор: k0rvin 18.7.2012, 21:00
Вообще-то, когда был "придуман" MVC, веба не было, о чем можно почитать хотя бы http://ru.wikipedia.org/wiki/Model-View-Controller#.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F.

Собственно кроме Cocoa, думаю, можно посмотреть современные реализации SmallTalk.

Добавлено через 6 минут и 27 секунд
Цитата(Zloxa @ 18.7.2012,  19:33)
Если уж на то пошлло..... классическая делфийская связка DataSet-DataSource-<data aware controll> как бы вполне себе в писывается в MVC.

Я бы не стал этого утверждать. А смысл DataSource'а я так и не понял.

Автор: Zloxa 19.7.2012, 08:41
Цитата(k0rvin @  18.7.2012,  22:00 Найти цитируемый пост)
Я бы не стал этого утверждать.

Почему?

Цитата(k0rvin @  18.7.2012,  22:00 Найти цитируемый пост)
А смысл DataSource'а я так и не понял. 

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

Автор: Akella 20.7.2012, 10:56
MVC было описано или придумано ещё в конце 70х.
Я уверен, что если бы в Delphi был так сильно нужны приёмы MVC, то их бы уже давно жёстко применили, описали в справке, книгах и т.д.

Как я уже говорил, то это дело программиста. Он может сделать жёсткую связку СУБД->SQL-запрос(DataSet, Query)->отображение на экране, а может сделать на уровне MVC, т.е. запрос изменил и данные отображаются другие.
По идее в наследниках DataSet столбцы для отображения данных могут создаваться динамически в момент запуска приложения или в момент создания модуля.

Вот пример.
1. Создаем таблицу в базе.
2. Создаем представление на основе таблицы (View).
3. В TQuery делаем запрос к представлению select * from view.
4. Соединяем TDBGrid с TQuery. В design-time никаких столбцов не создаем у TQuery, т.к. их TQuery создаст сам на основе выборки.
5. Теперь нам достаточно открыть TQuery и в гриде появятся нужные столбцы.
6. Допустим, что пользователь захотел, чтобы в гриде данные отображались в другом порядке или какой-то столбец не нужен.
Изменяем представление (view): убираем оттуда столбец и меняем порядок  других столбцов, хотя, на клиенте это всё тоже можно сделать настройками грида.

6а. Допустим, что пользователь хочет, чтобы в выборке больше не показывались записи из архива.
1. Изменяем представление (view): и добавляем там условие where deleted=0 и всё.
2. Приложение перекомпилировать не нужно.


6б. Допустим, что пользователь хочет, чтобы второй столбец был не текстовым, а датой и чтобы в гриде была при этом правильная сортировка, фильтрация, группирование и соответствующий редактор был, т.к. для даты нужен уже календарь.
1. Добавляем новое поле или изменяем тип старого. Изменяем представление (view): в запросе представления меняем второе поле или просто перекомпилируем в СУБД само представление (view).
2. Теперь TQuery в выборе получит второе поле уже не текстовое поле, а дата, грид создаст на основе типа поля уже соответствующий редактор.

Чем вам не MVC?

Добавлено @ 10:58
Цитата(k0rvin @  18.7.2012,  21:00 Найти цитируемый пост)
А смысл DataSource'а я так и не понял. 

ну там есть некоторые события, которые помогают, например при связке Master-detail

Автор: Zloxa 20.7.2012, 21:04
Цитата(Akella @  20.7.2012,  11:56 Найти цитируемый пост)
Чем вам не MVC?


Akella, в терминах MVC view  это форма, а не вьюха СУБД. То что ты описал - совсем не MVC.

Автор: Akella 22.7.2012, 22:05
и что с того, я просто применил не тот термин и всё

Автор: LSD 24.7.2012, 17:42
Цитата(Zloxa @  29.6.2012,  16:33 Найти цитируемый пост)
Всякие обменные процессы c внешними контрагентами/системами. Формировать/разбирать всякие xls, xml, csv, зиповать их, выкладывать на ftp, слать емайлы, принимать - не совсем удобно в pl/sql. 

http://www.orindasoft.com/public/plsqlfeatures.php4?pdsrc=PLSQL смотрели?

Автор: Zloxa 24.7.2012, 18:27
LSD, спасибо, поковыряю

Автор: Akella 25.7.2012, 14:27
MVC - это типа построеное визуального тырфейса, на основе данных и модели?
Просто напросто в дельфи не используют динамическое построение тырфейса во время исполнения программы (run-time). Поэтому оно нафиг и не нужно. Ну или используют редко.

Автор: LSD 25.7.2012, 14:33
Цитата(Akella @  25.7.2012,  15:27 Найти цитируемый пост)
MVC - это типа построеное визуального тырфейса, на основе данных и модели?

MVC это разделение на слои, данные отдельно, представление этих данных отдельно.

Автор: Alexeis 25.7.2012, 14:56
Цитата(LSD @  25.7.2012,  15:33 Найти цитируемый пост)
MVC это разделение на слои, данные отдельно, представление этих данных отдельно.


  Так чем же Delphi и MVC не совместимо? Пишешь структуры данных, связи, создаешь обработчики для классов модели. На обработчики вешаешь обновление представления. У форм свои обработчики, которые обновляют структуры данных. То что компоненты хранят в себе данные, так это можно рассматривать как кеширование, позволяющее не дергать по 100 раз в сек модель, ведь скорость доступа к ее данным может быть недостаточно быстрой.

Автор: LSD 25.7.2012, 15:20
Цитата(Alexeis @  25.7.2012,  15:56 Найти цитируемый пост)
Так чем же Delphi и MVC не совместимо?

А где ты увидел утверждение, что дельфи несовместимо с MVC?

Автор: Alexeis 25.7.2012, 15:25
Ну я так грубо выразился, в том смысле, что проектирование приложений по патерну MVC вызывает проблемы или неудобства. 

Автор: Akella 26.7.2012, 09:06
Цитата(LSD @ 25.7.2012,  14:33)
Цитата(Akella @  25.7.2012,  15:27 Найти цитируемый пост)
MVC - это типа построеное визуального тырфейса, на основе данных и модели?

MVC это разделение на слои, данные отдельно, представление этих данных отдельно.

ну так в дельфи это всё есть с самого рождения, можно сказать

Автор: LSD 26.7.2012, 13:34
Цитата(Akella @  26.7.2012,  10:06 Найти цитируемый пост)
ну так в дельфи это всё есть с самого рождения, можно сказать

Расскажи мне про слой данных в компоненте TListBox smile 

Автор: Alexeis 26.7.2012, 14:34
Там нет слоя данных, только строки, причем насколько я знаю они хранятся непосредственно в виндовом контроле без собственного кеширования. Некоторые насилуют нетипизированный указатель на Objects, но это скорее затычка для тех кому нужно, что-то по быстрому на коленке накидать. Модель данных это собственные массивы / списки, если это БД компонент, то для него источник данных базы будет моделью. Контроллер работает через механизм обработчиков источника данных и/или обработчиков компонента.

Автор: Akella 22.8.2012, 08:45
http://www.cgdevtools.com/demo/JQueryDemoIW12_ISAPI.dll/0fm5zoi0hxnbyw1gl3htt11y8wqj/

Автор: LSD 18.10.2012, 11:34
http://habrahabr.ru/post/154607/
Цитата
Прежде всего: компания Ebarcadero не любит мелких разработчиков. Их интересуют только крупные компании, которые покупают у них по много дорогих лицензий на средства разработки. И вот тут приходит время для грусти программистов, которые сделали ставку на Делфи: самая дешевая лицензия на Делфи стоит 900 долларов (в то же время новейшую Вижуал Студию от Микрософта можно получить вообще бесплатно, благодаря программе БезСпарк). Компания Embarcadero закрыла все программы по стимулированию разработчиков пользоваться их продуктами, которые были у Борланда. Теперь Делфи предназначен только для богатых компаний. В отличии от Микрософта, который всячески поддерживает мелких разработчиков и стимулирует использовать для создания программ свои продукты. А это значит, что мы совершили огромную ошибку, программируя столько лет на Делфи и не желая переучиваться на Вижуал Студию. Но кто же знал десять лет назад, что всё так обернется…

Автор: kemiisto 18.10.2012, 13:25
Всё, можно удалять раздел Delphi. smile  Embarcadero разрешил. smile 

Автор: serger 18.10.2012, 13:27
Чувак в комментах защищает Delphi - а сам использует его как мелкий разработчик. Он распинается - как же Delphi удобен для таких как он.
http://habrahabr.ru/post/154607/#comment_5278791
вообще показательная ветка. Доказательство того что компания рубит сук на котором сидит...

Автор: Zloxa 18.10.2012, 13:30
Цитата(LSD @  18.10.2012,  12:34 Найти цитируемый пост)
Embarcadero: нас не интересуют мелкие разработчики (по итогам «мирового турне»)

Это цитата или мнение?
Воспринимается как цитата, но больше похоже на мнение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)