Krzysztof Mierzejewski

Krzysztof Mierzejewski SharePoint
Consultant

Temat: C++ <- C#

Dokładnie w tę stronę ;)

Od ponad 2 lat bawię się .net'em (głównie z perspektywy c#) i wydaje mi się, że wyszedłem już z pieluch. Wcześniej (cofając się nawet do zamierzchłych czasów liceum) pisałem w C++ (a jeszcze wcześniej ansi C) ale to były projekty na uczelnie / do liceum właśnie.

To co dała mi dotychczasowa przygoda z .net'em w projektach komercyjnych, to między innymi dość solidne umiejętności developera jako takie (czyli OOP, design patterns, algorytmika, języki nieimperatywne, można by wymieniać). Czyli, nazwijmy to, programistyczne podejście do problemów (także biznesowych). Coś, czego brakowało mi, kiedy zaczynałem przygodę z programowaniem i zamiast uczyć się jak programować właśnie uczyłem się C++ (jako języka).

Kiedyś przeczytałem, że C# to ewolucja C++, tak jak C++ ewoluował z C. Krótko - nie zgodzę się z tym, wydaje mi się, że C# zabrał o wiele mniej rynku C++ niż C++ C. To są dwie osobne historie.

I teraz pytanie do was - od czego mogłaby zacząć (wrócić?) taka osoba jak ja, gdyby chciała rozwijać się (równolegle, tak bardziej póki co dla siebie i dla sprawdzenia jak się w tym czuję) w stronę sektora rynku przeznaczonego dla programistów C++ (chodzi mi o rynek softwareowy, nie hd, stąd C++ ale już nie C). Nie zależy mi od razu na api jakiegoś konkretnego systemu operacyjnego, jak WinApi, raczej na spojrzeniu na zagadnienia logiki biznesowej przez pryzmat C++ (tak na początek).

Czyli jaką literaturę polecacie (z własnego doświadczenia), jakie tutoriale, środowiska... Na pewno wiecie o co chodzi :) .NET ma niesamowity support, naprawdę solidne community i nie ma najmniejszego problemu ze znalezieniem potrzebnej informacji, uzyskaniem porady. Stąd moje może trochę naiwne pytanie. I proszę, nie piszcie, że google - chodzi mi o wasze zdanie i wasze doświadczenia.

Z góry wielkie dzięki.

konto usunięte

Temat: C++ <- C#

Krzysztof Mierzejewski:
Czyli jaką literaturę polecacie (z własnego doświadczenia), jakie tutoriale, środowiska... Na pewno wiecie o co chodzi :) .NET ma niesamowity support, naprawdę solidne community i nie ma najmniejszego problemu ze znalezieniem potrzebnej informacji, uzyskaniem porady. Stąd moje może trochę naiwne pytanie. I proszę, nie piszcie, że google - chodzi mi o wasze zdanie i wasze doświadczenia.

Polecam Linux + Open Source. Jako GUI biblioteke Qt.

piotr

konto usunięte

Temat: C++ <- C#

I teraz pytanie do was - od czego mogłaby zacząć (wrócić?) taka osoba jak ja, gdyby chciała rozwijać się (równolegle, tak bardziej póki co dla siebie i dla sprawdzenia jak się w tym czuję) w stronę sektora rynku przeznaczonego dla programistów C++ (chodzi mi o rynek softwareowy, nie hd, stąd C++ ale już nie C). Nie zależy mi od razu na api jakiegoś konkretnego systemu operacyjnego, jak WinApi, raczej na spojrzeniu na zagadnienia logiki biznesowej przez pryzmat C++ (tak na początek).
>

W tym momencie większą cześć rynku aplikacji na Windowsach przejął .Net i C#, kiedyś to była domena C++ ( MFC, ADO itp itd ) tak więc ciężko powiedzieć w którą stronę teraz tak naprawdę iść z C++.
Czyli jaką literaturę polecacie (z własnego doświadczenia), jakie tutoriale, środowiska... Na pewno wiecie o co chodzi :) .NET ma niesamowity support, naprawdę solidne community i nie ma najmniejszego problemu ze znalezieniem potrzebnej informacji, uzyskaniem porady. Stąd moje może trochę naiwne pytanie. I proszę, nie piszcie, że google - chodzi mi o wasze zdanie i wasze doświadczenia.

http://pl.cpp.wikia.com/wiki/Literatura

Na twoim miejscu zaczął bym od tych dla zaawansowanych, ja proponuje Thinkinga ale to już zależy od gustu.

Temat: C++ <- C#

Ja ci proponuje sprobowac C++/CLI .NET. Ze strony MS mozna sciagnac darmowe IDE Visual Studio 2005/2008 C++ Express.

Mozesz w tym mieszac kod managed z unmanaged, tj np uzyc czystego C++/C do silnika aplikacji by zyskac na wydajnosci a GUI wyklikac/napisac w .NET, na sieci jest sporo przykladow jak przekopiowac dane z unmanaged kodu do managed

W C# nie robilem w ogole ale zestaw .NETowych klas powinien byc ten sam co w C++/CLI wiec powinno ulatwic ci to nauke C++. Niestety przyklady C++/CLI sa jedyne na MSDN bo wiekszosc robi w C#, ale da sie przez analogie je wykorzystac
Marcin Borowiec

Marcin Borowiec Projektant -
programista

Temat: C++ <- C#

C++/CLI to taki potworek którego lepiej nie używać gdy nie ma takiej potrzeby.
Piotr P.

Piotr P. Software Developer

Temat: C++ <- C#

Piotr Pszczolkowski:
Krzysztof Mierzejewski:
Czyli jaką literaturę polecacie (z własnego doświadczenia), jakie tutoriale, środowiska... Na pewno wiecie o co chodzi :) .NET ma niesamowity support, naprawdę solidne community i nie ma najmniejszego problemu ze znalezieniem potrzebnej informacji, uzyskaniem porady. Stąd moje może trochę naiwne pytanie. I proszę, nie piszcie, że google - chodzi mi o wasze zdanie i wasze doświadczenia.

Polecam Linux + Open Source. Jako GUI biblioteke Qt.

I tutaj chyba nie masz racji.
Open Source tak, ale... Po co Qt sokro jest GTK, tym bardziej, że jest GTK# które bezbłednie działa z mono? Czy nie mam juz mono 2.0 które implementuje pełny .NET 2.0? Nie to żebym zachwalał Microsoft, wręcz przeciwnie. Ale jak juz cos robić to tak aby było portable.

Zobacz jak rozwija się cała platforma maemo? Czy ktoś pisze na to programy dedykowane? Tylko wtedy jeśli musi obsługiwać konkretną częśc urządzenia N8xx. Ja wykorzystuje na co dzień GLib, GObjects i GTK+. I programy działają na każdym *nixie i na mac osx i na N-kach Nokii. Kwestia tylko kompilacji a nie budowania aplikacji od nowa. Dodatkowo jeśli kod napisany jest w C, kwestia dopisania "language bindings" między innymi dla mono czy Pythona nie jest skomplikowana.

Osobiście nie przepadam za Qt. Nokia też zakupiła twórców Qt tylko po to żeby mieli łatwiejsze przejście z GUI Symbiana. Nie po to by to wspierać przez całe lata.

Jeśli coś ma być naprawdę niezależne od platformy i zrobione na dłuższą metę to mono i .NET. Jeśli musi być napisane w C# ;)

konto usunięte

Temat: C++ <- C#

Qt jest cacy, działa na win32, mac, linux, jest na mobilnych (qtopia) i teraz prawdopodobnie będzie tez na nokiach. Wiec czego chcieć więcej? Poza tym jest ładnie i obiektowo napisane.
Piotr P.

Piotr P. Software Developer

Temat: C++ <- C#

Jarosław Adamski:
Qt jest cacy, działa na win32, mac, linux, jest na mobilnych (qtopia) i teraz prawdopodobnie będzie tez na nokiach. Wiec czego chcieć więcej? Poza tym jest ładnie i obiektowo napisane.

Czy Qt działa out of the box dla programów napisanych w C# dla mono/.NET?
Nie jestem fanem ani Qt ani C#, tylko zastanawiam sie co ma większe perspektywy. Mono obsługuje od razu GTK, więc pisanie UI z Qt to chyba sztuka dla sztuki.

konto usunięte

Temat: C++ <- C#

Czy Qt działa out of the box dla programów napisanych w C# dla mono/.NET?
Nie jestem fanem ani Qt ani C#, tylko zastanawiam sie co ma większe perspektywy. Mono obsługuje od razu GTK, więc pisanie UI z Qt to chyba sztuka dla sztuki.

A co ma piernik do wiatraka. Jakoś nie potrafię zrozumieć co ma wspólnego C# i Qt. Jak ktoś chce to pisze w C# i korzysta z tego co ma do zaoferowania C# z .Net. O Mono nie słyszałem nic dobrego, póki co podobno nie jest jeszcze na tym poziomie aby mu zaufać.
Jak mówimy o UI dla c++ no to tu mamy właśnie QT, Gtk etc. A to kto z czego korzysta to zależy od jego gustu, licencji itd.

p.s Też słyszałem że Nokia idzie w stronę Qt.

konto usunięte

Temat: C++ <- C#

To chyba dobrze, ze decyduja sie na qt. Pamietam jak mialem pisac cos w nokiowych .rss. Udreka i brak dokumentacji do bledow zglaszanych przez system/kompilator.

Aktualnie ucze sie/uzywam qt - bez porowniania do UI na symbianie.

Niech sie nokia uczy.
Karol Z.

Karol Z. Programista,
elektronik

Temat: C++ <- C#

Jarosław Adamski:
(...) Niech sie nokia uczy.

Hehehe...
Nokia ma jeszcze duuuużo do nauki. :D
Piotr P.

Piotr P. Software Developer

Temat: C++ <- C#

Tomasz Pycia:
Czy Qt działa out of the box dla programów napisanych w C# dla mono/.NET?
Nie jestem fanem ani Qt ani C#, tylko zastanawiam sie co ma większe perspektywy. Mono obsługuje od razu GTK, więc pisanie UI z Qt to chyba sztuka dla sztuki.

A co ma piernik do wiatraka. Jakoś nie potrafię zrozumieć co ma wspólnego C# i Qt.

Trzymam się tylko wątku.
Program napisany w C#/.NET działa z mono/GTK ale nie z Qt.
Ale może sie mylę.
Na dłuższą metę (10~20 lat) widzę C i C#. C++ jakoś niewyraźnie.
Michał Cichoń

Michał Cichoń Student,
Politechnika Śląska
w Gliwicach

Temat: C++ <- C#

Pożyjemy, zobaczymy. :)

konto usunięte

Temat: C++ <- C#

Na dłuższą metę (10~20 lat) widzę C i C#. C++ jakoś niewyraźnie.

Odnośnie C++ to dużo będzie zależało od nowego standardu, jak będzie przełomowy to jakieś szanse są jeszcze przed C++, jak nie to boje sie że odejdzie do lamusa, a szkoda było by go zmarnować ba jak dla mnie to całkiem jest przyjemny.
Tadeusz Pyś

Tadeusz Pyś ..czyli samo zuo ;)

Temat: C++ <- C#

powrot do C++?

QT jesli chodzi o GUI
C++/CLI jesli chodzi o cokolwiek pisane pod windows
zas "od srodka", to oczywiscie zapoznac sie z nadchodzacym C0x
oraz obowiazkowa lektura:

...BOOST!!!

- boost::lambda (!) wywroci Twoje zycie
- boost::spirit (!) zawsze chciales napisac parser?
- boost::statemachine (!) mecza Cie stany, if'y, switch'e, komunikaty?
- boost::signals (!) brakuje Ci events? przeciez sa! od dawna..
- boost::thread uzycie watkow nigdy nie bylo latwiejsze
- boost::asio komunikacja async? betka
- boost::program_options podobaja Ci sie linuksowe commanline'y?
- boost::..
Michał Zientkiewicz

Michał Zientkiewicz Projektant /
Programista C++

Temat: C++ <- C#

Jezeli chodzi o przyszlosc C++ w ogole, to jakos sie nie boje - po prostu, migruje on na mniejsze urzadzenia oraz do specyficznych dziedzin (ciezka obliczeniowka, programowanie blisko sprzetu). Obecnie (chyba) jednym z wiekszych rynkow na C++ sa komorki (Symbian, gdzie C++ jest jezykiem natywnym systemu). C++0x ma szanse przywrocic C++ nalezne mu miejsce poprzez uproszczenie bardzo wielu rzeczy, usystematyzowaniu szablonow, zwiekszeniu informacji o typach itp. Do tego, opcjonalnie, ma dojsc garbage collector, co umozliwi latwe rozdzielanie aplikacji na czesc wolniejsza, ale prostsza w tworzeniu (np. UI) oraz szybka, choc bardziej wymagajaca.
Zastosowanie wspoldzielonych wskaznikow jako normalnego sposobu alokacji pamieci powinno jeszcze bardziej zwiekszyc wydajnosc.
Jezeli tworcy IDE szybko dostosuja swoje produkty do tego standardu i stworza dokumentacje, ktora pozwoli sprawnie korzystac z nowego jezyka, to raczej C++0x odgryzie spory kawalek rynku C#.
Ale to dopiero w 2009. Na razie C++ to obliczenia naukowe, oprogramowanie systemowe i komorki, z naciskiem na te ostatnie.

Temat: C++ <- C#

Proszę nie komentować poniższego - wrzucam to na/z czym ja pracuję od dawna:

Ubuntu
Eclipse CDT
Boost
WxWidgets

książki:
Thinking in C++ t1/t2
Język ANSI C

witryny:
http://cplusplus.com
http://codeguru.com
http://dreamincode.com
różne referencje cpp
referencja boosta
referencja wx

--- odtąd będzie można komentować to co napiszę : ;]

CLI i .Net stawiają Cię w uzależnieniu od Microsoftu. Standard C++ jest względnie stały. Ogólnie uważam, że standaryzacja jest miodem w świecie komercyjnych rozwiązań. Ale są wyjątki.

Pan Tadeusz ma świętą rację dot. boost. Do tej pory nie poznałem całej tej biblioteki. I warto poznać standardową bibliotekę c++ - można znaleźć masę użytecznych rzeczy o których nie pisze się w książkach.
Jarosław S.

Jarosław S. Full Stack Qt/C++
Dev Since 1997

Temat: C++ <- C#

Piotr P.:
Jarosław Adamski:
Qt jest cacy, działa na win32, mac, linux, jest na mobilnych (qtopia) i teraz prawdopodobnie będzie tez na nokiach. Wiec czego chcieć więcej? Poza tym jest ładnie i obiektowo napisane.

Czy Qt działa out of the box dla programów napisanych w C# dla mono/.NET?
Nie jestem fanem ani Qt ani C#, tylko zastanawiam sie co ma większe perspektywy. Mono obsługuje od razu GTK, więc pisanie UI z Qt to chyba sztuka dla sztuki.

Wiadomo, że będe bronił Qt. Więc zapytam: co z GTK na Windowsie? Jakość tego jest nieciekawa, klasy GUI (jest tego znacznie mniej niż w Qt) nie działają tak jak pod *nixem; podam 2 przykłady:
1. modalnosc i aktywowanie okien
2. focusy

Dla niezorientowanych, polecam odpalenie GIMP-a na Windowsie. Program widocznie traci na tym, że jest w GTK...

Gdy niska cena to nie jedyny wyznacznik, bo np. gdy w projecie będą wysokopłatni specjaliści, to liczą się 3 rzeczy: ich czas, ich czas oraz ich drogocenny czas :) A za ten czas warto zapłacić.

Jeśli zaś pytanie było o narzędzia do pisania zgodnie z zasadam OpenSource, to spójrzmy - Qt promuje właśnie Open Source (GPL), a GTK promuje zamykanie aplikacji - jest na LGPL (samo w sobie nic złego ale utarł się właśnie w/w argument ceny dla zamkniętych projektów).

-

Dodam dla Krzysztofa, że kod w Qt ładnie się debuguje w Visual Studio, więc czesc narzedzi Ty, lub Twój pracodawca w zasadzie już masz.
Piotr P.

Piotr P. Software Developer

Temat: C++ <- C#

Jarosław S.:
Czy Qt działa out of the box dla programów napisanych w C# dla mono/.NET?
Nie jestem fanem ani Qt ani C#, tylko zastanawiam sie co ma większe perspektywy. Mono obsługuje od razu GTK, więc pisanie UI z Qt to chyba sztuka dla sztuki.

Wiadomo, że będe bronił Qt. Więc zapytam: co z GTK na Windowsie?

Aj. Miałem na myśli C# *i* Qt lub GTK.
Jakość tego jest nieciekawa, klasy GUI (jest tego znacznie mniej niż w Qt) nie działają tak jak pod *nixem; podam 2 przykłady:
1. modalnosc i aktywowanie okien
2. focusy

Popraw mnie jeśli się mylę. Ale to nie GTK odpowiada za focus.
Dla niezorientowanych, polecam odpalenie GIMP-a na Windowsie. Program widocznie traci na tym, że jest w GTK...

Albo na mizerności czegoś co się nazywa "menadżer okien" w windowsie ;)
Z drugiej strony odpalenie Open Office w Gnomie także nie należy do przyjemnych doznań.

konto usunięte

Temat: C++ <- C#

Piotr Słupski:
Proszę nie komentować poniższego - wrzucam to na/z czym ja pracuję od dawna:

Ubuntu
Eclipse CDT
Boost
WxWidgets
książki:
Thinking in C++ t1/t2
Język ANSI C
(ciach)

Widzę, że dobrze wybrałem :)
Co prawda u mnie jest VS 2008 i Windows ale reszta kropka w kropkę tak samo.

Do twórcy wątku:
C++ to sprzęt i obliczeniówka (gdzie króluje jednak Fortran)

C# to przyszłość aplikacji biznesowych, ale raczej tylko na Windows. Fajny język, chociaż ma trochę dziwnych wypustek.
Poza Windowsem to jakoś tak się rozglądam i ciągle wszędzie wyskakuje Java lub COBOL.

C - radzę omijać z daleka, jeśli chcesz zdrowo spać. Pointery i hardwarowe łańcuchy (bo tylko w tym języku nie zawsze łańcuch się kończy) powodują przyspieszone starzenie i drgawki.
No chyba że się programuje jakieś małe sterowniki - wtedy jest to ciekawa alternatywa dla ASM. W C siedzą tylko najbardziej zatwardziali programiści którzy jednym tchem konwertują liczby ósemkowe na mnemoniki ASM.

Z tego co napisałeś to chyba najlepiej byłoby wybrać Ci Javę.
Trochę ma z C/C++. I szerokie zastosowanie w biznesie.



Wyślij zaproszenie do