Посоветуйте язык программирования
Jan. 11th, 2015 02:41 pmЯ всю жизнь программировал только на бейсике, на разных его версиях. Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.
no subject
Date: 2015-01-11 05:51 pm (UTC)no subject
Date: 2015-01-11 05:53 pm (UTC)no subject
Date: 2015-01-11 05:56 pm (UTC)no subject
Date: 2015-01-11 05:59 pm (UTC)no subject
Date: 2015-01-11 05:59 pm (UTC)no subject
Date: 2015-01-11 06:00 pm (UTC)Но даже сейчас так не считаю по поводу бейсика.
no subject
Date: 2015-01-11 06:01 pm (UTC)no subject
Date: 2015-01-11 06:02 pm (UTC)no subject
Date: 2015-01-11 06:02 pm (UTC)сейчас "for fun" решил посмотреть PureBasic - всё есть. Какие у вас там вопросы то есть? ;)
no subject
Date: 2015-01-11 06:03 pm (UTC)no subject
Date: 2015-01-11 06:05 pm (UTC)сравни со своим вшивым 2мп hd-видеосигналом.
Это, дебилушка, не крутость, а просто профессия.
так же и у автора - если он считает эволюционные модели, то ему нужно просчитывать миллионы поколений перемножений многомерных матриц. И здесь вопрос не в скорости единичных вычислений, а в количестве объема информации и соотвественно быстрому доступу к нему.
Яваскрипт для вебстранички здесь конечно очень поможет рассчетам )))))))) (я подозреваю что обьем данных просто даже не влезет в оперативку стандартного 64-бит интела без свопирования и ацких тормозов)
no subject
Date: 2015-01-11 06:06 pm (UTC)не понял, если честно. это как?
no subject
Date: 2015-01-11 06:06 pm (UTC)std::vector res = some_function();
непрофессионал то поймёт что тут происходит и что сделали в С++11?
С++ - это ужасный язык из-за своей свободы.
А если у вас команда из 50-70 программистов да у которых разный уровень мастерства, то 500-800 багов в месяц вам гарантирован. По личному опыту.
no subject
Date: 2015-01-11 06:07 pm (UTC)если ваш прикладно
no subject
Date: 2015-01-11 06:08 pm (UTC)no subject
Date: 2015-01-11 06:08 pm (UTC)no subject
Date: 2015-01-11 06:11 pm (UTC)no subject
Date: 2015-01-11 06:11 pm (UTC)no subject
Date: 2015-01-11 06:15 pm (UTC)ваш пример я не понял - обычный си-компилятор его просто обругает, а в 11 с auto вроде другой синтаксис. просветите?
no subject
Date: 2015-01-11 06:19 pm (UTC)Ну да :) Не сложно. malloc, calloc, free...
И большинство ошибок в программах на C и C++ связанны с указателями, с такой простой вещью.
Потому что одно дело "знать об адресе" и о malloc/free, а другое дело управлять всем зоопарком указателей, который к алгоритму никакого отношения не имеет.
И ладно еще, если ошибка приводит к немедленному сваливанию программы (что бывает далеко не всегда). Нередко все приводит к тому, что вы сталкиваетесь с неожиданными данными в неожиданном месте всего лишь потому, что где-то (как вариант) ошиблись с индексом, скажем, в двухмерном массиве (а такая структура данных вполне обычна для расчетных задач, и не нужно никаких списков). И на стеке вы сможете задать лишь массивы фиксированной размерности, и если они вас не устроили - добро пожаловать в мир указателей со всеми его прелестями.
Которые не сложные (особенно если вы уже собаку съели на расшифровке определений типов в C), но на грабли которых все налево и направо наступают.
А найти более менее сложную программу (даже коммерческую), которая написана на C и при этом не страдает от утечек памяти хотя бы... Ну может это и возможно, но это не типично для таких программ.
По этому C нормально использовать там, где указатели именно требуются, а если есть возможность обойтись и без них - что угодно, только не C/С++.
До той же CUDA можно и на Java достучаться, к примеру. Но при этом прийдется вылавливать только ошибки, связанные с алгоритмом, и не тратить время на лозоходство по программе в поисках ошибок в работе с памятью.
no subject
Date: 2015-01-11 06:20 pm (UTC)Но насколько я помню, транслятор - это общее название.
И компиляторы, и интерпретаторы - все они как раз таки трансляторы.
А у меня на БК-0010-01 стоял вот какой транслятор Бэйсика: после запуска достаточно объемной программы он "молчал" несколько секунд, а потом начинал работать - со скоростью на порядок выше, чем привычные мне до этого Бэйсики. Со скоростью Фортрана или Си.
no subject
Date: 2015-01-11 06:21 pm (UTC)no subject
Date: 2015-01-11 06:24 pm (UTC)молотком, кстати, комп тоже можно чинить, но как-то будет неудобно... это я к вопросу о веб-фреймворках каких-то мифических.
Purebasic больше заточен под написание нативных приложений под разные ОС и для разработки игр.
Кстати, а на С++ у вас много ваших любимых веб-фреймворков?
с сокетами он работает нормально.Нашёл первую же ссылку в гугле: http://www.purebasic.fr/english/viewtopic.php?f=13&t=56873
no subject
Date: 2015-01-11 06:25 pm (UTC)>> вы сталкиваетесь с неожиданными данными в неожиданном месте всего лишь потому, что где-то (как вариант) ошиблись с индексом, скажем, в двухмерном массиве
В джава будет не так?
no subject
Date: 2015-01-11 06:27 pm (UTC)И - я не уверен, что он поддерживает даже С99 полностью, не говоря о C11, C++03, C++11, и т.д.