macroevolution (
macroevolution) wrote2015-01-11 02:41 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Посоветуйте язык программирования
Я всю жизнь программировал только на бейсике, на разных его версиях. Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.
no subject
std::vector res = some_function();
непрофессионал то поймёт что тут происходит и что сделали в С++11?
С++ - это ужасный язык из-за своей свободы.
А если у вас команда из 50-70 программистов да у которых разный уровень мастерства, то 500-800 багов в месяц вам гарантирован. По личному опыту.
no subject
ваш пример я не понял - обычный си-компилятор его просто обругает, а в 11 с auto вроде другой синтаксис. просветите?
no subject
я пример про С++ приводил. И имел ввиду про копирование результата и "move operator" в С++11.
auto тут совсем ни при чём.
no subject
Но если вы - сам по себе, вы новичок, и вам не до экспериментов, а надо делать практическое дело - то достаточно просто четко понимать, что именно вы пишете и не писать конструкции, смысл которых вы не понимаете до конца. И тогда многие вопросы типа auto res = отпадут - просто потому, что вы не будете использовать move оператор, пока не разобрались, что это такое.
C++, конечно, много свободы предоставляет, но, если вы сами себе не злой буратина, то просто будете использовать какую-то его часть, которую знаете. В большом коллективе, естественно, это не сработает.
no subject
Интересно, у фрезировщиков и токарей тоже свои стили да профессиональные верования? :) не смешите. Программирование - это не искусство, а ремесло предназначенное для создания продуктов.
Повторюсь, новичок в слесарном деле может сделать какую-нибудь отсебятину - типа, в мотор запихнуть глушитель? Так же должно быть и в ИТ. Хватит делать из программистов каких-то небожителей и творческих жителей питающихся хамоном.
И тут мы приходим к сопровождению старого кода разными программистами. Должно быть так чтобы программист не мог нагадить в код по незнанию. А такие проблемы происходят каждый день!
Да-да-да. Только вот мало кто помнит, что добрый компилятор вам на отсутствие конструкторов сам всё создаст и у вас просто физически не получится «использовать какую-то его часть, которую знаете». Надо знать всё и видеть подводные камни!
no subject
С конструкторами все в порядке - когда про оператор присваивания в учебникех пишут учат, там это все говорится.
no subject
мои примеры довольно хорошо отражают суть проблемы!
У вас код пишется раз, без ошибок и забывается? Вам больше новых чудных решений не надо реализовывать в зависимости от новых требований менеджеров да UX-специалистов? Как вам повезло то!
Вопрос один - как из детского сада IT в разработке продуктов сделать нормальную технологичную отрасль! Всё остальное - следствие. В СССР пытались решить эту задачу.
no subject
Что касается остального - при чем тут тема?
Или просто вы поняли, что я вас внематочно слушаю и, так сказать, решили выговориться о наболевшем? :)
no subject
я к тому, что я даже не знаю как назвать человека, который советует учёному учить С++ язык.
no subject
И я знаю, о чем говорю: у меня у самого в юности первым языком был бейсик, а вторым - угадайте, какой :)
no subject
И советовать этот язык биологам - это вредительство, как минимум.
no subject
no subject
да =)
no subject
хотел бы взглянуть хоть на одного токаря со своим стилем изготовления детали... а ещё на инженера, который будет принимать работу.
no subject
no subject
no subject
Даже с соблюдением технологии можно работать на разных оборотах, можно подводить резец к детали плавно, можно резко, можно следить за рабочим местом, а можно оставлять засраным стружкой и маслом. А уж если говорить о нарушении технологии, то тут вообще богатое пространство для маневра. Например можно работать в режимах убийственных для станка, причем это никак не скажется на качестве детали. И от самой детали вовсе не требуется 100% точности, там есть допуски и посадки которые могут быть как в плюс так и в минус от номинального размера. И у одного токаря размеры будут все время уходит в плюс у дургого в минус, притом что формально и та и та деталь будут соответствовать норме.
А можно еще нажраться спиртом =)
no subject
Подводить резец на разных оборотах НЕЛЬЗЯ, так же нельзя подводить быстро или плавно.
Видать, вы видели как деревянные заготовки изготавливают в школе, да? :)
Что вы знаете о допусках, молодой человек? Наверное, думаете, там километры или сантиметры, на худой конец, да?
В общем, поищите нормального технолога. Он вам всё объяснит про ваши заблуждения.
no subject
придите в цех и посмотрите как работают реальные токари и фрезировщики. Заодно можете им рассказать про технологов, если они вас не пошлют конечно.
no subject
no subject
no subject
no subject
в вектор res будет засунуто значение функции, при этом пофигу какой тип она возвращает. (ну тоесть он отныне будет тем типом который она в него вернёт)
при этом он ещё и неизменяемым будет.
no subject
я имел ввиду, что до С++11, функция возвращающая значение std::vector (не reference) - будет копирование данных. В С++11 придумали "move operator" для того чтобы не копировать данные.
no subject
std::vector some_function();
...
auto res = some_function();