Autor Wątek: Technologie do przeglądarkówek  (Przeczytany 5614 razy)

Offline proquest

  • Użytkownik

# Czerwiec 21, 2015, 00:47:20
Siema, w czym się dziś robi gry a'la plemiona czy coś takiego?
Po stronie serwera siedzi jeszzce php? czy już to raczej przeżytek?
po stronie klienta js? node.js?
oreintuje się ktośjak to wygląda?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline JasonVoorhees

  • Użytkownik
    • The Immortal Life of the Son of Jay

# Czerwiec 21, 2015, 06:21:08
Kod w PHP jest trudny w utrzymaniu. Lepiej skorzystać z Javy lub C# (refaktoryzacja kodu praktycznie nie generuje błędów w językach statycznie typowanych :) ).

Po stronie klienta... co prawda nie używałem, ale Unity 5.1 ma próbny eksport do WebGL :)

Offline wozix

  • Użytkownik

# Czerwiec 21, 2015, 16:06:33
Unity 5.1 ma próbny eksport do WebGL :)
to już spory overkill jak do takich gier.

Offline Xender

  • Użytkownik

# Czerwiec 21, 2015, 16:15:51
W tych grach, które już istnieją, jest spora szansa, że siedzi PHP.
I jest to przeżytek, ale po co przepisywać coś, co działa wystarczająco dobrze.

Kod w PHP jest trudny w utrzymaniu. Lepiej skorzystać z Javy lub C#
Tudzież Pythona czy Ruby.
Albo jakieś node.js, aczkolwiek JS choć nie jest tak skopany jak PHP, to swoje dziwnostki ma.

(refaktoryzacja kodu praktycznie nie generuje błędów w językach statycznie typowanych :) ).
Co masz na myśli?
Mogę sobie wyobrazić, że ustrzegą od błędów jak pozostawienie gdzieś starej nazwy funkcji czy niezgodność typu zwracanego.
Od błędów logicznych przy jakiejkolwiek edycji kodu język nie ma jak ustrzec, jaki by nie był.
Więc co rozumiesz przez "refaktoryzacja praktycznie nie generuje błędów"?
« Ostatnia zmiana: Czerwiec 21, 2015, 16:17:34 wysłana przez Xender »

Offline Xirdus

  • Redaktor

# Czerwiec 21, 2015, 17:20:40
Od błędów logicznych przy jakiejkolwiek edycji kodu język nie ma jak ustrzec, jaki by nie był.
Jak się ma UT-ki to się da ;)

Offline Xender

  • Użytkownik

# Czerwiec 21, 2015, 17:25:31
UT-ki
Co to?

(sorry, nawet nie próbuję szukać na necie, dwuliterowy skrót...)

Offline Tinekk

  • Użytkownik

# Czerwiec 21, 2015, 17:49:13
Co to?

(sorry, nawet nie próbuję szukać na necie, dwuliterowy skrót...)

Unit testy

Offline Xender

  • Użytkownik

# Czerwiec 21, 2015, 17:52:20
W takim razie unit testy i jakiekolwiek testy w ogóle to przecież kwestia w dużym stopniu niezależna od języka, w szczególności od tego, czy język jest statycznie typowany.

Offline timus

  • Użytkownik

# Czerwiec 21, 2015, 21:17:30
Wracając do tematu.

Po stronie serwera w zasadzie można użyć wszystkiego co da się opalić na danym sprzęcie(poczynając od asm'a, przez c i c++, po python czy c# i wiele innych dziwacznych języków), najlepiej wybrać to w czym się komu dobrze kodzi.

Po stronie przeglądarki jest trochę gorzej, bo w zasadzie można na niej odpalić tylko JS, więc jeżeli chcemy użyć innego języka to trzeba go jakoś kompilować do JS. Jeżeli projekt od początku piszemy na przeglądarkę to nie wodze sensu używania niczego innego niż czysty JS.

Offline koirat

  • Użytkownik

# Czerwiec 21, 2015, 21:28:44
Jeżeli nie ma problemu przy konwersji <Inny język> na JS to w sumie w czym problem żeby pisać w innym języku ? Według mnie JS do najfajniejszych nie należy.

Jeden z problemów jaki mogę sobie wyobrazić co prawda to debugowanie, ale naprawdę jeśli miał bym programować w JS zamiast w ulubionym języku to chyba bym to jakoś przecierpiał.

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Czerwiec 21, 2015, 22:48:23
Cytuj
Tudzież Pythona czy Ruby.
Nie wiem czy Ruby jest prekompilowany i statycznie typowany, ale jak już odchodzimy od PHP, to przejdźmy chociaż już do czegoś, co 90% błędów wykrywa na etapie kompilacji.

Cytuj
Więc co rozumiesz przez "refaktoryzacja praktycznie nie generuje błędów"?
Refaktoryzując język statycznie kompilowany masz w praktyce bliską zeru szansę, że o czymś zapomnisz.

Cytuj
Jeżeli projekt od początku piszemy na przeglądarkę to nie wodze sensu używania niczego innego niż czysty JS.
To zależy. Jeżeli zależy Ci na wydajności, to polecał bym raczej coś, co kompiluje się do asm.js (i ma zamiar niedługo kompilować się do web assembly), na przykład C++/Emscripten.

Cytuj
Jeżeli nie ma problemu przy konwersji <Inny język> na JS to w sumie w czym problem żeby pisać w innym języku ?
Z mojego doświadczenia: nie ma żadnych. :) Swój framework na asm.js uruchomiłem w dwa wieczory, a przeportowanie Unreal Engine 4 ponoć zajęło 4 dni.

Cytuj
Jeden z problemów jaki mogę sobie wyobrazić co prawda to debugowanie, ale naprawdę jeśli miał bym programować w JS zamiast w ulubionym języku to chyba bym to jakoś przecierpiał.
Albo byś ogarnął to tak, aby projekt alternatywnie kompilował się natywnie poza przeglądarką i 99% rzeczy debugował byś tam. :)

Offline Xender

  • Użytkownik

  • +1
# Czerwiec 22, 2015, 00:39:16
Nie wiem czy Ruby jest prekompilowany i statycznie typowany, ale jak już odchodzimy od PHP, to przejdźmy chociaż już do czegoś, co 90% błędów wykrywa na etapie kompilacji.
Nie jest.

Jakie masz doświadczenie w webówce, że uważasz, że języki statycznie kompilowane są tu praktycznym rozwiązaniem?
Bo z poprzednich dyskusji, w moich oczach masz dopisek "ten gość świetnie zna i porusza się w C++, ale przez to wpychałby go nawet tam, gdzie pasuje jak pięść do oka".

Przypominam, że mówimy o tych przeglądarkówkach, które więcej mają wspólnego z typowymi webappkami, niż inne MMO.

Refaktoryzując język statycznie kompilowany masz w praktyce bliską zeru szansę, że o czymś zapomnisz.
Masz bardzo dużą szansę, tylko, że przeważnie zostanie to wykryte na etapie kompilacji.
Przeważnie, nie zawsze. Można się spierać lub czepiać za słówka, czy jest to "szansa bliska zeru".


@koirat - Debugowanie, biblioteki, potencjalne kłopoty z build systemem.
Nie jest też powiedziane, że pisząc w innym języku i kompilując do JS będzie się miało z głowy problemy charakterystyczne dla JS.
Prawo nieszczelnych abstrakcji* sugerowałoby, że będzie odwrotnie, i do utrzymania programu kompilowanego do JS może okazać się potrzebna dobra znajomość języka źródłowego, JS i dodatkowo build systemu.

*Patrz także drugi link: http://www.joelonsoftware.com/articles/LeakyAbstractions.html

Offline JasonVoorhees

  • Użytkownik
    • The Immortal Life of the Son of Jay

# Czerwiec 22, 2015, 00:55:32
Więc co rozumiesz przez "refaktoryzacja praktycznie nie generuje błędów"?
Mam na myśli np. rename w ramach projektu :) W PHP gdzieś nie wpiszesz jakiego typu jest argument metody, pole klasy i wszystkiego Ci nie złapie ;)

Offline Xender

  • Użytkownik

# Czerwiec 22, 2015, 01:18:11
No to tak, przy refaktorze w postaci zmiany nazw faza kompilacji wykryje babola.

Tylko, że zmiana jakiejś nazwy to wierzchołek góry lodowej refaktoringu - zabiegi takie jak podział/łączenie funkcji, wydzielanie zduplikowanego kodu do osobnej funkcji, czy rozplątywanie spaghetti (przy którym przestaje chcieć się wyszczególniać i nazywać pojedyncze etapy refaktoringu) to okazja do popełnienia błędów logicznych.

I bum, segfault czy zdawkowy wyjątek zamiast stacktrace'a OOTB (porównując C++/Javę vs. Python).
Chyba, że wyjątki w Javie domyślnie wypisują/zapisują* gdzieś stacktrace i inne przydatne informacje.

* (zapisują w czymś przyjemniejszym, niż odpowiednik natywnego coredumpa).

Offline wozix

  • Użytkownik

# Czerwiec 22, 2015, 01:19:15
Ja to tu tylko zostawię - http://hacklang.org/