Szukam nowego jezyka do nauki

Hispano-Suiza
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
0

Poniewaz programisci dobrze zarabiaja, a ja programowaniem pasjonuje sie juz od dnia w ktorym rodzice zaplanowali miec dziecko - szukam nowego jezyka wartego poznania.

  • Fajnie gdyby byl silnie
  • Kompilowany > Interpretowany
  • Obslugiwal paradygmat funkcyjny
  • Mial solidna obsluge wspolbieznosci

Mile widziane cos z powyzszych wymagan (im wiecej tym lepiej). I tak chodza mi po glowie:

  • Rust
  • Erlang
  • Coz z: Haskell/Lisp/F#

Finalnie moglbym zaczac z kazdym. Wolalbym jednak zebrac jakies opinie od ludzi, ktorzy grzebali w czyms wyzej wymienionym.
Polecasz -> napisz dlaczego, dzieki!

Jesli ktos ma jakas propozycje to rowniez ja rozwaze. O ile bedzie jakos uargumentowana :P


"Trolling is a art"
mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
1

typescript :p


It's All About the Game.
KO
:(
Hispano-Suiza
Nice try! Ale nie tym razem :P
TurkucPodjadek
TurkucPodjadek
  • Rejestracja:około 8 lat
  • Ostatnio:około 4 lata
  • Postów:607
0
Hispano-Suiza napisał(a):

Poniewaz programisci dobrze zarabiaja(...)

Jedynie Ci, co wstrzelą się ze swoim produktem w języku X w niszę rynkową. Mam nadzieję, że pomogłem. :)

PS Jak ciekawe case study możesz te dwa filmy obejrzeć (bez względu na Twój stosunek do autora):

Jak mniej zależy Ci na zarobkach, a więcej na językach samych w sobie, to bierz jakikolwiek, które miały swoje początki po 1990 roku.

Hispano-Suiza
@TurkucPodjadek: jaja sobie robie :-) musialem jakis wstep do posta. Jezyka szukam rekreacyjnie i z checi poznania czegos nowego do kolekcji.
Miang
  • Rejestracja:prawie 7 lat
  • Ostatnio:3 minuty
  • Postów:1659
0

silnie, funkcje
to może po prostu matematyką się zajmij


dzisiaj programiści uwielbiają przepisywać kod z jednego języka do drugiego, tylko po to by z projektem nadal stać w miejscu ale na nowej technologii
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
4

Siedzę w Rustcie od niecałych dwóch lat (kodzę projekty po godzinach) i polecam 10/10 każdemu:

  • istnieje oficjalne wsparcie od IntelliJ w formie wtyczki (https://intellij-rust.github.io/),
  • menedżer pakietów (cargo) jest niesamowicie wygodny i przemyślany; nie przypominam sobie, abym kiedykolwiek miał jakieś większe problemy z zależnościami,
  • oficjalna dokumentacja (The Book) jest bardzo dobrze przygotowana, w zasadzie rzadko kiedy potrzebowałem zaglądać w inne źródła,
  • przede wszystkim sam język wyróżnia się na tle innych swoimi mechanikami (move semantics, borrow checker, async + await, iteratory oraz cała reszta, którą znajdziesz w poradnikach / porównaniach).

Patrząc na wady, największą bolączką Rusta jest IMO mierne wsparcie dla Futureów / Promiseów / Tasków znanych z innych języków - o ile w JSie, C# czy Go pisanie asynchronicznego (lub przynajmniej asynchronous-like) kodu jest przyjemne i wygodne, tak Rust wymaga jeszcze trochę dopieszczenia (choć prace wrą cały czas! https://areweasyncyet.rs/, https://github.com/rust-lang/rust/issues/50547).


edytowany 1x, ostatnio: Patryk27
Pipes
  • Rejestracja:około 11 lat
  • Ostatnio:ponad 3 lata
  • Postów:459
2

Możesz się zainteresować Erlangiem, lub Elixirem, który oferuje, to co Erlang + bardziej przystępną składnię.

Elixir i Erlang są silnie, ale dynamiczne typowane. Możesz jednak wykorzystać typespece, aby nieco sobie ten temat ogarnąć i wykorzystać pattern matching na poziomie definicji funkcji. Rynek pracy w Elixirze się dość dynamicznie rozwija, sam miałem przyjemność siedzieć w jednym projekcie ponad rok i ogólnie mam bardzo pozytywne wspomnienia. Jako IDE masz IntelliJ z pluginem, Atom (polecam) albo cokolwiek innego - nie ma żadnego problemu ze wsparciem kolorowania składni i autouzupełnianiem. Do tego Elixir ma wbudowany formatter, więc kod zawsze wygląda czytelnie. Pozostałe ficzery sam wymieniłeś - funkcyjny, współbieżny, kompilowany ;)

Trochę meksyku w Elixirze masz z deplojem, jeżeli chcesz się bawić w distillery / edeploy, ale mają to niebawem (czekamy bodaj od roku...) poprawić.
Dodam jeszcze świetny package manager, rozwijający się ekosystem i dość przyjazną społeczność, a także świetne materiały do nauki (głównie pragpub).

edytowany 1x, ostatnio: Pipes
Hispano-Suiza
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
1

Bait mi nie wyszedł :/ Zatem w kwestii wyjaśnienia.
Nie szukam języka po to żeby w nim pracować. Chciałem po prostu poznać coś nowego - raz na jakiś czas podobno wypada. Dzięki za dotychczasowe propozycje. Wezmę sobie do serduszka :-) I czekam na następne jeśli ktoś coś chce dorzucić ;-)


"Trolling is a art"
NO
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:165
1

Możliwe, że szukasz Scali.

Scala jest silnie typowana i kompilowalna.

Pod względem atrakcyjności Scala jest taka średnia. Z jednej strony spoko, bo na tle języków funkcyjnych wyróżnia się tym, że łatwo można znaleźć b. dobrze płatną pracę. Nie tylko w PL, ale i za granicą (np. skandynawia). Czego za bardzo nie można powiedzieć o innych funkcyjnych językach.

Tutaj ludziom zazdroszczę nie tyle co samego faktu obcowania ze Scalą, ale uczestnictwa w ciekawych projektach. Firma, która decyduje się na Scale na 99% ma fajny projekt.

Scala jest również praktyczna. Nie wymusza na Tobie tylko funkcyjnego programowania. Daje Ci wybór, możesz część kodować obiektowo, część funkcyjnie więc nie ma paniki, że sobie nie dasz rady.

Natomiast to co mnie odrzuca to czas jaki trzeba wpakować w ten język. Dla mnie to taki drugi C++, w którym programista bardziej walczy z gramatyka języka niż na tym co chcę osiągnąć.

Ogólnie to tak ciężko Ci polecić inny język, bo nie sprecyzowałeś co chciałbyś w nim programować.

Z innych języków jakie trochę poznałem to:

Elixir -> jeśli chcesz błyskawicznie kodować websockety w oparciu o kompletny framework, https://elixirschool.com/ wersję PL zrobił @Koziołek :D Obawy: dziurawa abstrakcja, bo znajomość Elixira pociąga za sobą naukę erlanga, oraz jest tutaj holistyczne podejście (albo kodujesz aktory albo nie kodujesz), projekty w Elixir są bardzo OK do programowania scalowalnego IO, ale niekoniecznie sprawdzą się tam gdzie wymagane jest mielenie danych, obliczenia itp

ClojureScript -> jeśli chcesz robić front w reactjs (oraz react native) 100 razy LEPIEJ i prościej niż javascriptowcy (wydaje mi się, że programowanie w clojure nie wymaga tyle co lubienia lispu czy makr co pisania konkretnego kodu z podziałem na warstwy i zasięg)

Clojure -> ciężej wchodzi niż clojurescript, ale pierwszą zachętą jest to by połączyć oba języki wówczas robiąc rozwiązania webowe masz prostszy stack. Sam clojure pod względem składni jak i modelu programowania jest przeciwieństwem elixira. Elixir wymusza aktory, natomiast w Clojure masz wybór. Gdybym miał robić projekt z innymi ludźmi to wybrałbym język po którym wiem czego mogę się spodziewać od ludzi - np. elixir, ale Clojure w rękach kogoś to zagadka. Dla kogoś kto umie programować i chce programować pozwala na znacznie więcej. Możesz robić asynchroniczne IO, możesz kodować jak w go z routines, możesz kodować z aktorami, możesz skupić się na obliczeniach, możesz programować w logice - ale to wszystko wymaga większego pokładu cierpliwości i w ogóle większej wprawy w rozumieniu języka. Inaczej wyjdzie ci g'wno i dziwny błąd co chwilę. Poza tym społeczność języka koncentruje się na produkowaniu małych konkretnych bibliotek. Dlatego też jak robisz web to raczej nie w oparciu o kompletny framework, a zbiór bibliotek. To znów wymaga więcej czasu, ale ostatecznie oddaje Ci władzę nad tym co robisz. PS, ja wiem, że w tym języku nie znajdę dobrej pracy, ale uczę się go by móc w nim kodować własne projekty. Poza tym python coraz bardziej mnie ogranicza.

edytowany 3x, ostatnio: nohtyp
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
4

Polecam trochę haskella. Da się w nim robić normalne projekty (np. serwery www).
Zalety:
Dominuje podejście czysto funkcyjne, dowiesz się z życia po co są monady.
Jest dość prosty i czytelny.
Fajnie sie w nim modeluje mimo, że jest nieobiektowy. Haskell powoduje, że zaczyna się wątpić w obiektówkę.
GHCI jest fajne w nauce.
Na codingGame i podobnych da się ładnie uczyć haskella.
Wady:
jest to stary język wieć juz dużo jest naleciałości dziwnych (opcje/rozszerzenia kompilatora to chaos)
W praktyce są brudne częsci haskella, a template haskell to już prawdziwy rak,
jakość bibliotek w repozytorium (hackage) jest dość różna.

Powoli wchodzi Idris, czyli poprawiony haskell z dependent types, ale IMO trudno się będzie uczyć, bo mało jest przykładów.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
czysteskarpety
czysteskarpety
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
2
jarekr000000 napisał(a):

Polecam trochę haskella. Da siew nim robić normalne projekty (np. serwery www).

Leniwe wartościowanie to może być coś dla mnie :]


Zobacz pozostały 1 komentarz
NO
Clojure ma domyślnie leniwe sekwencje i ta decyzja była chyba jedna z najgorszych decyzji przy projektowaniu języka. Leniwe programowanie to zuo, które może zaskoczyć w najmniej oczekiwanym momencie. Przy obsłudze wyjątków, stosowaniu bindingu (podmiana implementacji z góry w okreslonym zakresie aka monkey patching) i przy asynchronicznym przetwarzaniu.
jarekr000000
@nohtyp With great power comes a ton of weird crap . Chociaż o Scali juz było. I Scala i leniwce bardzo mi się pdobają.
NO
Wspominam o tym bo ludzie jarają się tym jak javascriptowym frameworkiem, a mało kto wspomina o tym, że to jednak jest słabe. Takie leniwe wartościowanie to powinna być rzadko stosowana technika tylko wtedy, gdy potrzebna jest optymalizacja.
jarekr000000
Dla mnie leniwe wartościowanie to głównie sposób na pisanie mniejszej ilości kodu. mniej ścieżek do ogarnięcia (same się ogarną).
NO
Podrzucisz jakiś przykład?
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0

Zanim odpowiem zapytam - które języki już znasz?

jarekr000000
COBOLa pewnie nie zna. A warto - dla samej zabawy.
vpiotr
Dla zabawy to można poznać Logo, Forth, Ada, Smalltalk. COBOL wykręca mózg, chociaż mam nadzieję że nie trwale...
jarekr000000
@vpiotr: ty jeszcze pracujesz, z Ejb i java ee. Powiedzmy sobie szczerze, po tym combo to zmiany są raczej nieodwracalne. Możesz liczyć na cud, ewentualnie wódka to jest jakaś nadzieja. Morze wódki.
vpiotr
😊
Hispano-Suiza
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
2
vpiotr napisał(a):

Zanim odpowiem zapytam - które języki już znasz?

Do tej pory miałem okazję pracować lub poznać:

  • C/C++ - Krótki epizod podczas studiów. Chociaż bawiłem się nimi dłużej niż trwał przedmiot. Bardzo fajne języki ale na dzień dzisiejszy ciężko byłoby mi znaleźć dla nich realne zastosowanie.

  • C# - Porzuciłem po rozstaniu z ostatnim pracodawcą. Coś mi w tym języku nie odpowiada mimo, że na pewnym poziomie w tych wersjach do 6.0 to praktycznie Java. Może ekosystem, może jakieś bardziej zaawansowane aspekty. Na pewno w moim odczuciu przeinżynierowanie tego języka. Ma kilka fajnych rzeczy, których nie uświadczyłem w Java i których mi brakowało. Natomiast to nie był powód żeby rzucać sę z powodu kilku fajnych rzeczy na cały ekosystem. Nie odpowiadała mi też praca na Windows - to na pewno. Plusem na dziś jest .NET Core. Ale tu znowu zraziłem się w wersji 1.0 gdy nie mogłem prostego projektu uruchomić, a na grupach twarzoksiążkowych widziałem posty ludzi, którzy siedzą w .NET od początków (+10 lat) i nawet oni nie dawali rady :D

  • Java - Porzuciłem po rozstaniu z ostatnim pracodawcą. Mordowały mnie rzeczy, które musiałem w tym robić. Stare Springi i EE. Na pewnym etapie po prostu przestałem rozumieć co tam robię i dlaczego obsługa cookies zajmuje 300 linijek. Kolejną rzeczą, która mi nie pasuje to dziedziny projektów. Prawdopodobieństwo trafienia w jakiś syfiasty projekt to jakieś 9:1 (albo i więcej).

  • Python - Okropny język. Spędziłem z nim +/- 3 miesiące. Zacząłem od pozycji z realpython.com do wersji 3.5. U siebie miałem wersję 3.6 i 1/4 rzeczy, którą przerabiałem w tamach nauki nie chciała działać. Jestem mocno niezwyczajny po życiu z Javą/C# do takich rzeczy. Nie mam pojęcia co ludzie w tym widzą. Do napisania 30-50 linijek skryptu jeszcze daje radę. Ale wszystko powyżej to katastrofa. Formatowanie kodu wcięciami - jak ma się gorszy wzrok to te odstępy trzeba mierzyć 30cm linijką na ekranie. Nawet to fantastyczne IDE od JetBrains czasami samo miało problem z ogarnięciem kodu i co najzabawniejsze w zależności od ilości wcięć potrafiło uruchomić kod dając zupełnie różne wyniki :D Kompletna paranoja ale rozumiem, że są ludzie, którzy lubią ten język i nie mam z tym problemu :-)
    @Julian_ Jak tam podeszła Ci książka?

  • JS - To ustrojstwo musiałem w końcu przyswoić ze względu na front. Ma swoje zalety (nie sądziłem, że kiedykolwiek to powiem) ale nie jestem fanatykiem. Fanem też nie. Żyję ze świadomością, że muszę to znać.

  • Go - Oszczędzę wam szczegółów. Mógłby to być najdłuższy post na tym forum, a szanuję wasz czas :-)

@jarekr000000 Bawiłem się +3 lata temu GnuCobol/Open Cobol - już sam nie wiem, która nazwa aktualnie obowiązuje. Frajdą było szukanie 7 plików *.dll do uruchomienia skompilowanego programiku. Zajęło mi to 2 dni :-) Aczkolwiek nie pamiętam ile te wersje mają wspólnego z tym Cobolem klasycznym.

Idris - Zerknąłem szybko na Twoją propozycję. Na pierwszy rzut oka wygląda dość ciekawie. Jest oficjalny tutorial @ http://docs.idris-lang.org/en/latest/tutorial/typesfuns.html. Pytanie jak się to rozwinie dalej Widzę, że pierwsze publikacje przypadają na 2008 rok i faktycznie nie ma tego za dużo.


"Trolling is a art"
NO
Oceniasz języki z perspektywy pracy na rynku, a to trochę źle, bo w takim wymiarze ciągle będziesz miał miliony powodów do krytyki. A weź spójrz na to inaczej: w c/c++ oraz java pisze się trochę żmudnie, ale te języki dają początek wielu bibliotekom/narzędziom, które można wykorzystać z poziomu innej abstrakcji np. wołać biblioteki c++ z poziomu pythona albo javy z poziomu np. clojure. Albo taki js niby język trudny, niespójny itp, ale z samego języka mozna wycisnąć wiele. Nawet crocford pisał w mocnych stronach, że w javascript to taki lisp :-)
Hispano-Suiza
Jakiś punkt odniesienia muszę znaleźć. Na razie z perspektywy rynkowej oceniłem Jave i C#. Cała reszta to moje chęci/potrzeby douczenia się. Python z racji chęci zmiany kierunku, a tam dokąd zmierzałem/zmierzam niestety jakaś jego znajomość była wymagana. JS żeby móc napisać trochę bardziej zaawansowany front do swoich projektów. Ale wspomniałem również co mi pasuje, a co nie - może nie wszędzie po równo. Miałem w sumie ograniczyć się do wypowiedzi na temat tego w czym miałem szansę już coś porobić ;-)
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
2

OK, czyli sama rynkowa klasyka.

Proponuję rozważyć:

  • Elixir (lepsza strona Erlanga)
  • Rust (not your father's C)
  • Haskell (dla FP)
  • Clojure (Lisp na JVM, zaleta - nie tylko do projektów akademickich)
  • Kotlin (ładniejsza Java)

Oczywiście te języki polecam bo ich nie znam ;-)
Scale chociaż też nie znam to nie polecam. Jakoś mi zalatuje Perlem. Mogę się oczywiście mylić. Ale nie wiem czy znajdę czas żeby się do niej kiedyś przekonać.

A co do C++ - jest to taki trochę język typu łacina. Można się bez niego obyć, ale na pewnym etapie zaawansowania wypadałoby znać.
A np. do zaimplementowania wydajnej biblioteki dla Pythona.
Albo do poprawienia któregoś z kompilatorów języków wymienionych wcześniej.

Co do gołego C to bezdyskusyjnie warto go znać. Oprócz tego co napisałem o C++ ma on także prostszą składnię i jest wykorzystywany w większej liczbie miejsc. Poza tym jeden kilkumiesięczny epizod wystarcza żeby poznać go na całe życie (język ten nie zmienia się jakoś strasznie dynamicznie).

Pythona warto znać, ja na stanowisku Javovca mam do czynienia z Pythonem w formie skryptów deploymentu (WAS). Poza tym w Pythonie można robić własne rozwiązania typu REPL (własna biblioteka / serwis sterowana skryptem Pythonowym wyrzeźbionym na kolanie - np. podczas prezentacji).
Jeśli chodzi o coś większego w tym języku to się nie spotkałem, ale na pewno się da, zwłaszcza jeśli zastosujesz type hints.

Hispano-Suiza
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
0

Oczywiście te języki polecam bo ich nie znam ;-)
Scale chociaż też nie znam to nie polecam. Jakoś mi zalatuje Perlem. Mogę się oczywiście mylić. Ale nie wiem czy znajdę czas żeby się do niej kiedyś przekonać.

Kotlin odrzucam. Patrzyłem na niego ale nie porwał mnie kompletnie. Może gdybym bawił się w mobilne to tak. Scala była na celowniku i z jakichś względów odpadła (brak czasu). I materiałów też za wiele nie znalazłem. Jakoś bardzo nie szukałem bo pewnie gdzieś są :P

A co do C++ - jest to taki trochę język typu łacina. Można się bez niego obyć, ale na pewnym etapie zaawansowania wypadałoby znać.
A np. do zaimplementowania wydajnej biblioteki dla Pythona.

Czyli tak jak mówiłem. Nie widzę pola do używania ;-)

Pythona warto znać, ja na stanowisku Javovca mam do czynienia z Pythonem w formie skryptów deploymentu (WAS). Poza tym w Pythonie można robić własne rozwiązania typu REPL (własna biblioteka / serwis sterowana skryptem Pythonowym wyrzeźbionym na kolanie - np. podczas prezentacji).

Śmierdzi fanatyzmem, wiem. Ale zastępstwem dla Pythona dla mnie jest Go. Pythonowi brak argumentów w moim odczuciu, które przeważałyby żebym sam z siebie musiał go używać. Poza tym jestem na etapie rezygnacji z rynkowej Javy/C#. Liczę, że nie wybiorę się więcej w tym kierunku pomimo jakichś doświadczeń.
Języka szukam nie pod pracę, a pod zabawę. Nie wykluczam jednak, że jeśli trafiłaby się jakaś propozycja kiedyś w czymś nowym co wezmę na warsztat teraz to pewnie podjąłbym wyzwanie - bo czemu nie ;-)


"Trolling is a art"
Hispano-Suiza
Nie wiem jak Scala szybko się rozwija. Pozycja z 2016 roku - jak mocno nieaktualna? @tdudzik
DQ
Książka podana przez @tdudzik na początek jest ok. Scala aktualnie nie rozwija się zbyt szybko, a książka jest dostosowana do wersji 2.12. Teraz główny nacisk idzie w Dottyego. To, co w miarę szybko idzie do przodu to FP w Scali, ale tym i tak na początku nie ma co sobie zawracać głowy
TD
@Hispano-Suiza: no ja nie potrafię ocenić aktualności bo od tej książki zacząłem i jest to dla mnie raczej poboczny temat więc nie mam porównania z innymi źródłami. Potem planuje przeczytac Functional Programming in Scala,a potem to juz pewnie głównie dokumentacja czy źródła. Ogólnie nie wydaje mi sie zeby w jakiejkolwiek powaznej technologii nie warto bylo czytac dwuletniej książki, zazwyczaj kompatybilność jest zachowana i co najwyżej dochodzą nowe rzeczy
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
1

Zapomniałem jeszcze o Julii i Nim.
Ten pierwszy do wszelkich symulacji numerycznych, ten drugi jako dużo lepsze C.

Julia
W zastosowaniach numerycznych aktualnie często spotyka się rozwiązanie typu biblioteka w C/Fortran + frontend w Pythonie.
Julia ze względu na wbudowaną wydajność pozwala na implementację tego samego w jednym języku, dodatkowo wspiera przetwarzanie równoległe.
Integruje się z Jupiter Notebook.

https://julialang.org/

Nim
Jest chyba mniej rozwinięty od Go i Rust. Ale ma dużo fajnych ficzerów językowych.
Bezpośrednia współpraca z bibliotekami w C, kross-kompilacja do JS.
Wbudowany szybki GC.
Niestety sterowany wcięciami, więc chyba Ci nie przypasuje.

https://nim-lang.org/

hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:10 dni
2

Pracuję zarówno z BEAM (Erlang/Elixir, zawodowo) jak i z Rustem (po godzinach) i mogę z całym sercem polecić oba do nauki, bardzo fanie rozszerza światopogląd. Dodatkowo polecę też Haskella (za @jarekr000000) bo tak samo pozwala na inne spojrzenie na programowanie.


katelx
  • Rejestracja:prawie 10 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Hong Kong
2

jak dla funu to polecalabym erlanga, jakiegos lispa, haskella albo pochodna apl (j albo k)

hauleth
LFE i masz 2 w jednym (w prawdzie lisp-2, ale nie można mieć wszystkiego, zwłaszcza, że to Erlang).
katelx
fajne, hipsterskie :)
hauleth
Jeśli nazwać Roberta Virdinga hipsterem, to tak ;)
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)