LINUX.ORG.RU

Более лучшие типы

 


0

2

Одна из известнейших персон CS, американский учёный в области вычислительной техники, директор по исследованиям корпорации Google,член Совета Американской ассоциации искусственного интеллекта, Питер Норвиг отмечает бесспорные преимущества первоклассных динамических типов:

Первоклассность: могут быть использованы точно также, как и любой другой объект или значение.

Типы или классы являются объектами времени исполнения (не только времени компиляции)

Переменные могут иметь типы в качестве своих значений

Типы и классы могут быть созданы/изменены в рантайме

Мы имеем функции для манипуляции типами/классами, а также выражения для создания безымянных типов.

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

http://norvig.com/design-patterns/design-patterns.pdf стр 11



Последнее исправление: javaQest (всего исправлений: 2)
Ответ на: комментарий от quantum-troll

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

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

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

работают

Я один раз попробовал. Поставил себе примитивный оконный менеджер. Сначала я около часа ждал, пока скачается несколько сот терабайт зависимостей. Затем мне на экран вылезло какое-то тормозное говно, которое было настолько любезно, что долго ждало прежде чем сделать что-либо после нажатия на клавиши. Было прикольно, ибо никогда не понятно, нажал ты на самом деле на кнопку или нет, время отклика — примерно от секунды до трех. Ну, и подглючивать периодически оно не забывало.

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

javaQest
() автор топика
Ответ на: комментарий от quantum-troll

Чот я не понял какое отношение к предмету обсуждения (типизации) имеет тот факт, что для разработки на руби нет хорошего тулчейна.

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

ну на хаскеле все еще хуевве и что?

Нет, даже хаскелевский получше будет.

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

Если что, лучше всего к дисциплине приучает компилятор со статическими типами.

Ну это ложь

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

к чему приучает статика - это лепить костыли для обхода системы типов

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

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

Ложь - это то, что писание на динамических языках якобы приучает к дисциплине.

Это не ложь, это правда.

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

А она и проверяется. Фактом засовывания шипастой дилды в твое очко, если ты ее не соблюдал.

Это инстинктивная реакция дикаря.

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

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

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

А она и проверяется. Фактом засовывания шипастой дилды в твое очко

Похоже, любители шипастой дилды в очке - главные адепты динамической типизации.

к чему приучает статика - это лепить костыли для обхода системы типов

Это инстинктивная реакция дикаря

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

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

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

Похоже, любители шипастой дилды в очке - главные адепты динамической типизации.

Не, они как раз не любят.

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

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

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

Не, они как раз не любят.

Да ладно, ты запалился уже. Протокол приведен выше.

шипастой дилдой в очко не драли

Продолжай завидовать.

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

Да ладно, ты запалился уже.

Это где же?

Продолжай завидовать.

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

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

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

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

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

Вполне очевидно, что ты выбрал.

Я выбрал быть человеком. Статикодебилы выбирают оставаться обезьянами. Зато очко цело, ок.

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

Я выбрал быть человеком.

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

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

программы на рубях действительно рассыпаются

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

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

какой то мужик по ссылке написал, что тулы в руби ужасные... и что? RSpec, Bundler, pry, RubyMine, vim, zsh - что ужасного то? а главное где лучше? и чем лучше?

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

Тормоза это не проблема динамики, это проблема программиста, который в каждую дырку сует свою любимую технологию/язычек!!

Iron_Bug подскажите, я правильно думаю, что вы знаете только С++ С Делфи и ваши задачи это: кодить под микроконтроллеры, писать драйверы, писать ОС... Частенько пишете что нужно байты оптимизировать, сегодня оказалось jit медленный(при том что биржи и банки все на java, а там данных много)... Как вы решите задачу - необходимо пробежаться по сайтикам (пусть их будет 100шт) спарсить данные, вставить в БД. Какие оптимизации будете проводить и сколько байтов сэкономите?

RA
()
Ответ на: комментарий от quantum-troll

http://devblog.avdi.org/2015/07/08/ruby-is-defined-by-terrible-tools/

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

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

А, так ты ещё и веб-разработчик.

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

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

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

Она становится человеком от того, что развивает интеллект. Тока вот no pain, no gain, а потому статикодебилу стать человеком невозможно.

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

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

Она становится человеком от того, что развивает интеллект

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

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

На дилде зациклен не я

Ну, это ты зачем-то притащил ее в обсуждение дисциплины типизации:

anonymous> она и проверяется. Фактом засовывания шипастой дилды в твое очко, если ты ее не соблюдал

А потом стал развивать глубокую философию:

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

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

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

хехе, да вы оба не ровно дышите к такого рода тематике ;)

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

я ничего не могу сказать про парсинг сайтов, слишком неконкретная задача. а про оптимизацию баз написана не одна монография, нет смысла обсуждать такие вопросы в общем, без конкретики.
у меня опыт работы не только с хардварой, но и в написании серверов (телеком), сетевых приложений (тоже серверные варианты). и паскалем я не занимаюсь (по крайней мере, с 2000 года), только С/C++.
а что касается банков, у них дохрена денег и им наплевать, что они переплачивают в десятки раз за сервера. отсюда и выбор жабы. будь они чуть умнее, могли бы экономить на железе. впрочем, они ещё ссут насчёт безопасности, а жаба распиарена, как «безопасный» вариант софта.

Iron_Bug ★★★★★
()

А пошто темку про Гёделя удалили? Вроде же нормально общались, не такой уж и тупняк был.

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

Да по мнению leave, что только не тупняк, он видать смотрит на общую реакцию, и «вычисляет». Сам то он в подобных темах ноль, как, впрочем и в программировании в целом, насколько я понял. Синдром вахтера, короче, сработал, как всегда.

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

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

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

то первые версии, BTW, были написаны отнюдь не на сишке.

Да ладно? Не потому-ли, что они писались в 60х-70х, а си выпустили только в 72м?

отношения не имеет.

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

статике ничего сложнее хелловорда написать невозможно

А теперь мажешься, что отношения это не имеет и всё перепишут. У меня один вопрос остался: ты правда такой или набрасываешь?

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

Динамикокодер дисциплинирован
кодер дисциплинирован

Ты решил за всех динамикокодеров? Но рандомному кодеру насрать что ты там решил, но пишет как умеет.

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

Не потому-ли

об этом ты можешь только гадать.

микроконтроллеры, драйверы...

речь шла о сложном.

ядра основных ос

форкнуть — не значит написать

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

Ты путаешь сильную типизацию со статической

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

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

Факты говорят об обратном. Динамическую типизацию со слабой путать — вот это реалли может только тролль или дебил

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

Динамическую типизацию со слабой путать

Где я перепутал? Читай:

при статической типизации компилятор скорее всего намекнёт тебе
а какой-нибудь динамический интерпретатор это схавает

Так и есть для, например c/c++ vs php

вот это реалли

Ты опять пёрнул в лужу. Вот это - реалии.

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

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

А какой реальный профит от ЯВУ на приложении, решающем задачу, где все эти высокоуровневые конструкции банально не нужны и можно писать на ассемблере?

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

Ты решил за всех динамикокодеров? Но рандомному кодеру насрать что ты там решил, но пишет как умеет.

А умеет он дисциплинировано. Потому что иначе на динамике писать просто нельзя, не получится.

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

Так и есть для, например c/c++ vs php

Вообще-то с++ - слаботипизированный язык, так же как и пехепе. Так что он как раз такие конструкции смело хавает. Плохой ты пример привел.

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

До этого ты спутал, не п*ди, я тред читал. А то что ты процитировал — это опять твои фантазии и домыслы. Если динамический язык сильнотипизирован, он свалит такой код в рантайме.

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

Пыхомакаки вон, пишут и ничего.

Дык там где что-то получается - все дисциплинировано вполне. А где недисциплинировано - там и результат околонулевой.

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

char* + int ругается, string + int - ошибка.

Зато 1+1.0 кушает и не давится, кроме того void* куда угодно засунуть можно.

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

Дык там где что-то получается - все дисциплинировано вполне

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

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

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

Если писали дисциплинированные люди (а если результат есть - значит дисциплинированные), то будет.

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