Co z tą Scalą ?

Co z tą Scalą ?
0

@datdata
Taki kod można napisać w każdym języku.
Owszem, taki kod jest spotykany w bibliotekach, ale u mnie firmowy kod wygląda jak ulepszony Javowy: wciąż się stosuje długie nazwy zmiennych, a dzięki podejściu niemutowalnemu, kod wygląda jeszcze czytelniej.
No i stosowanie symboli ponad słowa to jak dla mnie plus (nie mówie o nazwach metod, a raczej o krótszym zapisie genericsów).

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0
datdata napisał(a):

Problem ze Scalą jest taki, że można napisać kod, który dla przeciętnego czytającego programisty nie różni się niczym od Brainfucka.

To raczej problem środowiska (ludzi) niż języka.

Programiści dzielą się na dwa rodzaje:

  • tych co lubią Brainfucka (i starają się to okazywać)
  • tych co nie lubią Brainfucka (i tępią tych pierwszych)

W przypadku Brainfucka widząc kod wiesz że to tylko przykład dla jaj.
W przypadku Perl nie masz takiej pewności.

Kod można zamącić nawet legalnie (regexp, lambda, makra, generyki), nie trzeba do tego wyszukanego języka.
Jeśli środowisko (firma, szef) na to pozwala, to jeśli nie robisz code review, najlepiej po prostu zmienić pracę.

edytowany 2x, ostatnio: vpiotr
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
Wizzie
ktoś napisał, że jest prosta? :D
KA
nie wiem. ale dziwna jest.
NZ
Jak kogoś dziwne nazwy kręcą to na pewno doceni biblioteka do Lensów w Haskellu: https://hackage.haskell.org/package/lens-4.0.1/docs/Control-Lens-Operators.html
KR
No bez przesady, tak trudno nauczyć się kilku operatorów? Serio, większość bibliotek już od dawna odeszło od stosowania własnych operatorów, a tych w bibliotece standardowej jest może 5 ponad te ogólnie znane i rozumiane.
0

ten temat powinien trafić tutaj Inne języki programowania

0

A pod Linuksem lepiej zainteresować się Scalą czy C#? Teraz Microsoft odtworzył .NET i mam dylemat, jest VisualStudio, Xamarin, MonoDevelop. Czy może jakiś inny język z którego jest jakiś pożytek. Wiem jest python C/C++, ale coś z nowszych języków bym wolał przyszłościowych.

wiciu
Nie widzę sensu w pchaniu się w technologie MS pod Linuxem. :-) Mnie bardziej podchodzi ekosystem i community Javowe, ale niektórzy celują w .NET-a i MS. Wtedy trzeba działać na Windowsie. Wybierz to, co Ci bardziej podchodzi.
NZ
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 8 lat
  • Postów:93
0

W .NET i tak lepiej programować na Windowsie (Visual Studio, MSSQL, etc). Bolączką Scali jest natomiast to, że w wielu firmach trzeba i tak umieć Javę, a jak wszyscy wiemy, Java jest poroniona.

Jak nie trawisz Windowsów, to pójście w .NET jest conajmniej dziwne. Bierz coś ze stacka JVMowego, albo coś zupełnie z czapy jak python czy ruby czy cokolwiek.

0

Dzięki nz. Z tego co widzę VisualStudio Code jest tylko do aplikacji webowych pod Linux. Więc zostało mi tylko python, ruby, php lub javascript.
Takie języki jak Vala ,D, Ceylon, Kotlin, Groovy to jak na razie nisza. A do Scali powiadasz i tak trzeba znać dobrze Jave.
Swift na Linuksie też nie ma dobrego IDE?
No to pozostaje Java 9, nawet pobrałem już wersję

Kopiuj
 java -version
java version "1.9.0-ea"
Java(TM) SE Runtime Environment (build 1.9.0-ea-b81)
Java HotSpot(TM) Client VM (build 1.9.0-ea-b81, mixed mode)

I pod Eclipse Mars mam możliwość wyboru dwóch wersji. A w sieci pojawiły się już jakieś kursy Javy 1.9.
Czy to jest dobre rozwiązanie, pogodzić Linux z programowaniem w Javie, czy może pójść na Linuksie w aplikacje webowe?
Osobiście mam już za sobą podstawy Javu i C# , gdzie ten ostani język jest jakby łatwiejszy trochę dla mnie.

Wizzie
Swift na Linuksie też nie ma dobrego IDE? ogólnie programowanie pod iOS na innych systemach to ponoć katorga
NZ
A do Scali powiadasz i tak trzeba znać dobrze Jave. Żeby pracować w Scali to najczęściej trzeba tą Jave znać. Bo np. 1 część systemu jest w Javie, a druga już pisana w scali, czy inne cuda. Natomiast do samego programowania w Scali to niekoniecznie trzeba znać jakikolwiek inny język.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około godziny
0

Nie trzeba umieć płynnie klepać w Javie, by uczyć się Scali. Pewna znajomość Javy się przyda przy programowaniu w Scali, ale to głównie po to, by móc z poziomu Scali korzystać z Javowych bibliotek.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
0

Czytał ktoś Scala for the Impatient? Polecacie?

Piszę w Java i wydaje się dobra pozycja dla mnie.

Javaluke Scriptwalker
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Wlk. Brytania
  • Postów:105
0

Co się właściwie programuje w Scali i innych językach co stosują to programowanie funkcyjne?

Maciej Cąderek
Maciej Cąderek
Po ksywce myślałem, że wiesz do czego się przydaje programowanie funkcyjne ;)
Javaluke Scriptwalker
no niestety, dopiero raczkuje i to tylko ksywka :)
hauleth
Pisanie parserów funkcyjnie jest bardzo wydajne. Oprócz tego w przetwarzaniu rozproszonym jest tego wiele. Sprawdź sobie co jest napisane w Erlangu.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około godziny
2

W poprzedniej firmie tworzyłem ERP w Scali. W obecnej system wspomagający akceptację kontraktów walutowych.

W Scali jest napisana np spora część Twittera czy serwis Gilt.com
Ogólnie myślę, że nie ma jakichś przeciwskazań do Scali.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
KR
Moderator
  • Rejestracja:prawie 21 lat
  • Ostatnio:2 dni
  • Postów:2964
5

http://www.slideshare.net/deanwampler/why-scala-is-taking-over-the-big-data-world

Właściwie trudno w 2015 roku znaleźć sensowne powody, aby nie pisać w Scali. Kiedyś były to:

  1. powolna kompilacja

  2. słabe IDE

  3. zbyt mało programistów

  4. kompatybilnośc wsteczna

  5. Kompilacja przyrostowa z SBT / Zinc + dobra modularyzacja projektu i czasy rekompilacji mieszczą się w 2-4 sekundach. Ba, mam projekt na 20 tys. linii kodu w Scali 2.11, w którym sbt clean package zajmuje ok. 12 sekund na Intelu 2. generacji.

  6. Plugin IDEA do Scali jest lepszy niż większość pluginów do innych popularnych języków (np. C++, C# w VS bez resharpera albo Python, PHP, JS, Ruby, Delphi).

  7. Może jest ich mniej, ale ci, którzy są, są średnio znacznie lepsi od Javowców. Tzn. jest bardzo silny efekt "Python paradox", o którym pisał Paul Graham. Słabi programiści nie uczą się Scali, bo "za trudna". Oczywiście nie każdy programista ze Scalą w CV to od razu jakiś wymiatacz, ale zwykle wymaganie to nieźle odfiltrowuje to największych głąbów, przez co ułatwia rekrutację. Zamiast wybierać 2 z 1000 średnio-kiepskich kandydatów, wybieramy 2 najlepszych z 10 dobrych.

  8. Nie wiem, czy to ma takie duże znaczenie i czy akurat Scala jest dużo gorsza pod tym względem od innych języków - w każdym projekcie niezależnie od języka są problemy z binarną kompatybilnością wsteczną bibliotek. Mamy projekt pisany częściowo w Javie, częściowo w Scali i na razie część Javowa sprawia znacznie więcej problemów z kompatybilnością. Może dlatego, że w Scali wystarczają nam może 3 bardzo specyficzne biblioteki (z czego jedna compile-time-only, bez runtime'u), a w Javie nie da się sensownie pisać bez Guavy, pięciu frameworków i zyliona commonsów, a może dlatego, że jak w Scali podlinkujesz złą bibliotekę od nie tej wersji Scali, to po prostu wybucha, natomiast Java działa tak "troszkę".

krzysiek050
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 4 lata
  • Postów:1272
3

@Wibowit @Krolik
Nie myśleliście żeby skrobnąć czasem jakąś ciekawostkę o scali na microblogu?

several
  • Rejestracja:ponad 15 lat
  • Ostatnio:minuta
1

Jave znam na mniej niż miernym poziomie. Nie przepadam za nią z czysto nie praktycznych powodów, nie lubię i już. Ale samą scalę wg mnie warto znać żeby móc chociażby użyć gatlinga http://gatling.io/, którego raporty odpowiadają wprost na pytania jakie zadaje mi menedżer ;)


edytowany 1x, ostatnio: several
several
Nie rozumiem co ma wspólnego over engineering z moim postem.
caer
to że strony w ogóle nie da się uruchomić bez odblokowywania javascripta, a skąd ktoś ma wiedzieć czy chce go odblokować skoro nie wie co jest na stronie?
several
Widzisz, gdybyś pisał wprost szybciej byśmy się dogadali. Przez takie pośrednie zagrywki tracę czas, co sprawia, że jest mi bardzo wszystko jedno czy wejdziesz na tą stronę czy nie ;)
caer
Przecież i tak nic z tym nie możesz zrobić, a ja swój cel osiągnąłem, więc...
0

Pattern Matching jest super w językach funkcyjnych. Gdzie w Java wygląda to jak kupa.

Kopiuj
def fibonacci(in: Any): Int = in match {
    case 0 => 0
    case 1 => 1
    case n: Int if (n > 1)=> fibonacci(n - 1) + fibonacci(n - 2)
    case n: String  => fibonacci(n.toInt - 1) + fibonacci(n.toInt - 2)
    case _ => 0
}

println(fibonacci(3))
println(fibonacci(-3))
println(fibonacci("3"))

NZ
WTF. Za tak napisany kod obdzierałbym ze skóry, żywcem.
JK
@nz co tutaj jest AŻ tak nie tak?
NZ
Używanie Any. Type check dla typów kompletnie z d**y. Castowanie. Złożoność obliczeniowa.
merlinnot
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 5 lat
  • Lokalizacja:Wrocław
  • Postów:292
0

@up trochę słabo...

Lepiej tak:

Kopiuj
def fib(n : Int) : Int = { 
  def fib_tail(n: Int, a:Int, b:Int): Int = n match {
    case 0 => a 
    case _ => fib_tail(n-1, b, a+b)
  }
  return fib_tail(n, 0, 1)
}
Wibowit
a gdzie @tailrec? :P
merlinnot
Bałem się, jeszcze by się nie skompilowało ;p
0

Kod przekopiowany z jakiegoś tutoriala. Nie chodziło mi o super kod a o ideę.

Jak to taki zly kod byl, to w java byloby jeszcze gorzej ;p

NZ
Ideę pattern matchingu można prosto pokazać na jakimś balansowaniu RBT czy interpretowania prostej gramatyki. Nie trzeba wybryków takich tworzyć.
0

gwoli ścisłości, stąd:
http://www.scala-tour.com/#/pattern-match

0
0

Coraz więcej widzę możliwości pracy w scali bez doświadczenia komercyjnego. Często wymagane jest doświadczenie w Javie i np chęć nauki Scali( lub jej podstawy). Orientujecie się może jak wygląda negocjowanie zarobków w takiej sytuacji?
Ofert jest całkiem sporo. już nie wspominając o akcji Jacka Laskowskiego w Warszawie. W samym Krakowie można znaleźć coś dla Scala newbie z bagażem Javovym.

Hitem jest dla mnie ogłoszenie http://4programmers.net/Praca/9615-Senior_Software_Developer_%28Scala%29, które od seniora wylaga:

good knowledge of Scala (reading the "Programming in Scala" book by Odersky should suffice) and some code written (completing exercises of "Functional Programming in Scala" on Coursera is a minimum)

0

Macie jakieś pomysły/aargumenty dla pracodawcy, żeby móc pouczyć się scali i jej frameworków w pracy? :D

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około godziny
3

Zaklep w Scali jakieś użyteczne narzędzie, pokaż kolegom, by się zaznajomi i zaczęli używać, a dopiero później pokaż menedżerowi. Wtedy być może dostaniesz zielone światło do rozwijania tego narzędzia.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit
0

Ale dostane tez pytanie czemu nie moglem napisac tego w technologii co znam, np. Java. Myslalem o jakiejs web appce ogolnie. Ale predzej docenia to pewnie koledzy niz reszta. Ale tez niekoniecznie bo jak komus pokazalem wedlug mnie fajny zapis w scali to koledze sie nie podobalo. Mysle, ze dlatego bo nie wiedzial jak to czytac na 1 rzut oka.

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około godziny
0

Jak pracowałem w Sabre to byłem w zespole Javowców, ale oprócz wielkiej starożytnej biznesowej krowy w Javie mieliśmy też do utrzymania dość spory kawałek kodu w Pythonie. Poprzednicy "ukradkiem" napisali narzędzie do automatyzacji testów w Pythonie (i nawet jakoś dużo wiedzy o nim nie przekazali następcom), a narzędzie zyskało popularność i uznanie kadry zarządzającej, więc my musieliśmy się uczyć Pythona (bleeeee) i rozwijać czy łatać to narzędzie. Jak widać - da się przemycić ulubiony język programowania.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
0

Ale po co chcesz coś przemycać? Prowadzisz ewangelizację czy co? Co da się napisać w Scali, czego nie da się w Javie? A gdy masz w firmie zespól programistów Java, to jaką maja mieć motywację do przejścia na Scalę? Gdzie składnia jest niepodobna do niczego innego i trzeba się uczyć języka od zera (na pewno przejście C# -> Java jest mniej bolesne niż Java->Scala).

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około godziny
0

Po to, by rozwijać własne zainteresowania. Pythona dało się przemycić w Sabre, a podobieństw między Javą, a Pythonem jest zdecydowanie mniej niż między Javą, a Scalą.

Kiedy uczyłem się C i Turbo Pascala (nie pamiętam w jakiej kolejności to było) to nauka drugiego z nich trwała może ze dwa tygodnie. Języki mają wizualnie różne składnie, ale filozofia programowania jest bardzo podobna - stąd szybka nauka kolejnego języka. Scala ma składnię wizualnie mocno różną od Javowej, ale pisanie w Scali jak w Javie bez średników przychodzi bardzo szybko. Mało tego, IntelliJ potrafi nawet automatycznie konwertować kod Javowy na Scalowy:
Zrzut ekranu z 2015-12-19 1454.png


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit
vpiotr
Z tym że Turbo Pascal od którejś tam wersji był obiektowy (zwłaszcza z Turbo Vision), a C - nie. Dlatego programy "na zaliczenie" może i są podobne, ale już jakieś okienka to zupełnie inne podejście.
Wibowit
W książce chyba nie było niczego o programowaniu obiektowym w TP (przynajmniej ja nie pamiętam).
vpiotr
Może to był zwykły Pascal. Albo nauka standardowego Pascala w oparciu o kompilator Turbo Pascal. Standardowy jest bardzo ubogi.
0

hmm... a czy pisanie w Scali jak w Java jest jakby w porządku ze 'sztuką' ?

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około godziny
0

Nie jest (podobnie jak np pisanie getterów w Pythonie), ale pokazuje, że można bardzo szybko przeskoczyć z Javy na Scalę i tworzyć kod o takiej samej funkcjonalności. Nie da się tego zrobić przy przesiadce z C# na Javę, bo Java ma inną bibliotekę standardową i frameworki. Stąd przy przesiadce z C# na Javę trzeba się uczyć frameworków od zera. Przy przesiadce z Javy na Scalę można początkowo pozostać przy dotychczasowych frameworkach i korzystać dalej w niezmienny sposób z biblioteki standardowej. Scala bardzo dobrze integruje się z Javą (oba języki kompilują się do Javowego bajtkodu i można wywoływać Javowe klasy ze Scalowych i vice versa).


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
0
Wibowit napisał(a):

Przy przesiadce z Javy na Scalę można [...] korzystać dalej w niezmienny sposób z biblioteki standardowej.

Bałbym się zobaczyć taki kod. Pewnie by działał, ale....
Potrzebne jest zrozumienie programowania funkcyjnego by pisać swobodnie w Scali. Można się go nauczyć na samej Scali, ale trzeba napisać parę mniejszych (parodniowych) projektów samemu, żeby ogarnąć podstawy.

edytowany 1x, ostatnio: somekind
Wizzie
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 7 lat
0

@Wibowit, każdy wie, że można pisać "Javę w Scali" i wtedy faktycznie twoje zdanie filozofia programowania jest bardzo podobna - stąd szybka nauka kolejnego języka jest jak najbardziej słuszne. Tylko jaki to ma wtedy sens? Jeśli chcemy pisać faktycznie idomatyczny kod w Scali, to wtedy filozofia programowania w Javie i w Scali jest daleka od 'bardzo podobnej'.

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)