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

Date: 2015-01-11 05:51 pm (UTC)
From: [identity profile] kotomord82.livejournal.com
Меня больше удивило, что никто не предложил brainfuck (на его изучение действительно нужно меньше 2-3 дней при любом бэкграунде)

Date: 2015-01-11 05:53 pm (UTC)
From: [identity profile] guga50.livejournal.com
я ещё раз говорю. сделайте один класс и работайте внутри него. используйте воид методы. тогда методы превращаются по сути в подпрограммы если по бэйсиковски, а свойства в простые переменные. всё! в чём проблема?

Date: 2015-01-11 05:56 pm (UTC)
From: [identity profile] lvqcl.livejournal.com
С++ подходит, C++ Builder 5 - нет.

Date: 2015-01-11 05:59 pm (UTC)
From: [identity profile] lanrusa.livejournal.com
Написал кучу вычислительных программ, не использующих объекты. Не нашел ничего сложнго...

Date: 2015-01-11 05:59 pm (UTC)
From: [identity profile] combinator30.livejournal.com
Если реально важна скорость вычислений, то для имитационного моделирования я бы посоветовал С/С++. В своё время, зная до этого только Бэйсик, я освоил азы, вполне достаточные для написания программ имитационного моделирования средней сложности где-то за неделю. Потом эту библиотеку можно будет вызывать хоть из Бэйсика, хоть из Питона, хоть из Джавы.

Date: 2015-01-11 06:00 pm (UTC)
From: [identity profile] natvalbr.livejournal.com
не стоит зазнаваться... я сам уже 20 лет пишу на С++ под разные платформы и с разными фреймворками.

Но даже сейчас так не считаю по поводу бейсика.

Date: 2015-01-11 06:01 pm (UTC)
From: [identity profile] kaban-v-woke.livejournal.com
Это ещё почему?)) В каком месте С++ в билдере не соответствует спецификации C++?)))

Date: 2015-01-11 06:02 pm (UTC)
From: [identity profile] ateregulov.livejournal.com
потому что вы на нем не пишете, а трепаться о чем не знаешь - это уже несколько неприлично

Date: 2015-01-11 06:02 pm (UTC)
From: [identity profile] natvalbr.livejournal.com
на чём вы там пытались программировать?

сейчас "for fun" решил посмотреть PureBasic - всё есть. Какие у вас там вопросы то есть? ;)

Date: 2015-01-11 06:03 pm (UTC)
From: [identity profile] natvalbr.livejournal.com
бааа, да у вас поди есть хрустальный шар :)

Date: 2015-01-11 06:05 pm (UTC)
From: [identity profile] photo pro (from livejournal.com)
Нет, дебил, у меня просто 80 мп RAW из фотоаппарата, а при обработке кадры могут быть до 270 мегапиксел многослойными 16бит.
сравни со своим вшивым 2мп hd-видеосигналом.

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

Яваскрипт для вебстранички здесь конечно очень поможет рассчетам )))))))) (я подозреваю что обьем данных просто даже не влезет в оперативку стандартного 64-бит интела без свопирования и ацких тормозов)

Date: 2015-01-11 06:06 pm (UTC)
From: [identity profile] guga50.livejournal.com
>> Обычно это бывает, если программист ленится передавать переменную через параметры функции и потому делает переменную членом класса. Такая практика - вообще очень большое зло, но на языках без GC программист очень быстро получает по лбу граблями от деструктора этой переменной

не понял, если честно. это как?

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

std::vector res = some_function();

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

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

Date: 2015-01-11 06:07 pm (UTC)
From: [identity profile] ateregulov.livejournal.com
ок, сколько на нем опенсорсных проектов на гитхабе? какие-то ORM, веб-фреймворки, решения для работы с вебсокетами?

если ваш прикладно

Date: 2015-01-11 06:08 pm (UTC)
From: [identity profile] dimaviolinist.livejournal.com
Плюсую. Экспортировать таблицы из Access в MS SQL, написать хранимые процедуры (не составит труда для человека, который может писать на VBA :), методом прямого переноса, просто подставляя нужный другой синтаксис, даже не вникая в суть языка перенести логику и вуаля, всё летает.

Date: 2015-01-11 06:08 pm (UTC)
From: [identity profile] ateregulov.livejournal.com
если ваш прикладной уровень ограничивается оперированием массивами, то нам не о чем разговаривать

Date: 2015-01-11 06:11 pm (UTC)
From: [identity profile] provocateur-b.livejournal.com
Да 270 МП это целых шесть секунд HD-видео. Я же говорю - сильный процессор. И не крутость вовсе, а профессия. Я вас понял, не стоит так страдать.

Date: 2015-01-11 06:11 pm (UTC)

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

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

Date: 2015-01-11 06:19 pm (UTC)
From: [identity profile] mifromru.livejournal.com
>Просто тупо аллокейтить памяти для данных в си - это совсем не сложно. Ни для кого.

Ну да :) Не сложно. malloc, calloc, free...
И большинство ошибок в программах на C и C++ связанны с указателями, с такой простой вещью.
Потому что одно дело "знать об адресе" и о malloc/free, а другое дело управлять всем зоопарком указателей, который к алгоритму никакого отношения не имеет.
И ладно еще, если ошибка приводит к немедленному сваливанию программы (что бывает далеко не всегда). Нередко все приводит к тому, что вы сталкиваетесь с неожиданными данными в неожиданном месте всего лишь потому, что где-то (как вариант) ошиблись с индексом, скажем, в двухмерном массиве (а такая структура данных вполне обычна для расчетных задач, и не нужно никаких списков). И на стеке вы сможете задать лишь массивы фиксированной размерности, и если они вас не устроили - добро пожаловать в мир указателей со всеми его прелестями.
Которые не сложные (особенно если вы уже собаку съели на расшифровке определений типов в C), но на грабли которых все налево и направо наступают.
А найти более менее сложную программу (даже коммерческую), которая написана на C и при этом не страдает от утечек памяти хотя бы... Ну может это и возможно, но это не типично для таких программ.

По этому C нормально использовать там, где указатели именно требуются, а если есть возможность обойтись и без них - что угодно, только не C/С++.

До той же CUDA можно и на Java достучаться, к примеру. Но при этом прийдется вылавливать только ошибки, связанные с алгоритмом, и не тратить время на лозоходство по программе в поисках ошибок в работе с памятью.

Date: 2015-01-11 06:20 pm (UTC)
From: [identity profile] aksuramax2.livejournal.com
Подчеркиваю, я - не программист.
Но насколько я помню, транслятор - это общее название.
И компиляторы, и интерпретаторы - все они как раз таки трансляторы.

А у меня на БК-0010-01 стоял вот какой транслятор Бэйсика: после запуска достаточно объемной программы он "молчал" несколько секунд, а потом начинал работать - со скоростью на порядок выше, чем привычные мне до этого Бэйсики. Со скоростью Фортрана или Си.

Date: 2015-01-11 06:21 pm (UTC)
From: [identity profile] aksuramax2.livejournal.com
Возможно. Я не специалист. Говорю только о том, с чем сам тогда столкнулся.

Date: 2015-01-11 06:24 pm (UTC)
From: [identity profile] natvalbr.livejournal.com
а зачем вам куча студенченских недоделок? которые потом надо ещё тестировать...

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

Purebasic больше заточен под написание нативных приложений под разные ОС и для разработки игр.

Кстати, а на С++ у вас много ваших любимых веб-фреймворков?

с сокетами он работает нормально.Нашёл первую же ссылку в гугле: http://www.purebasic.fr/english/viewtopic.php?f=13&t=56873

Date: 2015-01-11 06:25 pm (UTC)
From: [identity profile] guga50.livejournal.com
Кхм. Я вообще-то С# изначально советовал. Эт раз.

>> вы сталкиваетесь с неожиданными данными в неожиданном месте всего лишь потому, что где-то (как вариант) ошиблись с индексом, скажем, в двухмерном массиве

В джава будет не так?

Date: 2015-01-11 06:27 pm (UTC)
From: [identity profile] lvqcl.livejournal.com
C++ Builder 5 - это варез, это отсутствие поддержки, это отсутствие пользователей, у которых можно проконсультироваться...
И - я не уверен, что он поддерживает даже С99 полностью, не говоря о C11, C++03, C++11, и т.д.

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