Rosnąca popularność Node.js stanowi zagrożenie dla innych języków?

Rosnąca popularność Node.js stanowi zagrożenie dla innych języków?
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0
drorat1 napisał(a):

Czy może ktoś się wypowiedzieć np. na temat Leftpada i tych wszystkich zależności zależności?

https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/

Położyło ileś tam tys. projektów a kod tej funkcji leftpad jest prosty. Ile jest takich prostych kodów i funkcji zaciąganych nie wiadomo skąd?

Kod tej funkcji nie jest prosty. Jest banalny.
A że n projektów zależy od jedno-funkcyjnych projektów to akurat jest wada i brak myślenia ze strony twórców.
Powinien powstać projekt typu Boost czy Guava dla JavaScript (npm) - wtedy można by uniknąć takich problemów.

caer
Myślałem że lodash jest czymś takim
vpiotr
@caer: całkiem możliwe. Widocznie za mało ludzi o nim wie.
somekind
Bo javascriptowcy zamiast czegoś użyć zawsze wynajdują swoje koło na nowo. Tym łatwiej o to, bo standardowa biblioteka języka jest biedna jak estońscy chłopi.
LukeJL
ma być leftPad w JSie natywny, tylko inaczej będzie się nazywać
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:36 minut
  • Postów:8406
2
  • lenistwo umysłowe ("nie chce mi się pisać funkcji, zainstaluję se bibliotekę, która myśli za mnie")
  • brak umiejętności programistycznych (większość frontendowców jest bardzo słaba jeśli chodzi o ogólne programowanie).
  • mit sprawdzonego rozwiązania (czyli: "lepiej nie pisać samemu kodu, tylko użyć sprawdzonego i przetestowanego rozwiązania" - o ile taka filozofia się sprawdza na większą skalę, czyli np. lepiej jest użyć Reacta niż pisać własnego - to jednak zastosowanie tej filozofii do jednolinijkowych funkcji to mocne nadużycie. Jest np. na npm pakiet is-negative do sprawdzania czy liczba jest ujemna - czyli wg tej absurdalnej filozofii nie mam prawa tak napisać if (i < 0) tylko muszę użyć biblioteki, żeby "nie odkrywać koła na nowo" (JavaScriptowcy zjadają własny ogon przez tego typu dogmaty. Bo oni na serio w to wierzą, i potrafią ewangelizować ludzi, że trzeba użyć czegoś gotowego zamiast napisać coś własnego).
  • autokreacja autorów bibliotek (każdy JSowiec lubi tworzyć własne libki dla zabawy, choćby miały jedną linijkę kodu).

edytowany 1x, ostatnio: LukeJL
Zobacz pozostałe 6 komentarzy
LukeJL
Myślę, że źle się dzieje, że JS jest dla wielu pierwszym czy drugim językiem programowania, a nie trzecim czy czwartym. Bo przez to frontendowcy są strasznie niedojrzali w sensie programistycznym, nie znają technik programowania, wzorców projektowych, paradygmatów, całego tego "know-how". I efekt jest taki, że frontend jako całość jest strasznie zacofany jeśli chodzi o praktykę programowania.
vpiotr
@LukeJL: pewnie dla niektórych pierwszym i ostatnim
LukeJL
ja bym chciał, żeby ktokolwiek kto siada do frontendu wpierw popisał sobie jakieś gry w C++ czy w czymś takim (piję do tego, że i tak wszystko z Gamedev przychodzi - patterny, które odkrywa się we frontendzie w ostatnich latach w Gamedevie już od lat istnieją i są praktykowane).
czysteskarpety
czysteskarpety
@LukeJL: takie wymagania rynku, musisz klepać na siłę w angie i node, bo jest hype...
vpiotr
@czysteskarpety: W node to się programuje żeby zaoszczędzić miesięcy (lat) nauki - one lang to rule them all. A angie - lepszy jeden popularny rynkowo framework niż jakieś in-house cuda (dla programisty i dla dostawcy). Dzięki temu można wyprodukować "specjalistę ds. aplikacji webowych" w 3 miesiące.
drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
6
vpiotr
Czy dobrze widzę że to ostatnie ma jakieś zależności (tzn zależy od czegoś) ?
DE
@vpiotr: Pewnie od is-positive, żeby zrobić negacje :D
ccwrc
czy to wszystko powyżej znaczy, ze JS nie radzi sobie z ifem < 0 ?...
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:36 minut
  • Postów:8406
0

overengineering xD najbardziej absurdalna jest liczba commitów. 22 commity is-negative, 59 commitów w is-negative-zero. Jak takie coś widzę, to zaczynam przypuszczam, że głównym celem pisania tych bibliotek nie jest wcale napisanie funkcjonalności a raczej to, że ktoś się po prostu szkolił w używaniu Gita, Githuba, NPM, travisa (nie wiem co to, ale tam są takie pliki) i w paru innych narzędzi, łącznie z Markdownem, w którym jest pisana dokumentacja.

Czyli to są chyba Helloworldy ludzi, którzy uczą się obsługiwać Gita czy inne narzędzia, żeby być atrakcyjnym na rynku pracy...


DE
"będzie do portfolio"
LukeJL
W sumie lepiej by się oplacało implementować to od początku albo robić copy-paste za każdym razem (jak ktoś nie umie napisać 1 linijki) niż tworzyć osobne repo i osobną paczkę, którą trzeba utrzymywać (no chyba, że celem jest właśnie posiadanie własnej paczki i zabawa w utrzymywanie jej celem nauki czy coś)
Shalom
@LukeJL: tylko że potem miliony projektów polegają na takiej zależonści ;)
LukeJL
dokładnie, a potem miliony projektów są rozwalone przez to, że ktoś skasuje swój moduł, jak w left pad :)
0

Ten kevva niniejszym spycha Yodę na drugie miejsce mojej listy autorytetów. Takie dwie fundamentalne biblioteki wykuł! ;P

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:36 minut
  • Postów:8406
1

No nie porównujmy jakiego tam gostka do mistrza Yody, bez przesady.


0

Sam uwazam, ze gdybysmy mieli zestawic n losowych frontendowcow z n losowymi backendowcami, to skille programistyczne mieliby lepsze ci drudzy. I tak mnie cieszy ze front idzie ku tej stronie bardziej inzynierskiej, bo jakby nie patrzec malo techniczne jest wykonywanie(wpinanie) slajderow czy single page'ow, dlatego tak duzo chetnych jest na front, bo maja teoretyczne wieksze szanse.
Super, niech ida, ida Seba01, Seba02, same klony do klepania.

Tylko ze tutaj mowimy o node, czyli o backendzie. Tylko, ze jest to jak ktos wspomnial, jest to na hypi'e wsrod hipsterow frontowych, dlatego b. czesto kod jest tragiczny. Naucze sie Reacta, Angulara, Vue, Node'a, przeciez kazdy front teraz musi to znac, a jak zapytasz co to event loop, digest cycle, virutal DOM, nie mowiac juz o takich rzeczach jak SOLID, DRY YAGNI etc.

Sa to powody dla ktorych np. nie chce byc "front end developerem". Node spoko, ale niestety nie nadaje sie do wszystkiego, dlatego jezyk enterprise tez warto znac.

0

Kto za tym nadąży, to już łatwiej ogarnąć Kotlin i Androida.

0
LukeJL napisał(a):
  • lenistwo umysłowe ("nie chce mi się pisać funkcji, zainstaluję se bibliotekę, która myśli za mnie")
  • brak umiejętności programistycznych (większość frontendowców jest bardzo słaba jeśli chodzi o ogólne programowanie).
  • mit sprawdzonego rozwiązania (czyli: "lepiej nie pisać samemu kodu, tylko użyć sprawdzonego i przetestowanego rozwiązania" - o ile taka filozofia się sprawdza na większą skalę, czyli np. lepiej jest użyć Reacta niż pisać własnego - to jednak zastosowanie tej filozofii do jednolinijkowych funkcji to mocne nadużycie. Jest np. na npm pakiet is-negative do sprawdzania czy liczba jest ujemna - czyli wg tej absurdalnej filozofii nie mam prawa tak napisać if (i < 0) tylko muszę użyć biblioteki, żeby "nie odkrywać koła na nowo" (JavaScriptowcy zjadają własny ogon przez tego typu dogmaty. Bo oni na serio w to wierzą, i potrafią ewangelizować ludzi, że trzeba użyć czegoś gotowego zamiast napisać coś własnego).
  • autokreacja autorów bibliotek (każdy JSowiec lubi tworzyć własne libki dla zabawy, choćby miały jedną linijkę kodu).

stary wywodzę się c++/c# piszę czysty kod w JS, uwielbiam ten język, jest elegancki i lekki. Wypaliłem się klepiąc ciągle w c#, miałem dość w JS, wróciła radość programowania. Serwer 5 min jest. Wzorce? Zawsze je stosuje. Pewnie nawet połowy stosowanych przeze mnie na codzień wzorców, w życiu nie zastosowałeś w praktyce. Owszem spotykam mnóstwo bardzo słabych programistów ale to wina ściągania ludzi ze wschodu oraz tekstu "kazdy może być programistą". Wrzuciłeś wszystkich do jednego worka, a może sam jesteś tak słaby w JS, że w ten sposób chcesz się odegrać?

TA
Tez wywodze sie z czasow c++/c# - czasow gdy kazdy uwazal js za zlo (taki ficzer dla dzieci, ktorzy chca udawac ze znaja sie na programowaniu). Uwazam ze c# jest bardziej elegancki od js a ze mam wiecej doswiadczenia i stosuje wiecej wzorcow to jednak wychodzi ze ja mam racje a Ty sie mylisz :)
0

I tak golang najlepszy.

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 9 godzin
7
Revenant05 napisał(a):

(...)
Frameworki: Loopback, Hapi, Sails?

Serwisy korzystające w większości z Node.js, m.in.: Netflix, Linkedin, Uber, PAYPAL(!). To są małe serwisy?

Era monolitu się kończy, teraz duże serwisy i tak buduje się w oparciu o mikrousługi, a Node do tego jest najlepszy.

GitHub Netflixa zawiera głównie projekty Javowe: https://github.com/Netflix
Np https://github.com/Netflix/conductor - Conductor is a microservices orchestration engine - https://netflix.github.io/conductor/

LinkedIn? Oto artykuł o architekturze: https://engineering.linkedin.com/architecture/brief-history-scaling-linkedin

By using JSON over HTTP, our new APIs finally made it easy to have non-Java-based clients. LinkedIn today is still mainly a Java shop, but also has many clients utilizing Python, Ruby, Node.js, and C++ both developed in house as well as from tech stacks of our acquisitions.

Do serwowania stron używają Play framework (napisany w Scali):

We’ve rethought our frontend approach, adding client templates into the mix (Profile page, University pages). This enables more interactive applications, requiring our servers to send only JSON or partial JSON. Plus, templates get cached in CDNs and the browser. We also started to use BigPipe and the Play framework, changing our model from a threaded web server to a non-blocking asynchronous one.

Playa chyba dość polubili
https://engineering.linkedin.com/blog/2016/12/pemberly-at-linkedin

We decided to build up a solution, dubbed Pemberly, combining open source software we were already using in the mid-tier (Play) along with a web framework (Ember) for JavaScript that would deliver strong conventions, easy ability to manage state, a robust build and testing methodology, and the delightful, app-like user experience we were targeting.

A Node to używają do server-side rendering:

The next piece of the architecture is the Base Page Renderer. The Base Page Renderer provides the head of the document and early flush capabilities. It also allows the app to load in several modes: Vanilla (browser does the heavy lifting), SSR (server-side render for DOM complete), and BigPipe (the ability to let the browser boot the Ember app while simultaneously streaming data and DOM to the browser by delegating that work to separate Node processes, which are running the Ember app).

PayPal używa Scali (chodzącej na JVMie) z Akką jako backendu:
http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html
https://www.lightbend.com/blog/how-reactive-systems-help-paypal-squbs-scale-to-billions-of-transactions-daily

Uber natomiast zaczął od Node.js i mają dużo starego kodu napisanego w Node.js, ale przesiadają się chyba na język Go. Używają także Javy dla wysokiej wydajności:
https://eng.uber.com/tech-stack-part-one/

At the lower levels, Uber’s engineers primarily write in Python, Node.js, Go, and Java. We started with two main languages: Node.js for the Marketplace team, and Python for everyone else. These first languages still power most services running at Uber today.

We adopted Go and Java for high performance reasons. We provide first-class support for these languages. Java takes advantage of the open source ecosystem and integrates with external technologies, like Hadoop and other analytics tools. Go gives us efficiency, simplicity, and runtime speed.

https://eng.uber.com/tech-stack-part-two/

Uber’s core trip execution engine was originally written in Node.js because of its asynchronous primitives and simple, single-threaded processing. (In fact, we were one of the first two companies to deploy Node.js in production.) Node.js gives us the ability to manage large quantities of concurrent connections. We’ve now written many services in Go, and this number continues to increase. We like Go for its concurrency, efficiency, and type-safe operations.


"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.
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0
Wibowit napisał(a):
Revenant05 napisał(a):

(...)
Frameworki: Loopback, Hapi, Sails?

Serwisy korzystające w większości z Node.js, m.in.: Netflix, Linkedin, Uber, PAYPAL(!). To są małe serwisy?

Era monolitu się kończy, teraz duże serwisy i tak buduje się w oparciu o mikrousługi, a Node do tego jest najlepszy.

GitHub Netflixa zawiera głównie projekty Javowe: https://github.com/Netflix
Np https://github.com/Netflix/conductor - Conductor is a microservices orchestration engine - https://netflix.github.io/conductor/

To że Netflix używa node.js to pewne i jednocześnie nie koliduje z tym co napisałeś (więc po co to napisałeś?).

https://medium.com/netflix-techblog/making-netflix-com-faster-f95d15f2e972
https://blog.risingstack.com/node-js-examples-how-enterprises-use-node-in-2016/
https://thenewstack.io/netflix-uses-node-js-power-user-interface/

TA
Zeby zaznaczyc ze jesli masz wybrac jeden jezyk w ktorym glownie jest napisany netflix to bedzie to java a nie node... Bo z poprzednich postow mozna bylo blednie wywniskowac ze praktycznie caly netflix to node.js...
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 9 godzin
3

Odniosłem się do:

Serwisy korzystające w większości z Node.js

Z artykułów które podałeś wynika, że Node jest używany do frontu, a backend stoi na Javie. Node przydał się, bo zredukował duplikację kodu i pozwolił na server-side rendering przyspieszający ładowanie strony na urządzeniach użytkowników:

https://thenewstack.io/netflix-uses-node-js-power-user-interface/

Traditionally, Netflix has been an enterprise Java shop, but “as we migrated out of the data center to the cloud we moved to a more service-based architecture,” Trott said. The company is in the process of breaking up what used to be a monolithic Java application into a set of smaller services. Java still powers the backend of Netflix, but all the stuff that the user sees comes from Node.

https://medium.com/netflix-techblog/making-netflix-com-faster-f95d15f2e972

Node.js and React.js are natural fits for this style of application. With Node.js and React.js, we can render from the server and subsequently render changes entirely on the client after the initial markup and React.js components have been transmitted to the browser.

Renderowanie skomplikowanych JavaScriptowych stronek po stronie serwera w zasadzie wymaga użycia Node.js (inne rozwiązania są raczej niepraktyczne), ale samo w sobie to nie oznacza, że Netflix korzysta w większości z Node.js.

Sam Netflix na swojej stronie głównej na GitHubie http://netflix.github.io/ chwali się na nagrodą opisaną tutaj https://jaxenter.com/jax-awards-winners-announced-at-jax-2015-conference-116358.html

The winners of the 2015 JAX Innovation Awards were announced to an audience of over two thousand programmers at the JAX conference in Germany.

This year’s JAX Special Jury Award goes to… Netflix

The rate at which this entertainment game-changer has adopted new technologies and implemented them into its DevOps approach is setting new standards in IT. Java, Tomcat, Hive, MySQL, Gluster, Hive, Chukwa, Cassandra and Hadoop are just a few of the technologies being used by Netflix, which has made a significant contribution to the open source world in doing so.

Wystarczy zresztą poprzeglądać tę stronkę Netfliksa na GitHubie by zobaczyć że cały backend Javą stoi.


"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
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0

@Wibowit: z tego co zacytowales to Netflix stal na Javie. Oczywiscie w takiej sytuacji trudno powiedziec co u nich jest teraz wiekszoscia, ale to co u nich lezy teraz na github wg mnie o niczym nie swiadczy.

Tutaj cos nowszego:
https://medium.com/netflix-techblog/developer-experience-lessons-operating-a-serverless-like-platform-at-netflix-a8bbd5b899a0

edytowany 1x, ostatnio: vpiotr
Shalom
Z cytatu wynika ze stał na monolitycznej aplikacji javowej a teraz na mikroserwisach javowych.
TA
tutaj tez nalezy pamietac ze netflix ma microserwisy pod niemal kazde urzadzenie - taki bardzo wazny ale najprostszy kod z calej ich architektury - wiec nawet jesli setki serwiswo obslugujacych urzadzenia jest w jakims tam jezyku to nie znaczy ze ten jezyk wypiera inne
vpiotr
@Shalom: "Java still powers the backend of Netflix, but all the stuff that the user sees comes from Node."
TA
@vpiotr czyli sam frontend - a ze praktycznie wiekszosc nowych urzadzen do ogladania obsluguje js to node.js wydaje sie naturalny. Tylko ze to swiadczy o tym ze korzystaja z node.js tam gdzie wykorzystuja js - wyciaganie innych wnioskow byloby bledne
vpiotr
@tamtamtu: taki niby-front-end (a w zasadzie to chyba jedno z popularniejszych zastosowań node.js - czyli prosty klient microservisów na backendzie).
0

Na razie w wątku mieliśmy jedną wypowiedź kogoś doświadczonego, ale w budowaniu API na Express js - a to przecież microframework jak Sinatra czy Slim. Do mikroserwisów na pewno się nadaje.

Jeśli stawiamy apkę webową i do tego chcemy prosty backend, to na pewno to stack idealny. Ale jakies korpo ERP na Oracle? To główne projekty dużych firm podnajmujących programistów w PL jak np. Epam.

0
Twardy Frank napisał(a):
tamtamtu napisał(a):

-Tez wywodze sie z czasow c++/c# - czasow gdy kazdy uwazal js za zlo (taki ficzer dla dzieci, ktorzy chca udawac ze znaja sie na programowaniu). Uwazam > > ze c# jest bardziej elegancki od js a ze mam wiecej doswiadczenia i stosuje wiecej wzorcow to jednak wychodzi ze ja mam racje a Ty sie mylisz :)

Na jakiej podstawie twierdzisz, że masz więcej doświadczenia i stosujesz więcej wzorców. Człowieku ty porównujesz jezyk dynamiczny do statycznego i ty mówisz, że masz doświadczenia... Gościu javascript jest dziś dużo bardziej zaawansowanym językiem. Dziś w tym jezyku napiszesz wszystko jest uniwersalny. I to jest odpowiedz dlaczego, za pare lat język ten wygryzie resztę z rynku. Oczywiście java, c# zostaną, ale stracą sporą część rynku. A wiesz dlaczego co poniektórzy uważali, że JS, jest dla dzieci czy jest zło jak to napisałeś? Bo go nie umieli i byli leniwi by się go nauczyć.

Gdybyś był "doświadczony" jak to piszesz, nie napisał byś takiego komentarza, bo jest on juniorski

TA
Przeczytaj swoj pierwszy komentarz - ja tylko nie chcialem odstawac od poziomu autora... Jesli masz doswiadczenie to wiesz ze js nie byl traktowany powaznie dlatego ze ludzie byli leniwi. JS byl tylko dodatkiem - strony musialy dawac pelna funkcjonalnosc bez js. Jesli tych czasow nie pamietasz to chyba jednak nie masz tak duzo doswiadczenia jak Ci sie wydaje...
1

A wiesz dlaczego co poniektórzy uważali, że JS, jest dla dzieci czy jest zło jak to napisałeś? Bo go nie umieli i byli leniwi by się go nauczy

Watpie, raczej dlatego ze byl to jezyk zupelnie oderwany od innych jezykow, strasznie dziwaczny. Jesli znales jakis jezyk backendowy, latwiej Ci bylo wejsc w inny (nawet znajac c# latwiej wejsc w php niz js) i wlasnie to denerwowalo, na kazdej drodze spotykaly Cie same WTF'y.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:36 minut
  • Postów:8406
0

Wzorce? Zawsze je stosuje. Pewnie nawet połowy stosowanych przeze mnie na codzień wzorców, w życiu nie zastosowałeś w praktyce.

Stosowanie bez zastanowienia wzorców jest często gorsze niż nieznajomość wzorców w ogóle... Nie chodzi o to, żeby wpychać wzorce w projekt tak jak się wpycha wodę w wędliny, tylko, żeby wiedzieć, że pewne problemy można rozwiązać w pewien ustalony sposób. Generalnie to powinno się wzorować jak najmniej wzorców, byle tylko zachować te, które są niezbędne.

Gdybyś był "doświadczony" jak to piszesz, nie napisał byś takiego komentarza, bo jest on juniorski

Juniorskie komentarze jako oznaka nie bycia tru-programistą skryptów dżawy. Czegoś takiego jeszcze nie widziałem XD


CM
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 5 lat
  • Postów:106
0

Ja tam jestem słaby junior więc autorytet żaden, ale chyba nikt nie zaprzeczy że pod kątem pracy na najbliższe kilka lat, bez względu na wszystkie mankamenty, JS to wyśmienity wybór dla zaczynających programistów.

TA
JS jest ryzykowny jako pierwszy jezyk (jak php czy vb) - mam wrazenie ze sporo poczatkujacych osob mysli ze umie w nim pisac bo uzyskuja jakis tam efekt ale nie rozumieja tak naprawde co sie w nim dzieje. jezyki z "niskim" progiem wejscia wg mnie nie sa najlepsze dla juniorow bo omija ich spora czesc wiedzy przez co programy dzialaja troche magicznie. Oczywiscie jesli ma sie pod reka sensownych developerow z doswiadczeniem lub duzo samozaparcia do nauki to nie bedzie to zly jezyk...
LukeJL
Też mi się wydaje, że JS nie jest dobry na początek, bo to takie PHP pod kątem nauki - czyli wszystko możesz, ale nie wiadomo co jest najlepsze, bo w JS wszystko można zrobić na 14 różnych sposobów partyzanckich, i dopiero najnowsze wersje JSa wprowadzają jakiś konkretny, 15-ty standard ( https://xkcd.com/927/ ).
LukeJL
sam język jest zbugowany/źle zaprojektowany, niczym PHP.
bartk
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 7 lat
  • Lokalizacja:UK
  • Postów:25
0

Zagrożenia nie stanowi jako tako. Jest natomiast bardzo dobrą alternatywą już dzisiaj.


0

A dlaczego JS a nie TS? Jakbyn nial wybrac to bym wybral to drugie.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:36 minut
  • Postów:8406
0

A co za różnica? TS to JS, tylko że ma dodatki. Tu nie ma co wybierać, bo typeof null dalej będzie "object" nawet w TypeScripcie, więc raczej nie usuwa ci żadnych WTFów z JSa.


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)