Najlepszy jezyk i srodowisko do wielowatkowej aplikacji bazodanowej Serwer-Wielu klientow

0

Czesc,
z gory mowie, ze pisze powaznie. Mam czas i zasoby :)
zastanawiam sie nad pewnym projektem. W skrocie:
Jest serwer przechowujacy informacje o klientach w bazie danych. Do niego laczy sie wielu klientow (setki), tworza miedzy soba pary i wymieniaja wiele informacji.

Jako, ze nie mam wielkiej wiedzy na temat programowania chcialem Was zapytac jakich specjalistow szukac? C++, Java?
Wiem, ze wiele aplikacji dziala teraz pod Java ale z nia tez jest wiele problemow min koniecznosc aktualizacji srodowiska przez klientow, problem z odpalaniem, czyszczenie plikow tymczasowych etc.

W grupie programistow specjalizujacych sie w ktorych jezykach i srodowiskach najlepiej szukac specjalistow do takiego projektu?

Oczywiscie dodatkowe pytanie odnosnie stworzenia takiej ekipy projektowej.
Jak wynagradzac takich specjalistow? Kontrakt? Ustalona stawka z gory czy platnosc za godzine pracy? Jak Wy sie rozliczacie jako programisci?

pozdrawiam
Paweł

0

Wiem, ze wiele aplikacji dziala teraz pod Java ale z nia tez jest wiele problemow min koniecznosc aktualizacji śr, odowiska przez klientow, problem z odpalaniem, czyszczenie plikow tymczasowych etc.

Na początku mówisz o serwerze, chwilę potem o kliencie. Najlepiej klienta zrobić jako aplikację webową, nic nie trzeba instalować i ściągać, wystarczy odpalić przeglądarkę. To jeszcze zależy co to dokładnie za program, ale prawdopodobnie tak jest.

Co do serwera to możesz go napisać właściwie w czym chcesz, Java jest bardzo popularna. W C++ nie potrzebujesz się bawić, jeżeli nie jest to serwer jakoś specjalnie nastawiony na superwydajność i szybkie czasy reakcji, no i wyjdzie ci prawdopodobnie drożej.

Bardzo dobre do wielowątkowosci są języki funkcyjne - Erlang, Scala ze stackiem od Typesafe,

1

Erlang/Elixir, Scala, Java z paczkami typu Rx. Pytanie czy klient jest "cienki" tzn. tylko pokazuje dane z serwera czy "gruby" - zawiera dużo logiki i zajmuje się np. zarządzaniem wątkami.

1

W C++ nie potrzebujesz się bawić, jeżeli nie jest to serwer jakoś specjalnie nastawiony na superwydajność i szybkie czasy reakcji, no i wyjdzie ci prawdopodobnie drożej.

Nawet jeśli jesteś nastawiony na superwydajność i szybkie czasy reakcji, to wcale nie jestem już taki przekonany, czy potrzebujesz się bawić w C++.
Wydajność / skalowalność aplikacji wielowątkowej i C++ nie idą zbytnio w parze. Owszem, o ile wiesz, co robisz C++ wygrywa w wydajności na jednym wątku i nie twierdzę, że się nie da go zmusić do współpracy z wieloma wątkami, ale będziesz się kopać z koniem na każdym kroku. A to kompilator nie wie niemal nic o wielowątkowości, więc wszelkie niskopoziomowe optymalizacje musisz zrobić sobie sam, a to brakuje odpowiedniego standardowego wsparcia bibliotecznego dla struktur danych typu lock-free i musisz dociągać odpowiednie zewnętrzne biblioteki, a i one pozostawiają wiele do życzenia pod względem kompletności, a to brak GC wyklucza praktycznie wydajne programowanie funkcyjne na niemutowalnych strukturach danych itp. W LMAX doszli do wniosku, że łatwiej już się kopać z Javowym GC (które też potrafi dać w kość, jeśli wymagasz pauz poniżej kilkunastu ms) niż walczyć ze wszystkim innym w C++.

Poza tym nie bez powodów silniki do masowo-równoległego przetwarzania dużych ilości danych, które się spopularyzowały ostatnimi czasy, napisano w Javie lub na bazie Javy (Hadoop, Spark) i jakoś nic C++owego dotąd nie było w stanie im zagrozić.

0

Hej!
Załóżmy, że klient ma być cienki a cała obsługa zdarzeń odbywa się po stronie serwera (oprocz calkiem podstawowych zdarzen). Pytanie czy klient obslugujacy kilka watkow nie jest juz cienki ;)

Co do serwera, nie musi reagowac do 5ms ale wiadomo, w tych czasach czas reakcji jest bardzo wazny.

0

Tutaj prawdopodobnie .net sprawdzi się dużo lepiej niż java

1 użytkowników online, w tym zalogowanych: 0, gości: 1