Программирование - это просто

sami

Местный
Язык программирования в среде Делфи - Паскаль.
Рассуждать про "язык Делфи" и сравнивать его с другими ЯП некорректно т.к. нет такого языка программирования.
Есть
http://en.wikipedia.org/wiki/Object_Pascal
Borland used the name Object Pascal for the programming language in the first versions of Delphi, but later renamed it to the Delphi programming language.
 

Mike22

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

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

sami

Местный
Объектный Паскаль - это ведь тоже Паскаль.
Там по ссылке ведь видно что Делфи не является единственным компилятором этого языка, на нём можно и без Делфи писать.
Да, тем не менее язык называется Delphi, а не Object Pascal. И уже довольно давно. Не один и не три года точно.
Делфи позволяет очень легко и быстро "накидать" графический интерфейс, причём за эту простоту приходится расплачиваться чудовищной неэффективностью в использовании ресурсов системы, а собственно программирование самой задачи - это обычный и объектный Паскаль, Делфи тут ни при чём.
На счет ресурсов системы я бы не говорил о чудовищной неэффективности. Относительно питона Delphi довольно близко приближается по эффективности использования ресурсов к C++. Уж во всяком случае вровень с .NET, если не эффективнее. А вот с ресурсами разработчика - делфи серьезно сливает. Хотя на порядок удобнее того же C++ по части накидать интерфейс.
 

sami

Местный
Ну компонентный подход это и есть упрощенно говоря перекладывание ответственности на компоненты и их разработчиков...
Задачу по спецификации второй способ решает лучше, если грамотно выбрать компонент "ходильщик за хлебом", в который все функции, описанные в первом способе и некоторые другие уже инкапсулированы :lol:
или самому вставить инкапсулировать B)
Если подойти формально к задаче "сходить за хлебом", то задача заключается собственно в "сходить", а "за хлебом" это уточнение. Задача "сходить", порученная конкретному лицу, вряд ли подразумевает перекладывание отвественности. Если бы задача стояла "доставить хлеб" - то другое дело.
Инкапсуляция - это сокрытие реализации. Если речь идет о функциональности, то ее не инкапсулируют, ее реализовывают.
А "ООП в чистом виде"?
Ну я не знаю что это такое...
В двух словах это парадигма программирования, использующая объекты в качестве структур данных. Подробности легко гуглятся.
То что программы на дельфи не очень экономно иногда распоряжаются ресурсами компьютера - согласен.
Но ресурсы компа дешевеют согласно закону Мура, а ресурсы программиста дельфи очень сильно экономит :)
А з/п программиста впору мерить в компьютерах))
При грамотном подходе программы, написанные на делфи, достаточно эффективны в отношении ресурсов компьютера. Наоборот, ресурсы программиста тратятся малоэффективно. Я бы в этом отношении поставил делфи между C++ и C#.
Согласно понятием программиста - "сварганитьь браузёр" это этот самый "контрольчик" написать, а уж затем сунуть на форму)))
написать такой браузерный контрольчик с нуля - дело гораздо серьезнее, чем решается одним программистом в туалете за обед.
ЗЫЫ А если говорить про оптимизацию кода серьезно, то тут надо "копать" гораздо глубже чем выбор среды программирования высокого уровня.
Так что здесь "ломать пальцы" стараясь сэкономить пару сотен мег ОЗУ или сократить релиз проги на мегабайт считаю - "Артель напрасный труд" B)
Разница в пару сотен мег "памяти" при написании программы в неуправляемых средах попахивает безалаберностью программиста(ов), т.к. при реализации одних и тех же алгоритмов и при использовании схожих подходов разница не будет такой сильной. Для управляемых сред такая разница допустима. Но делфи ведь генерит неуправляемый код.

Кстати, проги не используют ОЗУ. Во всяком случае напрямую B)
 

Mike22

Местный
Да, тем не менее язык называется Delphi, а не Object Pascal. И уже довольно давно. Не один и не три года точно.
Согласен сойтись на том, что Delphi является диалектом языка Pascal, а не самостоятельным языком. :lol:

хотя, сам считаю что он и до диалекта не дотягивает, это среда разработки, и всё
или можно назвать его фреймворком, но никак не языком
 

sami

Местный
Согласен сойтись на том, что Delphi является диалектом языка Pascal, а не самостоятельным языком. :lol:
Мы же не на рынке. Язык называется "Delphi Programming Language", нравится это кому-то или нет. Формально Delphi называется среда, но и язык тоже так называют.
хотя, сам считаю что он и до диалекта не дотягивает, это среда разработки, и всё
или можно назвать его фреймворком, но никак не языком
Я тоже считаю что до диалекта он не дотягивал в то время, когда я работал с Delphi (в 2001-м). Как сейчас - мне лениво поглядеть. Может и дотягивает. Спорить об этом нет желания B)
 

Mike22

Местный
Да понятно что спор пустой.
Как верно пишет Wikipedia - Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.
Но ведь от этого новый язык программирования не появился.
:lol:
 

sami

Местный
Да понятно что спор пустой.
Как верно пишет Wikipedia - Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.
Но ведь от этого новый язык программирования не появился.
:lol:
Все-таки Object Pascal от Apple это совсем не тот язык, который сейчас называется Delphi. Туда Borland и не только внесли довольно много изменений, даже в синтаксисе. Динамическая типизация, указатели на методы, перегрузка методов, вариантные типы, события, интерфейсы (для поддержки COM), анонимные методы + generics (для поддержки .net), и сахар для монад! Правда последнее относится к диалекту "Delphi for .NET" и внесены после переименования (этого всего небыло, когда я задвинул на делфи).
Т.е. сначала все это выросло из Object Pascal-а, а потом уже было переименовано.
 

Q_star

Новичок
Заблокирован
2Mike22:
ладно, программа, написанная с использованием среды программирования Delphi и библиотеки VCL.
Почему я так не пишу? потому что букв больше, а так - согласен.

Delphi (помимо среды разработки)- это действительно отличная подборка
компонентов-заготовок, написанных на расширении паскаля Object Pascal, которое "дельфийцы" еще больше расширили...
Насчет чудовищной неэффективности - не совсем понимаю о чем речь...
Доводилось скачивать фриварные програмки на C которые требовали для своей работы немалых размеров dll-ки...
(их скачивать в пене и мыле - неэффективность не только с точки зрения юзера, но и с точки зрения программиста, желающего
юзеру помочь:) )
Так программа simplex для решения ЗЛП, написанная на Visual С++ требует для своей работы аж 3 dll-ки общим весом 1,5 мегабайта.
Программа великолепная, не спорю, но на ВУДЗРШ она работала бы и без этих dll, которые морока искать (сейчас в силу популярности проги разработчик добавил их в архив)

А то что паскаль после всех изменений паскалём быть не перестал (в то время как у Сей множество взаимоисключающих диалектов...) - это говорит о некой самодостаточности и мощи этого языка.
Его здесь воистину можно сравнить с Великим и Могучим Русским Языком))

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

sami написал(а):
Разница в пару сотен мег "памяти" при написании программы в неуправляемых средах попахивает безалаберностью программиста(ов), т.к. при реализации одних и тех же алгоритмов и при использовании схожих подходов разница не будет такой сильной. Для управляемых сред такая разница допустима. Но делфи ведь генерит неуправляемый код.

Кстати, проги не используют ОЗУ. Во всяком случае напрямую wink.gif
Вот именно, что "накривую", потому я и говорю, что оптимизация кода путем перехода на менее удобные диалекты языков высокого уровня - занятие несколько неблагодарное...

И что значит неуправляемый код?
И что значит управляемый?
Код - это последовательность управляющих команд...
Или я чего-то пропустил? :lol:

ЗЫ Возвращаясь к примеру с хлебом.
Сходить за хлебом - эта задача, поставленная перед исполнителем.
Если уж быть совсем формальным , то слово "сходить" не определяет тот факт, КТО должен "сходить", поэтому исполнитель, получивший задачу "сходить" вызывает "ходильщика", формализует ему задачу , и запускает её на выполнение...

Естественно на этом его действия и ответственность заканчиваются - компонентно ориентированный подход))
Примерно тоже самое происходит и в виндовозе.
Если даже структурно-ориентированная программа выполняет процедуру "a=const", это вовсе не означает что именно эта программа будет искать в ОЗУ свободную ячейку для этой константы, более того, это не означает, что присвоение произойдет немедленно :D
 

sami

Местный
Delphi (помимо среды разработки)- это действительно отличная подборка
компонентов-заготовок, написанных на его расширении Object Pascal, которое "дельфийцы" еще больше расширили...
Ошибка считать компоненты Delphi написанными на паскале. Насколько я помню, в основном это лишь обертки над стандартными элементами управления, ActiveX объектами. Среди них есть написанные на паскале от и до, но их не так много чтобы говорить об написании компонентов на паскале без уточненния.
А то что паскаль после всех изменений паскалём быть не перестал (в то время как у Сей множество взаимоисключающих диалектов...) - это говорит о некой самодостаточности и мощи этого языка.
Нету у него самодостаточности. В язык пришлось понапихать кучу всего чего там нехватало. И понапихали, судя по всему, не лучшим образом. Если говорить о самодостаточности и мощи, то это не о паскале, а о LISP-е. Вот это (вместе с диалектами) язык беспрецидентной самодостаточности и мощи.
Несмотря на то, что русский язык вобрал в себя слова многих языков, любое слово, сказанное по-русски будет звучать вполне естественно.
В то время, как тот же англичанин с трудом поймет шотландца или ирландца...
Куда там, русский русского не понимает. Да ладно, даже русские программисты по-русски договориться не всегда могут.
Вот именно, что "накривую", потому я и говорю, что оптимизация кода путем перехода на менее удобные диалекты языков высокого уровня - занятие несколько неблагодарное...
Делфи - язык довольно низкого уровня, если не рассматривать его версию для .net. Ну а под .net это один из самых неудобных языков.
И что значит неуправляемый код?
И что значит управляемый?
http://ru.wikipedia.org/wiki/Управляемый_код
 

Q_star

Новичок
Заблокирован
педивикию читал - под "управляемым" кодом понимают код, который выполняется "виртуальной машиной", под неуправляемым - любую "нормальную"
программу))
Так что ничего плохого в "неуправляемости" кода нет...

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

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

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

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

sami

Местный
Сходить за хлебом - эта задача, поставленная перед исполнителем.
Если уж быть совсем формальным , то слово "сходить" не определяет тот факт, КТО должен "сходить", поэтому исполнитель, получивший задачу "сходить" вызывает "ходильщика", формализует ему задачу , и запускает её на выполнение...

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

Примерно тоже самое происходит и в виндовозе.
Если даже структурно-ориентированная программа выполняет процедуру "a=const", это вовсе не означает что именно эта программа будет искать в ОЗУ свободную ячейку для этой константы, более того, это не означает, что присвоение произойдет немедленно :lol:
Если речь идет о виндовзе, а не о каком-то ПМК, то программы не взаимодействуют напрямую с ОЗУ. Ничто в виндовзе не происходит немедленно. И даже ячейка не ищется во время присвоения, если речь о языках, в которых практикуется структурный подход.
 

Q_star

Новичок
Заблокирован
Ответственность компоненты ограничивается тем, для чего она предназначена, а не тем, для чего ее зарядили. Вся остальная ответственность на том, кто ее использует. Это теоретически. Практически же заказчика не волнует по чьей ответственности не выполнится задача. Спросит он с исполнителя, а не с ходильщика.
корректнно написанный исполнитель "зарядит" компоненту тем, для чего она предназначена.
"заказчик" (операционная система) в случае "зависания" ходильщика выгрузит обоих из памяти (не без помощи юзера), а дальше
юзер, разобравшись и матюкнувшись, скачает dll с другим ходильщиком, т.е. апдейт))

Если речь идет о виндовзе, а не о каком-то ПМК, то программы не взаимодействуют напрямую с ОЗУ. Ничто в виндовзе не происходит немедленно. И даже ячейка не ищется во время присвоения, если речь о языках, в которых практикуется структурный подход.
Ну я про то и сказал))
 

sami

Местный
педивикию читал - под "управляемым" кодом понимают код, который выполняется "виртуальной машиной", под неуправляемым - любую "нормальную"
программу))
Так что ничего плохого в "неуправляемости" кода нет...
Я не говорил что в ней что-то плохое. Напротив, управляемый код обладает некоторыми преимуществами в некоторых ситуациях. Я говорил что разница в 200Мб памяти для неуправляемых языков достигается не за счет выбора языка, а по другим причинам.
Если на то пошло, то все программы написаны в машинных кодах))
Чушь. В машинных кодах написано только то, что написал в машинных кодах автор.
А разработчик гордо говорит, что он написал на чем-либо прогу, когда ему удалось увязать кем-то написанные "куски" в единый узел, а уровней "делимости" этих кусков может быть немало...
Повторяю, если уж не лукавить, то код выполняется в микрокомандах процессора, а о том как устроен конкретный процер и кто его сваял программеру вряд ли знать интересно :lol:
В микрокомандах может выполняться код интерпретатора или виртуальной машины, который в свою очередь выполняет код совершенно другой программы, и процессор о той программе ничего не знает, даже названия. Взять тот же JS.

Кстати,дельфийцы как раз и могут вставлять в свои программы хоть ассемблерные вставки, хоть "контрольчики" на С++, хоть что...
Не одни делфийцы такие умные. Зато у делфийцев проблемы с рантайм кодогенерацией.
Самодастаточность она в том и заключается на мой взгляд, что пихай хоть что, а все равно будет вагина удобное средство разработки...
Значит Делфи так же самодостаточна как и Жигули. Что туда не пихай, все равно будет Жигули.
По части удобства Делфи... Есть с чем сравнивать-то?

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

Q_star

Новичок
Заблокирован
Неуправляемый язык??
А что мешает написать цензора интерпретатор паскаля - и будет паскаль управляемым :lol:

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

А про ЛИСП заинтриговало.
Я так понимаю, вы что-то написали полностью на ЛИСПЕ?
Причем такое, что обычно пишут на Дельфи и Си.
Если так, то я заинтригован.
Покажите, дайте ссылку, хочу посмотреть и проникнуться :)
 

sami

Местный
Неуправляемый язык??
А что мешает написать цензора интерпретатор паскаля - и будет паскаль управляемым :lol:
Паскаль для .NET вполне себе управляем. Ничего писать не надо.
Ну и одного интерпретатора для управляемости недостаточно. Там еще нужна куча мероприятий для codesecurity, контроля за обращением к памяти, и т.п.
 

Q_star

Новичок
Заблокирован
Паскаль для .NET вполне себе управляем. Ничего писать не надо.
Ну и одного интерпретатора для управляемости недостаточно. Там еще нужна куча мероприятий для codesecurity, контроля за обращением к памяти, и т.п.
Согласен - управляемость/ неуправляемость это свойство практически не связанное с тем на каком языке написан код...
Понятно, еще UP, я добавил.
 

sami

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

А про ЛИСП заинтриговало.
Я так понимаю, вы что-то написали полностью на ЛИСПЕ?
Причем такое, что обычно пишут на Дельфи и Си.
Если так, то я заинтригован.
Покажите, дайте ссылку, хочу посмотреть и проникнуться :lol:
Нет, не писал. Тяготею к статически типизированным языкам. Да и вообще, все чем я занимался, в интернете недоступно. Так уж получилось.
 

Q_star

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


Нет, не писал. Тяготею к статически типизированным языкам. Да и вообще, все чем я занимался, в интернете недоступно. Так уж получилось.
Понимаю.
По крайней мере Паскаль существует и еще долго наверное будет существовать...
Мне интересны Ваши прогнозы, почему Вы не счиаете Вирта дальновидным.
Delphi живет, развивается.
Вы хотите сказать что-то придет ему на смену? Что? И когда?

PS Позволю себе немного пофилосовствовать.
Вот есть говорящие фамилии.
Фамилия Кант (философ) является корнем слова Кантоваться (пережидать что-то думая над смыслом жизни)

А вот фамилияя Вирт (кибернетик) является корнем слова Виртуальный (коментарии излишни)

Неспроста)))
 
Сверху