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

Date: 2015-01-11 08:28 pm (UTC)
From: [identity profile] guga50.livejournal.com
ну пральна. тмп то уничтожилось. хэкс продолжает показывать в никуда.

не, ну знаете... с дури можно х сломать...

Date: 2015-01-11 08:29 pm (UTC)
From: [identity profile] aleksclan.livejournal.com
уже почти новый, хоть и без некоторых функций

Date: 2015-01-11 08:37 pm (UTC)
From: [identity profile] gene f null (from livejournal.com)
Вы удивитесь, но жив также и Delphi и есть возможность портировать код на мобильные девайсы на андроиде и макоси. Особенно интересны возможности Delphi XE 7, например. А в связке с Devexpress компонентами - так вообще супер красивые и быстрые приложения

Date: 2015-01-11 08:39 pm (UTC)
From: [identity profile] psilogic.livejournal.com
ну во а если есть GC, то tmp не уничтожилось и программер может долго не осознавать, что то, что он делает - дурь :)

Date: 2015-01-11 08:44 pm (UTC)
From: [identity profile] aleksclan.livejournal.com
ладно, на чём-таки сошлись ?
АЛГОЛ или Фортран

Date: 2015-01-11 08:45 pm (UTC)
From: [identity profile] toshick.livejournal.com
а Вы краевые строчки и столбцы в результате не заполняете ;-)

я же не оптимизирую, а в лоб делаю проверки как школьник ;-)

комп - похоже, для этих параметров размер памяти важен, на 8 GB задача ложится в оперативку полностью, а у меня - легла бы, если бы я комп перезагрузил перед запуском XL

> а если не угадали, то вместо одной ночи расчётов человек будет ждать неделю, например...

гадание на кофейной гуще - наше все !

Date: 2015-01-11 08:48 pm (UTC)
From: [identity profile] fnbpunk.livejournal.com
Если есть что-то, что используется для обработки огромных массовов данных - это deep learning. Крупнейшая библиотека для deep leaning Caffe (Berkley University) написана исключительно в пайтоне, и для этого есть причины. Все kaggle machine learning competitions выиграны программами, написанными в пайтоне.
Таким образом, пайтон прекрасен для работы с большими массивами данных.

И он вполне быстр, так как при программировании в пайтоне можно использовать библиотеки фортрана и других low level languages - он использует их автоматически, и Вам не нужно ничего знать, кроме пайтона.

Date: 2015-01-11 08:50 pm (UTC)
From: [identity profile] uborshizzza.livejournal.com
Пардон, не туда кинул
Edited Date: 2015-01-11 08:51 pm (UTC)

Date: 2015-01-11 08:50 pm (UTC)
From: [identity profile] uborshizzza.livejournal.com
Visual Basic .NET
Тем более что мелкософты бесплатно предоставляют версию, из которой выкинуты только примочки для коллективной работы.

Концепция программирования, конечно, изменилась кардинальным образом. Однако это касается только объектно-ориентированного программирования, а если писать руками как прежде, то практически ничего не изменится.

Несколько изменилась работа с файловой системой, появились потоки ввода-вывода, но старый стиль работы для обеспечения совместимости с открытием каналов работает по-прежнему.

Очень сильно изменилась графика, но если Вы не выводите графики в форму, а пишите данные в файл, то это - неважно.

Зато - куча плюсов. Включая отличную систему отладки и массивы огромного и динамически изменяемого размера.

Date: 2015-01-11 09:22 pm (UTC)
From: [identity profile] mynine.livejournal.com
Мнда, самое главное я не уточнил, Александр, вы на какую длительность выполнения программы рассчитываете?
Если минуты, то язык пофигу.
Если часы, то только компилируемые
Если дни и дольше, только C/C++ или на худой конец Java. Причем надо будет собирать с максимальной оптимизацией.

Date: 2015-01-11 09:39 pm (UTC)
From: [identity profile] bantaputu.livejournal.com
Алгол-60. Лучший язык, не считая коровьего - с хреном.

Date: 2015-01-11 09:41 pm (UTC)
From: [identity profile] aosypov.livejournal.com
посмотрите DPL под Perl

Date: 2015-01-11 09:41 pm (UTC)
lxe: (письмо с дороги)
From: [personal profile] lxe
Для барышень и туристов - Maven. Ищет и качает.

Date: 2015-01-11 09:44 pm (UTC)
lxe: (письмо с дороги)
From: [personal profile] lxe
"Дурацкий калькулятор, не дает складывать землекопов с метрами".

Date: 2015-01-11 09:49 pm (UTC)
From: [identity profile] aosypov.livejournal.com
Прекрасный ответ, но.
Сравните скорость _безопасного_ программирования на условном С и условном Перле.
Зачем человеку геморрой в виде всех проблем с памятью, переполнением и т.п.?
Перл + ПДЛ или Питон с НамПи или Р с кондуктором - быстро для освоения, быстро для написания и быстро для исполнения.

Date: 2015-01-11 09:49 pm (UTC)
From: [identity profile] agalakhov.livejournal.com
А очень просто. Если эта штука - объект, то она наверняка где-то конструируется и где-то уничтожается. Конструируют ее скорее всего не вместе с классом, а позднее - там, где в первый раз присвоили. На C++ это приводит к примерно такому коду:

class Foo {
public:
Foo() : x(nullptr) { }
~Foo() { if (x) delete x; }
void do() {
x = new int(42);
...
}
private:
int* x;
};

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

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

Date: 2015-01-11 09:50 pm (UTC)
lxe: (письмо с дороги)
From: [personal profile] lxe
У меня сложилось впечатление, что автор проводит на нас хитрый натурный эксперимент.

Date: 2015-01-11 09:50 pm (UTC)
From: [identity profile] aosypov.livejournal.com
Матлаб ОЧЕНЬ медленный. Не компенсирует Бейсик.

Date: 2015-01-11 09:53 pm (UTC)
From: [identity profile] pssshik.livejournal.com
Скорее один калькулятор для метров, другой для землекопов. иначе будь добр уточнять, что и метры и землекопы - калькулируемые. А если землекопы пришли к тебе из чужой библиотеки - делай фуфайку "калькулируемая фуфайка землекопа", одевай каждого землекопа в фуфайку и считай их по фуфайкам.

Date: 2015-01-11 09:54 pm (UTC)
From: [identity profile] maz-d.livejournal.com
1) плохо написанная программа на любом языке может быть медленнее чем хорошо написанный на любом языке=)
2)узким местом может быть то как хранятся и вытягиваются данные а не код.

Date: 2015-01-11 09:54 pm (UTC)
From: [identity profile] int19h.livejournal.com
>> а VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее.

Для озвученных целей - однозначно Python. Только не сам по себе, а в комплекте со стеком NumPy+SciPy+Pandas, плюс библиотеки для вашего домена (возможно, BioPython)?

И не смотрите на то, что он интерпретируемый. Модули-то для него пишут на C, и они как раз быстрые, а вашей задачей будет их склеить вместе, там скорость уже не важна.

Еще посмотрите в сторону IPython Notebook. Особенно если вы этот код пишете не просто для себя, а он пойдет в какую-то статью или иную работу. На Западе быстро становится стандартом для подобного рода вещей.

Date: 2015-01-11 09:56 pm (UTC)
From: [identity profile] int19h.livejournal.com
Переход с VB на VB.NET отнюдь не тривиален, это разные по сути языки с местами похожим синтаксисом.

Date: 2015-01-11 09:59 pm (UTC)
From: [identity profile] int19h.livejournal.com
В том блоге, на который вы сослались, слово NumPy не упоминается вообще - что делает его выводы абсолютно неинтересными.

Да, сам по себе Питон - медленная штука (хотя есть и PyPy, и всякая экзотика вроде Cython, которые частично решают эту проблему). И поэтому он используется не напрямую для работы над данными, а для удобного вызова библиотек, которые уже написаны на C и Фортране, и молотят эти данные очень быстро, с векторизацией, использованием GPU и всем таким прочим. На Питоне по сути контролируются только входы и выходы, ну и первоначальная/финальная обработка с приведением оных в требуемый вид.

Date: 2015-01-11 10:00 pm (UTC)
From: [identity profile] agalakhov.livejournal.com
Ну тогда и брать лучше не Delphi, а виртовский паскаль без расширений, с незамутненным синтаксисом. Тут правда две проблемы возникает: с инструментарием - с надежными и переносимыми компиляторами паскаля сейчас все плохо, не нужны они никому, и с floating point - соответствие стандарту IEEE не гарантируется нигде, поэтому такие хорошие вещи, как алгоритм суммирования Кэхэна, могут не работать, и скорее всего и не будут работать. (Алгоритм Кэхэна накладывает очень жесткие ограничения на оптимизатор компилятора).

Если уж писать на семействе алгола-паскаля, то лучше сразу брать Ada - синтаксис почти не отличается от синтаксиса Паскаля, изучать так же просто, инструментарий великолепный (военная надежность!), правильность работы гарантируется, язык стандартизирован и потому переносим (нет привязки к версии компилятора). Формально верифицировать код легко. К тому же есть магическая поддержка многопоточности - есть параллельный вариант for, можно заменой одного слова превратить цикл в параллельный и считать на всех ядрах сразу. Если выбирать между изучением Delphi и изучением Ada, тогда однозначно Ada. Иное дело, что сам выбор семейства алгола-паскаля спорный, но это уже совсем другая история.

Date: 2015-01-11 10:01 pm (UTC)
From: [identity profile] phlya.livejournal.com
Python старше R на 2 года, и коммьюнити огромное. Постите код на stackoverflow, там очень хорошо с питоном помогают.

January 2019

S M T W T F S
  12345
6789101112
1314 1516171819
20212223242526
2728293031  

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 8th, 2026 03:49 pm
Powered by Dreamwidth Studios