STRONG STATIC TYPING ¿CTV MASTER RACE / программирование :: holy war :: it

it программирование holy war 
STRONG
STATIC TYPING ¿CTV MASTER RACE,it,программирование,holy war
Подробнее
STRONG STATIC TYPING ¿CTV MASTER RACE
it,программирование,holy war
Еще на тему
Развернуть
Зато профит в высокой производительности и в том, что код с ошибками в типах нельзя скомпилировать. А в том же JavaScript нужно муторно отллаживать типовые ошибки.
Высокая производительность? Решается компиляцией на лету. Ты же не меняешь код на продакшене каждую минуту? Только первое обращение компилируется, остальные работают из компилированного кеша.
А про типовые ошибки это как я и сказал, половина извилины. Это реально просто. Тайпхинты опять же, каждая первая IDE поддерживает.
>Решается компиляцией на лету.

там by design проблема, питон в 40(!) раз медленне сишечки, с кешированием, да
Ну давай еще с ассемблером сравним.
ни Python, ни C\С++ не подходят под картинку. python - strong, C - weak/ Но это все не важно на самом деле.
Neshta Neshta 07.07.201703:19 ответить ссылка -1.5
Ебать взяли заминусили чувака, мамкины программисты сильную типизацию и типизированный язык не различают, мда
это нормально, больше быдло-кодеров, меньше конкурентов :)
Neshta Neshta 07.07.201710:58 ответить ссылка 1.6
сейчас скорость разработки ценнее скорости выполнения.
плюс никто не запрещал писать критичные по скорости выполнения модули для питона на си.
Полностью согласен. Сейчас пишу сервак для кастомной хардвари, proof of concept с лёгкостью и изяществом написал за неделю на PHP (да-да, и не надо смеяться), потом собрали первые прототипы, пилили протокол, и не было ничего проще, чем добавлять новый функционал и экспериментировать с существующим. Более того, этот сервак более чем успешно несколько месяцев работал в продакшене, пока я писал замену на go. Но переписать, конечно, пришлось в угоду производительности. Да и go для таких вещей приспособлен куда лучше, нежели пхп, естественно. Но факт остаётся фактом: если бы я начал писать на go сразу, процесс разработки затянулся бы конкретно, и мы не смогли бы параллельно дорабатывать хардварную часть, были бы простои.
7 дней на пхп против 2-3 месяцев на го? Один и тот же функционал с применением одних и тех же библиотек? С трудом верится. Чем же было вызвано падения производительности более чем в 8 раз?
Нет, не один и тот же функционал. Когда начал пилиться сервер на го, PHP пилился уже несколько месяцев потихоньку, соответственно надо было перенести на го и его, плюс накопились новые фичи. Но рабочий прототип с базовым функционалом был готов через неделю работы. Да, конечно, может быть, не самый показательный пример (хотя бы потому, что писать сервера на пхп - это извращение и нецелевое использование), но ты же не будешь оспаривать, что трудозатраты при разработке на го выше, чем на PHP.
>писать сервера на пхп - это извращение и нецелевое использование

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

>но ты же не будешь оспаривать, что трудозатраты при разработке на го выше, чем на PHP

Есть мнение, что в случае крупных проектов преимущество одних языков над другими (с условием одинаковых либ) сильно преиувеличено. Грубо говоря, разница между С++ и Python по скорости разработки 5-10%. Между го и пыхом - 1-2%. Но, конечно это мнение весьма спорное, т.к. объективного сравнения никто никогда не проводил.

Конечно, при этом, скорость написания однострочников может вырасти в 10 раз, если взять правильный язык.
А теперь скажи мне, на кой хер тебе нужна динамическая типизация, если ты все равно грузишь интерпретатор/IDE тайпхинтами? Ты ещё расскажи про то, как можно защитить свой код от ошибок средствами утиной типизации. И давай ещё послушаем про то, как компиляция интерпретируемого языка "на лету" может соперничать с производительностью компилируемого языка. Фишка в том, что динамическая типизация реально нужна только для скриптовых языков, в которых нужно, чтобы заработало хоть как-то и хоть раз, и чтобы была минимальная задержка между написанием кода и первым запуском программы. Все. Остальные плюсы обращаются в ноль неудобством, неэффективностью и небезопасностью динамической типизации. Писать на динамически типизированном языке что-то сложнее скриптов просто глупо.

Насчёт джаваскрипта, раз его упомянули. Ты когда-нибудь прогонял фронтенд-код крупного проекта через блядский минифайер? Скажи, сильно быстрее выходит, чем компилировать проект соответствующего размера на плюсах (если не считать факториалы на темплейтах)? Я в рот ебал джаваскрипт и иже с ним, этот язык ущербен по своей сути. Посмотри, как извращаются вебдевы и разработчики браузеров уже хер знает сколько лет из-за того, что лентяи из нетскейпа сделали его интерпретируемым и динамически типизированным. Сраные динамические смерды...
Динамика далеко не единственная его проблема. Там всё через жопу сделано. Даже не понятно откуда такая популярность.
Раз уж заговорили о JS и типизации, не могу не скинуть этот замечательный видос. Ржу с него каждый раз, но первый раз вообще натруально со стула падал.

https://www.destroyallsoftware.com/talks/wat
html вообще был задумывался как язык разметки, вроде latex, с возможностью адаптироваться под разные задачи(например, просто прочитать статью на мониторе или вывести ее на проектор, где необходимы большие шрифты и это все настраивалось на стороне браузера). Или, например, с возможностью показать текст вместо картинки, если так хочет пользователь.
Потом на эту самую кастомизацию на стороне пользователя положили большой мпх. Потом их обмазали js и получилось то уродство, которое мы видим сейчас.
Сейчас уже нет возможности скачать страницу и посмотреть ее в оффлайне. То есть по факту сейчас уже не веб-страницы, а веб-приложения, которые не работают без удаленного сервака.
Короче, это легаси живет и будет еще долго жить. Остальные же попытки сделать среду для веб-приложений(java и flash), несмотря на годный концепт, были еще большим говном в реализации.
aidath aidath 07.07.201717:35 ответить ссылка 0.0
На картинке есть важный нюанс - СИЛЬНАЯ статическая типизация против СЛАБОЙ динамической. Высокопроизводительный и статически, но слабо типизированный С++ ничем не отличается от динамически типизированного JS ( на самом деле в С++ вариантов выстрелить в ногу когда больше чем в JS), если в JS и PHP можно складывать строки с числа, то в С++ можно приводить любые типы данных к любым и так же по ошибке складывать что угодно с чем угодно. А вот в таких языках как C# и Ruby типизация сильная и сложение чисел со строками выпадет в исключение.
> приводить любые типы данных к любым и так же по ошибке складывать что угодно с чем угодно.

Ой неправда. Кто тебе переопределил оператор '+' для типов, например, std::fstream и bool*? Пушкин? Я тебе больше скажу - в плюсах ты даже строку с числом не сможешь "сложить", нужно передавать число в std::to_string(int). А в шарпе, кстати, оператор + для строк и чисел переопределение, и их спокойно можно "складывать", это как синтаксический сахар для вызова to_string и конкатенация. И в обоих случаях - статическая проверка типов. По сравнению со сраным джаваскрипта, который скорее попытается вычесть число из строки, чем сразу хотя бы кинуть эксепшн, это небо и земля. Без обид, но плюсы хоть как-то знать надо...

Ах да, а ещё в шарпе есть вполне себе динамическая типизация с проверкой типа в рантайме. Пишешь у переменной вместо типа "dynamic" и вуаля.
Я может не так много работал с JS, но не помню проблем из-за того, что я ошибочно пытался отнять чисто от строки. А вот поебота с приколами браузера или с видимостью переменных (если работаешь с фреймворком) была. Так что спор ни о чем. Если в голове не говно, то проблемы с типизацией будут на третьем плане.
Хоть я и придерживаюсь мнения, что ЯПы всякие нужны, ЯПы всякие важны, но хочу заметить, что "если в голове не говно" как раз и является причиной, почему статика бывает лучше динамики. Ибо не говно, по статистике, далеко не у всех в голове. Да и когда не говно, ошибки случаются. И нормальные мозги от переработки порой в говно превращаются временно. А когда у тебя нет физической возможности ошибиться с типами, таки попроще. Однако скорость и удобство разработки часто оказывается важнее.

А так, если башка варит и знания есть, то хоть на чём пиши.
Типизация это давно уже вкусо срач, IDEA для динамических языков намного адекватнее помогает с типами и автодополнением, чем Eclipse/NetBeans/QtCreator/Старая студия для статических языков. А если за тебя кто-то проверяет, то какая разница? Сейчас все адекватные проекты обвешаны статическими анализаторами кода, IDE помогает динамически находить ошибки сразу, всякие штуки для соблюдения код стайлов, причем это абсолютно одинаково и для статических языков, тот же Решарпер и PVS, а казалось бы типизация. Не имеет она уже никакого значения.
Слова не джуниора, но тимлида.
Приведение указателей к void, смешение указателей и целочисленных типов данных (вроде только к С относится и старым стандартам), reinterpret_cast. Уверен гуру С++ знают еще тысячи способов баловаться с типами. И для С++ это как раз нормальное частое явление, а вот dynamic в шарпе это как раз редкая нерекомендуемая фича, которая в общем-то не очень давно появилась. Плюсо срач разводить не хочу, но из двух зол плюсов и жс, в плюсах тупо больше легаси и больше языковых возможностей для отстрела ног, в жс проблема это полифилы и this, остальное на уровне восприятия, раньше была еще проблема скудной стандартной библиотеки и отсутствие нормальных возможностей для структуризации проекта.
Что-то похожее актуально только для С++ и то лишь при полной рекомпиляции проекта.


что касается тестов, лучше, когда ошибка обнаруживается на самом раннем этапе
Ну ебанётся твоё говно на этапе интерпретации? Что тогда?
Nesy Nesy 07.07.201707:44 ответить ссылка 1.6
Вообще какая связь между скоростью компиляции и видом типизации? О_О
FPC знаешь как охуенно быстро компилит? А Go или Rust?
Rust кстати отличный язык для выебонов, все языки обсирают, а Раст только за перлообразный-регэксповый синтаксис.
>И сидит такой MASTER RACE по половине рабочего дня в ожидании компиляции.

инкрементальная сборка
Это какой-то эльфийский юмор?
Resetnik Resetnik 07.07.201706:05 ответить ссылка -3.4
поздравляю тебя, Шарик, ты отстал от жизни лет на 30...
Молодой человек мне пожалуйста колу и чизбургер, да побыстрее!
Redeemer Redeemer 07.07.201711:31 ответить ссылка -0.1
а то надо до вечера критикал баги пофиксать и на продакшн задеплоить
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
Ну что. Привет, реактор!
Второй урок по Яве(Джаве).
Сегодня мы будем учить условия, циклы и создание функций.
Будем работать в консольке, как её открыть - я описал в прошлом уроке. Привязывать графику пока рановато ;).
Что мы будем сегодня делать?
Мы выведем небольшое вступление, потом числа Ф
подробнее»

java уроки программирование geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор много текста длиннопост как получить минусы как получить плюсы public static void Кодинг разное

Ну что. Привет, реактор! Второй урок по Яве(Джаве). Сегодня мы будем учить условия, циклы и создание функций. Будем работать в консольке, как её открыть - я описал в прошлом уроке. Привязывать графику пока рановато ;). Что мы будем сегодня делать? Мы выведем небольшое вступление, потом числа Ф