Jaki język, żeby odpocząć od głównego?

Jaki język, żeby odpocząć od głównego?
1programmer
  • Rejestracja:prawie 5 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
  • Postów:501
0

Na co dzień piszę w JS/TS, a w pewnym stopniu znam także Pythona. Do perfekcji jeszcze mi daleko, ale ze względu na ogrom pracy ostatnio, chcę od niego odpocząć. Lubię się uczyć całkowicie nowych rzeczy i dla przyjemności popisałbym w czymś innym.

Jaki język polecacie się pouczyć dla funu lub w jakich sami piszecie, żeby odpocząć od tych używanych w pracy na co dzień?
Na pewno nie chcę więcej skryptowych i dynamicznie typowanych. Dodatkowo inne niż typowy mainstream jak C#, Java, bo z nimi miałem kontakt na uczelni. Zastosowanie może być dowolne, paradygmat tak samo.


Programować muszę, bo się uduszę
BA
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 2 lata
  • Postów:72
2

Na pewno nie chcę więcej skryptowych i dynamicznie typowanych. Dodatkowo inne niż typowy mainstream jak C#, Java, bo z nimi miałem kontakt na uczelni.

Może Kotlin?

obscurity
Kotlin to większy mainstream niż c#
BA
serio? mainstream w sensie ilość programistów piszących komercyjnie?
ledi12
  • Rejestracja:ponad 5 lat
  • Ostatnio:25 dni
  • Lokalizacja:Wrocław
2

C / C++ :) Osobiście mam przy tym fun a późniejszy powrót do innego języka sprawia, że czuję się jak bym wrócił z pracy do przedszkola :D

Z czegoś nazwijmy to ""bardziej przyjaznego" poleciłbym jeszcze Scalę.


Robię http response status cody w martwych ciągach
edytowany 1x, ostatnio: ledi12
TerazOdpowiemNaKomcie
  • Rejestracja:ponad 9 lat
  • Ostatnio:około godziny
  • Postów:383
3

Rust albo Golang :D

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 15 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10056
2

Clojure jest spoko

stivens
OP mowi, ze nie dynamiczne :)
Riddle
@stivens: No niby tak, co nie zmienia faktu że Clojure jest spoko :D
1programmer
No właśnie jest dynamicznie typowany, ale jest też element, który budzi we mnie ciekawość, a mianowicie składnia lispowa.
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
2

Scala. Ewentualnie Kotlin. Moze Haskell jak jestes odwazny.

Elixir jest ciekawy, ale dynamiczny.

W gruncie rzeczy pytanie co chcialbys dla funu napisac?. Bo od tej odpowiedzi zalezy np. czy Go/Zig i inne takie beda ciekawa opcja czy wiatrem w oczy. Bo Go zdecydowanie nie jest general-purpose


λλλ
edytowany 7x, ostatnio: stivens
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
1

Język "aby odpocząc od wszystkiego" musi być nieskalany, aby nawet nie kusiło go profesjonalziiwać
Forth (bardzo ciekawy, zupełnie inny), Lua (bebechy), języki które makrują aplikacje (vim'a, emacsa'a )

Lub własny język, ostrzelanie sie z Antlr (ale tu znów pojawiają się C++,Java albo C# znane na dosc dobrym poziomie, jako implementacja)

Trzecia ścieżka. jesli zgadywać, że spotykasz Python ale od strony weba, to z zupełnie innej strony


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
edytowany 1x, ostatnio: ZrobieDobrze
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:około 3 godziny
  • Postów:8409
1

Rust - ciekawy język i można w nim pisać zarówno apki natywne jak i odpalać w przeglądarce (WebAssembly).
Fajnie tam rozwiązali zarządzanie stanem - żeby coś zmutować, potrzebujesz mieć mutowalną referencję. I wtedy jakby blokujesz zmienną na ten czas. I język jest w stanie w czasie kompilacji stwierdzić, czy robisz to dobrze, czy źle, a jak robisz to źle, to się nie skompiluje
https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html


edytowany 1x, ostatnio: LukeJL
1programmer
  • Rejestracja:prawie 5 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
  • Postów:501
0

Z tych, które na razie wymieniliście, to rozpatrywałbym: Rust, Scala, Haskell, Elixir.

Programowanie funkcyjne od dawna mam na horyzoncie rzeczy, które chciałbym bliżej poznać, ale nie jest tu akurat kluczowe przy tym wyborze. Kiedyś siadłem do języka Elm, jest on pure funkcyjny i było to coś ciekawego, ale jedyne zastosowanie to front, więc przestałem. Ogólnie chcę poznać jakieś elementy języków, których w JSie nie uświadczę.

Haskell - czytałem, że prezentuje akademickie podejście i nie wiem na ile dałbym radę xd
Elixir - na pierwszy rzut oka ma taką nieprzyjazną składnię, ale wiadomo, że to kwestia braku znajomości. Chociaż właśnie często czytałem, że jest przyjemny.
Scala - z kolei wygląda bardziej przyjaźnie i jest statycznie typowana.
Rust - chyba do ogarnięcia, niskopoziomowy i na forum zawsze chwalicie raczej, więc coś musi w tym być.

Co chciałbym napisać? Na razie nie wiem, mam słabą wyobraźnię. Mało kreatywnie, ale pewnie na początku jakiś back, żeby porównać sobie z JSem.

Ciężko tak z góry coś wybrać, więc spróbuję z tymi czterema. Zacznę od Rusta.


Programować muszę, bo się uduszę
hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:18 dni
1

na pierwszy rzut oka ma taką nieprzyjazną składnię

Czemu nieprzyjazną?

Jak chcesz spróbować Elixira to najłatwiej pewnie będzie z https://livebook.dev


1programmer
Pewnie zmienię zdanie jak zacznę w nim pisać. Fajna stronka, skorzystam.
Marius.Maximus
  • Rejestracja:ponad 14 lat
  • Ostatnio:około 11 godzin
  • Postów:2070
2

Oczywiście że Pascal !


--
Nie przyjmuję reklamacji za moje rady, używasz na własną odpowiedzialność.
Programowanie bez formatowania to jak chodzenie ze spodniami spuszczonymi na kostki. Owszem da się ale po pierwsze nie wygodne, po drugie nieprzyzwoicie wygląda.
Przed zaczęciem nowego wątku przeczytam problem XY
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
2
szafran98 napisał(a):

Haskell - czytałem, że prezentuje akademickie podejście i nie wiem na ile dałbym radę xd

Jak interesuje Cię funkcyjne to Haskell to podstawa, i nie jest aż tak akademicki - jest całkiem praktyczny,
dwa ciekawe dialekty Elm i PureScript są używane do robienia frontu. Po haskellu o wiele łatwiej zrozumieć fp w innych językach, bo dużo konceptów z haskella pochodzi i najlapiej w nim działa.

Rust - chyba do ogarnięcia, niskopoziomowy i na forum zawsze chwalicie raczej, więc coś musi w tym być.

Ciekawy, jak wcześniej nie miałeś za bardzo do czynienia z C++ czy czymś podobnym. Ale ogólnie do pisania aplikacji jest IMO średnio zabawny - trzeba się pierniczyć z zarządzaniem cyklem zycia obiektów, co w reszcie językow robi GC. Na jakieś zabawy niskopoziomowe za to na pewno fajny.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
Zobacz pozostałe 16 komentarzy
jarekr000000
FP nie ma wcale zabójczych wymagań na alokacje, bo w większości kodu krytycznego wcale nie musi być żadnych alokacji.
KR
Jeżeli chcesz zmodyfikować jakąś strukturę danych np. wektor to niby jak bez alokacji? Nie możesz fizycznie zmodyfikować starej struktury w miejscu, musisz stworzyć nową, choćby jej kawałek. W Scala modyfikacja jednego elementu wektora to kopia co najmniej jednej tablicy 32-elementowej. W innych strukturach persystentnych jest podobnie.
jarekr000000
@Krolik: oczywiście, że można zmodyfikować strukturę w miejscu - wystarczy, że nikt się do starej wersji nie odnosi. I tak, nie wiem czy którykolwiek kompilator jakiegokolwiek języka fp jest na tym poziomie. (graalvm radzi sobie z prostymi kilkupolowymi niemutowalnymi obiektami na razie).
KR
No właśnie, ale Ty piszesz teraz z perspektywy tego co jest teoretycznie możliwe, a ja tego co jest tu i teraz. Poza tym weryfikacja tego że wystarczy, że nikt się do starej wersji nie odnosi to pachnie właśnie borrowcheckerem. ;) No i to też jeszcze nie wystarczy. Bo struktury zoptymalizowane pod mutacje pisze się zupełnie inaczej niż struktury persistentne. Już to widzę jak kompilator sam zastępuje mniej efektywne drzewo trie pojedynczym wektorem bo zauważył że mutacje można zrobić w miejscu. To tak jakbyś wymagał od kompilatora optymalizacji zmieniających złożoność.
jarekr000000
@Krolik najprostsza optymalizacja typu eliminacja wywołań ogonowych zmienia złożoność (pamięciową). Poza tym ja dokładnie pisze z perspektywy obecnej - praktycznie nie miałem sytuacji, żeby wydajność takiego JVM była problemem, bo w każdym dużym systemie problemy rozwiązuje przez poprawę algorytmów (choćby usuwanie bezsensownego lokowania). Raz miałem sytuację, że JVM był problemem - gra 3D, z dwóch powodów: GC, oraz koszt JNI - ale to bardziej dowcip niż typowa aplikacja jaką robię, poza tym tragicznie też nie było, ale zobaczyłem, że AAA to na JVM nie zrobie :-)
1programmer
  • Rejestracja:prawie 5 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
  • Postów:501
0

@hauleth: Dodatkowo jeszcze sam szukałem, co tam ciekawego jest w kontekście języków i trafiłem na Gleam, który działa na maszynie Erlanga. Jest statyczne typowanie i wygląda ciekawie. Miałeś z nim do czynienia?

@jarekr000000: Wymieniłbyś języki w ogóle warte uwagi jeśli chodzi o FP, oprócz wymienionych? Nie muszą być pure i dobre na początek, a po prostu takie, które uważasz, że jakkolwiek nadają się do używania.


Programować muszę, bo się uduszę
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1

Haskell - czytałem, że prezentuje akademickie podejście i nie wiem na ile dałbym radę xd

Może offtop ale ktoś mi wytłumaczy co to miałoby być to akademickie podejście w Haskellu? Że trzeba napisać wejściówke przed otworzeniem IDE?

To co jest w Haskellu to problem małej biblioteki standardowej i sporo niedokonczonych bibliotek utilsów co próbują to rozwiązać.

Przypomina to trochę Javę 6 przed wejściem Guavy. Miałem utilsy 2 od Apacza, utilsy 3 od Apacza. I jeszcze jakieś inne utilsy. A potem się zastanawiałeś czy ta operacja na stringach/listach co chcesz zrobić to przypadkowo jest w utilsach co teraz używasz czy musisz zaciągnąc kolejną bibliotekę utilsów.

W Haskellu parę osób próbowało to rozwiazać tworząc duże biblioteki "standardowe", ale wyszło jak wyszło. Wciąż testuję Relude

Co do wybierania odskoczni to moja lista to Haskell, Rust, Elm/PureScript/Idris (jeszcze nie wiem). Na razie utknąłem na Haskellu i optymalizacjach interpretera WhiteSpace'a XD


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 1x, ostatnio: KamilAdam
Zobacz pozostałe 3 komentarze
SL
Trochę tak. Dla mnie podejście praktyczne to weźmy to co sprawdzone i połączym najlepsze cechy, żeby było praktycznie vs akademickie wrzućmy kolejny ficzer, język wytrzyma. W przypadku FP w praktycznie każdym przypadku mamy to drugie, bo dziedzina jest ciągle rozwojowa
ZN
znowutosamo
@KamilAdam: Akademickie w tym sensie, że ciekawe, ale nie pragmatyczne.
jarekr000000
@slsy seriously - haskell? tragiczna dokumentacja, http://www.learnyouahaskell.com + https://hoogle.haskell.org dla mnie są super, najebane operatórów - w 100% się zgadzam :-), aczkolwiek strzelam, że zupełnie inne nam przeszkadzają (bo ,, $ itp. są całkiem spoko), wszystko można zrobić na kilka sposobów - to chyba norma w każdym jezyku, łącznie z pythonem :-) (gdzie wcale tak nie miało być), no chyba, że golang, ale tam po prostu nie da się zrobić w żaden sposób :P
jarekr000000
@slsy: Moim zdaniem jakbyć był haskellowcem i 30 minut spędził z javą czy czymś podobnym, to miałbyś zbliżone wnioski (pomijając najebane operatorów), po prostu zupełnie inna składnia.
SL
@jarekr000000: możliwe, że zwykły szok kulturowy. Jakoś Scala z Cats lepiej mi podeszła te parę lat temu choć połowa ficzerów wygląda jak jakiś hack w języku
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
2
szafran98 napisał(a):

@jarekr000000: Wymieniłbyś języki w ogóle warte uwagi jeśli chodzi o FP, oprócz wymienionych? Nie muszą być pure i dobre na początek, a po prostu takie, które uważasz, że jakkolwiek nadają się do używania.

Haskell (GHC), Haskell, Haskell, potem długo długo nic.

Elm jako mocno zmieniony, ale production ready dialekt haskella do web.

Scala 3, główną siłą tego jest bycie na JVM i dostęp do bibliotek Java. W scali jest dużo ciekawych rzeczy, ale do nauki fp imo kilka klas gorsza niż haskell. Z drugiej strony jak znasz TS to składnia Scali będzie dla ciebie dość znajoma.

Clojure - czyli lisp na JVM - funkcyjne bez typów. Niektórzy to kochają - inni nie.

Oczywiście jest dużo innych i ciekawych (spośród tych, które jakoś tam zobaczyłem/poznałem), ale albo są na razie dość akademickie (Idris2), albo niewiele wnoszą (F# -zaleta podobna jak w Scali - bycie .NET, ale to język któremu troche brakuje do Scali - choć wizualnie jeden z bardziej eleganckich).


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:18 dni
1

Gleam […] Miałeś z nim do czynienia?

Nie, jeszcze nie bawiłem się nim. Ale wygląda w miarę ok.


LO
Czy warto tracić czas na języki które nie weszły do mainstreamu? Obecnie z nowszych które się tam pojawiły to Kotlin, Swift, Go, TS i Rust.
ZN
ZN
  • Rejestracja:około 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:65
0

Studiuj te języki, które budzą w Tobie ciekawość, wywołują w Twojej głowie same pytania.

Natomiast jeśli nie ma nic ciekawego na horyzoncie to nowe i niszowe nic Ci nie dadzą, bo na pewnym etapie gdy zacznie to denerwować i pochłaniać coraz więcej czasu po prostu utkniesz.

Ja myślę, że tak w ogóle to żaden język nie da Ci odpoczynku jakiego szukasz. Strzelam, mogę się oczywiście mylić, że projekt w pracy masz mało rozwijający. Także zmień pracę albo rozwijaj jakieś niekomercyjne rzeczy w domu, one potrafią naładować akumulator.

edytowany 3x, ostatnio: znowutosamo
1programmer
  • Rejestracja:prawie 5 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
  • Postów:501
0

Zapoznawałem elixira i jest ciekawy, nie powiem, że nie, ale ma strasznie wąski use case. Oczywiście wiedziałem o tym wcześniej, ale mimo wszystko chciałem go sprawdzić. Teraz chciałem zobaczyć, jak to wygląda w Ruscie, ale te docsy takie długie i dodatkowo większość musiałbym mocno rozkminiać z racji braku tych featurów w JSie, że raczej bym go przeniósł na koniec mojej listy.

W związku z tym zastanawiałem się, który teraz, czy może pisać jakiś projekcik w elixirze. Zerkam na kompa i bingo, przypomniałem sobie, że istnieje takie coś jak Swift xd
Co możecie powiedzieć o Swifcie? Pokrywa się w jakiś sposób jego użycie z Rustem? Czytałem, że gość, który tworzył Rusta przeszedł do teamu tworzącego Swifta. Zerknąłem na docsy i wygląda przyjemnie.

Napotkałem też język Nim, wydaje mi się, żę podobny do wyżej wymienionych. To są wszystko języki programowania systemowego(?)?
Jeśli tak, to co możecie powiedzieć o tej podgrupie języków?


Programować muszę, bo się uduszę
edytowany 2x, ostatnio: 1programmer
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1
szafran98 napisał(a):

Co możecie powiedzieć o Swifcie? Pokrywa się w jakiś sposób jego użycie z Rustem? Czytałem, że gość, który tworzył Rusta przeszedł do teamu tworzącego Swifta. Zerknąłem na docsy i wygląda przyjemnie.

Swift vs Rust?
Swift jest dedykowany dla Maców, i zdale się że XCode działa tylko na Macach. Jest bardziej wysokopoziomowy niż Rust i udaje że trochę skręca w funkcyjnośc. Ale co to za język funkcyjny jak przeczytałem dwie książki o nim i nigdzie nie ma o monadzie XD

Napotkałem też język Nim, wydaje mi się, żę podobny do wyżej wymienionych

A Nim wyszedł poza język eksperymentalny? index tiobe nie wymienia go w ogóle w 100 najpopularniejszych językach co znaczy że materiałów o nim w internecie jest bardzo mało. Sam chętnie poczytałbym jakie ma zalety w stosunku do np Haskella, Rusta, Scali


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
IK
https://www.swift.org/download/ jest mac, windows i linux. LSP jest otwarte https://github.com/apple/sourcekit-lsp więc teoretycznie w każdym popularnym edytorze/IDE powinno dać się w miarę komfortowo w tym pisać. Co nie zmienia faktu, że jak się celuje w wieloplatformowość to są lepsze wybory.
KamilAdam
Tak, teoretycznie Swift działa na wszystkich platformach, ale już np biblioteka graficzna jest dostępna tylko na maca
KR
Moderator
  • Rejestracja:prawie 21 lat
  • Ostatnio:dzień
  • Postów:2964
1
szafran98 napisał(a):

Co możecie powiedzieć o Swifcie? Pokrywa się w jakiś sposób jego użycie z Rustem? Czytałem, że gość, który tworzył Rusta przeszedł do teamu tworzącego Swifta. Zerknąłem na docsy i wygląda przyjemnie.

Priorytety jakie stawiają sobie Swift i Rust są zupełnie inne.
W Rust te priorytety wyglądają mniej więcej tak:

  1. Bezpieczeństwo
  2. Poprawność
  3. Wydajność
  4. Wolność, brak ograniczeń, szerokie zastosowania (od crudów po kod w kernelu)
  5. Przenośność, brak przywiązania do jednej platformy (więcej niż jeden kompilator, więcej niż jedna firma)
  6. Łatwość czytania kodu
    ....
  7. Łatwość pisania kodu
  8. Szybkość kompilacji
  9. Łatwość nauki języka

Generalnie Rust stawia jakość produktu końcowego ponad wygodę programisty. I stawia poprzeczkę dla jakości produktu końcowego bardzo wysoko.
Nie oznacza to, że wygoda programisty czy rzeczy takie jak szybkość kompilacji są ignorowane (wręcz przeciwnie - masa pracy poszła na to, aby Rust był przyjemny), ale mają niższy priorytet i nikt nie poświęci poprawności / bezpieczeństwa / wydajności dla wygody programisty.

W Swift jest to chyba trochę odwrotnie - staramy się zrobić język wygodny do pisania, dość rozbudowany, ale nieco kosztem wydajności (np. GC oparte na licznikach referencji), przenośności (wsparcie poza ekosystemem Apple jest słabe), czy wolności programisty (wielu rzeczy nie da się zrobić). Tylko że języków w tej kategorii jest dość dużo - np. C#, Java.

edytowany 7x, ostatnio: Krolik
IK
  • Rejestracja:ponad 7 lat
  • Ostatnio:prawie 2 lata
5
TerazOdpowiemNaKomcie napisał(a):

Rust albo Golang :D

Po paru latach z Golangiem mam trochę love-hate relację z tym językiem. Jeśli ktoś rozważa naukę Go lub Rusta i nie zna ani tego, ani tego, to na ten moment bez wahania poleciłbym Rusta.

Golang jest ciekawy, ale to w moich oczach język typowo produkcyjny, zostawia miało miejsca na zabawę. Rust pozwala na jedno i drugie. Dodatkowo uważam, że opanowanie m.in. systemu typów w Ruście (dobrze odmieniam?) przełoży się na produkowanie lepszego kodu w innych językach.

KR
[Golang] zostawia miało miejsca na zabawę. Rust pozwala na jedno i drugie <- to brzmi trochę jak reklama Go i antyreklama Rusta. Ale w kwestii Go vs Rust ja tu tylko zostawię to: https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride
IK
Dla mnie jest na odwrót - mój wpis to antyreklama Go i reklama Rusta :) chyba zależy od tego czego ktoś szuka w języku.
IT
Mógłbyś rozwinąć co masz na myśli mówiąc "język produkcyjny"?
KR
Zapewne chodziło mu o to że Golang to taki język gdzie celem jest "get the shit done" bez akademickich rozważań na temat wyższości sum nad produktami w implementacji obsługi błędów. W skrócie - robimy wiele rzeczy źle i bez sensu, ale skoro działa, to co z tego?
1programmer
  • Rejestracja:prawie 5 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
  • Postów:501
2

No to w takim razie teraz Rusta poogarniam i zobaczę, jak z tym poziomem trudności. Już w zasadzie zacząłem i mocno widać, że doświadczenie z TSa praktycznie nic nie daje, więc to faktycznie nauka programowania w Ruscie, a nie nauka syntaxu jakbym uczył się jakiejś Javy itp. Jak przykładowo zaczynałem w Pythonie, to potem w JSie po prostu zacząłem pisać, a tutaj jednak od zera trzeba wszystko zrozumieć. Chociaz może są jakieś podobieństwa, ale jestem na samym poczatku.


Programować muszę, bo się uduszę
Zobacz pozostałe 17 komentarzy
1programmer
@CloudPro: Wiem, jestem tego świadomy, dlatego też pytałem o Swifta, ale mimo wszystko na obecną chwilę będę próbwał z Rustem.
CP
@szafran98: chyba jak jest C, C++ i Rust, to jak ktoś zaczyna z niskopoziomowymi językami to najlepiej Rust, ja zaczynałem od C jak nie było Rust. Teraz i tak nie mam tyle do robienia, a większość to manipulowanie assemblerem danego procesora to i tak nie robi różnicy czy Rust czy C czy C++, może być i Python.
LukeJL
Swift to świat Apple, lepiej brać Rust, bo to jest na wszystkie platformy (natywne albo webassembly i odpalasz w przeglądarce)
LukeJL
w Rust jest trudno załapać podstawową semantykę (borrow checker, jak działają referencje, co to znaczy move, lifetime'y, jakieś podstawowe techniki), bo bez tego napiszesz kod, który się nie skompiluje albo który robi rzeczy na około (żeby się tylko skompilowało). Ale jak już to ogarniesz, to nagle się okazuje, że można w Rust pisać tak jak w każdym innym języku i nawet lepiej, bo jest bardzo silne typowanie, więc łatwiej refaktorować. Kompilator jest jak pies, który pilnuje, że nie robisz głupstw (czy może bardziej jak krab, skoro maskotką jest krab).
CP
@LukeJL: LLVM frontend sprawia, że można wszędzie kompilować, GNU nie dało możliwości na webassembly co mnie trochę irytuje, bo lubię ten kompilator i libjit jest bardzo przyjemny, ale nie wspierają.
IT
  • Rejestracja:około 6 lat
  • Ostatnio:10 miesięcy
  • Postów:111
1

Taki artykuł ostatnio czytałem, może kogoś zainteresuje w tym temacie

Gość w ciągu roku napisał wersję jednego programu w każdym z 7 języków i opisuje swoje wrażenia.

https://mode80.github.io/7-langs-in-12-months.html

several
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 4 godziny
2

Jaki język, żeby odpocząć od głównego?

IMHO powinieneś zapytać Jaki projekt, żeby odpocząć od <tu wstaw swoją technologicznę domenę>? i wtedy dobrać do tego narzędzie. Bo jak piszesz CRUDy i szukasz innego języka, żeby sobie znowu kolejnego CRUDa napisać to za wiele nie odpoczniesz.


1programmer
  • Rejestracja:prawie 5 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
  • Postów:501
3

@several: Na razie Rusta ogarniam. Zarządzanie pamięcią - stack, heap, jak działają pointery, borrowing. Ciekawe jest to dla mnie. Swifta jeszcze mam w odwodzie, jakbym uznał, że jestem zbyt głupi na Rusta.

W Ruście pewnie będę chciał coś desktopowego chcę napisać, Swift też mi daje takie opcje. Jakieś low level rzeczy, tylko na razie mam zerową wiedzę na ten temat i nie wiem nawet co jest możliwe. Pewnie chciałbym zobaczyć, jak na tym niskim poziomie działa system operacyjny. Może jakiś mikrokontroler kupię i pobawię się w embedded, nie wiem. Na obecną chwilę, to mnie w ogóle interesuje, jak bardzo jest to inaczej skonstruowany język od JSa.


Programować muszę, bo się uduszę
edytowany 1x, ostatnio: 1programmer
Zobacz pozostałe 3 komentarze
several
@remedium: Czy ten ML ma jakąś dłuższą nazwę? Niestety jak wpisuje to w dzisiejszą wyszukiwarkę to dostaje mnóstwo wyszukań na temat machine learning.
1programmer
@remedium: To chyba jakaś mega nisza. Sprawdzam Val i w docsach language tour jest 5 zakładek z treścią do ogarnięcia w godzinę. Wolę język, gdzie znajdę do niego jakieś materiały i ktoś mi pomoże przy problemie. Nie mówiąc już o społeczności i jakichś bibliotekach. Dla mnie za duży hardcore.
1programmer
@remedium: To może kiedyś się zainteresuje jak dojrzeją. Nie zależy mi na mega bezpieczeństwie, ani nie chcę być żadnym pionierem, bo nie jestem programistą z 15 latami expa, którego wszystko już znudziło. Gdzie indziej pisałeś o Gleam i go sprawdzałem niedawno przy okazji nauki Elixira. No i niestety LSP nie wspiera autocomplete, a mi szkoda czasu na sprawdzanie ciągle dokumentacji. Nowe wynalazki zostawiam bardziej doświadczonym.
1programmer
@remedium: Dzięki za propozycje, ale na razie będę trzymał się Rusta. Jeszcze wiele lat programowania przede mną i mam czas, żeby zainteresować się innymi językami.
1programmer
@Krolik: To rozumiem, że natywne narzędzia są niedojrzałe, ale widziałem takie cos jak Tauri i jest to najbliżej mojej dziedziny tj. frontu. Brałeś ten framework pod uwagę pisząc o niedojrzałości? Bo rozumiem, że pisząc aplikację desktopową można używać niskopoziomowych kontrolek systemowych, bibliotek jak GTK i HTMLa? To nie traktujesz takich rozwiązań jak Tauri zbyt poważnie? Są one w jakiś sposób uboższe od takiego GTK i podobnych, czy jest to tylko kwestia wydajności?
AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 dni
  • Postów:3561
2
several napisał(a):

Jaki język, żeby odpocząć od głównego?

IMHO powinieneś zapytać Jaki projekt, żeby odpocząć od <tu wstaw swoją technologicznę domenę>? i wtedy dobrać do tego narzędzie. Bo jak piszesz CRUDy i szukasz innego języka, żeby sobie znowu kolejnego CRUDa napisać to za wiele nie odpoczniesz.

Dokładnie.
A najlepiej - jesli to ma być naprawde język do odpoczynku - coś niszowego a fajnego intelektualnie, a nie "ukryta edukacja do przyszłej pracy"


Bo C to najlepszy język, każdy uczeń ci to powie
1programmer
  • Rejestracja:prawie 5 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
  • Postów:501
0

@AnyKtokolwiek: Jakie w takim razie języki postrzegasz jako niszowe?


Programować muszę, bo się uduszę
edytowany 1x, ostatnio: 1programmer
SA
  • Rejestracja:około 12 lat
  • Ostatnio:około 2 godziny
  • Postów:1431
3
szafran98 napisał(a):

@AnyKtokolwiek: Jakie w takim razie języki postrzegasz jako niszowe?

Zależy jaka nisza. Jak mocna to https://www.unison-lang.org/ albo https://www.ponylang.io/ ale Scala, Clojure czy Elixir to też nisza w porównaniu z JS, Pythonem czy Javą.

edytowany 1x, ostatnio: Saalin
AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:8 dni
  • Postów:3561
1
szafran98 napisał(a):

@AnyKtokolwiek: Jakie w takim razie języki postrzegasz jako niszowe?

na potzreby tego wątku?
Taki który co do zasady nie występuje w ofertach o pracę.

Lub taki, który występuje, ale w pewnym wieku jest skrajnie nieprawdopodobne zbudować swoją pozycję do rekrutacji. MUSI być bez napinki. Jeśli jest napinka, tzn źle wybrany język - w sensie tego wątku.

Jak bym podkreslł ujęcie dziedzinowe za @several
Np pewnie mi by przyniosło relaks nawet w starej Javie zajęcie sie dziedzinami "blisko sprzetu", pamięcią out-of-heap pięknie wystandarzywaną w nowych wersjach, choć nigdy tego komercyjnie nie użyję.
Hiper-numeryka (ta w zmiennym przecinku), której nie używam, i nie użyję profesjonalnie. Albo para-matematyka całkowitoliczbowa pokrewna szyfrom.


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
1programmer
No spoko, rozumiem podejście. Dla mnie Rust jest egzotyczny, bo nigdy nie pisałem w C, C++, Asemblerze i pozwala dotknąć tematów, których przez wysoki poziom JSa nie dotknąłem. Może źle wybrałem nazwę tematu albo mam inną definicję języka, przy którym odpocznę. Możliwe, że zapoznam się z jego koncepcjami i przerzucę się na chociażby Haskella albo Unisona, którego podesłał Saalin. Chciałem tu po prostu zebrać od Was propozycje.
1programmer
  • Rejestracja:prawie 5 lat
  • Ostatnio:dzień
  • Lokalizacja:Wrocław
  • Postów:501
0

@Saalin: No to wszystko zależy od tego kto jak postrzega niszę.

Elixira ogarniałem, tak jak pisałem tu w temacie i jest spoko, ale co można w nim optymalnie zrobić oprócz cruda? Nigdy nie miałem problemu z wydajnością i nie wiem jaki projekt musiałbym wymyślić, żeby pobawić się współbieżnością. Nie wiem, czego jeszcze nie wiem. Znacie tę koncpecję? To tak, jak zaczynacie uczyć się programowania, przerobicie książkę z podstawami i nie wiecie co dalej, bo nie znacie use case języka.
Wymieniałem też w temacie Haskella i jeśli będę chciał pouczyć się FP w pure języku, to sprawdzę tego Unisona.

Tak ja pisałem wyżej, chciałbym chociażby sprawdzić, jak w Ruscie tworzy się desktopowe aplikacje, ale też jest dużo innych możliwości, które wymieniałem, a o których nie mam wiedzy, bo na codzień poruszam się na wyższej warstwie abstrakcji. Idąc tokiem, że powinienem raczej wymyślić projekt, a do niego wybrać język, to równie dobrze mógłbym wziąć Electrona i nie wychylać się poza JSa. Dla mnie liczy się droga, a nie cel. Rust pozwala poznać mi niskopoziomowe koncepcje i wiadomo, że do tego mógłbym wybrać C, ale jestem po prostu ciekawy tego języka. Finalnie może się tak w niego wkręcę, że moim celem zawodowym będzie znalezienie w nim pracy albo całkowicie o nim zapomnę i będę próbował poznać inny język wymieniony tu w temacie, albo jeszcze okaże się, że zachcę mi się masterować JSa.

I tak przecież czas spędzony nad jakimkolwiek językiem nie jest stracony, bo pozwala spojrzeć na programowanie z szerszej perspektywy. Wtedy w przyszłości może przyjdzie taka chwila, że będę miał jakiś projekt do napisania i uznam, tak to jest właśnie ten język, w którym go napiszę, bo nadaje się najlepiej.


Programować muszę, bo się uduszę
edytowany 5x, ostatnio: 1programmer
Zobacz pozostały 1 komentarz
1programmer
@LukeJL: Wiem. Też zobaczę, jak to z tym WebAssembly wygląda.
LukeJL
z WebAssembly trzeba uważać na to, czego się używa, bo rozmiar bundle'a może wzrosnąć ogromnie. Jakiś czas temu zrobiłem sobie HelloWorld w Bevy (taki silnik do gier napisany w Rust). Tylko wszystko fajnie, ale bundle miał chyba z 25 megabajtów. I to był HelloWorld. Więc pewne rzeczy się nie nadają do weba (gdzieś czytałem, że rozmiar bundle'a można zmniejszyć, np. tutaj ktoś pisze, że udało mu się osiągnąć "tylko" 4 megabajty. No ale to i tak bardzo dużo jak na web). Dlatego pod Wasm trzeba uważnie się przyglądać, z czego się korzysta w tym Rust, bo może być niespodzianka.
CP
Jak dla mnie lepiej niech ludzie tworzą błędy w oprogramowaniu, ja akurat lubię pisać exploity, a nie zawsze jest błąd prosty do znalezienia.
CP
Zniszczyć życie? i kto robi sobie nagie fotki? Na pewno nie zdrowa na umyśle osoba. Ale w innych językach takich jak rust też się błędy zdarzają. Wyciekająca abstrakcja. Życie można komuś zniszczyć po prostu nieprawdziwe plotki na jego temat puszczając, a exploit raczej używa się do bug bounty, bez sensu kraść, zwykle z wiedzą przychodzi rozsądek, złodzieje zwykle nie mają wiedzy i kombinują zdobywając narzędzia. Większość physingowych technologii to jakieś copy paste script kiddies.
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)