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

Date: 2015-01-11 03:22 pm (UTC)
From: [identity profile] guga50.livejournal.com
продолжение :))

#include
[Error: Irreparable invalid markup ('<windows.h>') in entry. Owner must fix manually. Raw contents below.]

продолжение :))

#include <windows.h >
#include < ole2.h >
#include < stdlib.h>
#include < string.h>
#include < stdio.h>
#include " pshlo.h"
#include "shlo.hxx"
#include "clsid.h"

int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];

// get object path
wcsPath[0] = '\0';
wcsT[0] = '\0';
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {

fprintf(stderr, "Object path must be specified\n");
return(1);
}

// get print string
if(argc > 2)
mbstowcs(wcsT, gv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L"Hello World");

printf("Linking to object %ws\n", wcsPath);
printf("Text String %ws\n", wcsT);

// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

if(SUCCEEDED(hRslt)) {

hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);

if(SUCCEEDED(hRslt)) {

// print a string out
pHello->PrintSz(wcsT);

Sleep(2000);
ulCnt = pHello->Release();
}
else
printf("Failure to connect, status: %lx", hRslt);

// Tell OLE we are going away.
CoUninitialize();
}

return(0);
}
}
}

Date: 2015-01-11 03:22 pm (UTC)
From: [identity profile] toshick.livejournal.com
честно говоря, сначала сам написал, потом прочитал Ваш ответ

вот именно
есть у меня нехорошее подозрение, что автор хранит промежуточные данные не в объявленных переменных/массивах/структурах данных (да, на VBA можно делать связные списки и деревья, настоящие), а в таблицах или в полях форм, например
надо сначала разбираться с этим, а то я сомневаюсь, что там такая молотилка, что время на обработку собственно вычислений имеет какое-то значение

Date: 2015-01-11 03:23 pm (UTC)
From: [identity profile] pssshik.livejournal.com
пруф тесты на скорость с++ и жабы проведем?
From: [identity profile] rodonist.wordpress.com (from livejournal.com)
С++ для чисто вычислительных задач? Можно, конечно, но это точно не для начинающих: слишком легко нахватать ошибок из-за неявного приведения типов.

Date: 2015-01-11 03:26 pm (UTC)
From: [identity profile] ruinternet.livejournal.com
+1 за .net
Кстати, по поводу там выше советовали типа в VBA выпихнуть данные в массивы вместо аксеса... Так мне просто интересны размеры массивов. Или индексные таблицы тоже программно начинать выстраивать?
.net, а если большие объемы данных - поставьте сиквель и выносите обработки в триггеры и процедуры, тогда можно остаться и в аксессе в рамках ADP. У Вас тормоза идут из-за выборок или из-за математики?

Date: 2015-01-11 03:27 pm (UTC)
From: [identity profile] maz-d.livejournal.com
/Но, боюсь, что ни R, ни, тем более, Python не подходят под определение "освоить за 2-3 дня"./

полностью освоить за 2-3 дня ни один язык не получится. Но у питона все же уровень вхождения довольно низкий

Date: 2015-01-11 03:27 pm (UTC)
From: [identity profile] anshdo.livejournal.com
Python -- интерпретируемый язык, никаких преимуществ автору он не даст.

Date: 2015-01-11 03:27 pm (UTC)
From: [identity profile] photo pro (from livejournal.com)
Я бы посоветовал бы перл или питон.
А кстати на каком основании и почему вы утверждаете что нужно обязательно использовать некий сверхбыстрый язык программирование.
Может не в языке дело а в неоптимальном обращении с данными и можно в сотни раз ускорить работу совсем иным спосбом?

Date: 2015-01-11 03:27 pm (UTC)
From: [identity profile] orel41.livejournal.com
Если у Вас случайно окажется matlab )) то это самое оно. Язык простой, научных библиотек много , в том числе и реализаций "генетических" алгоритмов.

Date: 2015-01-11 03:28 pm (UTC)
From: [identity profile] zelych.livejournal.com
Поддерживаю.
Питон уже почти стал стандартным инструментом учёного (вместе с библиотеками типа scipy, biopython).
При изучении нового языка важно иметь удобную среду разработки и возможность быстро получить какие-то результаты.
У питона для этого есть IPython Notebook (http://ipython.org/notebook.html) (там видео, его можно сразу со второй минуты смотреть).

Вот тут подборка ссылок с примерами использования A gallery of interesting IPython Notebooks (https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks)

Среди них, например есть Comparing different approaches to evolutionary simulations (http://nbviewer.ipython.org/github/yoavram/ipython-notebooks/blob/master/simulation%20frameworks.ipynb)
Edited Date: 2015-01-11 03:31 pm (UTC)

Date: 2015-01-11 03:28 pm (UTC)
From: [identity profile] photo pro (from livejournal.com)
>> бейсик охуенен
А регекспы и наследование у него есть? :))))

Date: 2015-01-11 03:29 pm (UTC)
From: [identity profile] stalker-sid.livejournal.com
vba точно поддерживает, да и смешно
что сейчас не поддерживает наследование классов?

Date: 2015-01-11 03:29 pm (UTC)
From: [identity profile] http://users.livejournal.com/__const__/
Не понял, значит, вопроса. Извиняюсь.

Date: 2015-01-11 03:30 pm (UTC)
From: [identity profile] http://users.livejournal.com/__const__/
Вам шашечки или ехать?

Date: 2015-01-11 03:31 pm (UTC)
From: [identity profile] 00000019.livejournal.com
Если чистая математика, и 2-3 дня на переход, то фортран. Математические библиотеки на все случаи жизни еще 40 лет назад написали. Поскольку используется исключительно для математических расчетов есть очень разогнанные версии, есть версии оптимизированные под многопроцессорные системы. Хотя не бесплатно конечно.
Если не нравится, то С++ . По скорости соизмерим с Java. Cреда отладки и всякие визуальные библиотеки от MS вам будет все-таки привычнее чем Java и др.

Если хотите быть в тренде - то Phyton. Но по производительности он на порядок ниже чем Fortran, С++, Java.

Date: 2015-01-11 03:31 pm (UTC)
From: [identity profile] lvqcl.livejournal.com
> а то я сомневаюсь, что там такая молотилка, что время на обработку собственно вычислений имеет какое-то значение

А почему нет? Если популяция большая, и нужно просчитать сотни тысяч поколений... И сделать это сотню раз, чтобы оценить разброс результатов из-за случайностей...

То есть вычисления простые, но их тупо много.

Date: 2015-01-11 03:32 pm (UTC)
From: [identity profile] anshdo.livejournal.com
VB.net
Осваивать вам будет легко, потому, что это ведь тоже Бейсик ;-)
А по быстродействию благодаря JIT-компиляции почти не уступает языкам, компилируемым в нативный код.

Date: 2015-01-11 03:32 pm (UTC)
From: [identity profile] firrior.livejournal.com
Вы преувеличиваете порог вхождения. Трудность в том, чтобы быть программистом, состоит в овладении языком алгоритмов в общем виде. Никак не в синтаксисе конкретного языка программирования.

"Соскочить с Бейсика" не трудно. Трудность в том, что многие люди, овладевшие Бейсиком, языком алгоритмов при этом ухитрились не овладеть. Им придётся учиться другому языку программирования неделями. Автору этого ЖЖ - точно нет.

Date: 2015-01-11 03:33 pm (UTC)
From: [identity profile] lvqcl.livejournal.com
Вам не кажется, что вы сейчас херней занимаетесь, и просто флудите?

Date: 2015-01-11 03:33 pm (UTC)
From: [identity profile] firrior.livejournal.com
Ещё Brainfuck! Клёвый язык. А комменты в коде можно писать на Ыфкуиле.

Date: 2015-01-11 03:33 pm (UTC)
From: [identity profile] photo pro (from livejournal.com)
я давно не видел бейсика, но то что видел 10 лет назад - было просто ужасно.
И напротив, научившись самостоятельно прилично писать на перле, я в свое время даже мог помогать студентам делать лабы на C# не зная его %-))

Date: 2015-01-11 03:35 pm (UTC)
From: [identity profile] natvalbr.livejournal.com
есть компилируемый purebasic (http://www.purebasic.com/ ) Работает под виндой, линуксом и маком. Стоит 80 евро или бесплатно, если кода не больше 800 строк.

Вот несколько ознакомительных статей:
http://habrahabr.ru/post/176123/
http://geektimes.ru/post/64457/

Так же у Майкрософт есть Small Basic: http://smallbasic.com/
- бесплатная книга на русском: http://download.microsoft.com/documents/rus/visualstudio/SmallBasic.pdf
- курс обучения на русском: http://download.microsoft.com/download/F/1/1/F1185FCF-BC8B-475B-88FF-27C050B618FA/SmallBasic_Curriculum_RUS.zip
- руководство: http://download.microsoft.com/download/A/2/6/A260F08E-AD9D-4858-AB0C-EF37083776A0/Introducing%20Small%20Basic.docx
- русскоязычное сообщество: http://smallbasic.ru/

обзорная статья по языкам семейства Basic: http://habrahabr.ru/post/227711/

а так же ещё одно решение на базе языка Basic - Basic4Android: http://habrahabr.ru/post/142758/
то есть решение, позволяющее писать на Basic под мобильную платформу Android.

Date: 2015-01-11 03:35 pm (UTC)
From: [identity profile] zelych.livejournal.com
> А разве не было у вас уже такого поста (или я вас с кем-то похожим путаю).

У [livejournal.com profile] progenes был http://progenes.livejournal.com/250141.html

Date: 2015-01-11 03:35 pm (UTC)
From: [identity profile] meharher.livejournal.com
На Питоне я работал год (после, скажем, примерно 20 лет на всяких языках, включая C/C++/C#/Java etc. , на R последние 6 недель).
Питон труднее шел: было легче читать и поддерживать, но труднее найти нужную конструкцию.
В R, правда, труднее найти нужную биб. функцию :)
Все относительно.

Date: 2015-01-11 03:37 pm (UTC)
From: [identity profile] http://users.livejournal.com/__const__/
Более чем бесплатный: свободный.
А непопулярен, по множеству причин: не имеет «красивой» морды. То есть вообще морды не имеет как таковой, хотя и есть сторонние IDE для него; до довольно недавнего времени сильно отставал в реализации ряда функций; ряд других функций имеют меньшую производительность.
Ну и самая главная причина — инерция мышления.
Та самая, по которой множество людей вместо LaTeX мучаются с Word или, в крайнем случае, не используют OpenOffice.

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