[Ответить в тред] Ответить в тред

03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 310 | 15 | 55
Назад Вниз Каталог Обновить

Аноним 08/05/16 Вск 23:44:10  737921  
14627402503750.jpg (22Кб, 354x220)
Почаны, поясните про динамическую типизацию. Она же уебищна. Для чего она вообще? Что она вообще дает, кроме того, что вместо нескольких одинаковых функций под разные типы аргументов, пишешь одну и передаешь в нее все, что хочешь? Это здорово конечно, но в реальной жизни это же нахуй не нужно. Если ты пишешь функцию sum(a,b):return a+b, то все это для того, чтобы сложить два числа. Нахуя тебе возможно складывать строки, экзмепляры класса MyAwesomeClass или еще какая поебота? И ведь берешь ты сторонний, херово задокументированный, модуль. И начинаешь охуевать ибо вообще не ясно, что передавать в ту или иную функцию и что получишь на выходе. Начинаешь гуглить, доки читать. А для чего все это? В статических языках в 9 случаях из 10 ты только из названия функции, аргументов и возвращаемого значения, сразу понимаешь, что к чему. Плюс интеллисенс в статике работает отлично. В итоге в чужом говне копаться не приходится. Дело в том, что перекатился из сисярпа на питон. Все в нем нравится, кроме типизации, но видимо я просто ее прелести не раскусил. Остальным же нравится. Выручай, анон.
Аноним 08/05/16 Вск 23:48:42  737926
Бамп
Аноним 08/05/16 Вск 23:54:03  737928
Бамп 2
Аноним 08/05/16 Вск 23:56:18  737930
Бамп 3
Аноним 09/05/16 Пнд 00:01:28  737932
>>737926
>>737928
>>737930
Ну и чего ты бампаешь тред, которому 15 минут?
Динамическая типизация позволяет быстрее писать скрипты, концентрируясь на алгоритме, а не на переменных. Привыкнешь как-нибудь.
Кстати, анон когда-нибудь встречал скрипты со статической типизацией?
А насчет документации - тебе в любом случае придется ее читать.
Кстати, в питоне можно писать аннотации к параметрам функции, которые показывают типы, правда, они только как информация и проверка типов на деле не происходит.
Аноним 09/05/16 Пнд 00:17:34  737953
>>737932
>Динамическая типизация позволяет быстрее писать скрипты
это что за чушь?
>анон когда-нибудь встречал скрипты со статической типизацией?
встречал, и не раз
Аноним 09/05/16 Пнд 00:19:42  737956
>>737932
>Кстати, анон когда-нибудь встречал скрипты со статической типизацией?
Ну вот TypeScript вроде бы так умеет

>концентрируясь на алгоритме, а не на переменных
Ну как запись int i =0 вместо i=0 помогает лучше сконцентрироваться на алгоритме? Все равно не понял

>в питоне можно писать аннотации к параметрам функции
Да, в курсе. Но они буквально более-менее полноценно в последней версии заработали. Т.е. сторонние модули все без аннотаций в основном.

Может кто подскажет, что почитать на тему перехода со статики на динамические ЯП?

OP
Аноним 09/05/16 Пнд 00:21:11  737958
Динамическая типизация позволяет разбивать программу на полностью независимые модули. Каждый из которых может быть написан и откомпилирован полностью независимо от других. И внесение изменений в один модуль не требует перекомпиляции всех остальных (само по себе). Тогда как для реализации статического контроля при компиляции одного модуля тебе нужна определенная инфа от всех других модулей которые он использует (В С, например, это хедеры). И внесение даже минимальных изменений в один из модулей (поменял тип одной переменной с float на double) требует полной перекомпиляции всех зависимых модулей. Также динамическая типизация немного упрощает разработку - динамическая макака просто высирает код, тогда как статической макаке приходится еще подправлять этот код чтобы он прошел статическую проверку. В общем динамическая типизация ускоряет превращение идей в программы, особенно при инкрементальной разработке. Когда ты написал один скриптик. Потом дописал туда еще что-то. Потом еще один скриптик. Потом добавил или подправил еще. Динамическая дрисня позволяет быстро вносить изменения в программы, даже в рантайме (при соотвествующей инфрастуктуре), запускать для тестов неполные модули или находящиеся в неконсистентном состоянии. При статической типизации это все сложно, хотя если порвать жопу то наверное можно и при статическом реализовать.
Аноним 09/05/16 Пнд 00:56:21  737982
14627445810750.png (45Кб, 603x486)
Аноним 09/05/16 Пнд 01:27:00  737997
14627464208000.jpg (36Кб, 400x400)
>>737958
> Вы только что прослушали крестушиное кукареканье
Аноним 09/05/16 Пнд 01:37:52  737999
>>737997
Все он правильно тебе написал.
tl;dr патамушта сложна Аноним 09/05/16 Пнд 01:54:30  738003
Потому что в фундаментальном смысле динамическая типизация первична - лямбда исчисление было открыто раньше типизированного, которое вообще не тьюринг-полно; наивная теория множеств обходилась без типов и прочее.
С другой стороны, когда ты говоришь о "статической типизации" ты подразумеваешь жалкие аннотации string, int, MyObject в какой нибудь жабке, а ведь это только начало пути. Как ты отличишь строки полученные от пользователя и нуждающиеся в санитизации? Для этого в жабке корифеи предлагают заводить типы обертки под каждый пук (ищи primitive obsession). Тут встает такая "дилемма" - либо создать свой собственный тип обертку TaintedString и кучу бойлерплейта либо держать все в голове, т.е. та же динамическая типизация - ты от нее никуда не ушел.
А дальше открываются увлекательные миры сессионных типов, рефайнменты, зависимые типы и доказуемая корректность.
Аноним 09/05/16 Пнд 02:16:30  738006
>>737956
> int i =0 вместо i=0
В котлине тоже можно написать var i = 0 а не
var i: Int = 0, но он статически типизирован, так что динамическая типизация не про это
Аноним 09/05/16 Пнд 04:54:51  738017
>>738003
От value class нет бойлерплейта тащемта. И самые частоиспользуемые можно вынести в либу и реюзать.
Аноним 09/05/16 Пнд 07:52:42  738031
>>737958
>Динамическая типизация позволяет разбивать программу на полностью независимые модули ...
Это не свойство динамической типизации. Никто не заставляет затирать информацию о типах в статически-типизированных языках.
>В общем динамическая типизация ускоряет превращение идей в программы, особенно при инкрементальной разработке.
Это кажется. На самом деле, ты код на пистоне будешь отлаживать дольше, чем такой же на фшарпе/окамле, который ещё и пишется наполовину в репле (то есть, 98% его работает сразу после написания).
Аноним 09/05/16 Пнд 07:57:40  738032
>>738006
Это вывод типов, ничего общего не имеющий с динамической типизацией. Она именно про это.

>>738031
Ты про тесты на каждый пук ещё забыл, но в целом-то да.
Аноним 09/05/16 Пнд 08:18:04  738038
>>738031
> не заставляет затирать информацию о типах
Поясни. В динамикопараше, если тебе нужна функция foo() из другого модуля ты просто вызываешь foo() и надеешся что эта хуйня не наебнется в рантайме. Тоесть разработка полностью независима от другого модуля, даже при его использовании. Для осуществления статического контроля тебе нужна инфа от другого модуля - существует ли вообще такая функция, сколько там и каких аргументов и что она возвращает. Тоесть модули связаны между собой и при изменениях инфы нужно перекомпилировать все модули которые ее используют. Где здесь "затирание типов"?
Аноним 09/05/16 Пнд 08:31:49  738039
>>738038
Про заголовки файлов слышал? В заголовке модуля можно прописать и функции, и что они возвращают, и что им надо для работы. Затирание информации о типах было к тому, что дальше ты писал про возможность передать дабл туда, где нужен флоат. Собственно, никто тебе не мешает таскать тип значения с собой и делать то же самое в статических языках. Просто так не делают, ибо тормозить будет как динамикопараша.
Аноним 09/05/16 Пнд 09:12:09  738042
Да много где встречал, что динамическая типизация хуита. А в чем тогда подводные камни использования для веба, допустим, Go? Я нюфаг, поясните чем он плох
Аноним 09/05/16 Пнд 10:42:09  738072
>>737921 (OP)
Динамическая типизация позволяет быстро разрабатывать. Половина паттернов из GoF, типа абстрактной фабрики и прочего подобного говна результат уёбищности статической типизации и пердолинга с ней. Постоянно доказывать тайпчекеру что ты не верблюд и прогибаться под машину - это конечно доставляет всяким аутистам, но нормальные программисты обходятся без этого.
Аноним 09/05/16 Пнд 10:45:52  738078
>>738072
>пукпукпук
У нормальных программистов ничего не падает и не тормозит в рантайме, а так же не нужно писать тесты на каждый выпук.
Аноним 09/05/16 Пнд 10:49:08  738084
>>738078
Круто. А причем тут типизация?
Аноним 09/05/16 Пнд 10:54:33  738085
>>738084
Ну ты попробуй пораскинуть мозгами. Или перепиши там интерпретатор своего языка на него же, чо.
Аноним 09/05/16 Пнд 11:05:42  738090
>>737921 (OP)
Так вот. Статическая типизация хоть и охуенно мешает нормальному программисту разрабатывать, но зато спасает от постоянных обосрамсов тырпрайз рабов. А так как у мартыханов никогда выразительных средств и не было, то тайпчекер постоянно бьющий по пальцам и заставляющий везде указывать типы (что иногда бывает не так просто) воспринимается как нечто положительное.
Аноним 09/05/16 Пнд 11:05:50  738091
>>737921 (OP)
Всё правильно говоришь.

К счастью уже есть MyPy, который пилит Гвидо (среди прочих), это грубо говоря линтер, который проверяет типы (похоже на TypeScript).
Аноним 09/05/16 Пнд 11:06:50  738092
>>738091
>TypeScript
Говно же.
Аноним 09/05/16 Пнд 11:06:59  738093
>>738091
Так он уже есть и можно им вот так взять и воспользоваться?
Аноним 09/05/16 Пнд 11:07:16  738094
>>738092
Чому? Из-за лишнего этапа компиляции?
Аноним 09/05/16 Пнд 11:11:57  738096
>>738092
Охуенно
>>738093
Да, указываешь типы аннотациями и запускаешь mypy время от времени чтобы проверить (лучше интегрировать в CI если это не laba1.py). Брат жив.
Аноним 09/05/16 Пнд 11:12:31  738097
>>738094
нет. TypeScript требует обязательного наличия файлов деклараций для сторонних библиотек. Приходится их скачивать у рандомных хуев из интернета. flowtype в этом плане более продуман, не требует деклараций для либ + имеет рантайм-проверку типов.
Аноним 09/05/16 Пнд 11:15:36  738100
>>738042
Двачую. Что про Go скажете, аноны?
Аноним 09/05/16 Пнд 11:16:59  738101
>>738072
>доказывать тайпчекеру что ты не верблюд и прогибаться под машину

Так типизация один хрен строгая в том же пайтоне. Т.е. тебе все равно прогибаться придется. Ну или поясняй, что ты имел в виду
Аноним 09/05/16 Пнд 11:19:59  738102
Статическая типизация не предотвращает от ошибок сложнее «случайно складываем слонов с китами», она не спасает от опечаток, не нарушающих типизацию, она не спасает от ошибок в логике, а последних двух типов ошибок — большинство.
Аноним 09/05/16 Пнд 11:22:03  738104
14627821232360.jpg (38Кб, 312x447)
>>737982
Аноним 09/05/16 Пнд 11:22:05  738105
>>738102
Фигню написал. От опечаток защищает любая более-менее нормальная IDE. От ошибок в логике не спасет ничего вообще ибо если б еще и от этого кто-то спасал, то зачем нужны программисты тогда?
Аноним 09/05/16 Пнд 11:26:03  738110
>>738102
>>738096
Ну т.е. раз сам Гвидо за такое взялся, значит проблема существует и динамические ЯП не так охуенны?
Аноним 09/05/16 Пнд 11:26:18  738111
Чтоб на статической типизации писать обобщённые алгоритмы, нужна постоянно какая-то дроч темплейты, генерики, потом генериков не хватает, начинаются какие-то извращения, типа генериков высшего порядка, типов высших порядков. Пиздец в общем.
Аноним 09/05/16 Пнд 11:27:11  738112
То же самое касается создания универсальных коллекций.
Аноним 09/05/16 Пнд 11:28:33  738113
>>738111
Назови практические примеры пиздеца. И не бугурти если вопрос глуп, я нюфак
Аноним 09/05/16 Пнд 11:29:54  738114
Да и когда на динамике в 2 раза меньше писать. Типизация все равно не спасает от всех ошибок, культуру написания тестов не заменить на типы.
Аноним 09/05/16 Пнд 11:31:11  738116
>>738111
Вот пишешь ты сайтик на похапэ, много там будет обобщенных алгоритмов?
Аноним 09/05/16 Пнд 11:37:38  738119
>>738116
Сайтик сайтику рознь. Может и будет.

>>738113
Ну попробуй на Go (где нет дженериков) написать обобщённый алгоритм поиска элемента в массиве не скатываясь в динамическую парашу.
Аноним 09/05/16 Пнд 11:39:35  738120
>>738110
Конечно
Аноним 09/05/16 Пнд 11:45:13  738122
>>738119
Goвно Goвну рознь, маня. Там все контейнеры реализовываются на магии компилятора, ахуенный конечно пример – язык без метапрограммирования.

Хотя даже там есть кодогенерация для бойлерплейта.
Аноним 09/05/16 Пнд 11:50:09  738124
>>738122
Я просто привёл простой пример к тому, о чём говорил выше, о необходимости дополнительных средств вроде обобщённого программирования, паттернов-хуятернов, вывода типов и прочему там, где динамика просто работает.
Олсо, дженерики являются метапрограммированием только в говноязыках уровня жабы.
Аноним 09/05/16 Пнд 11:50:59  738125
14627838600180.png (22Кб, 321x419)
Статическая типизаця рулет ееее!
Аноним 09/05/16 Пнд 11:53:56  738127
>>738124
И в чём же смысл этого? В том, что корректность типов будет доказываться в рантайме и тормозить хуже чем ява со включенным перемещающим сборщиком? В то, что тебе для функции slozhit1plus1() нужно писать тесты?
Аноним 09/05/16 Пнд 11:54:07  738129
>>738122
Так все-таки что с Go? Просто в треде ему посвященному эти долбоебы Илюшу какого обсуждают весь тред, по делу мало что написано. Я про него знаю только, что он статический, похож на C, там нету классов, но есть структуры и что он вроде бы заточен под веб

>>738042-кун
Аноним 09/05/16 Пнд 12:02:31  738133
>>738127
Ну во-первых, сама по себе статическая типизация не гарантирует производительности программ. Во-вторых, в прикладных программах не требуется какая-то хардкорная скорость, а требуется достаточная, где не очень то важно отрабатывает код за 50мкс или 50мс. Время программиста дороже времени железяки. Может в каком нибудь системном коде и требуется 0 оверхерда, но там обычно пишут на лоу левел языках, где ошибок и так много где наловить можно, а к особым удобствам никогда и не привыкали.
Аноним 09/05/16 Пнд 12:02:57  738135
>>738129
С ним-то всё ок.

Под веб заточены пхп, руби на рельсах и прочие. Го – это про микросервисы, веб сервера и прочую высокоуровенную системщину.

Если ты нюфаг – для тебя там всё отлично, от его убераскетичного синтаксиса плюются только писавшие на более навороченных языках.
Аноним 09/05/16 Пнд 12:04:49  738137
А зачем типизация и тесты? Я просто помню что принимают и возвращают мои функции.
Аноним 09/05/16 Пнд 12:05:29  738138
>>738133
Вот именно – в прикладном софте и нету никакой ебли с типами. Назови те самые "костыльные" паттерны про которые ты втираешь пол треда.

Относительно динамических – гарантирует.
Аноним 09/05/16 Пнд 12:06:07  738139
Так то, например, в няшной типы вообще для компайлера нужны, а не для того, что обезьянки не обсирались, как в тырпрайзе.
Аноним 09/05/16 Пнд 12:06:18  738140
>>738137
Ну если ты helloworld в одного, то помнишь. А если ты в команде работаешь, или не дай бох, чужой модуль подключил, то ты помнишь ничего не можешь
Аноним 09/05/16 Пнд 12:08:53  738145
>>738138
Ты ебанутый? В прикладном софте у тебя нет обобщённых алгоритмов, коллекций и ебли с декларациями типов и патернами-хуятернами, там где надо декларировать что то сложнее чем Кукарек <кококо> кукарек = new Кукарек <кококо> ?
Аноним 09/05/16 Пнд 12:09:15  738146
>>738135
Ок, где его реально можно применить? Свой веб-сервер только запилить? Тебе пользоваться приходилось?
Аноним 09/05/16 Пнд 12:10:34  738147
>>738139
Они там для всего и сразу, а так же по тому, что вычислять типы в рантайме 40 лет назад было дороговато.

Хотя в 89 стандарте и вывод типов был, хз насколько они там компилятору нужны.
Аноним 09/05/16 Пнд 12:11:03  738148
>>738140
А если апи модулей документируется?
Аноним 09/05/16 Пнд 12:12:20  738149
>>738147
>Они там для всего и сразу

Да нихуя, с неявным кастингом и слабой типизацией оно программисту нихуя не помогает.
Аноним 09/05/16 Пнд 12:17:13  738151
>>738148
А если переехать из маня-мирка?
Ну и собственно в чем выигрыш в скорости написания кода, если тебе надо написать кучу дополнительных тестов и еще обширные комментарии ибо из контекста функций никакой информации очевидной не следует?
Аноним 09/05/16 Пнд 12:18:38  738152
>>738145
Нет. Ты назови хоть один паттерн, который исправляет говнище в типах.

Я конешно понимаю что ты ничего кроме явы и питона не видел, но во всех современных языках конструкции вида
var arr = [1,2,3];
arr.add([1,4,8,8]) // с 9 мая
выводятся компилятором без проблем. Даже в плюсах (!!!) блять не нужно указывать тип для шаблонных функций.

Суть: ты либо пишешь указывая явно тип, либо узнаёшь его при отладке.
Аноним 09/05/16 Пнд 12:18:52  738153
Короче, я хозяин машины, я программист и мне лучше видно. Если я хочу умножить дилды на строки, потому что так надо, я не потерплю чтоб какой сраный тайчекер кукарекал что я не прав. Если я знаю, что в переменной а сейчас находится то, что умеет делать foo(), я не намерен доказывать ёбаной программе что это так. Мне нужно прилы пилить и денежки поднимать, а не корректность доказывать как аутист.
Аноним 09/05/16 Пнд 12:21:22  738154
>>738153
Короче, я хозяин машины и всего прочего. Я хочу поднимать денюжку, а не сидеть читать логи чтобы узнать, где же я обосрался умножив дилды на строки.
Аноним 09/05/16 Пнд 12:24:30  738155
>>738151
>А если переехать из маня-мирка?
То есть это у вас доку не пишут, а у меня манямирок? Ясно.

>написать кучу дополнительных тестов
Как будто ты не будешь писать тесты на своей статикопараше.
>еще обширные комментарии ибо из контекста функций никакой информации очевидной не следует?
Мне, как пользователю модуля, нужно знать только то, что делает 3 апи метода по 10 строк, а не все 3к строк внутреннего кода. В любом случае, комментарии не имеют отношения к типизации, это отдельная тема.

>>738152
Ну подумай зачем тогда тебе нужны генерики (в.т.ч. высших порядков) и абстрактные фабрики чтоли.
>вывод типов
Не везде возможен. В динамике он и не нужен изначально. Зачем же усложнять себе жизнь и увеличивать время компиляции?
Аноним 09/05/16 Пнд 12:25:29  738156
>>738154
Почему ты обсираешься, няша?
Аноним 09/05/16 Пнд 12:29:50  738159
>>738155
Где же невозможен? Ни разу такого ещё не встречал.
>В динамике он и не нужен изначально.
Потому что он выводится в рантайме, лел.
>увеличивать время компиляции?
Распространённое заблуждение от человека, не пробававшего писать парсеры языков. Только в совсем красивых закосах под динамику вроде свифта и скалы что-то замедляется.
Вообще, 2016 год, хороший проц с SSD стоит почти копейки, как и облачные сервера для билда. Хотя для очередного круда это нахуй не упало.

>>738156
Нельзя обосрать кого-то не посрав, нутыпонел.
Аноним 09/05/16 Пнд 12:33:40  738160
Короче, в очередной раз убедились, что штатикодауны так дрочат на типизацию, только потому что им надо, чтоб компайлер слюни подтирал, так как моцк окончательно поплыл. Ради этого они готовы писать тонны быдлокода, но им не привыкать. Пока рубигоспода, кложабояре и эликсирабоги пошустричку пилят изящный выразительный прозрачный код, статикодауны пердолятся фабричками в тырпрайзе разгребая своё тайпед говно. Но в тырпрайзе скорость разработки не очень то важна, оценить простейший тикет на фичу, которая на каком нибудь пифоне пилится за два часа, в 3 дня, это ок.
Аноним 09/05/16 Пнд 12:37:51  738162
>>738155
На самом деле, если компилятор не будет выводить типы, то он не сможет проверить, правильную ли хуёвину ты пихаешь вон в ту переменную. Расширить это на полноценный вывод типов - дело техники и совсем не нагружает. Хакс, вон, типы выводит, делает кучку оптимизаций, и всё равно конпелирует быстрее goвна, компилятор которого форсят как очень быстрый.
Аноним 09/05/16 Пнд 12:40:03  738166
>>738091
Кстати, если не любишь динамическую типизацию, то почему пишешь на пайтоне?
Аноним 09/05/16 Пнд 12:40:33  738167
Языки со статической типизацией и мощной системой типов (Haskell, Scala и пр.) > Языки с динамической типизацией > Остальные языки со статической типизацией
Аноним 09/05/16 Пнд 12:42:00  738168
>>738159
Ну так если
>2016 год, хороший проц с SSD стоит почти копейки
то чего плакать о какой-то там потерянной производительности из-за рантаймовых проверок
>Только в совсем красивых закосах под динамику вроде свифта и скалы что-то замедляется.
Наверное потому что только там вывод типов работает как в хацкиле более менее нормально. Но и в них он не всегда возможен, в скалке, например, нужно явно задавать что возвращает функция, если там рекурсия и вообще на рекурсивных типах. И ещё в некоторых других случаях.
Аноним 09/05/16 Пнд 12:42:13  738169
>>738167
Чота проиграл. У вас без монады файл не чтается, господин.
Аноним 09/05/16 Пнд 12:43:30  738171
>>738167
Ну вот это уже ближе к истине. Но хаскель и скала это пердолинг же, не?
Аноним 09/05/16 Пнд 12:46:10  738173
>>738168
Потому что компиляция – единичное действие. Рантаймовые проверки – то, что будет происходить на сервере/клиенте сотни тыщ раз.

Эээ, блять, вы уж определитесь. То он хочет чтобы компилятор за ним слюни не подтирал, то он хочет чтобы компилятор ему весь рот обезвожил.
Аноним 09/05/16 Пнд 12:47:36  738174
>>738171
Именно там уже и начинается пердоленг с типами, когда ты должен писать ИМЕННО ЭТОТ тип, без кастов и прочего.
Аноним 09/05/16 Пнд 12:53:20  738176
>>738169
А мне норм (в скале вполне себе читается).

>>738171
Тут этот пердолинг в отличие от всяких джав себя окупает. Ведь в джаве максимум на который способен компилятор, это проверить, что ты дилды на строки не умножил. А в хаскеле в 95% случаев, если типы сошлись и программа скомпилировалась, то она работает как нужно.
Аноним 09/05/16 Пнд 12:55:57  738179
>>738173
>То он хочет чтобы компилятор за ним слюни не подтирал, то он хочет чтобы компилятор ему весь рот обезвожил.
Где я такое писал? Нормальный вывод типов - это одна из тех вещей, которую нужно сделать, если ты выбираешь путь статики. Или всё превращается в говно и бойлерплейт. Если ты выбираешь динамику, всё это вообще НИНУЖНО. И это уже десятое дело что там в рантайме выводится/проверяется, код выглядит нормально и просто и читать/писать его быстро.

>Рантаймовые проверки – то, что будет происходить на сервере/клиенте сотни тыщ раз.
И каждый раз по 0.001 мкс. Вряд ли кто заметит, если это не хард риалтайм конечно. Но это уже другой разговор.
Аноним 09/05/16 Пнд 13:00:34  738183
>>738179
>говно и бойлерплейт.
Эээх, я понел чому утебя любая статика = говно. Лан, удачи тебе.
>И каждый раз по 0.001 мкс
Интересно почему же никакой хайлоад не пишут на динамике (а ведь в вебе риалтайма никакого нету), даже с эрланга все съебали.
Аноним 09/05/16 Пнд 13:01:29  738185
>>738183
Манямирок, ясно.
Аноним 09/05/16 Пнд 13:06:54  738189
>>738183
Там где эрланг юзается, на производительность на одной машине как-то вообще похуй.

И кто все? Демонваре, варгейминг, яху, амазон, вотсап, моторолла, жидхаб, башо, все по прежнему используют.
Аноним 09/05/16 Пнд 13:15:44  738193
>>738183
> никакой хайлоад не пишут на динамике
Пишут и много.
Аноним 09/05/16 Пнд 13:43:24  738210
2012:
ХОЧИШЬ ЗАТРАЛИРОВАТЬ ДИНАМИЧЕСКИХ ПИТУШКОВ
@
ПИТУШКИ ПОД ШКАНАРЁМ У НИХ БАГИТ


2016:
ХОЧИШЬ ЗАТРАЛИРОВАТЬ ДИНАМИЧЕСКИХ ПИТУШКОВ
@
ТИПЯ КОРМЯТ ГАВНОМ ТЫ СЛИВАИШЬСЯ ИЗ СОБСТВИНАГА ТРЕДА
Аноним 09/05/16 Пнд 13:46:51  738213
>>738210
воу воу, я никого не траллел, но и не сливался никуда

OP
Аноним 09/05/16 Пнд 13:52:25  738215
>>738166
Потому что на работке протащить Mypy я могу, а сказать "переписываем проект на Kotlin нахуй" не могу.
Аноним 09/05/16 Пнд 13:54:19  738216
Динамическая типизация это частный случай статической, когда используется один тип. Например, на шарпе можно пользоваться исключительно object. Это все, что нужно знать для завершения дискуссии.
Аноним 09/05/16 Пнд 13:54:54  738217
>>738216
Приехали.
Аноним 09/05/16 Пнд 14:02:08  738225
>>738216
OCHE TOLSTO

Попробуйте потоньше через некоторое время.
Аноним 09/05/16 Пнд 14:05:21  738227
>>738217
>>738225
А что он не так сказал? Ну, разве что не object а class Object { public object o; }. Ну, и тип надо таскать с собой, то есть ещё будет public MY_CUSTOM_TYPE type;. В динамике это просто за тебя делается.
Аноним 09/05/16 Пнд 14:12:49  738235
>>738210
Дааа зекач не тот уже. Сплошной нюфак тред из залётных нюфань и тупых ремесленников с хабраподмывальни, и как вишнка на торте - самый популярный тред для отбитых дегенератов и школьников.

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

Мда, нет на вас Стасика с Братюней.
Аноним 09/05/16 Пнд 14:17:15  738239
>>738227
Все не так сказал.
Во первых, динамическая типизация в шарпе - тип dynamic.
Во вторых, шарп обоссыт тебя, и за дело, при операциях над object.

static object Foo(object a, object b)
{
return a + b;
^Оператор "+" невозможно применить к операнду типа "object" и "object".
}
Аноним 09/05/16 Пнд 14:25:01  738243
>>738239
А кто тебе сказал, что + будет работать? Ты это должен делать ручками, как-то так^
static Object add(Object first, Object second) {
if (first.type == MY_TYPE_INT && first.type == second.type) {
var result = new Object();
result.type = first.type;
result.o = (int)first.o + (int)second.o;
return result;
} else throw new ArgumentException("shit happened"); // TODO: code for floats and shit
}
Понимаешь теперь, почему динамикоговнецо тормозит?
Аноним 09/05/16 Пнд 14:39:04  738255
>>738243
Пошел ты нахуй со своими костылями, вот что я хотел сказать.

static dynamic Foo(dynamic a, dynamic b)
{
return a + b;
}
Все норм.
Хочешь динамики - используй dynamic, блять.
Аноним 09/05/16 Пнд 14:55:46  738267
>>738255
>Например, на шарпе
1. И как ты будешь dynamic использовать в языках, где его нет?
2. И что он не так сказал?
Аноним 09/05/16 Пнд 15:02:56  738270
>>738267
>1. И как ты будешь dynamic использовать в языках, где его нет?
Накостылять его всегда можно (как std::any или boost::variant в плюсах).
>2. И что он не так сказал?
Ему видимо припекло от того, что та реализация в рантайме не даёт оверхеда (лол).
Аноним 09/05/16 Пнд 15:05:08  738271
>>738267
> Например, на шарпе можно пользоваться исключительно object.
Речь изначально про шарп была.
Аноним 09/05/16 Пнд 15:14:38  738275
>>738239
А тебе никто и не обещал, что плюс будет работать. Речь о динамической типизации, а не о реализации операторов и прочем сахарке. Как уже сказали, на крестах можно и операторы заделать как в питоне.
Аноним 09/05/16 Пнд 15:16:26  738281
>>738255
>Хочешь динамики - используй dynamic
Костыли-костылики. Легче уж воспользоваться нормальным высокоуровневым языком с динамической типизацией.
Аноним 09/05/16 Пнд 15:16:38  738282
14627961983060.png (38Кб, 691x672)
Посоны я вам еще "достоинств" статической типизации принес.
https://spin.atomicobject.com/2016/04/26/swift-long-compile-time/
Проблема была в выходе типов и была пофикшена всего-то за пол-годика. Вот только где еще могут поджидать такие сюрпризы.
Аноним 09/05/16 Пнд 15:16:49  738283
>>738275
> А тебе никто и не обещал, что %thing_name% будет работать. Речь о динамической типизации, а не о реализации %thing_name% и прочем сахарке.
Аноним 09/05/16 Пнд 15:19:17  738285
>>738282
А на твоей динамикопараше даже гуйня на айфончиках лагала бы, это из достоинств динамикодристни.
Аноним 09/05/16 Пнд 15:20:12  738286
>>738282
И фиксится это меньше чем в 20 символов, если чо.
Аноним 09/05/16 Пнд 15:21:40  738288
>>738283
И че? Че ты сейчас сказал? Может тебе еще и группировку инструкций по отступам зделоть на статических типах? Или if __name__ == "__main__" вместо static int Main(string[] args)?
Типиация не имеет никакого отношения к этой мишуре. Учись думать в более абстрактных понятиях, чем хеллоуворды.
Аноним 09/05/16 Пнд 15:24:14  738290
>>738285
Вон в Forth вообще типов нет, а работает быстро как Сишка.
Аноним 09/05/16 Пнд 15:25:51  738292
>>738270
1. А в языках, в которых нельзя накостылять? А чем твоё костыляние отличается от моего Object?
2. Нихуя не понял. Что не даёт оверхеда?
>>738271
>Например, на шарпе
>Например
>Например
>Например
>Например
>Например
>Например, блядь
Аноним 09/05/16 Пнд 15:26:55  738297
>>738290
В ассемблере их тоже нет, но в твоей динамикопараше они просто завуалированы, ибо это не очередной древний ассемблер как этот форт.
Аноним 09/05/16 Пнд 15:29:17  738303
>>738292
>А в языках, в которых нельзя накостылять?
А ты много таких знаешь? Я вот ни одного.
>Нихуя не понял. Что не даёт оверхеда?
Тебе о проффесии грузчика стоит задуматься, если ты даже прочитать не в состоянии.
Аноним 09/05/16 Пнд 15:30:09  738305
>>738288
> операторы мишура
А теперь небольшой тест.
> string + int = ?
> int + MyClass = ?
> Class1 + Class2 = ?
> dynamic + dynamic = ?
В динамикодрисне есть == и === и ты мне тут кудахчешь что операторы это мишура.
Аноним 09/05/16 Пнд 15:31:46  738309
>>738286
>И фиксится это меньше чем в 20 символов, если чо.
Пока динамический петушок наговнякал уже десяток прототипов, статиколорды ждут полгода заветных 20 символов чтобы не ждать благословение компилятора несколько часов после каждого крошечного изменения.
Аноним 09/05/16 Пнд 15:33:39  738314
>>738309
> статиколорды ждут полгода заветных 20 символов
Полгода был фикс на вывод типов. Всей этой лажи можно избежать указав тип явно (те самые 20 символов).
Аноним 09/05/16 Пнд 15:35:02  738317
>>738309
>чтобы не ждать благословение компилятора несколько часов после каждого крошечного изменения.
Сразу видно динамиколорда, пишушего тесты быстрее чем код.
Аноним 09/05/16 Пнд 15:35:49  738319
>>738303
>А ты много таких знаешь?
В мире тысячи языков. Можно будет найти игрушку, в которой этого не сделать. И не надо говорить про не используй, потому что никто на статическом языке не будет реализовывать динамикопарашу с нуля энивей. Второй вопрос всё ещё в силе.
>Тебе о проффесии грузчика стоит
Мой вопрос из 2) в >>738267 в точности повторял мой вопрос >>738227. "Он" там относилось к >>738216. Как видишь, "ему" в посте >>738216 не "припекло", и ничего про реализацию в рантайме или оверхед там сказано не было. Так, может быть, в грузчики всё-таки тебе?
Аноним 09/05/16 Пнд 15:38:46  738324
>>738319
>Можно будет найти игрушку, в которой этого не сделать.
>Так, может быть, в грузчики всё-таки тебе?
Мдэ, с кем я блять один сосач делю. Ну ты всё же обдумай предложение, грузчики ныне поперспективнее.
Аноним 09/05/16 Пнд 15:40:34  738325
>>738297
>завуалированы
Вот и правильно, зачем языку вываливать все эти ненужные кишки в код, ещё и заставлять пердолиться с ними?
Аноним 09/05/16 Пнд 15:40:58  738326
Как написал один питушок в треде где срали на ЖС, неумение увидеть сарказм - диагноз.
Аноним 09/05/16 Пнд 15:41:26  738327
>>738285
ObjC - динамикодрисня, кстати. Если ты не знал.
Аноним 09/05/16 Пнд 15:41:57  738328
>>738324
Давай-ка конкретнее, а то я тоже могу написать "ясно" и "слив защитан". И это будет даже более аргументированно, чем у тебя, ибо ни на один вопрос ты не ответил.
Аноним 09/05/16 Пнд 15:42:06  738329
>>738314
>указав тип явно
То есть всё таки не работает ваша эта протиопердолная параша?
Аноним 09/05/16 Пнд 15:42:41  738330
>>738325
Чтобы писать код, а не тесты на каждое сложение, проверитяя как строку или инт он твой "ахуенный" инструмент там сложил.
Аноним 09/05/16 Пнд 15:42:57  738331
>>738328
Я тебе уже написал >>738326
Аноним 09/05/16 Пнд 15:43:05  738332
>>738317
Будто статикодауны не пишут тесты, лол.
Аноним 09/05/16 Пнд 15:43:59  738333
>>738327
Там только методы в рантайме вычисляются, не сравнивай хуй с пальцем.
Свифт точно такой же.
Аноним 09/05/16 Пнд 15:44:11  738334
>>738330
Зачем проверять то, что заведомо известно что работает? Я же не статикодаун доказывать тайпчекеру очевидные вещи.
Аноним 09/05/16 Пнд 15:44:37  738335
>>738332
На логику - да, на каждый выпук как динамикодебилы - нет.
Аноним 09/05/16 Пнд 15:45:19  738337
>>738335
Манямирок, ясно.
Аноним 09/05/16 Пнд 15:45:28  738338
>>738330
Лисп вон динамическитипизированный, но подобные ошибки отлавливает ещё на стадии компиляции. ЧЯДНТ?
Аноним 09/05/16 Пнд 15:46:25  738340
>>738333
Пфф... ну в питоне тоже "только методы в рантайме вычисляются"
Аноним 09/05/16 Пнд 15:46:34  738341
>>738334
У тебя табуляция, ой, четыре пробела слетели.
Аноним 09/05/16 Пнд 15:46:37  738342
>>738305
Ну как напишешь, так и будет. В жс написали так, в питоне этак, в твоем языке будет string + int = bool. Это неважно, понимаешь? Важно что статическая типизация это дополнительная возможность, которой в динамических языках нет. Поэтому они отсталые. А нахерачить операторов везде можно.
Аноним 09/05/16 Пнд 15:48:03  738344
>>738340
Ты ебанутый немножко походу. В обж-с вычисляются только адреса методов, в динамике - вообще все типы, а большинство динамикопараши и интерпритируется там же.
Аноним 09/05/16 Пнд 15:48:52  738345
>>738341
Любое IDE/блокнотик с обвесом это проверяет. Более того, при первом же запуске этот код вылетит, как и с обычным асертом.
Аноним 09/05/16 Пнд 15:49:26  738346
>>738344
>В обж-с вычисляются только адреса методов
Ты почитай, как там объектная система реализована. Всё в рантайме происходит, он не более статически типизирован, чем смолтолк.
>интерпритируется
Как там в 80х?
Аноним 09/05/16 Пнд 15:49:40  738347
>>738344
Вычисляются они только по мере использования.
Аноним 09/05/16 Пнд 15:49:54  738348
>>738331
И где тут, блядь, сарказм?
>Ему видимо припекло от того, что та реализация в рантайме не даёт оверхеда (лол).
Вот это? Ты знаешь вообще, что такое сарказм, или просто слово нравится? Это предложение не имеет смысла, пока ты не задефайнишь "ему" и "та реализация". А на первое претендуют минимум два человека, на второе, по-моему (лень крутить вверх), четыре реализации. Это, блядь, даже простой шуткой быть не может, потому что у даже шутки должна быть какая-то смысловая нагрузка.
Я уж промолчу о том, что ты требуешь детектить сарказм через текст, когда ни интонаций нихуя не передаётся.
Аноним 09/05/16 Пнд 15:51:53  738349
>>738346
>Ты почитай, как там объектная система реализована. Всё в рантайме происходит, он не более статически типизирован, чем смолтолк.
На уровне с Си, всё нормально.
>Как там в 80х?
Как тебе в 2016, когда из динамических компилируемых языков есть 1,5 лиспонедобитков?
Аноним 09/05/16 Пнд 15:53:00  738350
>>738348
Боже, как же дебила порвало. Ахуеть.
Аноним 09/05/16 Пнд 15:55:34  738351
>>738348
Приоткрою тебе завесу тайны: костыли через object не дали бы оверхеда в рантайме, в отличии фигни с dynamic. Это была слишком тонкая и смишная для тебя шютка о пукане динамикопитушка.
Тебе легче?
Аноним 09/05/16 Пнд 15:58:51  738355
>>738349
>На уровне с Си
Нет, не на уровне. Объектная система там отдельным слоем, и фактически в статике она не типизирована.
>когда из динамических компилируемых языков есть 1,5 лиспонедобитков
Назови хоть один интерпретируемый.
>>738344
Алсо, в питухоне типы так же, как и в обжси, не "вычисляются" (что ты под этим вообще подразумеваешь?). Утиная типизация же.
Аноним 09/05/16 Пнд 15:59:34  738356
>>738350
>порвало
Блядь. Ну сколько раз я тебе говорил, чтобы ты сразу это писал, и я на тебя времени не тратил.
>>738351
А проверка типов через кучу ifов - это не оверхед? А вызов функции, да ещё и с выделением памяти вместо примитивной операции - это не оверхэд. Господи, вот уж действительно "с кем я блять один сосач делю". Вы устроили всю эту хуйню, вместо того, чтобы сразу сказать "я дебил, не отвечай мне" - легче ли мне теперь, как думаешь?
Аноним 09/05/16 Пнд 16:01:48  738360
Короче, статикодауны вместо того, чтобы взять простой прозрачный инструмент и решить задачу уже сегодня, делают 2 вещи:
либо пишут горы уёбищного бойлерплейта и маразма из GoF
либо прибегают к сильным колдунствам типа метапрограммирования, вывода типов, типов высших порядков и прочей срани, которая на примере скалы замедляет время компиляции, ещё и умудрятся тормозить в рантайме
Что характерно ни первое, ни второе не отменяет написания тестов/обширной документации.
Аноним 09/05/16 Пнд 16:03:14  738361
>>738360
В ocaml типы никто явно не указывает, компилируется быстро, код на выходе достаточно эффективный.
Аноним 09/05/16 Пнд 16:04:17  738363
>>738361
Типадроч заменена на модуледрочь.
Аноним 09/05/16 Пнд 16:05:03  738364
>>738363
Лол что? Как по-твоему одно заменяет другое?
Аноним 09/05/16 Пнд 16:05:11  738365
>>738355
>Назови хоть один интерпретируемый.
От питона до жса. Да, можно запустить в жит компиляторе, кококо, только это полумеры поддерживаемые 1.5 челиками из сообщества.
>что ты под этим вообще подразумеваешь?
Получение адреса конкретной реализации ф-ии.
>>738356
>А проверка типов через кучу ifов - это не оверхед?
А dynamic по твоему по другому работает? Разница в том, что там дефакто этих проверок будет куда больше.
Аноним 09/05/16 Пнд 16:05:55  738366
>>738360
>ещё и умудрятся тормозить в рантайме
Пруфани-ка.
Аноним 09/05/16 Пнд 16:06:48  738368
>>738365
>От питона до жса.
Они не интерпретируемые.
>только это полумеры поддерживаемые 1.5 челиками из сообщества
Щиииито?
>>738365
>Получение адреса конкретной реализации ф-ии.
Тогда ты сам себе противоречишь.
Аноним 09/05/16 Пнд 16:06:52  738369
>>738366
А, как пример взяли скалу, я понел. Кусок говна вместо компилятора который не умеет разворачивать абстракции - отличный пример.
Аноним 09/05/16 Пнд 16:08:30  738371
>>738369
Свифтовый компилер такое же говёный.
Аноним 09/05/16 Пнд 16:08:39  738372
>>738368
>Они не интерпретируемые.
Чота интересно стало. Давай-ка поподробнее.
Аноним 09/05/16 Пнд 16:09:53  738374
>>738364
В окамле своё понимание модульного программирования. Типы высших порядков заменены на модули высших порядков.
Аноним 09/05/16 Пнд 16:10:12  738376
>>738371
Ему полторы года от роду, судя по гениальным багам вроде зависаний на выводе типов - там не много специалистов в этой области работает. Компилятору скалы - десяток, и даже Одерски обосрался и переписывает его с нуля.
Аноним 09/05/16 Пнд 16:12:37  738380
>>738372
Они в машинный код компилируются. Про v8 не слышал или просто не знаешь, что значит "интерпретируемый"?
Аноним 09/05/16 Пнд 16:15:16  738384
>>738380
Ого, один язык из списка вычеркнул, нихуя себе. Ладно, про жс спорить не буду хотя судя по бенчмаркам ему и компиляция не помогла, про остальные скриптовые языки покровы сорвёшь?
Аноним 09/05/16 Пнд 16:18:35  738388
>>738374
Там просто ад-хоц полиморфизма нет (ну, если не считать объектной системы), поэтому активно используются модули.
>В окамле своё понимание модульного программирования.
Своё? Чем же оно отличается от общепринятого? Конечно, мало где есть модули как первокласные объекты, но принципа это не меняет.
Аноним 09/05/16 Пнд 16:18:37  738389
>>738380
А пистон конпелируется в байткод. Так что интерпретируемые - это только те, которые интерпретируют по дереву/сорцу.
Теперь давайте скажем, что х86 опкоды (да, любые, на самом деле, просто тут ещё один слой) интерпретируются железом, поэтому все языки интерпретируемые, и в этом треде станет совсем хорошо.
Аноним 09/05/16 Пнд 16:19:47  738390
>>738384
Не пойму, ты шлангом прикидываешься или правда не знаешь, что интерпретируемых языков уже практически нет?
Аноним 09/05/16 Пнд 16:21:23  738394
>>738389
Байткод не интерпретируется, а транслируется в машинный код.
Аноним 09/05/16 Пнд 16:24:14  738397
>>738384
>хотя судя по бенчмаркам ему и компиляция не помогла
Ага, то-то уже вовсю игори в браузере гоняют.
Аноним 09/05/16 Пнд 16:24:47  738398
Why not?
>>738394
Ну а машинный код интрепретируется железом. А в случае х86 семейства - дважды. Кресты - дважды интерпретируемый язык!
Аноним 09/05/16 Пнд 16:25:48  738399
>>738361
Работает на одном ядре, однотредовый мусоросборщик. Да и вообще идиоматичный код на Окамл сосёт не разгибаясь, чтоб получить приемлемую производительности нужно писать фортраноподобную говнолапшу. Вообще Окамл очень плох, тайпклассов нет, всё через модули - лютый пердолинг. Если уж выбираешь МОЩНЫЕ СИСТЕМЫ ТИПОВ, то бери уже цацкиль, и не еби мозги.
Аноним 09/05/16 Пнд 16:25:50  738400
>>738390
Я постоянно работаю с раби/питон/луа/баш, кек скриптам, точнее сказать любое окружение разработчика просто кишит ими, и все поставляются в виде исходников. Но я наверно тупой, и между трансляцией в байткод, с последующей трансляцией в маш. код и интерпритацией слишком много разницы.
Аноним 09/05/16 Пнд 16:28:06  738403
>>738397
Такие игори и на питоне не лагали бы.

Стандартный джентельменский набор поссыкулек на v8:
http://benchmarksgame.alioth.debian.org/u64q/javascript.html
https://www.techempower.com/benchmarks/

>>738399
>чтоб получить приемлемую производительности нужно писать фортраноподобную говнолапшу.
Как и везде.
Аноним 09/05/16 Пнд 16:42:14  738417
>>738399
>Работает на одном ядре, однотредовый мусоросборщик.
lwt, fork
>Да и вообще идиоматичный код на Окамл сосёт не разгибаясь
Ну, нет. Сам окамл такой, что идиоматичный код на нем выглядит как помесь хаскеля и фортаноподобной параши.
>Вообще Окамл очень плох
Если присмотреться получше, то оказывается вполне ничего. Просто не надо смотреть на него как хаскель, это совсем другой язык.
>тайпклассов нет
Как показывает практика, тайпклассы в окамле не нужны. В случае действительной необходимости используется ООП, которое таки неплохо встроено в систему типов.
>Если уж выбираешь МОЩНЫЕ СИСТЕМЫ ТИПОВ, то бери уже цацкиль, и не еби мозги.
Хаскель непрактичен. Слишком много типо-, монадо- и прочего алгербродрочерства сомнительной полезности.
>лютый пердолинг
Лол, человек, который советует хаскель, рассказывает про лютый пердолинг.
Аноним 09/05/16 Пнд 16:44:02  738419
>>738403
UT? Да на питоне? И чтоб не лагал?
Аноним 09/05/16 Пнд 16:47:09  738420
>>738419
На каком нибудь жит компиляторе питона сделать не проблема, правда нахуя? (то же относится и к жс-версии).
Аноним 09/05/16 Пнд 16:51:59  738425
>>738420
>не проблема
Ты в этом уверен? Насколько мне известно, питуханы так и не сумели запилить нормальный компилятор. Пока самые нормальные у жс, луа, лиспа
Аноним 09/05/16 Пнд 16:53:51  738426
>>738425
Ну, есть cython и pypy. На них, правда, хорошо, если половина питоньего кода работает, но ЗДЕЛАТЬ-то МОЖНА. А cython - это практически сишка с нескучным синтаксисом, поэтому там и работать должно хорошо.
Аноним 09/05/16 Пнд 16:56:12  738428
>>738425
А насколько мне известно, в то время когда эта игра вышла (если я правильно понял и ты о Unreal Tournament), то не было ни шейдеров, ни видеокарт (у массовых потребителей конечно), всё считалось на CPU (!!! блядь). Ещё есть что сказать?
Аноним 09/05/16 Пнд 16:59:21  738430
>>738428
О каком именно ты анрилтоурнаменте? Потому что тот, о котором я говорю, в 2008-9 неслабо так притормаживал на моем железе (P4 630 или 640 и asus x1600)
Аноним 09/05/16 Пнд 17:02:17  738435
>>738430
Ну скинь его, я нихуя не нашёл.
Аноним 09/05/16 Пнд 17:16:31  738439
>>738104
>>738090
>>737997
Ммм, как же я обожаю слушать тыльный треск динамических даунов. А особенно - ВОЗРАЖЕНИЯ, которые в качестве примера динамической дрисни приводят РАБОЧИЙ И СОВСЕМ НЕ ДЛИННЫЙ код, на отладку которого были потрачены десятки макакочасов, а в качестве примера статики - хэллоуворлды-оксюмороны, написанные за двадцать лет до внедрения вывода типов во все приличные языки. auto duck = new {}? НЕЕЕЕТ, ВЫ ВСЕ ВРЕЕЕЕЕОООООТИ, КРЕСТЫ СОСУТ, МАМ СКАЖИ ИМ(((((((((
Аноним 09/05/16 Пнд 17:31:58  738453
14628043181440.png (85Кб, 795x1135)
14628043181451.jpg (64Кб, 624x351)
>>738439
>КРЕСТЫ СОСУТ
пришло время напомнить
Аноним 09/05/16 Пнд 17:38:09  738455
>>738453
Стандартный быстрый код.
Аноним 09/05/16 Пнд 17:44:32  738458
>>738455
___что ты_ ____несешь еб___нуты_й?
Аноним 09/05/16 Пнд 17:46:55  738463
>>738458
А чо так многа приватных методов? Ща погодь код интерпритируется.
Аноним 09/05/16 Пнд 17:49:20  738467
>>737921 (OP)
Профит в том, что есть обезьяны, которым сложно осознать такое понятие, как тип данных.
Аноним 09/05/16 Пнд 17:59:19  738472
>>738467
Почему програмистишки такие высокомерные мрази? Нихуя же ведь вообще не знает чудик а лезет со своим охуительное весомым мнением.
Аноним 09/05/16 Пнд 18:05:32  738479
>>738472
Начинающие, лет через 5-10 это проходит.
Аноним 09/05/16 Пнд 18:30:39  738498
В треде пробздетый дизайнер языков программирования, задавайте свои ответы.
Аноним 09/05/16 Пнд 18:34:11  738502
>>738498
Как определить идеальность синтаксиса?
У какого языка синтаксис самый идеальный?
Аноним 09/05/16 Пнд 18:43:40  738512
>>738502
У лиспа
Аноним 09/05/16 Пнд 18:56:59  738527
>>738512
)))))))
Аноним 09/05/16 Пнд 19:09:57  738537
>>738365
> А dynamic по твоему по другому работает? Разница в том, что там дефакто этих проверок будет куда больше.
У тебя за щекой проверок дефакто будет больше. dynamic ведет себя также как и object, с той лишь разницей что компилятор не будет ебать мозг.

static dynamic AddD(dynamic a, dynamic b)
{
if(a is int && b is int)
return a + b;
throw new NotSupportedException();
}

static object AddO(object a, object b)
{
if (a is int && b is int)
return (int)a + (int)b;
throw new NotSupportedException();
}
Аноним 09/05/16 Пнд 19:28:15  738552
14628112959400.jpg (5Кб, 236x228)
>>738537
>dynamic ведет себя также как и object
ПРООРАЛ НА ВСЮ КОМНАТУ С ДОЛБАЕБА
Аноним 09/05/16 Пнд 19:38:39  738559
>>738552
Поясни, в чем он неправ.
Аноним 09/05/16 Пнд 19:46:22  738562
>>738552
https://msdn.microsoft.com/ru-ru/library/dd264741.aspx
> Как часть процесса, переменные типа dynamic компилируются в переменные типа object.Поэтому тип dynamic существует только во время компиляции, но не во время выполнения.
И тут ты идешь на парашу.
Аноним 09/05/16 Пнд 19:51:03  738567
>>738552
По сути все правильно написал, вы бы, блядь, хоть clr via c# для приличия почитали.
Аноним 09/05/16 Пнд 20:19:46  738577
>>737921 (OP)
>кроме того, что вместо нескольких одинаковых функций под разные типы аргументов, пишешь одну и передаешь в нее все, что хочешь? Это здорово конечно, но в реальной жизни это же нахуй не нужно.
ты сейчас огребёшь и от статикоёбов с их шаблонами и утиной типизацией
Аноним 09/05/16 Пнд 20:23:02  738579
>>738577
>утиная типизация
>2016
Аноним 09/05/16 Пнд 20:39:07  738587
>>738502
>Как определить идеальность синтаксиса?
Syntax_coolness = expressivity / readability, где 0 <= readability <= 1, 0 - не читается, 1 - читается идеально.
>У какого языка синтаксис самый идеальный?
Такого, чтобы самый? Гвидон/Говно классные, например.
Аноним 09/05/16 Пнд 20:48:55  738593
>>738587
Разве критерий читаемости не выводится из понимания читателем концепции и архитектуры языка?
Например, человеку который умеет только go, будет невыносимо понять js, и наоборот.
Но тому, кто хорошо знает оба языка, будет вполне понятны и читаемы оба.
Аноним 09/05/16 Пнд 20:52:51  738595
>>738593
Ну вот по тебе сразу видно, что у тебя совершенно нет опыта коммерческой разработке. Есть языки совершенно невыразительные, но очень хорошо читаемые на codebase scale (вроде Go). Есть очень выразительные, но нечитабельные (вроде хаскелля, хехе). Есть те, которые посредине — как питон, например. Но прикол в том, что у них у всех есть трейдоффы. Синтаксис — это только третья часть охуенности языка, еще ооочень сильно решает парадигматика, инструментарий и комьюнити.
Аноним 09/05/16 Пнд 20:53:25  738597
>>738579
Утиная типизация, как это реализовано в Go - это лучшее, что может быть, ящитаю.
Аноним 09/05/16 Пнд 21:05:41  738605
>>738595
>буква я последняя в русском алфавите
>ну вот по тебе сразу видно, что ты не понимаешь ничего об алфавитах. есть алфавиты, в которых вообще нет буквы я, а так же есть те, в которых количество букв больше чем нужно, а в некоторых очень мало. помимо количества букв и их порядка, еще важны такие вещи как....

Я тебе написал про критерий - читаемость.
Критерий читаемость - это субъективность.
Это как с иероглифами и буквами.
Выразительность о том же.

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

>нечитабельные вроде хаскелля
Хаскелистам удобно. А тебе может быть не очень. Это субъективное, понимаешь?

Аноним 09/05/16 Пнд 21:06:54  738606
>>738597
Так там её нету, она только в яве осталась, лол.
Аноним 09/05/16 Пнд 21:08:09  738610
>>738498
> В треде пробздетый дизайнер языков программирования, задавайте свои ответы.

Почему все языки такое говно? Почему только гуглоидам пришло в голову сделать нормальную поддержку легких потоков (но в языке, где весь остальной дизайн ужасен)?
Вообще, почему в каждом языке есть какой-то набор фич, но он не перекрывает все, что нужно каждый день? Это же все на поверхности, нет блять надо сделать какое-то очередное субоптимальное решение и добавить туда какую-нибудь хуиту?
Аноним 09/05/16 Пнд 21:11:00  738611
>>738472
>Почему програмистишки такие высокомерные мрази? Нихуя же ведь вообще не знает чудик а лезет со своим охуительное весомым мнением.

Потому что только никчемная мразь может программировать на на языке с динамической типизацией вроде JS или PHP (там типы есть но почти никто их не указывает).
Аноним 09/05/16 Пнд 21:14:29  738614
>>738611
Аргументация уровня б.
Аноним 09/05/16 Пнд 21:31:00  738628
>>738610
>почему только гуглоидам пришло в голову сделать нормальную поддержку легких потоков
>только гуглоидам
Мальчик, да ты совсем не в теме. А ничего, что go - развитие limbo или скорее просто переупаковка в другой фантик, который к гуглу никакого отношение не имеет. Это уж не говоря об эрлангах, хаскелях, схемах и прочих.
Аноним 09/05/16 Пнд 23:19:27  738713
>>738169
>без монады файл не чтается
unsafePerformIO to the rescue!
Аноним 09/05/16 Пнд 23:29:16  738726
>>738176
>А в хаскеле в 95% случаев, если типы сошлись и программа скомпилировалась, то она работает как нужно.
А потом мамка зовет тебя жрать борщ.
Аноним 09/05/16 Пнд 23:49:09  738746
>>738176
>то она работает как нужно
Только адово тормозит из-за ленивости, и нужно в нее пару дней тыкать для оптимизации.
Аноним 09/05/16 Пнд 23:51:25  738749
>>738179
>если это не хард риалтайм конечно
Для хард риалтайм самое главное, не точ, что 0,001 мало, а то, что оно будет каждый раз независимо ни от чего - ни от кэша, ни от TLB, ни от DRAM. Поэтому там лучше момедленне, но гарантированно.
Аноним 10/05/16 Втр 00:13:09  738769
>>738746
>тормозит из-за ленивости
Чтож такое просто блядь тред охуительных историй, то dynamic у них работает без оверхеда, то это, просто охуеть
>>738749
Формально это так, но довольно странно если бы риалтайм система над каждым пуком призадумывалась.
Аноним 10/05/16 Втр 00:31:38  738787
>>738176
Ну попизди мне тут, с пропущенным паттерном легче выстрелить себе в ногу, чем даже в сишке.
Аноним 10/05/16 Втр 00:34:26  738791
>>738628
>Мальчик, да ты совсем не в теме. А ничего, что go - развитие кококо или скорее просто переупаковка в другой фантик, который к гуглу никакого отношение не имеет. Это уж не говоря об кокококо, кокококо, кокококо и прочих.

Кто все эти люди? На все эти языки приходится проектов десять, которые кто-то знает, восемь из которых на Хаскель.
Я говорил о языках, имеющих хоть какой-то impact а не о эзотерической ебале вроде Хаскеля.
Аноним 10/05/16 Втр 00:40:25  738802
>>738791
Ну, на лимбо и правда мало проектов вот ведь чудеса маркетинга: был никому ненужный язык, а стал... гм, нет, таки не стал, а про остальные ты лукавишь. Тот же энларг ё бенис довольно часто применяется в продуктионе.
Аноним 10/05/16 Втр 00:41:46  738803
>>738176
>в хаскеле в 95% случаев, если типы сошлись и программа скомпилировалась, то она работает как нужно.

Абстрактные рассуждения сферического коня. Я это слышу лет десять про Хаскель.
Никакой нормальный человек не станет по пол часа втыкать в какую-нибудь pointfree-хуйню с десятью точками и пятнадцатьюзнаками $. Хаскелисты не могут читать чужой код без бумажки, если ты не знал, да и свой в половине случаев не могут, если написано более н месяцев назад. Пока ты будешь сражаться со своим компилятором, любая макака уже создаст рабочий продукт, возможно, он будет чуть менее корректным в плане типов, зато он будет работать. Хотя лично тебе это не грозит, т.к. ты просто скопировал первый аргумент из любого Haskel-срача, ничтожество.
Аноним 10/05/16 Втр 00:46:03  738805
>>738802
>вот ведь чудеса маркетинга: был никому ненужный язык, а стал... гм, нет, таки не стал,

Я хз что за Лимбо, но в Go рантайме многое было прооптимизировано уже много позже выхода даже 1 версии и сейчас этот процесс в самом разгаре. Go используют не из-за синтаксиса, удобства или крутого дизайна или чего-то еще, а исключительно из-за рантайма, оптимизированного на перформенс.

> Тот же энларг ё бенис довольно часто применяется в продуктионе.
Довольно часто для никому ненужного недо-ФП-высера. GO, которому в 6 раз меньше лет, применяется раз в 6(несколько нулей) чаще.
Аноним 10/05/16 Втр 00:46:14  738806
Если бы вы решили писать универсальную расширяемую среду (своего рода DE), в которой не было бы понятия программы, а весь функционал реализовывался через разделяемые модули\классы\объекты. И весь рантайм должен бы был быть доступен, примерно как девтулс в браузере, но по отношению ко всей системе сразу.
Какой бы язык вы бы выбрали за основу?
Аноним 10/05/16 Втр 00:49:16  738809
>>738803
>Я это слышу лет десять про Хаскель.
За это время мог бы уже и попробовать, но нет, надо продолжать защиту своего манямирка выдумывая очередное оправдание.
>Никакой нормальный человек не станет по пол часа втыкать в какую-нибудь pointfree-хуйню с десятью точками и пятнадцатьюзнаками $.
И писать тоже. Наговнокодить можно на любом языке.
>Пока ты будешь сражаться со своим компилятором, любая макака
будет сражаться со своим рантаймом. В первом случае хотя бы очевиден источник проблемы, а во втором ещё предстоит провести расследование
Аноним 10/05/16 Втр 00:52:39  738812
14628307595040.jpg (379Кб, 2560x1600)
>>738805
>многое было прооптимизировано
Кому мне отдать мои 9.99$?
Аноним 10/05/16 Втр 00:54:06  738814
>>738805
>GO, которому в 6 раз меньше лет, применяется раз в 6(несколько нулей) чаще.
А nodejs ещё чаще. О чем это говорит?
Аноним 10/05/16 Втр 00:58:31  738818
>>738806
Ты там смолтолк переизобретаешь что ли? Ты опоздал лет на 40
Аноним 10/05/16 Втр 01:02:36  738821
>>738809
> За это время мог бы уже и попробовать, но нет, надо продолжать защиту своего манямирка выдумывая очередное оправдание.

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

> И писать тоже. Наговнокодить можно на любом языке.
Такой код встречается (и часто) в каноничных тутах вроде learn you a haskell и в каждой первой хаскельной либе.

Аноним 10/05/16 Втр 01:04:22  738823
>>738818
activex спустя 15 лет взлетел же?
Все новое, это хорошо забытое старое, в новой упаковке.
Аноним 10/05/16 Втр 01:04:29  738824
>>738814
> А nodejs ещё чаще. О чем это говорит?

О том, что он подходит для разработки больше Эрланга, хотя он полнейшее говно.
Если ты про то, что Нода применяется чаще Го, то у нее историческая фора и много фронтенд-макак, думающих, что им будет проще притащить свой вонючий JS на сервер сайд, чем учить новый язык вроде Go. NodeJs - это полный отстой, даже хуже PHP.
Аноним 10/05/16 Втр 01:08:01  738825
>>738821
>Пробовал, не понравилось. Слишком большой челендж в самом освоении языка, чего в императивных не помню.
Не осилил, значит. Ну, коль мозги заржавели, уже ничем тебе не поможешь.
Студентота его более-менее осваивает за пол-семестра.
>Такой код встречается (и часто) в каноничных тутах вроде learn you a haskell и в каждой первой хаскельной либе.
Ну и что? Это не дает тебе писать нормальный код или использовать нормальные библиотеки?
Аноним 10/05/16 Втр 01:09:19  738826
>>738823
Что-что? Когда это активикс взлететь успел?
Аноним 10/05/16 Втр 01:14:47  738830
>>738826
node-webkit
Аноним 10/05/16 Втр 01:31:17  738838
>>738825
>Студентота его более-менее осваивает за пол-семестра.
А потом пишет диссертации о том, как сделать то, что на императивных языках давно написано, в виде какой-нибудь реактивной поеботы. Все довольны - гранты пилятся, борщ готовится, индустрии похуй.
Аноним 10/05/16 Втр 01:33:53  738840
>>738838
Ой темнота. Ну заржавели мозги - смирись. Но зачем чушь-то нести, если не смог разобраться?
Аноним 10/05/16 Втр 01:40:10  738845
>>738824
Вот то же самое и с го и эрлангом. Макаки думают, что новомодная сишка с потоками (да ещё и от гуголя! и с """""""множественными""""""" ОПТИМИЗАЦИЯМИ рантайма!) будет проще и лучше в освоении и использовании, чем странный язык со страшным ФП от какой-то неизвестной компании (фууу, дизлойс).
Аноним 10/05/16 Втр 01:42:55  738848
>>738824
На самом-то деле серверная сторона любое говно стерпит (и жаву, и жс, и го, и даже, прости господи, пхп), поэтому оценивать качество по частоте применения бессмысленно.
Аноним 10/05/16 Втр 02:22:19  738862
>>738840
Нормально у меня все с мозгами. У хаскеля сама концепция в корне не верна, отсюда и проблемы с продакшеном.
Аноним 10/05/16 Втр 02:28:55  738867
>>738862
В чем неверна? И что по-твоему верно?
>Нормально у меня все с мозгами.
Ты ж сам выше говорил, что не осилил.
Аноним 10/05/16 Втр 02:39:15  738873
>>738867
Это не я говорил. Спать охота, завтра расскажу, если дойду.
Аноним 10/05/16 Втр 02:43:56  738879
>>738873
Вот тебе немного пищи для размышления: http://elm-lang.org/examples/mario
Видишь, насколько прозрачным позволяет делать код реактивщина?
Аноним 10/05/16 Втр 03:18:43  738885
14628395234000.webm webm file (4450Кб, 1280x720, 00:00:25)
14628395234291.webm webm file (1553Кб, 1317x746, 00:00:12)
14628395234582.webm webm file (782Кб, 768x432, 00:00:24)
14628395234633.webm webm file (1639Кб, 1280x720, 00:00:05)
>>737958
>Динамическая типизация позволяет разбивать программу на полностью независимые модули. Каждый из которых может быть написан и откомпилирован полностью независимо от других.
Аноним 10/05/16 Втр 06:59:50  738916
Два слова: меньше писанины.
Аноним 10/05/16 Втр 07:51:43  738924
>>737921 (OP)
Да незачем, это хайп для даунов. Динамический кал сосёт просто во всём.
Аноним 10/05/16 Втр 07:54:53  738927
>>737958
> Динамическая типизация позволяет разбивать программу на полностью независимые модули. Каждый из которых может быть написан и откомпилирован полностью независимо от других.
Проиграл. При чём здесь динамичная типизация к модульности?

> Тогда как для реализации статического контроля при компиляции одного модуля тебе нужна определенная инфа от всех других модулей которые он использует (В С, например, это хедеры). И внесение даже минимальных изменений в один из модулей (поменял тип одной переменной с float на double) требует полной перекомпиляции всех зависимых модулей.
Хуйню несёшь даун. Про JVM слышал что-нибудь?

> Также динамическая типизация немного упрощает разработку - динамическая макака просто высирает код,
При этом поддерживать это говно становится невозможно.
Аноним 10/05/16 Втр 07:56:45  738928
>>737921 (OP)
> Для чего она вообще?
Чтобы быдлу было проще писать свои говноскрипты и сайты-визитки.
Любой уважающий себя программист не будет писать на яыке, не имеющем сторогой статической типизации, вывода типов и параметрического полиморфизма (хотя бы на уровне generic'ов).
Аноним 10/05/16 Втр 08:09:14  738934
>>738605
>Хаскелистам удобно
Да нихуя им не удобно, просто они имеют желание разбираться. Про апл тоже можно сказать, что программистам на нём удобно, а тем временем есть знаменитая фраза о том, как какой-то там профессор четыре часа разбирался, что делает функция из то ли пяти, то ли десяти символов.
>>738806
Кресты, а окружающее говно на скриптах. Что-нибудь быстрое, типа ангел/джава-скрипта или луижида (но у луи просто уёбищный синтаксис, поэтому о ней я бы дважды подумал)
Аноним 10/05/16 Втр 08:15:09  738937
>>738806
Scala ясен хуй
Аноним 10/05/16 Втр 08:43:49  738947
14628590295880.png (26Кб, 744x1340)
итт
Аноним 10/05/16 Втр 08:54:06  738953
>>738806
C++/Qt + Python
Аноним 10/05/16 Втр 09:57:04  738987
>>737956
>Ну как запись int i =0 вместо i=0 помогает лучше сконцентрироваться на алгоритме?
Объясняю на пальцах - тебе не надо знать границы интов, при превышении инт автоматом превратится в BigInteger ровно с теми же операциями, что и обычный int.
Аноним 10/05/16 Втр 10:21:02  739004
>>738806
Common Lisp
Аноним 10/05/16 Втр 10:33:55  739013
>>738825
>Студентота его более-менее осваивает за пол-семестра.
Осваивает? Плавали, знаем, максимум, что делает студентота - это задачки на перестановку элементов списка.

> Не осилил, значит. Ну, коль мозги заржавели, уже ничем тебе не поможешь.
Не хватило мотивации. Так и не нашел причин, которые бы заставили использовать какое-то замудреное говно там, где на нормальных языках и думать особо не надо. Излишняя сложность - не всегда синоним мощи или вообще чего-то хорошего, пора бы уже это понять.
Аноним 10/05/16 Втр 10:42:44  739022
>>738879
> http://elm-lang.org/examples/mario
>Видишь, насколько прозрачным позволяет делать код реактивщина?

Вижу, как из-за использования какой-то мутной поеботы, сравнительно простая страница весит 205кб и состоит из более чем 6к строк. Конечно, это в сгенеренном виде, но это просто пиздец, на мой скромный взгляд.
Аноним 10/05/16 Втр 10:43:42  739026
14628662224140.png (32Кб, 75x75)
>>737921 (OP)
Динамическая типизация иногда удобно. Особенно при обработке всякого входного говна, когда тебе надо '', false, 0, ' ' и прочее странное говно превратить в одно четкое значение.

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

Самая лучшая типизация сейчас в:

- PHP
- TypeScript

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

Полыхайте.
Аноним 10/05/16 Втр 10:55:06  739035
>>739026
Тайпхинты в пыхе это не типизация, маня, они работают как обычные ассерты и проверка идёт в рантайме. Это просто такой костыль чтоб сделать что-то типа сильной типизации.

Пхпдоки это вообще относится к документации, а не к коду, интерпретатору на них вообще похуй.
Аноним 10/05/16 Втр 10:56:21  739036
>>739035
> Тайпхинты в пыхе это не типизация, маня, они работают как обычные ассерты и проверка идёт в рантайме.

Мань, пхп это язык про рантайм.
Аноним 10/05/16 Втр 10:59:33  739038
>>739036
В пыхе нет типизации.
Аноним 10/05/16 Втр 11:07:59  739041
14628676794340.jpg (722Кб, 1200x902)
>>739036
> пхп это язык
Аноним 10/05/16 Втр 11:11:19  739043
>>739026
> Динамическая типизация иногда удобно. Особенно при обработке всякого входного говна, когда тебе надо '', false, 0, ' ' и прочее странное говно превратить в одно четкое значение.
И это программисты. Computer Science дала им ООП, наследуй, используй полиморфизм! Не хочу, хочу жрать скриптоговно.
Аноним 10/05/16 Втр 11:34:45  739053
>>739043
Пиши фабрики фабрик сука! Вот как, блядь, нужно писать, SimpleBeanFactoryAwareAspectInstanceFactory, быстро. Быстро. EntityManagerBeanDefinitionRegisterPostProc Раз-раз! Пиши, пиши, пи-и-и-ши-чиж-чж-чижь! Пиши! Говно! Пиши!
Аноним 10/05/16 Втр 11:39:30  739056
>>739053
Лучше изучать грамотный код, написанный с применением всех паттернов, с грамотной архитектурой и схемами на UML, чем помойку из скриптов. Последнее куда ближе к чистке нужника столовым прибором.
Аноним 10/05/16 Втр 11:41:51  739058
>>739056
Эти самооправдания Раджеша.
Аноним 10/05/16 Втр 11:44:55  739062
14628698950870.jpg (91Кб, 523x453)
>>739058
Проголодался наверное? Я тебе покушать принес.
Аноним 10/05/16 Втр 11:48:37  739064
>>739056
Но статическая ООП параша - инструмент тырпрайз рабов и переквалифицированных таксистов-вкатывальщиков в бодишопы. Динамически типизированная функциональщина с элементами метапрограммирования - инструмент прогрессивных программистов. Так то
Аноним 10/05/16 Втр 11:49:28  739065
>>739062
Ух какой ты щутниг. Бугагага, бугагага.
Аноним 10/05/16 Втр 11:50:32  739067
>>739064
> инструмент прогрессивных программистов
весь день пишут динамически типизируемый код, а на перерывах долбятся под хвост
Аноним 10/05/16 Втр 11:56:29  739074
>>739064
динамическая типизация != динамические языки
Аноним 10/05/16 Втр 12:02:25  739080
>>739064
Это похапешники штоле прогрессивные программисты?
Аноним 10/05/16 Втр 12:04:03  739083
>>739064
> Динамически типизированная функциональщина с элементами метапрограммирования
Лиспошкольник, так и скажи, что ты не осилил Хаскель.
Аноним 10/05/16 Втр 12:17:02  739106
>>737932
>Кстати, анон когда-нибудь встречал скрипты со статической типизацией?
golang
Аноним 10/05/16 Втр 12:26:40  739118
>>739106
Ну зачем ты так, Golang не скриптовый язык.
Аноним 10/05/16 Втр 12:46:37  739133
>>737932
> Кстати, анон когда-нибудь встречал скрипты со статической типизацией?
TypeScript, Groovy
Аноним 10/05/16 Втр 12:49:30  739135
>>739022
Не туда ты смотришь. Elm пока не умеет не включать в результирующий жс лишний код, но к реактивщине это отношения не имеет.
Аноним 10/05/16 Втр 12:53:44  739139
>>738072
То-то все паттерны заодно с юнит-тестами пришли из динамической параши (SmallTalk), а в статических компилируемых языках долгое время успешно обходились без них.
Аноним 10/05/16 Втр 12:53:53  739140
>>739013
В чистом хаскеле без алгебраических изъебств нет никакой излишней сложности, наоборот даже, всё намного проще, чем в какой-нибудь низкоуровневой императивщине типа явы или крестов. Но есть непривычность, да.
Аноним 10/05/16 Втр 12:55:18  739143
>>739139
Те паттерны, что пришли из смолтолка, практически никакого отношения не имеют с жавовскими.
Аноним 10/05/16 Втр 13:52:48  739193
>>739135
>Не туда ты смотришь. Elm пока не умеет не включать в результирующий жс лишний код, но к реактивщине это отношения не имеет.
Я блять смотрю туда, куда мне надо. Меня не особо интересует какой-то игрушечный код, который оказывается транслируется в жирный кусок говна. "пока не умеет" - ну, когда научится, тогда и поговорим.

Продебажить эту хуйню будет просто нереально, соответственно, она красивая только в теории.
Аноним 10/05/16 Втр 14:11:01  739206
>>739193
Жирная там библиотека элма, а конкретно тот код транслируется в сравнимый по объему жс. Работает он довольно шустро, можешь нагуглить бенчмарки, где elm делает react на ебле с dom.
>Продебажить эту хуйню будет просто нереально
С чего ты взял?
Отлаживается всё это дело довольно легко, в большинстве случаев даже не приходится прибегать к отладчику, потому что код довольно прозрачный.
Помоему, ты просто уперся как баран и всеми силами пытаешься найти хоть какой-то недостаток, лишь бы не допустить мысли, что ненавистное тебе фп с этими страшными реактивностями может оказаться лучше того, на что ты там дрочишь.
Аноним 10/05/16 Втр 15:45:28  739304
>>738879
Игра про марио была выпущена для процессора 6502 в 1985 году. К 2016 году функциональщики написали достаточное количество диссертаций, чтобы сделать тормозной хелловорлд с якобы прозрачным кодом - с точки зрения писателей этих диссертаций.
Когда они напишут что-то уровня майнкрафта, императивщики построят цивилизацию типа II. Это как раз иллюстрация к моему посту >>738838 , так что не знаю, что ты хотел этим доказать.
Аноним 10/05/16 Втр 15:54:14  739319
>>739304
Ты, видимо, из тех людей, что против прогресса, потому что он им не по зубам: всю жизнь отверткой шурупы вкручивали, и зачем эти шуруповерты? всю жизнь на ассемблере писали, и зачем эта сишка? всю жизнь на сишке писали, и зачем эти высокоуровневые языки? всю жизнь на жс с жквери писали, и зачем эти иммутабельные структуры данных, реактивщина и прочее ФП?
Аноним 10/05/16 Втр 15:56:38  739325
>>739304
>тормозной
Ой, не пизди. Уж мне, с моим-то калькулятором на некро-атоме, виднее: что тормозное, а что нет.
Аноним 10/05/16 Втр 16:00:08  739330
>>739319
Функциональщина существует с 1958 года. За это время в императивном программировании прогресс шагнул семимильными шагами, борщехлебы же продолжают использовать скобочки, в крайнем случае ML-говно (1973 года, т.е. ровесник паскаля).
Аноним 10/05/16 Втр 16:03:45  739335
>>739319
Хаскелеебы уже много лет убеждают в том, что хаскель - это прогресс (из ряда - ассемблер-фортран-си), но так и не представили доказательств этого. Есть только унылый троллинг и обвинение других в их непродвинутости. Это напоминает марксистов, у которых ряд продвинутости идет как рабовладение-феодализм-капитализм-коммунизм. И никак иначе.

Где ты видишь прогресс? Марио в 2016 - это не прогресс, марио 30 лет назад был написан.
Аноним 10/05/16 Втр 16:04:27  739338
>>739325
Попроси мамку меньше мяса в борщ класть, может накопишь на нормальный пека.
Аноним 10/05/16 Втр 16:07:46  739342
>>739319
>функциоанальщики изобрели колесо
>когда все остальные уже полетели в космос
>прогресс не остановить
>ещё чуть-чуть
>ёбаные ретрограды
Аноним 10/05/16 Втр 16:58:24  739445
>>739319
>зачем эти иммутабельные структуры данных

Ну если нравятся иммутабельные структуры данных, открой блокнот и сиди дрочи на него. Вот тебе и иммутабельная структура, лось. Кстати, как дополнительный бонус, работать с ней можно и в параллельном окружении не задумываясь о дедлоках и прочем, даже никак не изменяя принцип работы.
Аноним 10/05/16 Втр 17:26:29  739477
>>739330
>За это время в императивном программировании прогресс шагнул семимильными шагами
Лол, например?
Аноним 10/05/16 Втр 17:57:22  739512
>>739445
Мог бы и что-нибудь поумнее придумать.
>>739342
>функциоанальщики изобрели колесо
Пока императивщики продолжают катать квадратное.
>когда все остальные уже полетели в космос
Это ты что с полетом в космос сравниваешь? Те раздутые, жирные глыбы кода, что за полвека научились выводить текст и картинки на экран но с много большей требовательностью к ресурсам?
>>739338
Ок.
>>739335
Те, кто мог, преимущества увидел и перетащил в свой язык/библиотеку. Возможно, что даже ты пользовался достижениями функциональщиков, если хоть раз в жизни писал код.
>Марио в 2016 - это не прогресс,
Ну это уже слишком толсто. Какой ещё код ты ожидал увидеть в ознакомительных примерах?
>>739330
Тоже толсто. Пока ретрограды дырявили перфокарты, писали очередной код на выброс, мужики развивали CS. Ты хотя бы ту же википедию почитал о вкладе лиспа.
Аноним 10/05/16 Втр 18:29:08  739556
>>737921 (OP)
Никто тебе, петушила, не должен пояснять за динамическую типизацию, т.к. компьютер по умолчанию работает именно на ней.
Это ты, чухан, должен объяснять за статическую типизацию.
/трэд
Аноним 10/05/16 Втр 18:49:06  739583
>>739556
У компуктера по умолчанию её вообще нету, а динамикодрисня — просто вариация на тему "как завуалировать типы".
Аноним 10/05/16 Втр 22:18:52  739845
>>737921 (OP)
Знакомое чувство. Тоже перешел с решета на питон и было ну ОЧЕ неуютно из-за типизации. Однако теперь привык, даже чувствую удобство. Хотя стоит добавить, что все удобство заканчивается после скриптиков и несложных программ, для серьезного проекта это заноза в заднице, как по мне.
Аноним 10/05/16 Втр 22:22:26  739848
>>739845
>для серьезного проекта это заноза в заднице
Это скорее особенность питона, а не динамической типизации.
Аноним 10/05/16 Втр 22:40:52  739865
>>739848
Особенность динамической типизации.
Аноним 10/05/16 Втр 23:03:59  739887
>>739865
Нет, питона. Этот недоязычек не предназначен для чего-то более серьезного, чем средний скриптик.
Аноним 10/05/16 Втр 23:21:38  739907
>>739512
Ты туп и уныл.
Аноним 10/05/16 Втр 23:43:28  739934
>>739887
Как и остальные скриптоязыки.
Аноним 11/05/16 Срд 00:46:51  740002
>>738806
Уже есть такое: лисп-машины, емакс, LightTable.
Что характерно - все это написано на сортах лиспа. Смекаешь?
Аноним 11/05/16 Срд 04:51:43  740073
>>740002
Что характерно, все это засохшие куски дерьма
Аноним 11/05/16 Срд 06:05:29  740091
>>739512
>Это ты что с полетом в космос сравниваешь?
Императивщики за двадцать с небольшим лет прошли путь от марио до крузиса. Функциональщики (а я напомню, "первый язык программирования был функциональным" и "лисп был переложением лямбда-исчисления в компьютер") за шестьдесят лет наконец-то осилили марио.
Такой-то прогресс. Ещё чуть-чуть и заживём.
Аноним 11/05/16 Срд 09:46:28  740147
>>740073
Что характерно – это все лагающие куски дерьма, даже емакс ядро которого на сях лагает относительно вима.
Аноним 11/05/16 Срд 10:28:09  740176
>>740002
До появления, например, ноды, был JScript как минимум, были Rhino и прочие движки, позволяющие запускать js вне констекста браузера. И когда появилась нода - появлялись такие, которые говорили ЭТО ВСЕ УЖЕ БЫЛО ЭТО ТОРМОЗИТ.

Социальные сети были задолго до появления Фейсбука или Вк.

Интерфейс Метро из win8 - был задолго до win 8. Как и плоскота.
Но почему-то никто, кто знал о том, что это уже было, не решил концептуалить это в интерфейсах ранее, чем стали стали.

PC\OS\GUI был за долго до Apple и Майкрософта.
Но выстрелили лишь они.

И таких примеров миллионы, даже если не брать IT.

В этом треде написали про смолталк, лисп, емакс, с этим самым - это уже было.
Вся суть.


Аноним 11/05/16 Срд 11:59:13  740217
>>740147
Просто потому что в виме ничего нет. А когда и в нем запиливаешь аналогичный функционал, он начинает тормозить похлеще емакса.
Аноним 11/05/16 Срд 12:09:10  740223
>>740217
Смотря что ставить.
Всё же сишная основа – это не говнокложура, на которой ЛегкийСтол тормозит как атом даже на обычном тексте.
Аноним 11/05/16 Срд 12:13:28  740226
>>740223
Хуй знает, светлыйстол я вообще не осилил. Редактор увидел, а где там йоба-интеграция с реплом не заметил, поэтому вернулся обратно на емакс.
>Всё же сишная основа
Ну... в емаксе тоже сишная основа, но однопоточная, от того и тормоза.
Аноним 11/05/16 Срд 12:30:15  740240
>>740226
>в емаксе
Я про него и говорил.
От многопоточности в текстовом редакторе изменится ровно нихуя – сам пораскинь мозгами, где она может пригодится.

Вот асинхронность для отзывчивости приложения необходима. Её только осиливают в неовиме и в 8-м виме какие-то сподвижки начались.
Аноним 11/05/16 Срд 12:34:16  740241
>>740240
>в текстовом редакторе
В редакторе - да, а вот в емаксе лишней не была бы. Тот же flycheck бы вынести в отдельный, уже меньше тормозов.
Аноним 11/05/16 Срд 13:24:20  740282
>>739206
> где elm делает react на ебле с dom
Но реакт же тоже реактивный вроде
Аноним 11/05/16 Срд 13:49:22  740302
>>739206
Так-то в синтетических бенчмарках много кто "быстрее" React: virtual-dom, mithril, inferno.
Но надо иметь в виду, что алгоритм Реакта оптимизрован под глубокие деревья (т.е. под реальные приложения), а все синтетические бенчмарки делаются на неглубоких деревьях.
Аноним 11/05/16 Срд 14:20:15  740318
14629656152920.jpg (42Кб, 450x379)
>>737921 (OP)
tl:dr
Можно делать всякие грязные трюки типа в одном случае передать содержимое файла, а в другом список того, что надо передать в командную стоку, чтобы этот файл сам открылся в нужной программе....

Хотя это можно сделать и с помощью void *...
мимо-Си-бог
Аноним 11/05/16 Срд 14:45:05  740333
>>740318
>помощью void
Ааааа блятьначальник! Этот мудель void* передаёт в функцию! Иди мой его блять.
Аноним 11/05/16 Срд 15:40:24  740374
>>740282
В elm выигрыш за счет использования иммутабельного dom.
Аноним 11/05/16 Срд 16:38:55  740443
>>740374
То есть он его пересоздает заново после каждого изменения?
Аноним 11/05/16 Срд 17:16:23  740470
>>740443
И не перерисовывает остальные части, потому что знает, что они не могли изменится.
Аноним 11/05/16 Срд 17:48:35  740484
>>740470
Ты про виртуальный дом штоле? Так он и в Реакте есть.
Аноним 11/05/16 Срд 18:03:16  740495
>>740470
Вы весь этот свой виртуальный дом как мантру повторяете.
При рендеринге даже одного элемента, может произойти рефлоу всей страницы.
Сам виртуальный дом, лишь создает легковесную копию тех аттрибутов дом узлов, которые обычно дергают, чтобы не дергать за ними дом.

Весь этот вдом нужен лишь тем, кто не умеет обращаться с ванильным рационально. Такая же прослойка как статическая типизация - суть защита от дурака.
Аноним 11/05/16 Срд 18:06:14  740499
>>740470
ТО есть, ты создание огромной вложенной цепочки объектов, при любом изменении любого параметра одного из них - считаешь за выигрышь? Ты серьезно?

По-твоему пересоздать 20 объектов заново быстрее чем изменить поле одного из них?
Аноним 11/05/16 Срд 18:51:46  740552
Кто соснул, лень читать
Аноним 11/05/16 Срд 18:59:00  740561
>>740552
Мамка твоя.
Аноним 11/05/16 Срд 18:59:39  740563
>>740561
ДА КАК ТЫ СМЕЕШЬ
Аноним 11/05/16 Срд 19:00:40  740566
>>740563
Я тебе честно говорю. Сам проверь.
Аноним 11/05/16 Срд 19:02:38  740570
>>740566
НА ДУЕЛЬ! ОСКРОБЛЕНИЕ!
Аноним 11/05/16 Срд 19:04:07  740572
>>740570
Приятно познакомится, Надуель.
Я Сопромат.
Аноним 11/05/16 Срд 21:08:15  740696
>>740499
Зачем пересоздавать все, когда можно использовать существующие, ведь они не могли измениться.
>>740495
Успокойся уже, порватка.
>Весь этот си нужен лишь тем, кто не умеет обращаться с ассемблером рационально.
Где-то я это уже слышал.
Аноним 11/05/16 Срд 22:00:07  740759
>>740495
> Весь этот вдом нужен лишь тем, кто не умеет обращаться с ванильным рационально
А компиляторы нужны лишь тем, кто не умеет писать машинный код рационально.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 310 | 15 | 55
Назад Вверх Каталог Обновить

Топ тредов