No to i ja dodam swoje poltora grosza;) Jesli gdzies sie myle to wytykac palcami bez ogrodek;]
Autoreklama: flo4tingmus3um to koder c++ (czasem c i inne) z kilkuletnim doswiadczeniem w zastosowaniach tegoz jezyka w projektach niehobbystycznych;) I chetny do pomocy.
Prawdopodobnie jednym z najwazniejszych czynnikow decydujacych o checi udzialu w tym projekcie wiekszosci zglaszajacych sie chetnych bedzie zestaw jezyk + srodowisko + glowne biblioteki + stopien otwartosci i przenosnosci kodu. Zaczne od konca.
Najwazniejszym pytaniem jest chyba to, gdzie chcelibysmy (niekoniecznie od razu, moze np. za 2 lata), zeby nasz progs sie odpalil?
I dla kogo my to mamy pisac? Dla naszego zespolu czy dla ludzi w ogole? Jesli dla ludzi, to ja osobiscie chcialbym moc z ulubionego komunikatora korzystac prawie wszedzie, gdzie chce. Dla jednych to bedzie pecet made by alienware, dla innych eeepc czy jemu podobny maluch.
Dlatego mozliwosc odpalenia tego softu zarowno na windowsie, jak i na linuchu (*bsd moze tez?), czy macu, uwazam za kluczowa. Pewnie wiekszosc z chetnych ma doswiadczenie w skrobaniu pod winde (w tym ja), mozna od niej zaczac, ale myslec trzeba tez od razu o innych platformach.
Jesli chodzi o otwartosc - bez wzgledu na to, na jakiej licencji wydamy soft, powinien to byc soft otwarty. Gdyby konnekt byl otwarty, to w ogole nie musielibysmy tu takich dyskusji prowadzic;)) Ale to "ich" kod i "ich" decyzja - uszanujmy to. Tylko czy jesli za 5 lat nam sie znudzi supportowanie projektu, albo polowa z nas sie ozeni, to projekt ma od razu umrzec?
Co do jezyka:
Java - bo przenosny, ale... Wezmy takiego eeepc i jave
Nawet sredniej klasy pc bedzie sie mulil, jesli program sie rozrosnie i bedzie mial odpalonych 30 wtyczek. Niekoniecznie moze nam sie udac napisac super optymalny kod. Wiele rzeczy bedzie pewnie pisanych "zeby tylko zadzialalo", przynajmniej na poczatku.
.net - sama platforma mocno nas ograniczy, niby jest mono, ale na tej samej zasadzie to i photoshop jest przenosny, bo przeciez jest wine!:D Do tego jestesmy ograniczeni w zasadzie do 2 jezykow: C# i C++/CLR. Z tym pierwszym nie mialem duzo do czynienia, ale wyglada na nieudana probe przerobienia visualbasica na 'powazny jezyk' (bez urazy
) i wyszlo im cos miedzy vb a java (ocena subiektywna;)). C++/CLR jest bardzo fajny, bo mozna sobie wybierac, czy dana czesc kodu dziala 'natywnie', czy jest 'managed', ale mieszanie jednego z drugim czasami jest uciazliwe. Fakt: .net oferuje nam gui wraz z designerem. Ktory sie lubi przycinac. Niestety nawet prosta aplikacja po odpaleniu zawija ze 20mb ramu, boje sie pomyslec, co bedzie, jesli program sie rozrosnie. I to .net nie jest takie strasznie wydajne. To tez subiektywna ocena. No i ogranicza nas do VS.
c++ - no coz, nie bede ukrywal, ze to moj ulubiony jezyk i osobisty faworyt. Polaczenie c++ z stlportem i boost.org daje naprawde potezne narzedzie. Moze nie jest super banalny, ale to nie tutorial, tylko powazny projekt;> Pisanie w c++ ma wiele zalet. Po pierwsze daje kontrole nad wszystkim (zarzadzanie pamiecia, systemowe resources itd). Poza tym jest szybki (dziala blizej sprzetu niz .net/java) i zuzywa tyle zasobow, ile Ty chcesz. Na kazda platforme znajdziemy dobry zestaw narzedzi, kazdy znajdzie cos dla siebie. Mozemy sobie wybierac, z jakich bibliotek korzystamy itd.
W koncowej czesci zakladam, ze wybralismy c++
Narzedzia. Pod winda to chyba albo vs, albo eclipse+mingw. Nie widze problemow, zeby ten sam kod skompilowal sie zarowno pod vs jak i pod mingwem. Pod linuchem tez eclipse + gcc, albo kDevelop, a nawet i vi+gcc, jesli ktos jest na tyle hardkorowy;d
I biblioteki. Najwazniejsze jest gui - pisanie swojej obslugi gui na kazdy system to masochizm
A jesli kod ma byc otwarty, to pewnie sprowadzi sie to do wyboru miedzy qt a wxwidgets. To pierwsze przychodzi z fajnym designerem, jest portowalne, wyglada na calkiem ladnie zaprojektowane i jest dane pod gpl'em. Chociaz nie udalo im sie zaimplementowac tego w czystym c++, dokladaja swoj preprocessor. wxwidgets tez sa dosc stabilne, moze z lekko anachronicznym designem, ale dziala calkiem ladnie i dobrze. wxwidgets uzywam w jednym ze swoich projektow z powodzeniem. Niestety, nie znalazlem jak do tej pory dobrego designera, do tego czasem brakuje niektorych funkcjonalnosci.
Sa jeszcze chyba tylko dwie z najwazniejszych rzeczy, ktore roznia sie na roznych systemach - watki i siec. Ale sa to rzeczy na tyle proste, ze proponowalbym napisanie jakichs wrapperow czy prostych frameworkow pod kazdy system, nie jest to trudne. Qt/wxwidgets/whatever zostawilbym tylko do obslugi gui.
A teraz czekam na komentarze i konstruktywna krytyke:)
Pozdrawiam serdecznie, zarowno tworcow konnekta (dzieki za ten kawal dobrej roboty), jak i tych, ktorzy chca napisac nowego, zaprawde powiadam wam, nawet nie mamy pojecia, w co sie pakujemy;)
flo4tingmus3um
Faller: wprost przeciwnie, testerow zawsze jest za malo:)