LINUX.ORG.RU

Возврат значения из замыкания


0

4

Как вы считаете, если противопоставить, какое _и почему_ в абстрактном ЯП поведение оператора return внутри замыкания более правильное/оправданное: когда return только возвращает управление из замыкания или когда return вызванный внутри замыкания приводит ещё и к возврату из контекста, откуда было вызвано замыкание?

p.s. В качестве примера второго поведения - return из Proc в Ruby.

★★

Последнее исправление: maxcom (всего исправлений: 1)
Ответ на: комментарий от mv

Есть несколько парадигм ООП.

В Smalltalk - передача сообщений. В CLOS - мультиметоды и обобщенные функции. В нормальных языках - инкапсуляция, виртуальные функции, наследование, полиморфизм, паттерны проектирования, моделирование на UML.

Первые две оказались несостоятельными и провалились, последняя была принята индустрией и стала стандартом де-факто. Что не так?

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

В Smalltalk - передача сообщений. В CLOS - мультиметоды и обобщенные функции. В нормальных языках - инкапсуляция, виртуальные функции, наследование, полиморфизм, паттерны проектирования, моделирование на UML.

Я и говорю, что ты CLOS в глаза не видел.

Да у вас, батенька, баттхёрт!

Страшный, страшный баттхёрт у меня случается каждый раз, когда я вижу глупого, необразованного человека!

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

Я и говорю, что ты CLOS в глаза не видел.

Что не так? CLOS не построена на мультиметодах и обобщенных функциях? Но ведь это так:

The basic building blocks of CLOS are classes, instances of classes, generic functions and their methods.

Следовательно, тебе просто нечего ответить и ты переводишь тему и начинаешь хамить. Я тоже могу утверждать, что ты Java в глаза не видел. И?

Страшный, страшный баттхёрт у меня случается каждый раз, когда я вижу глупого, необразованного человека!

Переход на личности (ad hominem) - свидетельство того, что у оппонента нет реальных аргументов. Слив засчитан.

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

Следовательно, тебе просто нечего ответить и ты переводишь тему и начинаешь хамить. Я тоже могу утверждать, что ты Java в глаза не видел. И?

Следовательно, я у меня реальный, боевой опыт на Лиспе есть, а у тебя нет. Соответственно, ты - банальный х..плёт, а моими устами глаголет всенепременная истина. И т.к. своего опыта и знаний ты по обсуждаемой теме не удосужился заработать (т.к. ты - х..плёт), то тебе только остаётся принять на веру моё утверждение, что «ООП с классами, методами, полями, инкапсуляцией, наследованием и полиморфизмом» в Лиспе есть.

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

Переход на личности (ad hominem) - свидетельство того, что у оппонента нет реальных аргументов. Слив засчитан.

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

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

Следовательно, я у меня реальный, боевой опыт на Лиспе есть, а у тебя нет. Соответственно, ты - банальный х..плёт

Разве надо быть поваром, чтобы понять, что мясо протухло?

а моими устами глаголет всенепременная истина

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

«ООП с классами, методами, полями, инкапсуляцией, наследованием и полиморфизмом» в Лиспе есть.
инкапсуляцией
инкапсуляцией

Но ведь это ложь. В CLOS методы не принадлежат классам, а ты не читал определения «инкапсуляции». Следовательно,

тебе только остаётся принять на веру моё утверждение

Как можно принимать на веру твои утверждения относительно классического ООП, если ты его в глаза не видел и не компетентен в нем?

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

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

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

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

Но ведь это ложь. В CLOS методы не принадлежат классам, а ты не читал определения «инкапсуляции». Следовательно,

Ох, лол, какое определение? «Инкапсуляции в C++»? Я тебе даже больше скажу: в Лиспе можно функции с данными инкапсулировать в замыканиях, безо всяких объектных систем.

Как можно принимать на веру твои утверждения относительно классического ООП, если ты его в глаза не видел и не компетентен в нем?

Я когда-то не только на «классическом ООП» писал, но и защищал его не менее рьяно, чем сейчас Лисп.

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

Я тебе даже больше скажу: в Лиспе можно функции с данными инкапсулировать в замыканиях, безо всяких объектных систем.

В С++11 тоже можно. И?

Я когда-то не только на «классическом ООП» писал

И? Это не делает тебя автоматически компетентным в этой области.

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

И, кстати, я тебе задал конкретный вопрос по CLOS, но ты не смог ответить. Ну, что, засчитываем очередной слив?

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

Какой такой вопрос?

Ну как же, чувак сказал «клосовское ооп кривое, там мультиметоды», ты спросил, какие конкретно претензии к клосу, он тебе ответил, что «клосовское ооп кривое, там мультиметоды» и хочет, чтобы ты ему рассказал, почему оно клёвое и с примерами. )

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

В нормальных языках - инкапсуляция, виртуальные функции, наследование, полиморфизм, паттерны проектирования, моделирование на UML.

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

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

Но ведь это ложь. В CLOS методы не принадлежат классам, а ты не читал определения «инкапсуляции».

Если ты считаешь, что инкапсуляцию имеет хоть какое-то отношение к «принадлежности методов классам», то ты определение инкапсуляции тоже не читал.

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

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

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

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

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

Не надо пробовать жрать говно, вывод о его несъедобности можно сделать и чисто теоретически.

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

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

Пожалуйста, пруф реализации Java-like ООП в виде 100-строчной библиотеки на «нормальном языке» в студию.

Нет пруфа? Значит п*здобол.

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

пруф

Да для любой схемы по куче пруфов. Практически каждый лиспер пишет just for lulz свою реализацию ООП (так же как и реализацию инфикса). Потом выкидывает, конечно - потому что ни ООП ни инфикс нинужно, когда есть более удобные инструменты.

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

Практически каждый лиспер пишет just for lulz свою реализацию ООП

И потом еще спрашивают, почему говнокод на говнолиспе поддерживать невозможно. Смешно!

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

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

И потом еще спрашивают, почему говнокод на говнолиспе поддерживать невозможно.

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

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

Так эта реализация пишется не за тем, чтобы ее потом использовать. Просто в качестве тренировки.

Это можно сказать вообще обо всем, что пишется лисперами. Что такое практика, они, очевидно, вообще представления не имеют.

На практике-то ООП не нужен

Даже и не знаю, что на это сказать. Ты у психиатра давно проверялся?

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

Даже и не знаю, что на это сказать.

ООП само по себе (да и вообще любая фича) не имеет никакого смысла вне контекста задач, в решении которых оно помогает. Языки с ФВП и замыканиями (типа лиспа) предлагают более удобные, гибкие, простые и поддерживаемые способы решения тех задач, что традиционно решает ООП (то самое «инкапсуляция, наследование, полиморфизм»). Что делает ООП ненужным.

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

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

ООП само по себе (да и вообще любая фича) не имеет никакого смысла вне контекста задач, в решении которых оно помогает. Языки с ФВП и замыканиями (типа лиспа) предлагают более удобные, гибкие, простые и поддерживаемые способы решения тех задач, что традиционно решает ООП (то самое «инкапсуляция, наследование, полиморфизм»). Что делает ООП ненужным.

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

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

ООП - это единственная методология анализа и проектирования, которая вообще работает.

Гы, сына, лол. Анализ и проектирование - это, на минутку, OOA и OOD.

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

Анализ и проектирование - это, на минутку, OOA и OOD.

Ну да. А все вместе - это ООП.

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

Ты, вероятно, не в курсе, но ООП это намного больше, чем просто средства языка.

Ты, вероятно, не вкурсе -но это именно свойства языка.

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

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

ООП - это единственная методология анализа и проектирования, которая вообще работает.

Просто ты не понимаешь, что такое ООП. Точнее воспринимаешь его слишком широко.

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

Просто ты не понимаешь, что такое ООП. Точнее воспринимаешь его слишком широко.

Я его понимаю ровно так, как завещал понимать товарищ Кей.

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

А зачем ООП? Я не про лисп, а вообще. Инкапсуляция - модули

Полиморфизм - дженерики/шаблоны для параметрического, тайпклассы/инстансы - для ad-hoc

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

И т.д.

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

А зачем ООП? Я не про лисп, а вообще.

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

Инкапсуляция - модули

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

Полиморфизм - дженерики/шаблоны для параметрического, тайпклассы/инстансы - для ad-hoc

Полиморфизма много не надо. Как в Обероне - в самый раз.

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

Наследование тоже сомнительную пользу в ООП имеет. Достаточно самой простой формы (subclasses, virtual methods).

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

А при чем тут Кей? ООП было до него, первым языком была Simula 67, к которому указанный товарищ, мягко скажем, не имел никакого отношения.

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

Тогда от ООП остается только «все объекты», а это не серьезно. Так было и до ООП.

P.S. Оберон - говно.

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

Я его понимаю ровно так, как завещал понимать товарищ Кей.

ООП в понимании Кея нет в той же Java.

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

Я его понимаю ровно так, как завещал понимать товарищ Кей.

Давай тогда определимся с терминологией. А то ведь ООП товарища Кея - это message-passing. И в жабе нет такого ООП.

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

Любой инструмент должен быть реализован удобно. Ну то есть вот в плюсах есть ФВП и замыкания, но сделаны костыльно. потому нахуй там не нужны, кроме как приговаривать «а у нас есть». Наличие плохо реализованного инструмента на практике не отличается от его отсутсвтия.

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

Давай ты скажешь, что такое ООП.

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

Но ведь под эту формулировку не подходит ни ява, ни тем более упомянутый тобой Оберон.

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

А что там не так? Удобно вполне. Если еще Boehm GC юзать и забить на слежение за замыканиями - так вообще не отличить от нормальных языков.

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

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

Каг бе, ты не прав.

В продакшене, кстати, на удивление отлично работает. Я после глюков SBCL 3-4 года назад при работе с не очень сложной программой StumpWM ожидал проблем и с моим Ъ-энтерпрайз софтом, в котором применено всё самое плохое, что лиспофобы боятся в лиспе, но Lispworks на удивление хорошо работает за свои деньги.

Из бесплатных Clozure примерно того же порядка надёжности.

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

Тогда от ООП остается только «все объекты»

Еще наследование объектов-структур, геттеры, сеттеры, прочие поведенческие «триггеры» для хитрого изменения состояния, а больше от ооп и не надо.

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

Каг бе, ты не прав.

Пруф или не было.

в котором применено всё самое плохое, что лиспофобы боятся в лиспе,

И сколько человек (и за какие деньги) это говно поддерживает?

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

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

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

«Наследование объектов-структур» - это что?

Наследование структуры полей, конструктора, геттеров-сеттеров (если надо)

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

Что такое композиция? Миксины или что?

а наследование интерфейсов - тайпклассами

Тайпклассы в динамически типизированном лиспе? Это как?

А остальное из тобой перечисленного - не ООП, ибо просто абстракция и инкапсуляция.

Абстракция, например, в моем примере вообще не при чем. А инкапсуляция - на уровне структуры и того, что я перечислил выше.

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

а какие недостатки реализации у Clozure по сравнению с SBCL?

Код помедленнее генерит, плюс некоторые товарищи пишут библиотеки под SBCL-only.

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

Пруф или не было.

Дак, это давно известный на ЛОРе факт, что я лиспом на хлеб/двухподвес/Вольво (две) зарабатывал.

И сколько человек (и за какие деньги) это говно поддерживает?

Говно - это твоя никчёмная сущность, а проект писал я один. Кое-какую алгоритмическую лабуду закодировал наш CTO, поддержку SNMP написал ньюхайр в рамках знакомства с системой. ~200 программ на DSL написали железячники, что, каг бе, намекает на простоту использования DSL простыми смертными.

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

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

а проект писал я один

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

даже осознать потенциал технологии не способен

Ага, ага, потенциал говнолиспа уже более 50 лет вся индустрия осознать не способна. Потенциал, та-акой потенциал!

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

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

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

Ага, ага, потенциал говнолиспа уже более 50 лет вся индустрия осознать не способна. Потенциал, та-акой потенциал!

Ты лучше скажи, на чём и что пишешь, и чего в жизни добился?

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

Промышленная серьёзная разработка - это когда два десятка долдоёдов не может написать одну программу?

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

Тогда, да, не годится. На лиспе пишут умные, способные люди,

Бугагашеньки! Ты сделал мой день, чувак!

им даже специально завалить проект профессиональная гордость не позволит. Всё делается в лучшем виде.

Да да да. В таком лучшем, что потом приходится все на C++ переписывать, как с viaweb было.

Ты лучше скажи, на чём и что пишешь, и чего в жизни добился?

Ну да, конечно же, «спервадобейся». Пишу на Java и C++, добился денег, почета и уважения.

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

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

Т.е., когда пишет одна сотня разрабов и поддерживает всего-то 9,5 лет - то разработка уже не промышленная и не серьезная, а так, погулять вышла :D

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

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

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

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

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

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

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

Лолшто? Ты спросил mv о _его_ проекте, он тебе ответил. Что тебя не устраивает? Проекты на Лиспе ничем принципиально не отличаются от проектов на любом динамически типизированном языке. Хочешь саксесс сториз - иди на сайты производителей Лисп-систем.

А самый успешный лисп-проект, с тысячами разработчиков и миллионами пользователей - это Emacs.

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

Ну ты лукавишь, ядро emacs на сишечке писано, а лисп выбран в качестве, скажем так, языка расширения. И там свой lisp - elisp, весьма годный, между прочим, язык. Для своих задач.

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

Ты спросил mv о _его_ проекте, он тебе ответил.

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

Хочешь саксесс сториз - иди на сайты производителей Лисп-систем.

Тут над этим бредом уже столько раз народ смеялся, что даже как-то не хочется к этому возвращаться. Я не Кука, мне это не интересно.

А самый успешный лисп-проект, с тысячами разработчиков и миллионами пользователей - это Emacs.

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

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

Ну ты лукавишь, ядро emacs на сишечке писано, а лисп выбран в качестве, скажем так, языка расширения

На Си там написана Лисп-машина. Можешь сравнить объем Си-кода с объемом elisp-кода.

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

проектишко
Тут над этим бредом
маргинальная игрушка для ламерья.

Что-то ты сдуваешься.

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

Дак, это давно известный на ЛОРе факт, что я лиспом на хлеб/двухподвес/Вольво (две) зарабатывал.

Так ты не благодаря лиспу зарабатывал, а вопреки. Если бы владел более современными, мощными языками, заработал бы на порядок больше. Ты серьезно не знаешь, сколько зарабатывает Java senior/lead developer? Java-специалисту топ-класса просто не придет в голову хвастаться на форуме тачками и шмотьем.

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

Лол, съемные полдома, велошмотки, китайский велосипед и подержаные тачки в кредит. И все это потреблядство - вершина стремления лисперов?

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

Но в душе ты все равно остаешься совковым школьником-нищебродом.

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

Код помедленнее генерит, плюс некоторые товарищи пишут библиотеки под SBCL-only.

Лол, вот это труЪ энтерпрайз! Переносимость и производительность!

И вы после этого взбугурчиваете от того, что лисп потерпел фиаско и был отвергнут индустрией.

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

Так ты не благодаря лиспу зарабатывал, а вопреки. Если бы владел более современными, мощными языками, заработал бы на порядок больше. Ты серьезно не знаешь, сколько зарабатывает Java senior/lead developer?

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

Java-специалисту топ-класса просто не придет в голову хвастаться на форуме тачками и шмотьем.

Мазду третью покупает Java-специалист, и потом спрашивает, чо она не едет. Ибо не шарит.

Лол, съемные полдома, велошмотки, китайский велосипед и подержаные тачки в кредит.

Велошмотки, в основном, английские и американские (канондейл, эндура). Велосипед американский. Тачки без кредитов. Полдома съёмные, потому что ещё не решил, где осяду. Но и своя недвижимость в России есть, если чо...

Ты мне ещё в упрёк поставь, что я свои машины сам ремонтирую. Типа, нищеброд.

И все это потреблядство - вершина стремления лисперов?

Я никуда не стремлюсь особо, но у меня это всё есть, и завелось без особых усилий.

Я, кстати, давно заметил, что у тебя есть пунктик - икра. Это очевидным образом свидетельствует о том, что сего продукта тебе в детстве не доставалось (т.е. родители нищебродствовали),

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

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

Если бы владел более современными, мощными языками

Это Java-то современный и мощный? Вот даунище. Java - тупой и примитивный.

Никто стае макак в 200 рыл современный и мощный язык не доверит. Так что Java в индустрии как раз к месту.

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

Ты серьезно не знаешь, сколько зарабатывает Java senior/lead developer?

Не говори ему этого, иначе депрессия неизбежна. ЛОР без такого клоуна будет скучнее.

Java-специалисту топ-класса просто не придет в голову хвастаться на форуме тачками и шмотьем.

Ладно бы тачками. Вольвой, господа, позорной вольвой!

И все это потреблядство

Какое же это потреблядство? Это даже на жалкие потуги не тянет. Ладно бы яхтой за сто лямов хвастался.

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

Можно линуксовые ядра на волл-стрите или в чикаге конфигурировать за $1500 в день.

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

Полдома съёмные, потому что ещё не решил, где осяду.

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

Ты мне ещё в упрёк поставь, что я свои машины сам ремонтирую. Типа, нищеброд.

Это всего лишь очередной симптом красноглазия.

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

Не говори ему этого, иначе депрессия неизбежна. ЛОР без такого клоуна будет скучнее.

Ну давай поделись своей N-figure зряплатой, интересно ведь. Может перейду на жабу от зависти.

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

Можно линуксовые ядра на волл-стрите или в чикаге конфигурировать за $1500 в день.

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

Ну расскажи, не томи.

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

им даже специально завалить проект профессиональная гордость не позволит.

cпециально

т.е. оно как-то само получается? :)

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

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

Пол-европы идиоты, живут в съёмном жилье, один ты умный такой.

Ты и в самом деле не в курсе, сколько платят за Java.

Расскажи.

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

Пол-европы идиоты, живут в съёмном жилье, один ты умный такой.

Идиотов намного больше чем половина популяции. Зато другая, малая часть популяции - умные люди. Они сдают жилье идиотам.

Расскажи

А он потом топиться побежит. Оно мне надо?

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

Зато другая, малая часть популяции - умные люди. Они сдают жилье идиотам.

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

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

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

Чувствуется попаболь в адрес москвичей. Мсье замкадыш?

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

Не надо ля-ля. Огромное количество рантье тупо взяли в банках кредиты. Есть такая особая форма mortgage, для ренты. Знаю людей, кто при средних вполне доходах таким образом десятки домов сдает.

И тут вообще не разделяют людей по наличию собственного / снимаемого жилья.

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

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

Чувствуется попаболь в адрес москвичей. Мсье замкадыш?

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

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

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

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

Угу, чего и тебе желаю.

А что на самом деле про нищебродов там думают тебе не скажут

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

Reaper ★★
() автор топика
Последнее исправление: Reaper (всего исправлений: 1)
Ответ на: комментарий от psikh

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

Нихрена за Java не платят. Платят технарям за ум и смекалку. А Java это или Хренава роли не играет.

Ты просто не в курсе, кого мы, «лисперы», тут троллим. Тут есть такая категория деревенщин, среди которых ходит поверье, что, мол, можно по-быстрому выучить Java + Oracle DB + Linux, и богатые пузатые дядьки мигом увезут тебя из родного колхоза прямиком в солнечную Калифорнию.

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

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

Ты просто — пиздабол.

Это такой эвфемизм для слова «гуманист», да?

Это эфемизм для слова «осеннее трепло». Как наблюдатель, могу сказать: понты mv - это просто другой уровень убедительности по сравнению с твоими. Он не скрывает, как его зовут, чем он занимается, где работает, кто его начальник, и что у mv «вольво», а не «ягуары. А ты туманно вещаешь о каких-то супер-пупер-жаба -профи, которые заколачивают огромные бабки. Как было сказано в другом подобном сраче: „чтобы меряться хуями, надо как минимум не стесняться их доставать“, а ты внезапно застеснялся.

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

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

Значит, объясняю, как капитализм работает: предприимчивый человек идёт с дулей в кармане к инвесторам и получает от них небольшой кусок денег, которого хватает, в среднем, примерно на год. За год человек должен выкатить работающий прототип, чтобы инвесторы дали настоящих денег, на которых можно дотянуть до самоокупаемости. Работу делают хорошо, если по одному человеку на подсистему. Один человек на Коммон Лиспе делает больше, чем один человек на Яве, потому что Ява по сравнению с CL - жалкий ассемблер.

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

Иногда стартап вырастает в «номер 1» в своей нише и начинает рубить реальные бабки. Код с ростом фич раздувается неимоверно, и когда контору покупает акула за совсем космические деньги, то стоимость адаптации получается офигенно большой, а риски потери «номер 1» на рынке ещё выше. В таком случае акула сохраняет структуру купленной конторы, контора продолжает писать, как и раньше писала, нанимать тех людей, каких её надо, а не акуле, и т.п. Это случай с ITA.

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

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

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

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

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

Это всего лишь очередной симптом красноглазия.

Я просто хороший инженер.

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

т.е. оно как-то само получается? :)

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

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

Следовательно, тебе просто нечего ответить и ты переводишь тему и начинаешь хамить. Я тоже могу утверждать, что ты Java в глаза не видел. И?

Следовательно, я у меня реальный, боевой опыт на Лиспе есть

стрелочник хуже педераста.

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

Переход на личности (ad hominem) - свидетельство того, что у оппонента нет реальных аргументов. Слив засчитан.

Если ты выглядишь, как утка, и крякаешь, как утка, то ты - утка.

обоснуй. Не все здесь используют говноЯП с говноутиной типизацией, в которой это верно по определению.

Если не хочешь, чтобы тебя за утку считали, то не крякай хотя бы.

не все думают в абстракциях твоего говносишарпа. Переведи.

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

Ох, лол, какое определение? «Инкапсуляции в C++»? Я тебе даже больше скажу: в Лиспе можно функции с данными инкапсулировать в замыканиях, безо всяких объектных систем.

в велосипеде можно покрутить педали, и велосипед поедет. Потому любой автомобиль - говно. В нём так педали крутить нельзя.

В Си можно сделать указатель на массив указателей на функции. Ну и что? Ну и что, что «безо всяких объектных систем»?

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

В Си можно сделать указатель на массив указателей на функции. Ну и что? Ну и что, что «безо всяких объектных систем»?

Замыкание - это и есть инкапсуляция. А указатель на массив функций - не инкапсуляция.

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

...для написания хелловорлдов.

Он нуден не «для», а «в случае». Конкретно - в случае отсутсвия ФП. ООП - это эмуляция ФП (кривая и костыльная). Когда ФП нет - то можно пользоваться жмуляцией (на безрыбье и рак рыба), но когда ФП есть - то зачем нам эмуляция? Можно использовать удобный и эффективный оригинал.

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

Если ты понимаешь лишпы, то вот это замыкание:

(let ((x 42))
 (defun foo (y)
  (+ x y)))

(foo 1) ;43

Функция foo замыкается на переменную x. Это та самая инкапсуляция, что происходит в следующем коде на С++:

class C{
public:
 C():_x(42){}
 int foo(int y){return _x+y;}
};

C c;
c.foo(1); //43

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

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

Он нуден не «для», а «в случае». Конкретно - в случае отсутсвия ФП. ООП - это эмуляция ФП (кривая и костыльная).

тебя обманули.

но когда ФП есть - то зачем нам эмуляция?

на самом деле, ФП - это ФП, а ООП, это ООП.

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

тебя обманули.

кто?

на самом деле, ФП - это ФП, а ООП, это ООП.

Да, ФП -это ФП, а ООП - это ООП. Потому что x - это х, для любого х. Но при этом 2*2 = 4, хотя 4 это не 2*2 (разные термы).

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

Если ты понимаешь лишпы, то вот это замыкание:

(let ((x 42))
 (defun foo (y)
  (+ x y)))

(foo 1) ;43

Функция foo замыкается на переменную x. Это та самая инкапсуляция, что происходит в следующем коде на С++:

в контексте Си это НЕ замыкание. X это такая переменная, которая видна исключительно в контексте foo(). Если ты читал SICP, то тебе должно быть ясно, что твоя (let, это всего лишь сахар над твоей лямбдой, которая, в свою очередь, инкапсулирует в себя своё X. Т.е. в контексте сишечки, твоя функция эквивалентна

int foo(int y)
{
    static int x = 42;
    return x+y;
}
За исключением того, что ты вывел X за скобки функции (чего в сишечке прямо делать нельзя. Впрочем и в LISP'е нельзя, но можно криво, или через синтаксический сахар).

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

Охуенная история. А чему в контексте сишечки будет эквивалентен код:

(let ((x 42))
 (defun foo (y)
  (+ x y))
 (defun yoba (y)
  (- x y)))

(foo 1)
(yoba 1)
?

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

Т.е. в контексте сишечки, твоя функция эквивалентна

Ну давай, а теперь расшарь static int x между двумя функциями foo и bar, и заодно сделай геттер и сеттер этой x.

X это такая переменная, которая видна исключительно в контексте foo(). Если ты читал SICP, то тебе должно быть ясно, что твоя (let, это всего лишь сахар над твоей лямбдой, которая, в свою очередь, инкапсулирует в себя своё X.

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

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

А чему в контексте сишечки будет эквивалентен код:

ничему не будет. А чему в контексте твоего говнолиспа будет эквивалентен указатель на массив указателей на функции?

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

Ну давай, а теперь расшарь static int x между двумя функциями foo и bar, и заодно сделай геттер и сеттер этой x.

зачем?

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

ну и что? Да, это инкапсуляция.

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

зачем?

Затем, что ты совсем недавно привел неправильную аналогию замыкания (ЧСХ, я привел правильную с классом). А вообще все началось с того, что ты в ответ на мое утверждение, что замыкание - это инкапсуляция, просил привести пример замыкания. И потом зачем-то слился на static int x. Впрочем, ты за последние пару часов уже столько облажался, что наверное и сам со счету сбился.

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

ничему не будет. А чему в контексте твоего говнолиспа будет эквивалентен указатель на массив указателей на функции?

А при чем тут указатели на функцию? Ты попросил пример замыкания - тебе дали пример замыкания. problem, oficier?

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

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

в одном из лучших ОО-языков, в Обероне

лицоладонь.gif

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