Панимаш, некоторые фапают на ынтерпрайзеность. Отсюда и начинается разногласие. Еще могут и на мой камент ответить, мол, я чушь несу, и там вон или там вон без интерпрайзности ну никак, иначе ж обезьяны попутаются даже используя IDE какую ф-цию вызывать. Им классы подавай.
толсто-то оно толсто, только вот идея сайта как раз в попытке адекватного спора по поводу вопросов, которые даже на лоре считааются вбросами и не обсуждаются
у холиварщиков теперь еще и тулза появилась ))))). Отрицать ФП (или отказываться) ровнозначно как если бы мы не признавали эволюцию. Идиотизм же. Все языки эволюционируют в сторону ФП ибо сложность систем растет, а ресурсы человеческие нет. Посему обрастаем абстракциями и шаблонами. Кому не нравится, могут обратно деградировать в сторону ассемблера.
толсто-то оно толсто, только вот идея сайта как раз в попытке адекватного спора по поводу вопросов, которые даже на лоре считааются вбросами и не обсуждаются
Идея интересная, но изначально провальная. Вопрос что лучше, моча или говно, изначально религиозный, а значит никакие доводы в нём не могут считаться верными.
Если программа хорошо работает - какая разница, на чем она там написана?
Разница возникает, когда надо найти людей, способных понять
исходый код этой самой программы, и что-то доработать/поменять. Или если возникает потребность запускать программу на некоей архитектуре, а компилятор/интерпретатор/среда_исполнения не поддеживает такую архитектуру вообще, или не поддерживает достаточно хорошо(генерирует медленный код например). Программы на языках с жирной средой выполнения (.NET, JVM, Node.JS etc) тратят ресурсы процессора и дополнительную память (сборка мусора там всякая, JIT). Задержки, возникающие при сборке мусора, могут быть критичны для некоторых применений, когда требуется реалтаймовость. Или противополжный случай. Если программа написана на ассемблере, у нее будет околонулевая переносимость, что тоже плохо.
Так что есть случаи, когда то, на чем программа написана, имеет большое значение
Задержки, возникающие при сборке мусора, могут быть критичны для некоторых применений, когда требуется реалтаймовость.
Для тебя, наверное, это будет шоком, но существуют системы реального времени со сборкой мусора. Начиная от Erlang (да-да, его ради soft real-time приложений и создавали) и заканчивая жабой.
Разница возникает, когда надо найти людей, способных понять исходый код этой самой программы, и что-то доработать/поменять. Или если возникает потребность запускать программу на некоей архитектуре, а компилятор/интерпретатор/среда_исполнения не поддеживает такую архитектуру вообще, или не поддерживает достаточно хорошо(генерирует медленный код например). Программы на языках с жирной средой выполнения (.NET, JVM, Node.JS etc) тратят ресурсы процессора и дополнительную память (сборка мусора там всякая, JIT). Задержки, возникающие при сборке мусора, могут быть критичны для некоторых применений, когда требуется реалтаймовость.
Если компилятор не поддерживает архитектуру - программа у тебя не работает. Я же говорил о том, что если она работает - тебе, в целом, пофиг.
для диванных теоретиков с лора вроде меня он и правда скорее религиозный, но бывают люди, которые могут совершить выбор и при этом нормально его аргументировать. даже в случае с такими заезженными и «религиозными» темами
Для тебя, наверное, это будет шоком, но существуют системы реального времени со сборкой мусора. Начиная от Erlang (да-да, его ради soft real-time приложений и создавали) и заканчивая жабой.
Нет, не будет. Насчет Erlang не знаю, а что касается Java, то для жабы там есть Jrockit с этим самым GC для реалтайма, так там говорили о каком-то огромном оверхеде по сравнению с классическим сборщиком мусора (да, там такая опция есть XpauseTarget - которая выставляет время, разрешенное под сборку мусора) но это все костыли, надо для таких задач выбирать другой инстумент
Если компилятор не поддерживает архитектуру - программа у тебя не работает. Я же говорил о том, что если она работает - тебе, в целом, пофиг.
Где-то(на мощном железе с кучей RAM и мощным процессором, под который компилятор хорошо заточен) программа работает, но возникла необходимость заставить ее работать на другой архитектуре - а она не работает или работает плохо. Так что если предполагается в будущем использовать программу не только на мощном ширпотребном железе(вроде x86-64), имеет смысл выбирать правильный язык, а не писать на чем попало.
Питон лучше руби. Первый применяется и для наколенных скриптов, и для веба и для гуя. Руби же пользуются хипстеры, чтобы писать свои стартапы на реилс с облаками и шардингом.
для жабы там есть Jrockit с этим самым GC для реалтайма, так там говорили о каком-то огромном оверхеде по сравнению с классическим сборщиком мусора (да, там такая опция есть XpauseTarget - которая выставляет время, разрешенное под сборку мусора) но это все костыли
Почему костыли? Сборка мусора в отведённый период укладывается? Укладывается. Другие задачи время получают? Получают. Вот тебе и реальное время.
Почему костыли - потому что вместо того, чтобы взять более подходящий инструмент для решения задачи, начинают выдумывать всякий бред. И это мягкое реальное время. И в микроконтроллер это не засунуть. Слишком уж дофига ограничений у такого подхода
Это и есть более подходящие инструменты. Они позволяют сэкономить на управлении памяти и трудозатратах со стороны программиста.
Подходящие для кого/чего? Это более подходящие инструменты, если нам проще на тяп-ляп сделать побыстрее программную часть(не тратя время на ручное управление памятью), только потом на аппаратную часть придется раскошелиться (больше памяти и быстрее контроллер, чтобы он этот GC успевал пережевывать c сохранением реалтаймовости).