Посоветуйте язык программирования
Jan. 11th, 2015 02:41 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Я всю жизнь программировал только на бейсике, на разных его версиях. Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.
no subject
Date: 2015-01-15 11:47 am (UTC)> Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее
Исходя из задачи - вам нужна Java. Вы ведь хотите сами написать ядро, которое будет все считать - и тут Java почти самый быстрый.
Вот тут
http://rutracker.org/forum/viewtopic.php?t=4864236
берется среда программирования на Java - она лучшая на Земле сейчас вообще среди всех сред программирования "Intellij Idea".
Продвинутый способ обучения языкам - следовать видеоподкастам - вот например по такому для примера мною составленному запросу в Ютьюб что-то вам может оказаться полезным - http://www.youtube.com/results?search_query=intellij+idea+tutorial+java
Вам также надо прочитать книжку по Java, вот тут их 140 штук http://rutracker.org/forum/viewtopic.php?t=4890233. Непременно вам промоют там мозг парадигмами Объектно-ориентированного программирования. Вам надо будет их понять и зазубрить - их 3 или 4 всего. Без этого не понять ни Java, ни скорее всего все другие более продвинутые языки. Возможно для вас ООП вообще окажется захватывающим откровением, ведь это как раз система, в которой можно создать класс "Муха", прописать ей поведение "если коснулись крылышка, взмахнуть другим крылышком". А потом одной командой создать миллион таких объектов-Мух и наблюдать эволюцию их взаимовлияний... То есть парадигма ООП прямо-таки создана для моделирования систем из множества объектов.
Как раз Java сделала Объектно-ориентированное программирование мейнстримом 15 лет назад, так что читая книжку о Java вы поймете глубоко идеи.
Примечание: важно не перепутать Java и JavaScript - они называются похоже, но пути этих языков необратимо разошлись сразу после того, как им были даны похожие названия.
И также я присоединюсь ко множеству тут высказывавшихся:
один из наиболее выразительных языков сейчас - Python (он намного выразительней чем рекомендованный мною Java!). Он возможно вообще не подпадает под сформулированную вами задачу - написания ядра считающего какую-то модель. И все же это язык, которым программируют ученые - он упрощен где возможно, и усилена выразительность, где это надо.
Удачи!
no subject
Date: 2015-01-29 01:49 pm (UTC)Это write-only язык, который тем не менее активно пиарят, приписывая ему свойства, которых у него нет.
no subject
Date: 2015-01-29 02:18 pm (UTC)Но гигантское число встроенных в язык функций из коробки - считаю достоинством.
Потому что лучше лазать в хэлп за каждым третьим словом, чем реализовывать все каждый раз самостоятельно - вручную, медленно, с ошибками и плохо написав хелп... И заново все то же самое реализовывая в каждом следующем проекте...
А ваше недовольство мне понятно - меня любая невыразительность или громоздкость в ЯП раздражает, все то, что сделано неэргономично.
Но в комментах к этому посту несчастному Александру Владимировичу советуют начать писать на Це. Или на Дельфи. Какая гадость!
no subject
Date: 2015-01-31 10:09 am (UTC)А я вот пишу. Хотя была бы такая возможность - держался бы от него подальше. Все что выше написано про чтение чужого кода на нем - чистая правда. И большая часть "встроенных из коробки" возможностей прямо скажем не слишком хорошего качества. Как и большая часть готового софта на нем, которые имеется в интернете.
А вот идею про Java я поддержу. Не столько ради самого языка (я бы взял бы groovy, на самом деле), сколько ради платформы, под которую готовых компонентов самого разного рода намного больше, чем под питон, и лучшего качества. И ради инструментов.
no subject
Date: 2015-01-31 04:14 pm (UTC)Мой личный план:
пересесть на Java + groovy + clojure.
Про Groovy я узнал из статьи на хабре, перешел по ссылке на сайт Груви - вот сюда http://groovy.codehaus.org/JN1015-Collections - и через полчаса очнулся пораженный, что завороженно полчаса читаю чужой код на языке, о существовании которого еще час назад вообще не знал. Это лучшее пособие по языку, какое я когда-либо встречал. Так должны писаться пособия по ЯП. И захватывающая выразительность самого языка Груви. Для меня до сих пор совершенно поразительно, что чтение чужого кода может удерживать внимание и даже захватывать. Я потом еще прочитал книжку о граилз, компилил хэлловорды. Это то, чему я себя в скором времени обязательно посвящу - утону в языке синтаксического сахара + вся мощь Java :).
Спасибо, вы повысили мое настроение: Тенью критики Питона - я знаю, что до этого многими хвалимого и любимого языка у меня никогда не дойдут руки - и вы же меня успокоили, что без Питона не только можно, но даже и нужно прожить. Поддержкой коцепции, что именно Java следует выбрать Александру Владимировичу. И волшебным словом "Groovy", сверхвыразительным диалектом Java. Спасибо)