Wolelibyście program w Javie, czy w Delphi?

0

Załóżmy, że jakaś firma porządna robi bardzo dobre programy i mnóstwo ludzi ich używa. Czy wolelibyście by takie programy oni napisali w javie, czy w delphi? A drugie pytanie jest identyczne, ale już chodzi o grę, np. Diablo 3 w delphi, czy diablo 3 w javie?

2

Diablo 3 napisane w RADzie targetowanym głównie na pisanie frontendów bazodanowych (czyt. Delphi) [rotfl]

4

Ale co to za porównanie? o_O Java to jest technologia do pisania wielowarstwowych systemów klasy enterprise, a Delphi to jest technologia do prototypowania / szybkiego generowania aplikacyjek z kilkoma formularzami.

4

A co to za różnica dla użytkownika?
Jak dla mnie, to może być napisany nawet i w Brainfucku - ma po prostu działać.

0

W javie, bo dzięki jazelle lepiej by działało na armach.

1

Pisz w czym chcesz, byleby działało. Choć preferuję coś, bez instalowania czegokolwiek w systemie.
Myślałem na początku, że to będzie pytanie o Javę vs. .NET -> wtedy postawiłbym na .NET (czuję się z tym bezpieczniej niż z serem szwajcarskim potraktowanym serią z kałasza zwanym java).

2

Chyba chodziło Ci o Java vs C#. .NET jako platforma jest totalną porażką, chociaż C# już im się udał.

2

minecraft w javie jest napisany, a gdyby był w czymś innym, pewnie byłby wydajniejszy?
A programy, nie lubię programów pisanych w javie, kiedyś jeden program odpalał mi się tyle co nowa gra pc lol! wtedy sobie żartowałem, że GTA4 szybciej mi się odpali niż program ten jeden, dlatego przez to zacząłem nie lubić programów w javie, bo photoshop bez javy odpala się szybciej niż niektóre aplikacje w javie, czyli jakby te programy zamiast w javie napisali w byle czym innym, to odpalałyby się szybciej. Jedyna zaleta javy to multiplatformowość, odpalisz program, grę na wszystkim.

3

Wszystko jedno w czym jest program napisany, pod warunkiem że nie widać w czym jest program napisany.
Standardowa skórka Javowa jest straszna.
http://www.codinghorror.com/blog/2007/02/non-native-ui-sucks.html

7

Total Commander jest napisany w Delphi, a większość ludzi go używa ;) Więc tak naprawdę nie ma znaczenia w czym jest dany program napisany o ile działa :) Dla end usera to tak naprawdę bez znaczenia :) On chce programu a nie technologii.

0

Są też jakieś programy, które dziwnie są napisane np:
Skype - napisany w Embarcadero Delphi, Objective-C (iOS, OS X), C++ with Qt4 (Linux)
KMPlayer - napisany w Delphi, C++Builder, Netwide Assembler and Visual C++
dane z angielskiej wikipedii. Swoją drogą co oznacza te kilka języków w jednym programie?

A z programów napisanych w delphi są:
AQQ (o ile nie zmienili języka)
Dev c++ i jakiś podobny odpowiednik jego
PC Tools Spyware DoctorSpyware removal software
Spybot - Search & DestroySpyware
Game Maker
AIMP
FreeCommander
PortableApps (do programów portable i raczej open source jest)
Resource Hacker
Soldat (ta gra kiedyś była pisana w delphi, może twórca obecnie już zmienił język, nie wiem)
Web Page Maker
WinHex
i tysiące innych programów, z tym, że 95% z nich jest nieznanych większości, bo nie są te programy potrzebne tak jak przeglądarka itd. Widziałem też emulator jakiejś konsoli napisany w delphi, nie wiem czy sprawny i czy projekt nie upadł, prostą graficznie grę (chyba 3d) na screenie pokazywali.

0

Cheat Engine, source na dole jest:
http://www.cheatengine.org/downloads.php
i dopisek: (Note, big parts are written in Delphi)

0

Definitywnie Delphi. Dlaczego? Dlatego, że nie muszę instalować żadnych dodatkowych rzeczy. Dlatego, że będzie chodziło normalnie. Dlatego, że nie zeżre mi połowy RAMu. I z miliona jeszcze innych powodów.

0
ttttt napisał(a):

AQQ (o ile nie zmienili języka)

Oconnel miałby porzucić Delphi? :D
Poza tym, liczba mnoga to chyba wciąż nadużycie. Ostatnio jak byłem tematem zainteresowany (i nawet mikro wstawki mojego kodu wylądowały w AQQ), to był to projekt całkowicie jednoosobowy.

0

Wszystko zależy od tego co to za projekt i na jakie platformy.

Jeśli gra to może być:

Nie widziałem nigdy gry / engine'a pierwszej klasy - w rodzaju Kryzysu 3 - która była by oparta o Jave. Dlaczego tak jest trzeba by zapytać kogoś z domeny gamedev.

Jeśli nie gra to spektrum jest szersze i trzeba byłoby dokładnie opisać o jaką aplikację chodzi.

Ale aktualnie dla "programików" klasy desktop / PC poleciłbym:

  • Delphi / Lazarus - jeśli chodzi o szybkość samodzielnej implementacji lub aplikację bazodanową
  • C++ / Qt - jeśli trzeba wykorzystać jakieś gotowe rozwiązania w C++ lub jeśli chodzi o zagadnienia algorytmiczne
  • C# lub Jave - jeśli nie straszne nam to że użytkownik prawie na pewno ma akurat inny engine (JRE / .NET) niż wymagamy,
    • plusy: mnóstwo dostępnych na rynku komponentów, łatwość budowania interfejsu GUI, popularność, wydajność podobna do C++

C++ i Java są popularne w środowiskach naukowych (sieci neuronowe, algorytmy optymalizacyjne).
Z czwórki (Delphi, C++, Java, C#) w Javie będzie najtrudniej współpracować (AFAIK) z OS-em typu Linux czy Win32 (sterowniki, komunikacja I/O, rozszerzenia jądra, IPC).

Jeśli robimy wszystko od początku do końca sami to każdy z ww języków się nada. Ale nie polecam tego podejścia.

2

Aplikacja napisana w Delphi mi nie pójdzie na Linuksie. A nawet Java 1.1 odpali mi się szybciej niż Windows na maszynie wirtualnej.

Dlaczego tak jest trzeba by zapytać kogoś z domeny gamedev.

Gamedev jest konserwatywny. Jak wszyscy używali C, to gamedev kodował twardo w asemblerze. Jak się biznes przerzucił na C++, to gamedev twardo obstawał przy C, i rozpowszechniał FUD, że C++ jest powolne. Teraz biznes koduje w Javie, a gamedev trzyma się C++. Widzicie wzorzec?

0

Trochę zmagań Carmacka w Javie: http://www.armadilloaerospace.com/n.x/johnc/Recent%20Updates

I spent a fair amount of time looking at java byte code disassembly while optimizing my little rendering engine. This is interesting fun like any other optimization problem, but it alternates with a bleak knowledge that even the most inspired java code is going to be a fraction the performance of pedestrian native C code.

Co prawda java na komórki i wpis z 2005. Ale nie jest tak, że branża gamedev nie próbuje nowinek.

Gamedev jest konserwatywny. Jak wszyscy używali C, to gamedev kodował twardo w asemblerze. Jak się biznes przerzucił na C++, to gamedev twardo obstawał przy C, i rozpowszechniał FUD, że C++ jest powolne. Teraz biznes koduje w Javie, a gamedev trzyma się C++. Widzicie wzorzec?

Ale czy tak właśnie nie było? Pierwsze kompilatory C miały słabą optymalizację. C++ z nadużywanym boostem (czy chociażby strumieniami zamiast printfow) wciąż potrafi być znacznie wolniejszy niż ten sam kod napisany w C.

0

Dlatego, że nie muszę instalować żadnych dodatkowych rzeczy.

Oczywiście, że musisz... Windowsa chociażby. ;)
I nie wiem jak to tam z Delphi, ale wszelakie programy napisane w C++ kompilowane pod rantajmy visuala, wymagają byś zainstalował te rantajmy...
I co z tego, że masz najnowszego? Program potrzebuje tego z 2005 roku i tego konkretnego musisz zainstalować, bo inaczej wyskoczy jakże intuicyjny komunikat błędu "konfiguracja aplikacji jest nieprawidłowa" lub podobne. Podobnie idiotyczne błędy potrafią się pojawić przy .NET

Dlatego, że będzie chodziło normalnie.

A czy program napisany w Javie "chodziłby" jakoś nienormalnie? Okna się do góry nogami wyświetlają?

Dlatego, że nie zeżre mi połowy RAMu.

Kiedyś jakąś mini-gierę w delphi pisaną odpaliłem, grało się przyjemnie, dopóki się nie okazało, że 2GB ramu to za mało dla niej.
Z pewnością winne jest delphi, bo przecież autor tej gry na pewno nie popełnił żadnych gaf ;)

C# lub Jave - jeśli nie straszne nam to że użytkownik prawie na pewno ma akurat inny engine (JRE / .NET) niż wymagamy

W przypadku Javy to nie jest właściwie straszne ani trochę. Oficjalne API Javy jest zawsze kompatybilne wstecz... zresztą całkowicie legalnie można bundlnąć HotSpota jak i OpenJDK razem ze swoją aplikacją - wiele profesjonalnie wykonanych programów tak robi, przez co użytkownik nawet nie wie, że program w Javie jest napisany.

Poza tym, z tego co widzę, użytkownicy, nawet ci co są na bakier z komputerami, mają często zainstalowaną Javę i to wcale nie jakąś starą, zwykle nowszą.

Z czwórki (Delphi, C++, Java, C#) w Javie będzie najtrudniej współpracować (AFAIK) z OS-em typu Linux czy Win32 (sterowniki, komunikacja I/O, rozszerzenia jądra, IPC).

Tak, bo szczególnie w Delphi i C# tak łatwo współpracować z Linuksem ;)
Java nie służy do zabaw sterownikami czy rozszerzeniami jądra. (zresza C# też nie) Jej niezależnośc od platformy za bardzo by się z tym kłóciła. Masz do tego JNI.

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