Jaki język programowania wybrać na start?

Jaki język programowania wybrać na start?
Łukasz Ostas
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:6
0

Witam, rozpoczynam dopiero przygodę z programowaniem. Kojarzę podstawy C++.
Chciałbym się kierować w stronę programowania mobilnego. Konkretnie Android.
Jaki język programowania powinienem wybrać pierwszy i do którego dążyć?
Podobno Java jest opłacalna, ale trochę za trudno jak na start

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6628
2

Akcja od 01:25


🕹️⌨️🖥️🖱️🎮
edytowany 2x, ostatnio: Spine
Zobacz pozostałe 17 komentarzy
BraVolt
@Shalom: Z taką publiką jest autorytetem. Czy dobrym, czy ze złej strony mocy, nie będę się spierać, ale autorytetem jest.
Shalom
No to taki autorytet trochę jak antivaxxerzy czy płaskoziemcy albo dr. Zięba. Autorytet dla ludzi którzy nie mają o pewnych rzeczach pojęcia i łapią się na krasomówstwo. Ale tutaj jesteśmy jednak na forum gdzie ludzie powinni wiedzieć trochę więcej.
BraVolt
@Shalom: to taki autorytet biznesowy i kulturowy, obwołany przez masy. Gustów się nie dyskutuje, o biznesie po fakcie każdy może krytykować, przewidzieć za wczasu potrafią nieliczni.
BraVolt
Dobrze, przewinąłem szybko po cichu film. Aniserowicz mówi dla mnie z sensem: pierwszy i najważniejszy język programisty to język angielski.
PR
PR
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Postów:10
2

Ja bym wybrał Jave, uczysz się Javy 8 i nie przejmujesz się nowymi wydaniami Javy 9, 10, 11, 12, 13 na Androidzie, ponieważ Android z nich nie skorzysta. Próbowałem pisać pod Androidem w Kotlinie, ale poza tym że dodaje więcej lukru składniowego i coraz więcej nowych funkcji z których początkujący programista mobilny i tak nie skorzysta. Do tego trzeba się uczyć Javy i Kotlina w przyszłości nie wiadomo czy Google zostanie z Kotlinem. Czasem tworzę jakąś apkę dla siebie. Dziś pobrałem Android Studio 3.5 i go ładnie odchudzili, tylko 750MB do pobrania, a ostatnio jak go pobierałem ważył 1040MB. Czy ostatnio coś z niego usunęli, starsze wersje Androida?

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
2

Tylko Flutter! Jeden z moderatorów mi to zaproponował (@cerrato) i nie wyobrażam sobie innego języka/frameworka jeśli chodzi o mobilne. Możesz mieć na początku mdłości z powodu kodu, przyznaje, jest dość specyficzny.

Zaczynałem z tym: Flutter Tutorial for Beginners - Build iOS and Android Apps with Google's Flutter & Dart
Skończyłem uczyć się na tym: Learn Flutter & Dart to Build iOS & Android Apps

Zobacz pozostałe 7 komentarzy
cerrato
Jakby nie patrzeć - prezydentem się bywa, elektryk jest na całe życie ;)
AdamWox
Haha wygrałeś ;-)
Delor
Niektóre tytuły (np: prezydent, premier, minister, marszałek, senator , ...) zostają dożywotnio. (chyba jakiś żart zepsułem :/ )
cerrato
@Delor: ale świnia jesteś ;)
Łukasz Ostas
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:6
0

A jeszcze jedno małe, może trochę głupie pytanie, ale nie mogę znaleźć na nie odpowiedzi?
Czym się różnią te poszczególne odpowiedniki Javy?
Mam na myśli SE, JDK itp..
Ma ktoś może rozpiskę tego wszystkiego?

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
2

SE - Standard Edition nie piszę w Javie więc nie wiem czy jest opcja non standard, czyli jakaś enterprise.
JDK - Java Development Kit tutaj jest cała "logika" Javy, klasy, funkcje itp itd.
JRE - Java Runtime Environment to potrzebujesz, że program napisany w Javie uruchomić.

PS.
Jak gadam głupoty to niech mnie ktoś poprawi.

xxxmateusz00xxx
"nie piszę w Javie więc", nie znam sie ale sie wypowiem
AdamWox
@xxxmateusz00xxx: napisałem coś źle mimo iż się nie znam?
xxxmateusz00xxx
Kto tutaj ostatnio wypisywał to samo co Ty, ale z lepszym wyjaśnieniem. Nie chce mi sie teraz tego szukać.
elwis
  • Rejestracja:ponad 18 lat
  • Ostatnio:12 dni
3

Kotlin jest obecnie domyślnym językiem dla androida. Jest bardzo podobny do Javy. Usuwa sporo niepotrzebnej redundancji w kodzie i ma kilka ciekawych dodatków. Pewnie jest to dobry start. Z drugiej strony Java jest bardziej rozpowszechniona na innych platformach. Różnica pewnie nie wielka. Na androidzie pewnie innymi językami na początku nie ma co sobie głowy zawracać:

Java SE -- To jedno z wydań Javy. Wersja Standard (W odróżnieniu od Enterprise, na przykład).
JDK/JRE -- To to paczki pozwalające odpowiednio tworzyć i uruchamiać aplikacje napisane w Javie. Ma się rozumieć, że JDK zawiera JRE.

Na androidzie będziesz potrzebował jeszcze Android SDK, ale to pewnie ci się ściągnie automatycznie jeśli wybierzesz Android Studio czy inne dedykowane IDE.


Zobacz pozostały 1 komentarz
elwis
Nie jestem znawcą, ale czytając o tej Fuchsii, Google chyba rzeczywiście chce usunąć zależność od JVM. To by był jakiś argument za tym Flutterem. I możliwe, że ma bardziej rozsądne API. Trudno jednak powiedzieć, bo nie używałem tego...
PR
Na pewno nowy system bez zależności JVM byłby lżejszy, ale czy szybszy?
elwis
Jak dobrze zrobią, pewnie tak, z drugiej strony API androida pozwala na natywny kod, więc to chyba raczej nie o to się rozchodzi. Myślę że raczej o to że API androida jest bardzo niskopoziomowe i imperatywne.
PR
Android jest z całkowicie innym jądrem Linux niż pozostałe dystrybucje. https://www.phoronix.com/scan.php?page=news_item&px=Android-Linux-Stable-Kernel-ABI
stivens
Ale na Fuschii mialy dzialac apki z androida wiec java tam nie umrze
Łukasz Ostas
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:6
0

Jest jakaś różnica między Java SE, a javą na androida? Czy po prostu dodaje się bibliotekę i wszystko śmiga?

Wibowit
Kiedyś był podział na Java ME (micro edition, np na Sony Ericsson K510i), Java SE (standard edition - główne wydanie) oraz Java EE (enterprise edition, czyli Java SE + masa dodatkowych bibliotek przydatnych do pisania aplikacji biznesowych). Java ME i Java EE zdechły, a Java SE została i teraz już się nie ma sensu precyzować, że chodzi o Javę SE, bo to jest domyślne.
Wibowit
Aaa, nie ten post :P Ale java na androida ma nie do końca taką samą bibliotekę standardową co Java SE.
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
1

Różnica jest w bibliotekach i sposobie uruchomienia aplikacji. Na Androidzie nie ma takich okienek w Swing jak na desktop, jest coś innego. Po drugie, cykl życia aplikacji jest inny.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
PR
A dlaczego Google stanęło na Javie 8 w Androidzie, to przez system bo trudno jest wprowadzać zmiany, czy to zależy od JetBrains i Intellij, które opiera się na Javie 8SE więc są zależni od ich wyborów w przerabianiu Android Studio? Na logikę wydaje się, że trudno przeskakiwać z wersji na wersje w Androidzie i Android Studio?
PerlMonk
Z zewnątrz możemy widzieć tylko niektóre problemy przed jakimi stoi Google. Wewnętrznie mogli prowadzić batalię na ten temat. Wersje nowsze, niż 8, może wnoszą więcej problemów, niż korzyści. Np. takie wyrażenia lambda nic nie dają pod względem wydajności. Lambdy są tłumaczone na prywatne statyczne metody. Skoro nie ma potrzeby używania, to po co ruszać? Pomnóżmy takie pierdoły razy kilka tysięcy wystąpień w kodzie i okaże się, że zmiana nie jest taka prosta.
Wibowit
Lambdy są kodowane jako prywatne statyczne metody, ale przy ich pierwszym użyciu JVMka tworzy nową lekką klasę dla lambdy z tej właśnie prywatnej statycznej metody. Takie rozwiązanie zostało wybrane gdyż kodowanie lambdy jako osobnej klasy w osobnym pliku .class rozdmuchałoby mocno rozmiar skompilowanych programów na dysku. Scala do wersji 2.11 robiła właśnie tak, że każda lambda lądowała w osobnym pliku .class i zajmowało to dość sporo miejsca. Od Scali 2.12 używane jest kodowanie z Javy 8 i dzięki temu binarki bibliotek Scalowych są mniejsze nawet o kilkadziesiąt procent.
PerlMonk
Akurat w nowszych wersjach Javy nawet i w Javie łatwiej zrobić, żeby pliki były mniejsze. W każdym razie Google pewnie nie oczekuje cudów od nowszej wersji i nie przepisuje kodu.
elwis
  • Rejestracja:ponad 18 lat
  • Ostatnio:12 dni
0

Ściśle rzecz ujmując, na androidzie jest trochę inna java, dawniej Dalvik Virtual Machine, obecnie zostały tylko jego formaty plików. To jednak nie ma wielkiego znaczenia, bo i tak kompilujemy kod zwykłym kompilatorem (np. z SE) i potem dopiero wynikowy program jest pakowany zgodnie z wymogami androida i instalowany na urządzeniu/emulatorze (programy aapt, dx, adb z SDK). Android studio wszystko to robi z automatu.
Prosto rzecz ujmując, zakres Java SE jest dostępny na androidzie, choć nie zawsze cała. Na przykład nowości z Java 8 są dostępne dopiero od którejś wersji androida.


edytowany 5x, ostatnio: elwis
PR
Ale przejdą kiedyś na Jave 13, czy to nigdy nie nastąpi?
elwis
nie mam pojęcia. W sumie, to Java jest marginesem moich zainteresowań więc mało mnie to obchodzi. ;)
PR
A w czym programujesz?
elwis
Obecnie skłaniam się ku lispowi. Po co pisać w upierdliwej Javie jak można ją wygenerować? :)
stivens
Po co java13 jak jest kotlin :)
Michał Sikora
Michał Sikora
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Kraków
  • Postów:834
3

Przy kompatybilności należy rozróżnić czy mówimy o kompatybilności kodu źródłowego czy bajtowego. Przykładowo kod bajtowy z Javy 8 jest wspierany w pełni dzięki D8. W rzeczywistości wszystko do Javy 11 jest wspierane. Problemem dla Androida z Javy 11 są nestmates - https://openjdk.java.net/jeps/181.

Z kolei jeśli chodzi o kod źródłowy, to tutaj bywa różnie. Albo korzystamy z odpowiednio wysokiej wersji SDK, która ma wsparcie np. dla takich klas DateTime (przy czym wsparcie może być tylko dla części klas z konkretnej wersji Javy) albo kombinujemy. Możemy znowu się zdać na narzędzia, żeby API było dla nas tylko lukrem składniowym, który jest potem odpowiednio tłumaczony. Tylko to działa różnie w zależności od narzędzi do budowania. W Gradleu (D8) póki co na wiele liczyć nie można. Jak ktoś korzysta z Bazel (desugar) to już sprawa ma się lepiej, bo są np. Optionale, Streamy, java.time itd. Innym wyjściem jest korzystanie z bibliotek, które dają wsparcie wsteczne jak np. ThreeTenABP - https://github.com/JakeWharton/ThreeTenABP.

W skrócie, to lekko nie jest.

edytowany 1x, ostatnio: Michał Sikora
PR
Na Wikipedii pisze, że GraalVM, czyli maszyna wirtualna napisana w całości w Javie bez użycia C/C++ bazuje na Javie 8. GraalVM 19.0 is based on top of JDK version 8u212. Ale czy to oznacza, że może obsługiwać nową składnie Switch z Javy 13?
Łukasz Ostas
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:6
0

A co na temat Kotlin'a?
Warto ruszać?
Podobno dobrze pnie się do góry jeśli chodzi o Androida

stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 4 godziny
1

Warto!


λλλ
renderme
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 godziny
  • Postów:1461
1

Szczerze odradzam react-native na mobilki. Pracując na tym masz wrażenie, że cały ten system to bardzo wczesna alfa, w której rzeczy działają/nie działają bez sensownego uzasadnienia. Każda zmiana na poziomie 0.x.x to właściwie nowy system, a co za tym idzie niekompatybilność paczek wbija w fotel. Masa kluczowych paczek jest porzucona z informacją, że nie da się pracować z systemem, który jest redykalnie zmieniany z wersji na wersję.

Jest spora szansa, że docelowo development dla androida przeniesie się na fluttera. Jedna firma robi dwa środowiska do pisania aplikacji na androida, przypadek?
Nie sądzę.
A jak się pojawi fuchsia, to ogólnie może się namieszać.
Flutter jest spoko. Żałuję, że nie udało mi się przekonać kierownictwa do wdrożenia go.
Ogólnie zawsze warto uczyć się natywki, bo przy niektórych funkcjach się przydaje, ale do tych aspektów tworzenia aplikacji dochodzi się bardzo późno.


Granie w gry i robienie gier ma tyle wspólnego, co uprawianie seksu z pracą ginekologa.
renderme
Druga myśl dla potomności. Pracująć w react-native trzeba umieć natywki LEPIEJ niż pracując na natywkach. Ostatecznie to taki wrapper na UI, a każda bardziej zaawansowana funkcjonalność (mapy, grafika, reakcje) musi być pisana w natywce, przy czym preferowane są stare języki natywek, tj: java i objectiveC, to akurat raczej jest mi na rękę. Trzeba umieć je lepiej, bo w mojej opinii w natywkach najtrudniejszy nie jest kod, tylko konfiguracja. Konfiguracja tego wrappera potrafi doprowadzić do siwizny.
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6628
10
Łukasz Ostas napisał(a):

A co na temat Kotlin'a?
Warto ruszać?
Podobno dobrze pnie się do góry jeśli chodzi o Androida

Chłopie, myśmy na ślepo szli w Pascala, C, Delphi, C++, Javę, PHP itd... i dopiero potem podejmowaliśmy "życiową" decyzję, a Ty się boisz, żeby czasem nie wybrać czegoś, co będzie "stratą czasu"...
Interesuje Cię jakaś technologia, to przerób kilka tutoriali, zacznij jakiś kurs i wyrób sobie własne zdanie.
Programowanie to nie jest One Shot - One Kill. Wstrzeliwując się teraz w jedną technologię, oszczędzasz sobie bardzo dużo cennych doświadczeń i przemyśleń.

Łukasz Ostas napisał(a):

Witam, rozpoczynam dopiero przygodę z programowaniem. Kojarzę podstawy C++.

Na obecnym etapie każdy czas poświęcony na programowanie opłaci Ci się...
Nieważne w czym, po prostu zacznij działać. Nabierzesz własnych doświadczeń i dokonasz świadomego wyboru.


🕹️⌨️🖥️🖱️🎮
edytowany 4x, ostatnio: Spine
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
2

Dokładnie tak jak @Spine napisał. Ja też przeszedłem przez Kotlina, Javę i Xamarina i dopiero z Flutterem udało mi się zrobić to co chciałem zrobić bez ciepania łaciną na lewo i prawo ;-)

Zobacz pozostałe 10 komentarzy
PR
Jak dla mnie Android Studio lepiej podpowiada składnie niż VS Code i jest wygodniejszy. Problem chyba jest w tym, że nie ma darmowej wtyczki do Darta?
Michał Sikora
Michał Sikora
VMOS i emulacja telefonu to inne rzeczy, ale mniejsza z tym. Zalecane jest posiadanie Android Studio, bo musisz mieć Android SDK, Gradle, Android Build Tools i pewnie parę innych rzeczy. Możesz teoretycznie je samemu zainstalować, dodać do zmiennych środowiskowych itd. ale byłoby to mocno niepraktyczne. Z iOS'em jest jeszcze gorzej, bo MUSISZ mieć Xcode'a zainstalowanego.
AdamWox
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter Ostatnio zaktualizowali coś we wtyczce, że po lewej stronie oprócz projektu masz całe drzewko widgetów
Michał Sikora
Michał Sikora
Android Studio ma darmową wtyczkę do Darta. Jest chyba nawet instalowana z wtyczką do Fluttera.
PR
Ok dzięki za wyjaśnienie.
M0
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 2 lata
  • Postów:65
0

Ok, mam trochę podobne pytanie. Czy osoba totalnie początkująca w programowaniu, której marzeniem jest robić apki mobilne dla samej siebie (kto wie może w przyszłosći takze dla kogoś), może zacząć naukę programowania od Kotlina? Czy lepiej poznać Jave?

PR
Jak dla siebie to Kotlin, coraz więcej kursów jest do niego.
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:2 dni
  • Lokalizacja:Kraków
  • Postów:1694
1

Może.

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6628
1
marcin0218 napisał(a):

może zacząć naukę programowania od Kotlina? Czy lepiej poznać Jave?

Czy osoba chcąca uczyć się języka japońskiego, powinna najpierw poznać chiński?


🕹️⌨️🖥️🖱️🎮
M0
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 2 lata
  • Postów:65
0

Hmm Ty mi powiedz, bo ok. 70 – 80% znaków w japońskim i chińskim i ich połączeń określa to samo.

edytowany 2x, ostatnio: marcin0218
Marooned
To zależy czy mówisz o języku pisanym czy mówionym ;-) https://www.saporedicina.com/english/similarities-differences-chinese-japanese/ - tak łatwo nie ma niestety
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6628
0

Ale wymowa inna. No i w Japońskim są 2 systemy pisma sylabicznego... hiragana i katakana.

Ale nie w tym rzecz... Wszystkie popularne języki programowania nieznacznie się różnią...
Chciałem obalić stwierdzenie, że jakiś język trzeba poznać przed poznaniem następnego.
Dowolny język dobry będzie na start.


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
M0
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 2 lata
  • Postów:65
0

No własnie i wszystko fajnie, tylko zadałeś mi źle pytanie :) Bo ja nie pytam czy aby poznać, Kotlina to powinienem poznać Javę lub na odwrót. Tylko czy powinien poznań Kotlina czy lepiej Jave, by tworzyć aplikacje mobilne? Czyli przekładając na Twój tok pytam: lepiej poznać japoński czy chiński by mi jako początkującemu, łatwiej było używać pisma logograficznego :D

Ale dzięki, za odpowiedź, sądziłem, że może pod kątem mobilnych apek lepiej najpierw Javę bo jest dłużej na rynku itp. Bo tak jak mówię, nie znam się. Ale skoro mówisz, że może być dowolny to zacznę chyba od Kotlina. Ponoć oficjalny język Androida, z tego co wyczytałem.

edytowany 1x, ostatnio: marcin0218
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6628
0

No to jak dla mnie, do mobilek lepiej C#... Robię w Unity :P


🕹️⌨️🖥️🖱️🎮
edytowany 2x, ostatnio: Spine
Zobacz pozostałe 10 komentarzy
Spine
A co ma edytor do runtime'a :D ? Ja w tym momencie tylko miło wspominam IDE, MonoDevelop.
renderme
BTW. kiedyś dla zabawy wyrzuciłem eventsystem z unity do innego wątku (w c++) i wyłączyłem caly gameloop w unity. Wywoływałem go tylko jak był event. Tą metodą miałem zużycie baterii jak w natywce. Dużo ludzi na forach poszukiwało takiego rozwiązania, ale mi ono nie było potrzebne, bo... UI powinno być natywne i tyle :D.
renderme
@Spine, wybacz, ale nie przyszło mi do głowy, że komuś mogło podobać się MonoDevelop, poważnie. Uznałem, że ogólnie mówisz o mono stworzonym przez xamarina. Jak Ci się podoba to spoko. Mi tam najlepiej się pracuje na panoramicznym monitorze + VSCode lub 3 monitorach i VS. Swoją drogą akurat MD było na linuxa.
Spine
No system GUI w Unity jest dość specyficzny.... To samo można zrobić na sprite'ach ręcznie (korzystając z mechanizmów do grafiki w grze) i GUI będzie działać znacznie sprawniej. Nie wiem jak zużycie baterii, ale płynność działania raczej wzrośnie.
renderme
Metody optymalizacji wewnątrz unity to jedna sprawa. Oczywiście je wdrażałem, ale z zasady nie jest to i nie będzie natywne UI. Ba, nawet wdrażałem obliczanie transformacji rectransform w jobsystem. Responsywność UIsystem w unity będzie gorsza niż w natywce jakieś 100 razy. Zużycie baterii będzie wysokie w unity, bo gameloop wykonywany jest niezależnie od inputów min. 30x na sekunde -> unity nie nadaje się do aplikacji innych niż gry/3d. To jest taka zasada, że animacja routingu do nowego ekranu w natywce zrobi pik CPU do 3%, a w unity do 90%. Będzie 60fps, ale bateria dead
M0
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 2 lata
  • Postów:65
0

A jeszcze jedno pytanie. Rozumiem, że Kotlin w przeciwieństwie do Javy, służy tylko i wyłącznie do aplikacji mobilnych? BO wiem, że Java ma FX itp, a Kotlin chyba nie?

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:4 minuty
  • Postów:6628
1

🕹️⌨️🖥️🖱️🎮
M0
to po co jest forum i ten temat...
stivens
Ja w sumie nie wiem
Spine
1) Żeby nauczyć ludzi googlować swoje nieskomplikowane pytania; 2) Żeby rozwiązywać złożone problemy.
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:9 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
4

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
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)