Jaką techonologię wybrałbyś jako junior w 2020 roku?

Jaką techonologię wybrałbyś jako junior w 2020 roku?
necioo
  • Rejestracja:prawie 5 lat
  • Ostatnio:około 4 lata
  • Postów:4
0

Załóżmy, że cofacie się w czasie i znowu jesteście piękni i młodzi. Jesteście sobie studentami na 2/3 roku i lubicie programować. Jaką technologię wybralibyście do rozwoju w 2020 i dlaczego?

PA
  • Rejestracja:około 6 lat
  • Ostatnio:około 2 lata
  • Postów:426
2

Haskell. Bo to Haskell.
Ewentualnie zastanawiam się nad mercury-m, ale coś mi nie pasuje w nim.

loza_wykletych
loza_wykletych
  • Rejestracja:prawie 5 lat
  • Ostatnio:około 4 lata
  • Postów:854
0
necioo napisał(a):

Załóżmy, że cofacie się w czasie i znowu jesteście piękni i młodzi.

Czemu znowu? Ja tam dalej jestem piękny i młody. A odpowiadając na pytanie - PHP - bo bez względu na czas zawsze jest hipsterskie.


Z wszelkiego drzewa tego ogrodu możesz spożywać według upodobania - ale z drzewa poznania dobra i zła nie wolno ci jeść, bo gdy z niego spożyjesz, niechybnie umrzesz.
UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Postów:2206
0

Jak bym poszedł w coś z C#, Python, Java, ale nie przywiązuj do tego zbyt wielkiej wagi. To się bardzo szybko może zmienić jak pójdziesz do pracy.

RequiredNickname
Java junior w 2020 roku? Chyba bardzo chcesz być bezrobotnym ;)
UglyMan
Jak jestes słaby to chodz bys umiał 5 języków tonpracy nie znajdziesz
PK
PK
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:245
1

Skoro cofam się w czasie to po co mam sobie mówić czego mam się uczyć w roku 2020? No chyba, że cofam się o kilka dni, ale wtedy nie będę już studentem. Chyba, że chodzi Ci o cofnięcie o kilka lat i wtedy mam mówić sobie jaki wybiorę język w 2020, ale czy to nie jest poryte jeszcze bardziej? Żadna technologia w takim przypadku nie pomoże.

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 20 godzin
  • Lokalizacja:Wrocław
4
UglyMan napisał(a):

Jak bym poszedł w coś z C#, Python, Java, ale nie przywiązuj do tego zbyt wielkiej wagi. To się bardzo szybko może zmienić jak pójdziesz do pracy.

Niech zgadnę, do tego lubisz oglądać w TV najnowsze filmy, takie jak "Titanic" i "Kevin sam w domu"?

necioo napisał(a):

Załóżmy, że cofacie się w czasie i znowu jesteście piękni i młodzi. Jesteście sobie studentami na 2/3 roku i lubicie programować. Jaką technologię wybralibyście do rozwoju w 2020 i dlaczego?

Kotlin, bo nie irytuje na pierwszy rzut oka.


Po dopracowaniu rozwiązania każdy będzie mógł założyć własny drzewiasty wątek.
katelx
  • Rejestracja:prawie 10 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Hong Kong
21

proste ze java i nauka oop na zwierzatkach i autach

ToTomki
Śmiechłem srogo
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:30 minut
  • Postów:8399
0
necioo napisał(a):

Załóżmy, że cofacie się w czasie i znowu jesteście piękni i młodzi. Jesteście sobie studentami na 2/3 roku i lubicie programować. Jaką technologię wybralibyście do rozwoju w 2020 i dlaczego?

Wtedy nie szedłbym 100% w programowanie, tylko poszedłbym bardziej w social media, bo gwiazdy social mediów mogą liczyć na zarobki sporo większe niż programiści.


Zobacz pozostałe 3 komentarze
PerlMonk
@cerrato: To fakt :( . Niektórym paniom dałbym się porwać. Wiesz którym :]
cerrato
@szarlotka - możesz czuć się wywołana do tablicy ;)
PerlMonk
@cerrato: Ty zgrywusie 😅 . Tak koleżankę podpuszczać? 😇
cerrato
Nie bój się, od jakichś 5 lat nie było jej na forum, więc raczej się zbytnio nie przejmie moim komentarzem ;)
PerlMonk
@cerrato: Ona nie... ;)
PK
PK
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:245
3

A odpowiem tak z nudów, może komuś ta odpowiedź da chociaż trochę do myślenia co każdego dnia właśnie traci :D

Wybrałbym clojure, bo:

praca na wskaźnikach < ukrywanie wskaźników pod obiektami < praca z obiektami ze wsparciem GC < praca na wartościach

Języki z perspektywy maszyny nie są poteżniejsze, one są coraz gorsze. Natomiast język jest poteżniejsze dla człowieka gdy ten język ma coraz więcej ograniczajacych reguł, ponieważ właśnie wtedy staje się bardziej przewidywalny, i prostszy w pojęciu, co dzisiaj jest kluczem w tworzeniu kodu za hajs (oczywiście tu przyjmuje za pewnik, że poziom prostoty i przewidywalność nie powinien zarazem odbierać możliwości tworzenia programów ogólnego przeznaczenia).

Operowanie wartościami bardzo upraszcza pracę, bo wartość nie może sama z siebie się zmienić, gdy operujesz na wartościach nie myślisz o miejscach w pamięci (a w przypadku obiektów nadal musisz ponieważ, obiekty mają swój zmienny stan, który również może zależeć od innych obiektów).

Niemodyfikowalne wartości ma pewnie też haskell i scala, ale w przypadku tych języków nie potrafię się przekonać, ponieważ nie zawsze czuję potrzebę pisania kodu zgodnego z FP (czyli sprowadzania efektów ubocznych do izolowanych miejsc w projekcie), bo to zależy od rodzaju i złożoności projektu, ani też nie czuję potrzeby, by zawsze wszystkiemu nadawać odgórnie stosowną reprezentację, wolę pierw by program z czasem nabrał kształt i wtedy można wyznaczać ograniczenia, ale takie rzeczy to skromnie powiem, że widzę dopiero po pewnym czasie.

Dodatkowym umilaczem jest REPL i podejście zorientowane na dane. To trochę uczy człowieka, by za bardzo nie odlatywać z abstrakcjami. Program, który w każdym miejscu pobiera dane i pluje dane jest bardzo łatwy do skumania, taki REPL jest ożywionym programowalnym debuggerem, który pozwala wywoływać funkcje, aktualizować je, nasłuchiwać dane, pracować bazą czy przeglądarką w interaktywny sposób.

Natomiast podejście zorientowane na dane, mówi o tym, że dane są lepsze niż kod, bo gdy dane opisują co ma robić program, to łatwiej jest program zmieniać edytując dane niż kod, co więcej w trakcie uruchomienia są one przezroczyste, dane są widoczne i można je dodatkowo przetworzyć w nieoczekiwany sposób. Ja je lubię, bo dzięki nim mogę opisać efekty uboczne, co ułatwia mi tworzenie większych rzeczy. Dodatkowo poprzez dane mozna opisać DSL i wiele bibliotek w clojure taka drogę obiera więc praca z biblioteką na ogół wymaga dostarczenia jej danych :-) Całość fajnie się zazębia i w połączeniu testami rekompensuje mi z nawiązką brak statycznego typowania.

edytowany 3x, ostatnio: pan_krewetek
JS
JS
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:63
5

Gdybym miał cofnąć czas to nie uczyłbym się zbytnio programowania, bazowałbym na podstawach wyniesionych ze studiów, a poszedłbym od razu w naukę platformy AWS/GCP ponieważ w niej wyspecjalizowani goście zarabiają grubo więcej niż programiści. Kolejną sprawą jest to, że AWS/GCP szybko nie umrze, więc pieniądz pewny na kolejne 10 lat w przód, a jakby nie patrzeć to też IT.

edytowany 4x, ostatnio: janek_sawicki
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:2 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
4

Jeśli cofamy się w czasie i zakładamy że mam startować w 2010 to dalej wybrałbym Javę. Był to jedyny statycznie typowany język z GC w którym można było zarobić na Górnym Śląsku
Jeśli zakłądamy że jestem 10 lat młodszy i startuję dziś to celowałbym bardziej w Kotlina i Scalę. Dziś już nie chce mi się przekwalifikowywać z wizją spadnięcia z seniora na mida. Poza tym dalej w okolicy mało firm robiących backend w Kotlinie czy Scali więc byłbym przywiązany.

Jeśli chodzi o hobbystyczne programowanie to nie uczyłbym się Perla czy innych dziwnych rzeczy tylko od razu wziął się za Haskella
Jeśli chodzi o rzeczy nieprogramistyczne to bardziej zmuszałbym się do nauki angielskiego. W tej chwili jest to główna rzecz która blokuje mi podwyżkę (i ewentualną pracę zdalną w Haskellu dla USA czy UK)


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
Zobacz pozostałe 5 komentarzy
TD
Senior to nie jest pozycja w programowaniu tylko w danej firmie. ;)
somekind
@tdudzik: zakładam, że jeśli ktoś sam się nazywa seniorem, to robi to na poważnie, a nie dlatego, że mój jakiś HR tak siłą w stopkę wpisał. Jeśli ktoś ma ileś lat doświadczenia w programowaniu to nie spadnie nagle na niższe stanowisko tylko dlatego, że język jest inny. No chyba, że nie było to doświadczenie w programowaniu, tylko w konkretnym frameworku.
KamilAdam
@somekind: ja to już w zasadzie nie wiem czy mnie motywujesz czy krytykujesz czy zwyczajnie wygłaszasz swoje własne, nie zweryfikowanie definicje. @ToTomki: Idea moja jest taka żeby kiedyś problem Scali zaatakować ponownie, ale teraz w Katowicach to są chyba tylko dwie firmy pracujące w Scali. SoftwareMill i Relayr z czego w Relayrze już pracowałem
somekind
Zasadniczo próbowałem motywować. Nie bardzo rozumiem na czym miałoby polegać weryfikowanie definicji, więc może spróbujmy bez tego "seniora", który właściwie nic nie znaczy i tylko wprowadza zamieszanie do dyskusji. Doświadczony programista to ktoś, kto umie rozwiązywać problemy, myśleć analitycznie i syntetycznie, projektować strukturę kodu, debugować, rozumieć wymagania biznesowe, refaktoryzować, decydować o długu technicznym. To nie są umiejętności, które zależą od języka programowania, wiec nie rozumiem powodu do degradacji.
KamilAdam
@somekind: zgadzam się z tobą. problem polega na tym a) jak to zweryfikować b) na rozmowach często nie próbują tego weryfikować tylko pytają się o kruczki języka programowania. Czasem się wstrzelę w kruczki, a czasem słyszę że moja znajomość Javy jest niewystarczająca na Senior Java Developera XD
czysteskarpety
czysteskarpety
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
2

Nadal wybrałbym front+php, potem, po zdobyciu funduszy i stałych klientów zaatakował Unity+C# plus blendera/daz 3d stworzył własne studio gamingowe i trzepał hajs $ wzbogacając to o stronę en z płatnościami za access (co wiąże się ze skillami front+php), czyli taki samograj w którym tylko doglądasz jak ciasto rośnie.
Reszta plebsu niech robi na etacie :P


Escanor16
unity tfuu lepsze unreal + cpp
KA
na poczatek lepsze raczej unity
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:3 miesiące
  • Postów:2787
15
czysteskarpety napisał(a):

Nadal wybrałbym front+php

Czyli syndrom sztokholmski powiadasz

edytowany 1x, ostatnio: Pinek
loza_wykletych
loza_wykletych
  • Rejestracja:prawie 5 lat
  • Ostatnio:około 4 lata
  • Postów:854
1
czysteskarpety napisał(a):

Nadal wybrałbym front+php, potem, po zdobyciu funduszy i stałych klientów zaatakował Unity+C# plus blendera/daz 3d stworzył własne studio gamingowe i trzepał hajs $ wzbogacając to o stronę en z płatnościami za access (co wiąże się ze skillami front+php), czyli taki samograj w którym tylko doglądasz jak ciasto rośnie.

Jest lepszy pomysł z tym blenderem - w gaming musisz jeszcze opłacać pryszczatych nerdów więc koszta większe. Dam ci lepszy: porn render farma, trochę zdolności plastycznych a później można już zwyczajnie trzepać hajs na dewiantach. Minimalny wkład własny (trochę Ryzenów + RTXów), praktycznie nieskończone zapotrzebowanie, trochę assetów a w przyszłości jacyś stażyści po ASP. Trzeba tylko się wstrzelić w jakąś niszową dewiację co by konkurencja była mniejsza.


Z wszelkiego drzewa tego ogrodu możesz spożywać według upodobania - ale z drzewa poznania dobra i zła nie wolno ci jeść, bo gdy z niego spożyjesz, niechybnie umrzesz.
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
2

...studio gamingowe, a pozniej praca w sobotę ;)

PA
zawsze możesz mieć model jak star citizen
loza_wykletych
loza_wykletych
Dostaną premie w postaci akcji - akurat po premierze kiedy wszyscy rzucą się do realizacji zysków ;)
DC
Pracowe soboty ale za to owocowe czwartki!
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
1
pan_krewetek napisał(a):

A odpowiem tak z nudów, może komuś ta odpowiedź da chociaż trochę do myślenia co każdego dnia właśnie traci :D

Wybrałbym clojure

Świetna rada pomagająca skutecznie uniknąć zatrudnienia.

Ezoteryczne technologie warto poznawać jak już się ma stabilne zatrudnienie.

edytowany 1x, ostatnio: karsa
loza_wykletych
loza_wykletych
Szlachta nie pracuje.
PK
pan_krewetek
poza tym typek pytał się o rozwój, rozwój, a nie technologie pod pracę, czy najbardziej dochodowe rozwiązanie, pytał o rozwój, teraz rozumiesz? :)
KA
Pytanie jest też co byś wybrał na początku kariery jako junior. Rozwój też może być różnie rozumiany. Jeżeli nie będzie miał pracy w tym Clojure to się wcale nie rozwinie.
czysteskarpety
czysteskarpety
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
0

@Pinek: @loza_wykletych @karsa Ja już ten pomysł (po części) zrealizowałem, reszta złośliwie komentuje z bólami zwieraczy jak to w PL, nic nowego, w PRLu bez zmian :D


Zobacz pozostałe 7 komentarzy
KA
w php wiecej zarobisz niz w gamedevie :P
czysteskarpety
czysteskarpety
@karsa: na obecną chwile tak, ale zobaczymy co przyniesie przyszły rok
KA
Wiedźmin 4 w php
loza_wykletych
loza_wykletych
@karsa: Innymi słowy: w końcu będzie normalne wsparcie dla modów.
KA
Jak w wordpressie
NN
NN
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:239
0

jesteście piękni

Zostaję tiktokerem i śmieję się z 20k miesięcznie

KamilAdam
Znajomy z USA został po czym tiktok dostał bana w USA :|
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
2

Rust

Jako ostateczne rozwiązanie kwestii niepracowania przy CRUDach

:P

Zobacz pozostałe 41 komentarzy
KA
Filozofia Go czyli prostota w CRUD przemawia do mnie dużo bardziej, tyle, że Go jest często Byt prymitywne jednak.
KA
Uważam większość programistów za absolutne głąby więc im prościej tym lepiej. I im dalej Rust się będzie trzymał od CRUD tym lepiej dla niego bo nie zaleją go głąby.
Wibowit
Trzymał daleko od CRUDów czyli w konsekwencji od korpo, tak?
KA
Rust jest w bardzo dużych korpo już jak Microsoft , Google, tylko oni klepią trochę inne rzeczy ;)
Wibowit
Chodziło mi o masówkę, a nie pojedyncze zespoły. Jeśli chodzi o pojedyncze zespoły to np MS sponsoruje głównego autora głównego kompilatora Haskella: https://www.microsoft.com/en-us/research/people/simonpj/ https://en.wikipedia.org/wiki/Glasgow_Haskell_Compiler
Szekel
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 3 lata
  • Postów:253
0

Gdybym cofnął się w czasie to chyba już bym znał technologię bo przychodzę z przyszłości? Ale gdybym w teorii „wczytał save” to bym poszedł na inne studia.


CO
  • Rejestracja:prawie 5 lat
  • Ostatnio:około godziny
  • Postów:552
0

Wczoraj coś takiego przeczytałem:

http://problemypolskiejbranzy.it/null/ile-zarabia-programista-15k/

więc raczej nie wybrałabym programowania ponownie

MA
Ale widziałeś inne arty na tej stronie?
CO
Tak wiem, to jakiś trolling mocny
KR
Dotarłem do obliczeń netto i przestałem czytać dalej. Ktoś nie wie jak działają składki / podatki na działalności.
RequiredNickname
SZLACHCIC BARON PROGRAMISTA XD
purrll
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Kuala Lumpur
  • Postów:241
5
  • Kubernetes
  • Operatory
  • Docker - must have + cri-o - od siebie
  • Helm
  • Terraform
  • Tekton
  • Juju/Maas - któryś z tych + Ansible
  • Fluentd
  • Jakiś lekki, fajny, kompilowany i przyjemny język - Rust/Go/
  • Jakąś bazę danych - zapewne Postgres

Zobacz pozostałe 21 komentarzy
KA
Hype driven. Ale po co mam cokolwiek łaczyć jak większosc tych aplikacji mozna napisac w monolitycznym bashu bo obsluguje 10 req/minute i też bedzie dzialac? Mnie nie interesuje roziwązywanie illusionary scaling issues. Polyglot stack to zazwyczaj spore complexity. Kto powiedział, że klepie Jave? Mam wrażenie, że przeczysz sam sobie troche. A XML? Proponuje zrobic jakiegos SOAP w Golangu ;) Uzycie Go/Rust w wiekszosci firm(fabryki crudow) nie ma po prostu sensownego uzasadnienia.
purrll
10req/minute? Nie wiem gdzie pracujesz ale spoko ;-) Proponuje zrobic jakiegos SOAP w Golangu ;) Czy ja wyglądam na nienormalnego? Słyszałeś tam w tym swoim świecie o RPC/gRPC? :-) Uzycie Go/Rust w wiekszosci firm(fabryki crudow) nie ma po prostu sensownego uzasadnienia., dlatego próbuję nie pracować w takich miejscach gdzie klepie się CRUD i tyle.
KA
No mam duzo wiecej tych requestów u siebie. Ale wiekszosc softu z PL to 10req/minute i inne nieznaczace liczby. Uzywałem gRPC, rowniez z Go i wole sie trzymac z daleka. dlatego próbuję nie pracować w takich miejscach gdzie klepie się CRUD i tyle i to ma sens.
hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:7 dni
3

Nie wiem jak bym myślał jak junior, ale pewnie to samo w czym robię - Erlang/Elixir. Może nie są to super popularne technologie, ale mocno rozwojowe i po części niwelują potrzebę całego bełkotu Kubernetes. No i Postgres, jako, że to jest baza danych, która oferuje praktycznie wszystko co trzeba do czasu aż nie urośniesz na tyle, że potrzeba specjalnych rozwiązań (FTS, kolejki, "document store", KV store, spatial data, time series, etc.).


Zobacz pozostałe 3 komentarze
hauleth
@Pazura: k8s powstało w Google, by rozwiązywać problemy Google. Z jakiegoś niewiadomego mi powodu dużo ludzi uznało, że problemy Google to są te same problemy, które ich aplikacja wyświetlająca koty ma. W związku z czym stawiają klaster k8s do obsługi swojej aplikacji i następnie tracą X czasu by ten klaster utrzymać, gdzie zrobienie tego samego, ale bez k8s to 15 minut roboty. A tak w swoim k8s musisz zadbać o odpowiednią ilość hostów, YAML programming, ingresy, egresy, i inne esy floresy. k8s jest jeszcze w miarę spoko, gdy to nie Ty musisz to utrzymywać.
hauleth
A jak wywalimy całą tę otoczkę k8s to nagle może się okazać, że zamiast 5 plików YAML na 100+ linijek, obrazu Dockera i innych pierdół wystarczy 10 linijek konfiguracji unita systemd i mamy praktycznie to samo. A co do Erlanga i tego jak rozwiązuje podobne rzeczy jak k8s - no to np. mamy hot reload, gdzie możemy zaktualizować aplikację bez ubijania połączeń, więcej można przeczytać u Freda Herberta.
KA
Albo po prostu zrobić monolit i tyle. I tak, ludzie już są zmęczeni tym bełkotem. Ale dla większości programistów to są cool buzzwordy których i tak nie rozumieją
hauleth
@karsa: nawet jak masz monolit, to jakoś trzeba zarządzać jego działaniem.
KA
wiadomo, ale niekoniecznie potrzebujesz kobyły jak k8s ;]
purrll
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Kuala Lumpur
  • Postów:241
3
hauleth napisał(a):

Nie wiem jak bym myślał jak junior, ale pewnie to samo w czym robię - Erlang/Elixir. Może nie są to super popularne technologie, ale mocno rozwojowe i po części niwelują potrzebę całego bełkotu Kubernetes. No i Postgres, jako, że to jest baza danych, która oferuje praktycznie wszystko co trzeba do czasu aż nie urośniesz na tyle, że potrzeba specjalnych rozwiązań (FTS, kolejki, "document store", KV store, spatial data, time series, etc.).

Ciężko mi się nie zgodzić z. Natomiast na pewno nie nazywałbym tego bełkotem. Co innego jak masz apkę serwującą gify z kotami, a co innego gdy pracujesz w projekcie na kilka milionów ruchu. Z pakowaniem się w Kubernetes jest ten sam problem jak pakowanie wielkich yolo bibliotek/frameworków typu React na front blogaska albo stronki z newsami.

Kubernetes jest rozwiązaniem dla typowego ogromnego enterprise. Do mniejszych rzeczy można zaprzęgnąć sobie MicroK8s albo K3s opartego o K3os. Są to mniejsze zasobowo rozwiązania oferujące praktycznie to samo. Nie twierdzę, że warto ich używać od razu ale warto pomyśleć pod kątem użycia później.

hauleth napisał(a):

np. mamy hot reload, gdzie możemy zaktualizować aplikację bez ubijania połączeń

A gdzieś poza Elixirem to jeszcze występuje? Bo to o czym mówisz to abstrakcyjny temat. I jeżeli tylko Elixir ma takie fajne rzeczy to już wiadomo dlaczego ludzie pakują aplikacje w kontener. Jak weźmiesz 100 programistów z randomowych firm i zapytał czy wiedzą co to Elixir to pewnie 90 nie będzie miało pojęcia.


KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:2 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
3
purrll napisał(a):

A gdzieś poza Elixirem to jeszcze występuje? Bo to o czym mówisz to abstrakcyjny temat. I jeżeli tylko Elixir ma takie fajne rzeczy to już wiadomo dlaczego ludzie pakują aplikacje w kontener.

W zasadzie nie jest to funkcjonalność Elixira, ani nawet Erlanga tylko BEAMa (Wirtualnej Maszyny Erlanga)

Jak weźmiesz 100 programistów z randomowych firm i zapytał czy wiedzą co to Elixir to pewnie 90 nie będzie miało pojęcia.

Tu jest właśnie pewien paradoks Erlanga. Świetny język (nawet na to że dynamicznie typowany) z niesamowicie złym marketingiem. Elixir ma już trochę lepszy marketing. Erlang ma też dziwną składnię i dziwne koncepty jeśli chodzi o bazy danych (był to język projektowany do programowania routerów). Elixir za to jest bardziej projektowany do pisania normalnych korpo aplikacji i klepania stronek z Postgresem. Składnie ma wzorowaną na Rubim przez co kradnie mu trochę programistów znudzonych powolnością Rubiego

Myślę że Elixir może jeszcze trochę namieszać. No ale to dalej język dynamicznie typowany więc nie chciałbym go dotykać. Ale ja czekam na Hamler czyli język kompilowany na BEAM o składni Haskella


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 2x, ostatnio: Adam Boduch
nullpt4
Elixir/Erlang się kompilują i można do nich dodać @spec'ki z typami. Jest też GLEAM :D
KamilAdam
Z tego co rozmawiałem z Erlangowcami 5 lat temu to te systemy do sprawdzania typów są średnie, ale może się to już poprawiło
PA
Koncepty bazy danych erlange nie są jakoś specjalnie dziwne. Mnesia widnieje jako STM https://en.wikipedia.org/wiki/Software_transactional_memory#Erlang
hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:7 dni
5

Do mniejszych rzeczy można zaprzęgnąć sobie MicroK8s albo K3s opartego o K3os. Są to mniejsze zasobowo rozwiązania oferujące praktycznie to samo.

Albo zwyczajnie użyć supervisora systemowego, jak systemd. Wyjdzie praktycznie to samo, a mniej babrania, bo masz to gotowe w systemie od początku.

A gdzieś poza Elixirem to jeszcze występuje?

W game developmencie się tego używa by nie trzeba było restartować całej gry co zmianę, ale to jest trochę inna para kaloszy. IIRC Java chciała coś takiego oferować, ale niespecjalnie to wyszło. Lispy i Smalltalk często mają dostępną taką opcję.

I jeżeli tylko Elixir ma takie fajne rzeczy to już wiadomo dlaczego ludzie pakują aplikacje w kontener.

Kontenery nie mają tutaj nic do rzeczy. To samo co oferuje k8s z podmianą podów można ogarnąć samymi VMkami czy nawet w obrębie jednego systemu, wystarczy trochę wiedzy. (socket activation, xinetd, rozwiązania używane od dawna).

Jak weźmiesz 100 programistów z randomowych firm i zapytał czy wiedzą co to Elixir to pewnie 90 nie będzie miało pojęcia.

Prawda, ale weźmiesz dowolny pakiet jaki przeszedł przez internet i masz 90% szans na to, że przeszedł przez węzeł kontrolowany przez Erlanga (dane za Cisco).

W zasadzie nie jest to funkcjonalność Elixira, ani nawet Erlanga tylko BEAMa (Wirtualnej Maszyny Erlanga)

Formalnie to jest właściwość Erlanga, BEAM naturalnie musi ją wspierać, tak samo jak wszystkie inne implementacje.

Erlang ma też dziwną składnię

Wynika to z historii, bo Erlang zaczynał jako biblioteka do Prologa. Składnia zwyczajnie potem została.

dziwne koncepty jeśli chodzi o bazy danych

Nie rozumiem o co Ci tutaj chodzi? Mówisz o Mnesii? Cóż, to jest DB oferowana w "standardzie" ale wcale nie jedyna możliwa do użycia w Erlangu. Więc nie za bardzo wiem jak się do tego odnieść.

był to język projektowany do programowania routerów

Centralek telefonicznych, nie routerów. To, że teraz się to praktycznie łączy w jedno nie oznacza, że zawsze tak było.

No ale to dalej język dynamicznie typowany więc nie chciałbym go dotykać.

Well, to dynamiczne typowanie po części jest wymuszone tym jak działają procesy w Erlangu. Dodatkowo poprzez izolację błędów nie jest to tak upierdliwe jak w innych językach (błąd w jednym procesie wcale nie musi oznaczać eskalacji, jeśli to jest sporadycznie występujący błąd, to bez problemu aplikacja sobie z tym poradzi).

Z tego co rozmawiałem z Erlangowcami 5 lat temu to te systemy do sprawdzania typów są średnie, ale może się to już poprawiło

Różnie bywa. Dialyzer sprawdzi tylko "happy path" nie jest to w pełni system typów. Jednak bardzo często jest to wystarczające rozwiązanie.


OtoKamil
  • Rejestracja:około 10 lat
  • Ostatnio:około rok
  • Postów:143
4

To ja się chyba właśnie tak cofnąłem w czasie bo z końcem tego miesiąca kończę przygodę z Javą i zaczynam z Elixirem :)

Zobacz pozostały 1 komentarz
OtoKamil
Dzięki :) Niemiecka (€), praca z biura w Warszawie (choć to pewnie będzie zależało od sytuacji koronki)
hauleth
Witamy w klubie.
KA
a pozniej odejdziesz z tej firmy i juz nie bedzie komu developowac tego elixira ;]
hauleth
@karsa: bez przesady, trochę developerów Elixira w Polsce mamy, paru nawet całkiem znanych - jak np. sam twórca Elixira.
KA
wszyscy 10? :p
KR
Moderator
  • Rejestracja:prawie 21 lat
  • Ostatnio:43 minuty
  • Postów:2964
8

Zdecydowanie Rust.

Teraz uczę się Rusta i jest to pierwszy język od wielu lat przy którym odczuwam te same emocje co kiedyś na początku gdy pisałem pierwsze programy.

Jest to relatywnie prosty język, ze świetnym stosunkiem możliwości do stopnia skomplikowania i najlepszymi komunikatami kompilatora jakie kiedykolwiek istniały w historii informatyki. I bez sztucznych ograniczeń - można korzystać z całego API systemu operacyjnego, z bibliotek C, C++, Pythona, Javy, można zejść do poziomu asma ale można też pisać na poziomie abstrakcji Haskella albo nawet wyżej (procedural macros).

Poza tym walka z kompilatorem, którą często trzeba stoczyć, zanim się człowiek nauczy w tym pisać, właśnie przypomina mi stare dobre czasy. Tu nie jest łatwo, ale za to efekty są wyśmienite.

edytowany 2x, ostatnio: Krolik
Zobacz pozostałe 7 komentarzy
WeiXiao
@nullpt4: myślałem że o te błędy chodziło :P
stivens
jest to pierwszy język od wielu lat przy którym odczuwam te same emocje co kiedyś na początku gdy pisałem pierwsze programy mialem siezapytac czy chodzi o ochrzan od kompilatora ale widze ze sam to doprecyzowales :D
KA
@Krolik: szerzy propagande by pisac CRUDy w Rust :P
purrll
@nullpt4: Ten error pochodzi z diesla.
hauleth
Elm miał raporty błędów w podobnym stylu przed Rustem.
E2
  • Rejestracja:ponad 5 lat
  • Ostatnio:6 miesięcy
  • Postów:137
0

Na pewno nie Python i JavaScript bo dostać w tym pracę jest baaaaardzo trudno. Jest przesyt juniorów. Ja wziąłbym coś niszowego, może Go, Dart/Flutter.

PA
w java scriptcie jest przesyt juniorów?
E2
Tak, większość osób które teraz zaczynają wybiera JS + React lub Python. Ponad 1000 CV na jedną ofertę w średniej wielkości software house w Warszawie, gdzie 7 lat temu było do 40 CV.
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
3

Oczywiście, że Perl. Ja nie wiem, co to za pytanie...


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)