Pull to refresh
1
0
Send message

Какую задачу решает динамическая типизация?

Проще писать небольшие программы на одну-две страницы с линейным графом исполнения. Это частый случай.

И, повторюсь, если динамическая типизация в этих языках намеренно, то почему все они начали обрастать статическими типами?

Потому, что в ИТ всё делается через (_|_). Вместо того, чтобы взять язык с подходящей под задачу типизацией, берутся дешёвые программисты «на языке А», которые не желают учиться, и упорно пишут на языке с динамической типизацией. Программы разрастаются, начинает требоваться стать. типизация, но переписывать уже поздно, поэтому начинаются вопли про стат. типизацию в языке.

Потому что для разных задач нужны разные инструменты?

Какую задачу решает динамическая типизация? И, повторюсь, если динамическая типизация в этих языках намеренно, то почему все они начали обрастать статическими типами?

Странная концепция, я понимаю, многие уверены, что существует только один расово верный.

Да, жаль, что не все поймут...

У вас аргументы кроме принципов Василия Алибабаевича имеются?

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

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

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

Вы не знаете, что такое вывод типов?

Речь о том, что не надо писать сигнатуры, примерно как вот тут:

https://github.com/ocaml/ocaml/blob/trunk/middle_end/closure/closure.ml

Вы не знаете, что языки с динамической типизацией существует вовсе не потому, что создатели не осилили статическую?

А почему?

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

начали добавлять типы

Если перечислять чего в истории ИТ сначала начали добавлять, потом перестали, потом начали убирать, получится труд размером с БСЭ, не меньше. У вас аргументы кроме принципов Василия Алибабаевича имеются?

Сильная женщина..

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

Одна моя знакомая в фаанге видит результаты этого пользования: каждый второй тип — any .

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

Пробежадться по всей кодовой базе и починить утечку ресурсов — никто нигде PrepareStatement не закрывал. Везде код разный, автозаменой Intellj IDEA или вимом это не решить (я сперва пытался, это невозможно)

Для этого уже давно есть статические анализаторы. В случае конкретно с Java: Checkstyle, PMD, FindBugs, Error Prone, дополнительные расширения и наборы правил к ним. Причём это будет работать на этапе сборки для даже без внешних систем вроде SonarQube. А при некотором должном усилии можно написать собственные проверки и правила для каждого из этих анализаторов.

А для всего, что касается проверки конфигурациионных файлов, можно написать собственные правила, например, для Maven Enforcer Plugin.

Ну вот пример из комментария, на который вы ответили. Перевод с одного ЯП на другой.

Еще пример. Пробежадться по всей кодовой базе и починить утечку ресурсов — никто нигде PrepareStatement не закрывал. Везде код разный, автозаменой Intellj IDEA или вимом это не решить (я сперва пытался, это невозможно). Но задача на 100% рутинная.

Еще пример. Тесты начали по-новому писать. Старые тесты переносить в новый формат (заполнять базу не кодом, а из файла) — можно LLM попросить, задача банальная и справится любой. А скриптом это не решить. На такой скрипт больше времени уйдет, чем на ручное переписывание всех тестов.

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

Рутинный задачи и задачи по аналогии gpt3.5 решал хорошо.

Я очень удивился, когда дал chatGpt свой скрипт на Clojure, который писал около часа, используя свою же библиотеку, и он тут же перевел его на Bash без ошибок.

Скрип https://functional.works-hub.com/learn/writing-a-clojure-script-to-open-docker-and-two-terminal-windows-2befc

В 2022 (и в 2023) ChatGPT не мог решить ни один вопрос на среднем уровне. То, что вы им пользовались, даже несколько пугает. Разве не проще, быстрее и качественнее было сделать самому? Сейчас это уже не так, но это сейчас.

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

Утилизировать? Серьёзно? Вы русский после английского учили?

Enum конвертируется в sealed class двумя кнопками в IntelliJ IDEA. Нейронка тут избыточна.

Блин, могут быть десятки причин. В данном случае я сам написал енам, продолжил писать, понял по ходу дела, что силд лучше подойдет. Но суть же в другом: бывает ясный рефакторинг, который нужно делать. LLM тут помогает сэкономить время и избавить от рутины.

А зачем вы переписываете enums на sealed classes? Если перечисления уже работают в проекте, зачем?

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

Information

Rating
Does not participate
Registered
Activity