2.02 (10) Czy to już koniec Typescript'u?

Piwnica IT

Piwnica IT

2.02 (10) Czy to już koniec Typescript'u?

Piwnica IT

Cześć, witamy w kolejnym odcinku podcastu Piwnica IT.

Hello, welcome to another episode of the IT Cellar podcast.

Wczesny front-end development wydaje się niemożliwy.

Early front-end development seems impossible.

Tematem dzisiejszego odcinka będzie TypeScript, nadzbiór dla JavaScriptu, który dodaje statyczne typowanie do naszego kodu.

The topic of today's episode will be TypeScript, a superset of JavaScript that adds static typing to our code.

Przez wiele lat nie tylko bardzo mocno się rozwinął, ale można powiedzieć, że zmienił front-end, odchodząc od dynamicznej natury JS-a.

For many years, it has not only developed very strongly, but one could say it has changed front-end, moving away from the dynamic nature of JS.

Wprowadził programowanie na front-endzie na nowy, wyższy poziom.

He elevated front-end programming to a new, higher level.

TypeScript stał się standardem, poprawił developer experience i ułatwił wiele procesów takich jak

TypeScript has become a standard, improved developer experience, and simplified many processes such as

testowanie, refaktoryzację czy tworzenie dokumentacji.

testing, refactoring, or creating documentation.

Wydawać by się mogło, że nikt do czystego JavaScriptu już nie wróci, a jednak coraz częściej spotkać się można z głosami,

It might seem that no one will return to pure JavaScript anymore, yet increasingly one can encounter voices,

że duże projekty porzucają TypeScript.

that large projects are abandoning TypeScript.

Wojtku, jak myślisz, dlaczego tak się dzieje?

Wojtek, what do you think, why is this happening?

Tak, jest to ciekawa sprawa na tłuszu, ale myślę, że jestem w stanie sobie wyobrazić, że w momencie, kiedy mamy taki ogromny projekt,

Yes, it is an interesting issue regarding the fat, but I think I can imagine that at the moment when we have such a huge project,

ten TypeScript zaczyna sprawiać coraz więcej problemów.

This TypeScript is starting to cause more and more problems.

Szczególnie, kiedy musimy zapewnić te typy użytkownikowi i ten nasz kod musi być bardzo generyczny.

Especially when we need to provide these types to the user and our code has to be very generic.

I tworzenie tych typów, które są bardzo skomplikowane, muszą robić naprawdę wiele rzeczy, może być naprawdę problematyczne i jestem w stanie sobie to wyobrazić.

And creating these types, which are very complicated, must involve doing really many things, can be really problematic, and I can imagine that.

Wiele projektów, które działają na rynku, przede wszystkim można tutaj wspomnieć o Svelte w wersji piątej czy Svelte Kitcie, porzuciło TSA na rzecz czystego JavaScriptu.

Many projects operating in the market, primarily Svelte version five and SvelteKit, have abandoned TypeScript in favor of pure JavaScript.

I wydaje się, że to porzucenie, to odejście od TypeScriptu na rzecz czystego JavaScriptu wynika przede wszystkim z tego, że są to bardziej biblioteki niż aplikacje docelowe, które są używane przez wiele różnych podmiotów.

And it seems that this abandonment, this shift from TypeScript to pure JavaScript is primarily due to the fact that these are more libraries than end applications that are used by many different entities.

I tutaj zamiennikiem dla takiego typowania w Svelte czy w Svelte Kitcie prawdopodobnie będzie JSDocs, który pozwoli Wam wygenerować typy na podstawie swoich struktur, swojego kodu.

And here, a substitute for such typing in Svelte or Svelte Kit will probably be JSDocs, which will allow you to generate types based on your structures and your code.

No i tutaj to podejście, w zasadzie wydaje mi się, że to odejście od TypeScriptu ma tutaj, w zasadzie ma tutaj swoją wartość.

Well, and here this approach, basically it seems to me that this departure from TypeScript has its value here.

Kod, który dostarczamy będzie miał mniej tych kroków do wykonania, będzie bardziej, można powiedzieć, bardziej generyczny, stanie się łatwiejszy do zaimplementowania w aplikacji.

The code we provide will have fewer steps to complete, it will be more, one could say, more generic, and will become easier to implement in the application.

Na pewno miałeś takie doświadczenia, gdzie musiałeś zaimplementować jakąś bibliotekę, jej typy.

You must have had experiences where you had to implement some library and its types.

Były na tyle rozbudowane i na tyle chaotyczne, że ciężko było znaleźć po prostu najlepszą drogę do tego, aby wprowadzić odpowiednie typy do swojej aplikacji, uwzględniając to, co zostało napisane w danej bibliotece.

They were so elaborate and so chaotic that it was difficult to simply find the best way to introduce the appropriate types into your application, taking into account what was written in that library.

Zdecydowanie. Poza tym szczerze, powiem Ci Mateuszu, że troszkę przeraża mnie to miejsce usunięcia TypeScriptu z takiej biblioteki, ale ogólnie usunięcie, jak myślę sobie o swoich projektach.

Definitely. Besides that, to be honest, I will tell you, Mateusz, that the removal of TypeScript from such a library frightens me a bit, but generally, the removal, when I think about my projects.

I w momencie, kiedy miałbym się pozbyć tego TypeScripta, troszkę przeraża mnie to myśl, jednak jest on takim miłym, zapewnia taką miłą, bezpieczną przestrzeń i bardzo pomaga, wydaje mi się, w pisaniu tego kodu.

And at the moment when I would have to get rid of this TypeScript, the thought scares me a bit, however, it is such a nice tool, providing such a pleasant, safe space and I think it really helps in writing this code.

Szczególnie w momencie, kiedy nie jestem to tylko ja, osobą, która tworzy ten kod, ale jest to wiele osób, która tworzy ten kod.

Especially at the moment when I am not the only one, the person who creates this code, but there are many people who create this code.

Więc jest to zdecydowanie ciekawy ruch.

So it is definitely an interesting move.

Ze strony tych bibliotek.

From the side of these libraries.

Poza tym jestem ciekawy Twojego zdania w kontekście właśnie tych JS-Docs.

Besides that, I'm curious about your opinion regarding these JS-Docs.

Myślisz, że one będą w stanie zapewnić taką samą pewność tym bibliotekom, jak zapewnią TypeScript?

Do you think they will be able to provide the same level of certainty to those libraries as TypeScript will?

Z tego co wiem, JS-Docs można, tak jak powiedziałem, łatwo przerobić na typowanie na pliki .d, .ts,

As far as I know, JS-Docs can, as I said, easily be converted to typing for .d, .ts files.

gdzie pozwalają nam wspierać już TypeScript jako taki, więc te typy, które byśmy sobie napisali w TypeScriptie, będzie można łatwo wygenerować z JS-Docsa.

where we are allowed to support TypeScript as such, so the types that we would write in TypeScript can be easily generated from JS-Doc.

JS-Docs ma tą dużą zaletę, że to jest nadal Javascript, więc nie ma tutaj żadnego dodatkowego narzutu w postaci TypeScriptu, na przykład, czy jakiegokolwiek innego języka.

JS-Docs has the great advantage that it is still Javascript, so there is no additional overhead in the form of TypeScript, for example, or any other language.

Więc można tu powiedzieć śmiało, że pod tym względem są na pewno wartościowe.

So it can be said confidently that in this respect they are definitely valuable.

Dużo naszych id już wspiera JS-Docs na tyle, że jest w stanie wnioskować, jaki powinien być typ przy danej zmiennej, czy w danym kodzie.

Many of our IDs already support JS-Docs to the extent that they can infer what the type of a given variable should be in certain code.

Myślę, że takie narzędzia jak Copilot, czy inne rozwiązania AI-owe już też mają to wsparcie i też są w stanie nam dosyć fajnie to ograć i korzystać z tych JS-Docsów, które nam to opisują.

I think that tools like Copilot or other AI solutions already have this support and are also able to handle it quite well and utilize the JS-Docs that describe it for us.

Mi osobiście kod napisany w JS-Docsach kojarzy się ze...

Personally, the code written in JS Docs reminds me of...

Może to głupie porównanie, ale kojarzy mi się ze starym sposobem dokumentowania klas, czy funkcji, czy metod w klasach w PHP.

It may be a silly comparison, but it reminds me of the old way of documenting classes, functions, or methods in classes in PHP.

To samo. Może nie w PHP, ale w JS-ie jak najbardziej.

The same. Maybe not in PHP, but definitely in JS.

Moja przygoda z programowaniem rozpoczęła się od PHP, więc gdzieś tam rzeczywiście pierwszy backendowy kod, który widziałem, był właśnie tak opisany, udokumentowany.

My journey with programming started with PHP, so somewhere along the way, the first backend code I saw was indeed described and documented like that.

I te JS-Docs dokładnie mi to przypominają.

And the JS-Docs remind me of that exactly.

Jestem w ogóle ciekawy.

I am curious at all.

Bo dla mnie właśnie tak jak wspominasz, czy tak jak też wskazuje nazwa, to są JS-Docsy, czyli coś do dokumentacji.

Because for me, just as you mention, or as the name also suggests, these are JS-Docsy, which means something for documentation.

I nie wiem jakie ty masz doświadczenie na dłuższym ogólnym z dokumentacją, ale dla mnie jest to zawsze coś, szczególnie jeśli chodzi o coś, co jest gdzieś przy kodzie.

And I don't know what experience you have with documentation in the long run, but for me, it is always something, especially when it comes to something that is somewhere near the code.

Co jest kolejną rzeczą, którą trzeba utrzymywać.

What is the next thing that needs to be maintained?

I jakoś ta zależność pomiędzy tą dokumentacją właśnie obok tego kodu opisujący te nasze funkcje, klasy, metody, cokolwiek.

And somehow this dependency between the documentation right next to this code describing our functions, classes, methods, whatever.

Jest znacznie mniej związana niż jest TypeScript.

It is much less tied than TypeScript is.

Czyli co chcę powiedzieć, że te typy, które musimy utrzymywać w JS-Docsach, jest to dla mnie zdecydowanie mniej naturalne niż utrzymywanie ich w TypeScript.

So what I want to say is that the types we need to maintain in JS Docs are definitely less natural for me than maintaining them in TypeScript.

Zgodzić się muszę, ponieważ sam pamiętam czasy, kiedy się modyfikowały jakąś funkcję i akurat tego fragmentu jakoś o dziwo zapominało się aktualizować.

I have to agree, because I remember the times when some function was modified and somehow that part was surprisingly forgotten to be updated.

Dokładnie.

Exactly.

W TypeScriptie rzeczywiście mamy, możemy traktować kod TypeScriptowy jako swoistą dokumentację.

In TypeScript, we can indeed treat TypeScript code as a kind of documentation.

Jakby to jest naturalne.

As if it is natural.

Tak, piszesz kod i automatycznie tworzy się dokumentacja do tego kodu.

Yes, you write code and documentation for that code is automatically generated.

Więc pod tym względem TypeScript na pewno ma dużo większą wartość niż wszelkie narzędzia do tworzenia dokumentacji.

So in this regard, TypeScript definitely has much greater value than any documentation tools.

Zresztą jakbyśmy tworzyli dokumentację w Markdownie do tego, co tworzymy, to prawdopodobnie nikt by tego nie pisał.

Besides, if we were to create documentation in Markdown for what we are developing, probably no one would write it.

Dokładnie.

Exactly.

Poza tym w ogóle ciekawe, jak się teraz nad tym zastanawiam, ciekawa jest właśnie ta zależność, prawda?

Besides that, it's quite interesting, as I'm thinking about it now, it's precisely this dependency that is intriguing, right?

Pomiędzy tym, że jednak TypeScript traktujemy jako kod, jako coś, co jest nierozłączną częścią tego, co piszemy,

Between the fact that we treat TypeScript as code, as something that is an inseparable part of what we write,

a jednak te JS-Docs wydają mi się być trochę z boku, są jako taka rzecz dodatkowa.

However, those JS-Docs seem a bit off to me; they seem like an additional thing.

Więc jestem ciekawy, jak to będzie wyglądać utrzymanie takiej biblioteki w momencie, kiedy musisz uważać jeszcze na tą rzecz,

So I'm curious what maintaining such a library will look like at the moment when you also have to watch out for this thing.

która przynajmniej dla mnie, nie wiem, jak dla ciebie i dla pozostałych programistów, jest taka trochę, wydaje się, spokój,

which at least for me, I don't know about you and the other programmers, seems a bit like, there is a calmness,

jako taką rzecz, jako taka rzecz dodatkowa bardziej.

as such a thing, as such an additional thing more.

Tylko tutaj też chyba należałoby zwrócić uwagę na fakt, że JavaScript jako język jest językiem dynamicznie typowanym,

Only here should we also point out the fact that JavaScript, as a language, is dynamically typed.

a zatem daje bardzo dużo swobody programiście, pozwala na wiele rzeczy, na które języki statycznie, silnie typowane,

and thus gives a lot of freedom to the programmer, allowing for many things that statically, strongly typed languages do not.

nie pozwolą.

they won't allow.

I teraz z perspektywy klasycznego front-end dewelopera, który wyszedł z JavaScriptu i to był jego pierwszy język,

And now from the perspective of a classic front-end developer who started with JavaScript and that was his first language,

to jest bardzo komfortowa sytuacja.

This is a very comfortable situation.

Możemy wprowadzać, co chcemy, pisać jak chcemy i w zasadzie JavaScript nam na to pozwoli.

We can introduce whatever we want, write however we want, and basically JavaScript allows us to do that.

Skoryguje nasze błędy, a jeżeli jakieś już popełnimy takie krytyczne, no to wyrzuci nam jakiś reference error i na tym się w zasadzie skończy.

It will correct our mistakes, and if we make any critical ones, it will throw a reference error and that will basically be the end of it.

Trudniej będzie to zrobić.

It will be harder to do.

Możemy to zdebugować oczywiście.

We can debug this, of course.

Natomiast z perspektywy wprowadzenia języka silnie typowanego musimy mieć, że tak powiem, większy,

On the other hand, from the perspective of introducing a strongly typed language, we need to have, so to speak, a greater...

musimy zwrócić większą uwagę na to, co piszemy.

We need to pay more attention to what we write.

Musimy bardziej się skupić na tym, co my chcemy napisać, ponieważ raz zadeklarowany typ już taki z nami zostanie.

We need to focus more on what we want to write because once a declared type is set, it will stay with us.

Poprzez chociażby mechanizmy w TypeScriptzie, jak inferencja typów,

Through mechanisms in TypeScript, such as type inference,

nie jesteśmy w stanie nadpisać.

we are unable to overwrite.

Nie możemy nadpisać typu, który raz został zadeklarowany i tutaj wydaje mi się, że JSDocs będą idealnym rozwiązaniem dla osoby,

We cannot overwrite a type that has been declared once, and here I think JSDocs will be the ideal solution for someone who,

która właśnie wychodzi z tego naturalnego świata front-endu, tego pierwotnego świata front-endu, jakim był JavaScript w wersji takiej dynamicznej.

which is just emerging from that natural world of front-end, that primal world of front-end, which was JavaScript in its dynamic version.

W zasadzie nadal jest w wersji dynamicznej, gdzie możemy sobie dodać coś, co nam podpowie, jakie były zamierzenia autora tego kodu.

Basically, it is still in a dynamic version, where we can add something that suggests what the author's intentions for this code were.

Niekoniecznie, że tak to musi zostać, ale cel był bardzo prosty i ten cel opisujemy w postaci dokumentacji.

Not necessarily that it has to remain that way, but the goal was very simple and we describe this goal in the form of documentation.

W TypeScriptzie nie ma już tej elastyczności.

In TypeScript, there is no longer this flexibility.

W TypeScriptzie mamy ten, że tak powiem, taki strict mode, gdzie nie jesteśmy w stanie wyjść poza pewne ramy.

In TypeScript, we have this, so to speak, strict mode, where we are unable to go beyond certain boundaries.

Oczywiście mamy eny, ale to już jest trochę inna kwestia.

Of course we have envy, but that's a slightly different matter.

To prawda.

It's true.

Zdecydowanie jest to ciekawy model.

It is definitely an interesting model.

Jestem ciekawy.

I am curious.

Jak utrzymywanie tego typu bibliotek rozwinie się dalej.

How the maintenance of this type of library will develop further.

Nie wiem, czy miałeś okazję w ogóle pisać właśnie tego typu kody, gdzie JSDocs'y traktujesz jako TypeScript

I don't know if you've had the chance to write this type of code at all, where you treat JSDocs as TypeScript.

i ten Twój kod wynikowy będzie TypeScriptem, czy też będą oprócz niego zapomniane jeszcze typy,

and will your output code be TypeScript, or will there also be forgotten types besides it?

czyli piszemy JS i mamy te typy obok.

So we write JS and have those types beside.

Domyślam się, że będzie to nie nadawe zwanie,

I suspect that this will not be appropriate to call.

żeby to wszystko działało tak, jak trzeba.

for everything to work as it should.

Chociaż, tak jak mówię, nie miałem jeszcze okazji z takim podejściem pracować.

Although, as I said, I haven't had the opportunity to work with such an approach yet.

Też widziałem kod bibliotek, które korzystają z TypeScriptu

I also saw the code of libraries that use TypeScript.

i wiem, jak ciężkie potrafią być te generyczne typy, które są potrzebne do tego, żeby ta biblioteka działała dobrze.

And I know how difficult these generic types can be that are necessary for this library to work well.

Można sobie rzucić okiem na taką bibliotekę typu ZOT,

You can take a look at a library of the ZOT type.

i typy, które działają tam pod maską, są naprawdę skomplikowane.

The types that operate there under the hood are really complicated.

I ten język i to, co jest napisane dookoła samego kodu,

And this language and what is written around the code itself,

co czasami jest dysproporcjonalnie większe,

what is sometimes disproportionately larger,

same te typy i to, żeby one działały dobrze,

the same types and to have them work well,

jest aż zaskakująco dysproporcjonalnie większe

is surprisingly disproportionately larger

w porównaniu do samej logiki biznesowej.

compared to the business logic itself.

Problem nie dotyczy tylko ZOT-a w zasadzie typów,

The problem does not only concern the ZOT in terms of types.

większa biblioteka, która jest udostępniana na zewnątrz,

a larger library that is made available to the outside,

ma dokładnie ten sam problem.

he has exactly the same problem.

Niejednokrotnie jak spojrzysz w kod dokumentacji,

Many times when you look at the documentation code,

czyli kod typów, który w zasadzie widzisz pierwszy,

so the type code, which you basically see first,

kiedy sobie wejdziesz do Node Modules,

when you go into Node Modules,

na pierwszy rzut oka wydaje się to mega chaotyczne,

At first glance, it seems very chaotic.

niezrozumiałe, skomplikowane, zwał jak zwał,

incomprehensible, complicated, call it what you will,

i trzeba się naprawdę skupić, żeby

and you really have to focus to

zrozumieć, co autor miał na myśli.

to understand what the author meant.

Więc wydaje mi się, że w tym momencie to, co zrobiło Svelte w wersji piątej

So it seems to me that at this point what Svelte has done in version five

czy SvelteKit, odchodząc od TypeScripta, ale jednocześnie nie zamykając

Does SvelteKit, while moving away from TypeScript, also not close off?

tej furtki, to jest całkiem fajny ruch.

That gate is quite a nice move.

I pomimo wszystko należy to uszanować. Oni nie powiedzieli, że

And despite everything, it should be respected. They did not say that...

nie doceniają silnego typowania.

they do not appreciate strong betting.

Oni wręcz doceniają w swoich aplikacjach.

They even appreciate it in their applications.

Natomiast w przypadku samej biblioteki

However, in the case of the library itself

potwierdzają, że większą

confirm that greater

użyteczność dla użytkownika będzie miało

it will have usability for the user

stworzenie do tego JS docsów

creation of JS docs for this

i napisanie tego w JS-ie

and writing this in JS

czystym, niż męczenie się,

cleaner than struggling,

to tak trzeba nazwać, kombinowanie z TypeScriptem na poziomie biblioteki.

It needs to be called that, experimenting with TypeScript at the library level.

W samej aplikacji, którą my już finalnie tworzymy

In the very application that we are ultimately creating.

z wykorzystaniem tych bibliotek, prawdopodobnie typy będą najlepszym rozwiązaniem.

Using these libraries, types will probably be the best solution.

Więc TypeScript, czy jakikolwiek inny język

So TypeScript or any other language.

silnie typowany, w tym wypadku zdecydowanie nam pomoże.

strongly indicated, in this case it will definitely help us.

Jestem ciekawy Twojego zdania,

I am curious about your opinion.

czy Mateuszu, w tym kontekście, że wiem, że Svelte jest takim

Mateusz, in this context, I know that Svelte is such a...

dość specyficznym frameworkiem frontendowym,

a fairly specific frontend framework,

z powiedzmy takim trochę huliganem, można go nawet nazwać,

with let's say a bit of a hooligan, you could even call him that,

który stwierdził, że ma trochę inne podejście do tego,

who stated that he has a slightly different approach to this,

jak podchodzimy do kodu.

how we approach the code.

Przypomina oczywiście to, co znamy z naszych środowisk frontendowych,

This of course resembles what we know from our frontend environments,

ale jednak te pliki w większości wypadków kończą się .svelte

but still these files mostly end with .svelte

i to nie jest to samo, co Angular, React, nawet Vue.

And it's not the same as Angular, React, or even Vue.

I czy uważasz, że taki ruch właśnie odejścia od TypeScriptu

And do you think that such a move of stepping away from TypeScript is justified?

jest możliwy, czy też widzisz go,

is it possible, or do you see it,

czy też taka decyzja będzie podejmowana

Will such a decision also be made?

przez biblioteki, które bardziej kojarzysz sobie z JavaScriptem

through libraries that you associate more with JavaScript

i TypeScriptem? Mówię tutaj o takich bibliotekach typu

and TypeScript? I'm talking here about libraries like

Next, Remix, React Query,

Next, Remix, React Query,

coś podobnego typu Zot, o którym wspominaliśmy.

something similar to Zot that we mentioned.

Wydaje mi się, że w kontekście tego,

I think that in the context of this,

jak rozwija się JavaScript,

how JavaScript is evolving,

warto docenić go jako język i to, co zaproponował

It's worth appreciating it as a language and what it has offered.

tutaj chociażby zespół Svelte, czyli to odejście od

here, for example, the Svelte team, which is a departure from

TypeScriptu na rzecz

TypeScript in favor of

czystego JS-a i JS-docsów, to jest ciekawy

pure JS and JS-docs, it is interesting

kierunek rozwoju. Nie powiedziałbym, że wszyscy w tym kierunku pójdą, bo to na pewno

direction of development. I wouldn't say that everyone will go in that direction, because that's for sure.

tak to nie będzie wyglądało. Widać to chociażby po

this will not be how it looks. You can see this, for example, from

tym, że TypeScript nadal jest

that TypeScript is still

tym głównym językiem, w którym tworzone są

the main language in which they are created

biblioteki różnego rodzaju i aplikacje.

various types of libraries and applications.

I tak zostanie prawdopodobnie, chyba że jedna propozycja

And it will probably stay that way, unless one proposal.

dotycząca wprowadzenia typów do JS-a zostanie

regarding the introduction of types to JS will be

ostatecznie opublikowana i wejdzie z którymś kolejnym standardem ECMA.

Ultimately, it will be published and will be included with one of the next ECMA standards.

No ale do tego czasu myślę, że

Well, until then I think that

TypeScript nadal będzie bardzo popularny i

TypeScript will still be very popular and

to, co się wydarzyło w 2015,

what happened in 2015,

2014 roku, kiedy, w 2015 w zasadzie, kiedy Angular

In 2014, when, in 2015 basically, when Angular

wprowadzał TypeScript na rynek,

introduced TypeScript to the market,

inaczej, wypromowywał TypeScript na rynku

Otherwise, he promoted TypeScript in the market.

na rynku front-endowym, no to od tamtego

In the front-end market, well, since then

czasu sukcesywnie TypeScript zyskuje. Microsoft jako

TypeScript is gradually gaining success. Microsoft as

ogromna organizacja nie miał takiej siły przebicia, żeby go tak wypromować.

The huge organization did not have the power to promote him like that.

Ale zwróć uwagę, że Google ze swoim Angularem wchodząc

But note that Google with its Angular is entering.

w TypeScript wymusił na użytkownikach wprowadzenie.

in TypeScript forced users to provide input.

W zasadzie stał się takim przodownikiem.

Basically, he has become a pioneer.

Pokazywał, jakie są cechy, zalety TypeScriptu i dzisiaj

He showed what the features and advantages of TypeScript are today.

pomimo wielu jego wad, o których sobie wspomnieliśmy,

despite many of his faults that we mentioned,

czyli tej chaotycznej dokumentacji, łatwości

that chaotic documentation, ease

w budowaniu bałaganu, ale też wielu zalet.

in creating chaos, but also many advantages.

Jednak te zalety są bardziej wartościowe i bardziej widoczne

However, these advantages are more valuable and more noticeable.

niż te wady, z którymi możemy się spotkać.

than the defects we may encounter.

I takie, wydaje mi się, że takie frameworki jak Next

And it seems to me that frameworks like Next

czy właśnie biblioteki jak Zot czy jakakolwiek inna

Are libraries like Zot or any other just like that?

będą dalej szły w kierunku rozwijania swojego

they will continue to move towards developing their

kodu z TypeScriptem, bo pomimo wszystko

code with TypeScript, because despite everything

nawet dla deweloperów będzie to łatwiejsze.

Even for developers, it will be easier.

Będzie to przyjemniejsze. Sam wiesz, jak się pisze

It will be more pleasant. You know how it is written.

z czystym JS-em, a jak się pisze z TypeScriptem.

with pure JS, and how it’s written with TypeScript.

Obaj zaczynaliśmy od czystego JS-a. Pierwsze projekty,

We both started with pure JS. The first projects,

które robiliśmy były związane z czystym JS-em.

the ones we did were related to pure JS.

Dopiero po czasie, zresztą obaj mamy takie doświadczenie,

Only after some time, besides we both have such experience,

że weszliśmy w Angulara jako pierwszy projekt z TypeScriptem

that we entered Angular as our first project with TypeScript

i to było coś nowego. To było coś, można powiedzieć, świeżego,

And it was something new. It was something, one could say, fresh.

które trochę irytowało, ale jednak pomimo wszystko po jakimś czasie

which was a bit irritating, but still after some time

zaczęliśmy doceniać zalety. I nawet przychodząc później

We started to appreciate the advantages. And even coming later.

na Reacta, gdzie pierwszym moim językiem w Reactie był JavaScript

on React, where my first language in React was JavaScript

i dopiero po chwili dodało się do tego TypeScript,

and only after a moment, TypeScript was added to that,

okazywało się, wow, ten TypeScript jednak zmienia.

It turned out, wow, this TypeScript is indeed changing things.

Jednak wprowadza pewne ułatwienia w pisaniu.

However, it introduces certain conveniences in writing.

I pomimo tego, że wydaje się dla klasycznego front-end developera

And despite the fact that it seems for a classic front-end developer

czymś nienaturalnym może,

it might be something unnatural,

to jednak po pewnym czasie każdy albo większość

However, after some time, everyone or the majority...

z nas docenia go.

Out of us, he is appreciated.

To prawda. Myślę, że już na ten moment jest to taki standard,

It's true. I think that at this point it's already a standard.

od którego ciężko się oderwać. Już szczerze powiedziawszy

from which it's hard to break away. To be honest, already

ciężko sobie było wyrazić pisanie aplikacji jakiejkolwiek

It was difficult to express writing any application.

bez TypeScriptu. Ale pamiętam taki czas, kiedy

without TypeScript. But I remember a time when

ten TypeScript przerażał mnie. Może nie przerażał,

this TypeScript scared me. Maybe it didn't scare me,

ale zdecydowanie myślałem, że jest

but I definitely thought it was

problematyczny i bardzo spowalnia

problematic and very slow down

proces tworzenia. Nie wiem, czy ty też miałeś takie

the process of creation. I don't know if you had the same.

doświadczenie, ale ja na samym początku byłem wręcz przerażony.

Experience, but at the very beginning I was quite terrified.

Tak jak wspominałeś, ile dodatkowego kodu trzeba utworzyć.

As you mentioned, how much additional code needs to be created?

Ale potem, gdy zrozumie się te plusy, które daje ten TypeScript

But then, when you understand the advantages that TypeScript offers.

i nauczy się go trochę pisać,

and will learn to write it a little bit.

rozumieć i przejdzie się przez tą pierwszą barierę, która

to understand and will get through that first barrier, which

wcale nie jest taka wysoka, to naprawdę

she's not that tall, really

wszystko zmienia się tylko na pozytywne.

Everything is changing only for the better.

Z mojej perspektywy podam Ci przykład szkoleń,

From my perspective, I will give you an example of training,

które prowadziłem dla Java Developerów.

which I conducted for Java Developers.

Zazwyczaj takie szkolenia odbywają się w ten sposób. To są najczęściej osoby,

Usually, such training sessions take place in this way. These are most often individuals,

które mają jakieś podstawy frontendu w postaci HTML, CSS,

which have some frontend foundations in the form of HTML, CSS,

JavaScript. Zaczynamy od wprowadzenia na przykład Reacta

JavaScript. We start with an introduction to, for example, React.

albo jakiegokolwiek innego frameworka, fragmentu

or any other framework, part

wiedzy frontendowej z wykorzystaniem czystego JS.

frontend knowledge using vanilla JS.

I najczęściej po jednym, po dwóch dniach wprowadzamy do tego

And most often, after one or two days, we introduce it into this.

TypeScript. Najczęściej wynika to z prośby

TypeScript. It often results from a request.

użytkowników czy też studentów, którzy chcą się czegoś nauczyć.

users or students who want to learn something.

Więc pokazuję ten sam kod w JS

So I'm showing the same code in JS.

i pokazuję ten sam kod w TypeScript. Dla osób, tak jak wspomniałem,

and I am showing the same code in TypeScript. For people, as I mentioned,

które mają przede wszystkim background

which have primarily a background

javowy czy też backendowy z silnie typowanymi językami

Java-based or backend with strongly typed languages

jest to tak naturalne

it is so natural

pisanie typów, że

writing types, that

w zasadzie dochodzą do wniosku, że oni nie chcą się uczyć tego klasycznego

They basically come to the conclusion that they do not want to learn the classical.

JS-a, bo ten TypeScript da im o wiele więcej

JS, because this TypeScript will give them a lot more.

wartości, o wiele jest dla nich bardziej naturalny

values, it is much more natural for them

w tworzeniu, w pisaniu niż czysty JS.

in creation, in writing than pure JS.

I to chyba też jest kierunek, w którym

And this is probably also a direction in which

poszedł frontend, jakby nie patrzeć. Zwróć uwagę,

The frontend has gone, no matter how you look at it. Pay attention,

że my w Javascriptie,

that we in JavaScript,

tworząc kod w Javascriptie, od wielu lat byliśmy trochę

While creating code in JavaScript, for many years we have been a bit

inaczej traktowani. Często się mówiło, że a tam frontend

treated differently. It was often said, "Oh, that's just frontend."

to nie programiści, a ten Javascript to tam do robienia

It's not the programmers, but that JavaScript is just for doing there.

animacji, a tam, żeby tam się kręcił jakiś loaderek

animation, and there, so that some loader is spinning there

to ten Javascript spokojnie wystarczy. Te role dzisiaj

That ten Javascript is more than enough. These roles today.

przejął CSS, tak jak być powinno.

He took over the CSS, as it should be.

Wprowadzając wiele różnych funkcjonalności,

Introducing many different functionalities,

funkcji, sposobu obliczeń, takich animacji,

function, method of calculations, such animations,

możemy tworzyć te keyframesy

we can create these keyframes

i wiele innych elementów, na które CSS

and many other elements that CSS

nam pozwala. A Javascript stał się językiem, który

allows us. And JavaScript has become the language that

służy nam do opisania logiki biznesowej.

It serves us to describe the business logic.

W większości przypadków. Tak jak to się

In most cases. Just as it is.

dzieje na językach backendowych. No i teraz z perspektywy

stories in backend languages. And now from a perspective

takiego

such

wprowadzenia TypeScriptu, czy też zmian w Javascriptie

the introduction of TypeScript, as well as changes in JavaScript

na przestrzeni lat, Javascript zmierza w kierunku właśnie

Over the years, JavaScript is heading towards exactly that.

rozwijania się jako, i też udowadniania całemu światu, że

developing as well as proving to the whole world that

no sorry, ale my jesteśmy, Javascript jest pełnoprawnym językiem

No, sorry, but we are, Javascript is a full-fledged language.

programowania. I w nim też można tworzyć rozsądnie.

programming. And it is also possible to create sensibly in it.

Nie tylko chaotycznie, nie tylko dynamicznie

Not only chaotically, not only dynamically.

w cudzysłowiu, ale tworzyć narzędzia, które dają Ci

"in quotation marks, but to create tools that give you"

poczucie tego, że stworzyłeś coś stabilnego.

the feeling that you have created something stable.

TypeScript przede wszystkim, poprzez to właśnie,

TypeScript primarily, through this very thing,

że dodaje to silne typowanie, ale też daje wiele różnych

that it adds strong typing, but also provides many different

funkcjonalności, takie właśnie jak np. typy generyczne,

functionalities, such as generics,

no to pozwala nam właśnie, czy guardy właśnie,

Well, it allows us just, or rather, the guards just,

pozwala nam właśnie na

allows us to

bardziej stabilne i wyważone tworzenie tych aplikacji. Można

more stable and balanced creation of these applications. One can

powiedzieć, że jest bardziej dedykowany dla dojrzałych

to say that it is more dedicated to adults

projektów, które mają być stabilne w długim okresie

projects that are to be stable in the long term

czasu. No tak, albo nad którym

time. Well, either on which

pracuje wiele osób. Albo nad którymi pracuje wiele osób. Chociażby problem

Many people are working. Or on which many people are working. For example, the problem.

refaktoryzacji. To prawda. Wyobrażasz sobie taką sytuację,

refactoring. That's true. Can you imagine such a situation,

że coś zmieniasz, instalujesz nową bibliotekę, albo

that you are changing something, installing a new library, or

zmieniasz jakiś typ

Are you changing some kind of type?

projekt. Projekt jest napisany wczesnym JSie, po prostu jest cisza i musisz

project. The project is written in early JS, there is just silence and you have to

teraz się przeklikiwać przez pół aplikacji, żeby znaleźć to miejsce,

now you have to click through half the app to find that place,

że o, okej, to tam w tym konkretnym popatku to nie działa.

That, oh, okay, it doesn't work in that specific case.

A wyobraź sobie teraz, że to jest aplikacja reaktywna.

And now imagine that this is a reactive application.

No tak, no. Która

Well, which one?

w zasadzie wiele rzeczy ma ukrytych i nie masz jasno

Basically, many things are hidden and you don't have clarity.

napisane, co się dzieje. Po prostu dzieje się magia.

written, what's happening. It's just magic happening.

I jest logika rozproszona po całej aplikacji.

And there is logic distributed throughout the entire application.

Tak jak to się dzieje w aplikacjach frontendowych, komponentowych. Bez typescriptu

Just like it happens in frontend, component-based applications. Without TypeScript.

cholernie trudno jest tym zarządzać.

It's damn hard to manage this.

To prawda. I to w sumie, jak tak teraz o tym rozmawiamy,

It's true. And actually, now that we're talking about it,

to jakby implementacja tego typescripta

it's like an implementation of this typescript

w Angularze, w ujce rozmawialiśmy, wydaje się być

In Angular, in the context we discussed, it seems to be.

naturalnym ruchem, prawda? Po prostu nie wyobrażam sobie,

a natural movement, right? I just can't imagine,

co się dzieje, szczególnie gdy chcemy, żeby nasz framework był traktowany poważnie

What is happening, especially when we want our framework to be taken seriously?

i chcemy, żeby na jego podstawie były utworzone jakieś

and we want some to be created based on it

ogromne aplikacje, to w momencie,

huge applications, at the moment,

kiedy wyobrażamy sobie tą rzeczywistość bez typescriptu,

when we imagine this reality without TypeScript,

zdecydowanie wygląda ona

she definitely looks

średnio. Też wydaje mi się, że

average. I also think that

Angular czy też Google doskonale wiedział, co robi, wprowadzając typescript

Angular or Google knew exactly what they were doing by introducing TypeScript.

do swojego frameworka.

to your framework.

Wydaje mi się, że wprowadzenie typescriptu dało im tą gwarancję,

I think that the introduction of TypeScript gave them that assurance,

że ludzie będą to tworzyli w taki sposób, w jaki oni chcieliby,

that people will create it in the way they would like.

żeby to było tworzone. Sama architektura tego rozwiązania

so that it could be created. The architecture of this solution itself

już sporo narzuciła, ale typescript też tak naprawdę

She has already imposed quite a bit, but TypeScript has really done the same.

to zabetonował.

He/She/It concreted that.

Spowodował, że trudno, bardzo trudno

It made it difficult, very difficult.

jest odejść od tego zaproponowanego sposobu pisania

It is to move away from this proposed way of writing.

przez developerów Google'a.

by Google's developers.

Mhm, dokładnie.

Mhm, exactly.

Okej, ale tutaj też warto wspomnieć o tym, co się zmienia,

Okay, but it's also worth mentioning what is changing here.

bo typescript jest dla nas w tym momencie standardem,

because TypeScript is currently the standard for us,

ale Microsoft, który

but Microsoft, which

tutaj też powiedzmy to jest twórcą tego

Here, let's say this is the creator of this.

standardu dla JavaScriptu, w 2023 roku, w marcu

standard for JavaScript, in 2023, in March

wysunął ECMAScript Proposal,

he put forward an ECMAScript Proposal,

gdzie zaproponował wprowadzenie silnego typowania

where he proposed introducing strong typing

do JavaScriptu, który składniowo

to JavaScript, which syntactically

dość mocno przypomina to, co się dzieje w typeskrypcie,

it quite strongly resembles what happens in TypeScript,

więc mamy podobną składnię do deklarowania typów,

so we have a similar syntax for declaring types,

mamy podobne nowe typy,

we have similar new types,

tak np. mamy wprowadzenie tupli,

for example, we have the introduction of tuples,

pewnych rzeczy nie wprowadzał,

he did not introduce certain things,

nie wprowadzał ten standard,

he did not introduce this standard,

ale można śmiało powiedzieć, że on

but one can confidently say that he

faworyzuje typescript.

favors TypeScript.

Natomiast prawie wszystkie propozycje

However, almost all proposals

przyniosłyby też korzyści dla użytkowników

they would also bring benefits for users

innych języków silnie typowanych,

in other strongly typed languages,

nadzbiorów silnie typowanych, takich jak np. flow,

strongly typed supersets, such as flow,

który też jest obecny na rynku,

which is also present in the market,

o nim pewnie sobie za chwilkę porozmawiamy.

We'll probably talk about him in a moment.

Myślisz, że to jest dobry kierunek,

Do you think this is a good direction?

żeby JavaScript jako JavaScript stał się językiem,

so that JavaScript as JavaScript becomes a language,

może się nie stanie statycznie typowanym,

it may not become statically typed,

ale żeby wprowadził możliwość deklaracji typów

but to introduce the ability to declare types

już w swoim kodzie źródłowym?

already in your source code?

Myślę, że jest to naturalny kierunek,

I think it's a natural direction,

który widać też w innych językach programowania.

which is also visible in other programming languages.

Pierwszy przykład, o którym wiem,

The first example I know of,

przychodzi mi do głowy,

it comes to my mind,

niestety nie jestem aż tak dobrze

unfortunately I am not that well

zaznajomiony z historią,

familiar with history,

w którym jest Python,

in which there is Python,

w którym dokładnie zadziała się

in which it exactly happened

prawie identyczna sytuacja,

almost identical situation,

gdzie pojawiła się opcja typów,

where the option of types appeared,

które oczywiście nie wyglądają tak samo,

which of course do not look the same,

czy też nie będą działać w taki sam sposób,

or will they not work in the same way,

tak jak w tym proposalu,

just like in this proposal,

ale droga jest mniej więcej taka sama.

but the road is more or less the same.

Czyli mamy język dynamicznie typowany,

So we have a dynamically typed language,

w którym użytkownicy,

in which users,

coraz więcej użytkowników

more and more users

zaczyna z niego korzystać,

starts using it,

coraz więcej ludzi pracuje

more and more people are working

nad aplikacjami

above the applications

i nagle pojawia się

and suddenly it appears

to wprowadzenie tych typów,

to the introduction of these types,

które pomagają wszystkim,

that help everyone,

nie dość, że użytkownikom i konsumentom

not only that, but also to users and consumers

kodu tego Pythonowego,

this Python code,

czy ludziom, które pracują nad

to the people who work on

aplikacjami,

applications

to jeszcze dodatkowo ide,

I'm going additionally.

które muszą to wszystko gdzieś tam

which must all be somewhere out there

kompilować i wspierać

compile and support

i jest to zdecydowanie cięższe

and it is definitely heavier

w momencie, kiedy tych typów nie ma.

at the moment when those guys are not around.

Więc jak dla mnie jest to

So for me it is

naturalny kierunek JavaScriptu

natural direction of JavaScript

i myślę, że fajnie,

and I think it's nice,

że będzie to wspierane natywnie,

that it will be supported natively,

bo pozwoli to na dużo

because it will allow for a lot

dodatkowych opcji.

additional options.

Co o tym sądzisz Mateuszu?

What do you think about it, Mateusz?

Myślę, że sporo wyzwań

I think there are quite a few challenges.

przed tym

before this

przed tym proposalem.

before this proposal.

On jest w tej chwili chyba w stage one

He is probably in stage one at the moment.

z tego co kojarzę.

As far as I remember.

Natomiast dlaczego sporo wyzwań?

However, why are there quite a few challenges?

Przede wszystkim dlatego, że

First of all, because

ECMA jako organizacja

ECMA as an organization

bardzo chciałaby i dąży

she would very much like to and strives

do tego, żeby każdy nowy

to the point that every new

proposal, każda nowa

proposal, every new

funkcjonalność, która wchodzi do

functionality that comes into

JavaScriptu, miała pełną kompatybilność

JavaScript had full compatibility.

wsteczną. Żeby kod,

retro. So that the code,

który jest

which is

że tak powiem zastany

so to speak, stagnant

działał w dokładnie ten sam sposób.

it worked in exactly the same way.

Żeby zachować te stare

To preserve these old ones.

funkcjonalności i stary sposób pisania.

functionality and the old way of writing.

JavaScript przez wiele

JavaScript for many

lat

years

wprowadził bardzo dużo

introduced a lot

różnych rzeczy. I teraz dodanie

different things. And now adding

do tego typowania

to this betting

już jest utrudnione.

It is already complicated.

Mniej niemożliwe.

Less impossible.

Ale na pewno będzie to spore wyzwanie

But it will definitely be a big challenge.

i ten proposal na pewno kilka lat

And this proposal will definitely last a few years.

najbliższych jeszcze będzie się rozwijał

will continue to develop in the near future

i będzie zbierał

and will be collecting

z rynku

from the market

różnego rodzaju komentarze

various types of comments

zanim zostanie

before it gets

tak naprawdę wdrożony.

actually implemented.

Ale mam odczucie podobne do Twojego,

But I have a feeling similar to yours,

że to jest dobry kierunek.

that this is a good direction.

Dobry kierunek, ponieważ

Good direction because

zagwarantuje

I will guarantee.

użytkownikom

users

kodu, czy też

code, or

programistom

to programmers

to

to

co daje TypeScript

what does TypeScript offer

jednocześnie nie zabierając

while not taking away

im tej elastyczności JavaScriptu.

in this flexibility of JavaScript.

Bardziej mnie to zastanawia

It makes me more curious.

dlaczego Microsoft

why Microsoft

to zaproponował.

he proposed.

Ten koncept

This concept

mnie interesuje, bo to

I am interested because it's

ta propozycja wyszła od Microsoftu.

This proposal came from Microsoft.

I ta propozycja

And this proposal

jest przez

is through

Microsoft procesowana.

Microsoft processed.

Microsoft, który jak wiemy

Microsoft, which as we know

jest twórcą

is the creator

TypeScriptu.

TypeScript.

Być może

Maybe.

mają w planach

they have plans

porzucenie tego projektu, chociaż

abandoning this project, although

kto wie, może nie.

who knows, maybe not.

Nic na ten temat

Nothing on that topic.

nie znalazłem.

I didn't find it.

Myślę, że na to szansa jest mała.

I think the chances of that are small.

Szczególnie też patrzę

I particularly look as well.

na to jak prężnie rozwija się TypeScript.

how dynamically TypeScript is developing.

Teraz już jesteśmy gdzieś tam

Now we are somewhere out there.

w wersji piątej

in the fifth version

i

I

zdecydowanie porusza się to do przodu.

It definitely moves forward.

Więc

So

nie sądzę Mateuszu, żeby

I don't think, Mateusz, that...

gdzieś to było blisko.

It was somewhere close.

Ale rzeczywiście

But indeed

jest to ciekawe i niestety

it is interesting and unfortunately

nie mam dla siebie odpowiedzi dlaczego może tak być.

I don't have an answer for myself as to why it could be like this.

Nawet pomysłu.

Not even an idea.

Czy ty masz jakieś przekształcenie, podejrzenie?

Do you have any transformation, suspicion?

Ale

But

bawimy się w detektywów trochę.

We're playing detectives a little.

Nie mam, aczkolwiek

I don't have it, however.

tak jak mówię, dla mnie to jest ciekawe

As I said, it's interesting to me.

skąd się to wzięło

Where did it come from?

i dlaczego to z ich strony wyszło.

And why did it come from their side?

Microsoft zaskakuje

Microsoft surprises.

pod wieloma względami w ostatnich latach.

In many ways in recent years.

Więc zobaczymy.

So we'll see.

Może rzeczywiście

Maybe indeed.

mają jakiś fajny plan

they have some cool plan

na to jak

to how

wesprzeć społeczność

support the community

JavaScriptu i jak sprawić, żeby

JavaScript and how to make it so that

rzeczywiście ten

indeed this

język rozwijał się

the language developed

w dobrym kierunku.

in the right direction.

Szedł w dobrym kierunku, rozwijał się

He was going in the right direction, growing.

podobnie jak Python

similarly to Python

w stronę bardziej stabilnego, dojrzałego

towards a more stable, mature

rozwiązania.

solutions.

Jeszcze bardziej dojrzalszego niż jest

Even more mature than it is.

w tym momencie.

at this moment.

Mateuszu, patrzymy na

Mateusz, we are looking at

trochę w zły sposób.

a little the wrong way.

Powinniśmy zadać pytanie właśnie

We should ask the question precisely.

czy Microsoft

is Microsoft

nie jest idealną osobą do wprowadzenia

she is not the ideal person to introduce

tego propozału.

this proposal.

Skoro oni wiedzą o tym typowaniu

Since they know about this betting.

i mają najwięcej teoretyki.

And they have the most theory.

W związku z tym, że tworzyli ten typ.

Due to the fact that they created this type.

My tu doszukujemy się jakiegoś drugiego dna.

We are looking for some hidden meaning.

A może to jest po prostu

Maybe it's просто

najbardziej odpowiednia

most suitable

osoba, powiedzmy,

person, let's say,

do zrobienia tego.

to do this.

W związku z tym, że mają teoretycznie

Due to the fact that they theoretically

największe doświadczenie.

the greatest experience.

W zasadzie z tej perspektywy

Basically from this perspective

możesz mieć rację.

You might be right.

Nie ma chyba w świecie

There is probably no one in the world.

JavaScriptu podmiotu,

JavaScript of the subject,

który miałby większe doświadczenie

which would have more experience

w tworzeniu takiego

in creating such a

rozwiązania.

solutions.

No a jak już mówimy o innych językach

Well, since we're talking about other languages...

silnie typowanych, no to

strongly favored, well then

warto też powiedzieć coś o

It's also worth mentioning something about

alternatywach

alternatives

dla Typescriptu.

for Typescript.

Ja znam dwie.

I know two.

Znam Flow

I know Flow.

i słyszałem o Hegel.

And I heard about Hegel.

Miałeś przyjemność

You had the pleasure.

którymiś?

which ones?

Jak mówię Flow

How I say Flow

chyba korzystałeś przy okazji Reacta

You probably used React at some point.

z tego co...

from what...

Dokładnie tak.

Exactly so.

To jest coś co

This is something that

pewnie często spotykamy, prawda?

We probably meet often, right?

Czy też często spotkanie

Do you also meet often?

rozwiązanie do typowania propsów

solution for typing props

chociażby w Reactie.

even in React.

Ale nie miałem jakiegoś

But I didn't have any.

głębszego doświadczenia.

deeper experience.

Chociaż z tego co pamiętam

Although from what I remember

jest to coś relatywnie podobnego

it is something relatively similar

do zoda, powiedzmy.

to the zoda, let's say.

Czyli miejsca, w którym możemy sobie

So the place where we can...

za pomocą takich zwykłych obiektów

using such ordinary objects

JavaScriptowych,

JavaScript's,

gdzieś tam nałożyć te

somewhere to apply these

walidacje na ten nasz kod.

validations on our code.

Ale nie powiedziałbym, że miałem

But I wouldn't say that I had.

jakieś wspaniałe doświadczenia

some wonderful experiences

z tego typu narzędziami.

with this type of tools.

Zazwyczaj też to tarcze,

Usually, it's also the shields.

które wynikało z korzystania

that resulted from the use

z nich,

of them,

ilość dodatkowego kodu,

the amount of additional code,

specyfiki pisania tego kodu,

the specifics of writing this code,

też to jak on wyglądał

also how he looked

było raczej

it was rather

nieciekawe

uninteresting

dla mnie

for me

i wydawało mi się zazwyczaj,

And it usually seemed to me,

że to przynosi więcej dodatkowej pracy,

that it brings more extra work,

która jest w większości wypadków

which is in most cases

bezsensowna i nigdy

senseless and never

nie zobaczyłem w tych alternatywach

I didn't see in these alternatives.

niczego

nothing

specjalnego,

special

ale może to ma to już

but maybe that's what it already has

maszynne doświadczenie.

machine experience.

Porównując do TypeScriptu

Compared to TypeScript

na przykład Hegla,

for example Hegel,

to tak naprawdę

it's really

TypeScript jest

TypeScript is

takim językiem, który daje nam

such a language that gives us

nie tylko

not only

wprowadza nam typy,

introduces us to types,

ale dodaje też sporo innych rzeczy

but it also adds a lot of other things

jak na przykład nowe funkcjonalności

such as new functionalities

tworzenia klas.

class creation.

Daje nam pewien taki

It gives us a certain something.

lukier składniowy,

syntax sugar,

syntax sugar

syntax sugar

i daje nam jakieś funkcjonalności

and gives us some functionalities

dodatkowe do składni,

additional to syntax,

jak chociażby elementy zabezpieczające

such as safety elements

metody w klasach,

methods in classes,

jak private, protected

like private, protected

czy public.

Is it public?

Więc te wszystkie operatory

So all these operators

dodatkowe, które się pojawiają

additional ones that appear

to wszystko dostaniemy w pakicję z TypeScriptem.

We will get all of this in a package with TypeScript.

Natomiast Hegel

Meanwhile, Hegel

jest tylko type checker,

it's just a type checker,

który dodaje do

which adds to

JavaScriptu typy.

JavaScript types.

I

I

na tym polega jego

that is what it consists of

zadanie.

task.

Więc

So

wydaje mi się, że to są

I think they are

bardziej narzędzia dla osób, które

more tools for people who

nie potrzebują TypeScriptu

they don't need TypeScript

w takiej postaci, w jakiej

in the form in which

on jest dostarczony.

he is delivered.

Nie potrzebują tak potężnego narzędzia.

They do not need such a powerful tool.

Chcą po prostu dać

They just want to give.

coś prostego do swojego kodu.

something simple for your code.

Wiadomo,

It is known,

w dzisiejszych czasach

nowadays

TypeScript jest

TypeScript is

zintegrowany z o wiele większą

integrated with a much larger

liczbą bibliotek

the number of libraries

czy też aplikacji.

or the application.

A zatem o wiele łatwiej

And therefore much easier.

jest chociażby taką aplikację

there is at least such an application

z TypeScriptem uruchomić.

run with TypeScript.

Natomiast w momencie, kiedy mamy aplikację

On the other hand, at the moment when we have the application

czysto JSową i możemy wybrać

purely JS and we can choose

co chcemy, ale nie chcemy

what we want, but do not want

wchodzić zbyt głęboko i przebudowywać

to enter too deeply and rebuild

całej naszej apki,

the entire our app,

no to taki Hegel czy Flow pewnie

Well, it's probably something like Hegel or Flow.

się nada.

it is suitable.

I da nam to,

And it will give us that,

czego oczekujemy na samym początku.

what we expect at the very beginning.

Pytanie, czy na dalszych etapach nie będziemy chcieli

The question is whether we won't want to at later stages.

pójść w stronę TypeScriptu, no bo

to move towards TypeScript, because

jeżeli nam się spodoba to silne typowanie

if we like this strong typing

i da nam

and it will give us

sporo wartości, to

quite a lot of value, that

czy ten TypeScript nie będzie naturalnym

Isn't this TypeScript going to be natural?

następnym krokiem.

the next step.

To już jest pewnie kwestia bardziej

It's probably more a matter of

zespołu, który

the team that

musi podjąć decyzję o tym,

must make a decision about that,

w czym chce pisać, jak chce pisać,

what he wants to write in, how he wants to write,

ale też pewnie decyzja biznesowa.

but it’s probably also a business decision.

Tak, ale tu

Yes, but here

w ogóle ciekawy wątek

It's an interesting thread overall.

nasz też nam się trochę radzi,

we're also doing a bit better too,

o którym też rozmawialiśmy

about which we also talked

przy okazji Bana i

by the way Bana and

Teno,

Teno,

o którym rozmawialiśmy

that we talked about

przy okazji Bana i Teno,

by the way, Bana and Teno,

czyli łatwości wprowadzenia

which means ease of implementation

tego typu rozwiązań do istniejących

this type of solutions to existing

już projektów.

already projects.

I jeśli chodzi o TypeScript,

And when it comes to TypeScript,

to przecież też mamy jak najbardziej

We certainly have that as well.

te pomocy w kompilatorze, ale o JS,

these help in the compiler, but about JS,

i możemy nawet jeden

and we can even have one

plik mieć TypeScriptowy

to have a TypeScript file

i teoretycznie wszystko będzie działać.

And theoretically, everything will work.

Co więcej, nie musisz

Furthermore, you don't have to.

mieć żadnego pliku TypeScriptowego

have no TypeScript file

i mieć TypeScript w projekcie.

and have TypeScript in the project.

Ale to wynika z natury języka.

But it comes from the nature of the language.

To jest język, który jest

This is a language that is

kompilowany, czy też transpilowany

compiled or transpiled

do JavaScriptu ostatecznie.

to JavaScript ultimately.

Więc w zasadzie

So basically

każdy kod JavaScriptowy

every JavaScript code

będzie

will be

działał poprawnie

it worked correctly

w TypeScriptie.

in TypeScript.

To brzmi trochę jak jakiś koszmar

That sounds a bit like some kind of nightmare.

z pierwszych dni pracy.

from the first days of work.

Opowiadałem na rozmowie rekrutacyjnej,

I talked about it during the job interview,

że mają TypeScript, wchodzę do projektu,

that they have TypeScript, I am entering the project,

otwieram, test comp i wszystkie pliki

I'm opening, test comp and all files.

JSowe.

JSowe.

A co?

And what?

Tutaj jeszcze mi się tak skojarzyło,

Here, I was reminded of something.

bo są też takie narzędzia,

because there are also such tools,

takie języki silnie typowane,

such strongly typed languages,

które możemy kompilować na przykład

which we can compile for example

do JavaScriptu

to JavaScript

jak na przykład Hexa.

for example Hexa.

Więc w zasadzie

So basically

po co JavaScript czy TypeScript

What is the point of JavaScript or TypeScript?

i jak możemy sobie

and how can we manage?

wykorzystać narzędzie, język,

use a tool, language,

który będzie

which will be

dawał nam,

he was giving us,

który będzie,

which will be,

jak to jest napisane na stronie

as it is written on the page

języka Hexa,

Hexa language,

tym, czym JavaScript powinien być.

what JavaScript should be.

Więc z tej perspektywy

So from this perspective

w świecie, gdzie

in a world where

JavaScript jest głównym językiem

JavaScript is the main language.

w web dewelopmencie,

in web development,

a jednocześnie

and at the same time

mamy tak dużo

we have so much

różnych kompilatorów

different compilers

i transpilerów,

and transpilers,

wykorzystanie jakiegokolwiek

the use of any

języka silnie typowanego,

strongly typed language,

który będzie ostatecznie i tak

which will ultimately be anyway

czystym JavaScriptem

pure JavaScript

jest w zasadzie tylko i wyłącznie

is essentially only and exclusively

czystą formalnością.

a mere formality.

Z mojego doświadczenia

From my experience.

TypeScript to jest mega fajne narzędzie

TypeScript is a really cool tool.

do pracy.

to work.

Dużo ułatwia, dużo poprawia

It makes a lot easier, it improves a lot.

i daje nam

and gives us

sporo

a lot

bezpieczeń na etapie

safety at the stage

dewelopmentu, które

development, which

pozwalają

allow

nam tą pracę wrzucić

to submit this work to us

na trochę inny poziom.

to a slightly different level.

Tak jak mówiłem na samym początku,

As I mentioned at the very beginning,

poprawia nam ten developer experience

this developer experience improves for us

i ułatwia te procesy, które są

and facilitates those processes that are

trochę irytujące

a little irritating

dla programistów, jak chociażby

for programmers, such as

refaktoryzacja, tworzenie

refactoring, creation

dokumentacji, czy właśnie

documentation, or just

testowanie, pisanie testów

testing, writing tests

jednostkowych chociażby.

even individual ones.

Mhm.

Uh-huh.

Nie wiem jak u Ciebie Mateuszu,

I don't know about you, Mateusz,

ale ja mam wrażenie

but I have the impression

ze swojej pracy z TypeScriptem,

from my work with TypeScript,

które relatywnie

which is relatively

rzadko mi się zdarza przy

I rarely happen to be present.

narzędziach, czy rzeczach

tools or things

dodatkowych poza kodem

additional outside of the code

i powiedzmy, że TypeScript jest taką rzeczą,

And let's say that TypeScript is such a thing,

no bo mamy te typy i tak dalej,

because we have these types and so on,

to też o to trzeba dbać.

That also needs to be taken care of.

Nigdy nie miałem wrażenia, że to jest

I never had the impression that this is

niepotrzebne i że robię coś

unnecessary and that I am doing something

bez sensu, a jeśli miałem

nonsense, and if I had

to w jakiś super

it's super in some way

specyficznych przypadkach,

specific cases,

zawsze miałem wrażenie,

I always had the impression,

że ta wartość, którą on

that this value, which he

dodaje, mimo tego, że tej

I add, despite the fact that this.

dodatkowej, drobnej pracy, którą trzeba

additional, minor work that needs to be done

w niego włożyć, jest

to put into him, is

zdecydowanie warta tego, co

definitely worth it, what

dostaje z powrotem.

getting it back.

Z biegiem lat

As the years go by

myślę,

I think,

że masz dużo racji, ale

that you are much right, but

ja też z biegiem lat nauczyłem się, że

I too, over the years, have learned that

nie zawsze należy

not always should

dopisywać te typy.

to write these guys down.

Są takie miejsca, gdzie po prostu

There are places where simply

lepiej

better

polegać na mechanizmach wnioskowania

rely on reasoning mechanisms

TypeScriptu,

TypeScript,

gdzie to TypeScript

where is TypeScript

podejmie decyzję, jaki typ

will make a decision on what type

danej wartości jest

the given value is

wpisany, czy też powinien

registered, or should it be

być w kodzie, niż

to be in the code, than

samodzielne dopisywanie tych typów

independent addition of these types

w każdym możliwym miejscu.

in every possible place.

I to

Me too

jest coś, czego ja się nauczyłem przez ostatnie lata

There is something I have learned over the last few years.

i daje mi to takie poczucie,

and it gives me such a feeling,

że mam

that I have

możliwość

possibility

tworzenia kodu statycznie

static code generation

typowanego, ale mam też

predicted, but I also have

poczucie, że

the sense that

nie jest on niepotrzebny, bo

it is not unnecessary, because

kod nie staje się przeładowany,

the code does not become overloaded,

jeśli ja dobrze rozumiem ten TypeScript

if I understand this TypeScript correctly

i wiem, kiedy TypeScript

And I know when TypeScript.

jak zadziała, czy też jakie

how it will work, or what kind

będzie jego wnioskowanie na temat typów.

his reasoning about types will be.

W pewnych miejscach

In certain places

rzeczywiście czasami daje to

indeed sometimes it gives that

dużo, dużo możliwości

a lot, a lot of possibilities

i

i

to poczucie, o którym Ty mówiłeś,

it's the feeling that you talked about,

gdzie

where

wydawało się to niepotrzebne

it seemed unnecessary

było u mnie, ale w początkowych,

it was with me, but in the beginning,

że tak powiem,

so to speak,

dniach, etapach mojej pracy z

days, stages of my work with

TypeScriptem jako takim.

TypeScript as such.

Myślę, że to,

I think that it,

co piszczysz, już Mateusiu

What are you squeaking about, already Mateusz?

na samym początku opisywałeś,

at the very beginning, you described,

to myślę, że jest

I think it is.

właśnie idealny sposób wykorzystania

just the perfect way to utilize

TypeScripta, czyli

TypeScript, which is

zakładanie tych barier

establishing these barriers

i

i

pisanie tych typów

writing these types

tak naprawdę

actually

w jak najmniejszej ilości

in the smallest amount possible

miejsc i staranie się,

places and striving,

żeby one były tylko,

so that they are only,

żeby ten TypeScript

to make this TypeScript

działał tak naprawdę,

it actually worked,

czy też powiedzmy w tym momencie,

or let's say at this moment,

kiedy on rzeczywiście jest potrzebny

when he is really needed

i kiedy przysłowiowo możemy

And when can we proverbially...

sobie strzelić w kolano, kiedy

to shoot oneself in the knee, when

coś w tym

there is something in it

obiekcie zmiennej funkcji

object of a variable function

zostanie zwrócone, czy trafi do

will be returned or will go to

nas coś innego.

We are something different.

Zaczęliśmy od wniosku, w zasadzie od

We started with the application, basically from

precyzy, że TypeScript może

precisely, that TypeScript can

nie jest już potrzebny, ponieważ wiele

it is no longer needed because many

projektów porzuca go

the projects abandon him

na rzecz czystego JavaScriptu,

in favor of clean JavaScript,

ale chyba oboje się zgodzimy,

but I think we both can agree,

że

that

to porzucenie nie jest takie

This abandonment is not like that.

jednoznaczne, ponieważ

unequivocal, because

TypeScript jest jednym

TypeScript is one

jednak z najpopularniejszych

one of the most popular

języków front-endu,

front-end languages,

jest językiem, który daje sporo

it is a language that gives a lot

wartości i ułatwia wiele rzeczy,

values and makes many things easier,

a te najbardziej

and the most

newralgiczne elementy, takie

critical elements, such

właśnie jak tworzenie dokumentacji

just like creating documentation

w bibliotekach, mogą być

in libraries, they can be

rozwiązywane na różnorakie sposoby.

solved in various ways.

No i tutaj mamy do dyspozycji właśnie

And here we have available just that.

JSDocs. Jeśli chodzi o przyszłość

JSDocs. When it comes to the future.

JavaScriptu

JavaScript

i TypeScriptu,

and TypeScript,

warto wspomnieć o właśnie

It's worth mentioning about just that.

ECMAScript Proposal,

ECMAScript Proposal,

na temat właśnie

on the subject of just

tworzenia typów

creating types

w Javascriptie

in Javascript

i wydaje mi się, że to jest fajny

And I think it's nice.

kierunek, zresztą podobnie jak Tobie,

direction, similarly to you,

że jest to fajny kierunek

that it is a cool direction

rozwoju tego języka,

the development of this language,

podobnie zresztą jak to miało miejsce

similarly to how it was the case

w przypadku

in the case of

chociażby

even if

Pythona, inne języki

Python, other languages

warto poznać, warto

It’s worth knowing, it’s worth it.

się zaznajomić, natomiast chyba w tym momencie

to familiarise oneself, however I believe at this moment

nie ma nic, co mogłoby

there is nothing that could

zagrozić pozycji TypeScriptu.

to threaten the position of TypeScript.

Ze swojej strony

From my side.

na pewno myślę, że

I definitely think that

warto korzystać

it's worth using

z TypeScriptu i warto

from TypeScript and it's worth

poznać go, jeżeli nie mieliście jeszcze takiej

to get to know him, if you haven't had one like that yet

okazji, ponieważ

occasion, because

TypeScript daje naprawdę sporo możliwości

TypeScript offers really a lot of possibilities.

i naprawdę wiele

and really a lot

ułatwia, wprowadzając

facilitates by introducing

ten

ten

te doświadczenia,

these experiences,

tą przyjemność

that pleasure

z programowania na troszeczkę inny

from programming to a slightly different one

poziom.

level.

Super podsumowanie Mateuszu.

Great summary, Mateusz.

Myślę, że

I think that

tak ostatnia myśl to

so the last thought is

w momencie, kiedy jeszcze nie mieliście

at the moment when you still didn't have

okazji skorzystać z

take advantage of

TypeScriptu i jesteście na projekcie, w którym

TypeScript and you are on a project where

jest standard JavaScript, to chyba trzeba

It's standard JavaScript, I guess that's necessary.

uciekać, bo to już jak wyszło

to run away, because that's how it turned out

to już jest standard.

This is already standard.

No takie małe faux pas.

Just a little faux pas.

Dziękujemy wszystkim

Thank you to everyone.

słuchaczom, dziękujemy Tobie

to the listeners, we thank You

słuchaczu za to, że byłeś

listener for being there

z nami przez te kilkadziesiąt minut.

with us for these few dozen minutes.

Zachęcamy

We encourage.

oczywiście do subskrybowania,

of course to subscribe,

polubienia, komentowania

likes, commenting

i wszelkich

and all

kontaktów z nami.

contacts with us.

Będziemy bardzo wdzięczni

We will be very grateful.

za udostępnienie naszego

for sharing our

podcastu. No i do usłyszenia

of the podcast. Well, until we hear each other again.

za jakiś czas.

in some time.

Continue listening and achieve fluency faster with podcasts and the latest language learning research.