spotkałem się z opinią iż dobrze napisany program w c++ jest szybszy niż dobrze napisany program w C#.
i teraz jest moje pytanie:
mianowicie, załóżmy że muszę napisać program w c#...ale chce zrobić to w c++, więc czy da się napisać program główny w c++ a potem "otoczke" do niego w c# i tak żeby to wszystko wyglądało jak by wszystko było w C#? no i oczywiście czy szybkość działania będzie taka jak w C++ czy jak w c#?
edit
Dobra, źle przeczytałem. Tak, możesz napisać np. bibliotekę w C++, której potem wrappera napiszesz w C#. Nie jest to według mnie najlepszy pomysł, ale w niektórych (powtarzam: w niektórych) przypadkach będzie się to opłacało.
że co proszę?
Po ludzku: piszesz biblioteke w c++, w c# interfejs i w nim korzystasz z funkcji udostepnianych przez biblioteke.
i ma się rozumieć że będzie to chodziło szybciej niż jakbym wszystko napisał w c# ?
Tego nie powiedzialem.
Co wiecej - moge stwierdzic, ze dobrze napisany program w C# bedzie duzo szybszy niz srednio napisany program w jakimkolwiek innym jezyku ;) Kwestia uzytego rozwiazania. Jak problem nie ma byc rozwiazywany w czasie rzeczywistym lub kwestia czasu jest tu srednio istotna to nie martwilbym sie optymalizacja na poziomie wyboru jezyka a optymalizacja algorytmu. Jezyk w tym wypadku jest rzecza 3-rzedna wrecz (zakladajac, ze w ogole nadaje sie do problemu).
Napisz se w C++/CLI i będzie gitara.
Korzystasz z dobrodziejstwa .NET tam, gdzie ci wygodnie. Korzystasz z natywnego C++, tam gdzie rzekomo C# jest wolne.
c# jest wygodne, i pisz tylko w tym...
A jak ma dzialac szybko to tylko asembler.
Idiotów nie sieją, sami się pojawiają... C++/CLI ma siłą rzeczy wszystkie możliwości oferowane przez C#, to dialekt C++ robiący za pomost pomiędzy kodem natywnym a zarządzanym, można w nim pisać niemal równie wygodnie jak w C#. Assembler i szybkość? Gdybyś napisał to 40 lat temu to może nie uznałbym Cię za szczeniaka, który powtarza po wielkich chaxorach. Powiedz Ty mi ile czasu zajmie Ci napisanie jednego większoego algorytmu w assemblerze i zoptymalizowanie go aby był chociaż tak szybki jak ten wygenerowany przez kompilator C++, powiedzmy Intela. Szczególnie algorytmy numeryczne. Umiesz pobić kompilator za sensowną cenę? Udowodnij. Użycie assemblera ma sens jedynie w wypadku pisania skomplikowanych obliczeń z użyciem SSE w przypadku braku sensownej obsługi wektoryzacji w kompilatorze. Już od dawna istnieją takie zabawki jak VectorC, ucz się a za 10 lat może będziesz w stanie dorównać obecnym kompilatorom, problem tylko w tym, że tak sprzęt jak i oprogramowanie się zmieniają - ta wiedza będzie zbędna.
Kolejny powielający mity o wspaniałości assemblera...
ten od seksownych napisał(a)
C++/CLI ma siłą rzeczy wszystkie możliwości oferowane przez C# ... można w nim pisać niemal równie wygodnie jak w C#
bezedura,
nie ma inline delegatów, inline linq, foreach, luźnego typowania ...
C# to nie .NET, nie można ich porównać, bo C# to tylko język, a .NET platforma (maszyna wirtualna + biblioteki).