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
поскольку вы - человек умнейший, то справитесь с любым языком, и я бы рекомендовал потратить чуть больше времени, освоив C, C++ или C#, зато потом не иметь проблем.
среда разработки - официально бесплатная Microsoft Visual Studio Express 2013
освоить за 2-3 дня - вполне реально для вас и для тех задач, которые вы назвали: массивы, таблицы - это третья-четвертая лабораторная у студентов, изучающих Си. если с выводом графиков - уже сложнее, но не сильно, если возьмете уже готовый пример такой программы и замените в ней только непосредственно математическую/алгоритм рисования
no subject
мир языков Basic процветает! ;)
http://macroevolution.livejournal.com/186606.html?thread=12744174#t12744174
no subject
В случае C/C++ у меня по крайней мере есть уверенность, что с производительностью будет все так хорошо, как только возможно (ну, ассемблер, еще круче - но только в теории, уж слишком много тонкостей). В "сях" тонкость по большому счету одна - не забыть включить режим Release после отладки :)
Ну и я взялся бы помочь советом по ходу дела - в разумных объемах, но бесплатно - чисто как уважаемому человеку.
no subject
знаете разницу между этими двумя строчками по производительности:
cout << "text" << std::endl;
cout << "text" << "\r\n";
no subject
no subject
а много ли об этом кто знает?
no subject
а в других языках? ;)
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)
(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();
no subject
std::vector some_function();
...
auto res = some_function();
no subject
Вы забыли уточнить, что "чуть больше времени" на C++ это примерно три года.
no subject
no subject
А три года нужно чтобы на С++ научиться делать что-нибудь такое за приемлемое время: http://nbviewer.ipython.org/github/barbagroup/AeroPython/blob/master/lessons/06_Lesson06_vortexLift.ipynb
no subject
no subject
no subject