2009-05-28 25 views
5

Zbliża się projekt, dzięki któremu niektóre kody, które będę pisać, mogą być wdrażane na dowolnym sprzęcie, który potencjalni klienci mają. Jest to aplikacja biznesowa, która będzie działać przez 24 godziny na dobę, więc wyobrażam sobie, że większość komputerów-hostów będzie serwerami typu serwerowego, ale mniejsi klienci mogą na przykład mieć zwykły komputer.Najbardziej odpowiedni niezależny od platformy język programowania

Jeszcze kilka szczegółów na temat kodu będę pisał:

  1. nie będzie GUI.

  2. Będzie musiał komunikować się z innym urządzeniem "czarną skrzynką" na zamówienie przez sieć Ethernet.

  3. Będzie musiał komunikować się z bazą danych MySQL gdzieś w sieci.

  4. Nie mam żadnych problemów z wydajnością: a) liczba połączeń z czarną skrzynką będzie niewielka, około 1 na sekundę, a ilość wymienianych danych będzie niewielka (około 1K za każdym razem), b) liczba odczytów/zapisów w bazie danych będzie niewielka, około 5 na minutę, i znowu ilość wymienianych danych będzie niewielka i c) przetwarzanie, które należy wykonać, jest dość uproszczone.

  5. Nic, co robię, jest bardzo "bliskie metalowi", więc nie chcę używać języków, które są zbyt niskie. Łatwość rozwoju i łatwość wdrożenia to moje główne priorytety.

  6. Nie oczekuję, że będzie idealne rozwiązanie, więc mogę żyć z takimi rzeczami jak, na przykład, konieczność posiadania nieco innych plików konfiguracyjnych dla komputerów z systemem Windows niż dla skrzynek Linux itp. Chciałbym uniknąć konieczności kompilować oprogramowanie dla każdego hosta, jeśli to możliwe.

będzie cenię swoje przemyślenia co do których rozwój językowy uważasz za najbardziej odpowiednie.

Cheers,

Jim

Odpowiedz

0

Powiedziałbym, C lub C++. Są niezależne od platformy, ale musisz je skompilować dla każdej platformy.

Lub użyj Java. To działa na maszynie wirtualnej, więc jest to prawdziwie wieloplatformowy, a nie powolny poziom, ponieważ C.

+1

+1 Java. Nigdy go nie używałem, ale to jest to, na co zostało zbudowane, prawda? – Assembler

+1

Tak. Java jest naprawdę potężnym językiem i może działać tak szybko, jak C w większości przypadków. Nadal ma wiele problemów, ale nie sądzę, by wpłynęły one na PO. Nie pisałem też żadnej Javy przez 2-3 lata. Uwielbiam .NET teraz :) – ddd

+0

-1 dla C/C++ (w oparciu o wymagania OP), ale +1 dla Javy, więc myślę, że wyrównuje do 0. – cletus

11

Ja osobiście przydałby się przyzwoity język skryptowy, taki jak Python, Perl lub Ruby. Wszystkie te mają przyzwoitą obsługę bibliotek, mogą komunikować się z lokalnymi i zdalnymi bazami danych MySQL i są dość niezależne od platformy.

1

Jeśli wszystkie platformy są standardowymi komputerami PC (lub przynajmniej działają pod Linuksem), wówczas należy rozważyć Python. Możesz ją skompilować samodzielnie, jeśli nie ma pakietu dla twojej wersji. Możesz także łatwo usunąć standardową bibliotekę z rzeczy, które nie są dostępne i których nie potrzebujesz (na przykład obsługa dźwięku).

Python nie potrzebuje dużo zasobów, łatwo się go nauczyć i czytać.

Jeśli znasz Perl, możesz spróbować. Jeśli nie używasz Perla codziennie, nie rób tego. Składnia Perla jest trudna do zapamiętania, a po tygodniu zastanawiasz się, co zrobił kod, nawet jeśli sam go napisałeś.

+0

Plus kilka świetnych modułów zainstalowanych wszędzie, baterie w zestawie. – MrHus

5

Pierwszą rzeczą, którą musimy wiedzieć, są umiejętności językowe, które już posiadasz? Prawdopodobnie jest to dość duży wyznacznik tego, jaki wybór najlepiej byłoby podjąć.

Gdybym robił to sugeruję Java dla kilku powodów:

  1. Będzie ona trwać prawie wszędzie i spełniać wymagania masz opisane.
  2. Nie jest to język ezoteryczny, więc będzie wielu programistów.
  3. Już wiem, jak programować w nim!
  4. Prawdopodobnie najbardziej rozbudowany ekosystem biblioteczny dowolnej platformy programistycznej.

Należy również pamiętać, że można napisać go w innym języku na maszynie JVM, jeśli wygodniej będzie z Ruby lub Pythonem.

1

Perl może być pomocny, ponieważ jest dostępny na wielu platformach i można uzyskać prawie każdą funkcjonalność, po prostu instalując moduły z CPAN.

3

Wygląda na to, że Perl lub Python idealnie pasują do rachunku. Wybór, który wybierzesz, zależeć będzie od wiedzy ludzi budujących i wspierających system.

3

W kwestii języków skryptowych w porównaniu do Java, byłem rozczarowany rozwojem narzędzi wiersza poleceń przy użyciu Javy. Nie możesz ich bezpośrednio uruchomić, musisz (1) skompilować je i (2) napisać skrypt powłoki, aby wykonać plik jar, ten skrypt może się różnić między platformami. Polecam Python, ponieważ działa w dowolnym miejscu i ma świetną bibliotekę SQL, mysql-python. Biblioteka jest gotowa do użycia w systemach Windows i Linux. Python ma również o wiele mniejszą podstawę, napiszesz mniej linii kodu, aby zrobić to samo.

EDYCJA: kiedy mówiłem o tym, że pliki JAR są wykonywalne lub nie, mówiłem o tym, czy są one bezpośrednio wykonywalne, czy OS. Możesz oczywiście dwukrotnie kliknąć na nich, aby je uruchomić, jeśli twój menedżer plików jest skonfigurowany do tego. Ale kiedy jesteś w oknie terminala i chcesz uruchomić program java, musisz zamiast tego "./myapp.jar" "java -jar myapp.jar". W Pythonie po prostu uruchamia się "./myapp.py" i nie musi martwić się o kompilację ani ścieżki klas.

+0

Um, nie, nie (potrzebujesz pliku wsadowego/skryptu do uruchamiania programów Java). Możesz pakować wykonywalne słoiki. – cletus

+0

Chciałbym wyłączyć sugestię Java. Inne plakaty zasugerowały Python lub Ruby itp., Ale wsparcie na platformach innych niż 86 może być niejednolite - możesz pobrać wersję dla większości platform, ale niekoniecznie dla wszystkich bibliotek, których potrzebujesz. Również poważnie rozważałbym sqlite, a nie MySql, jeśli chcesz naprawdę wspierać dowolną platformę (obsługa platformy sqlite można podsumować jako "wszystko oprócz Nintendo DS" –

+0

Ale może potrzebować dostępu do wielu użytkowników, w takim przypadku SQLite jest naprawdę nie jest biegaczem –

1

Python lub Java. Oba są łatwe do wdrożenia zarówno w środowiskach serwerowych, jak i środowiskach, o których wspominasz - w systemach Linux/Solaris i Windows.

Perl to również dobry wybór, ale zależy to od tego, jak dobrze znasz Perl, jak dobrze inni ludzie, którzy utrzymają twój kod znają Perla, oraz od liczby użytkowników komputerów stacjonarnych, którzy są na tyle bystry, aby poradzić sobie z instalacją Windows Perl wersja (y).

Ponieważ Java obsługuje język Python za pośrednictwem Jython, sam bym spełnił wymagania JVM, ale osobiście skorzystałbym z aplikacji Java do takiego opisanego systemu.

Powiązane problemy