🗃️ Z Archiwum IT | Node.js w roku 2009 - Jak to się stało że JavaScript chodzi na serwerze? | odc. 5
JustJoinIT
Z Archiwum IT
🗃️ Z Archiwum IT | Node.js w roku 2009 - Jak to się stało że JavaScript chodzi na serwerze? | odc. 5
Dobra, to co, lecimy?
Alright, so what, are we going?
Cześć, witajcie z archiwum IT, czyli podcaście, w którym poruszamy nieco starsze technologie,
Hi, welcome to the IT archive, which is a podcast where we discuss some older technologies.
opowiadamy kiedy powstały, po co powstały, jaki był kontekst ich powstania,
we tell when they were created, why they were created, what the context of their creation was,
zwłaszcza z naszej perspektywy 2023 roku.
especially from our perspective in the year 2023.
I bierzemy dzisiaj na tapet...
And today we are taking on...
Noda, tak żeby cię nostalgicznie...
Noda, just to make you nostalgic...
Tak, żeby was nie zmyliło, bo tu też o dziwo czasem ludzie myli,
So that you won't be misled, because surprisingly, sometimes people get confused here too,
chodzi o Node.js, by the way, bardzo mnie ubawiło, że ludzie czasem mylą,
It's about Node.js, by the way, I found it really amusing that people sometimes confuse it,
że chodzi o Node.da w dowolnym innym znaczeniu, a nie Node.js.
that it concerns Node.da in any other meaning, and not Node.js.
Myślisz, że jeszcze?
Do you think so still?
Znalazłem takich parę wątków na Stack Overflow, także one były dość stare, ale tak, tak były.
I found a few such threads on Stack Overflow, so they were quite old, but yes, yes, they were.
Pamiętam, że historycznie faktycznie wypadało to doprecyzować i też, jeżeli chodzi o samą nazwę,
I remember that historically it was indeed necessary to clarify this, and also, regarding the name itself,
czy to się pisze z kropką, czy to jest Node.js z wielkimi literami?
Is it written with a dot, or is it Node.js with capital letters?
Kto wie?
Who knows?
To jest bardzo wielkie pytanie, nie odpowiemy.
This is a very big question, we won’t answer it.
No nie, dzisiaj, sorry, ale tak, dokładnie zahaczymy się o Node.js-a.
Oh no, today, sorry, but yes, we will definitely touch on Node.js.
Tutaj małe pytanie, od kiedy w ogóle pracujesz z jakimikolwiek projektami, które by używały Noda?
Here’s a small question: since when have you been working on any projects that use Node?
Tak może sprecyzuję?
So, can I clarify?
Tak, to jest pytanie pod tytułem, to zależy.
Yes, it's a question titled, it depends.
Jeżeli pracujesz na frontendzie, to na stówę używasz Noda w dzisiejszych czasach,
If you work on the frontend, you definitely use Node these days.
bo masz cały ekosystem narzędzi, które w sumie bazują na Javascriptie,
because you have a whole ecosystem of tools that are basically based on Javascript,
aczkolwiek już teraz nie tylko, ale to już jest bardzo, bardzo w kierunku przyszłości,
although already now not only, but this is already very, very towards the future,
a od kiedy?
And since when?
Ja myślę, że u mnie Node.js pojawił się mniej więcej w 2014 roku, 2013-2014.
I think Node.js appeared for me around 2014, 2013-2014.
Od tamtego czasu ja nie jestem backendowcem,
Since then, I am no longer a backend developer.
także ja go wykorzystywałem w dużej mierze jako narzędzia do budowania tej części frontendowej.
I also used it largely as a tool for building this part of the frontend.
Zdarzyło mi się popełnić kilka projektów typowo backendowych,
I have happened to complete a few purely backend projects.
ale tak, 2013-2014.
but yes, 2013-2014.
I on już był całkiem dobrze ugruntowany.
He was already quite well established.
Tak, on już wtedy parę razy był na rynku.
Yes, he had been to the market a few times by then.
Wydaje mi się, że u mnie to było podobnie, jak jestem w 2013, może 2014.
It seems to me that it was similar for me, like I am in 2013, maybe 2014.
I bynajmniej nie pisałem wtedy w Node.js backendów, wtedy głównie siedziałem w dotnetowych tematach,
I certainly wasn't writing backends in Node.js at that time; I was mainly focused on .NET topics.
ale używałem go do różnej maści automatyzacji, rzeczy typu Babel, Gulp i tak dalej.
But I used it for various types of automation, things like Babel, Gulp, and so on.
Oj, Gulp.
Oh, Gulp.
Czyli też byłeś hipsterem.
So you were a hipster too.
Tak, tak. Long time no see.
Yes, yes. Long time no see.
To zresztą wyjaśnię, dlaczego hipsterem, bo w czasach, kiedy Node.js wchodził jako narzędzia,
I will explain why as a hipster, because at the time when Node.js emerged as a tool,
to bardziej zagościła się świnia.
The pig has become more established.
Grant.
Grant.
Grant, tak.
Grant, yes.
Czyli grunt albo grant, generalnie narzędzie, które pozwalało nam automatyzować zadania i układać joby.
So, a ground or a grant, basically a tool that allowed us to automate tasks and organize jobs.
Tam było mnóstwo konfiguracji, także wszystko pisało się, programowaliście w JSON-ie.
There were a lot of configurations, so everything was written, you programmed in JSON.
Później takim powiewem świeżości wjechał Gulp, strumienie, pipe'y.
Later, Gulp arrived like a breath of fresh air, streams, pipes.
W 2013 roku bodajże, no.
In 2013, I believe, yes.
Także generalnie teraz jest to dość oczywiste, że używacie Noda do waszego developmentu aplikacji webowych.
So generally it is quite obvious now that you are using Node for your web application development.
Wtedy to nie było takie oczywiste, bynajmniej, tamte lat temu z 10.
Back then, it wasn't so obvious, by any means, about 10 years ago.
A sam Node.js...
And Node.js itself...
Warto z tym przejść do Origin'u, bo o tym chcemy dzisiaj pogadać.
It's worth discussing this with Origin, because that's what we want to talk about today.
Właśnie, chciałem nawiązać do tego, co wspomniałeś, bo wspomniałeś o tym, że zaczynałeś w dotnecie.
Exactly, I wanted to refer to what you mentioned, because you brought up that you started with .NET.
Tak.
Yes.
I ja siedziałem w tamtym czasie w PHP'ie.
I was also sitting in PHP at that time.
Tak.
Yes.
I jak zobaczyłem, co Node.js oferuje, o tym zaraz będziemy mówić, to w mojej głowie zaświeciła się taka lampka.
And when I saw what Node.js offers, which we will talk about shortly, a light bulb went on in my head.
Okej, JavaScript to jest przyszłość, tak, tutaj trzeba siedzieć, trzeba się tego uczyć, zaraz będzie...
Okay, JavaScript is the future, yes, we need to focus on this, we need to learn it, it's coming soon...
Widzisz, to ja byłem bardziej w obozie na zasadzie, Boże Święty, powaliło i do końca będę odpalać JavaScript na serwerze.
You see, I was more in the camp of, Holy God, this is overwhelming and I will keep running JavaScript on the server until the end.
Jezu Święty.
Holy Jesus.
Wiesz...
You know...
Byłem w PHP'ie, także dla mnie to wyglądało dużo bardziej atrakcyjnie niż dla Ciebie w dotnecie.
I was in PHP, so for me it looked much more attractive than for you in dotnet.
Tak, tak, tak.
Yes, yes, yes.
Ale chcieliśmy mówić o Origin'ie.
But we wanted to talk about Origin.
O Origin'ie, tak, czyli Origin sięga w sumie 2009 roku, czyli sama technologia ma 14 lat.
About Origin, yes, so Origin actually dates back to 2009, which means the technology itself is 14 years old.
Tak, ale kipiało to w głowie autora trochę wcześniej.
Yes, but it had been bubbling in the author's mind a bit earlier.
Opowiedz, ja chętnie opowiem od momentu prezentacji na JSConf'ie, to opowiedz, co się działo wcześniej, bo tutaj akurat nie sprawdziłem.
Tell me, I will gladly share from the moment of the presentation at JSConf, so tell me what happened earlier, because I didn't check that part here.
Tak, co się działo wcześniej.
Yes, what happened earlier.
Generalnie autor...
Generally, the author...
Tak.
Yes.
Ryan Dahl.
Ryan Dahl.
To jest generalnie człowiek, który stwierdził, OK, zrobimy sobie Noda.
This is generally a person who said, OK, let's make a Node.
Noda możecie go też znać z Deno, bo to jest też twórca Deno od 2018 roku, dość znana i wpływowała postać.
You might also know Noda from Deno, as he is also the creator of Deno since 2018, quite a well-known and influential figure.
O tym też będę miał dygresję, przypomnij mi.
I'll have a digression about that too, remind me.
Dobrze.
Alright.
Ale jeżeli chodzi o Ryana Dalla, to sytuacja wyglądała w taki sposób, że on nie jest z wykształcenia programistą.
But when it comes to Ryan Dalla, the situation was such that he is not a trained programmer.
On był matematykiem, chciał generalnie być profesorem matematyki, studiował na Uniwersytecie w San Diego.
He was a mathematician, he generally wanted to be a professor of mathematics, he studied at the University of San Diego.
Zaczął szukać czegoś, czego nie znał.
He began to search for something he did not know.
Czego może się utrzymać.
What it can hold on to.
Wylądował generalnie na studiach, miał chyba tysiąc dolarów w kieszeni, żeby generalnie przeżyć.
He generally landed in college, had about a thousand dollars in his pocket to generally get by.
Także szukał jakiegoś noclegu i tak dalej.
He was also looking for some accommodation and so on.
Próbował na początku uczyć angielskiego w jakąkolwiek repetycję, czy w szkole, czy coś takiego.
He tried at first to teach English in any tutoring, whether at school or something like that.
I w końcu poznał kolegę, który pisał stronki w PHP.
And finally, he met a friend who was writing websites in PHP.
No i dla niego w ogóle to była nowa idea, że będziemy budować stronki w PHP za pieniądze, no ale OK, da się żyć.
Well, for him it was completely a new idea that we would be building websites in PHP for money, but okay, we can manage.
Ale te strony były tak wolne i po prostu tak go to mierzwiło.
But those websites were so slow and it just irritated him so much.
Wiesz, matematyczny umysł, tutaj na pewno da się to zrobić lepiej.
You know, a mathematical mind can definitely do it better here.
No i zaczął analizować różne inne rozwiązania.
And he started analyzing various other solutions.
PHP, Rails, Python.
PHP, Rails, Python.
Właśnie mi się kojarzy, że on potem pracował jako deweloper używając Railsów.
I just remember that he later worked as a developer using Rails.
Dokładnie tak.
Exactly so.
Wymienił w trybie jak siekierkę na kijek.
He exchanged it in a way like a hatchet for a stick.
Trochę tak, ale też jakby wpadł w tą samą pułapkę, w którą wpadło bardzo wielu deweloperów.
A bit, yes, but also as if he fell into the same trap that very many developers have fallen into.
Na zasadzie, ole, piękna składnia, ale to wszystko jest takie zwięzłe.
On the principle of "wow, beautiful syntax, but it’s all so concise."
Oj, mogę zrobić wszystko, co mi się żywnie podoba.
Oh, I can do whatever I please.
Generalnie true na false, zamienić false na true, będzie fajnie.
Generally, change true to false, change false to true, it will be nice.
Mówisz o PHP teraz?
Are you talking about PHP now?
Czy o Railsach?
About Rails?
Tak.
Yes.
W Railsach mogłeś zrobić coś jeszcze, co mi się nie podobało.
In Rails, you could do something else that I didn't like.
Mógłeś dużo superatory przeciążać, praktycznie wszystko.
You could overload a lot of superators, practically everything.
Także sam język, samego rabiego on bardzo mocno zachwala w tych swoich dywagacjach.
He also highly praises the language itself and the rabbi in his musings.
Ale w pewnym momencie dochodzi do wniosku, ok, nie da się tego zrobić szybko,
But at some point, he concludes, okay, it's not possible to do this quickly,
bo Railsy bazują na bardzo mylnych założeniach
because Rails are based on very misleading assumptions
i od samego początku były skazane na porażkę, jeżeli chodzi o performance.
And from the very beginning, they were doomed to failure when it came to performance.
Będziemy o tym pewnie jeszcze gadać.
We will probably talk about it some more.
No i to jest to zaplecze, które się pojawiło, które jakby dało,
And this is the background that has emerged, which somehow provided,
było takim zarodkiem idei powstania Node.js
it was such a seed of the idea for the creation of Node.js
i wtedy pojawia się ta prezentacja z 2009 roku.
And then this presentation from 2009 appears.
Tak, czyli w 2009 roku, dokładnie w maju, tak jak wspomniałeś Michał przed nagraniem.
Yes, so in 2009, precisely in May, just as you mentioned, Michał, before the recording.
27 maja, dokładnie.
May 27th, exactly.
Dziękuję bardzo.
Thank you very much.
2009 rok, znamienna data.
The year 2009, a significant date.
Dziękuję bardzo.
Thank you very much.
Także odbywa się JSConf, na którym Ryan Dahl prezentuje jedną z pierwszych wersji Node.js,
JSConf is also taking place, where Ryan Dahl presents one of the first versions of Node.js.
a jest to dokładnie wersja, nawet sobie zapisałem, 0.1.2.
And this is exactly the version, I even wrote it down, 0.1.2.
0.1.17.
0.1.17.
Jeszcze bez wsparcia dla Windowsa.
Still without support for Windows.
Bez wsparcia dla Windowsa, tak.
No support for Windows, yes.
I opowiedz nam najpierw, jakie on widzi problemy ze współczesnym developmentem
And first tell us what problems he sees with contemporary development.
i właśnie powołuje się między innymi na Railsy
and it is precisely based, among others, on Rails
i głównie, to jest chyba clue tej pierwszej części prezentacji,
and mainly, this is probably the key point of the first part of the presentation,
zanim on przejdzie w ogóle do tego, co stworzył,
before he even gets to what he created,
gdzie mówi, że jest jeden duży problem, mianowicie blokowanie na operacjach I.O.,
where he says that there is one big problem, namely blocking on I.O. operations,
czyli na operacjach, na przykład na odczytach z dysku, na zapytaniach sieciowych,
that is, on operations, for example on disk reads, on network queries,
na zapytaniach do bazy danych i tak dalej.
on database queries and so on.
Wszelkie operacje, które muszą sięgnąć poza naszą aplikację
Any operations that must extend beyond our application.
i na które musimy poczekać.
and which we have to wait for.
No i to czekanie jest wybitnie nieefektywne.
Well, that waiting is exceptionally inefficient.
My sobie z tym długie lata radziliśmy w takim modelu,
We have been managing with this model for many years.
że odpalaliśmy wiele wątków.
that we started many threads.
Wiele wątków sobie świngało, niektóre sobie czytały do bazy i czekały.
Many threads were swinging, some were reading to the database and waiting.
W tym momencie inne robiły inną robotę.
At that moment, others were doing a different job.
Potem je sensualizowaliśmy.
Then we sensualized them.
Jeśli byliście w tym miejscu, to wiecie, jak to było super?
If you have been to this place, then you know how amazing it was?
Na papierze wyglądało fajnie, ale poza papierem to już był bardziej papier toaletowy.
On paper, it looked nice, but off paper, it was more like toilet paper.
Taki, słuchaj.
Alright, listen.
Weszło, dobrze.
It works, good.
Także bardzo mocno tutaj rajandal idzie w tym kierunku,
So here the rajandal is also strongly heading in this direction.
że to nie jest dobry model.
that it is not a good model.
A gdyby tak przejść z tego modelu blokowania IO
And what if we switch from this IO blocking model?
do modelu, w którym my nie oczekujemy na wykończenie operacji IO,
to the model where we do not wait for the completion of IO operations,
tylko mamy jednowątkowy proces
we only have a single-threaded process
i na tym jednym wątku robimy wszystko
And on this one thread, we do everything.
i przekazujemy komuś innemu ogarnianie IO.
and we are handing over the management of the IO to someone else.
My w tym czasie możemy wykonywać inne operacje.
During this time, we can perform other operations.
Jakbyśmy byli prezydentami, to nie tyle nie oczekujemy,
If we were presidents, we wouldn't expect so much,
tylko w sumie można oczekować,
only in total one can expect,
coś robić w międzyczasie.
do something in the meantime.
Nie blokujemy.
We do not block.
To jest tutaj słowo kluczowe.
This is the key word here.
No i zaczął badać, jak zachowuje się V8, czyli silnik.
And he started to investigate how the V8, that is, the engine, behaves.
Pałusemka, silniczek z Chroma.
Pałusemka, a little motor from Chrome.
Wtedy jeszcze w Chromie.
Back then still in Chrome.
Tak, silnik żabaskryptowy z Chroma, dokładnie.
Yes, the frogscripting engine from Chrome, exactly.
Podszedł do tego w ten sposób, że kurde, przeglądarki to już robią.
He approached it by saying, "Well, browsers already do that."
Praca przeglądarki jest przecież zajebiście, bardzo, w sensie bardzo asynchroniczna.
The work of the browser is, after all, incredibly, very, in the sense of very asynchronous.
My, będąc na stronie, widzimy statyczną stronę.
We, being on the page, see a static page.
Jak klikniemy coś, dopiero wtedy mamy obsługę tego zdarzenia.
Only when we click something do we have the handling of that event.
I cała reszta strony nie czeka, aż ta obsługa się zakończy,
And the rest of the page doesn't wait for this service to finish,
tylko może też równolegle działać.
it can also operate in parallel.
A w przeglądarce dzieje się w opór rzeczy,
And in the browser, a lot of things are happening.
bo mamy te sesje, które muszą być przeliczane yarda yarda.
because we have those sessions that need to be converted yards yards.
I stwierdził, no dobra, to weźmy sobie ten sam model, przenieśmy do backendu.
And he stated, well, okay, let's take the same model and move it to the backend.
I zagrało.
And it worked.
Tak, przy czym to, co możecie obejrzeć w tej prezentacji, to jest w sumie bardzo istotne.
Yes, what you can see in this presentation is actually very important.
Widziałeś ją też chyba.
You must have seen her too.
Widziałem tę prezentację.
I saw this presentation.
Słyszałem też wywiad z Ryanem Dallem a propos tego, jakie było zaplecze tej prezentacji.
I also heard an interview with Ryan Dall about the background of that presentation.
I jak bardzo on trzymał kciuki, żeby wszystko zadziałało.
And how much he was keeping his fingers crossed for everything to work out.
Bo miał wrażenie, że kompletnie nie przekazuje tego, co chciałby przekazać.
Because he had the impression that he completely wasn’t conveying what he wanted to convey.
Zresztą, jak porównacie sobie wystąpienia Ryana Dalla z tamtego czasu,
By the way, if you compare Ryan Dalla's speeches from that time,
z jego jednym z wystąpień na JSConf-ie, chyba w 2020 roku?
from one of his appearances at JSConf, probably in 2020?
Mówisz tym z Deno, to było 2018 albo 2019.
You’re talking about those from Deno, that was in 2018 or 2019.
Mówisz coś koło tego.
You're saying something along those lines.
To widać po prostu przepaść.
You can clearly see the gap.
Ja jak odpaliłem jedno nagranie, potem odpaliłem to drugie.
When I started one recording, then I started the second one.
To jest w sumie 10 lat różnicy.
That's a total of 10 years difference.
To widać po prostu raz, że to pewność siebie.
You can clearly see that it's confidence.
I dwa, że on już miał dużo lepiej w głowie poukładając, co to ma robić.
And two, that he already had a much better understanding in his head of what he was supposed to do.
I był przekonany co do tej idei.
And he was convinced about this idea.
Bo tam, co dostajemy na tej prezentacji.
Because what we get in this presentation.
Jak już kończy wywód o tym, że blokowanie IEO to nie jest dobry pomysł,
As he finishes his argument that blocking IEO is not a good idea,
to zaczyna mówić o tym, co on właściwie zbudował i co by chciał zbudować.
It begins to talk about what he has actually built and what he would like to build.
To znaczy mówi o tym, że Node tak naprawdę bardzo mocno osadza się
This means that Node is actually very strongly embedded.
o wykorzystaniu natywnych rzeczy.
about the use of native things.
O wykorzystaniu natywnych, budowanych rzeczy w systemy POSIX-owe,
On the use of native, built-in things in POSIX systems,
w systemy UNIX-owe.
in UNIX systems.
I żeby przekazać jak najwięcej odpowiedzialności do systemów.
And to transfer as much responsibility to the systems as possible.
I żeby oprzeć się o event loop.
And to lean on the event loop.
Czyli to, co znamy z przeglądarek, to co znamy z Node'a.
So what we know from browsers, that's what we know from Node.
Czyli jeśli mamy jakieś operacje, które oczekują na zakończenie,
So if we have some operations that are waiting to complete,
mamy te callbacki, odkładamy je sobie gdzieś na kolejkę
We have those callbacks, we set them aside somewhere for the queue.
i event loop się kręci.
And the event loop keeps spinning.
I po kolei sobie z nich zajmuje.
And I take them one by one.
Co ciekawe, a propos samego event loopa,
Interestingly, regarding the event loop itself,
w RABiM też są biblioteki, które pozwalają osiągnąć to samo,
In RABiM there are also libraries that allow you to achieve the same.
co daje Ci event loop.
What does the event loop give you?
I w Pythonie.
And in Python.
Tak, i w Pythonie też.
Yes, and in Python too.
Aczkolwiek to jest, że tak powiem, kropla w morzu.
However, this is, so to speak, a drop in the ocean.
Tych wszystkich narzędzi jest mnóstwo.
There are plenty of these tools.
I tak naprawdę ciężko w ogóle stwierdzić, jak powinno się bicać te aplikacje.
And it's really hard to determine how these applications should be built.
Wiesz, bo to jest awangarda generalnie.
You know, because this is generally avant-garde.
To była awangarda wtedy, ja bym powiedział.
It was avant-garde back then, I would say.
Po czym gdzieś pozwolisz, że wrócę do tego, co mówię na tej prezentacji?
After which you will allow that I return to what I am saying in this presentation?
Jasne, jasne.
Sure, sure.
Ja jestem o dygresji.
I am about digression.
To jest chyba najdłuższy fragment, który tutaj będę miał,
This is probably the longest passage that I will have here,
bo naprawdę interesujące było to, ta preska,
because it was really interesting, that pressure,
zwłaszcza z perspektywy 2023 roku.
especially from the perspective of the year 2023.
Fajne jest to, czym ona się kończy,
It's nice how it ends.
ale pewnie chcesz jeszcze coś wcześniej powiedzieć.
But you probably want to say something earlier.
Tak, ja chcę powiedzieć jeszcze wcześniej,
Yes, I want to say it even earlier,
bo on potem przechodzi już do tego,
because then he moves on to that,
jak napisać prosty program w Node'cie.
how to write a simple program in Node.
Pokazuje, jak napisać prosty serwer TCP,
It shows how to write a simple TCP server,
jak zrobić serwer HTTP,
how to create an HTTP server,
jak zareagować na eventy.
how to react to events.
No i wtedy,
And then,
jeśli znacie teraz, co byśmy mogli określić jako bebechy Node'a,
if you know now what we could define as the guts of Node,
to wiecie, jak się super w wygołym Node'ie pisze,
You know how great it is to write in a cozy Node.
czyli tworzymy serwer HTTP,
so we are creating an HTTP server,
nasłuchujemy na eventy,
we are listening for events,
operujemy na strumieniach.
we operate on streams.
I dokładnie to widzimy w tej prezentacji.
And we can see that exactly in this presentation.
Także nic, co byście mogli na pierwszy rzut oka wykorzystać do takiej biznesowej aplikacji.
So nothing that you could use at first glance for such a business application.
Bo ktoś pisze koszmarnie ciężko.
Because someone writes terribly hard.
Tak, bo to jest mimo wszystko bardzo low levelowe.
Yes, because it is very low-level after all.
To jest super low levelowe.
This is super low level.
To było też coś w sumie,
It was also something in a way.
nie wiem, czy w Pythonie też tak to wygląda,
I don't know if it looks the same in Python.
ale jak budujesz sobie aplikację serwerową,
but when you build your server application,
to musisz mieć jakiegoś NGINX'a,
You must have some kind of NGINX.
czy NGINX'a,
whether NGINX,
czy jakikolwiek to zwał,
whatever you call it,
czy Apache'a, czy cokolwiek innego.
whether Apache or anything else.
A tutaj piszesz serwer.
And here you write the server.
Tutaj generalnie jest bardzo blisko metalu.
Here it is generally very close to metal.
Tak.
Yes.
I to, co wspomniałeś a propos
And that which you mentioned regarding
zalajnowania się Node'a
node's onboarding
z tymi wszystkimi post-X'owymi tematami,
with all these post-X topics,
to widzimy też w nazwach metod.
We can also see this in the names of the methods.
Generalnie to, co znajdziemy w dokumentacji, całe API,
Generally, what we find in the documentation, the entire API,
nazewnictwo było wzorowane na tym,
the naming was modeled after this,
co rzeczywiście dzieje się pod bebechami,
what is really happening inside the guts,
znaczy w bebechach w systemie operacyjnym.
it means in the guts of the operating system.
On też tam w którymś momencie mówi,
He also says at some point there,
że on chce, żeby to API Node'owe
that he wants it to be a Node API
było jak najbardziej bliskie
it was as close as possible
API przeglądarkowemu.
Browser API.
Wyszło jak wyszło, bo Node
It turned out as it did because of Node.
popłynął w jakieś takie swoje rejony
he drifted into his own realms
i bynajmniej się nie trzymał standardu
and by no means did he stick to the standard
przez długi czas.
for a long time.
To się zmieniło ostatnio,
That has changed recently,
ale zabawnie się to ogląda z takiej perspektywy,
but it's funny to watch it from such a perspective,
że no fajnie, miało tak być,
that it's nice, it was meant to be like this,
ale trochę nie pykło.
But it didn't quite work out.
Tak, swoją drogą Node świętuje ile? 14 lat w tym roku?
Yes, by the way, how many years has Node been celebrating? 14 years this year?
14 lat.
14 years.
To była prezentacja z JSConf'a,
It was a presentation from JSConf.
ta z 2019 roku, jeżeli już pamiętam.
That one from 2019, if I remember correctly.
No, ta od Deno?
No, the one from Deno?
Ta od Deno, właśnie.
That one from Deno, exactly.
Tak, to była jedna z prezentacji,
Yes, that was one of the presentations.
gdzie on w sumie przyznawał się do swoich błędów,
where he basically admitted to his mistakes,
ale mówi, no sorry, nie da się tego już odwrócić.
but he says, well sorry, there's no way to undo it now.
Są pewne rzeczy, których żałuję,
There are certain things I regret,
na przykład to, że mamy global, a nie Windows w Node'cie.
For example, that we have global, not Windows in Node.
Są pewne nieścisłości i tak dalej.
There are some inconsistencies and so on.
Ale w ogólności ten projekt jest dosyć
But in general, this project is quite
successful, bym tak powiedział.
successful, I would say so.
Jest dosyć successful, tak.
It is quite successful, yes.
I ja tu się jeszcze odwołam do tego,
And I will also refer to this here,
jak bardzo niskopoziomowy jest
how low-level it is
Node sam w sobie, a zwłaszcza
Node itself, especially
wtedy w tych pierwszych
then in those first
dniach. On
days. He
pokazuje
shows
slajd, gdzie mówisz, no właściwie
slide, where you say, well actually
cały codebase Node'a to jest C,
the entire Node codebase is C,
jakieś tam parę tysięcy linii
a few thousand lines or so
w C, plus jest zależność na
in C, there is a dependency on
Pythona, co mnie dość
Python, which is enough for me.
zaskoczyło, plus jest już wtedy
It was surprising, plus it is already then.
zembedowany V8
embedded V8
w źródło, znaczy w źródło,
in the source, means in the source,
w DLL-kę,
to the DLL,
którą dostajesz, a w sumie
which you receive, and in total
technicznie, teraz mogę tutaj gadać głupotę,
technically, now I can talk nonsense here,
nie wiem, co w sumie dostawaliśmy,
I don't know what we actually received.
tak naprawdę.
actually.
Już tam był zembedowany V8.
There was already a V8 embedded there.
Całe środowisko Node'owe
The entire Node environment
było w sumie złożone, jeżeli dobrze pamiętam,
it was quite complex, if I remember correctly,
na początku z sześciu modułów.
Initially with six modules.
Mieliśmy V8-kę,
We had a V8.
mieliśmy rzeczy związane z
we had things related to
odczytem z dysku,
reading from the disk,
nie pamiętam jak się nazywały, tam były dwie
I don't remember what they were called, there were two of them.
lipki, które były napisane nawet nie przez
lips that were written not even by
Ryan Dalla, tylko kogoś innego,
Ryan Dalla, just someone else,
już nie pamiętam nazwiska. Była
I don't remember the last name anymore. She was
lipka do DNS-ów? Lipka do DNS-ów
"Do you want to complain about the DNSs? Do you want to complain about the DNSs?"
wydaje mi się, że on pisał oraz on
I think that he wrote and he.
pisał parser HTTP. On pisał parser
He wrote an HTTP parser. He wrote a parser.
HTTP, on pisał chyba
HTTP, he probably wrote.
coś do obsługi soketów,
something for socket handling,
DNS-y były chyba z zewnątrz i rzeczywiście
The DNSs were probably external and indeed.
jeszcze były jakieś dwie lipki, takie bardzo core'owe, które
there were also about two linden trees, very core-like, that
były, był
was, used to be
lip uv i coś jeszcze.
lip uv and something else.
I coś jeszcze, jakiś lip.
And something else, some sort of a trick.
W każdym razie, co jest ciekawe tutaj,
In any case, what is interesting here,
to, że
that which
tego nie było dużo, to były w ogóle
there wasn't much of it, there were actually none at all
bardzo małe API i teraz jak spojrzymy na to,
very small API and now as we look at it,
co mamy dostępne w Node'ie. Jakie ono
what do we have available in Node? What is it like?
w ogóle było dziwne. Zwróćcie się w ogóle uwagę,
It was strange at all. Pay attention at all,
że on tam w którymś momencie mówi, że no i to
that at some point he says there, well, and that
zwraca promisa. Po czym ten promis
It returns the promise. After which this promise.
to nie... Ja się właśnie zastanawiam, czy wtedy ludzie wiedzieli, co to jest
No... I'm just wondering if people knew what it was back then.
promis. Właśnie,
promise. Exactly,
ej, czekaj, uwaga, muszę to
Hey, wait, watch out, I need this.
zgooglować. Dobra, to se googlaj,
to google it. Alright, go ahead and google it.
ale to wrócimy za chwilę do tematu promisa,
but we will return to the topic of the promissory note in a moment,
ale co jeszcze, bo nie
but what else, because not
wspomniałeś, czym się kończy ta prezentacja.
You mentioned how this presentation ends.
Wspomnieliśmy o websocketach i tak dalej. No. Bo na
We mentioned websockets and so on. Well. Because on
samym końcu tej prezentacji
at the very end of this presentation
tworzy, znaczy uruchamia, pokazuje
creates, means activates, shows
działający serwer
operational server
IRCA. Tak.
IRCA. Yes.
IRCA. Jeżeli nie wiecie, co
IRCA. If you don't know what
to jest IRCA, to taki komunikator internetowy.
This is IRCA, it's an internet communicator.
To w sumie chyba moje złote hasło też
So I guess it's also my golden motto.
z ostatnich rolek na YouTube.
from the latest reels on YouTube.
Ale jeżeli
But if
chodzi o ten serwer, to co on tam pokazał,
It's about that server, what he showed there.
to było tak, działające demo,
it was like that, a working demo,
nie wywaliło się. Tak. Ludzie
It didn't crash. Yes. People.
na sali byli w stanie się połączyć do tego
In the hall, they were able to connect to that.
IRCA w locie, także on
IRCA in flight, also him.
mówi, a tam pojawiają się jakieś wiadomości
he speaks, and there are some messages appearing
na ekranie już od razu. Mhm.
On the screen right away. Mhm.
I co więcej, on wtedy odpalił
And what's more, he then exploded.
REPLA i z poziomu REPLA
REPLA and from the level of REPLA
był w stanie zarządzać tym serwerem i
he was able to manage this server and
generalnie wszystko działało po prostu
Basically, everything just worked.
z bomby.
from a bomb.
Na tamte czasy, totalnie nowa technologia,
For those times, completely new technology,
totalnie nowe narzędzie i masz
totally new tool and you have
działające demo, wypadło lepiej niż Microsoft
The working demo turned out better than Microsoft.
na niektórych prezentacjach. Mhm.
on some presentations. Mhm.
Nie, to mu trzeba oddać. A, sprawdziłem.
No, he needs to give it back. Oh, I checked.
Bo tam w tej presji
Because there in that pressure
jak on używa
how he uses
tych modułów, czy to pliku między innymi,
these modules, or the file among others,
albo modułów
or modules
za pomocą których może tworzyć nowy
with which it can create new
proces, podproces, może wywoływać
process, subprocess, may invoke
różne
various
programy systemowe, jak nie wiem, kata tam
system programs, like I don't know, cat there
wywołuje. Tak, było kata i
It evokes. Yes, it was the executioner and
nie, chyba kata.
No, it's probably a hangman.
Kata, chyba LSA,
Kata, probably LSA,
ale jakieś takie standardowe. Coś tam było jeszcze.
but something standard like that. There was something else too.
Unixowe programy.
Unix programs.
I on, one zwracały
And we, one was calling.
promis. Znaczy mówię, o,
promise. I mean, I say, oh,
jaki promis w ogóle.
What promise at all.
Note, że jest to callback hell i
Note that this is callback hell and
jedziemy z callbackami, tak było w przeglądarce.
We're going with callbacks, that's how it was in the browser.
Skąd się wzięły promisy? To jest raz.
Where did the promises come from? That's one.
A dwa, ten promis miał jakieś metody typu
And two, this promise had some methods like
exec i tak dalej. Aaa.
exec and so on. Aaa.
Który standard? Pamiętasz?
Which standard? Do you remember?
Już nie pamiętam. Nie, właśnie
I don't remember anymore. No, actually.
i teraz właśnie zgooglowałem jedną rzecz,
And now I just googled one thing,
kiedy weszły promisy? No, promisy weszły do
When did the promissory notes come in? Well, the promissory notes came into...
specyfikacji w 2015 roku.
specification in 2015.
Także, wiadomo, dość późno, czyli
So, you know, quite late, that is
zakładam, że 2012, 2013
I assume, 2012, 2013.
mogły gdzieś się dopiero zacząć kręcić
They might have just started to spin somewhere.
jako propouzale, czyli on po prostu
as proposed, that is he simply
użył tej samej nazwy,
used the same name,
bo to faktycznie był, był jakiś
because it was really, there was something
promis, tak, że to potem się wykona,
Promise, yes, that it will be done later.
będziesz mógł potem na tym jakoś operować.
You will be able to operate on it somehow later.
Także raczej koncepcyjnie
So rather conceptually.
to sobie nazwał promisem, nie był to bynajmniej
he called himself a promise, it was by no means
ten promis, który my znamy,
the promise that we know,
ale oglądając to wideo
but watching this video
teraz, miałem duży mindfuck,
now, I had a big mindfuck,
jaki promis, panie?
What promise, sir?
O co tu chodzi?
What's this about?
Tam jeszcze pojawia się temat
There is also the topic appearing there.
w ogóle buforowania danych
about data buffering
przy odczycie. Coś, co
at the reading. Something that
też on uznał, że załatwi
he also agreed that he would handle it
za użytkowników, żebyśmy już nie musieli schodzić
for the users, so that we no longer have to go down
za bardzo niskopoziomowo.
too low-level.
Co ciekawe, te strumienie w Node'zie mają
Interestingly, these streams in Node have
bardzo ciekawą
very interesting
właściwość, bo jeżeli spróbujesz zestreamować
property, because if you try to stream
bardzo duży plik,
very large file,
bufor się nie przepełni,
the buffer will not overflow,
po prostu w pewnym momencie przestanie być
it will simply stop being at some point
zapełniany. I masz
filled. And you have
specjalne zdarzenie, które
special event that
pozwala ci obsłużyć drain,
allows you to handle the drain,
czyli jak ten bufor zostanie już skonsumowany,
so once that buffer has been consumed,
to wtedy te dane znowu lądują
then the data lands again
w tym miejscu. Bo tutaj
in this place. Because here
warto jeszcze przytoczyć tą rzecz,
It is worth mentioning this thing,
że Node od samego początku
that Node from the very beginning
jest bardzo mocno eventowym
is very event-driven
środowiskiem
environment
i bardzo mocno bazuje na strumieniach.
and is heavily based on streams.
Goły Node to praktycznie są
A bare Node is practically what it is.
eventy, na które się możecie rejestrować
events you can register for
i strumienie. On powiedział ciekawą rzecz,
and streams. He said something interesting,
że większość
that most
rozwiązań, które zna, były
solutions that he knows were
bardzo opinionalne na temat tego,
very opinionated about this,
czy buforować, czy nie. I z reguły było
whether to buffer or not. And usually it was
to buforować.
to buffer.
I tyle. A on powiedział, że
That's all. And he said that
woli, aby użytkownicy sobie to wybrali
prefers that users choose it for themselves
i żeby raczej by default
and rather by default
podejściem było, nie
The approach was, no.
buforujemy, tylko po prostu wysyłamy dalej, czyli
we buffer, we just forward it, which means
strumieniujemy rzeczy. I do tego
we stream things. And to that
Node się dzisiaj dalej dobrze sprawdza.
Node is still performing well today.
Do raczej strumieniowania
To rather streaming.
danych, niekoniecznie do ich buforowania.
data, not necessarily for buffering them.
Tak, ale nie nadaje się dalej do
Yes, but it is not suitable for further use.
przetwarzania dużych rzeczy szybko.
processing large things quickly.
Czyli jak masz jakieś
So if you have some
kalkulacje do zrobienia w obrębie
calculations to be made within
samego procesu, to nie.
the same process, no.
Aczkolwiek są rozwiązania, które pozwalają
However, there are solutions that allow.
Ci budować klastry Node'owe.
They are building Node clusters.
Ale to i tak jest zaprzęganie do
But this is still being harnessed to
ciężkiej roboty narzędzia, które
heavy-duty tools that
nie będzie wystarczająco wydajne, żeby to ogarnąć.
it will not be efficient enough to handle it.
Ja wrzucę jedną rzecz, która...
I'll throw in one thing that...
A wiem!
Oh, I know!
Już wtedy padło pytanie,
At that moment, the question was raised,
czy to środowisko się przeładowuje, jak zmienisz pliki?
Does this environment reload when you change the files?
Wersja 0.1
Version 0.1
coś tam, nie? Nie przeładowuje się.
Something there, right? It doesn't overload.
Ale chcemy to... Przez weekend będziemy
But we want to... We will be there over the weekend.
hakować, spróbujemy to zrobić. Szacun.
hacking, we will try to do it. Respect.
Nie, nie.
No, no.
To chyba
That’s probably it.
bardzo późno weszło takie
it came in very late
natywne przeładowywanie. Dosyć późno, no.
native reloading. Quite late, huh.
To nie był weekend.
It wasn't the weekend.
Nodeemon tam generalnie był królem przez długi czas.
Nodeemon was generally the king there for a long time.
A co ja chciałem powiedzieć, to co mnie
What I wanted to say is what affects me.
nie że zdziwiło, ale
not that it surprised me, but
nie wiedziałem o tym, że command.js
I didn't know about that, that command.js.
był już od dnia zero wspierany
he had been supported since day zero
i był właściwie głównym standardem
and was actually the main standard
oddawania modułów. To było takie...
returning modules. It was so...
Uuu, tak, o, okej. No bo Ty na froncie siedzisz
Ooh, yes, oh, okay. Well, because you’re on the front line.
od niedawna, jakby nie patrzeć.
Recently, no matter how you look at it.
W porównaniu tak.
In comparison, yes.
Dopiero jakieś 10 lat, tak?
Only about 10 years, right?
Bo ja zanim w ogóle zacząłem...
Because before I even started...
W sumie to jest ciekawe, bo
Overall, it's interesting because
w tamtym czasie
at that time
na froncie był popularny AMD.
On the front, AMD was popular.
W tamtym czasie, czyli odwołujesz się do...
At that time, you are referring to...
2023 mniej więcej.
2023 approximately.
Także w momencie, kiedy startował...
Also at the moment when he started...
2023? 2013.
2023? 2013.
Tak. Okej. Nie, to my tu mówimy
Yes. Okay. No, we are talking here.
o 2009. Tak, w 2009
in 2009. Yes, in 2009
był tylko command.js. Później
there was only command.js. Later
AMD zaczęło być coraz bardziej popularne,
AMD started to become increasingly popular,
pozwalało nam na modularyzację. To ja byłem
it allowed us to modularize. It was me
zawsze fanem command.js.
always a fan of command.js.
By heart. Tak, tak.
By heart. Yes, yes.
AMD nie. Słusznie, słusznie.
AMD no. Right, right.
System.js, AMD. Ej, o tym możemy
System.js, AMD. Hey, we can talk about that.
kiedyś pogadać. To jest dobry temat,
We should talk sometime. It's a good topic.
ale to not today. W sumie można, tak.
But not today. Well, it can be done, yes.
Tematyka modułów w javascriptie.
The topic of modules in JavaScript.
Historia jest
History is
bogata. Ale
rich. But
jeżeli chodzi o command.js, no wtedy nie miałeś
As for command.js, well then you didn't have it.
innego wyboru. To było jedyne rozwiązanie,
another choice. It was the only solution,
które już było prawie, że
which was almost that
de facto standardem, jeżeli
de facto standard, if
chodzi o modularyzację. I teraz
It's about modularization. And now
w sumie zastanawiam się, bo to było...
I’m actually wondering, because it was…
Jak oni to ogarniali w przeglądarce wtedy?
How did they handle it in the browser back then?
Bo command.js
Because command.js
był już wtedy.
he was already there.
Zanim Node się pojawił.
Before Node appeared.
No tak, tak. Oni już używali
Well, yes. They have already used it.
zmieniającego standardu. Czyli to było zapożyczone.
changing the standard. So it was borrowed.
On nie był wspierany na tym przeglądarce,
He was not supported on this browser.
gdyż to było wszystko polifilowane.
because it was all polyfilled.
Polifilowane.
Polished.
To złe słowo, ale...
It's a bad word, but...
Ja sobie próbuję przypomnieć, bo teraz tak.
I'm trying to remember, because right now, that's how it is.
Było polifilowane. Ale był require, który
It was polyfilled. But there was a requirement that
po prostu był funkcją zarejestrowaną globalnie.
it was simply a globally registered function.
No tak. I co ona robiła?
Well, and what was she doing?
...
Please provide the text you would like translated from Polish to English.
Nie było Noda, żeby to zbudować, skompilować
There was no Node to build and compile it.
to do jednego ty, bez kitu.
It's just you for this, no kidding.
Trzeba było ponurkować. Jak się programowało, jak nie było
One had to dive. How it was programmed, how it wasn't.
Node.js? No, no.
Node.js? No, no.
Ciężko.
Hard.
Ale to trochę schodząc już z
But that’s a bit going down from
tej prezentacji
this presentation
inicjalnej, z
initial, with
2009 roku, to
in the year 2009, it is
powiedzmy o tym,
let's talk about it,
co się wydarzyło później. Bo potem
what happened later. Because then
poszło
it went
z górki.
downhill.
Bo w 2010
Because in 2010
powstał Express.js,
Express.js was created,
który był chyba pierwszym
which was probably the first
frameworkiem, pierwszą biblioteką,
framework, the first library,
która opakowywała
which was packaging
ten cały super low-levelowy
this whole super low-level
kod Noda i pozwalała
Noda code and allowed
nam zbudować serwer webowy, który
to build a web server for us that
miał routing,
he had routing,
który miał endpoint, który można było wygodnie obsłużyć
which had an endpoint that could be easily handled
i tak dalej. I to już się wydarzyło
and so on. And it has already happened.
rok później. Także dość
A year later. Quite so.
szybko. Też
quickly. Me too
względnie szybko
relatively quickly
powstały takie rzeczy jak NPM.
Such things as NPM have emerged.
Bo NPM powstał w 2010 roku też.
Because NPM was also created in 2010.
Także...
So...
NPM, tutaj powiedzmy
NPM, let's say here.
na głos, manager pakietów
out loud, package manager
do Noda.
to Noda.
I on też bardzo mocno, wydaje mi się, że kopnął
And I think he kicked very hard as well.
samego Noda do przodu. Express
Noda himself forward. Express.
kopnął go do przodu. I zaczęły też powstawać
he kicked him forward. And they also began to arise
szybko. Ja sobie tylko
quickly. I'm just
sprawdzę kiedy.
I'll check when.
Zostały też... Sorry.
There are also... Sorry.
Zaczęły też szybko powstawać różne
Various things also started to emerge quickly.
narzędzia deweloperskie, których
developer tools, which
my używamy na froncie do
we use on the front to
budowania aplikacji i tak dalej. Bo
building applications and so on. Because
Webpack to jest 2012.
Webpack is from 2012.
Proszę Państwa.
Ladies and gentlemen.
To jest 2013.
This is 2013.
Gulp 2013.
Gulp 2013.
To są narzędzia,
These are tools,
z których sobie nie wyobrażamy już teraz.
that we can no longer imagine now.
Bądź bez ich odpowiedników
Be without their equivalents.
szybszych
faster
nie wyobrażamy sobie już teraz developmentu.
We can't imagine development right now.
To jednak dość szybko powstało biorąc pod
However, it was created quite quickly considering...
uwagę to, że Node tam wersja
Note that there is a version of Node there.
0.1.17 to był
0.1.17 it was
2009 rok. Kawał czasu temu. Szybko poszło.
2009. A while ago. It went by quickly.
Tak. Szybko poszło. Kawał czasu temu.
Yes. It went quickly. A while ago.
Ale faktycznie był taki moment, gdzie
But there was indeed a moment when
ludzie się śmiali, że nie ma dnia
People laughed that there isn't a day.
bez nowego narzędzia JavaScript'owego,
without a new JavaScript tool,
który się pojawia. Nowego frameworka.
which appears. New framework.
Nie śmiało się już tak?
Aren't you laughing like that anymore?
Powiedzmy, że to trochę przystopowało.
Let's say it has slowed down a bit.
Dokopałem się do historii
I dug up a story.
CommonJS'a i AMD.
CommonJS and AMD.
AMD było przed CommonJS'em.
AMD predates CommonJS.
CommonJS...
CommonJS...
Nie będzie tego słuchać.
She won't listen to this.
CommonJS
CommonJS
powstał, żeby zaadresować
was created to address
problem związany z...
problem related to...
Czy w ogóle wiesz w jakim roku
Do you even know what year it is?
powstał CommonJS? No, dawaj.
Did CommonJS arise? No, come on.
99. W styczniu. Co? Uuu!
99. In January. What? Uuu!
No, dlatego mnie to zaczęło
No, that's why it started for me.
intrygować.
to intrigue.
To jest w ogóle projekt wystartowany przez Mozilla. Ciekawe.
This is a project launched by Mozilla. Interesting.
Na początku nazywał się ServerJS.
At first, it was called ServerJS.
I przemianowali go bardzo szybko na CommonJS,
And they renamed it very quickly to CommonJS,
żeby ustabilizować... Domana była zajęta?
To stabilize... Was Domana busy?
Taki package na...
Such a package for...
A nie, NPM-a nie było.
Oh no, there was no NPM.
To już ludzie wtedy nie grali w NPM Bingo.
People didn't play NPM Bingo then.
Jak oni pili?
How did they drink?
Nie było drinking games?
Were there no drinking games?
Jeszcze dokopię się do AMD,
I will still get to AMD.
ale przerwałem ci.
But I interrupted you.
Ciężki temat.
A heavy topic.
O czym mówiłem?
What was I talking about?
Mówiłem o narzędziach, które się szybko pojawiały.
I was talking about the tools that appeared quickly.
Także ten Express Webpack da rada.
This Express Webpack can handle it too.
To szybko poszło.
That went quickly.
Ale też to, co bardzo mocno kopnęło
But also what kicked very hard.
Node'a do przodu, to to, że
The node going forward means that
w 2011
in 2011
Linkedin przepisywał swoją aplikację
LinkedIn was rewriting its application.
mobilną i
mobile and
przepisali bardzo mocno front.
They rewrote the front very strongly.
I tam używali HTML5.
And they used HTML5 there.
Cool and Sexy Things.
Cool and Sexy Things.
Bugbona. Bugbona i underscora.
Bugbona. Bugbona and underscore.
Także same Cool and Sexy Things
Also, the Cool and Sexy Things.
w 2011 roku.
in 2011.
I cały backend, który ogarniał
And the entire backend that he managed.
tą apkę
this app
mobilną, był napisany
mobile, was written
w Node'zie.
in Node.
I
I
czytałem, czytałem
I read, I read.
jak to się w ogóle przyjęło i jakie mieli
how it was generally accepted and what they had
porównanie
comparison
z poprzednią technologią. Nie pamiętam, co tam było wcześniej.
with the previous technology. I don't remember what was there before.
I mówili, że idealnie
And they said it was perfect.
do ich case'u się sprawdził Node.
Node worked in their case.
Bo oni tam serwowali dużą ilość treści.
Because they served a large amount of content there.
Nic nie przeliczali.
They didn't recalculate anything.
Wyłącznie strumynowali dane
They exclusively streamed the data.
do tych app'ek klienckich.
to those client apps.
Mobilnych.
Mobile.
Do tego Node im idealnie pyknął.
This Node fits perfectly for that.
Niekoniecznie do innych rzeczy.
Not necessarily to other things.
Na przykład jakieś procesory, które
For example, some processors that
wyliczały scoring
they calculated the scoring
i tak dalej.
and so on.
Kijem tego nie ruszali, to zostało na innym stacku.
They didn't touch it with a stick, it was left on another stack.
Ale do takiego serwowania danych
But for such data serving
Node był idealny.
The node was perfect.
I zresztą Ariandal,
And besides, Ariandal,
tutaj ponownie wrócę do tej pierwszej preski,
I will return again to this first presentation.
on się bardzo często powoływał
he referred to it very often
na przykład pod tytułem
for example under the title
commenting app, coś takiego.
commenting app, something like that.
Czyli chodziło mu o takie systemy
So he was talking about such systems.
ala IRC, gdzie
ala IRC, where
masz duży ruch,
you have a lot of traffic,
który spływa naraz
which flows at once
i ty jedyne co robisz
and the only thing you do
to dispatchujesz te eventy
Are you dispatching these events?
i rozsyłasz je dalej. Czyli generalnie Node umywa ręce,
and you pass them on. So basically Node washes its hands of it,
wszystko przekierowuje. Dokładnie.
Everything is being redirected. Exactly.
Not my job.
Not my job.
Odbija dalej rzeczy.
It reflects things further.
Podobnie właśnie było z tym LinkedIn'em. Oni głównie
It was similar with LinkedIn. They mainly
streamowali dane, niekoniecznie
they streamed data, not necessarily
tylko się obrabiali i to im dobrze pykło.
They were just getting the hang of it, and it worked out well for them.
Też
Me too
Trello
Trello
szybko wskoczyło na ten wagon
it quickly jumped onto that train car
z Node'em. Nie powiem Ci w którym roku,
with Node. I won't tell you in which year,
bo tego nie mam w notce, ale
because I don't have this in the note, but
Trello był też jednym z takich serwisów,
Trello was also one of those services,
który szybko wskoczył.
who quickly jumped in.
Trello? Trello. To Trello?
Trello? Trello. Is it Trello?
To Trello, no.
To Trello, no.
Które wtedy jeszcze nie było atlasjanowe.
Which at that time was not yet atlasian.
To tam było lata później.
It was there years later.
Atlasjan kupił Trello.
Atlassian bought Trello.
Trello, Frog, Frog, Frog.
Trello, Frog, Frog, Frog.
Coś tam Frog. Fox Creek.
Something there, Frog. Fox Creek.
Fox Creek chyba.
Fox Creek, I think.
Tak, tam gdzie był Joel z Polski.
Yes, where Joel was from Poland.
Tak jest. Który nie jest z Polski.
That's right. Which is not from Poland.
Tak.
Yes.
Ten sam, ten sam.
The same, the same.
Tak, to to ich kopnęło. No i Walmart.
Yes, that hit them. And Walmart.
Walmart miał w ogóle successful case,
Walmart had a successful case at all.
który był już chyba na
which was probably already at
HappyJS, bo HappyJS to jest też jeden z takich bardzo
HappyJS, because HappyJS is also one of those very
wczesnych frameworków. Zaraz Ci powiem
early frameworks. I'll tell you right away.
w którym roku w ogóle HappyJS powstał.
In which year was HappyJS created?
No chwilę po Expressie.
Just a moment after the Express.
2011.
2011.
Także też bardzo szybko.
Also very quickly.
Czy poczekaj? Po.
Will you wait? After.
Express 2.10, Happy 2.11.
Express 2.10, Happy 2.11.
No i Happy był też jednym z takich
Well, Happy was also one of those.
dość early adapterów.
enough early adopters.
Takich wcześniejszych frameworków.
Such earlier frameworks.
I właśnie Walmart miał mega case, gdzie oni
And Walmart had a huge case where they
obsłużyli ruch
they handled the traffic
podczas Black Friday.
during Black Friday.
Mając właśnie z tyłu Happy
Having Happy right behind.
oparte o Node.js.
based on Node.js.
I to też w ogóle poszło bardzo szeroką
And it also went very wide at all.
falą, no bo jednak
"wave, well after all"
Walmart, Big Sheet, Black Friday,
Walmart, Big Sheet, Black Friday
Big Sheet i to pychnęło.
Big Sheet and it pushed me.
Ja pamiętam, że
I remember that
z takich frameworków, które się potem pojawiły,
from such frameworks that later appeared,
bo Express się rozwijał, wszystko ładnie, pięknie,
because Express was developing, everything nicely, beautifully,
ale pojawiły się nowe narzędzia w ogóle w Node.js.
But new tools have appeared in Node.js in general.
Przepraszam, przepraszam,
I'm sorry, I'm sorry,
przepraszam, muszę to powiedzieć.
I'm sorry, I have to say this.
Socket.io.
Socket.io.
2010 rok również.
The year 2010 as well.
Czyli już nie trzeba było pisać websocketów w palce.
So there was no need to write web sockets by hand anymore.
I to był też 2010 rok, także...
And that was also the year 2010, so...
Tak, to był
Yes, it was.
początek w sumie tego developmentu,
the beginning of this development,
który teraz mamy. Bo od tamtego czasu
which we have now. Because since that time
niewiele się zmieniło, aczkolwiek
not much has changed, although
JavaScriptowe środowisko dostawało
The JavaScript environment was receiving.
kilka rarytasów.
a few rarities.
Klasy się pojawiały. Tak.
Classes were appearing. Yes.
Ale co się pojawiło ciekawego w Node.js?
But what interesting has appeared in Node.js?
Coś, co pozwoliło zareagować na
Something that allowed to respond to
callback hell, który stał się problemem
callback hell, which became a problem
od samego początku, jako że promisy nie istniały.
from the very beginning, as the promises did not exist.
Tak, tak.
Yes, yes.
Nie powiedzieliśmy tego głośno, ale oczywiście
We didn't say it out loud, but of course.
jako, że nie reagujesz od razu
since you don't respond right away
na zdarzenie, no to wrzucasz
for the event, well then you just throw it in
tam callback. Dokładnie.
There is a callback. Exactly.
A aby zareagować na callback, callbackiem
And to react to a callback, with a callback.
wrzucasz inny callback. Dokładnie tak.
You're putting in another callback. Exactly like that.
I idziemy pijem na wideo. Także ten callback
And we go to drink on video. Also that callback.
callbacka poganiał.
the callback was urging.
I coś, co trochę
And something that a little
uporządkowało sytuację
sorted out the situation
na rynku Node.jsowym,
in the Node.js market,
były generatory.
there were generators.
Ale to jest...
But this is...
Tak, generatory
Yes, generators.
versus promisy. Tu można by o tym...
versus promises. One could talk about it here...
A ty mówisz o tych generatorach?
Are you talking about those generators?
Ja mówię o tych gwiazdach. A, nie, to ja myślałem,
I'm talking about those stars. Oh, no, I thought it was me,
że mówisz o Jaumanie i tak dalej.
that you're talking about Jauman and so on.
O tym też pogadamy, nie? Ale generalnie
We'll talk about that too, right? But in general...
to coś... Jak już pojechałeś w temat...
It's something... Since you've already delved into the topic...
Nie wyjdziemy stąd dzisiaj. Pewnie nie.
We won't get out of here today. Probably not.
Ale jak już zacząłeś temat
But since you've already started the topic
z frameworków, to w mojej głowie się klaruje
from the frameworks, it's becoming clear in my mind
taki timeline, gdzie
a timeline like this, where
mieliśmy Expressa, było HAPI i
we had an Express, there was HAPI and
zaczęły się
they have begun
problemy w kontekście tego, że
problems in the context of the fact that
okej, ten kod wyglądał dziwnie
Okay, this code looked strange.
i w sumie brakuje nam pewnych możliwości.
And in fact, we are lacking certain opportunities.
I pojawiła się idea właśnie funkcji
And the idea of the function emerged.
generatorów. Koa korzysta z ko.
generators. Koa uses ko.
Tak,
Yes,
nazewnictwo w tym... Aby było prościej. Tak, żeby było
naming in this... To make it simpler. So that it is
prościej. To było związane
Simpler. It was related.
z korutynami, coś takiego. Ko... Ancestor?
with routines, something like that. Co... Ancestor?
Nie wiem. Dobra, szyję teraz.
I don't know. Alright, I'm sewing now.
Dobijam się. Nie wiem, ale chodziło
I'm trying to reach you. I don't know, but it was about...
o to, że mogłeś...
about the fact that you could...
Generalnie powstał framework koa,
Generally, a framework called Koa was created,
którego autorami byli
whose authors were
ci sami ludzie, którzy
the same people who
stworzyli Expressa. Tak, tak, tak.
They created Express. Yes, yes, yes.
Stwierdzili, że nie mogą
They stated that they cannot.
wprowadzić tego feature'a do
introduce this feature to
samego Expressa, bo to by zepsuło
the Express itself, because it would ruin it
kompatybilność wsteczną i ogólnie
backward compatibility and generally
tam ekosystem już sobie żyje callbackami
There, the ecosystem already lives with callbacks.
i są szczęśliwi z tego powodu.
and they are happy about it.
I zrobili nowy framework, który
And they made a new framework that
chwalił się
he was boasting
polepszeniem w ogóle wydajności.
improvement in overall performance.
Bo się okazało, że te generatory działają szybciej
Because it turned out that these generators work faster.
niż to, co mieliśmy wcześniej
than what we had before
na callbackach. I też
on callbacks. And also
koła wtedy miały bardzo ciekawy moment,
the wheels had a very interesting moment then,
czy bardzo ciekawy
is it very interesting
motyw tego, jak obsługiwał żądania.
the theme of how he handled requests.
Bo stackowałeś tak jakby middlewary
Because you stacked as if you were middleware.
i te middlewary działały w dwie strony.
And the middlemen operated in both directions.
Na zasadzie, jak przychodził request,
As the request came in,
to on wchodził w pierwszy middleware,
he was entering the first middleware,
tam miałeś yelda,
there you had the yelda,
który przepuszczał się do kolejnego
which let through to the next one
middlewara, do kolejnego, do kolejnego
middlewar, to the next one, to the next one
i tak dalej. Jak już nie było
"and so on. As it was no longer"
czego yeldować, to wracało do tych
What to yield, it returned to those.
yeldów, które zostały zapoczątkowane wcześniej.
yields that were initiated earlier.
W ogóle on... Jego też faktycznie
In general, he... Him too, actually.
stworzył wręcz twórca.
he created indeed the creator.
...expressa.
...expresses.
TJ Holowalczuk.
TJ Holowalczuk.
Brzmi jak polskie nazwisko, ale
It sounds like a Polish surname, but
takie trochę zmieszane. Albo takie
a bit mixed up. Or something like that.
jakkolwiek wschodnie.
however eastern.
Koła w 2013 wyszedł.
The wheels came out in 2013.
O tym, czy generatory są czytelne i fajne...
About whether the generators are readable and cool...
Nie.
No.
Jest to dyskusyjna teza.
It is a debatable thesis.
Ja tutaj bym przytulił wszystkich, którzy pracują
I would hug everyone who works here.
z Reduxem i Redux Sagą.
with Redux and Redux Saga.
Sagami?
Sagami?
Już wiecie, gdzie używać sag?
Do you already know where to use sag?
No tak, bardzo.
Well, yes, very much.
Podegresjonowaliśmy sobie.
We have regressed a bit.
Tak, ale faktycznie
Yes, but actually.
te wczesne frameworki mamy
we have these early frameworks
Expressa, mamy Happy, mamy Koła.
Express, we have Happy, we have Wheels.
To wszystko gdzieś jest
Everything is somewhere.
dosłownie parę lat po wydaniu
literally a few years after the release
Noda. Co ciekawe, Express dalej
Noda. Interestingly, Express goes on.
ma się dobrze. I się praktycznie
is doing well. And practically
nie zmienił od tamtego czasu. I powiedzmy
he hasn't changed since then. And let's say
później, dlaczego. Przejdźmy
later, why. Let's move on
później do nowożytniejszych
later to the more modern ones
rzeczy. Ja bym się zatrzymał na roku
things. I would stop at the year
2012.
2012.
Powiedzmy sobie,
Let's say to ourselves,
kto w ogóle zarządzał
Who was in charge at all?
w tych early days
in those early days
rozwojem Noda. Bo
the development of Node. Because
Node był rozwijany i zarządzany
Node was developed and managed.
przez firmę
through the company
Joyent. Gdy tutaj pracował
Joyent. When he worked here.
Ryan Dahl, to nie był projekt
Ryan Dahl, it wasn't a project.
taki per se
such per se
wtedy otwarty. I oni bardzo
then open. And they very
mocno trzymali na tym łapkę.
They held on tightly to it.
Z tym w ogóle była ciekawa historia związana, bo to było tak,
There was a curious story connected with this, because it went like this,
że Joyent odezwał się do Ryana
that Joyent reached out to Ryan
na samym początku i powiedział, chcielibyśmy to
At the very beginning, he said, we would like to do this.
używać na produkcji. To już, on już tam
use in production. It's already there, he's already there.
pracował? Właśnie nie pamiętam,
Did he work? I just don't remember.
czy on już tam pracował, ale generalnie
Has he worked there already, but generally...
pamiętam jedno hasło. Chodź do nas.
I remember one slogan. Come to us.
Trzeba to owszem
It is necessary, indeed.
doszlifować, ale chcemy tego używać na produkcji.
to refine, but we want to use it in production.
Ja nie wiem, czy to był Joyent, czy to już była
I don't know if it was Joyent or if it was already.
jego kolejna firma. Nie pamiętam dokładnie,
his next company. I don't remember exactly,
jak wyglądał timeline jego zatrudnienia.
What did his employment timeline look like?
Nawet sprawdzałem dzisiaj.
I even checked today.
Czekaj. Wyciągnę telefon
Wait. I'll take out my phone.
państwo tego,
the state of this,
czy wy to widzicie albo nie widzicie.
Do you see it or do you not see it?
Część z was pewnie to widzi. To się wytnie.
Some of you probably see it. It will be cut out.
To się wytnie. Tak.
It will be cut out. Yes.
Ryan Dahl pracował w Joyencie od
Ryan Dahl worked at Joyent from
grudnia 2009.
December 2009.
To już było po wydaniu inicjalnym
It was already after the initial release.
Node.js.
Node.js.
Czyli sprawdza się zasada,
So the principle holds true,
weź popracuj z open sourcem, dostaniesz pracę.
Go work with open source, you'll get a job.
Tak, tak. Nice, ok.
Yes, yes. Nice, ok.
Jednemu się udało. Musi działać.
One succeeded. It must work.
Tak, o tym nie wiedziałem. Ale tak, właśnie Joyent
Yes, I didn't know that. But yes, it was Joyent.
opiekował się tym i miał
he took care of it and had
do tego powiedzmy większe prawa.
let's say greater rights.
Właściwie sterował trochę rozwojem technicznym
He was actually somewhat in control of the technical development.
Noda. No i
Nothing. Well and
Ryan Dahl
Ryan Dahl
od Node.js odszedł
left Node.js
dość szybko.
quite quickly.
Bardzo zdziwiło. Trzy lata czy cztery lata?
It was very surprising. Three years or four years?
Trzy lata. W 2012 roku.
Three years. In 2012.
A pamiętasz gdzie odszedł?
And do you remember where he went?
Na jego Linkedinie widać, że
On his LinkedIn, it is visible that
on potem pracował z Googlem od 2016
He then worked with Google since 2016.
roku, ale
year, but
tutaj nie jestem w stanie powiedzieć
I can't say here.
co się działo pomiędzy, także nie wiem.
I don't know what was going on in between either.
Ale odszedł, bo
But he left because
głównie miał
mainly had
trochę żal do decyzji projektowej,
a bit of regret towards the design decision,
które zostały podjęte odnośnie rozwoju
which were taken regarding development
Noda.
Noda.
Nie do końca
Not entirely.
podobał mu się fakt wprowadzenia
He liked the fact that it was introduced.
NPM-a i modelów, w których NPM
NPM and models in which NPM
działa, że można było
it works that it was possible
włączyć właściwie
turn on properly
na dziko zależność.
wild dependency.
Okej, źle to ująłem. Nie na dziko.
Okay, I phrased that poorly. Not in the wild.
Można było włączyć zależność, która mogła robić
It was possible to enable a dependency that could do.
cokolwiek, bo
anything, because
miała dostęp do swojego dysku, mogła wysyłać requesty
she had access to her disk, she could send requests
sieciowe. Nie za bardzo miałeś kontroli
networked. You didn't really have control.
nad tym jako developer, jak już włączyłeś.
about this as a developer, once you’ve enabled it.
Zaczęło się rodzić Deno w jego głowie?
Did Deno start to be born in his head?
Czy...
Whether...
Probably.
Probably.
Deno te problemy adresuje jak najbardziej.
I definitely address these problems.
Tak, jak najbardziej. Także...
Yes, absolutely. Also...
Deno bardzo mocno to adresuje
Deno addresses this very strongly.
i to też były powody, dla których
and these were also the reasons why
odszedł bardzo szybko, bo w
he left very quickly, because in
2012 roku właśnie
The year 2012 just.
i z firmy, i z Joyenta,
from the company and from Joyenta,
i z rozwoju Node.js-a.
and the development of Node.js.
Ale Joyent dalej trzyma
But Joyent still holds on.
rękę na rozwoju Deno.
a hand in the development of Deno.
Na rozwoju Noda.
On the development of Node.
I w 2014 roku
And in 2014
część ludzi, którzy
a part of the people who
utrzymują Noda
they maintain Noda
i go rozwijają, stwierdza, że
I am developing, he/she states that
niekoniecznie im
not necessarily them
pasuje taki governance,
such governance fits,
że Node się nie rozwija właściwie,
that Node is not developing properly,
ich zdanie rozwija się za wolno,
their sentence develops too slowly,
nie ma tam części rzeczy, które by chcieli,
There are some things there that they would want.
nie jest zalajnowany z najnowszymi
it is not updated with the latest ones
wersjami V8-a i się
versions of the V8 and itself
rozdzieli powstał fork,
a fork was created.
który możecie kojarzyć, czyli
which you may associate with, that is
IOJS. Tak, możecie kojarzyć
IOJS. Yes, you might associate it.
jak programowaliście w tamtym czasie,
how did you program at that time,
bo teraz... Był 2014 rok.
Because now... It was the year 2014.
Teraz to trzeba grubo kopać, żeby w ogóle
Now we have to dig deep, to even...
znaleźć jakąkolwiek informację na temat
to find any information about
IOJS-a. Spoiler alert,
IOJS. Spoiler alert,
dlatego, że po prostu się połączył
because it simply connected
z Nodem z powrotem po kilku latach,
with Nod back after a few years,
czy w niecałym roku?
in less than a year?
Po niecałym roku, tak, tak, bo oni
After not quite a year, yes, yes, because they
głównie właśnie chcieli
mainly they wanted
mieć możliwość szybciej
to have the opportunity to be faster
reagować na zmiany,
react to changes,
być bardziej zalajnowanymi z tego, co się dzieje
to be more informed about what is happening
jeśli chodzi
when it comes to
o wsparcie
about support
V8-a i tak dalej.
V8 and so on.
I faktycznie gdzieś po roku,
And indeed, somewhere after a year,
w 2015 roku
in 2015
zawiązała się
it has formed
fundacja, Node.js Foundation,
foundation, Node.js Foundation,
która połączyła
which connected
Node.js-a i IOJS-a
Node.js and IOJS
pod jednym ciałem.
under one body.
To wszystko było pod kuratelą
It was all under supervision.
Linux Foundation. Jeśli pamiętacie odcinek
Linux Foundation. If you remember the episode
o jQuery, to pewnie pamiętacie
Oh, jQuery, you probably remember.
tą drabinkę, jak
that ladder, like
te fundacje się łączyły tam wspólnie.
These foundations were merging there together.
JQuery Foundation, potem było...
JQuery Foundation, then there was...
Nie, to nie było jQuery Foundation.
No, it was not the jQuery Foundation.
To było jQuery Foundation plus...
It was jQuery Foundation plus...
Patrzcie, my nie pamiętamy.
Look, we don’t remember.
Plus coś jeszcze. To się potem połączyło jeszcze
Plus something else. That later connected as well.
z Node Foundation i powstał z tego OpenJS Foundation.
from the Node Foundation and this led to the creation of the OpenJS Foundation.
W 2019 roku.
In 2019.
Ale my jesteśmy na razie w roku 2015.
But we are currently in the year 2015.
I wtedy właśnie
And that is when
Node.js Foundation powstał. I wtedy
The Node.js Foundation was established. And then
właśnie też ponownie połączyły się te dwa
those two have just reconnected again
forki, czyli IOJS i
forks, that is IOJS and
Node.js. Wtedy też
Node.js. Then also
zostało ustanowione
was established
nowy statut.
new statute.
Powstał komitet, techniczny
A technical committee has been formed.
komitet sterujący
steering committee
Node.js-em. Zostało to uwolnione od
Node.js. It has been freed from
jointa i tak dalej.
joint and so on.
I w skład tej fundacji,
And as part of this foundation,
w skład Node.js Foundation
the Node.js Foundation
w ogóle weszło sporo
A lot has come in at all.
dużych firm, bo był tam oczywiście
large companies, because he was obviously there
joint, był tam IBM,
joint, there was IBM,
był tam Microsoft, PayPal,
there was Microsoft, PayPal,
SaaS, GoDaddy, DigitalOcean.
SaaS, GoDaddy, DigitalOcean.
Także naprawdę
So really
duża grupa.
large group.
Potem tam jeszcze dołączył Snyk,
Then Snyk joined there as well,
potem dołączył Google jeszcze,
then Google joined in as well,
potem NodeSource,
then NodeSource,
Red Hat, to już w kolejnych latach i tak dalej.
Red Hat, it will be in the following years and so on.
I do momentu połączenia z
Until the connection with
JS Foundation,
JS Foundation,
jak się stworzyło OpenJS Foundation
how the OpenJS Foundation was created
w 2019 roku, naprawdę
in 2019, really
było tam duże grono firm, które
there was a large group of companies that
którym było bardzo na sercu rozwijanie
which was very dear to them to develop
Node.js. Chciałem mieć kawałek
Node.js. I wanted to have a piece.
tego governance'u pod sobą.
this governance underneath you.
Kawał historii, sporo
A piece of history, quite a bit.
dużych nazw, wszyscy
big names, everyone
zainteresowani
interested parties
wciągnięciem Node.js-a w swój
by incorporating Node.js into your
stach technologiczny prawdopodobnie.
technological stack probably.
Wszystkie firmy generalnie czerpały z tego zyski.
All companies generally profited from this.
Podobnie zresztą jak Microsoft
Similarly to Microsoft.
robił z Linuxem.
he was doing with Linux.
Ciekawostka, Microsoft był
Interesting fact, Microsoft was
jednym z większych kontrybutorów, jeżeli chodzi o
one of the larger contributors when it comes to
core Linuxa
Linux kernel
i finansowanie
and financing
projektów open source'owych wokół Linuxa.
open source projects around Linux.
Generalnie ich chmury na tym stały.
Generally, their clouds were based on that.
Ale tutaj zrobiłem dygresję.
But here I digressed.
W tym przypadku to są firmy,
In this case, these are companies.
które zauważyły w Node.js-ie
that they noticed in Node.js
sporą szansę.
a good chance.
I mówimy tutaj
And we are talking here.
o serwerowniach w dużej mierze.
about server rooms to a large extent.
W sensie DigitalOcean.
In the sense of DigitalOcean.
Firma w dużej mierze hostująca serwery.
A company largely hosting servers.
Oni chyba mieli jako jedni
They probably had it as one of the few.
z pierwszych w ofercie w ogóle
one of the first in the offer at all
możliwość wykupienia serwera, gdzie możesz
the possibility of purchasing a server where you can
odpalić takiego Node'a za
start such a Node for
śmieszne pieniądze.
funny money.
Bo hostowanie Node.js-a
Because hosting Node.js
to nie jest prosta sprawa.
It's not a simple matter.
Jeżeli nie masz VPS-a
If you don't have a VPS.
albo czegoś, wiesz,
or something, you know,
własnej maszyny z dostępem roota,
own machine with root access,
no to nie polatasz.
Well, you won't be flying.
Teraz już trochę zmieniło, ale mamy
Now things have changed a bit, but we have...
sporo rzeczy opartych na Javascript'cie
a lot of things based on JavaScript
w Cloud Functions,
in Cloud Functions,
jakieś takie dziwne rzeczy.
some strange things.
Ale takiego gołego ekspresa, żeby wyhostować,
But a bare express like that, to host,
to trzeba trochę poszukać.
You need to look for it a bit.
Chyba, że masz jakieś złote narzędzie,
Unless you have some golden tool,
które możemy się podzielić.
which we can share.
Na wtedy.
For then.
Nie wiem, nie wiem.
I don't know, I don't know.
Ale odnośnie ekspresa,
But regarding the espresso,
to IBM
to IBM
też tutaj ma dużą
also has a big one here
rolę, bo nie wiem, czy kojarzy się, jak sam
the role, because I don't know if it rings a bell, like myself
ekspres się rozwijał.
the express was developing.
Bo ekspres 2010, już mówiliśmy,
Because the express 2010, we already said,
on bardzo szybko
he is very fast
został dobrze przyjęty itd.
He was well received, etc.
I go używali
They used to go.
naprawdę wszyscy duzi gracze.
really all the big players.
IBM, Uber, Twitter
IBM, Uber, Twitter
itd.
etc.
I w 2016
And in 2016
Strongloop, która rozwijała
Strongloop, which was developing
ekspresa, przejął IBM.
Express, taken over by IBM.
Strongloop rozwijał ekspresa?
Did Strongloop develop Express?
Strongloop, no.
Strongloop, no.
Oni też mieli w ogóle takie generatory.
They also had such generators at all.
Oni mieli taki bardzo potężny
They had such a very powerful one.
generator do
generator do
aplikacji w stylu
application in style
MVC, ale nie pamiętam, jak on się nazywał.
MVC, but I don't remember what it was called.
Chyba Strongloop, po prostu.
Probably just Strongloop.
Tak mi się wydaje. I faktycznie potem
I think so. And indeed later
wykupił IBM. Czyli IBM teraz też
He bought IBM. So IBM now too.
dalej, dalej bardzo mocno tego ekspresa
Come on, come on, very strongly with this express.
wspiera. Jak już przy ekspresie jesteśmy,
supports. While we are at the espresso,
to może zamknijmy go
Maybe let's close it.
klamrą. Loopback.
clamp. Loopback.
Loopback właśnie. To było to. Zamknijmy go
Loopback, exactly. That was it. Let's close it.
klamrą, bo ekspres
with a buckle, because of the express
też działa w wielu innych frameworkach,
also works in many other frameworks,
ale pod spodem, nie wiem, w
but underneath, I don't know, in
Next.js, w silosach, w loopbacku
Next.js, in silos, in loopback
wspomnianym. I on tam
mentioned. And he is there
jest bardziej jako delivery layer.
It is more of a delivery layer.
Czyli w Next.js
So in Next.js
możecie sobie sprecyzować, że okej,
you can specify that it's okay,
nawet chyba domyślnie w Next.js masz po prostu
I think even by default in Next.js you just have
ekspresa jako delivery layer.
Express as a delivery layer.
A cały Next.js jest nadbudową
And all of Next.js is a layer on top.
nad ekspresa. To jest bardzo ciekawe.
Above the express. This is very interesting.
A to jest Nestle na przykład.
And this is Nestle, for example.
Bo powiedziałeś Next. Nie, Nest.
Because you said Next. No, Nest.
Nest. Sorry, przeżyczyłem się.
Nest. Sorry, I got carried away.
Chodzi mi o Nest.js, a że właśnie
I'm talking about Nest.js, and that just...
w Nest.js ekspres.js jest
In Nest.js, Express.js is.
delivery layer by default.
warstwa dostawy domyślnie.
Także on do dzisiaj jest bardzo
He is still very much so today.
mocno używany i popularny.
strongly used and popular.
Niekoniecznie dlatego, że jest używany
Not necessarily because it is used.
bezpośrednio. Ale jak byliśmy
directly. But when we were
przy tej fundacji Node.js
with this Node.js foundation
powstałej w 2015 roku,
established in 2015,
jeszcze jedna rzecz się wydarzyła w 2015 roku.
One more thing happened in 2015.
Oprócz tego, że się połączyły
Besides the fact that they connected.
dwa forki, co jest
two forks, what is it?
dość zabawne.
quite funny.
Proszę Ciebie, bo wtedy też
I'm asking you, because then too
wyszła wersja 1.0
Version 1.0 has been released.
z Node.js.
with Node.js.
To było dopiero...
It was just...
Tam leciał 0.0.10
There it was flying 0.0.10.
coś takiego. Tak, tak.
Something like that. Yes, yes.
To był długi czas. Dokładnie.
It was a long time. Exactly.
I to było po połączeniu się z IO?
And was that after connecting to the IO?
Tak, dokładnie.
Yes, exactly.
Także jest dość zabawne, że dopiero wtedy
It's also quite funny that only then
przeszli na SemVer,
they switched to SemVer,
w sensie na semantyczne wersjonowanie
in the sense of semantic versioning
w 2015 roku. Tak, w międzyczasie
in 2015. Yes, in the meantime
poszukałem informacji a propos...
I looked for information regarding...
I wtedy w ogóle zaczęli też mieć jakiś
And then they also started to have some.
regularny cykl wydawniczy. Wtedy chyba też
regular publishing cycle. Then I suppose too
LTS-y się pojawiły. Także to
LTSs have appeared. So that.
dopiero parę lat po tym.
only a few years after that.
Wiesz, jak się pojawiły wśród zainteresowanych
Do you know how they appeared among those interested?
firmy w stylu IBM,
companies in the style of IBM,
to już nie przelewki. Zresztą Strongloop
It's no joke anymore. Besides, Strongloop.
i w ogóle Loopback
and in general Loopback
to było zaplecze bardziej
it was more of a back room
komercyjne. Znaczy to już były narzędzia
commercial. It means these were already tools.
typu Enterprise. Tak.
type Enterprise. Yes.
I tam miałeś zestawie
And there you had the set.
dużo, dużo więcej niż Go Express
much, much more than Go Express
dawał Ci do dyspozycji. Express to było tak, że...
he made it available to you. It was expressed in such a way that...
Wiesz, mogę się pobawić, pobudować
You know, I can have some fun, build something.
jakąś prostą aplikację.
some simple application.
Nie mam tam jakiejś mega zaawansowanej
I don't have anything mega advanced there.
logiki biznesowej. Okej, są funkcje,
business logic. Okay, there are functions,
obsługują żądania, są odpowiedź.
They handle requests, they are the answer.
Wszyscy są szczęśliwi.
Everyone is happy.
Loopback to już był Enterprise, nie?
Loopback was already Enterprise, right?
Powiedziałeś, że pojawiły się LTS-y.
You said that LTS versions have appeared.
LTS-y?
LTSs?
LTS-y w Node'ie
LTS versions in Node.
4 lata? Jest tak.
4 years? It is so.
Na dzień nagrywania tego
As of the day of recording this
podcastu, to
podcast, it
warto wspomnieć, aktualnie
it's worth mentioning, currently
LTS-em, czyli Long Term Support
LTS, which stands for Long Term Support.
jest...
is...
Tak,
Yes,
18 ma teraz LTS-a, przepraszam.
18 now has LTS, sorry.
LTS ma teraz 18, tak?
LTS is now 18, right?
LTS-y
LTSs
to jest około 2 lat. Chciałem zrobić
It's about 2 years. I wanted to do it.
jeszcze jedną małą dygresję, bo
one more small digression, because
przypomniało mi się.
I remembered.
Wspominaliśmy o modułach
We mentioned the modules.
o AMD vs RequireJS.
About AMD vs RequireJS.
Zrobiłem błąd,
I made a mistake.
bo generalnie AMD
because generally AMD
wyszło dużo po CommonJS-ie.
A lot has come out after CommonJS.
CommonJS, tak jak
CommonJS, just like
wywnioskowaliśmy, był już w styczniu
we concluded he was already in January
tego konkretnego roku.
this specific year.
2009 roku.
2009 year.
AMD pojawił się bodajże pod koniec
AMD appeared, probably at the end.
tego samego roku,
that same year,
albo chwilę później,
or a moment later,
ale AMD nie mogłoby działać
but AMD could not work
bez RequireJS-a.
without RequireJS.
A RequireJS
A RequireJS
to było narzędzie, które zakładało,
it was a tool that assumed,
że masz narzędzia Node'owe, które pozwalają Ci
that you have Node tools that allow you
skompilować projekt. Także siłą rzeczy
to compile the project. Also necessarily
AMD nie miało jak się z tym
AMD had no way to deal with this.
później znaleźć.
find later.
No dobra, ale w pewnym czasie możemy
Alright, but at some point we can...
wrócić do... Wydaje mi się, że
to return to... I think that
idąc w tych latach, bo doszliśmy gdzieś do
walking in those years, because we have come somewhere to
2015 roku,
in the year 2015,
że idąc w latach, ominęliśmy jedną
that as the years went by, we missed one
bardzo ważną rzecz. Mianowicie
a very important thing. Namely
2010 rok, mówiliśmy o nim,
2010, we were talking about it,
tak, ale wtedy też powstał
Yes, but then it was also created.
NPM. I
NPM. I
warto powiedzieć, tak bardzo,
it's worth saying, so much,
bardzo pokrótce, jak to się wydarzyło,
very briefly, how it happened,
że powstał NPM i
that NPM was created and
jak to się wydarzyło personalnie.
how it happened personally.
Bo
Because
NPM to jest
NPM is this.
Isaac Schluter
Isaac Schluter
bardzo
very
ciężkie nazwisko, ale to jest
a heavy surname, but it is
twórca
creator
NPM'a. Tak się nazywał,
NPM. That's what it was called.
rzeczywiście. Tak, który też był
Indeed. Yes, which was also.
bardzo intensywnie
very intensely
zaangażowany w rozwój samego Node'a. I
involved in the development of Node itself. I
w ogóle, co jest ciekawe,
Overall, what is interesting,
przejął
took over
rozwój Node'a przez
development of Node by
jakiś czas, po tym
some time after that
jak Ryan Dahl
like Ryan Dahl
odszedł z Node'a.
he left Node.
O tym nie wiedziałem. No a w 2010,
I didn't know about that. Well, in 2010,
jak wspominaliśmy,
as we mentioned,
założył NPM'a w sensie
he founded NPM in the sense of
Isaac Schluter.
Isaac Schluter.
I to, co jest jeszcze
And what else is there?
ciekawe w kontekście NPM'a,
interesting in the context of NPM,
to nie wiem, czy pamiętasz...
I don't know if you remember...
Isaac Schluter.
Isaac Schluter.
Trudne to. Nie wiem, czy pamiętasz, od której
It's difficult. I don't know if you remember from which...
wersji zaczął się pojawiać NPM
The version of NPM started to appear.
wbudowany w Node'a. Bo od którejś
built into Node. Because from which one
wersji on był dostarczany
he was delivered in version
wraz z Node'em. Oj, nie wiem.
together with Node. Oh, I don't know.
Ja, odkąd pamiętam,
I, as far as I remember,
to używałem Node'a
I used Node.
z NPM'em od razu, także zakładam,
with npm right away, so I assume,
że to pojawiło się
that it has appeared
przed 2013. Było dokładnie
before 2013. It was exactly
w wersji Node'a 0.6.3,
in Node version 0.6.3,
czyli w
that is in
2011 roku, dokładnie
In the year 2011, exactly.
w listopadzie. Czyli jeszcze przed IO.
In November. So still before the Olympics.
Zdecydowanie jeszcze przed
Definitely still before.
tym rozłamem w społeczności.
this split in the community.
I też gdzieś mógł być jakiś powód,
And there might have been some reason somewhere.
dla którego Ryan Dahl
for which Ryan Dahl
odszedł, bo nie do końca podobał mu się
he left because he didn't completely like it
forma, w jakiej
the form in which
te zależności mogą wpadać do projektu, że
these dependencies can get into the project, that
nie są zarządzane, mają za dużo uprawnień,
they are not managed, they have too many permissions,
itd. Czyli to też dość wcześnie właściwie
etc. So that's quite early actually too.
było. Ten NPM wbudowany w Node'a,
it was. This NPM embedded in Node,
dostarczany razem z nim.
delivered together with it.
Tak. Ja w ogóle pamiętam, że
Yes. I actually remember that
było w 2000
it was in 2000
którymś
which one
JSConf, ostatnia edycja
JSConf, the last edition
JSConf'a w Europie. Tam była prezentacja
JSConf in Europe. There was a presentation there.
w ogóle a propos tego, jak Node.js
Speaking of which, how about Node.js?
się rozwija i jakie są
is developing and what are
decyzje związane właśnie z fundacją.
decisions related to the foundation.
Tam było sporo zamieszania. W ogóle
There was quite a bit of confusion there. At all.
Node.js miał się bardzo źle w tamtym czasie.
Node.js was in very bad shape at that time.
Było lata 2018,
It was the year 2018,
jeżeli dobrze pamiętam, albo
if I remember correctly, or
2019, coś koło tego.
2019, something around that.
NPM to był
It was NPM.
jeden z powodów tego wszystkiego, dlatego
one of the reasons for all of this, that's why
że utrzymanie tak dużego
that maintaining such a large
repozytorium paczek
package repository
z gwarancją bezpieczeństwa tych
with a guarantee of safety for these
paczek, przez to, że nie było żadnych mechanizmów
doughnut, because there were no mechanisms
zabezpieczających to, że okej, te moduły
ensuring that okay, these modules
mogą zrobić co chcesz,
they can do whatever you want,
co nie ty chcesz, tylko co autor tych
It's not what you want, but what the author of these wants.
modułów chce,
I want modules.
to jakby
it's like
zwiększało koszty utrzymania całego tego projektu.
it increased the maintenance costs of the entire project.
Bo trzeba było robić audyty tych paczek,
Because we had to audit those packages,
które są, też trzeba było to skanować
which are, it was also necessary to scan this
na bieżąco. Też
Currently. Me too.
od swego czasu. Zakładam, że to było już
since your time. I assume it was already
po Leftpad Incident. Właśnie,
after the Leftpad Incident. Exactly,
Leftpad Incident to był jeden z tematów,
The Leftpad Incident was one of the topics,
który się wtedy przetoczył przez
that rolled through then
środowisko. Ja tutaj ci wtrącę,
environment. I'll interject here,
czym był Leftpad Incident.
What was the Leftpad Incident?
Była mikrobiblioteka,
There was a micro-library,
nazywała się Leftpad.
It was called Leftpad.
16 linii kodu.
16 lines of code.
Od której, jak się okazało, zależało
From which, as it turned out, depended.
bardzo dużo
a lot
core'owych bibliotek. Babel,
core libraries. Babel,
Webpack między innymi, React chyba też.
Webpack among others, React probably too.
Wszystko tam było.
Everything was there.
React, bo React od Babela.
React, because React is from Babel.
Także ogólnie takim łańcuchem
So generally such a chain.
praktycznie wszystkie core'owe biblioteki
practically all core libraries
i frameworki popularne
and popular frameworks
były zależne od tego Leftpada.
they were dependent on that Leftpad.
I autor tej
And the author of this
libki
libki
odpublikował ją z NPM'a.
he unpublished it from NPM.
Czyli nie można jej było pobrać.
So it couldn't be downloaded.
Czyli cały ten łańcuch
So this whole chain
się posypał. Czyli jeśli
fell apart. So if
próbowaliście pobrać,
did you try to download,
załóżmy Webpacka,
let's set up Webpack,
w jakimś długim łańcuchu,
in some long chain,
który miał 16 linii kodu,
which had 16 lines of code,
to nie byliście w stanie
you weren't able
pobrać, zbudować
download, build
Webpacka.
Webpack.
I NPM w tamtym czasie
And NPM at that time
nie ułatwiał wam zadania.
He didn't make your task easier.
To był 2015
It was 2015.
albo 2016 rok?
or 2016?
Strzelam, że to będzie 2015,
I'm guessing it will be 2015.
bo ja pamiętam dzień, w którym nie budowało się nic.
Because I remember the day when nothing was being built.
Też pamiętam dzień, w którym nie budowało się nic.
I also remember the day when nothing was being built.
Ja bym powiedział, że to było 2016.
I would say it was 2016.
Tak mi się wydaje.
I think so.
Dobra.
Good.
Też przychylam się ku 2016.
I also lean towards 2016.
Ale co chciałem powiedzieć,
But what I wanted to say,
NPM w tamtym czasie też nie ułatwiał nam życia.
NPM didn't make our lives easier at that time either.
Dlatego, że
Because
bardzo ciężko było wskazać
it was very difficult to point out
na alternatywne źródło
to an alternative source
danego kodu.
given code.
Nie mogłeś zdobyć override'a ścieżek.
You couldn't get the path override.
Od tamtego czasu to się zmieniło,
Since then, that has changed,
bo możesz wskazać dokładnie,
because you can point exactly,
gdzie znajduje się biblioteka,
Where is the library located?
którą chcesz zastąpić inną bibliotekę
which you want to replace with another library
w swoim kodzie. Także jak masz, nie wiem, Underscora,
in your code. Also, if you have, I don't know, Underscore,
chcesz używać Lodasha...
do you want to use Lodash...
To jest też kwestia paru lat.
This is also a matter of a few years.
Paru lat od tego incydentu.
A few years since that incident.
Tak.
Yes.
To nie było tak, że od razu wpadnie na ten pomysł,
It wasn't the case that he immediately came up with this idea.
ale faktem,
but the fact is,
pierwszym krokiem, który się wtedy pojawił,
the first step that appeared then,
było to, że
it was that
ok, wyłączamy możliwość odpublikowania paczek.
Okay, we are disabling the option to unpublish packages.
Także co wyląduje
So what's going to land?
w NPM-ie, zostaje tam
in NPM, it stays there
na wieki.
forever.
I
I
to też dało boosta wszelkim narzędziom,
it also gave a boost to all tools,
które chciały replikować
which they wanted to replicate
NPM-a.
NPM.
I nie rzucę z głowy nazwami,
And I won't throw names off the top of my head,
ale wszystkie tule, które pozwalają Ci
but all the sleeves that allow you
stworzyć Twojego prywatnego NPM-a.
create your private NPM.
Mhm. Mhm.
Mhm. Mhm.
Masz w głowie.
You have it in your head.
Jakiś Verdaccio, te klimaty.
Some Verdaccio, that vibe.
Potem tych
Then those
rejestrów, pakietów było dość dużo już.
There were quite a lot of records and packages already.
Mhm. No i ludzie zaczęli
Mhm. Well, people started
myśleć o tym, że ok, dobra, trzeba się
thinking that okay, good, I need to
z tym zabezpieczyć. Co więcej,
to secure this. Moreover,
ja pamiętam, że też zwiększyła się
I remember that it also increased.
świadomość Semwera,
the consciousness of Semwer,
bo niektórzy
because some
na przykład... Generalnie NPM do tej pory,
for example... Generally, NPM so far,
ma jedną zasadniczą wadę. Jak instalujesz
It has one major flaw. When you install
zależności, to wszystkie instalują się
dependencies, they all install themselves
z daszkiem. Tak. Co oznacza,
with a visor. Yes. What does it mean,
że przy najbliższej okazji
that at the next opportunity
może się okazać, że zainstalujecie
it may turn out that you will install
coś innego, niż chcieliście zainstalować oryginalnie.
Something other than what you originally wanted to install.
Bo Wam się podbije albo jakiś bug fix, albo jakiś
Because it will either be a bug fix or something else for you.
minor, a w minorach
minor, and in minors
nie każdy się trzyma Semwera i
not everyone holds onto Semver and
potrafi uwlatywać rzeczy, które są breaking changes
It can violate things that are breaking changes.
i tak dalej.
and so on.
Ja bym w ogóle o NPM-ie
I would generally talk about NPM.
nie wchodził dzisiaj tak głęboko, bo tu
he didn't go that deep today, because here
to jest też duży temat.
This is also a big topic.
Ale zamknąłbym jeszcze
But I would still close it.
właśnie NPM-a, on miał też dużo
just NPM, he also had a lot
turbulencji po drodze, no ale finalnie
turbulence along the way, but in the end
sama firma
the company itself
powstała w 2014 roku
founded in 2014
NPM, która
NPM, which
zarządzała NPM-em, notabene
she managed the NPM, by the way
i w 2020 roku wykupił ją
and in 2020 he bought her out
Microsoft, który
Microsoft, which
do dzisiaj trzyma gdzieś tam rękę
To this day, he/she keeps a hand somewhere there.
na NPM-ie. Proste, ja nawet nie wiedziałem, że Microsoft...
on NPM. Simple, I didn't even know that Microsoft...
Tak, tak, w 2020 roku.
Yes, yes, in 2020.
Oni mają GitHub'a, mają
They have GitHub, they do.
NPM-a. A, dobra, no tak. I to było tak, że chyba
NPM. A, okay, well yes. And it was like, I think
GitHub był pierwszy. GitHub był chyba pierwszy,
GitHub was first. GitHub was probably first.
potem był NPM, tak mi się wydaje. Tak, tak, tak.
Then there was NPM, I think. Yes, yes, yes.
Tak, że się działo.
So, there was a lot going on.
Dobiliśmy do brzegu, bo wydaje mi się, że
We reached the shore because I think that
to jest moja opinia,
this is my opinion,
że na 2015 roku
that for the year 2015
się kończy taki
it ends like this
intensywny
intense
i ciekawy
and interesting
twisty rozwój samego
twisty development itself
Noda, potem mamy 2018,
Then we have 2018,
powstanie Deno,
the Deno uprising,
sam Node dalej się mega
I'm still doing great.
rozwija, używamy go na co dzień,
it develops, we use it every day,
ja mogę mówić za siebie,
I can speak for myself,
ty zakładam, że... Ostatnio
I assume that you... Recently
natywny fetch wleciał. Tak.
The native fetch has arrived. Yes.
Tak, tak, że tam się dzieje naprawdę dużo rzeczy.
Yes, yes, a lot of things are really happening there.
Trochę nie będziemy w to wchodzić,
We won't be getting into that a bit.
bo...
because...
To już jest, że tak powiem,
This is already, so to speak,
przyprawianie tego, takie wisienki na torcie,
seasoning this, like cherries on the cake,
stawianie, bo generalnie Node
putting, because generally Node
w 2015 już
in 2015 already
był w takim kształcie, że można go było produkcyjnie
it was in such a shape that it could be produced industrially
używać. Środowisko,
to use. Environment,
w ogóle cały ekosystem się ustabilizował.
Overall, the entire ecosystem has stabilized.
Tak mniej więcej, no, no. Nazwiska, które
Yes, more or less, well, well. The surnames that
że tak powiem się przykleiły do tego projektu
I would say they stuck to this project.
dalej są do niego przyklejone, z tego
they are still stuck to him, from this
co mi się wydaje?
What do I think?
Częściowo. To już się sformalizowało.
Partially. It has already been formalized.
Jest też ten
There is also this
Technical Steering Committee, czyli komitet
Technical Steering Committee, that is the committee
techniczny sterujący rozwojem
technical controller of development
Node.js, który ma
Node.js, which has
właściwie wszystkich tych głównych kontrybutorów i tak dalej.
Actually all of these main contributors and so on.
On trzyma rękę na tym, jak to się rozwija.
He keeps his hand on how this is developing.
Nawet zaczęli ostatnio iść w kierunku
They have even started to head in that direction recently.
standardyzacji API
API standardization
i alignowania się do
and aligning to
tego, co jest w webie, bo to nie zawsze było
what is in the web, because it wasn't always like that
oczywiste, wbrew
obvious, contrary
pierwszym zapowiedziom Rea Nadala.
the first announcements of Rea Nadal.
Także tam się dużo dzieje, ja już bym w to
There's a lot going on there too, I would already get into it.
nie wchodził, bo to już nie jest archiwum,
he didn't enter because it's no longer an archive,
a my tu się archiwum zajmujemy.
and we are dealing with the archive here.
Dokładnie tak. Trzeba sobie gdzieś postawić kropkę.
Exactly. You have to put a period somewhere.
Tak, tak. Także ja bym tutaj
Yes, yes. I would also here
zamknął na tym roku.
It closed this year.
No i co?
So what?
Jednym zdaniem podsumowania?
One sentence summary?
Ja się cieszę, że to się stało.
I am glad that it happened.
Piękna to była przygoda, nie zapomnę jej nigdy.
It was a beautiful adventure, I will never forget it.
Dziękujemy wam
Thank you.
bardzo za dzisiaj
thank you very much for today
i za tą opowiastkę o Node.js
and for that story about Node.js
i zobaczymy się kolejnym razem
and we will see each other next time
z jakimś kolejnym historycznym,
with some another historical,
archiwalnym tematem. Tak jest. Dajcie nam
an archival topic. That's right. Give us
w komentarzach, czy ten temat wam się
In the comments, do you like this topic?
podobał, co chcielibyście usłyszeć
I liked what you would like to hear.
w kolejnych odcinkach
in the next episodes
i oczywiście łapka, subik.
And of course, a like and a subscribe.
Łapka w górę, subik, podajcie dalej
Thumbs up, subscribe, pass it on.
nasz podcast, bo bardzo chcemy, aby też
our podcast, because we really want you to as well
poszedł do innych zainteresowanych. Mam nadzieję, że
he went to others interested. I hope that
wam się podobało i jeśli
you liked it and if
traficie na jakiegoś babola merytorycznego,
you will come across some substantive errors,
to nam go wytknijcie w komentarzach.
So point it out to us in the comments.
Zdecydowanie tak.
Definitely yes.
Szukamy hejterów cały czas,
We are constantly looking for haters,
także jak znacie kogoś, kto mógłby tam pokomentować,
so if you know someone who could comment there,
to przyda się.
It will come in handy.
Dzięki wielkie, trzymajcie się, cześć.
Thanks a lot, take care, bye.
Cześć.
Hello.
Continue listening and achieve fluency faster with podcasts and the latest language learning research.