{"id":2800,"date":"2023-03-09T07:31:40","date_gmt":"2023-03-09T07:31:40","guid":{"rendered":"https:\/\/www.juniorjavadeveloper.pl\/?p=2800"},"modified":"2024-07-23T08:19:33","modified_gmt":"2024-07-23T08:19:33","slug":"uzywamy-starych-frameworkow-java-ee-vs-spring-framework-dawid-kontra-goliat","status":"publish","type":"post","link":"https:\/\/www.juniorjavadeveloper.pl\/en\/2023\/03\/09\/uzywamy-starych-frameworkow-java-ee-vs-spring-framework-dawid-kontra-goliat\/","title":{"rendered":"U\u017cywamy &#8220;starych&#8221; framework\u00f3w &#8211; Java EE vs. Spring Framework &#8211; Dawid kontra Goliat"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Patrz\u0105c na popularno\u015b\u0107 mojego artyku\u0142u <a rel=\"noreferrer noopener\" href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2023\/03\/03\/low-code-i-no-code-czy-generatory-kodu-zrodlowego-zastapia-programistow\/\" data-type=\"post\" data-id=\"2562\" target=\"_blank\">Low-code i No-code \u2013 czy generatory kodu \u017ar\u00f3d\u0142owego zast\u0105pi\u0105 programist\u00f3w?<\/a>, gdzie cofam si\u0119 w czasie i opisuj\u0119 &#8220;stare&#8221; technologie, kt\u00f3re mia\u0142y zrewolucjonizowa\u0107 spos\u00f3b wytwarzania oprogramowania. Dzi\u015b postanowi\u0142em od\u015bwie\u017cy\u0107 m\u00f3j artyku\u0142 sprzed ponad roku, kt\u00f3ry napisa\u0142em dla <a rel=\"noreferrer noopener\" href=\"https:\/\/bulldogjob.pl\" data-type=\"URL\" data-id=\"https:\/\/bulldogjob.pl\" target=\"_blank\">https:\/\/bulldogjob.pl<\/a>, w kt\u00f3rym opisa\u0142em nier\u00f3wn\u0105 &#8220;walk\u0119&#8221; pomi\u0119dzy Java EE (Enterprise Edition), a Spring Framework &#8211; Dawid kontra Goliat. Cytuj\u0119 fragmenty artyku\u0142u poprawiaj\u0105c daty oraz dodaj\u0105c moje komentarze.<\/p>\n\n\n\n<div class=\"wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\"><!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/10112119_java_ee_kontra_spring_framework-bulldogjob-pl.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" src=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/10112119_java_ee_kontra_spring_framework-bulldogjob-pl-1024x536.png\" alt=\"Java EE vs. Spring Framework - Dawid kontra Goliat - bulldogjob.pl\" class=\"wp-image-2812\" srcset=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/10112119_java_ee_kontra_spring_framework-bulldogjob-pl-1024x536.png 1024w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/10112119_java_ee_kontra_spring_framework-bulldogjob-pl-300x157.png 300w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/10112119_java_ee_kontra_spring_framework-bulldogjob-pl-768x402.png 768w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/10112119_java_ee_kontra_spring_framework-bulldogjob-pl-1000x523.png 1000w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/10112119_java_ee_kontra_spring_framework-bulldogjob-pl-800x419.png 800w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/10112119_java_ee_kontra_spring_framework-bulldogjob-pl-600x314.png 600w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/10112119_java_ee_kontra_spring_framework-bulldogjob-pl-400x209.png 400w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/10112119_java_ee_kontra_spring_framework-bulldogjob-pl.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Java EE vs. Spring Framework &#8211; Dawid kontra Goliat &#8211; bulldogjob.pl<\/figcaption><\/figure>\n<\/body><\/html>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/bulldogjob.pl\/readme\/java-ee-i-spring-framework-czyli-dawid-kontra-goliat\">https:\/\/bulldogjob.pl\/readme\/java-ee-i-spring-framework-czyli-dawid-kontra-goliat<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Obecnie obydwa narz\u0119dzia troch\u0119 si\u0119 zestarza\u0142y. Spring Framework jest ju\u017c &#8220;pe\u0142noletni&#8221; &#8211; w tym roku sko\u0144czy\u0142 20 lat. Natomiast Java EE ko\u0144czy 23 lat, sama Java ma ju\u017c 27 lat.<\/p><\/blockquote><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><\/p>\n<cite>[&#8230;] wyt\u0142umacz\u0119, dlaczego moim zdaniem Java EE przegra\u0142a w &#8220;walce&#8221; ze Spring Framework. Walka ta mog\u0142aby si\u0119 wydawa\u0107 z g\u00f3ry przegrana z perspektywy Springa. By\u0142 on niewielkim graczem w por\u00f3wnaniu z &#8220;gigantem&#8221;, jakim by\u0142a Java EE w dawnych czasach, gdy\u017c sta\u0142 za ni\u0105 Oracle, a Spring Framework inicjalnie zosta\u0142 stworzony przez jedn\u0105 osob\u0119 (Roda Johnsona).<br><br>[&#8230;] Podczas mojej pracy jako programista Java korzysta\u0142em z dw\u00f3ch wy\u017cej wymienionych, najbardziej popularnych rozwi\u0105za\u0144 typu enterprise. Pierwszym rozwi\u0105zaniem by\u0142a<a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Jakarta_EE\" target=\"_blank\"> Java EE (Enterprise Edition)<\/a>, drugim<a rel=\"noreferrer noopener\" href=\"https:\/\/spring.io\/\" target=\"_blank\"> Spring Framework<\/a>.&nbsp;<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Java EE, to obecnie Jakarta EE po &#8220;oddelegowaniu projektu&#8221; przez firm\u0119 Oracle do <a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Eclipse_Foundation\" target=\"_blank\">Eclipse Foundation<\/a>. Swoj\u0105 drog\u0105, to oddelegowanie wygenerowa\u0142o spore zamieszanie w projektach i ich bibliotekach, kt\u00f3re korzystaj\u0105 z Java EE. Nale\u017ca\u0142o zmieni\u0107 importy dla Java EE w takich projektach jak Spring Framework i Hibernate, ale to ju\u017c temat na osobny artyku\u0142.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Java EE<\/p>\n<cite>Co takiego sta\u0142o si\u0119, \u017ce Java EE, kt\u00f3ra jest dzieckiem tw\u00f3rc\u00f3w j\u0119zyka Java, przegra\u0142a ze Spring Frameworkiem? Bardzo obrazowo por\u00f3wnuj\u0119 to na przyk\u0142adzie PKP i PolskiegoBusa. PKP przespa\u0142o sw\u00f3j czas na polskim rynku, nie rozwija\u0142o si\u0119, posiada\u0142o stare poci\u0105gi, bez udogodnie\u0144. Natomiast PolskiBus (obecnie FlixBus) wykorzysta\u0142 pojawiaj\u0105c\u0105 si\u0119 szans\u0119 i stworzy\u0142 bardzo dobre po\u0142\u0105czenia, oferuje nowoczesne i wygodne autobusy z wieloma udogodnieniami.<br><br>Podobnie sta\u0142o si\u0119 z Java EE \u2014 przespa\u0142a sw\u00f3j czas, oferowa\u0142a przestarza\u0142e technologie i rozwi\u0105zania. Wymaga &#8220;ci\u0119\u017ckiego&#8221; serwera aplikacyjnego zgodnego ze specyfikacj\u0105 Java EE. U\u017cycie EJB (Enterprise Java Beans) nie wspiera\u0142o dobrych zasad programowania obiektowego. Zmieni\u0142o si\u0119 to troch\u0119 za spraw\u0105 DI (Dependency Injection), ale by\u0142o ju\u017c za p\u00f3\u017ano. Moim zdaniem najwi\u0119kszym problemem by\u0142 praktycznie<strong> brak mo\u017cliwo\u015bci testowania komponent\u00f3w EJB<\/strong>.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Wspomniane komponenty EJB na szcz\u0119\u015bcie nie zosta\u0142y &#8220;powielone&#8221; w Spring Framework. Ten, kto nie u\u017cywa\u0142 komponent\u00f3w <a href=\"https:\/\/en.wikipedia.org\/wiki\/Jakarta_Enterprise_Beans\" data-type=\"URL\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Jakarta_Enterprise_Beans\" target=\"_blank\" rel=\"noreferrer noopener\">Enterprise JavaBeans<\/a> &#8220;niczego nie straci\u0142&#8221;. Spring Framework natomiast dla swojego modu\u0142u Spring MVC (aplikacje web, REST) wykorzystuje <a href=\"https:\/\/en.wikipedia.org\/wiki\/Jakarta_Servlet\" data-type=\"URL\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Jakarta_Servlet\" target=\"_blank\" rel=\"noreferrer noopener\">Java Servlet<\/a> z Java EE.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Spring Framework<\/p>\n<cite>Natomiast<strong> Spring Framework nie wymaga &#8220;ci\u0119\u017ckiego&#8221; serwera aplikacyjnego \u2014 <\/strong>DI&nbsp;jest jego g\u0142\u00f3wnym elementem, razem z Inversion of Control (IoC). Kod, kt\u00f3ry piszemy w Spring, nie jest \u015bci\u015ble zwi\u0105zany z samym frameworkiem, co automatycznie pozwala na \u0142atwe testowanie aplikacji. Dodatkowo <strong>Spring wspiera pisanie test\u00f3w na ka\u017cdym etapie i dla ka\u017cdej warstwy aplikacji<\/strong>.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Tutaj musz\u0119 napisa\u0107 sprostowanie, uzupe\u0142nienie dla samego siebie. Kod pisany w j\u0119zyku Java przy u\u017cyciu adnotacji ze Spring Framework jest \u015bci\u015ble zwi\u0105zany z samym frameworkiem. Natomiast u\u017cycie konfiguracji Spring Framework w plikach XML pozwala unikn\u0105\u0107 trwa\u0142ych po\u0142\u0105cze\u0144 kodu Java z frameworkiem. Pojawia si\u0119 kolejny problem, co jest lepsze, konfiguracja za pomoc\u0105 adnotacji, czy mo\u017ce z u\u017cyciem plik\u00f3w XML? Odpowied\u017a na to pytanie pozostawiam samym czytelniczkom i czytelnikom.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Przegrana Java EE<\/p>\n<cite>G\u0142\u00f3wne problemy, kt\u00f3re moim zdaniem przyczyni\u0142y si\u0119 do &#8220;przegranej&#8221; Java EE ze Spring Framework:<br>* Bardzo s\u0142aba oficjalna dokumentacja do specyfikacji Java EE.<br>* Niewielka liczba przydatnych tutoriali.<br>* Konieczno\u015b\u0107 u\u017cywania &#8220;ci\u0119\u017ckich&#8221; serwer\u00f3w aplikacyjnych implementuj\u0105cych ca\u0142\u0105 Java EE.<br>* Serwery aplikacyjne, kt\u00f3re rzadko dzia\u0142a\u0142y stabilnie w trakcie developmentu.<br>* Programista musia\u0142 zajmowa\u0107 si\u0119 konfiguracj\u0105 i administrowaniem serwer\u00f3w Java EE.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">WebLogic Integration wspomniane w artykule <a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2023\/03\/03\/low-code-i-no-code-czy-generatory-kodu-zrodlowego-zastapia-programistow\/\" data-type=\"post\" data-id=\"2562\">Low-code i No-code \u2013 czy generatory kodu \u017ar\u00f3d\u0142owego zast\u0105pi\u0105 programist\u00f3w?<\/a>, to po prostu serwer aplikacyjny WebLogic plus framework &#8220;integracji biznesowych&#8221;, st\u0105d w nazwie Integration. WebLogic, to serwer dla aplikacji Java EE, kt\u00f3ry moim zdaniem przyczyni\u0142 si\u0119 do &#8220;przegranej&#8221; Java EE.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Oracle_WebLogic_Server\">https:\/\/en.wikipedia.org\/wiki\/Oracle_WebLogic_Server<\/a><\/p>\n<cite><strong>Oracle WebLogic Server<\/strong> is a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Java_Platform,_Enterprise_Edition\">Java EE<\/a> <a href=\"https:\/\/en.wikipedia.org\/wiki\/Application_server\">application server<\/a> currently developed by <a href=\"https:\/\/en.wikipedia.org\/wiki\/Oracle_Corporation\">Oracle Corporation<\/a>. Oracle acquired WebLogic Server when it purchased <a href=\"https:\/\/en.wikipedia.org\/wiki\/BEA_Systems\">BEA Systems<\/a> in 2008.<\/cite><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Wygrana Spring Framework<\/p>\n<cite>Co moim zdaniem przyczyni\u0142o si\u0119 do &#8220;wygranej&#8221; Spring z Java EE?<br>* Bardzo dobra oficjalna dokumentacja techniczna.<br>* Wsparcie spo\u0142eczno\u015bci zwi\u0105zanej ze Spring Framework.<br>* Brak konieczno\u015bci u\u017cywania &#8220;ci\u0119\u017ckich&#8221; serwer\u00f3w dla ca\u0142ej Java EE.<br>* Wystarczy &#8220;lekki&#8221; kontener servlet\u00f3w, serwer HTTP np.:<a rel=\"noreferrer noopener\" href=\"https:\/\/tomcat.apache.org\/\" target=\"_blank\"> Tomcat<\/a>,<a rel=\"noreferrer noopener\" href=\"https:\/\/www.eclipse.org\/jetty\/\" target=\"_blank\"> Jetty<\/a>.<br>* Wsparcie ze strony IDE, np.:<a rel=\"noreferrer noopener\" href=\"https:\/\/eclipseide.org\/release\/\" target=\"_blank\"> Eclipse<\/a>,<a rel=\"noreferrer noopener\" href=\"https:\/\/www.jetbrains.com\/idea\/\" target=\"_blank\"> IntelliJ<\/a>.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Poni\u017cej cytuj\u0119 podsumowanie z wcze\u015bniejszego artyku\u0142u &#8220;Java EE vs. Spring Framework &#8211; Dawid kontra Goliat&#8221;.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><\/p>\n<cite>Podsumowuj\u0105c, konkurencja powoduje, \u017ce powstaj\u0105 nowe alternatywne rozwi\u0105zania, kt\u00f3re zaspokajaj\u0105 zapotrzebowanie rynku. W tym przypadku by\u0142 to nowszy framework dla aplikacji typu enterprise, kt\u00f3ry rozwi\u0105za\u0142 problemy Javy EE. Praca ze Spring Framework od samego pocz\u0105tku by\u0142a przyjemniejsza w por\u00f3wnaniu do Java EE i nap\u0119dzana entuzjazmem zwi\u0105zanym z czym\u015b nowym. Obecnie ci\u0119\u017cko sobie wyobrazi\u0107 projekt javowy, kt\u00f3ry nie korzysta ze Spring Framework i jego modu\u0142\u00f3w, kt\u00f3re usprawniaj\u0105 prac\u0119 programisty.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Patrz\u0105c na technologie &#8211; Oracle Forms, WebLogic Integration, NetBeans &#8211; opisane w artykule <a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2023\/03\/03\/low-code-i-no-code-czy-generatory-kodu-zrodlowego-zastapia-programistow\/\" data-type=\"post\" data-id=\"2562\">Low-code i No-code \u2013 czy generatory kodu \u017ar\u00f3d\u0142owego zast\u0105pi\u0105 programist\u00f3w?<\/a>, kt\u00f3re &#8220;umar\u0142y \u015bmierci\u0105 naturaln\u0105&#8221; oraz bior\u0105c pod uwag\u0119 Spring Framework, kt\u00f3ry &#8220;wci\u0105\u017c \u017cyje&#8221; mo\u017cna doj\u015b\u0107 do wniosku, \u017ce Spring Framework przetrwa\u0142 pr\u00f3b\u0119 czasu i jest idealnym rozwi\u0105zaniem. Na pewno wspomaga tworzenie aplikacji, np.: web, REST.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2022\/02\/07\/najczestsze-bledy-mlodszych-programistow-i-jak-sobie-z-nimi-radzic-geek-justjoin-it\/\" data-type=\"URL\" data-id=\"https:\/\/www.juniorjavadeveloper.pl\/2022\/02\/07\/najczestsze-bledy-mlodszych-programistow-i-jak-sobie-z-nimi-radzic-geek-justjoin-it\/\" target=\"_blank\" rel=\"noreferrer noopener\">Najcz\u0119stsze b\u0142\u0119dy m\u0142odszych programist\u00f3w i jak sobie z nimi radzi\u0107<\/a><\/p>\n<cite>Owszem, Spring jako framework jest bardzo przydatny, obecnie bez niego trudno sobie wyobrazi\u0107 tworzenie projekt\u00f3w. Nie zwalnia on jednak programist\u00f3w z my\u015blenia nad tworzonym kodem.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Podsumowuj\u0105c, obecnie wi\u0119kszo\u015b\u0107 firm IT wymaga od programist\u00f3w, programistek Java znajomo\u015bci Spring Framework. Mo\u017ce, to budowa\u0107 mylny obraz, \u017ce, to co\u015b nowego innowacyjnego, a po g\u0142\u0119bszej analizie okazuje si\u0119, \u017ce, to co\u015b &#8220;starego&#8221;, co istnieje bardzo d\u0142ugo na rynku IT.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-poradnik-dla-przysz-ych-junior-java-developer-039-w wp-block-embed-poradnik-dla-przysz-ych-junior-java-developer-039-w\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"eT0pId5OjQ\"><a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/kontakt\/\">Contact<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201eKontakt\u201d \u2014 Poradnik dla przysz\u0142ych Junior Java Developer&amp;apos;\u00f3w\" src=\"https:\/\/www.juniorjavadeveloper.pl\/kontakt\/embed\/#?secret=WgIlOE26WF#?secret=eT0pId5OjQ\" data-secret=\"eT0pId5OjQ\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-poradnik-dla-przysz-ych-junior-java-developer-039-w wp-block-embed-poradnik-dla-przysz-ych-junior-java-developer-039-w\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"au2Va2ezrS\"><a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/mentoring-rezerwuj-termin\/\">Mentoring - book an appointment<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u201eMentoring \u2013 rezerwuj termin\u201d \u2014 Poradnik dla przysz\u0142ych Junior Java Developer&amp;apos;\u00f3w\" src=\"https:\/\/www.juniorjavadeveloper.pl\/mentoring-rezerwuj-termin\/embed\/#?secret=bwWM1HqZtU#?secret=au2Va2ezrS\" data-secret=\"au2Va2ezrS\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Zdj\u0119cie autorstwa <a href=\"https:\/\/www.pexels.com\/photo\/retro-cassette-with-tape-on-gray-background-8038906\/\" data-type=\"URL\" data-id=\"https:\/\/www.pexels.com\/photo\/retro-cassette-with-tape-on-gray-background-8038906\/\" target=\"_blank\" rel=\"noreferrer noopener\">Elijah O&#8217;Donnell<\/a> z <a rel=\"noreferrer noopener\" href=\"https:\/\/www.pexels.com\/pl-pl\/\" target=\"_blank\">Pexels<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Patrz\u0105c na popularno\u015b\u0107 mojego artyku\u0142u Low-code i No-code \u2013 czy generatory kodu \u017ar\u00f3d\u0142owego zast\u0105pi\u0105 programist\u00f3w?, gdzie cofam si\u0119 w czasie i opisuj\u0119 &#8220;stare&#8221; technologie, kt\u00f3re mia\u0142y zrewolucjonizowa\u0107 spos\u00f3b wytwarzania oprogramowania. Dzi\u015b postanowi\u0142em od\u015bwie\u017cy\u0107 m\u00f3j artyku\u0142 sprzed ponad roku, kt\u00f3ry napisa\u0142em dla https:\/\/bulldogjob.pl, w kt\u00f3rym opisa\u0142em nier\u00f3wn\u0105 &#8220;walk\u0119&#8221; pomi\u0119dzy Java EE (Enterprise Edition), a Spring Framework [&hellip;]<\/p>","protected":false},"author":1,"featured_media":2825,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_ppp_document_settings_meta":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[6,7],"tags":[],"class_list":["post-2800","post","type-post","status-publish","format-standard","has-post-thumbnail","category-felieton","category-poradnik"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2023\/03\/uzywamy-starych-technologii_java-ee_spring-framework_Mentor-Junior-Java-Developer.jpg","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/2800","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/comments?post=2800"}],"version-history":[{"count":24,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/2800\/revisions"}],"predecessor-version":[{"id":4764,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/2800\/revisions\/4764"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/media\/2825"}],"wp:attachment":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/media?parent=2800"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/categories?post=2800"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/tags?post=2800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}