Господа, как считаете сколько языков программирования стоит использоватьв среднем проекте? С одной стороны хорошо когда все написано на одном языке – проще осуществлять поддержку, не нужно искать программистов, знающих много языков. С другой стороны, как мы знаем, у разных языков свои преимущества, и часто имеет смысл написать игровой движок например на С++, а логику сценариев, например, на Python-е. Но можно ведь дойти и до того чтоб писать логику на Java, интерфейс на Ruby, мат обработкуна Haskell-е, критические области на чистом Си, а совсем некритические на Groovy) и потом смотреть в глаза тому, кому придется это поддерживать…
Как считаете где золотая середина?
26 февраля 2009 в 17:02
Почему же,всё зависит от конкретной системы – скажем, разрабатывая под Windows, вы можете использовать VBScript и быть уверенным в том,что всё заработает. Или приложить маленькую DLL для языка, вроде PHP.
А в GNU\Linux можно смело утверждать,что в системе есть как минимум bash,Perl и Си – редко где встречается дистриб без этих языков.
А идеала нет и не будет.
26 февраля 2009 в 12:03
У меня три языка в дипломе было: Java, C и Matlab =) Никто не жаловался вроде)
На работе были такие варианты:
1) Java+Smalltalk. Потом Smalltalk устранили по причине сложности поддержки и тормозов.
2) Java(или С#)+JavaS?1?ript+C+PL/SQL
Золотая середина, видимо, действительно 2-3
Плюс часто возникают всякие предметно-ориентированные небольшие языки, особенно на основе xml, что является полнейшим ужасом с моей точки зрения))
26 февраля 2009 в 12:01
Александр The_Grey Яковлев, концептуально, все, что не велосипед, – это новые зависимости)) В качестве Python-а у меня Jython поэтому рантайм у них один)
Ну в идеале нужно писать на идельном языке в идельной ИДЕ, под идеальную ОС )) Тогда конечно мультиязыковость не нужна)
26 февраля 2009 в 3:04
Концептуально каждый новый язык – это новые зависимости.
Бинарник растёт, зависимости растут. Те же Ява и Питон требуют Runtime'ов, а это весомый добавок.
Вообще,это – дело вкуса. В идеале,на каждом использующемся вами языке надо быть гениальным программистом и хорошим оптимизатором.
26 февраля 2009 в 1:00
Java и Python )
Но диплом то черт с ним, меня вопрос волнует концептуально)
25 февраля 2009 в 23:05
Николай Митропольский
Ну если это Си и Паскаль – ничего удивительного!
Какие языки?
25 февраля 2009 в 23:03
>> и я пошел искать справедливости))
Для поиска справедливости было бы лучше, если бы ты рассказал почему в твоем проекте 2 языка =)
25 февраля 2009 в 21:00
Евгений KpoHyc Гаврин, да мне просто тут сделали замечание что у меня в дипломном проекте используется слишком много языков(2 штуки) и я пошел искать справедливости))
Андрей L Артюшеня, ну боюсь, что общей теории а написании "многоязыковых проектов" нет, ибо в зависимости от конкретных языков и конкретных платформ подходы очень разнятся. Но общий смысл – что один модуль пишется на одном языке, а другой модуль на другом, и через оговоренные интерфейсы они друг с другом общаются. То есть НЕ имеется виду, что у вас в одном каталоге лежат файлы на Delphi и Java, или строчка на Perl, а другая на С++. Поэтому я бы не стал относить к многоязычный проекты с асемблерными встваками или SQL запросами – это не то.
под Visual C++ понимается Managed С++ ? или вам нужно использовать native код?
25 февраля 2009 в 19:04
Господа, раз уж тема"Мультиязыковые проекты", может подскажете неопытному студенту, как разрабатываются подобные проекты и что почитать по данной тематике?
В моем случае Visual C# и Visual C++ и опыта разработки мультиязыковых проектов, к сожалению, нет.
Буду весьма признателен.
25 февраля 2009 в 19:00
> мне хотелось увидеть, что никто не ринется доказывать, что моноязыковость это круто)
Могу поискать любителей забивать гвозди микроскопом =)
25 февраля 2009 в 15:01
Нет, я понимаю, что во многом это "средняя темпиратура по больнице", но все же смысл в вопросе есть. Всеж проект на 11 языках звучит как-то очень неправдоподобно и нежизнеспособно, равно как и крупный проект на асме. То есть, разумеется, всякое бывает, но это скорее исключение, вы же сами приводите их как исключение, а я интересуюсь именнно общими тенднециями.
> что одного языка UML вполне достаточно для любого проекта.
А уже есть компиляторы в нативный код? ) Но вообще UML это часто нехилый оверхед.
А вообще, всем спасибо. главное, что мне хотелось увидеть, что никто не ринется доказывать, что моноязыковость это круто)
25 февраля 2009 в 10:00
Мне кажется, вопрос типа "средней температуры по больнице". Количество языков определяется не размером, а функциональностью. Я делал крупный проект на одном языке (Asm) и другой на 11 языках (C/C++, Asm, Java, Perl, VBA, … ).
Впрочем был у нас партнер из Англии, который считал, что одного языка UML вполне достаточно для любого проекта.
25 февраля 2009 в 9:02
Согласен… С++ с асм-вставками… третий – в зависимости от специфики приложения… Незачем из программы делать "Полное собрание языков программирования")
25 февраля 2009 в 6:02
У нас: Asm (Вставками), C/C++/C#, Perl (есть, но лучше бы не было), Python.
Так что Иван ответил очень верно – два – три языка.
25 февраля 2009 в 5:03
Есть оригиналы,которые встраивают в программы на Перле Brainfuck.
А вообще, ассемблерные вставки в том же си – нормальное полезное явление.
25 февраля 2009 в 1:02
фиг знает… по моему ты сам на свой вопрос ответил =))
Есть специализированные языки, которые с определенными задачами справляются ОДНОЗНАЧНО лучше чем другие языки.
Так что набор языков зависит на мой взгляд от задачи…
Если каждая специализированная задача написана на предназначеном для нее языке, то почему должны быть проблемы с поддержкой?
наоборот должно быть проще поддерживать "мат обработку на Хаскеле", чем на Си.
Другой вопрос в добавлении языков чисто для прикола. Например на мой взгляд это Руби для интерфейса… интерфейс можно не менее удобно и на уже используемом языке делать…
В третьих, есть родственные языки – например Java и Groovy… Программисту на Java не составит труда в Groovy коде разобраться… почему бы на разрешить его использование, если он где-то удобней и не портит производительность программы?
25 февраля 2009 в 1:00
2-3