В теме затронут очень нужный вопрос – выбора языка программирования для людей, которые только собираются изучить какой-то язык. Вот только вопрос поставлен очень широко, по этому я полностью согласен с wagant, который пишет о том, что его надо сузить.
//Это очень сильно зависит от предметной области. Если, например, требуется обработать результаты экспериментов, то очень неплох MatLab. Для символьной математики Maple. Если требуется просто реализовывать небольшие программы общего назначения, то я бы рекомендовал Python. Если же человек хочет научиться промышленной разработке программного обеспечения, то пожалуй стоит выбрать Java или C#. Для задач компьютерной графики или собственной математики неплох C++, он очень мощный и красивый язык, но все-таки сложен в обучении и как первый язык я бы его не рекомендовал.//
Именно по этому 6 лет тому назад я написал статью //Выбор языка программирования для научных работников// и рассмотрев как общие вопросы программирования, так и спецефические особенности различных языков я рекомендовал научным сотрудникам Visual Basic 6.0. Да, сейчас этот язык официально не поддерживается Микрософт, т.е. не развивается, хотя и стабильность можно рассматривать как положительное качество, но все новые версии Windows и Vista и Windows7 имеют виртуальную машину, т.е. библиотеку msvbvm60.dll, необходимую для работы программ написанных на Visual Basic 6.0. Вследствие того, что язык не развивается, например, сейчас он не поддерживает современную технологию многопоточности (OpenMP), профессиональные программисты, т.е. те, кто пишет программы за деньги, отказываются от него. Хотя, как я выяснил многие продолжают писать на нем программы для собственных нужд или как вспомогательные программы для разработки профессиональных программ. По этому, очень важно учитывать то обстоятельство, что мы ведем речь о выборе языка программирования для собственных нужд, например, научными работниками для проведения своих исследований. И здесь я полностью согласен с Alec, который написал
//Для сравнения языков програмирования целесообразно разработать количественные критерии.
Для примера:
1) Время обучения основам программирования с нуля. Для тестирования привлечь школьников.
2) Время програмирования тестовых задач.
3) Скорость выполнения тестовых задач.
4) Сложность выполнения программистом отдельных функций языка. //
У меня в статье использованы схожие критерии оценки и на тестовом примере определена скорость языков в различных режимах работы программ. Конкретно я написал программу Spusk, реализующую простейший алгоритм численного решения дифференциальных уравнений на следующих языках программирования QBasic, Visual Basic 6.0, Visual Basic .NET, Free Basic, Turbo Pascal и C++, а после выхода статьи мне прислали программу Spusk написанную на Delphi. И, что касается простоты создания интерфейса программы, то я согласен с Alexu007, что это очень важно
// C++ builder - система программирования для Windows, в которой не нужно заморачиваться сложностью программирования интерфейса, а уделять внимание собственно программе, которая пишется на С++. Например:
вот такую кострукцию можно слабать, не написав ни одной строчки кода - просто выбираешь мышкой нужный компонент и кликаешь на нужное место на форме. При этом кнопки будут нажиматься, в поля ввода можно будет вводить информацию и т.п. Но никаких действий ессно производиться не будет. По моему - идеально для непрофессионалов.//
Только я не понял причем тут C++ builder, т.к. такие методы создания форм для программ используются во многих языках, например, в том же Visual Basic 6.0. Почти согласен я и с Morkonwen, который пишет
//На любом пакете символьных вычислений типа Mathematica или Matcad вы напишите то что вам нужно на один - два порядка быстрее чем любым другим способом, особенно учитывая что почти все уже написано за вас. Но тут никто не говорит почему то о том, что и работать такая программа будет в сотни раз медленнее, чем на том же c++ . Когда речь об относительно серъезных вычислениях на несколько суток это очень критично.//
А, что касается скорости работы программ, то мне сейчас пришлось даже купить четырехядерный компьютер, чтобы сократить мое время, затраченное на решение задачи поиска скорости распространения гравитации, т.к. счет у меня идет на месяцы и даже годы работы компьютера. А вот с чем я в корне не согласен – так это с заявлением arseniiv
//На бейсиках лучше не писать. На старых не очень структурированный код, на VB мало возможностей, в VB.NET слишком много букв (всё в сравнении с другими языками).//
А чтобы не быть голословным предлагаю ознакомиться с моей статьей //Выбор языка программирования для научных работников//. Посмотреть можно здесь
http://ser.t-k.ru или здесь
http://modsys.narod.ru в разделе Статьи. Там же (в разделе Программы) можете скачать бенчмаки и программы Spusk на разных языках (как исходники, так и откомпилированные файлы). Правда сейчас (по прошествии 6 лет) я бы некоторые моменты в статье подправил, но общие выводы остались бы те же самые.
С наилучшими пожеланиями Сергей Юдин.
! |
PAV: |
предупреждение за оформление цитат не по правилам форума, а также нарушение правил форума по части внешних ссылок |