Использование разных языков в одном проекте
От: snaphold  
Дата: 27.08.11 11:50
Оценка:
Хочется в проекте использовать разные языки.
Т.е. не так чтобы иметь гемор с прикручиванием, но главное попробовать,
а именно интегрировать.

Знаю C++, C#, C.

Хочу изучить F#, Nemerle.

Подскажите как можно в чем их смерджить?

проекты разные, хочется услышать от людей, кто имеет подобный опыт.
Заранее спасибо!
Re: CLI
От: Qbit86 Кипр
Дата: 27.08.11 11:57
Оценка: +1
Здравствуйте, snaphold, Вы писали:

S>Хочется в проекте использовать разные языки.

S>Т.е. не так чтобы иметь гемор с прикручиванием, но главное попробовать,
S>а именно интегрировать.
S>Знаю C++, C#, C.
S>Хочу изучить F#, Nemerle.

В рамках одного *proj-файла исходники на разных языках собирать невозможно. (Вообще, MSBuild позволяет, но IDE не поддерживает.)
Если нужны разные проекты на разных языках в рамках одного солюшена, то, в случае F#, нужно сперва разобраться, как конструкции языка мапятся на сущности CLR (грубо говоря, как будет выглядеть код F#-сборки после её декомпиляции Рефлектором в C#).

S>Подскажите как можно в чем их смерджить?


Собственно, как такового мерджа нет: просто ссылаешься в проекта на C# на проект F#. Единая среда же.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: C++/CLI
От: Qbit86 Кипр
Дата: 27.08.11 12:00
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Собственно, как такового мерджа нет: просто ссылаешься в проекта на C# на проект F#.


У меня, кстати, в этом отношении проблем с F# не было, а были как раз с C++/CLI. Импортируемые в *proj-файлах скрипты для сборки отличались в окружении без установленной Студии (на билд-сервере нет IDE, только Windows SDK со всеми компиляторами), и используемые самой Студией.
Глаза у меня добрые, но рубашка — смирительная!
Re: Использование разных языков в одном проекте
От: hardcase Пират http://nemerle.org
Дата: 27.08.11 12:35
Оценка:
Здравствуйте, snaphold, Вы писали:

S>Подскажите как можно в чем их смерджить?


Что именно вы собрались мержить?
http://nemerle.org/Banners/?t=Developer!&g=dark /* иЗвиНите зА неРовнЫй поЧерК */
Re: Использование разных языков в одном проекте
От: abibok  
Дата: 27.08.11 22:57
Оценка:
Я использовал в одном solution проекты на C# и VB.NET из-за одной фичи, которой в C# нет, а в VB.NET есть. Получилось очень хорошо.
Re: Использование разных языков в одном проекте
От: мыщъх США http://nezumi-lab.org
Дата: 28.08.11 01:17
Оценка:
Здравствуйте, snaphold, Вы писали:

S>Знаю C++, C#, C.

S>Хочу изучить F#, Nemerle.
S>Подскажите как можно в чем их смерджить?
что значит смерджить? у нас в проекте — си, плюсы, жаба, жаба-скрипт, питон, руби... все работает. взаимодействе между модулями организуется теми или иными способами, которых очень много -- выбирай на вкус. или вы хотите засунуть их в одно IDE?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[2]: Использование разных языков в одном проекте
От: snaphold  
Дата: 29.08.11 18:05
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, snaphold, Вы писали:


S>>Подскажите как можно в чем их смерджить?


H>Что именно вы собрались мержить?


проекты на разных языках в рамках одного солюшна.
Re[2]: Использование разных языков в одном проекте
От: snaphold  
Дата: 29.08.11 18:08
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>Здравствуйте, snaphold, Вы писали:


S>>Знаю C++, C#, C.

S>>Хочу изучить F#, Nemerle.
S>>Подскажите как можно в чем их смерджить?
М>что значит смерджить? у нас в проекте — си, плюсы, жаба, жаба-скрипт, питон, руби... все работает. взаимодействе между модулями организуется теми или иными способами, которых очень много -- выбирай на вкус. или вы хотите засунуть их в одно IDE?

для меня не особо важно как будет это визуально выглядеть. Главное хочется попробовать чтобы было решение, в котором присутствовали бы модули на разных языках,
т.е. напр, сайт: морда — скриптовый язык (жаба скрипт), серверееая логика — C#. Это стандартно. Хочется что-то пошире или глубже
Re[3]: Использование разных языков в одном проекте
От: QrystaL Украина  
Дата: 29.08.11 19:17
Оценка:
Здравствуйте, snaphold, Вы писали:
S>для меня не особо важно как будет это визуально выглядеть. Главное хочется попробовать чтобы было решение, в котором присутствовали бы модули на разных языках,
S>т.е. напр, сайт: морда — скриптовый язык (жаба скрипт), серверееая логика — C#. Это стандартно. Хочется что-то пошире или глубже

Создаете пустой solution и добавляете туда проекты на разных языках (C#, VB.NET, F# и т.д.). Проследите за тем, чтобы публичные контракты соответствовали CLS, и усё )
Re[2]: CLI
От: Ziaw Россия  
Дата: 30.08.11 04:51
Оценка:
Здравствуйте, Qbit86, Вы писали:

S>>Хочу изучить F#, Nemerle.


Q>В рамках одного *proj-файла исходники на разных языках собирать невозможно. (Вообще, MSBuild позволяет, но IDE не поддерживает.)


Nemerle умеет собирать C# исходники включенные в проект наравне с собственными файлами. Правда в IDE поддержка этих файлов никакая.
Re[3]: CLI
От: Qbit86 Кипр
Дата: 30.08.11 04:58
Оценка:
Здравствуйте, Ziaw, Вы писали:

Q>>В рамках одного *proj-файла исходники на разных языках собирать невозможно. (Вообще, MSBuild позволяет, но IDE не поддерживает.)


Z>Nemerle умеет собирать C# исходники включенные в проект наравне с собственными файлами. Правда в IDE поддержка этих файлов никакая.


Что значит «Nemerle умеет» я не очень представляю, сборкой в любом случае занимается MsBuild, а ему по фигу на каком языке что написано, любой компилятор для него — внешняя запускаемая утилита (реализация интерфейса ITask).
Глаза у меня добрые, но рубашка — смирительная!
Re[4]: CLI
От: Ziaw Россия  
Дата: 30.08.11 06:05
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Что значит «Nemerle умеет» я не очень представляю, сборкой в любом случае занимается MsBuild, а ему по фигу на каком языке что написано, любой компилятор для него — внешняя запускаемая утилита (реализация интерфейса ITask).


Имелось ввиду то, что, обычно, под одним проектом подразумевается одна сборка. Компилировать исходники на разных языках в рамках одного процесса компиляции и одной сборки «Nemerle умеет».

Конечно это не всегда надо, часто достаточно обычных ссылок на сборки собранные другим компилятором.
Re: Использование разных языков в одном проекте
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 31.08.11 02:47
Оценка:
Здравствуйте, snaphold, Вы писали:

S>Хочется в проекте использовать разные языки.

S>Т.е. не так чтобы иметь гемор с прикручиванием, но главное попробовать,
S>а именно интегрировать.

А зачем плодить весь этот зоопарк?
По мне идеалом является проект, в котором один основной унифицированный язык. Ну максимум еще один скриптовый язык.

S>проекты разные, хочется услышать от людей, кто имеет подобный опыт.


Сугубо отрицательный опыт. Тут даже особо и пояснять ничего вроде не надо.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[4]: CLI
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.09.11 16:03
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Что значит «Nemerle умеет» я не очень представляю,


Ну, вот так вот. Компилятор позволяет включать в состав проекта файлы на других языках. Для этого нужно создать специальным образом оформленный плагин. Для C# такой плагин уже есть.

Q>сборкой в любом случае занимается MsBuild,


"Сборка" понятие растяжимое. Проекты в любом случае компилируются компилятором. MsBuild — это не более чем утилита организующая процесс сборки. Но сам MsBuild ничего не делает.

Q>а ему по фигу на каком языке что написано, любой компилятор для него — внешняя запускаемая утилита (реализация интерфейса ITask).


Вот именно. Но это не значит, что сам компилятор не может компилировать более одного языка.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
http://nemerle.org/Banners/?g=dark
Re[3]: Использование разных языков в одном проекте
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.09.11 16:14
Оценка:
Здравствуйте, snaphold, Вы писали:

S>>>Подскажите как можно в чем их смерджить?


H>>Что именно вы собрались мержить?


S>проекты на разных языках в рамках одного солюшна.


Их не надо "мержить". Ты просто можешь подключать один проект к другому как библиотеку. Это позволяет тебе писать часть кода на одном языке, оформлять ее в виде бибилотеки и использовать из другого.

Такие языки как C#, VB и Nemerle очень хорошо интегрируются друг с другом. F# и C++ хуже. Но все же, при соблюдении некоторых правил хорошего тона, и с их интеграцией проблем не будет.

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

С++/CLI имеет смысл использовать только тогда когда нужен суроый интероп с унаследованным С++-ным или сишным кодом.

C#, VB преимуществом является хорошая поддержка дизайнеров и наличие РеШарпера. Ну, в C# еще есть ансэйф-код. Но толку от этого не много. Если же используется С++/CLI, то в ансэйфе нет ни малешего смысла.

F# и Nemerle банально более мощные языки. Если задачи требуют сложных алгоритмов, то это лучший выбор.
В прочем зачем нужен F# я, если честно, не понимаю. Пред Nemerle у него ровным счетом нет никаких преимущество. При это недостатков выше крыши. В прочем, я человек предвзятый, в этом вопросе.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
http://nemerle.org/Banners/?g=dark
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.