Nowoczesny język do webdevelopment?

0

Cześć. Chciałbym was zapytać czy istnieje albo jest w trakcie rozwijania nowy język programowania do szeroko pojętego webdevelopment? Mam głównie na myśli język który mógłby zastąpić w przyszłości obecnie wykorzystywane języki. Dla porównania na platformie Android takim językiem jest Kotlin, ktory wypiera Java. Z kolei na iOS jest Swift zamiast Objective-C.

Zakładam, że języki opisowe czyli HTML oraz CSS raczej pozostaną, ale do pisania backendu oraz frontendu może powstać coś innego, lepiej zaprojektowanego i bez niejasności i np. spójności w nazewnictwie funkcji i bez niepotrzebnych konstrukcji językowych.

Czy może wizja jest nieco inna i będą rozwijane aktualnie panujące czyli PHP, JavaScript, Python, Java, C#, Ruby?

0

juz powstal, nazywa sie c#

2
Mały Ogórek napisał(a):

juz powstal, nazywa sie c#

oczywiscie byl to zart

0

Jeśli chodzi o FE to wydaje mi się, że TypeScript dość mocno napiera na JS (tyle, że nawet nie wiem, czy można tu mówić o nowym języku, nawet na stronie projektu piszą o nim jako o 'typed superset of Javascript'). Ciekawy jest również Elm - ale raczej nie sądzę, aby miał on zastąpić JS.

0

Tylko że TypeScript to nadal JavaScript a ja mam na myśli nowe języki dla backendu i frontendu. Czy coś takiego jest w planach, produkcji?

0

Nic powaznego. Do jsa mozna kompilowac z kotlina/scali ale to wciaz js

4

Do jsa mozna kompilowac z kotlina/scali ale to wciaz js

To tak jakby napisać, że Scala kompiluje się do Javowego bajtkodu, więc to wciąż Java. Albo, że C++ kompiluje się do LLVMowego bitkodu, więc to dalej LLVM.

3

nowy język = napisanie wszystkich bibliotek od nowa
stary język = większość rzeczy gotowa

Dlatego nawet jak powstanie nowy język i w jakiś sposób przewyższy inne (a na pewno taki już powstał) to na jego adaptację i podbicie innych starych języków będzie potrzeba dużo czasu. Zakładając, że te stare języki przestaną się rozwijać - co się nie dzieje ponieważ cały czas są wydawane ich nowe wersje.

Dodatkowo trzeba brać pod uwagę kompatybilność, założmy, że dzisiaj wyszedł jakiś język X który jest 100 razy lepszy od JavaScript - przeglądarki zaczną go obłsugiwać za kika miesięcy/lat (o ile w ogóle zaczną) - a wszystkie stare przeglądarki nadal będą wymagały starej składni JavaScript. A jak dobrze wiemy (web) czasami trzeba pisać rzeczy kompatybilne z przeglądarkami które powstały niecałe 20 lat temu (np. IE6).

Android i iOS też zostaną prawdopodobnie podbite przez JavaScript - poczytaj o PWA. Dzisiaj nie można jeszcze wszystkiego w nim napisać ale z czasem to się zmienia - to się opłaca biznesowi, łatwiej znaleźć programistów jak każdy potrafi pisać w tym samym języku.

Bardzo możliwe, że powstanie jakaś nowa nadrzędna warstwa abstrakcji która będzie "kompilowana" do czystego JavaScript - tak jak to robi TypeScript.

1

Może język golang. Uwaga nowoczesny to nie równa się popularny. "Nowoczesność" na pewno nie wyprze sprawdzone obecne języki takie jak php, c sharp, java, czy python. Golang pod względem wydajności jest na pewno najlepszym rozwiązaniem :)

0

Golang pod względem wydajności jest na pewno najlepszym rozwiązaniem :)

To znaczy? Jest jakoś kosmicznie szybszy od np Javy? Z mikrobenchmarków na stronie https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html wynika iż golang jest znacznie szybszy (o jakieś 50%) tylko w przypadku programu pidigits. Testuje on szybkość JNI w Javie, a nie jest to mechanizm często wykorzystywany. Natomiast w przypadku binarytrees Java jest ponad 3x szybsza, a jest to test mocno obciążający GC (zarówno Java jak i golang są oparte o tracing GC).

2

Chciałbym was zapytać czy istnieje albo jest w trakcie rozwijania nowy język programowania do szeroko pojętego webdevelopment?

WebAssembly

WebAssembly jest nowym rodzajem języka, który może być uruchomiony w nowoczesnych wersjach przeglądarek — jest językiem niskopoziomowym, który działa z szybkością zbliżoną do rozwiązań natywnych i pozwala na kompilacje kodu napisanego w takich językach jak C/C++ do kodu docelowego, który może być użyty w web.
Równocześnie możemy w nim korzystać z Javascript.

1

Nie wiem czy jest sens szukać nowoczesniejszego języka. W końcu do każdego gówna można się przyzwyczaić. Po prostu jak piszesz ileś lat w języku X, to masz gdzieś, że coś jest niewygodnego, albo że coś jest nieintuicyjne. Liczą się skille i że nawet jak piszesz w słabym języku to jesteś produktywny (bo lata praktyki czynią cuda). Dlatego języki takie JS, PHP czy Java dalej mają swoich fanów (chociaż i one się jakoś rozwijają i "unowocześniają").

To trochę jak z językiem naturalnym. Jak mówisz po polsku, to mówisz (i piszesz) w nim pomimo tego, że ortografia jest tródna a odmianę przez przypadków ciężko się nauczyć.
Tak samo jak mówisz po angielsku to też musisz jakoś przeboleć choćby fakt, że każde słowo się inaczej czyta. W każdym języku są jakieś dziwne rzeczy.

Poza tym co to znaczy nowoczesny? Jaki to jest nowoczesny język? Może lepiej zamiast nowoczesnego szukać dobrze zaprojektowanego języka? I tak te "nowoczesne" języki zwykle i tak czerpią swoją "nowoczesność" po prostu z inspiracji starymi językami sprzed kilkudziesięciu lat, a nie wymyślają niczego nowego.

1

Jeśli dopiero uczysz się programowania to nauka nowego języka przyhamuje Twój rozwój, ponieważ będziesz miał mniej materiałów do nauki, mniej narzędzi i bibliotek. Jak się w tym połapiesz to i tak bez doświadczenia ciężej będzie Ci wystartować z pracą, ponieważ będziesz miał wtedy mniej ofert i wymagane chociaż 2-3 lata doświadczenia w podobnych technologiach.

0
Markuz napisał(a):

A jak dobrze wiemy (web) czasami trzeba pisać rzeczy kompatybilne z przeglądarkami które powstały niecałe 20 lat temu (np. IE6).

Oj to już przeszłość, od biedy zrozumiałbym gdyby chodziło o IE10, ale żeby IE6 wspierać w 2018? Wystarczy dodać stronę informacyjną z prośbą o zmianę przeglądarki na inną. W końcu kiedyś trzeba odciąć się od staroci, które w przypadku IE lepiej porzucić i zostawić w technologicznym muzeum ;)

0

Masz Kotlina do backendu. Będa na nim działac biblioteki Javove a sam język jest fajny :)

0
scibi92 napisał(a):

Masz Kotlina do backendu. Będa na nim działac biblioteki Javove a sam język jest fajny :)

https://allegro.tech/2018/05/From-Java-to-Kotlin-and-Back-Again.html

0

Do webdev jest teraz cała gama nowoczesnych języków:
ES6, TypeScript, C++, KotlinJs, ScalaJs, Elm, Haskell...

0

Coś się uparli na ten frontend... Co z backendem?

0

Na backendzie było, jest i będzie multum języków. Słyszałem dobre rzeczy o bashu https://github.com/jneen/balls

0
Wibowit napisał(a):

Golang pod względem wydajności jest na pewno najlepszym rozwiązaniem :)

To znaczy? Jest jakoś kosmicznie szybszy od np Javy? Z mikrobenchmarków na stronie https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html wynika iż golang jest znacznie szybszy (o jakieś 50%) tylko w przypadku programu pidigits. Testuje on szybkość JNI w Javie, a nie jest to mechanizm często wykorzystywany. Natomiast w przypadku binarytrees Java jest ponad 3x szybsza, a jest to test mocno obciążający GC (zarówno Java jak i golang są oparte o tracing GC).

Te benchmarki mają podobny sens do twierdzenia: moje koło kręci się szybciej, więc na torze pojadę szybciej (bez uwzględnienia: mocy silnika, skrzyni biegów, profilu tego toru, masy własnej, średnicy kół, dobranych opon, etc, etc). Krótko mówiąc: znaczą tyle, co nic.

Teraz z punktu widzenia golangowca: nie rozumiem interpretacji binary tree tam użytej - raczej nikt by tego tak dziwnie nie napisał w Go, waląc pamięć per node, tylko zaalokowałby od razu z góry. Generalnie konstrukty idiomatyczne w języku X, mogą być zupełnie błędne w Y. Być może zrozumiałbym zamysł autorów, że ma to być takie idiomatic (dla danego języka), jak to tylko możliwe i żadne premature optimizations nie są dozwolone - ok, to co w takim razie robi tam cgo? Takich zarzutów jest więcej.
I przykład, dlaczego to garbage: https://goo.gl/WcgpWa - koleś nie używa nic spoza stdlib, oczywiście bez cgo.

Żeby nie było: nie mówię w tym poście, że Go/Java są wolniejsze/szybsze, żeby ktoś nadgorliwy sobie nie dośpiewał.

0

Celem tych mikrobenchmarków nie jest obliczenie wyniku jak najszybciej. Poprawny wynik jest konieczny, ale nie wystarczający. Głównym celem jest testowanie wydajności konkretnych scenariuszy. W binarytrees chodzi o zmierzenie szybkości wielu małych alokacji.

Jak ci tak bardzo nie pasi to można olać test binarytrees i popatrzeć na inne. W innych golang ma szybkość porównywalną z Javą oprócz dwóch testów - jeden to pidigits, który testuje wydajność JNI w Javie (rzadko używany mechanizm), a drugi to regex-redux, gdzie Java jest 3x szybsza niż go.

Ogólnie jak na język statycznie typowany to nie ma rewelacji z tym golangiem.

0
Wibowit napisał(a):

Celem tych mikrobenchmarków nie jest obliczenie wyniku jak najszybciej. Poprawny wynik jest konieczny, ale nie wystarczający. Głównym celem jest testowanie wydajności konkretnych scenariuszy. W binarytrees chodzi o zmierzenie szybkości wielu małych alokacji.

Jak ci tak bardzo nie pasi to można olać test binarytrees i popatrzeć na inne. W innych golang ma szybkość porównywalną z Javą oprócz dwóch testów - jeden to pidigits, który testuje wydajność JNI w Javie (rzadko używany mechanizm), a drugi to regex-redux, gdzie Java jest 3x szybsza niż go.

Jakbyś przeczytał dokładnie, to byś wiedział, że doskonale wiem, co to testuje (przynajmniej w teoretycznym zamierzeniu autorów). I nawet dałem argument, dlaczego te testy są niemiarodajne kompletnie (i nie, nie jest to kod gościa co napisał to znacznie szybciej). Oczywiście, możesz metodą zdartej płyty ciągle powtarzać, że JNI w Javie jest rzadko używany i takie tam, ale to nie przybliża do meritum.

0

A jakie jest meritum? Ja odniosłem się do stwierdzenia, że golang to jakieś wydajnościowe cudo, a takim nie jest. W Javce można spokojnie pisać równie wydajny biznesowy kod.

0
Wibowit napisał(a):

A jakie jest meritum? Ja odniosłem się do stwierdzenia, że golang to jakieś wydajnościowe cudo, a takim nie jest.

Niestety, przedpiśca (@ProgramistaBezWiedzy ?) się nie popisał i jedynie włożył kij w mrowisko prostym osądem bez konkretych danych.

W Javce można spokojnie pisać równie wydajny biznesowy kod.

Ja tego absolutnie nie podważam, pomimo tego, że Javy raczej nie znam.

0

Język Crystal z frameworkiem Amber - "Fast as C slick as Ruby"

0

@Wibowit: @TurkucPodjadek: blabla. Java i Go są językami trochę innego przeznaczenia. Oba potrafią się dogadywać więc jaki sens porównywania? Poza tym skoro już mówimy o szybkości to crudowe api poproszę w Javie i Go. Mierzymy czas wykonania i ilość linijek. Czas start...

Co do nowoczesnych języków do web - http://phoenixframework.org/

0

Testy wydajności CRUDów i innych webowych hello worldów są tutaj: https://www.techempower.com/benchmarks/

Jeśli skupiać się tylko na wynikach najszybszych frameworków to w 4 benchmarkach Java zdecydowanie wygrywa z Go, w pozostałych dwóch wyniki są porównywalne.

0

Golang nie jest wydajnosciowym cudem ani nie wnosi za bardzo nic nowego. Ale do wielu rzeczy jest good enough i prosto w nim zrobic kod, ktory bedzie latwyw zarzadzaniu jesli trzymamy sie linterow gocheckow itp.

Ogolnie mi sie podoba. A zwlaszcza soft jaki sie w nim pisze. Obecnie pracy jest w tym malo.

Mysle o przeskoczeniu z javy do golanga. Po ponad 3 latach przygody z java. Sama technologia jest ok. Ale gorzej z ludzmi. Masa wypalonych.

Chyba jesli sprobuje przeskoczyc na Go to chyba zawsze bede mial jakas droge powrotu na w razie W?

0
Skromny Szczur napisał(a):

javy do golanga. Po ponad 3 latach przygody z java. Sama technologia jest ok. Ale gorzej z ludzmi. Masa wypalonych.

Argumentacja z gatunku "szukam sobie problemu, bom znudzony"

Chyba jesli sprobuje przeskoczyc na Go to chyba zawsze bede mial jakas droge powrotu na w razie W?

Niestety. Go wymazuje pamięć o pozostałych językach, więc nie ma już powrotu z takiej przygody. ;-)

0
TurkucPodjadek napisał(a):
Skromny Szczur napisał(a):

javy do golanga. Po ponad 3 latach przygody z java. Sama technologia jest ok. Ale gorzej z ludzmi. Masa wypalonych.

Argumentacja z gatunku "szukam sobie problemu, bom znudzony"

Moze i tak. Ale co z tego ;)
Golang dosc mocny w open source to tez bym chcial cos podzialac ;)

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