macroevolution: (anomalocaris)
macroevolution ([personal profile] macroevolution) wrote2015-01-11 02:41 pm

Посоветуйте язык программирования

Я всю жизнь программировал только на бейсике, на разных его версиях.  Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.

[identity profile] psilogic.livejournal.com 2015-01-11 04:56 pm (UTC)(link)
конечно - flush буфера и без flush-а

[identity profile] natvalbr.livejournal.com 2015-01-11 05:05 pm (UTC)(link)
ну вот :)
а много ли об этом кто знает?

[identity profile] psilogic.livejournal.com 2015-01-11 05:09 pm (UTC)(link)
встречный вопрос - а много ли еще таких наколок?

а в других языках? ;)

[identity profile] natvalbr.livejournal.com 2015-01-11 06:06 pm (UTC)(link)
великое множество :(

std::vector res = some_function();

непрофессионал то поймёт что тут происходит и что сделали в С++11?

С++ - это ужасный язык из-за своей свободы.
А если у вас команда из 50-70 программистов да у которых разный уровень мастерства, то 500-800 багов в месяц вам гарантирован. По личному опыту.

[identity profile] psilogic.livejournal.com 2015-01-11 06:15 pm (UTC)(link)
уж чего чего, а свободы во всяких интерпретаторах выше крыши :)

ваш пример я не понял - обычный си-компилятор его просто обругает, а в 11 с auto вроде другой синтаксис. просветите?

[identity profile] natvalbr.livejournal.com 2015-01-11 07:15 pm (UTC)(link)
так я не сказал, что интерпретируемые языки лучше...

я пример про С++ приводил. И имел ввиду про копирование результата и "move operator" в С++11.

auto тут совсем ни при чём.

[identity profile] psilogic.livejournal.com 2015-01-11 07:47 pm (UTC)(link)
Ваш пример из совершенно другой проблемы. Если у вас есть коллектив программистов - у каждого свои привычки, стиль, профессиональные верования, аналогичные религиозным - у вас, конечно, возникнут какие-то трудности, с этим связанные, вам придется их так или иначе решать, и язык, конечно, где-то будет вам помогать, а где-то нет.

Но если вы - сам по себе, вы новичок, и вам не до экспериментов, а надо делать практическое дело - то достаточно просто четко понимать, что именно вы пишете и не писать конструкции, смысл которых вы не понимаете до конца. И тогда многие вопросы типа auto res = отпадут - просто потому, что вы не будете использовать move оператор, пока не разобрались, что это такое.

C++, конечно, много свободы предоставляет, но, если вы сами себе не злой буратина, то просто будете использовать какую-то его часть, которую знаете. В большом коллективе, естественно, это не сработает.

[identity profile] natvalbr.livejournal.com 2015-01-11 10:48 pm (UTC)(link)
Это проблема языка.

Интересно, у фрезировщиков и токарей тоже свои стили да профессиональные верования? :) не смешите. Программирование - это не искусство, а ремесло предназначенное для создания продуктов.

Повторюсь, новичок в слесарном деле может сделать какую-нибудь отсебятину - типа, в мотор запихнуть глушитель? Так же должно быть и в ИТ. Хватит делать из программистов каких-то небожителей и творческих жителей питающихся хамоном.

И тут мы приходим к сопровождению старого кода разными программистами. Должно быть так чтобы программист не мог нагадить в код по незнанию. А такие проблемы происходят каждый день!

Да-да-да. Только вот мало кто помнит, что добрый компилятор вам на отсутствие конструкторов сам всё создаст и у вас просто физически не получится «использовать какую-то его часть, которую знаете». Надо знать всё и видеть подводные камни!

[identity profile] psilogic.livejournal.com 2015-01-11 11:04 pm (UTC)(link)
Фрезеровщики, слесари... аналогии - плохой признак в дискуссии :) Тем более, когда конкретный предмет вполне понятен и без аналогий. При чем тут сопровождение? Мы про управление большим коллективом профессиональных кодеров говорим или про какие-то философские вопросы о хамоне или про скромные и практические потребности одного доктора наук, причем, естественных? Вы уж определитесь - т.к. вопросы сильно разные. :)

С конструкторами все в порядке - когда про оператор присваивания в учебникех пишут учат, там это все говорится.

[identity profile] natvalbr.livejournal.com 2015-01-11 11:11 pm (UTC)(link)
говорится, только НИКТО не помнит этого после того как отучились, а потом вылавливаем баги!

мои примеры довольно хорошо отражают суть проблемы!

У вас код пишется раз, без ошибок и забывается? Вам больше новых чудных решений не надо реализовывать в зависимости от новых требований менеджеров да UX-специалистов? Как вам повезло то!

Вопрос один - как из детского сада IT в разработке продуктов сделать нормальную технологичную отрасль! Всё остальное - следствие. В СССР пытались решить эту задачу.

[identity profile] psilogic.livejournal.com 2015-01-11 11:18 pm (UTC)(link)
За всех не говорите, я про конструкторы помню.

Что касается остального - при чем тут тема?

Или просто вы поняли, что я вас внематочно слушаю и, так сказать, решили выговориться о наболевшем? :)

[identity profile] natvalbr.livejournal.com 2015-01-11 11:47 pm (UTC)(link)
вы - исключение :) Приятное!

я к тому, что я даже не знаю как назвать человека, который советует учёному учить С++ язык.

[identity profile] psilogic.livejournal.com 2015-01-11 11:49 pm (UTC)(link)
Так не весь, а только необходимый кусочек.

И я знаю, о чем говорю: у меня у самого в юности первым языком был бейсик, а вторым - угадайте, какой :)

[identity profile] natvalbr.livejournal.com 2015-01-11 11:57 pm (UTC)(link)
таки, аналогично про языки. Не знаю про вас, но я профессионально занимаюсь разработкой программ уже 20 лет. Но я не занимаюсь биологией! Думаю, вы тоже.

И советовать этот язык биологам - это вредительство, как минимум.

[identity profile] psilogic.livejournal.com 2015-01-12 12:01 am (UTC)(link)
Ну так ведь и я сразу после школы не занимался профессионально разработкой программ, т.е. опыт был минимальный, но Турбо-Си пошел как по маслу - просто попала в руки книжка (не самая лучшая), а студентам разрешали доступ к классу IBM-PC-шек.

[identity profile] maz-d.livejournal.com 2015-01-12 05:38 pm (UTC)(link)
/ у фрезировщиков и токарей тоже свои стили да профессиональные верования? /

да =)

[identity profile] natvalbr.livejournal.com 2015-01-12 06:32 pm (UTC)(link)
знатно пошутили :)
хотел бы взглянуть хоть на одного токаря со своим стилем изготовления детали... а ещё на инженера, который будет принимать работу.

[identity profile] maz-d.livejournal.com 2015-01-12 06:36 pm (UTC)(link)
я не шутил, я действительно видел =) на токарном станке можно работать по разному, вас же не удивляет, что можно по разному водить машину.

[identity profile] natvalbr.livejournal.com 2015-01-12 07:18 pm (UTC)(link)
не знаю, что вы видели, но технологически деталь можно и нужно делать в определённой последовательности операций и никак иначе!

[identity profile] maz-d.livejournal.com 2015-01-12 07:50 pm (UTC)(link)
а водить нужно строго по правилам ПДД! что не отменяет того, что разные люди водят по разному, в том числе и с нарушением правил ПДД.

Даже с соблюдением технологии можно работать на разных оборотах, можно подводить резец к детали плавно, можно резко, можно следить за рабочим местом, а можно оставлять засраным стружкой и маслом. А уж если говорить о нарушении технологии, то тут вообще богатое пространство для маневра. Например можно работать в режимах убийственных для станка, причем это никак не скажется на качестве детали. И от самой детали вовсе не требуется 100% точности, там есть допуски и посадки которые могут быть как в плюс так и в минус от номинального размера. И у одного токаря размеры будут все время уходит в плюс у дургого в минус, притом что формально и та и та деталь будут соответствовать норме.

А можно еще нажраться спиртом =)

[identity profile] natvalbr.livejournal.com 2015-01-12 08:19 pm (UTC)(link)
так сразу и сказали бы, что вы НИЧЕГО не знаете в машиностроении!

Подводить резец на разных оборотах НЕЛЬЗЯ, так же нельзя подводить быстро или плавно.

Видать, вы видели как деревянные заготовки изготавливают в школе, да? :)

Что вы знаете о допусках, молодой человек? Наверное, думаете, там километры или сантиметры, на худой конец, да?

В общем, поищите нормального технолога. Он вам всё объяснит про ваши заблуждения.

(no subject)

[identity profile] maz-d.livejournal.com - 2015-01-12 20:39 (UTC) - Expand

(no subject)

[identity profile] natvalbr.livejournal.com - 2015-01-12 20:46 (UTC) - Expand

(no subject)

[identity profile] maz-d.livejournal.com - 2015-01-12 20:50 (UTC) - Expand

(no subject)

[identity profile] natvalbr.livejournal.com - 2015-01-12 20:52 (UTC) - Expand

[identity profile] guga50.livejournal.com 2015-01-11 06:34 pm (UTC)(link)
>> std::vector res = some_function();

в вектор res будет засунуто значение функции, при этом пофигу какой тип она возвращает. (ну тоесть он отныне будет тем типом который она в него вернёт)
при этом он ещё и неизменяемым будет.
Edited 2015-01-11 18:37 (UTC)

[identity profile] natvalbr.livejournal.com 2015-01-11 07:18 pm (UTC)(link)
эээээ...

я имел ввиду, что до С++11, функция возвращающая значение std::vector (не reference) - будет копирование данных. В С++11 придумали "move operator" для того чтобы не копировать данные.

[identity profile] natvalbr.livejournal.com 2015-01-11 07:19 pm (UTC)(link)
правильнее, конечно надо было написать так:

std::vector some_function();
...
auto res = some_function();

[identity profile] natvalbr.livejournal.com 2015-01-11 07:20 pm (UTC)(link)
правильнее, конечно надо было написать так:

std::vector some_function();
...
auto res = some_function();