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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

static object Foo(object a, object b)
{
return a + b;
^Оператор "+" невозможно применить к операнду типа "object" и "object".
}
Ответы: >>738243 >>738275
Аноним 09/05/16 Пнд 11: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
}
Понимаешь теперь, почему динамикоговнецо тормозит?
Ответы: >>738255
Аноним 09/05/16 Пнд 11:39:04 738255
>>738243
Пошел ты нахуй со своими костылями, вот что я хотел сказать.

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

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

>>738399
>чтоб получить приемлемую производительности нужно писать фортраноподобную говнолапшу.
Как и везде.
Ответы: >>738419
Аноним 09/05/16 Пнд 13:42:14 738417
>>738399
>Работает на одном ядре, однотредовый мусоросборщик.
lwt, fork
>Да и вообще идиоматичный код на Окамл сосёт не разгибаясь
Ну, нет. Сам окамл такой, что идиоматичный код на нем выглядит как помесь хаскеля и фортаноподобной параши.
>Вообще Окамл очень плох
Если присмотреться получше, то оказывается вполне ничего. Просто не надо смотреть на него как хаскель, это совсем другой язык.
>тайпклассов нет
Как показывает практика, тайпклассы в окамле не нужны. В случае действительной необходимости используется ООП, которое таки неплохо встроено в систему типов.
>Если уж выбираешь МОЩНЫЕ СИСТЕМЫ ТИПОВ, то бери уже цацкиль, и не еби мозги.
Хаскель непрактичен. Слишком много типо-, монадо- и прочего алгербродрочерства сомнительной полезности.
>лютый пердолинг
Лол, человек, который советует хаскель, рассказывает про лютый пердолинг.
Аноним 09/05/16 Пнд 13:44:02 738419
>>738403
UT? Да на питоне? И чтоб не лагал?
Ответы: >>738420
Аноним 09/05/16 Пнд 13:47:09 738420
>>738419
На каком нибудь жит компиляторе питона сделать не проблема, правда нахуя? (то же относится и к жс-версии).
Ответы: >>738425
Аноним 09/05/16 Пнд 13:51:59 738425
>>738420
>не проблема
Ты в этом уверен? Насколько мне известно, питуханы так и не сумели запилить нормальный компилятор. Пока самые нормальные у жс, луа, лиспа
Ответы: >>738426 >>738428
Аноним 09/05/16 Пнд 13:53:51 738426
>>738425
Ну, есть cython и pypy. На них, правда, хорошо, если половина питоньего кода работает, но ЗДЕЛАТЬ-то МОЖНА. А cython - это практически сишка с нескучным синтаксисом, поэтому там и работать должно хорошо.
Аноним 09/05/16 Пнд 13:56:12 738428
>>738425
А насколько мне известно, в то время когда эта игра вышла (если я правильно понял и ты о Unreal Tournament), то не было ни шейдеров, ни видеокарт (у массовых потребителей конечно), всё считалось на CPU (!!! блядь). Ещё есть что сказать?
Ответы: >>738430
Аноним 09/05/16 Пнд 13:59:21 738430
>>738428
О каком именно ты анрилтоурнаменте? Потому что тот, о котором я говорю, в 2008-9 неслабо так притормаживал на моем железе (P4 630 или 640 и asus x1600)
Ответы: >>738435
Аноним 09/05/16 Пнд 14:02:17 738435
>>738430
Ну скинь его, я нихуя не нашёл.
Аноним 09/05/16 Пнд 14:16:31 738439
>>738104
>>738090
>>737997
Ммм, как же я обожаю слушать тыльный треск динамических даунов. А особенно - ВОЗРАЖЕНИЯ, которые в качестве примера динамической дрисни приводят РАБОЧИЙ И СОВСЕМ НЕ ДЛИННЫЙ код, на отладку которого были потрачены десятки макакочасов, а в качестве примера статики - хэллоуворлды-оксюмороны, написанные за двадцать лет до внедрения вывода типов во все приличные языки. auto duck = new {}? НЕЕЕЕТ, ВЫ ВСЕ ВРЕЕЕЕЕОООООТИ, КРЕСТЫ СОСУТ, МАМ СКАЖИ ИМ(((((((((
Ответы: >>738453
Аноним 09/05/16 Пнд 14:31:58 738453
14628043181440.png (85Кб, 795x1135)
14628043181451.jpg (64Кб, 624x351)
>>738439
>КРЕСТЫ СОСУТ
пришло время напомнить
Ответы: >>738455
Аноним 09/05/16 Пнд 14:38:09 738455
>>738453
Стандартный быстрый код.
Ответы: >>738458
Аноним 09/05/16 Пнд 14:44:32 738458
>>738455
___что ты_ ____несешь еб___нуты_й?
Ответы: >>738463
Аноним 09/05/16 Пнд 14:46:55 738463
>>738458
А чо так многа приватных методов? Ща погодь код интерпритируется.
Аноним 09/05/16 Пнд 14:49:20 738467
>>737921 (OP)
Профит в том, что есть обезьяны, которым сложно осознать такое понятие, как тип данных.
Ответы: >>738472
Аноним 09/05/16 Пнд 14:59:19 738472
>>738467
Почему програмистишки такие высокомерные мрази? Нихуя же ведь вообще не знает чудик а лезет со своим охуительное весомым мнением.
Ответы: >>738479 >>738611
Аноним 09/05/16 Пнд 15:05:32 738479
>>738472
Начинающие, лет через 5-10 это проходит.
Аноним 09/05/16 Пнд 15:30:39 738498
В треде пробздетый дизайнер языков программирования, задавайте свои ответы.
Ответы: >>738502 >>738610
Аноним 09/05/16 Пнд 15:34:11 738502
>>738498
Как определить идеальность синтаксиса?
У какого языка синтаксис самый идеальный?
Ответы: >>738512 >>738587
Аноним 09/05/16 Пнд 15:43:40 738512
>>738502
У лиспа
Ответы: >>738527
Аноним 09/05/16 Пнд 15:56:59 738527
>>738512
)))))))
Аноним 09/05/16 Пнд 16: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();
}
Ответы: >>738552
Аноним 09/05/16 Пнд 16:28:15 738552
14628112959400.jpg (5Кб, 236x228)
>>738537
>dynamic ведет себя также как и object
ПРООРАЛ НА ВСЮ КОМНАТУ С ДОЛБАЕБА
Ответы: >>738559 >>738562 >>738567
Аноним 09/05/16 Пнд 16:38:39 738559
>>738552
Поясни, в чем он неправ.
Аноним 09/05/16 Пнд 16:46:22 738562
>>738552
https://msdn.microsoft.com/ru-ru/library/dd264741.aspx
> Как часть процесса, переменные типа dynamic компилируются в переменные типа object.Поэтому тип dynamic существует только во время компиляции, но не во время выполнения.
И тут ты идешь на парашу.
Аноним 09/05/16 Пнд 16:51:03 738567
>>738552
По сути все правильно написал, вы бы, блядь, хоть clr via c# для приличия почитали.
Аноним 09/05/16 Пнд 17:19:46 738577
>>737921 (OP)
>кроме того, что вместо нескольких одинаковых функций под разные типы аргументов, пишешь одну и передаешь в нее все, что хочешь? Это здорово конечно, но в реальной жизни это же нахуй не нужно.
ты сейчас огребёшь и от статикоёбов с их шаблонами и утиной типизацией
Ответы: >>738579
Аноним 09/05/16 Пнд 17:23:02 738579
>>738577
>утиная типизация
>2016
Ответы: >>738597
Аноним 09/05/16 Пнд 17:39:07 738587
>>738502
>Как определить идеальность синтаксиса?
Syntax_coolness = expressivity / readability, где 0 <= readability <= 1, 0 - не читается, 1 - читается идеально.
>У какого языка синтаксис самый идеальный?
Такого, чтобы самый? Гвидон/Говно классные, например.
Ответы: >>738593
Аноним 09/05/16 Пнд 17:48:55 738593
>>738587
Разве критерий читаемости не выводится из понимания читателем концепции и архитектуры языка?
Например, человеку который умеет только go, будет невыносимо понять js, и наоборот.
Но тому, кто хорошо знает оба языка, будет вполне понятны и читаемы оба.
Ответы: >>738595
Аноним 09/05/16 Пнд 17:52:51 738595
>>738593
Ну вот по тебе сразу видно, что у тебя совершенно нет опыта коммерческой разработке. Есть языки совершенно невыразительные, но очень хорошо читаемые на codebase scale (вроде Go). Есть очень выразительные, но нечитабельные (вроде хаскелля, хехе). Есть те, которые посредине — как питон, например. Но прикол в том, что у них у всех есть трейдоффы. Синтаксис — это только третья часть охуенности языка, еще ооочень сильно решает парадигматика, инструментарий и комьюнити.
Ответы: >>738605
Аноним 09/05/16 Пнд 17:53:25 738597
>>738579
Утиная типизация, как это реализовано в Go - это лучшее, что может быть, ящитаю.
Ответы: >>738606
Аноним 09/05/16 Пнд 18:05:41 738605
>>738595
>буква я последняя в русском алфавите
>ну вот по тебе сразу видно, что ты не понимаешь ничего об алфавитах. есть алфавиты, в которых вообще нет буквы я, а так же есть те, в которых количество букв больше чем нужно, а в некоторых очень мало. помимо количества букв и их порядка, еще важны такие вещи как....

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

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

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

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

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

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

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

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

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

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

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

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

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

О том, что он подходит для разработки больше Эрланга, хотя он полнейшее говно.
Если ты про то, что Нода применяется чаще Го, то у нее историческая фора и много фронтенд-макак, думающих, что им будет проще притащить свой вонючий JS на сервер сайд, чем учить новый язык вроде Go. NodeJs - это полный отстой, даже хуже PHP.
Ответы: >>738845 >>738848
Аноним 09/05/16 Пнд 22:08:01 738825
>>738821
>Пробовал, не понравилось. Слишком большой челендж в самом освоении языка, чего в императивных не помню.
Не осилил, значит. Ну, коль мозги заржавели, уже ничем тебе не поможешь.
Студентота его более-менее осваивает за пол-семестра.
>Такой код встречается (и часто) в каноничных тутах вроде learn you a haskell и в каждой первой хаскельной либе.
Ну и что? Это не дает тебе писать нормальный код или использовать нормальные библиотеки?
Ответы: >>738838 >>739013
Аноним 09/05/16 Пнд 22:09:19 738826
>>738823
Что-что? Когда это активикс взлететь успел?
Ответы: >>738830
Аноним 09/05/16 Пнд 22:14:47 738830
>>738826
node-webkit
Аноним 09/05/16 Пнд 22:31:17 738838
>>738825
>Студентота его более-менее осваивает за пол-семестра.
А потом пишет диссертации о том, как сделать то, что на императивных языках давно написано, в виде какой-нибудь реактивной поеботы. Все довольны - гранты пилятся, борщ готовится, индустрии похуй.
Ответы: >>738840 >>739304
Аноним 09/05/16 Пнд 22:33:53 738840
>>738838
Ой темнота. Ну заржавели мозги - смирись. Но зачем чушь-то нести, если не смог разобраться?
Ответы: >>738862
Аноним 09/05/16 Пнд 22:40:10 738845
>>738824
Вот то же самое и с го и эрлангом. Макаки думают, что новомодная сишка с потоками (да ещё и от гуголя! и с """""""множественными""""""" ОПТИМИЗАЦИЯМИ рантайма!) будет проще и лучше в освоении и использовании, чем странный язык со страшным ФП от какой-то неизвестной компании (фууу, дизлойс).
Аноним 09/05/16 Пнд 22:42:55 738848
>>738824
На самом-то деле серверная сторона любое говно стерпит (и жаву, и жс, и го, и даже, прости господи, пхп), поэтому оценивать качество по частоте применения бессмысленно.
Аноним 09/05/16 Пнд 23:22:19 738862
>>738840
Нормально у меня все с мозгами. У хаскеля сама концепция в корне не верна, отсюда и проблемы с продакшеном.
Ответы: >>738867
Аноним 09/05/16 Пнд 23:28:55 738867
>>738862
В чем неверна? И что по-твоему верно?
>Нормально у меня все с мозгами.
Ты ж сам выше говорил, что не осилил.
Ответы: >>738873
Аноним 09/05/16 Пнд 23:39:15 738873
>>738867
Это не я говорил. Спать охота, завтра расскажу, если дойду.
Ответы: >>738879
Аноним 09/05/16 Пнд 23:43:56 738879
>>738873
Вот тебе немного пищи для размышления: http://elm-lang.org/examples/mario
Видишь, насколько прозрачным позволяет делать код реактивщина?
Ответы: >>739022 >>739304
Аноним 10/05/16 Втр 00: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 Втр 03:59:50 738916
Два слова: меньше писанины.
Аноним 10/05/16 Втр 04:51:43 738924
>>737921 (OP)
Да незачем, это хайп для даунов. Динамический кал сосёт просто во всём.
Аноним 10/05/16 Втр 04:54:53 738927
>>737958
> Динамическая типизация позволяет разбивать программу на полностью независимые модули. Каждый из которых может быть написан и откомпилирован полностью независимо от других.
Проиграл. При чём здесь динамичная типизация к модульности?

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

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

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

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

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

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

- PHP
- TypeScript

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

Топ тредов
Подписывайся на официальный канал Двача в Телеграме и узнавай обо всех новостях и мемах первым! https://tlg.wtf/dvachannel[X]