[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Выбор языка программирования для научных работников
modsysДата: Вторник, 18.06.2013, 20:16 | Сообщение # 1
Рядовой
Группа: Администраторы
Сообщений: 13
Награды: 2
Репутация: 2
Статус: Offline
Предлагаю обсудить вопросы, рассмотренные мною в статье "Выбор языка программирования для научных работников", но прошу задавать вопросы только по тексту статьи, а не на отвлеченные темы. При этом, приветствуется не более одного сообщения за несколько дней, так что думайте прежде чем что-то спросить или что-то ответить. Мне здесь не нужна высокая посещаемость или активность участников обсуждения. Мне нужно серьезное и вдумчивое обсуждение, подразумевающее, что участники обсуждения знакомы с моими статьями. 


Вот, например, рассмотрим вопрос критериев выбора языка программирования для научных работников по нескольким критериям, а именно
 
1 - простота написания программ и понятность языка программирования для широкого круга пользователей
2 – возможности предоставляемые языком для решения разнообразных задач
3 – простота компиляции программ и установки их на различные компьютеры пользователей
4 – скорость работы программ
 

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

 

Да, действительно, иногда встречаются такие задачи, когда надо прогнать на компьютере их решение несколько сотен, раз и при этом один прогон может составлять несколько часов машинного времени, как, например, в моей задаче поиска скорости гравитации с использованием программы Solsys7. В таких случаях имеет смысл говорить о скорости работы программ, написанных на разных языках программирования, но чаще всего приходиться иметь дело с задачами, решение которых на современных компьютерах занимает от нескольких секунд и до десятков минут. А при таком раскладе скорость работы программы не имеет практически никакого значения, т.к. только изменение начальных данных при проведение нового эксперимента и считывания полученных данных (все равно откуда: сразу с экрана, из файла или с распечатки) занимает у пользователя от нескольких десятков секунд до нескольких десятков минут, т.е. практически сопоставимо со временем работы самой программы. И даже в том случае, если Вы при работе программы за счет скорости языка программирования, сэкономите несколько дней или даже месяцев, это еще не критерий для выбора языка программирования по скорости работы программы, т.к. написание, отладка и тестирование программы средней сложности может тоже составить от нескольких дней до нескольких месяцев (не говоря уже о сложных программах). А так как научные работники не являются профессиональными программистами, то написание и отладка программы могут затянуться вообще на неограниченный срок.

 

А, говоря о возможностях языка для решения широкого круга задач, я имею ввиду именно научные задачи, а не задачи защиты программ от взлома или создание программ-шпионов, которые отслеживают все действия пользователя компьютера, и которые конечно же лучше решать на С++ или Delphi, т.к. язык Visual Basic 6.0 не может выполнять низкоуровневые команды такие как, например, работа со стеками. Таким образом, в 95% (если не 99%) случаев для научных работников основным критерием является простота языка программирования, а не его скорость. И, например, вот такую программу, как на рисунке, моделирующую спуск по разным направляющим тела в поле тяжести Земли, любой (даже с нулевыми знаниями по программирования) может написать на языке Visual Basic 6.0 примерно за одну-две недели, а на С++ будет писать год и может так и не написать.

С наилучшими пожеланиями Сергей Юдин.


 
Прикрепления: 6383431.jpg (91.3 Kb)
 
  • Страница 1 из 1
  • 1
Поиск: