Marek G.

Marek G. Architekt
Społeczności
Internetowych;
filozofia,
medytac...

Od kilku lat nie śledziłem na bieżąco co się dzieje w świecie narzędzi dla programistów, dlatego stawiam pytanie do tych co są na bieżąco, na jakich narzędziach (język + środowisko IDE) oprzeć się aby szybko i bezboleśnie stworzyć aplikację która:

* działa na platformach : Mac, Linux, XP
* ładnie wygląda
* sprawnie wyświetla teksty, grafikę i wszelkie pliki multimedialne
* bezproblemowo w wielu protokołach komunikuje się netem
* daje wsparcie dla kodowania i dekodowania gromadzonych/przetwarzanych danych
* nie stawia wygórowanych oczekiwań do zasobów komputera
* daje szansę na zabezpieczenie przed nielegalnym kopiowaniem

projekt tymczasowo jest związany z mocno zakręconym i nietypowym e-learningiem , ale docelowo ma być to platforma do dystrybucji zasobów wszelkiego typu w obu kierunkach (klient-serwer) w tym gier edukacyjnych itp.

projekt jest realizowanych w ramach hobby, nie chcę więc wydawać fortuny na narzędzia, z drugiej strony przywykłem do komfortu który zapewniał ongiś BC6++, piszę także w PHP bez jakiegokolwiek środowiska ale wolałbym IDE + dobry debugger

kiedyś programowałem w asemblerze, także szesnastkowo, ale teraz chcę coś zrobić szybko i bezwysiłkowo, dlatego proszę o sugestie aktualnych codeguru ;)

moje oczekiwania cross-platformowe pewnie zaspakaja java ale nigdy jej nie pokochałem, pisanie kilku midletów na telefony było mocno zniechęcające

kilka lat temu kiedy postawiłem podobne pytanie zaproponowano mi BASIC który kompilował się na wszystkie oczekiwane platformy: Mac, Linux, XP

co drodzy eksperci polecacie dzisiaj ?

konto usunięte

Nie znając założeń mogę tylko napisać że najlepiej szukać jak najbliżej najprostszego rozwiązania. Dodatkowo aktualny kierunek rozwoju idzie powoli też w kierunku takich właśnie aplikacji dzięki temu że platforma klienta jest całkowicie obojętna (prawie).
Pewnie już można domyślać się że mam na myśli aplikacje pisane w PHP, przede wszystkim są tanie w tworzeniu (nie trzeba kompilować, kod jest wyjątkowo wygodny) aktualnie dają coraz większe możliwości (troszkę AJAX'u i nie ma większych różnic od zwykłego softu).

Taki produkt ma masę plusów z mojego punktu widzenia, jednak nie koniecznie może spełniać twoje oczekiwania.

Co do środowiska właściwie to edytora z dodatkowymi funkcjami to polecam Zend.

Wiem że to "jest tylko www" ale może zbyt daleko sięgasz wzrokiem. W sumie może to jest lekki offtopic... ;)Łukasz Sokolik edytował(a) ten post dnia 04.08.08 o godzinie 08:02

konto usunięte

1) Najpewniejszym rozwiązaniem jest C/C++. Na pewno da się na wszystkich wymienionych platformach. Do tego biblioteka GUI (graficzny interfejs) - Qt. Niezbyt wygodne, ale najwydajniejsze.
Nie wiem jednak czy to najbardziej optymalne rozwiązanie.

2) Drugi sposób to C#. A dokładniej Mono. Działa na wszystkich wymienionych platformach i ma darmowe IDE: MonoDevelop.

3) Środowisko skryptowe - PHP. Może być w wersji desktop lub WWW.
Jeśli chodzi o desktop to należałoby się zainteresować środowiskiem PHP-Qt lub PHP-GTK. Rozwiązanie takie z tego co mi wiadomo dopiero raczkuje.

Najłatwiej zrobić to na PHP/WWW. Przenośność pełna(najlepsza), ale budowanie GUI już nie takie proste (chyba że się weźmie któryś z mega-frameworków AJAX-owych typu YUI, Dojo Toolkit). Aby uzyskać dobrą wydajność w multimediach koniecznie trzeba się wspierać modułami kompilowanymi.

IDE: PDT, można spróbować Delphi for PHP 2
Framework: CakePHP

4) Java. Przenośna, wydajna, pełne wsparcie dla GUI. W porównaniu do PHP trudniejsza w dystrybucji na stacjach (można się wspierać Java Web Start).

IDE: JBuilder 2008 Turbo, Eclipse + JGear

5) Inne języki skryptowe (WWW). Python (wparcie dla aplikacji desktop), Ruby.

Ze względu na rozwój środowisk i dostępność kodu zastanawiałbym się nad PHP/WWW lub Java. W Java zrobisz łatwiej interfejs, w PHPie wszystko będzie łatwiej, ale niekoniecznie wydajnie (potrzebny AJAX).

Z tego co wiem, specjaliści od Java są drożsi.

konto usunięte

Najpopularniejszą platformą IDE jest obecnie eclipse i jego projekty http://eclipse.org. Można przebierać w ich różnorodności. Natomiast bardzo ciekawym narządkiem eclipse'owym jest Topcased.
Z Twojej wypowiedzi wynika, że MDA dałoby Ci sporo natchnienia.
Po przyjrzeniu się tej technologii polecam temat http://www.goldenline.pl/grupa/model-driven-architecture.
Marek G.

Marek G. Architekt
Społeczności
Internetowych;
filozofia,
medytac...

Piotr Likus:

4) Java. Przenośna, wydajna, pełne wsparcie dla GUI. W porównaniu do PHP trudniejsza w dystrybucji na stacjach (można się wspierać Java Web Start).

na czym polega trudność w dystrybucji ?

konto usunięte

Marek Górny:
Piotr Likus:

4) Java. Przenośna, wydajna, pełne wsparcie dla GUI. W porównaniu do PHP trudniejsza w dystrybucji na stacjach (można się wspierać Java Web Start).

na czym polega trudność w dystrybucji ?

Aplikację desktop trzeba zainstalować na stacji.
Zarządzanie wersją, konfiguracją środowiska i sprzętu. Przy aplikacjach WWW tego nie ma. Więc kilka admino-godzin odpada.

konto usunięte

Piotr Likus:
Marek Górny:
Piotr Likus:

4) Java. Przenośna, wydajna, pełne wsparcie dla GUI. W porównaniu do PHP trudniejsza w dystrybucji na stacjach (można się wspierać Java Web Start).

na czym polega trudność w dystrybucji ?

Aplikację desktop trzeba zainstalować na stacji.
Zarządzanie wersją, konfiguracją środowiska i sprzętu. Przy aplikacjach WWW tego nie ma. Więc kilka admino-godzin odpada.

To raczej nie aplikacja Java jest trudniejsza w dystrybucji tylko aplikacja desktopowa jest trudniejsza w dystrybucji od aplikacji webowej. Aplikacja Javowa moze byc zarowno desktopowa lub webowa. Aplikacja webowa w Javie tak samo sie dystrybuuje jak aplikacja webowa w PHP.
Marek G.

Marek G. Architekt
Społeczności
Internetowych;
filozofia,
medytac...

Pawel Dolega:

To raczej nie aplikacja Java jest trudniejsza w dystrybucji tylko aplikacja desktopowa jest trudniejsza w dystrybucji od aplikacji webowej.

moja aplikacja ma być desktopowa, jakich problemów w trakcie dystrybucji mogę oczekiwać na poszczególnych platformach?

konto usunięte

Pawel Dolega:
Piotr Likus:
Marek Górny:
Piotr Likus:

4) Java. Przenośna, wydajna, pełne wsparcie dla GUI. W porównaniu do PHP trudniejsza w dystrybucji na stacjach (można się wspierać Java Web Start).

na czym polega trudność w dystrybucji ?

Aplikację desktop trzeba zainstalować na stacji.
Zarządzanie wersją, konfiguracją środowiska i sprzętu. Przy aplikacjach WWW tego nie ma. Więc kilka admino-godzin odpada.

To raczej nie aplikacja Java jest trudniejsza w dystrybucji tylko aplikacja desktopowa jest trudniejsza w dystrybucji od aplikacji webowej. Aplikacja Javowa moze byc zarowno desktopowa lub webowa. Aplikacja webowa w Javie tak samo sie dystrybuuje jak aplikacja webowa w PHP.

Tylko że koszt wytworzenia i wspierania aplikacji Java/WWW w tym przypadku mija się chyba z celem... No ale mogę się mylić.
Mirosław O.

Mirosław O. netBOMB.pl

Piotr Likus:
Framework: CakePHP

O ile się nic nie zmieniło (nie obserwuje rozwoju tego FW) to cakePHP jest w PHP4, a więc opieranie aplikacji o tego FW to strzelenie sobie "samobója" ;) delikatnie ujmując.
Jakub Kaniewski

Jakub Kaniewski Szef zespołu
programistów BMNet

Jeżeli aplikacja ma być desktopowa (nie przez WWW) i wieloplatformowa to w grę wchodzą dwa rozwiązania

1) Java z interfejsem Swing
zalety : sprawdzona technologia, dużo dodatkowych bibliotek, bozpośrednia komunikacji z serwerami aplikacyjnymi
wady : problematyczna obsługa multimediów, trudność w robieniu skórek/fajerwerków graficznych

2) Adobe AIR
zalety : środowisko wywodzące sie z Flasha/Flexa, łatwa modyfikacja wyglądu, dobra obsługa multimediów, integracja z systemem operacyjnym (pulpit, widgety, drag and drop)
wady : krócej na rynku niż Swing, konieczność korzystania z warstw pośrednich do łączenia z serwerem aplikacyjnym (np. BlazeDS)

Jeżeli chodzi o platformy do oba rozwiązania są na Windows/Linux/Mac OS X. Java jest jeszcze na kilka innych egzotycznych systemów (np. Solaris), ale jest to raczej pomijalne. Oba rozwiąza umożliwiają automatyczną instalację i aktualizację programów przez internet. Dla rozwiązań multimedialnych AIR jest dobrym wyborem.
Radosław Gąsiorek

Radosław Gąsiorek Principal Software
Engineer -
Architecture at
Secureworks...

generalnie lubie ostatnio polecac FLEXa od Adobe - niestety oryginalne narzędzie jest płatne ale są tez wersje open sourcowe. Dlaczego - strzał w nowe technologie, strzał w rynek gdzie jest jeszcze w tej dziedzinie naprawdę mało specjalistów.

Marek Górny:
Od kilku lat nie śledziłem na bieżąco co się dzieje w świecie narzędzi dla programistów, dlatego stawiam pytanie do tych co są na bieżąco, na jakich narzędziach (język + środowisko IDE) oprzeć się aby szybko i bezboleśnie stworzyć aplikację która:

* działa na platformach : Mac, Linux, XP
* ładnie wygląda
* sprawnie wyświetla teksty, grafikę i wszelkie pliki multimedialne
* bezproblemowo w wielu protokołach komunikuje się netem
* daje wsparcie dla kodowania i dekodowania gromadzonych/przetwarzanych danych
* nie stawia wygórowanych oczekiwań do zasobów komputera
* daje szansę na zabezpieczenie przed nielegalnym kopiowaniem

projekt tymczasowo jest związany z mocno zakręconym i nietypowym e-learningiem , ale docelowo ma być to platforma do dystrybucji zasobów wszelkiego typu w obu kierunkach (klient-serwer) w tym gier edukacyjnych itp.

projekt jest realizowanych w ramach hobby, nie chcę więc wydawać fortuny na narzędzia, z drugiej strony przywykłem do komfortu który zapewniał ongiś BC6++, piszę także w PHP bez jakiegokolwiek środowiska ale wolałbym IDE + dobry debugger

kiedyś programowałem w asemblerze, także szesnastkowo, ale teraz chcę coś zrobić szybko i bezwysiłkowo, dlatego proszę o sugestie aktualnych codeguru ;)

moje oczekiwania cross-platformowe pewnie zaspakaja java ale nigdy jej nie pokochałem, pisanie kilku midletów na telefony było mocno zniechęcające

kilka lat temu kiedy postawiłem podobne pytanie zaproponowano mi BASIC który kompilował się na wszystkie oczekiwane platformy: Mac, Linux, XP

co drodzy eksperci polecacie dzisiaj ?
Marek G.

Marek G. Architekt
Społeczności
Internetowych;
filozofia,
medytac...

Właśnie testuję Lazarusa i kompiluję ten sam kod dla XP + Ubuntu + MacOs, dodatkowo z komponentami Indy10
Mateusz Kurleto

Mateusz Kurleto Szukamy wybitnych
talentów do
świetnego zespołu IT
w Gdańsku

Marek Górny:
Właśnie testuję Lazarusa i kompiluję ten sam kod dla XP + Ubuntu + MacOs, dodatkowo z komponentami Indy10
2 lata? To sie nazywa konsekwencja:) Godny przykład jak można wrócić do dyskusji i nie tworzyć zbędnych tematów.
Marek G.

Marek G. Architekt
Społeczności
Internetowych;
filozofia,
medytac...

..., dodam więcej: to się dodatkowo kompiluje na Windows Mobile, wygodne narzędzie RAD w stylu DELPHI, jedyny problem to język .... PASCAL ;(

ale w zamian zasysa starsze projekty i koponenty z Delphi

Następna dyskusja:

Efektywne programowanie


Wyślij zaproszenie do