{"id":22205,"date":"2023-07-31T09:30:00","date_gmt":"2023-07-31T07:30:00","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=22205"},"modified":"2024-12-03T13:44:55","modified_gmt":"2024-12-03T12:44:55","slug":"kotlin-come-funziona","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/","title":{"rendered":"Kotlin: guida completa al suo utilizzo"},"content":{"rendered":"\n<p>Come funziona Kotlin? Vi siete mai soffermati su questo specifico linguaggio? In realt\u00e0 non \u00e8 da molto che se ne parla con frequenza, e anzi, Kotlin <strong>\u00e8 un linguaggio di programmazione diventato famoso in tempi relativamente recenti<\/strong>: secondo Google Trends, \u00e8 solo dal <strong>2017 <\/strong>che ha acquisito una certa <strong>rilevanza <\/strong>nelle ricerche degli utenti.<\/p>\n\n\n\n<p>Eppure, non \u00e8 affatto cos\u00ec nuovo:<strong> il primo annuncio da parte di Jetbrains risale al 2010.<\/strong> Cos\u2019\u00e8 successo, allora, nel 2017 o poco prima, <em>che ne ha sancito la popolarit\u00e0?<\/em><\/p>\n\n\n\n<h2 class=\"gb-headline gb-headline-4544cf1a gb-headline-text\">Kotlin come funziona il linguaggio di Android e non solo<\/h2>\n\n\n\n<p>Un evento che, a oggi, di Kotlin \u00e8 anche la causa di una delle principali incomprensioni legate al linguaggio:<strong> il supporto di Google e la scelta di considerarlo la prima scelta per lo sviluppo Android<\/strong>, a scapito di Java.<\/p>\n\n\n\n<p>Da allora,<strong> Kotlin ha visto un\u2019impennata nella popolarit\u00e0<\/strong>, ovviamente nell\u2019ecosistema <strong><a href=\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/sviluppo-mobile\/i-migliori-tool-ai-per-sviluppatori-android\/\">Android<\/a><\/strong>, ma \u00e8 anche stato un po\u2019 incasellato come<em><strong> \u201cil linguaggio di Android\u201d<\/strong><\/em>: chi vi scrive ha lavorato in Kotlin per anni ed<strong> \u00e8 il maintainer del framework<a class=\"ek-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/open-source\/come-trovare-progetti-open-source-interessanti\/\"> open source<\/a> di mocking pi\u00f9 adottato in Kotlin<\/strong> (https:\/\/github.com\/mockk\/mockk\/), e solo per aver scritto <em><strong>\u201cKotlin\u201d<\/strong><\/em> sul CV<strong> \u00e8 stato contattato diverse volte per posizioni da sviluppatore Android,<\/strong> pur non conoscendo assolutamente niente di questo ecosistema.<\/p>\n\n\n\n<p>Chiariamo subito questa cosa una volta per tutte, allora:<strong> Kotlin \u00e8 la prima e, di fatto, l\u2019unica opzione per lo sviluppo Android, ma non \u00e8 un linguaggio che serve solo per Android, anzi.<\/strong><\/p>\n\n\n\n<p>Ma quindi, Kotlin come funziona? Ebbene, questo \u00e8, pi\u00f9 di molti altri,<strong> un linguaggio general purpose<\/strong>: non solo \u00e8<strong> utilizzabile in tutti i contesti in cui si pu\u00f2 usare <a href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/ottimizzazione-delle-prestazioni-in-java-guida-pratica\/\">Java<\/a><\/strong>, su tutti quindi la programmazione <strong>backend<\/strong>, ma si presta anche molto bene per<strong> lo sviluppo nativo interamente multipiattaforma<\/strong>, in modo simile a strumenti come <strong><a href=\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/sviluppo-web\/utilizzo-di-flutter-sdk-per-uno-sviluppo-web-efficace\/\">Flutter<\/a><\/strong>, che permettono di scrivere il codice una volta e compilarlo per piattaforme diverse come Android, iOS e applicazioni Desktop.<\/p>\n\n\n\n<p><strong>Ma non solo<\/strong>: \u00e8 un eccellente <strong>linguaggio per fare data science<\/strong>, che permette un passaggio dallo sviluppo al rilascio in produzione <strong>pi\u00f9 semplice di <a href=\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/programmare-con-python\/\" class=\"ek-link\">Python<\/a> o R,<\/strong> e permette di compilare il codice anche verso target come WASM e <a href=\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/javascript-it\/come-programmare-con-javascript-tutto-sul-linguaggio-per-il-web\/\" class=\"ek-link\">Javascript<\/a> per lo sviluppo web.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"614\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Optimize-NextJS-Guide-min-1024x614.jpg\" alt=\"kotlin\" class=\"wp-image-22007\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Optimize-NextJS-Guide-min-1024x614.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Optimize-NextJS-Guide-min-300x180.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Optimize-NextJS-Guide-min-768x461.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Optimize-NextJS-Guide-min.jpg 1322w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"gb-headline gb-headline-b23a17db gb-headline-text\">Le principali caratteristiche di Kotlin<\/h2>\n\n\n\n<p>Ma quali sono le caratteristiche principali del linguaggio Kotlin, come funziona? <strong>\u00c8 un linguaggio da esperti o \u00e8 adatto anche agli sviluppatori alle prime armi?<\/strong><\/p>\n\n\n\n<p>Anzitutto, per via della sua natura<strong> JVM-oriented <\/strong>e della sua storia,<strong> \u00e8 un linguaggio che gli sviluppatori Java troveranno molto semplice<\/strong> da imparare: se avete un po\u2019 di esperienza con Java, potete aspettarvi di diventare perfettamente produttivi lavorativamente in Kotlin nel giro di un paio di settimane.<\/p>\n\n\n\n<p>E sinceramente <strong>non avete motivi per non farlo<\/strong>, visto che <strong>Java e Kotlin sono perfettamente interoperabili<\/strong>: il codice Java pu\u00f2 invocare codice Kotlin e viceversa<strong> senza alcun problema,<\/strong> e codebase esistenti Java<strong> possono integrare parti scritte in Kotlin senza fatica<\/strong>, tanto che \u00e8 una prassi abbastanza comune in diverse aziende scrivere direttamente in Kotlin le parti nuove di applicazioni Java.<\/p>\n\n\n\n<p>Chi glielo fa fare? <strong>Perch\u00e9 non continuare a usare Java<\/strong> che, tutto sommato, fa il suo sporco lavoro da anni?<\/p>\n\n\n\n<p>Kotlin in realt\u00e0 <strong>ha molte feature che ogni sviluppatore Java avrebbe sempre voluto avere,<\/strong> su tutte quella che risolve il famoso <em>\u201cbillion dollar mistake\u201d<\/em>: in Kotlin, infatti,<strong> tutte le variabili sono non-nullable di default<\/strong>, e i rischi della temutissima NullPointerException sono enormemente <strong>ridotti a compile time<\/strong>, poich\u00e9 un pezzo di codice che accede a una variabile null viene immediatamente individuato dal compilatore e non durante l\u2019esecuzione.<\/p>\n\n\n\n<p>Ma non \u00e8 tutto, perch\u00e9 <strong>Kotlin ha anche molte caratteristiche,<\/strong> come le data classes, le extension functions e le lambda expressions, che lo rendono fino al <strong>40% pi\u00f9 conciso<\/strong>, e quindi <strong>pi\u00f9 leggibile<\/strong>, di Java: una delle critiche pi\u00f9 famose a Java \u00e8 la sua <strong>prolissit\u00e0 <\/strong>e il <strong>quantitativo enorme di righe di codice che richiede per i compiti pi\u00f9 banali<\/strong>, Kotlin fa l\u2019esatto opposto e permette agli sviluppatori di scrivere solo il codice effettivamente necessario per risolvere i problemi, non il boilerplate.<\/p>\n\n\n\n<p>E non \u00e8 finita: se avete sviluppato in Java delle applicazioni non banali, <strong>saprete sicuramente quanto sia complicato gestire la programmazione asincrona e il multithreading;<\/strong> e se questo \u00e8 il vostro caso, adorerete le coroutines e gli strumenti che <strong>Kotlin offre per la programmazione asincrona<\/strong>, dalle suspend functions a oggetti evoluti come flow e channel.<\/p>\n\n\n\n<h2 class=\"gb-headline gb-headline-8e573ebe gb-headline-text\">Perch\u00e9 e quando scegliere Kotlin<\/h2>\n\n\n\n<p>Tutto qui? (Si fa per dire) <strong>Perch\u00e9 scegliere Kotlin e non uno degli altri linguaggi interoperabili con Java, allora?<\/strong><\/p>\n\n\n\n<p>Abbiamo gi\u00e0 detto di <strong>alcuni ambiti di utilizzo<\/strong>, come la data science e la programmazione multipiattaforma, in cui Kotlin \u00e8 un\u2019opzione nettamente migliore di altri linguaggi basati sulla JVM come Scala, Groovy o Clojure, ma c\u2019\u00e8 un altro dettaglio che lo rende superiore a questi ultimi: l\u2019adozione.<\/p>\n\n\n\n<p>Quando si parla di uno strumento come un linguaggio di programmazione, avere una massa critica di utenti che lo usino \u00e8 <strong>fondamentale<\/strong>, ma la<strong> quantit\u00e0 non \u00e8 sufficiente<\/strong>: \u00e8 importante anche avere il supporto di player importanti che facciano in qualche modo da garante della qualit\u00e0 dello strumento &#8211; dopotutto, cosa sarebbe un framework come <a class=\"ek-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/react-tutto-sulla-library-javascript\/\">React<\/a> senza il supporto di Meta?<\/p>\n\n\n\n<p>Bene, in questo senso <strong>Kotlin pu\u00f2 contare su almeno due autorit\u00e0 di tutto rispetto<\/strong>: anzitutto, come abbiamo gi\u00e0 accennato, <strong><a href=\"https:\/\/www.codemotion.com\/magazine\/it\/infografiche\/nascita-di-google\/\">Google <\/a><\/strong>punta fortissimo su Kotlin, ma non dobbiamo dimenticare anche che si tratta di un linguaggio nato in seno a un\u2019azienda, <strong>Jetbrains<\/strong>, che come core business produce IDE, per cui il supporto al tooling di Kotlin <strong>\u00e8 assolutamente eccellente<\/strong> e IntelliJ offre un aiuto davvero grosso agli sviluppatori, rendendo l\u2019esperienza di sviluppo estremamente ergonomica e semplice.<\/p>\n\n\n\n<p>Kotlin \u00e8 un<strong> linguaggio di programmazione moderno, conciso e sicuro<\/strong>, sviluppato da JetBrains. \u00c8 un linguaggio orientato agli oggetti e a tipizzazione statica, e pu\u00f2 essere compilato per la macchina virtuale Java (JVM), per il JavaScript e per il Native.<\/p>\n\n\n\n<p>Quindi: <strong>Kotlin \u00e8 un linguaggio estremamente efficiente<\/strong>, in uso in molte aziende, anche piuttosto importanti e che garantisce possibilit\u00e0 di impiego in molti ambiti diversi, da quelli che erano appannaggio di Java e derivati, alle <a href=\"https:\/\/www.codemotion.com\/magazine\/it\/frontend-it\/sviluppo-mobile\/perche-kotlin-e-la-scelta-giusta-per-il-mobile-development\/\">applicazioni mobile<\/a> alla data science,<strong> ma \u00e8 un linguaggio semplice da imparare?<\/strong> \u00c8 una buona scelta come primo linguaggio di programmazione, o \u00e8 meglio orientarsi su scelte apparentemente pi\u00f9 semplici, come <a class=\"ek-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/php-linguaggio-programmazione\/\">PHP<\/a> o Javascript?<\/p>\n\n\n\n<p>La risposta, come a tutte le domande importanti, \u00e8 ovviamente <em>\u201cdipende\u201d,<\/em> ma ci sentiamo di consigliarlo anche<strong> come primo linguaggio da imparare, per diversi motivi.<\/strong><\/p>\n\n\n\n<p>In primis, \u00e8 un linguaggio fortemente <strong>tipizzato<\/strong>, e come tale <strong><em>\u201ccostringe\u201d<\/em> a imparare a pensare ai dati che le nostre funzioni e le nostre classi si scambiano<\/strong> e <strong>riduce di molto la possibilit\u00e0 di bug;<\/strong> poi, come abbiamo gi\u00e0 detto, \u00e8 un linguaggio molto conciso, <strong>per cui permette di concentrarsi sui concetti davvero importanti <\/strong>del codice che stiamo scrivendo anzich\u00e9 perdere tempo con del boilerplate; infine, ha una libreria standard molto ben progettata, coerente e completa, che d\u00e0 modo a sviluppatori non molto esperti di entrare in contatto con software scritto molto bene.<\/p>\n\n\n\n<p>Insomma, qualunque tipo di esperienza abbiate e qualunque ambito dello sviluppo software vi interessi, <strong>Kotlin merita assolutamente che gli dedichiate un po\u2019 di tempo<\/strong>: se poi voleste contribuire a MockK, il framework di mocking open source di cui sono il maintainer, di certo fareste cosa buona.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come funziona Kotlin? Vi siete mai soffermati su questo specifico linguaggio? In realt\u00e0 non \u00e8 da molto che se ne parla con frequenza, e anzi, Kotlin \u00e8 un linguaggio di programmazione diventato famoso in tempi relativamente recenti: secondo Google Trends, \u00e8 solo dal 2017 che ha acquisito una certa rilevanza nelle ricerche degli utenti. Eppure,&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/\">Read more<\/a><\/p>\n","protected":false},"author":166,"featured_media":21883,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10230],"tags":[10329,10438],"collections":[],"class_list":{"0":"post-22205","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-linguaggi-programmazione","8":"tag-framework","9":"tag-sviluppo-software-it","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Kotlin: scopri come funziona e in quali ambiti si applica<\/title>\n<meta name=\"description\" content=\"Kotlin \u00e8 la prima opzione per lo sviluppo Android, ma non \u00e8 un linguaggio che serve solo per Android. Scopri come funziona Kotlin.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kotlin: guida completa al suo utilizzo\" \/>\n<meta property=\"og:description\" content=\"Kotlin \u00e8 la prima opzione per lo sviluppo Android, ma non \u00e8 un linguaggio che serve solo per Android. Scopri come funziona Kotlin.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-31T07:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-03T12:44:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1322\" \/>\n\t<meta property=\"og:image:height\" content=\"793\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Mattia Tommasone\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mattia Tommasone\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/\"},\"author\":{\"name\":\"Mattia Tommasone\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/584de0ceb0afa849bcb9c186a81351b5\"},\"headline\":\"Kotlin: guida completa al suo utilizzo\",\"datePublished\":\"2023-07-31T07:30:00+00:00\",\"dateModified\":\"2024-12-03T12:44:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/\"},\"wordCount\":1178,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg\",\"keywords\":[\"Framework\",\"sviluppo software\"],\"articleSection\":[\"Linguaggi di programmazione\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/\",\"name\":\"Kotlin: scopri come funziona e in quali ambiti si applica\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg\",\"datePublished\":\"2023-07-31T07:30:00+00:00\",\"dateModified\":\"2024-12-03T12:44:55+00:00\",\"description\":\"Kotlin \u00e8 la prima opzione per lo sviluppo Android, ma non \u00e8 un linguaggio che serve solo per Android. Scopri come funziona Kotlin.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg\",\"width\":1322,\"height\":793,\"caption\":\"Collaborative coding. A group of developers working together. Kotlin introduction. Agile\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linguaggi di programmazione\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Kotlin: guida completa al suo utilizzo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/584de0ceb0afa849bcb9c186a81351b5\",\"name\":\"Mattia Tommasone\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/50db7c90a1eddfab0f3e57d6cbd754f7cc3a66acfd50ca5fad9cedf9f525fa66?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/50db7c90a1eddfab0f3e57d6cbd754f7cc3a66acfd50ca5fad9cedf9f525fa66?s=96&d=mm&r=g\",\"caption\":\"Mattia Tommasone\"},\"description\":\"Developer for about twenty years and youth soccer coach for the same amount of time. Former music journalist in a previous life, and a descendant of a family of schoolteachers. Now, I work in developer relations; in a nutshell, I enjoy explaining the topics that I'm passionate about.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/raibaz\/?originalSubdomain=it\"],\"jobTitle\":\"Senior Developer Relations Engineer, Ads at Google\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/mattia-tommasone\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kotlin: scopri come funziona e in quali ambiti si applica","description":"Kotlin \u00e8 la prima opzione per lo sviluppo Android, ma non \u00e8 un linguaggio che serve solo per Android. Scopri come funziona Kotlin.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/","og_locale":"en_US","og_type":"article","og_title":"Kotlin: guida completa al suo utilizzo","og_description":"Kotlin \u00e8 la prima opzione per lo sviluppo Android, ma non \u00e8 un linguaggio che serve solo per Android. Scopri come funziona Kotlin.","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2023-07-31T07:30:00+00:00","article_modified_time":"2024-12-03T12:44:55+00:00","og_image":[{"width":1322,"height":793,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg","type":"image\/jpeg"}],"author":"Mattia Tommasone","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Mattia Tommasone","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/"},"author":{"name":"Mattia Tommasone","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/584de0ceb0afa849bcb9c186a81351b5"},"headline":"Kotlin: guida completa al suo utilizzo","datePublished":"2023-07-31T07:30:00+00:00","dateModified":"2024-12-03T12:44:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/"},"wordCount":1178,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg","keywords":["Framework","sviluppo software"],"articleSection":["Linguaggi di programmazione"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/","name":"Kotlin: scopri come funziona e in quali ambiti si applica","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg","datePublished":"2023-07-31T07:30:00+00:00","dateModified":"2024-12-03T12:44:55+00:00","description":"Kotlin \u00e8 la prima opzione per lo sviluppo Android, ma non \u00e8 un linguaggio che serve solo per Android. Scopri come funziona Kotlin.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg","width":1322,"height":793,"caption":"Collaborative coding. A group of developers working together. Kotlin introduction. Agile"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/kotlin-come-funziona\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Linguaggi di programmazione","item":"https:\/\/www.codemotion.com\/magazine\/it\/linguaggi-programmazione\/"},{"@type":"ListItem","position":3,"name":"Kotlin: guida completa al suo utilizzo"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/584de0ceb0afa849bcb9c186a81351b5","name":"Mattia Tommasone","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/50db7c90a1eddfab0f3e57d6cbd754f7cc3a66acfd50ca5fad9cedf9f525fa66?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/50db7c90a1eddfab0f3e57d6cbd754f7cc3a66acfd50ca5fad9cedf9f525fa66?s=96&d=mm&r=g","caption":"Mattia Tommasone"},"description":"Developer for about twenty years and youth soccer coach for the same amount of time. Former music journalist in a previous life, and a descendant of a family of schoolteachers. Now, I work in developer relations; in a nutshell, I enjoy explaining the topics that I'm passionate about.","sameAs":["https:\/\/www.linkedin.com\/in\/raibaz\/?originalSubdomain=it"],"jobTitle":"Senior Developer Relations Engineer, Ads at Google","url":"https:\/\/www.codemotion.com\/magazine\/author\/mattia-tommasone\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-600x600.jpg","author_info":{"display_name":"Mattia Tommasone","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/mattia-tommasone\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg",1322,793,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-300x180.jpg",300,180,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-768x461.jpg",768,461,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-1024x614.jpg",1024,614,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg",1322,793,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg",1322,793,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min.jpg",100,60,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2023\/07\/Collaborative-Coding.-A-developer-team-working-together.-min-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Mattia Tommasone","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/mattia-tommasone\/"},"uagb_comment_info":0,"uagb_excerpt":"Come funziona Kotlin? Vi siete mai soffermati su questo specifico linguaggio? In realt\u00e0 non \u00e8 da molto che se ne parla con frequenza, e anzi, Kotlin \u00e8 un linguaggio di programmazione diventato famoso in tempi relativamente recenti: secondo Google Trends, \u00e8 solo dal 2017 che ha acquisito una certa rilevanza nelle ricerche degli utenti. Eppure,&#8230;&hellip;","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/22205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/166"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=22205"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/22205\/revisions"}],"predecessor-version":[{"id":30900,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/22205\/revisions\/30900"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/21883"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=22205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=22205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=22205"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=22205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}