Какой ЯП вы предпочитаете для создания прототипа?
Основной или отдельный типа кложы фшарпа?
В чем его приемущество перод основным?
И почему окончательная версия все же на другом ЯП(обстоятельства, иные приемущества)?
Я вот балдею от лиспа, синтаксис кложы более выразителен(ты просто смотришь на хешмапу и видишь живые данные), одна идею можно четко выразить на алгебраических типах в фшарпе, которые сразу отсекут не нормированное множество значений.
Здравствуйте, varenikAA, Вы писали:
AA>Какой ЯП вы предпочитаете для создания прототипа?
Python
AA>Основной или отдельный типа кложы фшарпа? AA>В чем его приемущество перод основным?
Потому что а) писать реально быстро, б) есть библиотеки для вообще всего, в) читать его умеют вообще все, г) есть Jupyter.
AA>И почему окончательная версия все же на другом ЯП(обстоятельства, иные приемущества)?
Ну тормозной же как улитка
AA>Я вот балдею от лиспа, синтаксис кложы более выразителен(ты просто смотришь на хешмапу и видишь живые данные), одна идею можно четко выразить на алгебраических типах в фшарпе, которые сразу отсекут не нормированное множество значений.
Ага, Clojure — это круто, только мало кто согласен читать Lisp-ы в современном мире. И его динамическая типизация отстой даже если сравнивать с Python, где всё же аннотации прижились и стали хорошим тоном.
Здравствуйте, varenikAA, Вы писали:
AA>Какой ЯП вы предпочитаете для создания прототипа?
query {
for e in ctx.Spets.WpPosts do
where (e.PostType = "product")
select e
take 10
} |> Seq.iter (fun e -> printfn "%s" e.PostTitle)
А мне вот всё больше нравится фшарп. только вот заметил, что чем мощнее и удобней ЯП, тем сложнее его запустить.
Под капотом уже не паровая машина, а термоядерный реактор, если образно.
Пример, провайдеры типов(код выше), столько надо знать чтобы запустить это чудо инженерной мысли. )))
Здравствуйте, varenikAA, Вы писали:
AA>Какой ЯП вы предпочитаете для создания прототипа?
Сильно зависит от типа программы. С большим обилием вычмата, наверное, на Matlab, хоть язык и убог донельзя.
В большинстве "десктопно-вебсервиснных" случаев Python, ибо:
1) есть нативные библотеки и биндинги для очень широкого спектра задач;
Не будет сильным преувеличением сказать, что на сегодняшний момент Python "залез в каждую дырку";
2) кроссплатформа, будет меньше проблем с переносом;
3) Императивная ООП парадигма, легко переписывать на мейнстрим язык;
4) Наличие простых/примитивных средств для экспериментов (Jupyther), ускоряющих изучение неизвестных библиотек в режиме REPL и с визуализацией;
5) Интерпретируемость (отсутствие фазы компиляции) ускоряет эксперименты;
6) при случае можно даже не переписывать на целевой ЯП, а ограничиться переписыванием боттлнеков на С;
Минусы:
1) GIL, может быть неудобно прототипировать все, что связано с task parallelization;
2) ЯП с динамической типизацией и интерпретируемый, если не используется подход "test by run", могут быть скрытые баги на ровном месте.
Здравствуйте, student__, Вы писали:
__>2) ЯП с динамической типизацией и интерпретируемый, если не используется подход "test by run", могут быть скрытые баги на ровном месте.
Тот, для кого динамическая типизация минус, всегда может использовать typing.
Здравствуйте, amironov79, Вы писали:
A>Тот, для кого динамическая типизация минус, всегда может использовать typing.
Оно не даёт гарантий. Изрядно помогает, но гарантий не даёт. Вообще, без компиляции проверить согласованность всех исходников физически невозможно — если я поменял внешний интерфейс своего модуля, то пока я не загружу в IDE все клиентские модули или не запущу их, я не узнаю, что и где там сломалось.
Здравствуйте, Artem Korneev, Вы писали:
AK>Оно не даёт гарантий. Изрядно помогает, но гарантий не даёт. Вообще, без компиляции проверить согласованность всех исходников физически невозможно — если я поменял внешний интерфейс своего модуля, то пока я не загружу в IDE все клиентские модули или не запущу их, я не узнаю, что и где там сломалось.
Почему не дает гарантий? Чем проверка типов линтером будет отличаться от проверки типов компилятором?
Здравствуйте, varenikAA, Вы писали:
AA>Какой ЯП вы предпочитаете для создания прототипа? AA>Основной или отдельный типа кложы фшарпа? AA>В чем его приемущество перод основным?
Последний раз, когда на работе делал прототип, писал его на Хаскеле. Ибо удобные алгебраические типы и вообще многое короче выходит.
AA>И почему окончательная версия все же на другом ЯП(обстоятельства, иные приемущества)?
Основной проект на D, поэтому когда на прототипе решение нащупал, потом перевел на D и дальше развивал уже там.
Здравствуйте, amironov79, Вы писали:
A>Почему не дает гарантий? Чем проверка типов линтером будет отличаться от проверки типов компилятором?
Про линтер я почему-то не подумал. Да, наверное линтер справится.
Линтер может сделать указание типов обязательным? Выдавать ошибку, если тип не указан.
Здравствуйте, Artem Korneev, Вы писали:
AK>Про линтер я почему-то не подумал. Да, наверное линтер справится. AK>Линтер может сделать указание типов обязательным? Выдавать ошибку, если тип не указан.
Может, у mypy достаточно гибкий конфиг. Может даже динамическую типизацию запретить.