Najwydajniejszy język programowania

Mhm. Doskonałym przykładem sytuacji, w której stosuje się “nietypowy” język, są systemy bazujące na przekazywaniu komunikatów (serwery IM, duże usługi a’la Twitter). Do wydajnego działania tego typu systemów używa się języków funkcyjnych, które w sposób naturalny wspierają przepływ danych. Nawet kiedy nie używa się języków funkcyjnych, stawia się na rozwiązania ograniczające narzut na głęboki stos (najczęściej poprzez eliminację tegoż, tak jak to robi Stackless Python, w którym wyrzeźbiony jest kod serwerów EVE Online). Wydajność języka jest zależna od zadania.

Hehe. Chodzi mi o najlepszy język do programu typu serwer i duża liczba klientów. Nie miałem pojęcia, że tu będzie taka dyskusja :slight_smile:

A ci klienci mają się łączyć z serwerem poprzez napisany przez Ciebie program czy zwykłą przeglądarkę internetową?

Wszystko zależy. W czasie rzeczywistym, czy nie? Ze slotami czasowymi czy nie? Z predykcją działań czy nie? Nie ma uniwersalnych odpowiedzi na tak ogólnikowe pytania.

Przepraszam za brak danych.

Powinno wyglądać to tak:

Jest sobie sieć, w której znajduje się serwer i powiedzmy (dla przykładu) 7 klientów. Na komputerze z odpalonym serwerem jest sobie baza danych MySql.

Każdy klient ma mieć dostęp do bazy i taki jakby chat. Dodatkowo możliwość przesyłania plików przez TCP. Jakby były jakieś niejasności to proszę pisać.

A w kwestii wydajności chodziło mi bardziej o wyjaśnienie np.: Dlaczego C++ jest wydajniejszy, niż C# ? (dll’ki ?) I czy jest coś, co z tych względów jest szybsze, niż C++, ale nie jest masakrą dla programisty.

Wydajność języka w tym wypadku nie ma dla Ciebie znaczenia. Wąskim gardłem nie będzie procesor, tylko przepustowość sieci. Jeśli nie masz doświadczenia w programowaniu, powinieneś zdecydować się na język łatwiejszy w opanowaniu i z prostymi do ogarnięcia bibliotekami ułatwiającymi napisanie tego, na czym Ci zależy. Zaoszczędzisz czas na nauce, szukaniu i naprawianiu błędów. Będziesz mógł go poświęcić np. na optymalizowanie protokołu sieciowego własnej aplikacji.

Co do ogólników: regułą jest, że aplikacja w C# najczęściej startuje wolniej niż analogiczna aplikacja w (niezarządzanym) C++. Prędkość wykonywanego kodu zależy w znacznej mierze od tego, co się wykonuje. W większości przypadków dobrze napisany kod w C# będzie nieznacznie tylko (kilka procent) wolniejszy od analogicznego kodu w C++ (jeśli w ogóle będzie wolniejszy). W zamian dostaniesz nieco bezpieczniejszy kawałek kodu (bo np. .NET wymusza sprawdzanie zakresów przy indeksowaniu tablic, więc strzeże Cię przed błędami przepełnienia bufora).