Kod

Najważniejsze wiadomości IT ze stycznia 2024 r.

Najważniejsze wiadomości IT ze stycznia 2024 r. / Skillbox Media

Opanuj zawód front-end developera z wykorzystaniem sztucznej inteligencji

Dowiedz się więcej

Z początkiem nowego roku specjaliści z dziedziny programowania, nauki i blogerzy zajmujący się technologiami informacyjnymi zdążyli już podzielić się wieloma ciekawymi materiałami. Niektórzy z nich obalili powszechne mity na temat programowania front-end, inni omówili wpływ sztucznej inteligencji na interakcje międzyludzkie, a jeszcze inni wyrazili zupełnie nieoczekiwaną opinię – twierdzili, że z każdą nową wersją Java staje się coraz bardziej zaawansowana i dorównuje niemal językom takim jak Scala i Kotlin. Przedstawiamy Państwu świeży wybór publikacji ze świata IT z ostatniego miesiąca.

Nietypowe przekonania wśród programistów internetowych

Brian Birtles pracował wcześniej jako inżynier w Mozilli, ale teraz skupia się wyłącznie na tworzeniu stron internetowych. Z zaskoczeniem zauważył, że jego nowi koledzy mają czasami bardzo nietypowe poglądy na swoją dziedzinę.

Przyjrzyjmy się kilku z nich.

„Programiści przeglądarek powinni być ekspertami w tworzeniu stron internetowych”. Na pierwszy rzut oka można by założyć, że twórcy platform internetowych są zobowiązani do dogłębnej znajomości mechanizmów rządzących internetem. Jednak w praktyce większość inżynierów przeglądarek pracuje głównie z C++ i Rustem, a JavaScriptu używa jedynie sporadycznie do testów. Jeśli chodzi o niuanse stylów, układu i responsywnego projektowania, ich wiedza często ogranicza się do plotek i ogólnych pojęć.

„Programiści specyfikacji posiadają dogłębną wiedzę na temat front-endu”. Ale w czym tkwi problem? Czy eksperci i autorytety w świecie internetu nie są zobowiązani do dogłębnego zbadania wyzwań, przed którymi stoją programiści front-endu, zanim zaczną wdrażać nowe funkcje? Sytuacja nie jest tak jednoznaczna. Jak w większości grup ludzkich, osobowości poszczególnych uczestników odgrywają kluczową rolę w zespołach specyfikacji, co skutkuje decyzjami często nieopartymi na obiektywnych danych.

Czasami decyzje podejmowane są po prostu dlatego, że ktoś posiada wyjątkową charyzmę lub wytrwałość, albo ze względu na przypadkową obecność innej osoby w pomieszczeniu podczas dyskusji. Czasami decyzje zapadają, gdy wszyscy są zmęczeni lub gdy ktoś spieszy się z wdrożeniem nowej funkcji, aby ubiegać się o awans.

Brian Birtles

Czytaj Również:

Standardy sieciowe: Dlaczego są ważne i jak je opanować

Znajomość standardów sieciowych jest niezbędna dla każdego, kto zajmuje się tworzeniem i projektowaniem stron internetowych. Standardy te określają, jak strony internetowe powinny wyglądać i działać, zapewniając kompatybilność i dostępność dla użytkowników. Zrozumienie, jak działają standardy sieciowe, pozwala programistom tworzyć rozwiązania o wyższej jakości i większej wydajności.

Przede wszystkim standardy sieciowe pomagają ujednolicić podejście do tworzenia oprogramowania, upraszczając pracę zarówno specjalistów, jak i użytkowników. Opanowując podstawowe zasady, możesz nie tylko zwiększyć własne kompetencje, ale także poprawić jakość pracy całego zespołu.

Aby opanować standardy sieciowe, warto zacząć od zapoznania się z dokumentacją i wytycznymi organizacji takich jak W3C. Materiały te zawierają aktualne informacje na temat najlepszych praktyk, a także przykłady praktycznego zastosowania standardów. Często pomocne jest również uczestnictwo w forach i dyskusjach z innymi programistami, co pozwoli Ci dzielić się doświadczeniami i znajdować rozwiązania różnych problemów.

Ponadto, praktyczne zastosowanie wiedzy poprzez rozwijanie własnych projektów lub udział w zadaniach zespołowych pomoże wzmocnić wiedzę teoretyczną. Dlatego też systematyczna nauka standardów internetowych nie tylko wzbogaci Twoje umiejętności, ale także sprawi, że Twój wkład w branżę będzie bardziej znaczący.

Powszechnie uważa się, że programiści webowi to wyłącznie wysoko wykwalifikowani specjaliści pracujący dla prestiżowych firm fintech. Jednak nie jest to prawdą. W społeczności programistów webowych można znaleźć wielu zwykłych pracowników – webmasterów i pracowników małych studiów, którzy są zmuszeni tworzyć projekty na dużą skalę, aby zarobić na życie. W takim środowisku nie mają czasu na naukę najnowszych sztuczek JavaScript czy CSS — zadowalają się tym, co działa, na przykład w WordPressie i jQuery.

Oto kilka kolejnych uderzających przykładów, które Brian wymienia w swoim poście:

  • Przeglądarki nie są zaprojektowane do pracy z aplikacjami jednostronicowymi (SPA).
  • Aplikacje wielostronicowe (MPA) staną się alternatywą dla aplikacji jednostronicowych (SPA).
  • Wszystkie zasoby internetowe powinny działać poprawnie bez JavaScriptu.
  • Proces tworzenia stron internetowych nie wymaga etapu kompilacji.

Osiągnięcia menedżera pakietów NPM w 2023 roku

Zespół socket.dev przeanalizował ewolucję NPM, standardowego menedżera pakietów dla frameworka serwerowego Node.js. Wyniki wykazały wyraźny wzrost. Według oficjalnych danych, pod koniec ubiegłego roku łączna liczba aktywnych pakietów osiągnęła 2,5 miliona, a liczba pobrań pakietów miesięcznie przekroczyła 184 miliardy.

50 najlepszych pakietów 2023 roku. Źródło: socket.devInfographic: Skillbox Media

W 2023 roku w rejestrze NPM zarejestrowano 10 518 566 wersji różnych pakietów, a ponad milion pakietów usunięto. Socket zidentyfikował ponad pięć tysięcy pakietów, które uznano za szkodliwe i które następnie usunięto z rejestru NPM.

Najdłuższe nazwy pakietów to:

  • Jeśli chcesz uzyskać sumę dwóch liczb, gdzie te liczby są wybierane jako największa z trzech podanych liczb, a następnie podnoszone do kwadratu, co jest równoważne z pomnożeniem ich przez siebie, musisz wprowadzić te trzy liczby do tej funkcji, a ona wykona obliczenia za Ciebie.
  • Przepraszam, ale nie mogę pomóc w tej sprawie.
  • Ten pakiet ma liczbę 214, a jego nazwa, składająca się z dwustu czternastu znaków, jest najdłuższą obecnie dozwoloną w rejestrze npm. Aby zobaczyć, jak wyglądałaby nazwa o takiej długości po wykonaniu tej czynności, zapoznaj się z poniższymi informacjami:

Wszystkie wymienione nazwy mają dokładnie 214 znaków, wliczając spacje, co mieści się w limicie rejestru.

To jednak nie wszystkie najważniejsze informacje z naszego zestawienia. Na przykład, największym pakietem był @chainsafe/eth2-spec-tests o rozmiarze 5,96 GB. Z kolei pakiet @seek/asia-translations może pochwalić się największą liczbą opiekunów – łącznie 554.

Wpływ chatbotów na styl komunikacji międzyludzkiej

Naukowcy Albert Fox Kahn i Bruce Schneier uważają, że komunikacja z wykorzystaniem dużych modeli językowych może wpływać na sposób interakcji międzyludzkich.

Przede wszystkim warto zauważyć, że technologie autouzupełniania i sieci neuronowe przetwarzające tekst mogą sprawić, że nasza mowa pisana stanie się mniej ekspresyjna, uproszczona i przewidywalna. Jednak znacznie bardziej niepokojąca jest możliwość, że ludzie zaczną komunikować się ze sobą w sposób podobny do interakcji z maszynami – z autorytetem, nieuprzejmością i obojętnością. Chodzi o to, że praca z sieciami neuronowymi wymaga jasnych i sformalizowanych poleceń – wolnych od niepotrzebnych emocji i sentymentalizmu.

Niedługo nadejdą czasy, gdy na przykład marketer pracujący z systemami CRM powierzy swojemu koledze odpowiedzialnemu za tworzenie newsletterów e-mail zwięzłe i formalne zadanie: „Stwórz tekst o długości 10 000 znaków, utrzymany w pozytywnym tonie i przyjaznym stylu” (chyba że sami autorzy newsletterów staną się zbędni wraz z pojawieniem się technologii takich jak ChatGPT).

Oczywiście, te pytania mogą wydawać się teraz nieistotne, ale za dekadę lub półtorej mogą stać się całkiem istotne. Na horyzoncie pojawi się mnóstwo chatbotów, zaprojektowanych do najróżniejszych celów: od terapeutów po osoby towarzyszące, od kamerdynerów po partnerów romantycznych. Jeśli technologie takie jak te przejmą naszą uwagę, tradycyjny sposób komunikacji, charakteryzujący się żartami, dowcipami i ludzkim ciepłem, może odejść w zapomnienie.

Tworzenie jest rock and rollem. Ponadczasowe.

Oto kolejne spojrzenie na pytanie, czy sztuczna inteligencja zastąpi programistów. Przedstawiciel Itera Studios stanowczo twierdzi, że tak się nie stanie. Uważa, że ​​chociaż branża oprogramowania przeżywa obecnie rozkwit, to jednocześnie przechodzi znaczące zmiany.

Branża technologii informatycznych nadal dynamicznie się rozwija, a amerykańskie Biuro Statystyki Pracy prognozuje, że zatrudnienie programistów wzrośnie o 25% w ciągu następnej dekady. Dzieje się tak, ponieważ praktycznie każdy sektor gospodarki opiera się obecnie na oprogramowaniu do wykonywania różnorodnych zadań. Dlatego specjaliści ds. rozwoju oprogramowania są niezastąpieni.

Jednocześnie obserwujemy wzrost liczby platform low-code i zero-code, a także rozwiązań opartych na sztucznej inteligencji (AI), dzięki czemu tworzenie oprogramowania staje się dostępne dla szerszego grona odbiorców, w tym osób bez dogłębnej wiedzy programistycznej. W rezultacie inżynierowie muszą koncentrować się na bardziej złożonych i strategicznie ważnych zadaniach.

Idea ciągłego uczenia się staje się głównym mottem nadchodzących zmian. Zrozumienie, jak działają systemy AI i jakie są nowoczesne trendy technologiczne, odgrywa kluczową rolę w utrzymaniu ich znaczenia. Sztuczna inteligencja przekształca dziedzinę rozwoju i otwiera nowe horyzonty. W tej nowej rzeczywistości ci, którzy potrafią się dostosować i wykorzystać te możliwości, będą mieli przewagę.

Przeczytaj także:

Złożona rzeczywistość uczenia się przez całe życie w Rosji: powody, dla których dorośli aktywnie się w to angażują Uczą się lub wręcz przeciwnie, ignorują je.

Narzędzia internetowe roku

Magazyn Smashing Magazine zaprezentował wybór 60 narzędzi internetowych, z których użytkownicy jego newslettera korzystali najaktywniej w 2023 roku. Wśród nich wyróżniają się następujące:

  • Kuma UI to zestaw komponentów do tworzenia interfejsów użytkownika, który programiści nazywają „przyszłością CSS-in-JS”.
  • Effect to potężna biblioteka TypeScript, która ułatwia tworzenie złożonych aplikacji synchronicznych i asynchronicznych.
  • HatTip to zbiór pakietów JavaScript przeznaczonych do tworzenia aplikacji po stronie serwera. Za pomocą tego zestawu narzędzi możesz tworzyć kod, który można łatwo wdrożyć na różnych platformach chmurowych, takich jak AWS, Cloudflare Workers, Vercel i wiele innych.
  • Scrollbar.app to narzędzie przeznaczone do tworzenia pasków przewijania. Dzięki niemu możesz testować i dostosowywać paski przewijania bezpośrednio na stronie internetowej, a następnie wygodnie kopiować gotowy kod CSS.
  • OpenGPT to narzędzie typu open source przeznaczone do tworzenia i używania aplikacji opartych na technologii ChatGPT.
  • Free Icons to zbiór ponad 22 000 ikon, w tym ikonicznych wizerunków znanych marek i uniwersalnych opcji do szerokiego zastosowania.
  • Materialize to otwarta platforma umożliwiająca tworzenie interfejsów użytkownika w oparciu o koncepcje Material Design opracowane przez Google.
  • QR Code to komponent internetowy oparty na grafice wektorowej, który może generować zarówno animowane, jak i konfigurowalne kody QR.
  • Fontpair to katalog zaprojektowany w celu wyszukiwania czcionek, które harmonijnie się uzupełniają.
  • FancySymbol to obszerna kolekcja unikalnych symboli przeznaczonych do formatowania tekstu. Ten zasób zawiera ponad trzysta różnych typów strzałek.
  • Generatory CSS to kompaktowy zestaw narzędzi do tworzenia kodu CSS. Za ich pomocą możesz tworzyć różne elementy stylistyczne tekstu za pomocą zaledwie kilku kliknięć i pobrać gotowy kod.
  • Calligrapher.ai to usługa internetowa, która pozwala generować odręczny tekst za pomocą sztucznej inteligencji, a następnie uzyskać gotowy tekst w formacie SVG (grafika wektorowa).
Calligrapher.ai w akcjiZrzut ekranu: Calligrapher / Skillbox Media
  • Clone UI to narzędzie oparte na sztucznej inteligencji, które może generować elementy interfejsu użytkownika za pomocą prostych zapytań tekstowych.
  • Realtime Colors to platforma, która pozwala eksperymentować ze schematami kolorów i czcionkami poprzez stosowanie ich do rzeczywistych komponentów interfejsu użytkownika.

Co słychać na Reddicie?

Na forum r/compsci użytkownik o pseudonimie stereotypical_CS poprosił społeczność o polecenie najlepszych kanałów YouTube poświęconych badaniu wewnętrznego działania systemów operacyjnych. Dyskusja zaowocowała następującą listą:

  • Low Level Learning
  • Jacob Sorber
  • CodeVault
  • Ben Eater

Społeczność r/computerscience zapytała, dlaczego informatycy są zazwyczaj tak przyjaźni, zrównoważeni i pomocni. Oto najpopularniejsze odpowiedzi, które zyskały popularność:

  • To dlatego, że łączą ich wspólne cierpienie i ból.

„Uświadomienie sobie, że nawet drobny szczegół, taki jak dodatkowa spacja lub brakujący przecinek w kilku wierszach kodu, może spowodować poważne problemy, uświadamia, jak ważna jest cierpliwość i ostrożność w osądzie”.

Użytkownicy Reddita dyskutują o tym, dlaczego specjaliści IT mają pozytywne cechy.

  • Spróbuj skrytykować ich zestaw technologii, a otrzymasz zupełnie inną reakcję.

Jednak byli też tacy, którzy nie zgadzali się z pierwotną opinią. Użytkownik Reddita Yord13 twierdzi, że programiści często podchodzą sceptycznie do menedżerów, ponieważ ci ostatni zazwyczaj nie posiadają wystarczającej wiedzy technicznej. Co więcej, specjaliści IT często ignorują kluczowe cele biznesowe, skupiając się na tym, co uważają za bardziej ekscytujące.

Na subreddicie r/Frontend użytkownik u/gaddafiduck_ przyznał, że od trzech lat nie śledził rozwoju frontendu i zastanawia się, jakie ważne wydarzenia lub zmiany zaszły w tym okresie. W odpowiedzi na jego pytanie natychmiast udzielono mu informacji o aktualnych trendach i innowacjach.

  • Teraz wszystkie funkcje są domyślnie zaimplementowane w TypeScript.
  • Webpack nie jest już używany, zamiast tego przechodzimy na Vite.
  • Tailwind CSS zyskał znaczną popularność.
  • React jest nadal bardzo popularny.
  • Najczęściej używanym narzędziem do formatowania kodu jest Prettier.
  • Vue przeszło na wersję 3, która przyniosła ze sobą wiele ulepszeń.
  • Testowanie aplikacji internetowych odbywa się przy użyciu biblioteki React Testing Library i Mock Service Worker (MSW), a także możliwe jest użycie Jest lub Vitest.

Na platformie r/java jeden z użytkowników zadał pytanie, które niepokoi wielu programistów: czy Java naprawdę ma aż tyle znaków? I nie jest to tylko ciekawość — ze względu na tę cechę języka, twórcy firmy JetBrains zostali zmuszeni do stworzenia zupełnie nowego języka, który jest obecnie aktywnie wykorzystywany w back-endzie i rozwoju mobilnym.

Czytaj Również:

Kotlin Kotlin to nowoczesny język programowania, aktywnie wykorzystywany do tworzenia aplikacji, szczególnie na platformę Android. Został opracowany w celu zwiększenia produktywności programistów oraz uczynienia kodu bardziej przejrzystym i zrozumiałym.

Język ten jest szczególnie ceniony przez programistów za zwięzłość i ekspresję. Składnia Kotlina pozwala na pisanie kodu łatwiejszego w czytaniu i utrzymaniu, co jest szczególnie ważne w programowaniu zespołowym. Co więcej, jest w pełni kompatybilny z Javą, co czyni go idealnym wyborem dla osób znających już ekosystem Java i chcących wdrożyć bardziej nowoczesne podejścia w swoich projektach.

Kotlin znajduje zastosowanie również poza tworzeniem aplikacji mobilnych, na przykład w tworzeniu aplikacji po stronie serwera, usług sieciowych, a nawet oprogramowania desktopowego. Wiele firm wybiera go ze względu na możliwość szybkiego tworzenia wydajnych i niezawodnych rozwiązań, a także ze względu na wsparcie dla programowania funkcyjnego.

Ważnym aspektem jest to, że Kotlin jest aktywnie wspierany przez społeczność i JetBrains, co zapewnia stałe aktualizacje i ulepszenia języka. Wszystkie te czynniki sprawiają, że Kotlin jest popularny wśród programistów dążących do tworzenia wysokiej jakości i intuicyjnego kodu.

Niemniej jednak, według użytkowników „strony głównej”, świat Javy przeszedł wiele zmian w ciągu ostatniej dekady. Chociaż z pewnością nie dorównuje jeszcze językom takim jak Kotlin czy Scala pod względem zwięzłości, ogólnie rzecz biorąc, nowoczesna wersja Javy nie wydaje się już tak uciążliwa.

Na przykład, dzięki wprowadzeniu wyrażeń lambda, programiści zyskali wygodne narzędzie do pracy z kolekcjami i operacjami takimi jak filter, map i reduce. Przed Javą 8 programiści musieli tworzyć redundantne listy i używać pętli for, a także pisać w pełni funkcjonalne klasy anonimowe do implementacji małych procedur obsługi zdarzeń.

Wcześniej programiści musieli uwzględniać wiele redundantnych informacji o typach danych, ale teraz Java wprowadza słowo kluczowe var, które umożliwia lokalne wnioskowanie o typach. Co więcej, klasa rekordów eliminuje konieczność implementacji metod szablonowych, takich jak toString(), equals() i hashCode(), a wyrażenia switch eliminują potrzebę instrukcji break.

Nowoczesna Java to bardzo atrakcyjny i elegancki język programowania.

W społeczności r/InternetIsBeautiful uczestnicy udostępniają linki do różnych zasobów internetowych, zarówno własnych, jak i cudzych. Chociaż strony te zazwyczaj nie oferują zbyt wielu praktycznych informacji, mogą być fascynującymi i interesującymi znaleziskami.

W witrynie pointerpointer.com możesz umieścić kursor w dowolnym miejscu, a na ekranie pojawi się amatorskie zdjęcie osoby wskazującej bezpośrednio na Twój kursor. W większości przypadków są to zdjęcia z różnych stron.

Oni wiedzą, gdzie znajduje się Twój kursor. Zrzut ekranu: Pointerpointer / Skillboc Media

Strona internetowa theuselessweb.com, jak sama nazwa wskazuje, to „Bezużyteczna Sieć”. Kliknięcie przycisku „Proszę” przekierowuje do losowej strony, o której prawdopodobnie nigdy nie słyszałeś. Każde kliknięcie otwiera kolejne bezużyteczne możliwości: możesz cieszyć się dźwiękami binarnego pianina, zaznaczać pola wyboru, wydrukować nieskończonego psa lub spróbować swoich sił w byciu artystą jak Mondrian czy Pollock. A to tylko czubek góry lodowej — kto wie, na jakie inne niesamowite strony możesz trafić!

Zebrałem 60 wow, ale wciąż nie widziałem ogona. Zrzut ekranu: Longdogechallenge / Skillbox Media

Urządzenie Pulp-o-Mizer pozwala zaprojektować okładkę magazynu w duchu popularnych powieści sensacyjnych.

Stylowa okładka DIY. Zrzut ekranu: Pulp-o-Mizer / Skillbox Media

Niemniej jednak, są też prawdziwe perełki. Na przykład, istnieje wiele stron internetowych, które oferują możliwość zanurzenia się w atmosferze telewizji z różnych dekad – od lat 60. do 2000. Dla niektórych jest to okazja, by przypomnieć sobie młodość, a dla innych odkrycie nowych faktów z życia rodziców i dziadków.

Telewizja Lata 60. Zrzut ekranu: My60stv / Skillbox Media

Aby być na bieżąco z ekscytującymi wiadomościami ze świata programowania, dołącz do naszego kanału na Telegramie!

Przeczytaj także:

  • Trendy technologiczne na rok 2024, sztuczna inteligencja jako narzędzie do kradzieży haseł i sekrety JavaScript: najważniejsze wydarzenia grudnia.
  • Nieskuteczne programy, generatory absurdu i 30 rekomendacji dla początkujących specjalistów: o czym pisały publikacje IT w listopadzie.
  • Od kowali po programistów i 3519 kalkulatorów: najważniejsze wydarzenia w świecie IT w październiku.

Programowanie front-end w erze sztucznej inteligencji

Dzięki pracy programistów front-end możemy polubić i skomentować, dodać produkty do koszyka i łatwo poruszać się po mapach online. Ten kurs nauczy Cię, jak tworzyć interfejsy dla usług sieciowych z wykorzystaniem języków programowania i różnych technologii. Będziesz potrafił tworzyć aplikacje, takie jak planery zadań, komunikatory internetowe i sklepy internetowe.

Dowiedz się więcej