LINUX.ORG.RU
ФорумTalks

[языки программирования] Неразбериха в голове

 


0

0

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

Это то, что называют семантикой языка, или другое?

Как пример, можно привести "излюбленный" C++, и его язык шаблонов, который, по сути, прибит к плюсам гвоздями-сотками, и нихрена не вписывается по "внешнему виду".

Истина где-то рядом?

>и я проснусь от матрицы

fixed

ferro
()
Ответ на: комментарий от one_more_hokum

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

wfrr ★★☆
()

>Как пример, можно привести "излюбленный" C++, и его язык шаблонов, который, по сути, прибит к плюсам гвоздями-сотками, и нихрена не вписывается по "внешнему виду".

Привести к чему? Любой компилируемый езыг для "объектности" сводится к структорам со ссылкой на таблицу функций.

madcore ★★★★★
()
Ответ на: комментарий от madcore

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

В SICP Lisp неимоверно гибче выглядит. Или я что-то упускаю???

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

>представляется созданием какого-то монолита.

KDE большой проект? Монолит? Неа. Вопрос закрыт и перешел во флейм кде против гнома.

wfrr ★★☆
()
Ответ на: комментарий от wfrr

монолит - kdebase с кучей обвесок.
А kdebase можно обозвать kdelibs'ами с кучей обвесок, да.

NekoExMachina
()
Ответ на: комментарий от wfrr

> кде против гнома.

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

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

> Гном не на чистом Ц пишут, а с использованием сотен препроцессоров

over 9000 preprocessors, really.

tailgunner ★★★★★
()
Ответ на: комментарий от one_more_hokum

>> Да.

> Что?

Многое.

> Где?

Да везде.

> Расскажи!

Если кратко, то 2 вещи: 1) Scheme и Python (которай читается "Пайтон", а не "Пейтон" - Пейтон это совсем другой человек) - динамически типизированные языки, а Си++ - статически; 2) система шаблонов Си++ изначально не проектировалась как язык программирования,и использование ее в таком качестве - это чистый abuse.

tailgunner ★★★★★
()
Ответ на: комментарий от one_more_hokum

> Белка, иди в лес!!! Шо за привычка в любое дупло нос совать? Выучись на стоматолога!

Он абсолютно прав. Сегодня пятница, и топикстартеру чтобы пофиксить неразбериху в голове стоило бы пойти квасить с друзьями, чем писать потоки сознания про Тьюринга (которого модно лепить куда ни попадя) и шаблоны в C++

Spectr ★★★
()
Ответ на: комментарий от tailgunner

> ...динамически типизированные языки, а Си++ - статически

Да, после нескольких относительно безуспешных попыток сваять на чистых плюсах одну херь с горечью убедился, что на Python это делается чуть-ли не мигом. Статическая типизация умирает в программировании систем, не сильно требовательных к размеру и скорости кода?

> система шаблонов Си++ изначально не проектировалась как язык программирования

А как что она программировалась? Замена стандартного препроцессора? Не похоже ни разу вообще. #define false true лично я не представляю, как сделать на шаблонах.

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от Spectr

> чтобы пофиксить неразбериху в голове

Чтобы пофиксить неразбериху, надо фиксить её. А не бухать, как трёхжопый Змей Горыныч. К тому же, я сильно очень устал за неделю, и стандартная доза свалит меня в hibernate часа за пол, что нехорошо по отношению к собеседникам.

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

>> система шаблонов Си++ изначально не проектировалась как язык программирования

> А как что она программировалась? Замена стандартного препроцессора? Не похоже ни разу вообще. #define false true лично я не представляю, как сделать на шаблонах.

Не пиши чушь.

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

Spectr ★★★
()
Ответ на: комментарий от one_more_hokum

> Статическая типизация умирает в программировании систем, не сильно требовательных к размеру и скорости кода?

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

>> система шаблонов Си++ изначально не проектировалась как язык программирования

> А как что она программировалась?

Программировалась? O_o

> Замена стандартного препроцессора? Не похоже ни разу вообще.

Как скажешь.

P.S. Завязывай с наркотиками, они не доведут до добра.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Программировалась? O_o

Какой косяк с моей стороны!!! Проектировалась, конечно. :-)

> Как скажешь.

Как я скажу, я знаю. Меня интересует мнение других. Из которого я буду делать выводы.

> P.S. Завязывай с наркотиками, они не доведут до добра.

Лентяй ты. Вместо того, чтобы распространять хорошее, доброе, вечное...

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

> Статическая типизация умирает в программировании систем, не сильно требовательных к размеру и скорости кода?

Просто в плюсах достаточно хреновая статическая типизация.

Miguel ★★★★★
()

> Пейтоне

вот только недоскриптов не хватало...

ferro
()
Ответ на: комментарий от Spectr

> Шаблоны сделаны для параметризации типов, в основном для контейнеров.

Есть где-нить в удобочитаемом виде техзадание на разработку шаблонов, что именно они хотели с них получить?

one_more_hokum ★★★
() автор топика

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

С тем, что это принципиально разные вещи.

> Это то, что называют семантикой языка, или другое?

Это то, что называют системой типов.

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

Begemoth ★★★★★
()
Ответ на: комментарий от one_more_hokum

>В SICP Lisp неимоверно гибче выглядит. Или я что-то упускаю???

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

Sidrian
()
Ответ на: комментарий от one_more_hokum

> Проектировалась, конечно. :-)

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

> Меня интересует мнение других.

Сам Страуструп во втором издании книги говорил о шаблонах, как о хитрых макросах.

tailgunner ★★★★★
()
Ответ на: комментарий от one_more_hokum

> Есть где-нить в удобочитаемом виде техзадание на разработку шаблонов, что именно они хотели с них получить?

Представь себе, есть.

"The design and Evolution of C++" Bjarne Stroustrup - в России издана как "Дизайн и эволюция C++".

Spectr ★★★
()
Ответ на: комментарий от one_more_hokum

> Есть где-нить в удобочитаемом виде техзадание на разработку шаблонов, что именно они хотели с них получить?

Страуструп в "Дизайн и эволюция С++" пишет, что он хотел обобщённые типобезопасные контейнеры.

Begemoth ★★★★★
()
Ответ на: комментарий от tailgunner

> в облике Алекса Степанова

По слухам, идея STL забрела ему в голову, когда он валялся в больничке после серьёзного отравления рыбой в состоянии "изменённого сознания". Хотя, мог бы просто почитать SICP. :-)

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

> По слухам, идея STL забрела ему в голову, когда он валялся в больничке после серьёзного отравления рыбой

Жаль, не насмерть.

tailgunner ★★★★★
()
Ответ на: комментарий от one_more_hokum

> А что тебя именно раздражает: сама идея, или реализация?

Да без разницы. Меня раздражает, что сделали с языком ради реализции STL, и что из него сделали эквилибристы типа Александреску и аффтаров Буста.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Жаль, не насмерть.

-- А может, не надо бы так? Всё-таки человек, живое дыхание... Ну, грешен --- так накажите, поучите, а зачем вот так-то?

-- Ты, это, брось!.. Ты, это, потише: во-первых, люди кругом...

Zenom ★★★
()

> А что тебя именно раздражает

чем манеру разговора психолога/психиатра с недомогающим/больным напоминает

ferro
()
Ответ на: комментарий от ferro

> чем манеру разговора психолога/психиатра с недомогающим/больным напоминает

Чем-то манеру подглядывающего за... напоминает.

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

> Собирался как-то закупиться ей -- так и не собрался. Может, взять?

Полезная книга. После её прочтения становится понятно, почему этот язык C++ такой как есть, и спокойнее его воспринимать; и какие его части в каких случаях лучше использовать.

Spectr ★★★
()
Ответ на: комментарий от one_more_hokum

> Это не лечится. Не компилируется и не поддерживается. :-)

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

tailgunner ★★★★★
()
Ответ на: комментарий от Miguel

> в плюсах достаточно хреновая статическая типизация

А покажи на язык, который с "правильной" статической типизацией? Я его потыкаю!

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от tailgunner

> "лютый пиздец"

Можбыть, "вырвиглазный пиздец"?

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

> >в плюсах достаточно хреновая статическая типизация

> А покажи на язык, который с "правильной" статической типизацией?

Ха, это ж Мигель %) Ясное дело, что он посоветует.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

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

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от tailgunner

>> Статическая типизация умирает в программировании систем, не сильно требовательных к размеру и скорости кода?

>Статическая типизация умирает в программировании систем, которые не сильно нужны работоспособными.

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

Absurd ★★★
()
Ответ на: комментарий от Absurd

Ты ж ушел вроде в знак протеста?

> TG, ты в каком мире живешь? Я думаю не в нашем

Яволь.

> В нашем мире и ежу очевидно что статическая типизация раздувает зависимости.

Расскажи мне еще о вашем мире :)

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

Первые 4 слова - правильные, остальное - чушь из другого мира.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.