singlepost

Мультиязыковые проекты << На главную или назад  

Господа, как считаете сколько языков программирования стоит использоватьв среднем проекте? С одной стороны хорошо когда все написано на одном языке – проще осуществлять поддержку, не нужно искать программистов, знающих много языков. С другой стороны, как мы знаем, у разных языков свои преимущества, и часто имеет смысл написать игровой движок например на С++, а логику сценариев, например, на Python-е. Но можно ведь дойти и до того чтоб писать логику на Java, интерфейс на Ruby, мат обработкуна Haskell-е, критические области на чистом Си, а совсем некритические на Groovy) и потом смотреть в глаза тому, кому придется это поддерживать…

Как считаете где золотая середина?

18 ответов в теме “Мультиязыковые проекты”

  1. 17
    Александр Яковлев ответил:

    Почему же,всё зависит от конкретной системы – скажем, разрабатывая под Windows, вы можете использовать VBScript и быть уверенным в том,что всё заработает. Или приложить маленькую DLL для языка, вроде PHP.
    А в GNU\Linux можно смело утверждать,что в системе есть как минимум bash,Perl и Си – редко где встречается дистриб без этих языков.
    А идеала нет и не будет.

  2. 16
    Роман Белоус ответил:

    У меня три языка в дипломе было: Java, C и Matlab =) Никто не жаловался вроде)
    На работе были такие варианты:
    1) Java+Smalltalk. Потом Smalltalk устранили по причине сложности поддержки и тормозов.
    2) Java(или С#)+JavaS?1?ript+C+PL/SQL
    Золотая середина, видимо, действительно 2-3
    Плюс часто возникают всякие предметно-ориентированные небольшие языки, особенно на основе xml, что является полнейшим ужасом с моей точки зрения))

  3. 15
    Николай Митропольский ответил:

    Александр The_Grey Яковлев, концептуально, все, что не велосипед, – это новые зависимости)) В качестве Python-а у меня Jython поэтому рантайм у них один)

    Ну в идеале нужно писать на идельном языке в идельной ИДЕ, под идеальную ОС )) Тогда конечно мультиязыковость не нужна)

  4. 14
    Александр Яковлев ответил:

    Концептуально каждый новый язык – это новые зависимости.
    Бинарник растёт, зависимости растут. Те же Ява и Питон требуют Runtime'ов, а это весомый добавок.
    Вообще,это – дело вкуса. В идеале,на каждом использующемся вами языке надо быть гениальным программистом и хорошим оптимизатором.

  5. 13
    Николай Митропольский ответил:

    Java и Python )
    Но диплом то черт с ним, меня вопрос волнует концептуально)

  6. 12
    Алексей Вишняков ответил:

    Николай Митропольский
    Ну если это Си и Паскаль – ничего удивительного!
    Какие языки?

  7. 11
    Юрий Лисичкин ответил:

    >> и я пошел искать справедливости))
    Для поиска справедливости было бы лучше, если бы ты рассказал почему в твоем проекте 2 языка =)

  8. 10
    Николай Митропольский ответил:

    Евгений KpoHyc Гаврин, да мне просто тут сделали замечание что у меня в дипломном проекте используется слишком много языков(2 штуки) и я пошел искать справедливости))

    Андрей L Артюшеня, ну боюсь, что общей теории а написании "многоязыковых проектов" нет, ибо в зависимости от конкретных языков и конкретных платформ подходы очень разнятся. Но общий смысл – что один модуль пишется на одном языке, а другой модуль на другом, и через оговоренные интерфейсы они друг с другом общаются. То есть НЕ имеется виду, что у вас в одном каталоге лежат файлы на Delphi и Java, или строчка на Perl, а другая на С++. Поэтому я бы не стал относить к многоязычный проекты с асемблерными встваками или SQL запросами – это не то.

    под Visual C++ понимается Managed С++ ? или вам нужно использовать native код?

  9. 9
    Андрей Александрович ответил:

    Господа, раз уж тема"Мультиязыковые проекты", может подскажете неопытному студенту, как разрабатываются подобные проекты и что почитать по данной тематике?
    В моем случае Visual C# и Visual C++ и опыта разработки мультиязыковых проектов, к сожалению, нет.
    Буду весьма признателен.

  10. 8
    Евгений Гаврин ответил:

    > мне хотелось увидеть, что никто не ринется доказывать, что моноязыковость это круто)
    Могу поискать любителей забивать гвозди микроскопом =)

  11. 7
    Николай Митропольский ответил:

    Нет, я понимаю, что во многом это "средняя темпиратура по больнице", но все же смысл в вопросе есть. Всеж проект на 11 языках звучит как-то очень неправдоподобно и нежизнеспособно, равно как и крупный проект на асме. То есть, разумеется, всякое бывает, но это скорее исключение, вы же сами приводите их как исключение, а я интересуюсь именнно общими тенднециями.

    > что одного языка UML вполне достаточно для любого проекта.
    А уже есть компиляторы в нативный код? ) Но вообще UML это часто нехилый оверхед.

    А вообще, всем спасибо. главное, что мне хотелось увидеть, что никто не ринется доказывать, что моноязыковость это круто)

  12. 6
    Армен Айрапетян ответил:

    Мне кажется, вопрос типа "средней температуры по больнице". Количество языков определяется не размером, а функциональностью. Я делал крупный проект на одном языке (Asm) и другой на 11 языках (C/C++, Asm, Java, Perl, VBA, … ).
    Впрочем был у нас партнер из Англии, который считал, что одного языка UML вполне достаточно для любого проекта.

  13. 5
    Антон Горшков ответил:

    Согласен… С++ с асм-вставками… третий – в зависимости от специфики приложения… Незачем из программы делать "Полное собрание языков программирования")

  14. 4
    Евгений Гаврин ответил:

    У нас: Asm (Вставками), C/C++/C#, Perl (есть, но лучше бы не было), Python.
    Так что Иван ответил очень верно – два – три языка.

  15. 3
    Александр Яковлев ответил:

    Есть оригиналы,которые встраивают в программы на Перле Brainfuck.
    А вообще, ассемблерные вставки в том же си – нормальное полезное явление.

  16. 2
    Юрий Лисичкин ответил:

    фиг знает… по моему ты сам на свой вопрос ответил =))
    Есть специализированные языки, которые с определенными задачами справляются ОДНОЗНАЧНО лучше чем другие языки.
    Так что набор языков зависит на мой взгляд от задачи…
    Если каждая специализированная задача написана на предназначеном для нее языке, то почему должны быть проблемы с поддержкой?
    наоборот должно быть проще поддерживать "мат обработку на Хаскеле", чем на Си.
    Другой вопрос в добавлении языков чисто для прикола. Например на мой взгляд это Руби для интерфейса… интерфейс можно не менее удобно и на уже используемом языке делать…
    В третьих, есть родственные языки – например Java и Groovy… Программисту на Java не составит труда в Groovy коде разобраться… почему бы на разрешить его использование, если он где-то удобней и не портит производительность программы?

  17. 1
    Иван Левитский ответил:

    2-3

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.