CINXE.COM
Cloud Computing | InfoWorld
<!doctype html> <html lang="en-US" data-brand="iw"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="profile" href="https://gmpg.org/xfn/11"> <meta name='robots' content='max-image-preview:large, index,follow' /> <style> :root { --advertisement-label-text: "advertisement"; } </style> <script> window._sp_analytics = { config: { accountId: 146, events: { onDetectionComplete: function() { console.log('onMessageReady'); } }, } }; </script> <!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v23.3) - https://yoast.com/wordpress/plugins/seo/ --> <title>Cloud Computing | InfoWorld</title> <meta name="twitter:label1" content="Written by" /> <meta name="twitter:data1" content="Amy Bennett" /> <!-- / Yoast SEO Premium plugin. --> <link rel='dns-prefetch' href='//cdn.onthe.io' /> <link rel="alternate" type="application/rss+xml" title="InfoWorld » Feed" href="https://www.infoworld.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="InfoWorld » Comments Feed" href="https://www.infoworld.com/comments/feed/" /> <link rel='stylesheet' id='wp-block-library-css' href='https://www.infoworld.com/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2' media='all' /> <style id='co-authors-plus-coauthors-style-inline-css'> .wp-block-co-authors-plus-coauthors.is-layout-flow [class*=wp-block-co-authors-plus]{display:inline} </style> <style id='co-authors-plus-avatar-style-inline-css'> .wp-block-co-authors-plus-avatar :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-avatar :where(img){vertical-align:middle}.wp-block-co-authors-plus-avatar:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-avatar.aligncenter{display:table;margin-inline:auto} </style> <style id='co-authors-plus-image-style-inline-css'> .wp-block-co-authors-plus-image{margin-bottom:0}.wp-block-co-authors-plus-image :where(img){height:auto;max-width:100%;vertical-align:bottom}.wp-block-co-authors-plus-coauthors.is-layout-flow .wp-block-co-authors-plus-image :where(img){vertical-align:middle}.wp-block-co-authors-plus-image:is(.alignfull,.alignwide) :where(img){width:100%}.wp-block-co-authors-plus-image:is(.alignleft,.alignright){display:table}.wp-block-co-authors-plus-image.aligncenter{display:table;margin-inline:auto} </style> <style id='elasticpress-facet-style-inline-css'> .widget_ep-facet input[type=search],.wp-block-elasticpress-facet input[type=search]{margin-bottom:1rem}.widget_ep-facet .searchable .inner,.wp-block-elasticpress-facet .searchable .inner{max-height:20em;overflow:scroll}.widget_ep-facet .term.hide,.wp-block-elasticpress-facet .term.hide{display:none}.widget_ep-facet .empty-term,.wp-block-elasticpress-facet .empty-term{opacity:.5;position:relative}.widget_ep-facet .empty-term:after,.wp-block-elasticpress-facet .empty-term:after{bottom:0;content:" ";display:block;left:0;position:absolute;right:0;top:0;width:100%;z-index:2}.widget_ep-facet .level-1,.wp-block-elasticpress-facet .level-1{padding-left:20px}.widget_ep-facet .level-2,.wp-block-elasticpress-facet .level-2{padding-left:40px}.widget_ep-facet .level-3,.wp-block-elasticpress-facet .level-3{padding-left:60px}.widget_ep-facet .level-4,.wp-block-elasticpress-facet .level-4{padding-left:5pc}.widget_ep-facet .level-5,.wp-block-elasticpress-facet .level-5{padding-left:75pt}.widget_ep-facet input[disabled],.wp-block-elasticpress-facet input[disabled]{cursor:pointer;opacity:1}.widget_ep-facet .term a,.wp-block-elasticpress-facet .term a{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.widget_ep-facet .term a:hover .ep-checkbox,.wp-block-elasticpress-facet .term a:hover .ep-checkbox{background-color:#ccc}.ep-checkbox{-webkit-box-align:center;-ms-flex-align:center;-ms-flex-negative:0;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:#eee;display:-webkit-box;display:-ms-flexbox;display:flex;flex-shrink:0;height:1em;justify-content:center;margin-right:.25em;width:1em}.ep-checkbox:after{border:solid #fff;border-width:0 .125em .125em 0;content:"";display:none;height:.5em;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:.25em}.ep-checkbox.checked{background-color:#5e5e5e}.ep-checkbox.checked:after{display:block} </style> <link rel='stylesheet' id='elasticpress-related-posts-block-css' href='https://www.infoworld.com/wp-content/mu-plugins/search/elasticpress/dist/css/related-posts-block-styles.min.css?ver=4.2.2' media='all' /> <style id='classic-theme-styles-inline-css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='editions-desktop-css' href='https://www.infoworld.com/wp-content/client-mu-plugins/idg-editions/dist/styles/main.css?ver=0.1.0' media='all' /> <link rel='stylesheet' id='third-party-integrations-style-css' href='https://www.infoworld.com/wp-content/client-mu-plugins/idg-third-party/dist/styles/index.css?ver=1731995985' media='all' /> <link rel='stylesheet' id='frontend-jwplayer-styles-css' href='https://www.infoworld.com/wp-content/themes/idg-b2b-base-theme/dist/styles/jwplayer.css?ver=1731995985' media='all' /> <link rel='stylesheet' id='frontend-shared-styles-css' href='https://www.infoworld.com/wp-content/themes/idg-b2b-base-theme/dist/styles/shared.css?ver=1731995985' media='all' /> <link rel='stylesheet' id='frontend-styles-css' href='https://www.infoworld.com/wp-content/themes/idg-b2b-base-theme/dist/styles/bundle.css?ver=1731995985' media='all' /> <link rel='stylesheet' id='iw-amp-styles-css' href='https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/dist/styles/amp.css?ver=1731995986' media='all' /> <script type="text/javascript" src="https://www.infoworld.com/wp-includes/js/dist/hooks.min.js?m=1732206009g" ></script><script src="https://www.infoworld.com/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script id="wp-i18n-js-after"> wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); </script> <script type="text/javascript" src="https://www.infoworld.com/wp-content/client-mu-plugins/idg-editions/dist/scripts/editions-front.js?m=1731995985g" ></script><script id="third-party-integrations-script-js-extra"> var IDG = {"settings":{"cmp":{"account":{"id":"146","base_endpoint":"https:\/\/cmpv2.infoworld.com","href":"https:\/\/www.infoworld.com","is_cp_multi_campaign_enabled":true},"gdpr":{"script":"https:\/\/cmpv2.infoworld.com\/unified\/wrapperMessagingWithoutDetection.js","privacy_manager_id":"165662","property_id":"9220","privacy_manager_id_amp":"172450","href_amp":"https:\/\/amp.infoworld.com"},"ccpa":{"script":"https:\/\/ccpa.sp-prod.net\/ccpa.js","origin":"https:\/\/ccpa-service.sp-prod.net","privacy_manager_id":"1098540","privacy_manager_uuid":"5dfa75f712068b42714ed7b8","property_id":"16077","href_amp":"https:\/\/ccpa.amp.infoworld.com"}},"gtm":{"account":{"id":"GTM-5JGZ3LH","amp_id":"","ua_number":"UA-6647659-1"}},"gpt":{"consent":{"vendor_id":"5e74df5ff443bb795772df9c"},"config":{"prefix":"\/8456\/IDG.G_B2B_InfoWorld.com\/","threshold":"0.7","slots":[{"name":"gpt-leaderboard","template":"banner","disabled":false,"sticky_duration":"12","pos":"ATF1","size":"728x90","size_definitions":[{"breakpoint":"970","sizes":"728x90"},{"breakpoint":"728","sizes":"728x90"},{"breakpoint":"320","sizes":"300x50,320x50"}],"insert_after_p":"1"},{"name":"gpt-leaderboardmainbod","template":"article","disabled":false,"refresh_interval":"15","refresh_amount":"6","size":"300x50","pos":"BTF{{count}}","size_definitions":[{"breakpoint":"970","sizes":"970x250,728x90,300x250"},{"breakpoint":"728","sizes":"728x90,300x250"},{"breakpoint":"320","sizes":"300x50,320x50,300x250"}],"page_template":[{"custom_template":"Homepage","desktop":"3,10","mobile":"3,10","feed_v2_articlelisting":[{"feed_v2":"Feed-V2","desktop":"3,5,9","mobile":"3,5,9","block_name":"feed_v2"}]},{"custom_template":"Article","desktop":"3,6,9,12,15,18,21,24,27,30,33,36,40","mobile":"3,6,9,12,15,18,21,24,27,30,33,36,40","feed_v2_articlelisting":[{"feed_v2":"Feed-V2","desktop":"3,5,9","mobile":"3,5,9","block_name":"feed_v2"}]},{"custom_template":"Archive","desktop":"0","mobile":"0","feed_v2_articlelisting":[{"feed_v2":"Feed-V2","desktop":"3,5,9","mobile":"3,5,9","block_name":"feed_v2"}]},{"custom_template":"Topic landing page","desktop":"3,9","mobile":"3,9","feed_v2_articlelisting":[{"feed_v2":"Feed-V2","desktop":"3,5,9","mobile":"3,5,9","block_name":"feed_v2"}]}],"insert_after_p":"1"},{"name":"gpt-rightrail","template":"right_rail","disabled":false,"size":"120x600","section":"Sidebardfpatf{{count}}","pos":"BTF{{count}}","size_definitions":[{"breakpoint":"970","sizes":"300x250,300x600,160x600,120x600"},{"breakpoint":"728","sizes":""},{"breakpoint":"320","sizes":""}],"insert_after_p":"1"},{"name":"gpt-oc_ad_1","template":"oc_ad_1","disabled":false,"size":"7x7","pos":"ATF1","size_definitions":[{"breakpoint":"970","sizes":"7x7"},{"breakpoint":"728","sizes":"7x7"},{"breakpoint":"320","sizes":"7x7"}],"insert_after_p":"1"},{"name":"gpt-topimu","template":"topimu","disabled":false,"size":"300x50","pos":"ATF1","size_definitions":[{"breakpoint":"970","sizes":"300x250,300x600,160x600,120x600"},{"breakpoint":"728","sizes":""},{"breakpoint":"320","sizes":""}],"insert_after_p":"1"},{"name":"gpt-overlay","template":"overlay","disabled":false,"size":"640x480","pos":"gpt-overlay","size_definitions":[{"breakpoint":"970","sizes":"640x480"},{"breakpoint":"728","sizes":"640x480"},{"breakpoint":"320","sizes":""}],"insert_after_p":"1"},{"name":"gpt-skin","template":"skin","disabled":false,"size":"1x1","pos":"gpt-skin","size_definitions":[{"breakpoint":"970","sizes":"1x1"},{"breakpoint":"728","sizes":""},{"breakpoint":"320","sizes":""}],"insert_after_p":"1"}],"aps_pub_id":"0"}},"ias":{"account":{"pub_id":""}},"index_exchange":{"config":{"id":""}},"permutive":{"account":{"workspace_id":"f5b3be27-f789-4ef1-8867-37c67da5b361","api_key":"84c7e805-5ce9-41f4-b988-3529488bab1c"}},"outbrain":[],"nativo":{"config":{"script":"https:\/\/s.ntv.io\/serve\/load.js","page_template":[{"custom_template":"Homepage","desktop":"5,8,13","mobile":"5,8,13"},{"custom_template":"Article","desktop":"22,32,37","mobile":"22,32,37"},{"custom_template":"Archive","desktop":"3","mobile":"3"}],"relatedcontent":[{"related_content_block":"Related Content","desktop":"3","block_name":"related_content"}],"populartopic":[{"nativopopulartopic":"Popular Topics","desktop":"2","mobile":"2","block_name":"popular_topics"}],"herov2":[{"nativoherov2":"Hero V2","desktop":"2","mobile":"2","block_name":"hero_v2","variant":[{"variant_name":"Default","desktop":"3,5","mobile":"3,5","Variant_value":"default"},{"variant_name":"Card 4 By 4","desktop":"4","mobile":"4","Variant_value":"fourByFour"},{"variant_name":"Card Small 4 By 4","desktop":"4","mobile":"4","Variant_value":"oneByThree"}]}],"variouscontentlisting":[{"various_content_listing":"Various content listings","desktop":"3,5,9","mobile":"3,5,9","block_name":"various_content_listing"}]}},"newsletter_register_para_details":{"nrp_info":{"paracount":"0"}},"newsletter_subscribe_btn_redirect_url":[],"subscribers":{"config":{"id":"d73925e9-37f6-478a-9804-7901f9e3a2ae","script":"https:\/\/cdn.subscribers.com\/assets\/subscribers.js"}},"jw_player":{"config":{"insert_after_p":"4","insert_after_article":"","player_library_id":"8yHZorDV","amp_player_library_id":"Q4xdwtHS","floating_player_playlist_id":"wj1ht0vS","adscheduleid":"LxK3nuOJ","floating_player_adscheduleid":"LxK3nuOJ","description_url":"http:\/\/www.infoworld.com","sz":"640x480|640x360","ciu_szs":"300x250,728x90"}},"io_script":{"config":{"id":"OmWzZwn3Mi5H","io_amp_id":"45650"}}},"GPT":{"ad_slot_name":"page_door","prefix":"\/8456\/IDG.G_B2B_InfoWorld.com\/","targeting":{"articleId":"100007594","author":"Amy Bennett","browser":"feedparser\/6.0.2+https:\/\/github.com\/kurtmckee\/feedparser\/","templateType":"other","categorySlugs":"","tags":"","categoryIds":"","env":null,"productId":"","goldenIds":"","channel":"","fireplace":"false","type":"","typeId":"","sponsored":"false","video-autoplay":"true","manufactuer":"microsoft","url":"https:\/\/www.infoworld.com\/cloud-computing\/","zone":"cloud-computing-index-other","wpsponsorshipId":""}},"geolocation":"SG","suppress_monetization":{},"supressBb2bRightrail":"","products":[],"vendor_pricing":{"amazon":[]},"APS":[],"isB2B":"1","isSingle":"","isEuVisitor":""}; </script> <script id="third-party-integrations-script-js-before"> window.dataLayer = window.dataLayer || []; window.dataLayer.push({"adBlockerEnabled":true,"arenaId":"","audience":"enterprise","ccpaOptedOut":"false","environment":"wp_production","sessionNumber":"@TODO","firstSessionDate":"@TODO","lastSessionDate":"@TODO","timestamp":1732432313,"url":"https:\/\/www.infoworld.com\/cloud-computing\/","triblioPixelCode":"","prodIds":"","prodCategories":"","prodManufacturers":"","prodNames":"","prodVendors":"","categories":"","categoryIds":"","categoriesSlugs":"","channel":"","primaryCategory":"","primaryAncestorCategoryList":"","primaryAncestorCategoryListSlugs":"","ancestorGoldenCategories":"","goldenTaxonomyIdPrimary":"","gtaxPrimaryIdsList":"","gtaxPrimarySlugsList":"","gtaxIdList":"","gtaxList":"","bcGtaxIdList":[],"bcGtaxList":[],"language":"English","articleId":"100007594","articleTitle":"Cloud Computing","articleType":"","author":"Amy Bennett","isBlog":"false","blogname":"","blogId":"","brandpost":"false","content_type":"cloud-computing index","datePublished":"2024-06-26","dateUpdate":"2024-07-09","dateTimePublished":"2024-06-26T18:02:32-04:00","dateTimeUpdate":"2024-07-09T11:20:58-04:00","dateFirstPublished":false,"dateFirstTimePublished":false,"daysSincePublished":"","daysSinceUpdated":"137","description":"Cloud Computing | News, how-tos, features, reviews, and videos\n","displayType":"cloud-computing index","fireplace":"false","pageNumber":"1","page_type":"other","platform":"web","podcastSponsored":"false","property":"infoworld","source":"","sponsorName":"","sponsorshipId":"","tags":[],"legacyCmsId":"","edition":"","articleLocale":"","isInsiderContent":"false","insiderSignedIn":"true","adSuppression":"false","BCUID":"","legacyCmsName":"","idgAppID":{"SITE_TYPE":[{"type":"delivery","site":"infoworld.com","sourcecms":"onecms","connectedhub":"b2b","staff":"Infoworld Staff","brand":"IW"}],"IDG_APP_ID":9049}}); // GDPR Stub function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){for(var t,e,o=[],n=window,r=n;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=n.parent}t||(function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))}(); window.__gpp_addFrame=function(e){if(!window.frames[e])if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,10,e)},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],p=e.length>1?e[1]:null,s=e.length>2?e[2]:null;if("ping"===t)p({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:p,parameter:s}),p({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var a=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==s){__gpp.events.splice(i,1),a=!0;break}p({eventName:"listenerRemoved",listenerId:s,data:a,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?p(!1,!0):"getSection"===t||"getField"===t?p(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var p=t?JSON.parse(e.data):e.data}catch(e){p=null}if("object"==typeof p&&null!==p&&"__gppCall"in p){var s=p.__gppCall;window.__gpp(s.command,(function(p,n){var a={__gppReturn:{returnValue:p,success:n,callId:s.callId}};e.source.postMessage(t?JSON.stringify(a):a,"*")}),"parameter"in s?s.parameter:null,"version"in s?s.version:"1.1")}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator")); // CCPA Stub (function () { var e = false; var c = window; var t = document; function r() { if (!c.frames["__uspapiLocator"]) { if (t.body) { var a = t.body; var e = t.createElement("iframe"); e.style.cssText = "display:none"; e.name = "__uspapiLocator"; a.appendChild(e) } else { setTimeout(r, 5) } } } r(); function p() { var a = arguments; __uspapi.a = __uspapi.a || []; if (!a.length) { return __uspapi.a } else if (a[0] === "ping") { a[2]({ gdprAppliesGlobally: e, cmpLoaded: false }, true) } else { __uspapi.a.push([].slice.apply(a)) } } function l(t) { var r = typeof t.data === "string"; try { var a = r ? JSON.parse(t.data) : t.data; if (a.__cmpCall) { var n = a.__cmpCall; c.__uspapi(n.command, n.parameter, function (a, e) { var c = { __cmpReturn: { returnValue: a, success: e, callId: n.callId } }; t.source.postMessage(r ? JSON.stringify(c) : c, "*") }) } } catch (a) { } } if (typeof __uspapi !== "function") { c.__uspapi = p; __uspapi.msgHandler = l; c.addEventListener("message", l, false) } })(); // Google Tag Manager (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5JGZ3LH'); // Permutive Stub !function(n,e,i){if(!n){n=n||{},window.permutive=n,n.q=[],n.config={}||{},n.config.apiKey=e,n.config.environment=n.config.environment||"production";for(var o=["addon","identify","track","trigger","query","segment","segments","ready","on","once","user","consent"],r=0;r<o.length;r++){var t=o[r];n[t]=function(e){return function(){var i=Array.prototype.slice.call(arguments,0);n.q.push({functionName:e,arguments:i})}}(t)}}}( window.permutive, '84c7e805-5ce9-41f4-b988-3529488bab1c' ); window.googletag=window.googletag||{},window.googletag.cmd=window.googletag.cmd||[],window.googletag.cmd.push(function(){if(0===window.googletag.pubads().getTargeting("permutive").length){var g=window.localStorage.getItem("_pdfps");window.googletag.pubads().setTargeting("permutive",g?JSON.parse(g):[])}}); let categorySlug = 'cloud-computing'; const stripOutIllegal = s => s.replace(/[~'"=!+#;^()<>&[]]/g,''); window.ntvConfig = window.ntvConfig || {} ; window.ntvConfig.keyValues = window.ntvConfig.keyValues || {}; const segs = localStorage.getItem('_pnativo'); if (segs) { window.ntvConfig.keyValues.permutive = JSON.parse(segs).join(","); } const metaKeywordsTag = document.querySelector("meta[name='keywords']"); if ( metaKeywordsTag && (metaKeywordsTag.hasAttribute('content')) ) { const kwds = metaKeywordsTag.content.split(',').filter(kw => kw.length <= 40); window.ntvConfig.keyValues.contextual = stripOutIllegal(kwds.join(',')); } [categorySlug].forEach(function(val) { if (val.length !== 0) { window.ntvConfig.keyValues.channel = stripOutIllegal(val); } }); if (typeof(window.ntvConfig.keyValues.channel) === "undefined") { window.ntvConfig.keyValues.channel = ""; } const DoSomething = () => { const boxes = document.querySelectorAll('.nativo-loading'); boxes.forEach(box => { box.classList.remove('nativo-loading'); }); } var ntv=ntv||{};ntv.cmd=ntv.cmd||[]; // setup command queue ntv.cmd.push(function(){ setTimeout(DoSomething, 1000) }); </script> <script> window._io_config = window?._io_config || {}; window._io_config["0.2.0"] = window?._io_config["0.2.0"] || []; window._io_config["0.2.0"].push({"page_url":"https:\/\/www.infoworld.com\/cloud-computing","page_url_canonical":"https:\/\/www.infoworld.com\/cloud-computing\/","page_title":"Cloud Computing | InfoWorld","page_type":"default","page_language":"en"}); </script> <script src="https://www.infoworld.com/wp-content/client-mu-plugins/idg-third-party/dist/scripts/index.js?ver=1731995985" id="third-party-integrations-script-js"></script> <script type="text/javascript" src="https://www.infoworld.com/_static/??-eJydzEEKhDAMAMAPGYMsoj2Ib+k2RVNqDUlE/P36hj3NbfAWSGfz3BxT5Rc4LpB6bdwMmTbwnZVAovqDxOZoSVncsNxS45O1L9bh/41o/jJBJHuj9ViG6TOEMIZ5LD9ohTnu" ></script><script async src="https://cdn.onthe.io/io.js/OmWzZwn3Mi5H?ver=1" id="io_script_code-js"></script> <script type="text/javascript" src="https://www.infoworld.com/_static/??-eJx9jMEKAjEMRH/IbGoFxYP4Lds2rClNd21SFv/eIh48CQMPhjeD+wZcY+mJFPPIs1N7fTEJ1ynrAf9JILy02ehXjms1qob2IBkTTgsEHyDMSvDpMLEaamy8mWLsaquA9GKsVCjaOLrL7Xg5ee/Ozl3zG9IlPYo=" ></script><script type="application/ld+json">[{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.infoworld.com\/"},{"@type":"ListItem","position":2,"name":"Cloud Computing","item":""}]},{"@context":"https:\/\/schema.org\/","@type":"CollectionPage","mainEntity":{"@type":"ItemList","itemListElement":[]}}]</script> <style> :root { /* Nativo Loader */ --nativo-loader-color: #424a45; --sponsored-links--border-bottom-color: #9d9490; --sponsored-container--background-color: #fff; /* Advertisement */ --advertisement-label-text: "advertisement"; } </style> <link rel="shortcut icon" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/favicon.ico" type="image/x-icon"/> <link rel="apple-touch-icon" sizes="180x180" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/favicon-16x16.png"> <link rel="manifest" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/site.webmanifest"> <link rel="mask-icon" href="https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/img/safari-pinned-tab.svg" color="#0000cc"> <meta name="msapplication-TileColor" content="#0000cc"> <meta name="theme-color" content="#ffffff"> <style> :root { /*Host Speaker Profile*/ --host-speaker-profile-heading-color: #141414; --host-speaker-profile-heading-font-family: "fira-sans", sans-serif; --host-speaker-profile-title-description-font-family: "myriad-pro",sans-serif; --host-speaker-title-color: #808080; --host-speaker-description-color: #141414; --host-speaker-label-color: #AAA; --host-speaker-remove-link-color: #c30e0e; --host-speaker-horizontal-line-color: #DEDEDE; --host-speaker-company-name-font-color: #75757A; /* Agenda Block */ --agenda-heading-event-name-color: #141414; --agenda-heading-font-family: "fira-sans", sans-serif; --agenda-event-name-font-family: "myriad-pro",sans-serif; --agenda-horizontal-block-divider-color: #dedede; --agenda-event-month-day-date-color: #322a2a; --agenda-event-month-date-color: #969696; --agenda-start-end-time-color: #75757a; --agenda-error-msg-color: #FF0000; --agenda-day-time-text-shadow-color: #808080; --agenda-note-text-color: #808080; --agenda-label-text-color: #111; --agenda-multi-day-button-background-color: #000; --agenda-multi-day-button-text-color: #fff; --agenda-heading-label-color: #AAA; --agenda-details-link-color: #327F7C; --agenda-block-mobile-background-color: #f5f5f5; /*event content block */ --event-register-btn-bg-color: #ed1b24; --event-register-btn-color: #fff; --event-share-icons-color: white; --event-share-icons-color-fb: #3b5998; --event-share-icons-color-twitter: #00acee; --event-share-icons-color-linkedin: #2867b2; --event-description-top-border: #d8dad8; --event-details-label-color: #B30000; --event-details-text-color: #141414; --event-logo-label: "myriad-pro", sans-serif; --event-description-text-color: #322a2a; --who-should-attend-heading: "fira-sans", sans-serif; --who-should-attend-text: "myriad-pro", sans-serif; /* Event Hero Block */ --fira-sans-fonts: "fira-sans", sans-serif; --fira-sans-regular: 400; --fira-sans-extrabold: 800; --fira-sans-semibold: 600; /* Event Index Page */ --border-color: #75757a; --filter-background-color: #F6F6F6; --base--font-color: #322a2a; --index-more-events-title-color: #141414; --myraid-font-family: "myriad-pro",sans-serif; --myriad-regular: 400; --myriad-bold: 700; --base--global-white-color: #fff; --base--global-black-color: #000; --index-events-title-font-hover-color: #B30000; /* Image Credit */ --image-credit-font-color: #555; --image-credit-text: "Credit: "; --event-hero-block-heading-color: #fff;--event-hero-dynamic-background-image: url(""); } </style> <style> :root { /* FAQ*/ --faq-heading-seprator-color: #d8d8d8; --faq-input-box-border-color: #757575; --faq-remove-link-color: #c30e0e; --faq-heading-color: #141414; --faq-heading-font-family: "fira-sans", sans-serif; --faq-title-description-font-family: "myriad-pro",sans-serif; --faq-label-color: #AAA; --faq-company-name-font-color: #75757A; --faq-horizontal-line-color: #DEDEDE; --faq-head-title--font-family: "graphik", sans-serif; } </style> <style> :root { /* Nav menu */ --nav-menu-error: #b32d2e; /* Promo Unit Block HR color */ --promo-unit-hr: #d55d5d; /* Promo Unit Block Title After Color */ --promo-unit-title-after: #d04949; /* Promo Unit Block Title After Color */ --promo-unit-title: #322a2a; /* Promo Unit Block Title before Color */ --promo-unit-before-one: #e42e22; /* Promo Unit Block Title before Color */ --promo-unit-before-two: #f3f5f6; /* Promo Unit Block Title before Color */ --promo-unit-item-bg: #000; /* Deals Collection Block */ --deal-collection-productIndex-border-color: #12C7F1; --deal-collection-deal-header-color: #000; --deal-collection-deal--view-button--background-color: #21873A; --deal-collection-deal-price-color: #CD0912; --site-primary: #3399cc; --view-button--green: #3e873a; /* Jobs Collection Block */ --job-collection-productIndex-border-color: #12C7F1; --job-collection-job-header-color: #000; --job-collection-job--view-button--background-color: #21873A; --job-collection-job-price-color: #CD0912; /* Publication list pop-up pn edit edition page */ --publication-list-container-bg: rgba(255, 255, 255, 1); --publication-list-container-border: #111; --publication-list-container-bs: #222; --publication-list-bg:rgba(100, 100, 100, .6); --publication-list-popup-header-border: #ddd; --publication-list-popup-header-bg: #e9e9e9; /*Lineup Element*/ --lineup-element-error-font-color: #cd423b; --lineup-element-disabled-button-background-color: #ddd; --lineup-element-disabled-button-font-color: #eee; --lineup-element-button-tooltip-background-color: #757575; --lineup-element-button-tooltip-font-color: #fff; --lineup-element-note-font-color: #757575; --lineup-element-button-disabled: hsla(0,0%,100%,.4); /* LineUp Popover.*/ --lineup-popover-a-color: white; --lineup-popover-err-color: red; --lineup-popover-th-color: #d4d4d4; --lineup-popover-tr-color: #f2f2f2; --lineup-popover-paginate-a-active-color: #ddd; --lineup-popover-paginate-a-non-active-color: #006ba1; /* Slotting settings */ --slotting-settings-taxonomy-help-text-color: #808080; /* Author section top */ --sponsorship-brandpost-divider-line-color: #D8D8D8; /** Block - Product chart */ --product-chart--information-value--font-color: #2A7DA7; --product-chart--review-link--font-color: #2A7DA7; --product-chart--description--font-color: #4D4D4D; --product-chart--separator--background-color: #404040; /** Block - Product chart Pros and Cons */ --product-chart--pros-cons-title--font-color: #111111; --product-chart--pros-cons-border: 1px solid #ccc; /* Author Archive Page */ --author-archive-title: rgba(0, 0, 0, .87); --author-job-title: #000; --author-share-icons-divider-color: #D8D8D8; --author-share-icon-fill-color: #111; /* Sponsors index Page */ --sponsored-index-page-slug-background-color: #eee; --sponsorship-brandpost--title: 28px; --sponsorship-title--line-height: 32px; --uppercase-text: uppercase; --sponsor-eyebrow--font-color: #75757A; --sponsor-tooltip-learn-more--font-color: #111111; --sponsorship-brandpost--title-color: #111111; /* How to - at a glance block */ --how-to-at-glance-text-font-family: "canada-type-gibson", sans-serif; --how-to--step-heading--font-family: "regis", serif; --how-to--step-border--divider-color: #B6AEAA; --how-to--at-a-glance--background-color: #E6DCD5; /* Sponsorship Header. */ --sponsorship-header--font-color: #4d4d4d; /* fonts */ --fira-sans-semibold: 700; /* responsive table gradient */ --core-table--gradient--border-color: #C5C5C5; --core-table--gradient--alpha--border-color: #faf6f445; /* headings */ --heading-three: 24px; --heading-four: 20px; --heading-three-line-height: 30px; /* Insider Popover.*/ --insider-popover-background-color: white; --insider-popover-box-shadow-color: rgba(0, 0, 0, .31); --insider-popover-help-text-color: #4a4a4a; --insiderPopover-link-color: #322a2a; --insider-popover-signing-button-text-color: white; --insider-popover-signin-button-background: #4a3d3d; --insider-popover-signout-button-background: #b43017; --insiderPopover-welcome-font-color: #141414; /* Listing Button */ --insider-listing-primary-button-background : #4e4242; --insiderPopover-link-hover-color:#3c807c; --mercury-form--insider-color: #6eae00; } </style> <meta name="displaytype" content="article" /> <meta name="source" content="https://www.infoworld.com/cloud-computing/" /> <link rel="canonical" href="https://www.infoworld.com/cloud-computing/" /> <meta name="description" content="Cloud Computing | News, how-tos, features, reviews, and videos " /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://www.infoworld.com/cloud-computing/" /> <meta property="og:site_name" content="InfoWorld" /> <meta property="og:title" content="Cloud Computing" /> <meta property="og:description" content="Cloud Computing | News, how-tos, features, reviews, and videos " /> <meta property="twitter:card" content="summary_large_image" /> <meta property="twitter:url" content="https://www.infoworld.com/cloud-computing/" /> <meta property="twitter:site" content="InfoWorld" /> <meta property="twitter:title" content="Cloud Computing" /> <meta property="twitter:description" content="Cloud Computing | News, how-tos, features, reviews, and videos " /> </head> <body class="page-template page-template-templates page-template-template-topic-landing page-template-templatestemplate-topic-landing-php page page-id-100007594 idg-b2b-topic-landing-page sticky-header theme-iw"> <svg id="icon-sprite" style="position: absolute; width: 0; height: 0; overflow: hidden;" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"> <defs> <g id="icon-apple-podcasts"> <path d="M11.432 20.546c-.681-.244-.827-.575-1.107-2.515-.324-2.255-.395-3.65-.207-4.093.25-.586.927-.919 1.873-.922.94-.004 1.624.332 1.874.922.189.441.118 1.838-.207 4.093-.221 1.575-.342 1.974-.647 2.241-.418.37-1.012.473-1.575.274h-.004Zm-2.91-2.314c-2.351-1.157-3.858-3.114-4.406-5.718-.137-.673-.16-2.275-.03-2.893.342-1.655.997-2.95 2.085-4.094C7.739 3.874 9.756 3 12 3c2.222 0 4.231.858 5.761 2.461 1.164 1.21 1.819 2.491 2.154 4.179.114.561.114 2.092.007 2.724a8.091 8.091 0 0 1-3.082 5.04c-.58.437-1.994 1.2-2.222 1.2-.084 0-.092-.087-.053-.438.068-.563.136-.68.456-.814.51-.213 1.378-.831 1.91-1.366a7.27 7.27 0 0 0 1.91-3.363c.198-.784.176-2.527-.044-3.334-.695-2.567-2.787-4.56-5.351-5.093-.746-.153-2.101-.153-2.855 0-2.595.532-4.741 2.625-5.397 5.258-.175.714-.175 2.459 0 3.174.434 1.743 1.561 3.341 3.037 4.293.25.167.512.317.784.449.32.137.388.25.448.814.038.342.03.441-.053.441-.053 0-.441-.167-.852-.365l-.036-.028Zm.031-3.095c-.792-.632-1.491-1.752-1.78-2.851-.176-.664-.176-1.926.007-2.587.48-1.787 1.796-3.172 3.622-3.823.625-.22 2.008-.268 2.778-.1 2.648.588 4.529 3.24 4.165 5.871-.145 1.06-.51 1.931-1.157 2.74-.32.409-1.096 1.095-1.233 1.095-.022 0-.044-.26-.044-.575v-.573l.396-.472c1.492-1.787 1.385-4.282-.244-5.921-.631-.637-1.362-1.012-2.306-1.185-.609-.113-.738-.113-1.377-.007-.97.158-1.722.535-2.39 1.194-1.64 1.618-1.746 4.129-.254 5.917l.393.474v.58c0 .32-.026.58-.057.58-.031 0-.251-.152-.487-.343l-.032-.014Zm2.64-3.107c-.676-.316-1.042-.91-1.05-1.685 0-.696.389-1.304 1.058-1.66.427-.222 1.18-.222 1.606 0 .473.256.828.686.99 1.199.441 1.5-1.15 2.816-2.588 2.144l-.015.002Z" fill="currentColor"/> <path d="M12.114 12.325a1.898 1.898 0 1 0 0-3.795 1.898 1.898 0 0 0 0 3.796ZM12.298 13.06c.215.025.428.068.635.13a2.3 2.3 0 0 1 .636.318c.168.121.29.248.366.401.076.153.114.336.137.636.015.3.015.713-.053 1.491a53.146 53.146 0 0 1-.313 2.636c-.106.726-.182 1.05-.281 1.286a1.152 1.152 0 0 1-.845.738 1.83 1.83 0 0 1-.441.038 1.893 1.893 0 0 1-.442-.038c-.174-.038-.401-.106-.57-.243-.176-.137-.29-.335-.381-.594-.091-.259-.16-.57-.251-1.195a66.213 66.213 0 0 1-.29-2.26 18.148 18.148 0 0 1-.112-1.522c-.006-.328.008-.491.044-.647.036-.15.098-.291.183-.419a1.389 1.389 0 0 1 .661-.504c.157-.06.32-.106.485-.137.197-.038.426-.075.543-.091a.596.596 0 0 1 .248 0l.04-.024Z" fill="currentColor"/> </g> <g id="icon-arrow-up-right-from-square"> <path fill-rule="evenodd" clip-rule="evenodd" d="m19.19 3.75-9.72 9.72-.53.53L10 15.06l.53-.53 9.72-9.72v4.94h1.5V3a.747.747 0 0 0-.75-.75h-6.75v1.5h4.94ZM4 5.75a.25.25 0 0 0-.25.25v14c0 .138.112.25.25.25h14a.25.25 0 0 0 .25-.25V11.717h1.5V20A1.75 1.75 0 0 1 18 21.75H4A1.75 1.75 0 0 1 2.25 20V6c0-.966.784-1.75 1.75-1.75H12.283v1.5H4Z" fill="currentColor"/> </g> <g id="icon-calendar"> <path fill-rule="evenodd" clip-rule="evenodd" d="M20 5.5H4a.5.5 0 0 0-.5.5v2.25h17V6a.5.5 0 0 0-.5-.5ZM3.5 18V9.75h17V18a.5.5 0 0 1-.5.5H4a.5.5 0 0 1-.5-.5ZM4 4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4Zm5.42 10.292c0 .75.198 1.092.696 1.092.48 0 .666-.354.666-1.098v-.156c0-.75-.198-1.098-.678-1.098-.486 0-.684.348-.684 1.092v.168Zm2.712-.03c0 1.38-.804 2.172-2.058 2.172-1.236 0-2.004-.768-2.004-2.136v-.168c0-1.374.882-2.13 2.028-2.13 1.14 0 2.034.678 2.034 2.1v.162Zm3.254 2.094h-1.362v-2.952l-.792.474V12.75l.984-.684h1.17v4.29Z" fill="currentColor"/> </g> <g id="icon-caret-down"> <path d="m6 8 4.3 7.1c.8 1.3 2.7 1.3 3.4 0L18 8H6Z" fill="currentColor"/> </g> <g id="icon-circle-bars"> <path fill-rule="evenodd" clip-rule="evenodd" d="M18.287 5.833C16.902 4.408 14.815 3.5 12 3.5c-2.87 0-4.952.91-6.32 2.329C4.303 7.256 3.5 9.353 3.5 12c0 2.58.819 4.684 2.217 6.134C7.107 19.574 9.196 20.5 12 20.5c2.804 0 4.893-.926 6.283-2.366C19.681 16.684 20.5 14.58 20.5 12c0-2.636-.822-4.735-2.213-6.167ZM22 12c0-5.9-3.7-10-10-10C5.6 2 2 6.1 2 12c0 5.8 3.7 10 10 10s10-4.2 10-10ZM7 10.75v-1.5h10v1.5H7Zm0 2.5v1.5h10v-1.5H7Z" fill="currentColor"/> </g> <g id="icon-circle-chevron-down"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.39 1.44-3.479 2.366-6.283 2.366-2.804 0-4.893-.926-6.283-2.366C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5ZM12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10S2 17.8 2 12C2 6.1 5.6 2 12 2ZM8.326 9.97l3.536 3.536a.25.25 0 0 0 .353 0l3.536-3.535 1.06 1.06-3.535 3.536a1.75 1.75 0 0 1-2.475 0L7.266 11.03l1.06-1.06Z" fill="currentColor"/> </g> <g id="icon-circle-chevron-left"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.39 1.44-3.479 2.366-6.283 2.366-2.804 0-4.893-.926-6.283-2.366C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5ZM12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10S2 17.8 2 12C2 6.1 5.6 2 12 2Zm1.773 6.53-3.536 3.536a.25.25 0 0 0 0 .353l3.536 3.536-1.061 1.06-3.536-3.535a1.75 1.75 0 0 1 0-2.475l3.536-3.535 1.06 1.06Z" fill="currentColor"/> </g> <g id="icon-circle-chevron-right"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.39 1.44-3.479 2.366-6.283 2.366-2.804 0-4.893-.926-6.283-2.366C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5ZM12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10S2 17.8 2 12C2 6.1 5.6 2 12 2ZM9.712 8.53l3.535 3.536a.25.25 0 0 1 0 .353l-3.535 3.536 1.06 1.06 3.536-3.535a1.75 1.75 0 0 0 0-2.475L10.773 7.47 9.712 8.53Z" fill="currentColor"/> </g> <g id="icon-circle-chevron-up"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.39 1.44-3.479 2.366-6.283 2.366-2.804 0-4.893-.926-6.283-2.366C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5ZM12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10S2 17.8 2 12C2 6.1 5.6 2 12 2Zm3.752 12.53-3.536-3.536a.25.25 0 0 0-.353 0l-3.536 3.535-1.06-1.06 3.535-3.536a1.75 1.75 0 0 1 2.475 0l3.536 3.536-1.061 1.06Z" fill="currentColor"/> </g> <g id="icon-circle-xmark"> <path fill-rule="evenodd" clip-rule="evenodd" d="M18.287 5.833C16.902 4.408 14.815 3.5 12 3.5c-2.87 0-4.952.91-6.32 2.329C4.303 7.256 3.5 9.353 3.5 12c0 2.58.819 4.684 2.217 6.134C7.107 19.574 9.196 20.5 12 20.5c2.804 0 4.893-.926 6.283-2.366C19.681 16.684 20.5 14.58 20.5 12c0-2.636-.822-4.735-2.213-6.167ZM22 12c0-5.9-3.7-10-10-10C5.6 2 2 6.1 2 12c0 5.8 3.7 10 10 10s10-4.2 10-10Zm-9.998-1.069 3-3 1.06 1.061-3 3 3.01 3.009-1.062 1.06-3.008-3.008-3.01 3.01-1.061-1.06 3.01-3.01L7.94 8.99 9 7.93l3.002 3.002Z" fill="currentColor"/> </g> <g id="icon-chevron-down"> <path fill-rule="evenodd" clip-rule="evenodd" d="m11.776 14.42-4.95-4.95-1.06 1.061 4.95 4.95a1.75 1.75 0 0 0 2.474 0l4.95-4.95-1.06-1.06-4.95 4.95a.25.25 0 0 1-.354 0Z" fill="currentColor"/> </g> <g id="icon-chevron-left"> <path fill-rule="evenodd" clip-rule="evenodd" d="m10.08 11.87 4.95-4.95-1.061-1.06-4.95 4.95a1.75 1.75 0 0 0 0 2.474l4.95 4.95 1.06-1.06-4.95-4.95a.25.25 0 0 1 0-.354Z" fill="currentColor"/> </g> <g id="icon-chevron-right"> <path fill-rule="evenodd" clip-rule="evenodd" d="m14.42 12.224-4.95 4.95 1.061 1.06 4.95-4.95a1.75 1.75 0 0 0 0-2.474l-4.95-4.95-1.06 1.06 4.95 4.95a.25.25 0 0 1 0 .354Z" fill="currentColor"/> </g> <g id="icon-chevron-up"> <path fill-rule="evenodd" clip-rule="evenodd" d="m12.13 10.08 4.95 4.95 1.06-1.061-4.95-4.95a1.75 1.75 0 0 0-2.474 0l-4.95 4.95 1.06 1.06 4.95-4.95a.25.25 0 0 1 .354 0Z" fill="currentColor"/> </g> <g id="icon-envelope"> <path fill-rule="evenodd" clip-rule="evenodd" d="M4 6.5h16a.5.5 0 0 1 .5.5v10a.5.5 0 0 1-.5.5H4a.5.5 0 0 1-.5-.5V7a.5.5 0 0 1 .5-.5ZM2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7Zm4.416 1.376-.624-.416-.832 1.248.624.416 4.89 3.26a2.75 2.75 0 0 0 3.051 0l4.891-3.26.624-.416-.832-1.248-.624.416-4.89 3.26c-.42.28-.968.28-1.387 0l-4.891-3.26Z" fill="currentColor"/> </g> <g id="icon-facebook"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.226 1.27-2.995 2.14-5.318 2.328v-5.35h2.04l.39-2.61h-2.43v-1.695c0-.714.343-1.41 1.43-1.41H15.5v-2.22S14.495 7 13.537 7c-2.001 0-3.31 1.25-3.31 3.514v1.992H8v2.61h2.227v5.25c-1.93-.305-3.43-1.114-4.51-2.232C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5Zm-.472 18.492C5.516 21.787 2 17.654 2 12 2 6.1 5.6 2 12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10-.147 0-.293-.002-.437-.007l-.016.007-.019-.008Z" fill="currentColor"/> </g> <g id="icon-globe"> <path d="M19.4 4.8C17.6 3 15 2 12 2 8.9 2 6.4 3 4.6 4.8 2.9 6.6 2 9 2 12c0 2.9.9 5.4 2.6 7.2C6.4 21 9 22 12 22s5.6-1 7.4-2.8c1.7-1.8 2.6-4.3 2.6-7.2 0-2.9-.9-5.4-2.6-7.2Zm1.1 6.4H17c-.1-2.6-.5-4.8-1.3-6.5-.1-.3-.3-.6-.5-.8 1.2.4 2.2 1 3.1 1.8 1.3 1.5 2 3.3 2.2 5.5ZM12 20.5c-.9 0-1.7-.7-2.3-2-.7-1.4-1.1-3.4-1.2-5.8h7c-.1 2.3-.5 4.4-1.2 5.8-.6 1.3-1.4 2-2.3 2Zm-3.5-9.3c.1-2.3.5-4.3 1.2-5.8.6-1.3 1.4-1.9 2.3-1.9.9 0 1.7.7 2.3 1.9.7 1.4 1.1 3.4 1.2 5.8h-7ZM5.7 5.8C6.5 5 7.5 4.4 8.8 4c-.2.2-.4.5-.5.8-.8 1.6-1.2 3.8-1.3 6.4H3.5c.2-2.2.9-4 2.2-5.4Zm-2.2 6.9H7c.1 2.6.5 4.8 1.3 6.4.2.3.3.6.5.8-1.2-.4-2.2-1-3.1-1.9-1.3-1.2-2-3.1-2.2-5.3Zm14.8 5.4c-.8.9-1.9 1.5-3.1 1.9.2-.2.3-.5.5-.8.8-1.6 1.2-3.8 1.3-6.4h3.5c-.2 2.1-.9 4-2.2 5.3Z" fill="currentColor"/> </g> <g id="icon-google-podcasts"> <path d="M12 6.9c-.606 0-1.098-.476-1.098-1.063V4.562c0-.587.492-1.062 1.098-1.062.606 0 1.098.475 1.098 1.062v1.275c0 .587-.492 1.062-1.098 1.062ZM12 15.826c-.606 0-1.098-.476-1.098-1.063V9.24c0-.587.492-1.062 1.098-1.062.606 0 1.098.475 1.098 1.062v5.524c0 .587-.492 1.063-1.098 1.063ZM10.902 19.438c0 .587.492 1.062 1.098 1.062.606 0 1.098-.476 1.098-1.062v-1.275c0-.587-.492-1.063-1.098-1.063-.606 0-1.098.476-1.098 1.063v1.275ZM8.049 17.098c-.607 0-1.098-.476-1.098-1.063v-1.274c0-.587.491-1.063 1.098-1.063.606 0 1.097.476 1.097 1.063v1.274c0 .587-.49 1.063-1.097 1.063ZM14.854 9.24c0 .586.49 1.062 1.097 1.062s1.098-.476 1.098-1.063V7.964c0-.586-.491-1.062-1.098-1.062-.606 0-1.097.476-1.097 1.062V9.24ZM8.049 12.429c-.607 0-1.098-.476-1.098-1.062V7.542c0-.587.491-1.062 1.098-1.062.606 0 1.097.475 1.097 1.062v3.825c0 .586-.49 1.062-1.097 1.062ZM14.854 16.466c0 .587.49 1.062 1.097 1.062s1.098-.475 1.098-1.062V12.64c0-.586-.491-1.062-1.098-1.062-.606 0-1.097.476-1.097 1.062v3.825ZM4.098 13.704C3.49 13.704 3 13.228 3 12.64v-1.274c0-.587.491-1.063 1.098-1.063.606 0 1.097.476 1.097 1.063v1.274c0 .587-.491 1.063-1.097 1.063ZM18.805 12.641c0 .587.491 1.063 1.097 1.063.607 0 1.098-.476 1.098-1.063v-1.274c0-.587-.491-1.063-1.098-1.063-.606 0-1.097.476-1.097 1.063v1.274Z" fill="currentColor"/> </g> <g id="icon-instagram"> <path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H8A3.5 3.5 0 0 0 4.5 8v8A3.5 3.5 0 0 0 8 19.5h8a3.5 3.5 0 0 0 3.5-3.5V8A3.5 3.5 0 0 0 16 4.5ZM8 3a5 5 0 0 0-5 5v8a5 5 0 0 0 5 5h8a5 5 0 0 0 5-5V8a5 5 0 0 0-5-5H8Zm6.237 6.8C13.794 9.344 13.082 9 12 9c-1.11 0-1.818.347-2.25.796C9.308 10.253 9 10.976 9 12c0 .986.31 1.714.766 2.187.448.465 1.162.813 2.234.813s1.786-.348 2.234-.813C14.69 13.714 15 12.986 15 12c0-1.014-.313-1.738-.763-2.2ZM16.5 12c0-2.655-1.665-4.5-4.5-4.5-2.88 0-4.5 1.845-4.5 4.5 0 2.61 1.665 4.5 4.5 4.5s4.5-1.89 4.5-4.5ZM18 7c0-.59-.37-1-1-1-.64 0-1 .41-1 1 0 .58.37 1 1 1s1-.42 1-1Z" fill="currentColor"/> </g> <g id="icon-layer-group"> <path fill-rule="evenodd" clip-rule="evenodd" d="m6.09 7.984 5.672 3.166a.5.5 0 0 0 .486 0l5.665-3.132-5.672-3.166a.5.5 0 0 0-.485 0L6.09 7.983Zm-1.546.855 6.487 3.62a2 2 0 0 0 1.943.005l6.482-3.585.055-.03.703-.389a.5.5 0 0 0 .002-.874l-.702-.392-.054-.03-6.488-3.621a2 2 0 0 0-1.942-.004L4.548 7.123l-.055.03-.704.39a.5.5 0 0 0-.001.873l.701.392.055.03Zm2.254 6.758-1.543-.861-.706.39-.055.03-.703.39a.5.5 0 0 0-.002.873l.702.392.054.03h.001l6.487 3.621a2 2 0 0 0 1.942.004l6.482-3.584.055-.03.704-.39a.5.5 0 0 0 .002-.873l-.702-.392-.055-.03-.711-.398-1.546.855.71.397-5.665 3.133a.5.5 0 0 1-.485-.001l-5.672-3.166.706-.39Zm-1.543-4.861 1.543.86-.706.391 5.672 3.166a.5.5 0 0 0 .485 0l5.666-3.132-.712-.397 1.547-.855.71.397h.001l.055.031.702.392a.5.5 0 0 1-.002.874l-.704.389-.054.03-6.483 3.585a2 2 0 0 1-1.942-.004l-6.487-3.621-.055-.03-.702-.393a.5.5 0 0 1 .002-.874l.703-.389.055-.03.706-.39Z" fill="currentColor"/> </g> <g id="icon-linked-in"> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.093 4a2.125 2.125 0 0 0-2.124 2.122c0 1.17.953 2.122 2.124 2.122 1.17 0 2.122-.952 2.122-2.122S7.263 4 6.093 4Zm1.61 5.14H4.486a.259.259 0 0 0-.258.26v10.34c0 .143.115.258.258.258h3.219a.259.259 0 0 0 .259-.258V9.4a.259.259 0 0 0-.26-.26Zm5.358.93c.58-.631 1.535-1.187 2.828-1.187 3.625 0 4.114 2.62 4.114 5.184v5.672a.259.259 0 0 1-.259.259h-3.213a.259.259 0 0 1-.258-.259v-5.028c0-1.407-.104-2.484-1.413-2.484-1.202 0-1.67.672-1.67 2.396v5.116a.259.259 0 0 1-.259.258H9.72a.259.259 0 0 1-.26-.258V9.399c0-.143.117-.26.26-.26h3.082c.143 0 .259.117.259.26v.671Z" fill="currentColor"/> </g> <g id="icon-magnifying-glass"> <path fill-rule="evenodd" clip-rule="evenodd" d="M9.5 4.5c1.726 0 2.943.538 3.726 1.319.785.783 1.274 1.952 1.274 3.484 0 1.495-.486 2.669-1.278 3.464-.787.792-2.006 1.34-3.722 1.34-1.716 0-2.935-.548-3.722-1.34-.792-.795-1.278-1.969-1.278-3.464 0-1.543.48-2.71 1.253-3.488C6.523 5.04 7.736 4.5 9.5 4.5Zm0-1.5C13.595 3 16 5.584 16 9.303c0 3.656-2.405 6.303-6.5 6.303-4.095 0-6.5-2.647-6.5-6.303C3 5.584 5.34 3 9.5 3Zm6.405 11.845a.75.75 0 1 0-1.06 1.06l5.5 5.5 1.06-1.06-5.5-5.5Z" fill="currentColor"/> </g> <g id="icon-play"> <path d="m7 20 10.002-6.155c1.374-.846 1.374-2.844 0-3.69L7 4v16Z" fill="currentColor"/> </g> <g id="icon-podcast"> <path fill-rule="evenodd" clip-rule="evenodd" d="M9.75 2.25v19.5h-1.5V2.25h1.5Zm3 17.5V4.25h-1.5v15.5h1.5Zm-6-12.5v9.5h-1.5v-9.5h1.5Zm12 3v3.5h-1.5v-3.5h1.5Zm-3 5.5v-7.5h-1.5v7.5h1.5Zm-13-4.25c.473 0 .75.307.75.75 0 .435-.277.75-.75.75S2 12.685 2 12.25c0-.443.27-.75.75-.75Zm19.25.75c0-.443-.277-.75-.75-.75-.48 0-.75.307-.75.75 0 .435.277.75.75.75s.75-.315.75-.75Z" fill="currentColor"/> </g> <g id="icon-print"> <path fill-rule="evenodd" clip-rule="evenodd" d="M7.5 3.5v4H6V2h12v5.5h-1.5v-4h-9ZM18 18h2a2 2 0 0 0 2-2v-5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h2v4h12v-4Zm0-1.5h2a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5H4a.5.5 0 0 0-.5.5v5a.5.5 0 0 0 .5.5h2V14h12v2.5Zm-1.5 0v-1h-9v5h9v-4Z" fill="currentColor"/> </g> <g id="icon-quote"> <path d="M0 15.224v.147C0 18.375 2.32 20.5 5.366 20.5c3.045 0 5.22-2.125 5.22-5.13v-.146c0-2.345-1.305-4.103-3.408-4.836L9.208 3.5H3.77l-2.755 7.62C.29 12.88 0 14.126 0 15.225Zm13.414 0v.147c0 3.004 2.32 5.129 5.365 5.129 3.046 0 5.221-2.125 5.221-5.13v-.146c0-2.345-1.305-4.103-3.408-4.836l2.03-6.888h-5.438l-2.755 7.62c-.725 1.76-1.015 3.005-1.015 4.104Z" fill="currentColor"/> </g> <g id="icon-reddit"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.39 1.44-3.479 2.366-6.283 2.366-2.804 0-4.893-.926-6.283-2.366C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5ZM12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10S2 17.8 2 12C2 6.1 5.6 2 12 2Zm4.693 5.963a.954.954 0 0 0-.94-.963.895.895 0 0 0-.493.145.93.93 0 0 0-.339.396l-2.183-.476a.257.257 0 0 0-.179.032.264.264 0 0 0-.105.152l-.665 3.226c-1.402.044-2.658.466-3.564 1.147a1.315 1.315 0 0 0-.907-.378c-.727 0-1.318.607-1.318 1.353 0 .261.073.517.212.736.138.22.336.393.569.498-.021.13-.033.271-.033.412C6.748 16.322 9.1 18 12.011 18c2.91 0 5.262-1.678 5.262-3.757 0-.134-.01-.268-.032-.4.432-.217.759-.694.759-1.246 0-.746-.59-1.353-1.318-1.353-.358 0-.675.14-.907.379-.897-.66-2.14-1.094-3.511-1.148l.6-2.89 1.952.422c.013.25.121.484.3.654a.925.925 0 0 0 1.306-.03.977.977 0 0 0 .27-.668Zm-7.709 5.598c0-.53.422-.964.94-.964.516 0 .937.433.937.964 0 .53-.421.963-.938.963a.953.953 0 0 1-.939-.963Zm4.134 0c0-.531.421-.964.938-.964.517 0 .939.434.939.964s-.422.963-.939.963a.953.953 0 0 1-.938-.963Zm-3.343 2.187a.243.243 0 0 1 .268-.055c.03.013.057.031.08.055.4.412 1.265.563 1.888.563.622 0 1.476-.152 1.887-.563a.245.245 0 0 1 .348 0 .283.283 0 0 1-.021.357c-.643.66-1.867.704-2.225.704-.358 0-1.592-.055-2.225-.704a.258.258 0 0 1 0-.357Z" fill="currentColor"/> </g> <g id="icon-rss"> <path d="M5.5 17c.945 0 1.5.615 1.5 1.5 0 .87-.555 1.5-1.5 1.5S4 19.37 4 18.5c0-.885.54-1.5 1.5-1.5Z" fill="currentColor"/> <path d="M18.405 20v.05H19.159V20A15.159 15.159 0 0 0 4 4.84h-.05V5.596H4a14.405 14.405 0 0 1 14.405 14.404Z" fill="currentColor" stroke="currentColor" stroke-width=".5"/> <path d="M12.06 19.997v.1h.568v-.1A8.628 8.628 0 0 0 4 11.37h-.1v.569H4a8.06 8.06 0 0 1 8.06 8.06Z" fill="currentColor" stroke="currentColor" stroke-width=".5"/> </g> <g id="icon-soundcloud"> <path d="M7 17h1.25V9.128a3.214 3.214 0 0 0-1.25.69V17Zm-2.5-5.325v5.316l.08.009h1.17v-5.334H4.58l-.08.009ZM2 14.332c0 .968.504 1.808 1.25 2.276V12.06A2.675 2.675 0 0 0 2 14.332ZM9.5 17h1.25V9.475A3.12 3.12 0 0 0 9.5 9.03V17Zm9.92-5.333h-.704c.036-.218.058-.439.058-.667 0-2.21-1.733-4-3.87-4-1.16 0-2.195.534-2.904 1.37V17h7.42c1.424 0 2.58-1.194 2.58-2.668 0-1.472-1.156-2.665-2.58-2.665Z" fill="currentColor"/> </g> <g id="icon-spotify"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 3.5c2.815 0 4.902.908 6.287 2.333C19.678 7.265 20.5 9.364 20.5 12c0 2.58-.819 4.684-2.217 6.134-1.39 1.44-3.479 2.366-6.283 2.366-2.804 0-4.893-.926-6.283-2.366C4.319 16.684 3.5 14.58 3.5 12c0-2.647.803-4.744 2.18-6.171C7.048 4.41 9.13 3.5 12 3.5ZM12 2c6.3 0 10 4.1 10 10 0 5.8-3.7 10-10 10S2 17.8 2 12C2 6.1 5.6 2 12 2Zm3.355 14.164a.56.56 0 1 0 .586-.958c-2.372-1.45-5.313-1.787-8.741-1.003a.56.56 0 1 0 .25 1.094c3.132-.716 5.792-.424 7.905.867Zm.908-2.405a.702.702 0 0 0 .735-1.196c-2.779-1.707-6.842-2.188-10.11-1.196a.703.703 0 0 0 .407 1.343c2.862-.87 6.55-.438 8.968 1.049ZM6.867 9.935c2.77-.84 7.555-.682 10.456 1.04a.842.842 0 1 0 .86-1.447c-3.34-1.983-8.625-2.17-11.804-1.204a.842.842 0 0 0 .488 1.61Z" fill="currentColor"/> </g> <g id="icon-twitter"> <path d="M7.43644 0H0.0554206L9.23954 13.3075L0 24H2.56169L10.3768 14.9554L16.6191 24H24.0001L14.4803 10.2064L23.2993 0H20.7378L13.3428 8.55825L7.43644 0ZM11.6249 13.3737L3.58747 1.92749H6.256L20.4505 22.1423H17.7819L11.6249 13.3742V13.3737Z" fill="currentColor"/> </g> <g id="icon-user"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12 4.5c.925 0 1.512.293 1.87.66.363.375.63.974.63 1.84 0 .84-.264 1.444-.634 1.829-.363.375-.952.671-1.866.671-.914 0-1.503-.296-1.866-.671C9.764 8.444 9.5 7.84 9.5 7c0-.877.263-1.474.62-1.844.348-.36.93-.656 1.88-.656ZM12 3c2.52 0 4 1.64 4 4 0 2.32-1.48 4-4 4S8 9.32 8 7c0-2.36 1.44-4 4-4Zm4.814 13.275C15.772 15.203 14.184 14.5 12 14.5c-2.23 0-3.812.706-4.84 1.771C6.123 17.346 5.5 18.943 5.5 21H4c0-4.72 2.88-8 8-8 5.04 0 8 3.28 8 8h-1.5c0-2.046-.637-3.645-1.686-4.725Z" fill="currentColor"/> </g> <g id="icon-video"> <path fill-rule="evenodd" clip-rule="evenodd" d="M4 6.5h16a.5.5 0 0 1 .5.5v10a.5.5 0 0 1-.5.5H4a.5.5 0 0 1-.5-.5V7a.5.5 0 0 1 .5-.5ZM2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7Zm11.57 5.857L10 15V9l3.57 2.143a1 1 0 0 1 0 1.714Z" fill="currentColor"/> </g> <g id="icon-youtube"> <path d="M12 4.856c-.603 0-5.922.012-7.417.407A3.06 3.06 0 0 0 2.41 7.41C2.005 8.91 2 11.874 2 11.998c0 .125.005 3.088.412 4.59a3.06 3.06 0 0 0 2.172 2.147c1.494.394 6.814.406 7.415.406s5.922-.012 7.417-.408a3.06 3.06 0 0 0 2.172-2.146c.407-1.503.412-4.464.412-4.589 0-.124-.005-3.087-.412-4.588a3.06 3.06 0 0 0-2.172-2.147c-1.494-.395-6.814-.407-7.415-.407h-.002Zm0 12.782c-1.58 0-5.92-.065-7.023-.357A1.54 1.54 0 0 1 3.882 16.2c-.356-1.312-.361-4.172-.361-4.2 0-.03.005-2.89.36-4.202a1.54 1.54 0 0 1 1.096-1.082c1.102-.291 5.443-.356 7.022-.356 1.58 0 5.92.065 7.023.356.534.142.954.556 1.095 1.082.356 1.313.36 4.173.36 4.201 0 .029-.004 2.89-.36 4.201a1.541 1.541 0 0 1-1.095 1.082c-1.103.292-5.444.357-7.023.357Z" fill="currentColor"/> <path d="m14.41 11.997-3.598 2.399V9.598l3.599 2.4Z" fill="currentColor" stroke="currentColor"/> </g> <g id="icon-xing" > <path d="M6.08293 6.85766C5.93537 6.85766 5.81119 6.90951 5.74854 7.01091C5.68394 7.11555 5.69372 7.25044 5.76265 7.38695L7.42041 10.2566C7.42321 10.2621 7.42321 10.2656 7.42041 10.2706L4.81533 14.8677C4.74741 15.003 4.75073 15.139 4.81533 15.2438C4.87789 15.3447 4.98813 15.411 5.13586 15.411H7.5876C7.95412 15.411 8.13101 15.1636 8.2563 14.9375C8.2563 14.9375 10.804 10.4317 10.9032 10.2567C10.8932 10.2406 9.21765 7.31742 9.21765 7.31742C9.09533 7.10008 8.91114 6.85757 8.5351 6.85757L6.08293 6.85766Z" fill="currentColor"/> <path d="M16.3825 3.50025C16.0162 3.50025 15.8575 3.73095 15.726 3.96725C15.726 3.96725 10.4441 13.3342 10.27 13.6418C10.279 13.6584 13.7537 20.033 13.7537 20.033C13.8754 20.2504 14.0632 20.5 14.4388 20.5H16.8876C17.0354 20.5 17.1508 20.4444 17.213 20.3433C17.2784 20.2388 17.2766 20.1005 17.208 19.9644L13.7515 13.6493C13.7499 13.647 13.7491 13.6442 13.7491 13.6413C13.7491 13.6384 13.7499 13.6356 13.7515 13.6333L19.1799 4.03507C19.2482 3.89958 19.2496 3.76138 19.1851 3.65666C19.1225 3.55568 19.0068 3.5 18.859 3.5L16.3825 3.50025Z" fill="currentColor"/> </g> </defs> </svg> <div id="page" class="site"> <header class="header header--bg-iw-blue"> <div id="primaryNav" class="container header__container"> <!-- header logo --> <div class="header__logo-container"> <a href="https://www.infoworld.com" aria-label="Home page"> <svg width="149" height="30" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 360 74"><defs><style>.cls-1{fill:none;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="InfoWorld"><polygon points="0.53 3.28 0.53 11.67 8.67 11.67 8.67 63.88 0.53 63.88 0.53 72.3 29.17 72.3 29.17 63.88 20.89 63.88 20.89 11.67 29.17 11.67 29.17 3.28 0.53 3.28"/><path d="M46.72,24.8,44.22,27V20.15H25.91V28.2h6.18v44H44.24c0-1.42,0-36.91,0-36.91l.54-.44C48,32.28,51.17,31,54.31,31A5.28,5.28,0,0,1,59,33.28c.87,1.35,1.3,3.53,1.3,6.84V72.19H72.47c0-1.41,0-33.41,0-33.41,0-13.12-4.2-19.51-12.84-19.51-4.31,0-8.66,1.87-12.93,5.53"/><path d="M83.11,5.38h0a18.25,18.25,0,0,0-4,12v2.35H73.66v8.48h5.48V72.3H90.35V28.21H101.9V19.73H90.44V16.54c0-5.16,1.79-6.94,4.5-8,2.47-1,6.52-.79,10,1.24V2.82A25.63,25.63,0,0,0,94.84.7c-5,0-9.26,1.71-11.73,4.68"/><path d="M112.33,46.5c0-12.37,4.17-18.65,12.38-18.65a10.69,10.69,0,0,1,9.29,5c2.12,3.11,3.2,7.43,3.2,12.83,0,6.13-1.11,10.74-3.31,13.72a10.93,10.93,0,0,1-9.18,4.74,10.32,10.32,0,0,1-9.49-5.34,24,24,0,0,1-2.89-12.31M106.71,26h0c-4.93,4.82-7.41,11.57-7.41,20s2.48,15.21,7.41,20a25,25,0,0,0,18.05,7.19A24.73,24.73,0,0,0,142.91,66c4.86-4.87,7.32-11.57,7.32-20s-2.49-15.22-7.39-20a26.29,26.29,0,0,0-36.13,0"/><path d="M224.75,46.5c0-12.37,4.16-18.65,12.36-18.65a10.73,10.73,0,0,1,9.31,5c2.11,3.11,3.17,7.43,3.17,12.83,0,6.13-1.1,10.74-3.3,13.72a10.92,10.92,0,0,1-9.18,4.74,10.31,10.31,0,0,1-9.48-5.34,24.06,24.06,0,0,1-2.88-12.31M219.13,26h0c-4.93,4.82-7.43,11.57-7.43,20s2.5,15.21,7.43,20A26.26,26.26,0,0,0,255.32,66c4.86-4.87,7.32-11.57,7.32-20s-2.49-15.22-7.4-20a26.26,26.26,0,0,0-36.11,0"/><path d="M279.68,33.37V20.15H262.8V28.2h4.9s0,42.56,0,44h12.21V53.75c0-4.85.27-8.88,1.8-12.33,1.61-3.62,3.74-6,6.33-7.16a26.8,26.8,0,0,1,8.57-1.51V19.3c-5.48,0-13.95,5.73-16.89,14.07"/><polygon points="295.59 1.12 295.59 9.85 300.01 9.85 300.01 72.3 312.36 72.3 312.36 1.12 295.59 1.12"/><path d="M337.76,64.15c-3.71,0-6.52-1.79-8.35-5.34a26.62,26.62,0,0,1-2.55-12.31c0-12.37,3.67-18.65,10.9-18.65,3.45,0,6.21,1.68,8.19,5,1.86,3.11,2.81,7.43,2.81,12.83,0,6.13-1,10.74-2.92,13.72-2,3.15-4.76,4.74-8.08,4.74m4.54-63V9.85h4.77v14a15.41,15.41,0,0,0-11.25-5c-5.72,0-10.62,2.43-14.57,7.19s-6,11.56-6,20,2,15.21,6,20,8.85,7.19,14.57,7.19a15.78,15.78,0,0,0,11.25-5v3.86h12.4V1.12Z"/><path d="M200,3v9.25h5.56l-9,40.57L187,3.07h0V3H170.84v9.25h6.35l0,.24L168.6,52.91l-9.75-40.66h6V3H141.63v9.25h4.87S161.8,71,162.09,72h10l9.27-40.83,9,40.83h10.77c.3-1,13.6-59.7,13.6-59.7h5.13V3Z"/></g><rect class="cls-1" width="360" height="74"/></g></g></svg> </a> </div> <nav class="header__nav"> <!-- primary menu nevigation --> <div class="header__nav-left"> <ul class="header__nav-items"> <li class="header__nav-item"> <button class="header__nav-link" type="button" aria-label="Open topics menu" data-menu-trigger="topics"> <span> <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-layer-group"></use> </svg> Topics </span> </button> </li> <li class='header__nav-item'><a class='header__nav-link' href='https://www.infoworld.com/spotlight-ai-in-enterprise/'>Spotlight: AI in Enterprise</a></li><li class='header__nav-item'><a class='header__nav-link' href='https://www.infoworld.com/videos/'>Videos</a></li><li class='header__nav-item'><a class='header__nav-link' href='/newsletters/signup/'>Newsletters</a></li><li class='header__nav-item'><a class='header__nav-link' href='https://us.resources.infoworld.com/'>Resources</a></li> </ul> </div> <!-- right side header navigation --> <div class="header__nav-right"> <button class="header__icon-button" type="button" aria-label="Open search" data-menu-trigger="search" > <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" > <use xlink:href="#icon-magnifying-glass"></use> </svg> </button> <button class="header__main-menu-button header__main-menu-button--mobile" type="button" aria-label="Open main menu" data-menu-trigger="main-mobile"> <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-bars"></use> </svg> </button> <button class="header__main-menu-button" type="button" aria-label="Open main menu" data-menu-trigger="main"> <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-bars"></use> </svg> </button> </div> <!-- right section menu container --> <div class="header__menu" data-menu="main"> <div class="container container--no-padding header__menu-container"> <button class="header__menu-close-main-button" type="button" aria-label="Close main menu" data-menu-close="main"> <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-xmark"></use> </svg> </button> <div class="container grid header__menu-content"><div class="col-12 col-3@lg"><h2 class="header__menu-title header__menu-title--large">About</h2><ul class="header__menu-items"><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/about-us/">About us</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/our-brands/infoworld/">Advertise</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/contact-us/">Contact Us</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/work-here/">Foundry Careers</a></li><li class="header__menu-item"><a class="header__menu-link" href="/newsletters/signup/">Newsletters</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/contact-us/#republication-permissions">Reprints</a></li></ul></div><div class="col-12 col-3@lg"><h2 class="header__menu-title header__menu-title--large">Policies</h2><ul class="header__menu-items"><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/terms-of-service-agreement/">Terms of Service</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/privacy-policy/">Privacy Policy</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/cookie-policy/">Cookie Policy</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/copyright-notice/">Copyright Notice</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/member-preferences/">Member Preferences</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/about-adchoices/">About AdChoices</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/e-commerce-affiliate-relationships/">E-commerce Affiliate Relationships</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/your-california-privacy-rights/">Your California Privacy Rights</a></li></ul></div><div class="col-12 col-3@lg"><h2 class="header__menu-title header__menu-title--large">Our Network</h2><ul class="header__menu-items"><li class="header__menu-item"><a class="header__menu-link" href="https://www.cio.com/">CIO</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.computerworld.com/">Computerworld</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.csoonline.com/">CSO</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.networkworld.com/">Network World</a></li></ul></div><div class="col-12 col-3@lg"><h2 class="header__menu-title header__menu-title--large">More</h2><ul class="header__menu-items"><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/blogs/">Blogs</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/brandposts/">BrandPosts</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/events/">Events</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/videos/">Videos</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/enterprise-buyers-guide/">Enterprise Buyer鈥檚 Guides</a></li></div> </div> </div> </nav> </div> <!-- Topic menu --> <div class="header__menu" data-menu="topics"> <div class="container container--no-padding header__menu-container"> <div class="container grid header__menu-content"> <div class="header__menu-close-button"> <button class="button button--quaternary" type="button" data-menu-close="topics" aria-label="Close topics menu"> <span>Close</span> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-xmark"></use> </svg> </span> </button> </div> <div class='col-12 col-6@lg'> <ul class='header__menu-items header__menu-items--large'><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/analytics/'>Analytics</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/artificial-intelligence/'>Artificial Intelligence</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/generative-ai/'>Generative AI</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/careers/'>Careers</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/cloud-computing/'>Cloud Computing</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/data-management/'>Data Management</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/database/'>Databases</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/emerging-technology/'>Emerging Technology</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/technology-business/'>Technology Industry</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/security/'>Security</a></li></ul></div><div class='col-12 col-6@lg'> <ul class='header__menu-items header__menu-items--large'><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/software-development/'>Software Development</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/microsoft-net/'>Microsoft .NET</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/development-tools/'>Development Tools</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/devops/'>Devops</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/open-source/'>Open Source</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/programming-languages/'>Programming Languages</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/java/'>Java</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/javascript/'>JavaScript</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/python/'>Python</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/enterprise-buyers-guide/'>Enterprise Buyer鈥檚 Guides</a></li></ul></div> </div> </div> </div> <!-- edition menu --> <div class="header__menu" data-menu="location"> <div class="container container--no-padding header__menu-container"> <div class="header__menu-back-button"> <button class="button button--quaternary" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-chevron-left"></use> </svg> </span> <span>Back</span> </button> </div> <div class="container grid header__menu-content"> <div class="header__menu-close-button"> <button class="button button--quaternary" type="button" data-menu-close="location" aria-label="Close location menu"> <span>Close</span> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-xmark"></use> </svg> </span> </button> </div> </div> </div> </div> <div class="header__menu header__menu--inverted" data-menu="search"> <div class="header__menu-container"> <div class="header__menu-back-button"> <button class="button button--quaternary" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-chevron-left"></use> </svg> </span> <span>Back</span> </button> </div> <div class="container header__menu-content"> <div class="header__menu-close-button"> <button class="button button--quaternary" type="button" data-menu-close="search" aria-label="Close search"> <span>Close</span> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-xmark"></use> </svg> </span> </button> </div> <div class="google-programmable-search"> <div class="google-programmable-search__searchbox"> <div class="gcse-searchbox-only" data-resultsUrl="https://www.infoworld.com/search"></div> </div> <div class="grid google-programmable-search__popular-topics-container"> <div class="col-12 google-programmable-search__popular-topics-title"> Popular Topics </div> <div class="col-12 col-6@lg"> <div class='grid grid--cols-6@lg'> <ul class='col-12 col-6@md col-3@lg google-programmable-search__menu-items'><li><a class='google-programmable-search__menu-link' href='https://www.infoworld.com/artificial-intelligence/'>Artificial Intelligence</a></li><li><a class='google-programmable-search__menu-link' href='https://www.infoworld.com/cloud-computing/'>Cloud Computing</a></li></ul><ul class='col-12 col-6@md col-3@lg google-programmable-search__menu-items'><li><a class='google-programmable-search__menu-link' href='https://www.infoworld.com/data-management/'>Data Management</a></li><li><a class='google-programmable-search__menu-link' href='https://www.infoworld.com/software-development/'>Software Development</a></li></ul></div> </div> </div> </div> </div> </div> </div> <div id="primaryNav" class="header__menu" data-menu="main-mobile"> <div class="container container--no-padding header__menu-container"> <button class="header__menu-close-main-button" type="button" aria-label="Close main menu" data-menu-close="main-mobile"> <svg class="icon icon--lg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-xmark"></use> </svg> </button> <div class="container grid header__menu-content"> <div class="col-12"> <ul class="header__menu-items header__menu-items--small"> <li class="header__menu-item"> <button class="header__menu-link" type="button" aria-label="Open search" data-menu-trigger="search"> <span> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-magnifying-glass"></use> </svg> </span> <span>Search</span> </button> </li> </ul> </div> <div class="col-12"> <ul class="header__menu-items"> <li class="header__menu-item"> <button class="header__menu-link" type="button" aria-label="Open topics menu" data-menu-trigger="topics-mobile"> <span>Topics</span> <span> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-layer-group"></use> </svg> </span> </button> </li> <li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/spotlight-ai-in-enterprise/'>Spotlight: AI in Enterprise</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/videos/'>Videos</a></li><li class='header__menu-item'><a class='header__menu-link' href='/newsletters/signup/'>Newsletters</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://us.resources.infoworld.com/'>Resources</a></li><li class='header__menu-item'><button class='header__menu-link' type='button' data-menu-trigger='hamburger-100007742'>About</button><li class='header__menu-item'><button class='header__menu-link' type='button' data-menu-trigger='hamburger-100007749'>Policies</button><li class='header__menu-item'><button class='header__menu-link' type='button' data-menu-trigger='hamburger-100007758'>Our Network</button><li class='header__menu-item'><button class='header__menu-link' type='button' data-menu-trigger='hamburger-100007763'>More</button> </ul> </div> </div> </div> </div> <div class="header__menu" data-menu="topics-mobile"> <div class="container container--no-padding header__menu-container"> <div class="header__menu-back-button"> <button class="button button--quaternary" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <span> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-circle-chevron-left"></use> </svg> </span> <span>Back</span> </button> </div> <div class="container grid header__menu-content"> <div class="col-12"> <h2 class="header__menu-title"> <span>Topics</span> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-layer-group"></use> </svg> </h2> <ul class="header__menu-items header__menu-items--small header__menu-items--divider"> <li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/analytics/'>Analytics</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/artificial-intelligence/'>Artificial Intelligence</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/generative-ai/'>Generative AI</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/careers/'>Careers</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/cloud-computing/'>Cloud Computing</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/data-management/'>Data Management</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/database/'>Databases</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/emerging-technology/'>Emerging Technology</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/technology-business/'>Technology Industry</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/security/'>Security</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/software-development/'>Software Development</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/microsoft-net/'>Microsoft .NET</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/development-tools/'>Development Tools</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/devops/'>Devops</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/open-source/'>Open Source</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/programming-languages/'>Programming Languages</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/java/'>Java</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/javascript/'>JavaScript</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/python/'>Python</a></li><li class='header__menu-item'><a class='header__menu-link' href='https://www.infoworld.com/enterprise-buyers-guide/'>Enterprise Buyer鈥檚 Guides</a></li> </ul> </div> </div> </div> </div> <!-- hamburger menu --> <div class="header__menu" data-menu="hamburger-100007742"> <div class="container header__menu-container"> <button class="button button--quaternary header__menu-back-button" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <circle cx="12" cy="12" r="9" stroke="currentColor" /> <path d="m9.976 11.22.312.39-.312-.39Zm4.336 4.39-4.024-3.22-.624.781 4.024 3.22.624-.781Zm-4.024-4 4.024-3.22-.624-.78-4.024 3.219.624.78Zm0 .78a.5.5 0 0 1 0-.78l-.624-.781a1.5 1.5 0 0 0 0 2.342l.624-.78Z" fill="currentColor" /> </svg> Back </button> <div class="grid header__menu-content"> <button class="header__menu-close-button" type="button" aria-label="Close hamburger menu" data-menu-close="hamburger"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <path stroke="currentColor" stroke-width="2" d="M1.293 22.506 22.506 1.293M1.707 1.293 22.92 22.506" /> </svg> </button> <div class="col-12 col-2@lg"><h2 class="header__menu-title">About</h2><ul class="header__menu-items header__menu-items--small header__menu-items--divider"><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/about-us/">About us</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/our-brands/infoworld/">Advertise</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/contact-us/">Contact Us</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/work-here/">Foundry Careers</a></li><li class="header__menu-item"><a class="header__menu-link" href="/newsletters/signup/">Newsletters</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/contact-us/#republication-permissions">Reprints</a></li></ul></div> </div> </div> </div> <div class="header__menu" data-menu="hamburger-100007749"> <div class="container header__menu-container"> <button class="button button--quaternary header__menu-back-button" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <circle cx="12" cy="12" r="9" stroke="currentColor" /> <path d="m9.976 11.22.312.39-.312-.39Zm4.336 4.39-4.024-3.22-.624.781 4.024 3.22.624-.781Zm-4.024-4 4.024-3.22-.624-.78-4.024 3.219.624.78Zm0 .78a.5.5 0 0 1 0-.78l-.624-.781a1.5 1.5 0 0 0 0 2.342l.624-.78Z" fill="currentColor" /> </svg> Back </button> <div class="grid header__menu-content"> <button class="header__menu-close-button" type="button" aria-label="Close hamburger menu" data-menu-close="hamburger"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <path stroke="currentColor" stroke-width="2" d="M1.293 22.506 22.506 1.293M1.707 1.293 22.92 22.506" /> </svg> </button> <div class="col-12 col-2@lg"><h2 class="header__menu-title">Policies</h2><ul class="header__menu-items header__menu-items--small header__menu-items--divider"><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/terms-of-service-agreement/">Terms of Service</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/privacy-policy/">Privacy Policy</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/cookie-policy/">Cookie Policy</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://foundryco.com/copyright-notice/">Copyright Notice</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/member-preferences/">Member Preferences</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/about-adchoices/">About AdChoices</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/e-commerce-affiliate-relationships/">E-commerce Affiliate Relationships</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/your-california-privacy-rights/">Your California Privacy Rights</a></li></ul></div> </div> </div> </div> <div class="header__menu" data-menu="hamburger-100007758"> <div class="container header__menu-container"> <button class="button button--quaternary header__menu-back-button" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <circle cx="12" cy="12" r="9" stroke="currentColor" /> <path d="m9.976 11.22.312.39-.312-.39Zm4.336 4.39-4.024-3.22-.624.781 4.024 3.22.624-.781Zm-4.024-4 4.024-3.22-.624-.78-4.024 3.219.624.78Zm0 .78a.5.5 0 0 1 0-.78l-.624-.781a1.5 1.5 0 0 0 0 2.342l.624-.78Z" fill="currentColor" /> </svg> Back </button> <div class="grid header__menu-content"> <button class="header__menu-close-button" type="button" aria-label="Close hamburger menu" data-menu-close="hamburger"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <path stroke="currentColor" stroke-width="2" d="M1.293 22.506 22.506 1.293M1.707 1.293 22.92 22.506" /> </svg> </button> <div class="col-12 col-2@lg"><h2 class="header__menu-title">Our Network</h2><ul class="header__menu-items header__menu-items--small header__menu-items--divider"><li class="header__menu-item"><a class="header__menu-link" href="https://www.cio.com/">CIO</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.computerworld.com/">Computerworld</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.csoonline.com/">CSO</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.networkworld.com/">Network World</a></li></ul></div> </div> </div> </div> <div class="header__menu" data-menu="hamburger-100007763"> <div class="container header__menu-container"> <button class="button button--quaternary header__menu-back-button" type="button" data-menu-trigger="main-mobile" aria-label="Back to main menu"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <circle cx="12" cy="12" r="9" stroke="currentColor" /> <path d="m9.976 11.22.312.39-.312-.39Zm4.336 4.39-4.024-3.22-.624.781 4.024 3.22.624-.781Zm-4.024-4 4.024-3.22-.624-.78-4.024 3.219.624.78Zm0 .78a.5.5 0 0 1 0-.78l-.624-.781a1.5 1.5 0 0 0 0 2.342l.624-.78Z" fill="currentColor" /> </svg> Back </button> <div class="grid header__menu-content"> <button class="header__menu-close-button" type="button" aria-label="Close hamburger menu" data-menu-close="hamburger"> <svg class="icon icon--sm" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <path stroke="currentColor" stroke-width="2" d="M1.293 22.506 22.506 1.293M1.707 1.293 22.92 22.506" /> </svg> </button> <div class="col-12 col-2@lg"><h2 class="header__menu-title">More</h2><ul class="header__menu-items header__menu-items--small header__menu-items--divider"><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/blogs/">Blogs</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/brandposts/">BrandPosts</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/events/">Events</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/videos/">Videos</a></li><li class="header__menu-item"><a class="header__menu-link" href="https://www.infoworld.com/enterprise-buyers-guide/">Enterprise Buyer鈥檚 Guides</a></li> </header> <div class="advert-sticky ad ad-banner has-ad-prefix is-sticky page-ad advert--bg-iw-blue" data-ad-template="banner" data-ofp="false"></div><div class="advert"> <div class="container advert__container"> <div class="advert__content"><div class="ad ad-overlay" data-ad-template="overlay" data-ofp="true"></div></div></div></div><div class="advert"> <div class="container advert__container"> <div class="advert__content"><div class="ad ad-skin" data-ad-template="skin" data-ofp="true"></div></div></div></div> <main id="primary" class="site-main static-page-wrapper"> <section class="topic-hero topic-hero--bg-iw-blue"> <div class="container"> <div class="topic-hero__breadcrumbs"> <div class="breadcrumbs"> <a class="breadcrumbs__item" href="https://www.infoworld.com/">Home</a><a class="breadcrumbs__item" href="">Cloud Computing</a> </div> </div> <div class="topic-hero__container"> <div class="topic-hero__content"> <h1 class="topic-hero__title">Cloud Computing</h1> <p class="topic-hero__description">Cloud Computing | News, how-tos, features, reviews, and videos </p> </div> <div class="topic-hero__links"> <div class="jump-links"> <div class="jump-links__text">Jump to</div> <div class="jump-links__links"> <a class="chip chip--anchor" href="#latest">Latest</a> <a class="chip chip--anchor" href="#article">Articles</a> <a class="chip chip--anchor" href="#upcoming_events">Events</a> <a class="chip chip--anchor" href="#resources">Resources</a> <a class="chip chip--anchor" href="#podcast">Podcasts</a> </div> </div> </div> </div> </div> </section> <article id="post-100007594" class="post-100007594 page type-page status-publish"> <div class="entry-content"> <div id="remove_no_follow"> <section class="wp-block-bigbite-multi-title"><div class="container"></div></section> <section class="latest-content " id="latest"> <div class="container"><div class="latest-content__head"><h2 class="latest-content__title" id="latest-from-today">Latest from today</h2></div><div class="grid latest-content__content"><div class="col-12 col-7@md col-8@lg"><div class="latest-content__content-featured"><a class="card card--xxl " href="https://www.infoworld.com/article/3557641/typescript-5-7-arrives-with-improved-error-reporting.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type">news</span></div><div class="card__image"><div class="insider-image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?quality=50&strip=all&w=1046" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?quality=50&strip=all 8256w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=300%2C200&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=768%2C512&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=1024%2C683&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=1536%2C1024&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=2048%2C1365&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=1240%2C826&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=150%2C100&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=1046%2C697&quality=50&strip=all 1046w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=252%2C168&quality=50&strip=all 252w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=126%2C84&quality=50&strip=all 126w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=720%2C480&quality=50&strip=all 720w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=540%2C360&quality=50&strip=all 540w, https://www.infoworld.com/wp-content/uploads/2024/11/3557641-0-23318300-1732305514-shutterstock_1702515205.jpg?resize=375%2C250&quality=50&strip=all 375w" data-id="idg_render_hero_index_one_card_image" sizes=" (min-resolution: 3dppx) and (max-width: 600px) 900px, (min-resolution: 3dppx) and (max-width: 1200px) 1200px, (min-resolution: 2dppx) and (max-width: 600px) 900px, (min-resolution: 2dppx) and (max-width: 1200px) 1200px, (min-resolution: 1dppx) and (max-width: 600px) 900px, (min-resolution: 1dppx) and (max-width: 2000px) 1300px" alt="Image" loading="eager" width="400px"></div></div></div><h4 class="card__title" id="typescript-5-7-arrives-with-improved-error-reporting">TypeScript 5.7 arrives with improved error reporting</h4><p class="card__description">Microsoft’s strongly typed JavaScript is now available in a production release, featuring new checks for variables that were never initialized.</p><div class="card__info"><span>By Paul Krill</span></div><div class="card__info card__info--light"><span>Nov 22, 2024</span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">JavaScript</span></span><span class="card__tag"><span class="tag">Typescript</span></span><span class="card__tag"><span class="tag">Programming Languages</span></span></div></a> </div><div class="grid grid--cols-7@md grid--cols-8@lg latest-content__content-main"><div class="col-12 col-7@md col-4@lg latest-content__card-main"><a class="card " href="https://www.infoworld.com/article/3491404/jdk-24-the-new-features-in-java-24.html" aria-label="Go to content"><div class="card__header"><span class="card__content-type">news</span></div><div class="card__image"> <div class="insider-image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?quality=50&strip=all&w=1046" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?quality=50&strip=all 5760w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=300%2C200&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=768%2C512&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=1024%2C683&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=1536%2C1024&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=2048%2C1365&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=1240%2C826&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=150%2C100&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=1046%2C697&quality=50&strip=all 1046w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=252%2C168&quality=50&strip=all 252w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=126%2C84&quality=50&strip=all 126w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=720%2C480&quality=50&strip=all 720w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=540%2C360&quality=50&strip=all 540w, https://www.infoworld.com/wp-content/uploads/2024/11/3491404-0-73630200-1732302745-shutterstock_560673883-100938137-orig.jpg?resize=375%2C250&quality=50&strip=all 375w" data-id="idg_render_hero_index_two_three_break" sizes="(min-resolution: 3dppx) and (max-width: 600px) 600px, (min-resolution: 3dppx) and (max-width: 1200px) 900px, (min-resolution: 2dppx) and (max-width: 600px) 600px, (min-resolution: 2dppx) and (max-width: 1200px) 900px, (min-resolution: 1dppx) and (max-width: 600px) 600px, (min-resolution: 1dppx) and (max-width: 2000px) 1024px" alt="Image" loading="lazy" width="400px"></div></div></div><h4 class="card__title" id="jdk-24-the-new-features-in-java-24">JDK 24: The new features in Java 24</h4><div class="card__info"><span>By Paul Krill</span></div><div class="card__info card__info--light"><span>Nov 22, 2024</span><span>13 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Programming Languages</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></a></div><div class="col-12 col-7@md col-4@lg latest-content__card-main"><span class="nativo-loading"></span><a id="nativofeatuedmed-1" class="card nativo" href="https://www.infoworld.com/article/3610696/aws-prepares-to-command-an-army-of-ai-agents.html" backfill="true" aria-label="Go to content"><div class="card__header"><span class="card__content-type">analysis</span></div><div class="card__image"> <div class="insider-image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?quality=50&strip=all&w=1046" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?quality=50&strip=all 2400w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=300%2C200&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=768%2C512&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=1024%2C683&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=1536%2C1024&quality=50&strip=all 1536w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=2048%2C1365&quality=50&strip=all 2048w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=1240%2C826&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=150%2C100&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=1046%2C697&quality=50&strip=all 1046w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=252%2C168&quality=50&strip=all 252w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=126%2C84&quality=50&strip=all 126w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=720%2C480&quality=50&strip=all 720w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=540%2C360&quality=50&strip=all 540w, https://www.infoworld.com/wp-content/uploads/2024/11/3610696-0-57503100-1732294387-robot-wearing-suit-by-phonlamai-photo-via-shutterstock.jpg?resize=375%2C250&quality=50&strip=all 375w" data-id="idg_render_hero_index_two_three_break" sizes="(min-resolution: 3dppx) and (max-width: 600px) 600px, (min-resolution: 3dppx) and (max-width: 1200px) 900px, (min-resolution: 2dppx) and (max-width: 600px) 600px, (min-resolution: 2dppx) and (max-width: 1200px) 900px, (min-resolution: 1dppx) and (max-width: 600px) 600px, (min-resolution: 1dppx) and (max-width: 2000px) 1024px" alt="Image" loading="lazy" width="400px"></div></div></div><h4 class="card__title" id="aws-prepares-to-command-an-army-of-ai-agents">AWS prepares to command an army of AI agents</h4><div class="card__info"><span>By David Linthicum</span></div><div class="card__info card__info--light"><span>Nov 22, 2024</span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Cloud Native</span></span><span class="card__tag"><span class="tag">Artificial Intelligence</span></span></div></a></div></div></div><div class="col-12 col-5@md col-4@lg latest-content__content-secondary"><div class="latest-content__card-secondary"><a class="card " href="https://www.infoworld.com/article/3610712/angular-19-bolsters-server-side-rendering-with-incremental-hydration.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">news</span></div><h4 class="card__title" id="angular-19-bolsters-server-side-rendering-with-incremental-hydration">Angular 19 bolsters server-side rendering with incremental hydration</h4><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 21, 2024</span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Angular</span></span><span class="card__tag"><span class="tag">JavaScript</span></span><span class="card__tag"><span class="tag">Web Development</span></span></div></a> </div><div class="latest-content__card-secondary"><span class="nativo-loading"></span><a id="nativocardgrid-1" class="card nativo" href="https://www.infoworld.com/article/3610508/red-hat-linux-to-be-official-wsl-distro.html" backfill="true" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">news</span></div><h4 class="card__title" id="red-hat-linux-to-be-official-wsl-distro">Red Hat Linux to be official WSL distro</h4><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 21, 2024</span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Development Tools</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></a> </div><div class="latest-content__card-secondary"><a class="card " href="https://www.infoworld.com/article/3595651/advanced-programming-with-java-generics.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">how-to</span></div><h4 class="card__title" id="advanced-programming-with-java-generics">Advanced programming with Java generics</h4><div class="card__info"><span>By Rafael del Nero</span></div> <div class="card__info card__info--light"><span>Nov 21, 2024</span><span>18 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Programming Languages</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></a> </div><div class="latest-content__card-secondary"><a class="card " href="https://www.infoworld.com/article/3609931/rhel-ai-jboss-eap-8-coming-to-azure-cloud.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">news</span></div><h4 class="card__title" id="rhel-ai-jboss-eap-8-coming-to-azure-cloud">RHEL AI, JBoss EAP 8 coming to Azure cloud</h4><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 20, 2024</span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Microsoft Azure</span></span></div></a> </div><div class="latest-content__card-secondary"><a class="card " href="https://www.infoworld.com/article/3609843/azure-container-apps-launches-python-javascript-interpreters.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">news</span></div><h4 class="card__title" id="azure-container-apps-launches-python-javascript-interpreters">Azure Container Apps launches Python, JavaScript interpreters </h4><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 20, 2024</span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">JavaScript</span></span><span class="card__tag"><span class="tag">Python</span></span><span class="card__tag"><span class="tag">Cloud Computing</span></span></div></a> </div><div class="latest-content__card-secondary"><a class="card " href="https://www.infoworld.com/article/2255250/what-is-rust-safe-fast-and-easy-software-development.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">feature</span></div><h4 class="card__title" id="what-is-rust-safe-fast-and-easy-software-development">What is Rust? Safe, fast, and easy software development</h4><div class="card__info"><span>By Serdar Yegulalp</span></div> <div class="card__info card__info--light"><span>Nov 20, 2024</span><span>11 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Rust</span></span><span class="card__tag"><span class="tag">Programming Languages</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></a> </div></div></div></div></section><div class="advert"> <div class="container advert__container"> <div class="advert__content"><div class="ad page-ad has-ad-prefix ad-article" data-ad-template="article" data-ofp="false"></div></div></div></div> <div class="content-listing-articles" id="article"><div class="container"><h2 class="content-listing-articles__title" id="articles">Articles</h2><div class="content-listing-articles__container content-listing-articles__container--collapsed" data-collapse-articles="6" data-content-listing-articles><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/3608206/kotlin-for-java-developers-classes-and-coroutines.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">how-to</span></div><h4 class="card__title" id="kotlin-for-java-developers-classes-and-coroutines">Kotlin for Java developers: Classes and coroutines</h4><p class="card__description">Kotlin was designed to bring more flexibility and flow to programming in the JVM. Here's an in-depth look at how Kotlin makes working with classes and objects easier and introduces coroutines to modernize concurrency. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Matthew Tyson</span></div> <div class="card__info card__info--light"><span>Nov 20, 2024 </span><span>9 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Kotlin</span></span><span class="card__tag"><span class="tag">Programming Languages</span></span></div></div></div></a></div><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/3609020/azure-ai-foundry-tools-up-for-changes-in-ai-applications.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">analysis</span></div><h4 class="card__title" id="azure-ai-foundry-tools-up-for-changes-in-ai-applications">Azure AI Foundry tools up for changes in AI applications</h4><p class="card__description">Microsoft’s launch of Azure AI Foundry at Ignite 2024 signals a welcome shift from chatbots to agents and to using AI for business process automation.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Simon Bisson</span></div> <div class="card__info card__info--light"><span>Nov 20, 2024 </span><span>7 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Microsoft Azure</span></span><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Development Tools</span></span></div></div></div></a></div><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/3609153/microsoft-unveils-imaging-apis-for-windows-copilot-runtime.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">news</span></div><h4 class="card__title" id="microsoft-unveils-imaging-apis-for-windows-copilot-runtime">Microsoft unveils imaging APIs for Windows Copilot Runtime</h4><p class="card__description">Generative AI-backed APIs will allow developers to build image super resolution, image segmentation, object erase, and OCR capabilities into Windows applications. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 19, 2024 </span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">APIs</span></span><span class="card__tag"><span class="tag">Development Libraries and Frameworks</span></span></div></div></div></a></div><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/3609015/microsoft-extends-entra-id-to-wsl-winget.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">news</span></div><h4 class="card__title" id="microsoft-extends-entra-id-to-wsl-winget">Microsoft extends Entra ID to WSL, WinGet </h4><p class="card__description">Iintegration with Entra ID brings identity-based access controls to the distribution and use of Windows Subsystem for Linux and Windows Package Manager in enterprises. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 19, 2024 </span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Access Control</span></span><span class="card__tag"><span class="tag">Application Security</span></span><span class="card__tag"><span class="tag">Identity and Access Management</span></span></div></div></div></a></div><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/3608598/microsoft-rebrands-azure-ai-studio-to-azure-ai-foundry.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">news</span></div><h4 class="card__title" id="microsoft-rebrands-azure-ai-studio-to-azure-ai-foundry">Microsoft rebrands Azure AI Studio to Azure AI Foundry</h4><p class="card__description">The toolkit for building generative AI applications has been packaged with new updates to form the Azure AI Foundry service. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Anirban Ghoshal</span></div> <div class="card__info card__info--light"><span>Nov 19, 2024 </span><span>4 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Microsoft Azure</span></span><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Development Tools</span></span></div></div></div></a></div><div class="content-listing-articles__row "><a class="grid content-row-article" href="https://www.infoworld.com/article/3604732/a-grc-framework-for-securing-generative-ai.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">feature</span></div><h4 class="card__title" id="a-grc-framework-for-securing-generative-ai">A GRC framework for securing generative AI</h4><p class="card__description">How can enterprises secure and manage the expanding ecosystem of AI applications that touch sensitive business data? Start with a governance framework. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Trevor Welsh</span></div> <div class="card__info card__info--light"><span>Nov 19, 2024 </span><span>11 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Data Governance</span></span><span class="card__tag"><span class="tag">Application Security</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/3607426/how-to-transform-your-architecture-review-board.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">analysis</span></div><h4 class="card__title" id="how-to-transform-your-architecture-review-board">How to transform your architecture review board</h4><p class="card__description">Architecture review boards have gone out of favor in the age of agile and devops, but what's really needed is a more collaborative approach.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Isaac Sacolick</span></div> <div class="card__info card__info--light"><span>Nov 19, 2024 </span><span>7 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Agile Development</span></span><span class="card__tag"><span class="tag">Devops</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/3608112/succeeding-with-observability-in-the-cloud.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">analysis</span></div><h4 class="card__title" id="succeeding-with-observability-in-the-cloud">Succeeding with observability in the cloud</h4><p class="card__description">Cloud observability practices are complex—just like the cloud deployments they seek to understand. The insights observability offers make it a challenge worth tackling.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By David Linthicum</span></div> <div class="card__info card__info--light"><span>Nov 19, 2024 </span><span>5 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Cloud Management</span></span><span class="card__tag"><span class="tag">Cloud Computing</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/3608397/f-sharp-9-adds-nullable-reference-types.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">news</span></div><h4 class="card__title" id="f-9-adds-nullable-reference-types">F# 9 adds nullable reference types</h4><p class="card__description">Latest version of Microsoft’s functional .NEt programming language provides a type-safe way to handle reference types that can have null as a valid value. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 18, 2024 </span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Microsoft .NET</span></span><span class="card__tag"><span class="tag">Programming Languages</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/3608256/akka-distributed-computing-platform-adds-java-sdk.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">news</span></div><h4 class="card__title" id="akka-distributed-computing-platform-adds-java-sdk">Akka distributed computing platform adds Java SDK</h4><p class="card__description">Akka enables development of applications that are primarily event-driven, deployable on Akka’s serverless platform or on AWS, Azure, or GCP cloud instances.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Paul Krill</span></div> <div class="card__info card__info--light"><span>Nov 18, 2024 </span><span>2 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Java</span></span><span class="card__tag"><span class="tag">Scala</span></span><span class="card__tag"><span class="tag">Serverless Computing</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/3583482/14-preprocessors-for-programmers-who-love-to-code.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">feature</span></div><h4 class="card__title" id="14-great-preprocessors-for-developers-who-love-to-code">14 great preprocessors for developers who love to code</h4><p class="card__description">Sometimes it seems like the rules of programming are designed to make coding a chore. Here are 14 ways preprocessors can help make software development fun again.</p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Peter Wayner</span></div> <div class="card__info card__info--light"><span>Nov 18, 2024 </span><span>10 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Development Tools</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></div></div></a></div><div class="content-listing-articles__row content-listing-articles__row--hide"><a class="grid content-row-article" href="https://www.infoworld.com/article/3604648/designing-the-apis-that-accidentally-power-businesses.html" aria-label="Go to content"><div class="col-12 col-7@md content-row-article__main"><div class="card card--lg"><div class="card__header"><span class="card__content-type">feature</span></div><h4 class="card__title" id="designing-the-apis-that-accidentally-power-businesses">Designing the APIs that accidentally power businesses</h4><p class="card__description">Well-designed APIs, even those often-neglected internal APIs, make developers more productive and businesses more agile. </p></div></div><div class="col-12 col-4@md col-start-9@md content-row-article__secondary"><div class="card card--lg"><div class="card__info"><span>By Jean Yang</span></div> <div class="card__info card__info--light"><span>Nov 18, 2024 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">APIs</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></div></div></a></div></div><div class="grid content-listing-articles__button-wrapper"> <div class="col-6 col-4@md col-start-5@md"><div class="content-listing-articles__button-show"> <button class="button button--tertiary" type="button" data-toggle="expand"> <span>Show more</span> <span> <svg class="icon icon--sm" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-chevron-down"></use> </svg> </span> </button> </div> <div class="content-listing-articles__button-show content-listing-articles__button-show--hide"> <button class="button button--tertiary" type="button" data-toggle="collapse"> <span>Show less</span> <span> <svg class="icon icon--sm" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-chevron-up"></use> </svg> </span> </button> </div></div><div class="col-6 col-4@md content-listing-articles__button-view-all"> <a class="button" href="https://www.infoworld.com/cloud-computing/page/2/" target="_blank"> View all </a></div></div></div></div> <section class="suggested-content-upcoming-events" id="upcoming_events"><div class="container"> <h2 class="suggested-content-upcoming-events__title" id="upcoming-events">Upcoming Events</h2><a class="grid suggested-content-upcoming-events__item" href="https://www.idgevents.com/P7zbE?rt=D6xu4cPNx0-y6xS43PXNPA&RefId=evp" aria-label="Go to content"><div class="col-12 col-3@md suggested-content-upcoming-events__date-label dd"><span class="date-label">28/Nov</span></div><div class="col-12 col-4@md col-5@xl suggested-content-upcoming-events__image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?w=1240" srcset="https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?quality=50&strip=all%201920w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=300%2C168&quality=50&strip=all%20300w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=768%2C432&quality=50&strip=all%20768w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=1024%2C576&quality=50&strip=all%201024w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=1536%2C864&quality=50&strip=all%201536w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=1240%2C697&quality=50&strip=all%201240w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=150%2C84&quality=50&strip=all%20150w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=854%2C480&quality=50&strip=all%20854w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=640%2C360&quality=50&strip=all%20640w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_Summit-2024-4.png?resize=444%2C250&quality=50&strip=all%20444w" alt="Image" loading="lazy" width="400px"></div></div> <div class="col-12 col-5@md col-4@xl suggested-content-upcoming-events__card"> <div class="card card--xl"> <div class="card__header"><span class="card__content-type">conference</span><span class="card__external-link-icon" data-url="https://www.idgevents.com/P7zbE?rt=D6xu4cPNx0-y6xS43PXNPA&RefId=evp"><svg class="icon icon--sm" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-arrow-up-right-from-square"></use></svg></span></div><h4 class="card__title" id="the-official-cso-security-summit-uk">The Official CSO Security Summit UK</h4><div class="card__info card__info--light"><span>Nov 28, 2024</span><span>9:30 am – 17:30 GMT</span><span>Andaz London Liverpool Street</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">CSO and CISO</span></span></div></div> </div> </a><a class="grid suggested-content-upcoming-events__item" href="https://www.idgevents.com/cso-30-awards-uk" aria-label="Go to content"><div class="col-12 col-3@md suggested-content-upcoming-events__date-label dd"><span class="date-label">28/Nov</span></div><div class="col-12 col-4@md col-5@xl suggested-content-upcoming-events__image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?w=1240" srcset="https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?quality=50&strip=all%201920w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=300%2C168&quality=50&strip=all%20300w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=768%2C432&quality=50&strip=all%20768w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=1024%2C576&quality=50&strip=all%201024w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=1536%2C864&quality=50&strip=all%201536w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=1240%2C697&quality=50&strip=all%201240w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=150%2C84&quality=50&strip=all%20150w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=854%2C480&quality=50&strip=all%20854w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=640%2C360&quality=50&strip=all%20640w,%20https://www.infoworld.com/wp-content/uploads/2024/06/CSO_30-Awards-2024-2.png?resize=444%2C250&quality=50&strip=all%20444w" alt="Image" loading="lazy" width="400px"></div></div> <div class="col-12 col-5@md col-4@xl suggested-content-upcoming-events__card"> <div class="card card--xl"> <div class="card__header"><span class="card__content-type">awards</span><span class="card__external-link-icon" data-url="https://www.idgevents.com/cso-30-awards-uk"><svg class="icon icon--sm" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-arrow-up-right-from-square"></use></svg></span></div><h4 class="card__title" id="cso-30-awards-uk">CSO 30 Awards UK</h4><div class="card__info card__info--light"><span>Nov 28, 2024</span><span>18:30-21:30 GMT</span><span>Andaz London Liverpool Street</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">CSO and CISO</span></span></div></div> </div> </a><a class="grid suggested-content-upcoming-events__item" href="https://www.idgevents.com/event/next-cso-2024/summary" aria-label="Go to content"><div class="col-12 col-3@md suggested-content-upcoming-events__date-label dd"><span class="date-label">28/Nov</span></div><div class="col-12 col-4@md col-5@xl suggested-content-upcoming-events__image"><div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?w=1240" srcset="https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?quality=50&strip=all%201920w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=300%2C168&quality=50&strip=all%20300w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=768%2C432&quality=50&strip=all%20768w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=1024%2C576&quality=50&strip=all%201024w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=1536%2C864&quality=50&strip=all%201536w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=1240%2C697&quality=50&strip=all%201240w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=150%2C84&quality=50&strip=all%20150w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=854%2C480&quality=50&strip=all%20854w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=640%2C360&quality=50&strip=all%20640w,%20https://www.infoworld.com/wp-content/uploads/2024/06/Next-CSO-Awards-2024-1.png?resize=444%2C250&quality=50&strip=all%20444w" alt="Image" loading="lazy" width="400px"></div></div> <div class="col-12 col-5@md col-4@xl suggested-content-upcoming-events__card"> <div class="card card--xl"> <div class="card__header"><span class="card__content-type">awards</span><span class="card__external-link-icon" data-url="https://www.idgevents.com/event/next-cso-2024/summary"><svg class="icon icon--sm" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-arrow-up-right-from-square"></use></svg></span></div><h4 class="card__title" id="next-cso-awards-uk">Next CSO Awards UK</h4><div class="card__info card__info--light"><span>Nov 28, 2024</span><span>18:30-21:30 GMT</span><span>Andaz London Liverpool Street</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">CSO and CISO</span></span></div></div> </div> </a></div><div class="suggested-content-upcoming-events__button-container container"> <a class="button" href="https://www.infoworld.com/events/"> View all events</a> </div> </section><div class="advert"> <div class="container advert__container"> <div class="advert__content"><div class="ad page-ad has-ad-prefix ad-article" data-ad-template="article" data-ofp="false"></div></div></div></div><section class="related-content-video" id="video"><div class="container"><h2 class="related-content-video__title" id="video-on-demand">Video on demand</h2><div class="grid related-content-video__main"><div class="col-12 col-4@lg related-content-video__main-card"><a class="card card--xl" href="https://www.infoworld.com/video/3610349/use-__main__-in-python-to-make-packages-runnable.html" aria-label="Go to content"><div class="card__header"> <span class="card__content-type">video</span></div><h4 class="card__title" id="use-__main__-in-python-to-make-packages-runnable">Use \”__main__\” in Python to make packages runnable</h4><p class="card__description">Python packages are typically things you pip install and run by importing into your code. But you can make packages runnable from the Python command line using the \”-m\” option — and by configuring your package with a \”__main__\” module. This video steps you through the basics of using \”__main__\” in a package, and how it differs from \”__init__\” in a package (and elsewhere, too).</p> <div class="card__info card__info--light"><span>Nov 22, 2024 </span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div></a> <div class="related-content-video__social"> <div class="social-share-menu"><ul class="social-share-menu__buttons"> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="linked-in" aria-label="Share on LinkedIn"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-linked-in"></use></svg> </button></li> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="twitter" aria-label="Share on Twitter"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-twitter"></use></svg> </button></li> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="facebook" aria-label="Share on Facebook"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-facebook"></use></svg> </button></li> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="reddit" aria-label="Share on Reddit"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-reddit"></use></svg> </button></li> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="email" aria-label="Share via Email"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-envelope"></use></svg> </button></li> <li class="social-share-menu__button"><button class="social-share-button" type="button" data-platform="print" aria-label="Print"> <svg class="icon" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-print"></use></svg> </button></li></ul> </div></div></div><div class="col-12 col-8@lg related-content-video__video"><div class="youtube-video"><iframe width="560" height="315" src="https://www.youtube.com/embed/0Qf1ZB1RBTk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div></div></div><div class="related-content-video__cards-container"> <div class="related-content-video__cards-wrap"> <ul class="grid related-content-video__cards"><li class="col-4@md related-content-video__card"> <a class="related-content-video__card-link" href="https://www.infoworld.com/video/3606691/building-python-wheels-to-distribute-your-programs.html" aria-label="Go to content"> <div class="related-content-video__card-image"> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?w=300" alt="Image" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?quality=50&strip=all 1280w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=300%2C168&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=768%2C432&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=1024%2C576&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=1240%2C697&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=150%2C84&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=854%2C480&quality=50&strip=all 854w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=640%2C360&quality=50&strip=all 640w, https://www.infoworld.com/wp-content/uploads/2024/11/3606691-0-19281700-1731680677-IFW24_039_build_wheel_THUMB.png?resize=444%2C250&quality=50&strip=all 444w" sizes="300px" loading="lazy" width="400px"></div></div><div class="card card--xs"><h4 class="card__title" id="building-python-wheels-to-distribute-your-programs">Building Python wheels to distribute your programs</h4> <div class="card__info card__info--light"><span>Nov 15, 2024 </span><span>6 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></div></a></li><li class="col-4@md related-content-video__card"> <a class="related-content-video__card-link" href="https://www.infoworld.com/video/3606689/creating-a-pip-install-able-python-package.html" aria-label="Go to content"> <div class="related-content-video__card-image"> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?w=300" alt="Image" srcset="https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?quality=50&strip=all 1280w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=300%2C168&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=768%2C432&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=1024%2C576&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=1240%2C697&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=150%2C84&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=854%2C480&quality=50&strip=all 854w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=640%2C360&quality=50&strip=all 640w, https://www.infoworld.com/wp-content/uploads/2024/11/3606689-0-04766500-1731610339-IFW24_038_pip_installable_THUMB.png?resize=444%2C250&quality=50&strip=all 444w" sizes="300px" loading="lazy" width="400px"></div></div><div class="card card--xs"><h4 class="card__title" id="creating-a-pip-install-able-python-package">Creating a pip install-able Python package</h4> <div class="card__info card__info--light"><span>Nov 14, 2024 </span><span>3 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span><span class="card__tag"><span class="tag">Software Development</span></span></div></div></a></li><li class="col-4@md related-content-video__card"> <a class="related-content-video__card-link" href="https://www.infoworld.com/video/3550024/how-to-get-better-web-requests-in-python-with-httpx.html" aria-label="Go to content"> <div class="related-content-video__card-image"> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?w=300" alt="Image" srcset="https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?quality=50&strip=all 1280w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=300%2C168&quality=50&strip=all 300w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=768%2C432&quality=50&strip=all 768w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=1024%2C576&quality=50&strip=all 1024w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=1240%2C697&quality=50&strip=all 1240w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=150%2C84&quality=50&strip=all 150w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=854%2C480&quality=50&strip=all 854w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=640%2C360&quality=50&strip=all 640w, https://www.infoworld.com/wp-content/uploads/2024/10/3550024-0-42985400-1728304252-Youtube-Thumbnails_Template-OLD-2.png?resize=444%2C250&quality=50&strip=all 444w" sizes="300px" loading="lazy" width="400px"></div></div><div class="card card--xs"><h4 class="card__title" id="how-to-get-better-web-requests-in-python-with-httpx">How to get better web requests in Python with httpx</h4> <div class="card__info card__info--light"><span>Oct 07, 2024 </span><span>4 mins</span></div><div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div></div></a></li></ul></div></div> <div class="related-content-video__button-container"><a class="button" target="" href="https://www.infoworld.com/videos/">See all videos</a></div></div></section><section class="popular-topics-selector"> <div class="container"><h2 class="popular-topics-selector__title" id="explore-a-topic">Explore a topic </h2><p class="popular-topics-selector__text"></p><ul class="popular-topics-selector__topics-container"><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/analytics/">Analytics </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/artificial-intelligence/">Artificial Intelligence </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/careers/">Careers </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/data-management/">Data Management </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/database/">Databases </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/development-tools/">Development Tools </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/devops/">Devops </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/emerging-technology/">Emerging Technology </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/generative-ai/">Generative AI </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/java/">Java </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/javascript/">JavaScript </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/microsoft-net/">Microsoft .NET </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/open-source/">Open Source </a></li><li class="popular-topics-selector__topic"> <a class="chip chip--topic" target="_self" href="https://www.infoworld.com/programming-languages/">Programming Languages </a></li><li class="popular-topics-selector__topic"><button class="button" type="button" data-modal-trigger="popular-topics-selector-modal">View all topics</button></li> </ul><div class="modal" data-modal="popular-topics-selector-modal" role="dialog"> <div class="modal__backdrop" data-modal-backdrop></div> <div class="modal__content"><div class="popular-topics-selector__modal-content"> <header class="popular-topics-selector__modal-header"> <h1 class="popular-topics-selector__modal-title" id="all-topics">All topics</h1> <div class="popular-topics-selector__modal-close-button"> <button class="button button--quaternary" type="button" data-modal-close="popular-topics-selector-modal"> <span>Close</span> <span class="icon"></span> </button> </div> </header><ul class="popular-topics-selector__modal-list"><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/analytics/" class="popular-topics-selector__modal-list-item-link"> Analytics </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/artificial-intelligence/" class="popular-topics-selector__modal-list-item-link"> Artificial Intelligence </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/careers/" class="popular-topics-selector__modal-list-item-link"> Careers </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/data-management/" class="popular-topics-selector__modal-list-item-link"> Data Management </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/database/" class="popular-topics-selector__modal-list-item-link"> Databases </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/development-tools/" class="popular-topics-selector__modal-list-item-link"> Development Tools </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/devops/" class="popular-topics-selector__modal-list-item-link"> Devops </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/emerging-technology/" class="popular-topics-selector__modal-list-item-link"> Emerging Technology </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/generative-ai/" class="popular-topics-selector__modal-list-item-link"> Generative AI </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/java/" class="popular-topics-selector__modal-list-item-link"> Java </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/javascript/" class="popular-topics-selector__modal-list-item-link"> JavaScript </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/microsoft-net/" class="popular-topics-selector__modal-list-item-link"> Microsoft .NET </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/open-source/" class="popular-topics-selector__modal-list-item-link"> Open Source </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/programming-languages/" class="popular-topics-selector__modal-list-item-link"> Programming Languages </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/python/" class="popular-topics-selector__modal-list-item-link"> Python </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/security/" class="popular-topics-selector__modal-list-item-link"> Security </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/software-development/" class="popular-topics-selector__modal-list-item-link"> Software Development </a></li><li class="popular-topics-selector__modal-list-item"> <a href="https://www.infoworld.com/technology-business/" class="popular-topics-selector__modal-list-item-link"> Technology Industry </a></li></ul></div></div> </div> </div> </section><section class="suggested-content-various"><div class="container"><div class="grid suggested-content-various__content"><div class="col-12 col-3@lg"> <h4 class="suggested-content-various__title" id="show-me-more">Show me more</h4><div class="suggested-content-various__filters"><span class="suggested-content-various__filter"><button class="chip chip--filter chip--active" type="button" data-filter-key="latest">Latest</button></span><span class="suggested-content-various__filter"><button class="chip chip--filter" type="button" data-filter-key="article">Articles</button></span><span class="suggested-content-various__filter"><button class="chip chip--filter" type="button" data-filter-key="video">Videos</button></span></div> </div><div class="col-12 col-9@lg suggested-content-various__items-wrap"><div class="grid grid--cols-9@lg suggested-content-various__items"><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value=" latest,article"><a class="suggested-content-various__link" href="https://www.infoworld.com/article/3607483/spin-3-0-supports-polyglot-development-using-wasm-components.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">news</span> </div> <h4 class="card__title" id="spin-3-0-supports-polyglot-development-using-wasm-components">Spin 3.0 supports polyglot development using Wasm components</h4> <div class="card__info"><span>By Paul Krill</span></div><div class="card__info card__info--light"> <span>Nov 18, 2024</span><span>2 mins</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">Microservices</span></span><span class="card__tag"><span class="tag">Serverless Computing</span></span><span class="card__tag"><span class="tag">Development Libraries and Frameworks</span></span></div></div> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3607483-0-92314700-1731920626-shutterstock_288379226-100948401-orig.jpg?quality=50&strip=all&w=375" alt="Image" loading="lazy" width="400px"></div> </a> </div><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value=" article"><a class="suggested-content-various__link" href="https://www.infoworld.com/article/3607754/the-dirty-little-secret-of-open-source-contributions.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">opinion</span> </div> <h4 class="card__title" id="the-dirty-little-secret-of-open-source-contributions">The dirty little secret of open source contributions</h4> <div class="card__info"><span>By Matt Asay</span></div><div class="card__info card__info--light"> <span>Nov 18, 2024</span><span>4 mins</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">Technology Industry</span></span><span class="card__tag"><span class="tag">Open Source</span></span></div></div> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3607754-0-68367100-1731957330-shutterstock_2355607633.jpg?quality=50&strip=all&w=386" alt="Image" loading="lazy" width="400px"></div> </a> </div><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value=" article"><a class="suggested-content-various__link" href="https://www.infoworld.com/article/3607388/go-language-evolving-for-future-hardware-ai-workloads.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">news</span> </div> <h4 class="card__title" id="go-language-evolving-for-future-hardware-ai-workloads">Go language evolving for future hardware, AI workloads</h4> <div class="card__info"><span>By Paul Krill</span></div><div class="card__info card__info--light"> <span>Nov 15, 2024</span><span>3 mins</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">Google Go</span></span><span class="card__tag"><span class="tag">Generative AI</span></span><span class="card__tag"><span class="tag">Programming Languages</span></span></div></div> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/11/3607388-0-73691700-1731716292-shutterstock_293703398-100963068-orig.jpg?quality=50&strip=all&w=375" alt="Image" loading="lazy" width="400px"></div> </a> </div><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value=" latest,video"><a class="suggested-content-various__link" href="https://www.infoworld.com/video/3545184/how-to-better-integrate-python-c-with-cffi.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">video</span> </div> <h4 class="card__title" id="how-to-better-integrate-python-c-with-cffi">How to better integrate Python/C with CFFI</h4> <div class="card__info"><span></span></div><div class="card__info card__info--light"> <span>Oct 03, 2024</span><span>5 mins</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div></div> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/10/3545184-0-41210000-1727984576-Youtube-Thumbnails_Template-OLD-1.png?w=444" alt="Image" loading="lazy" width="400px"></div> </a> </div><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value=" latest,video"><a class="suggested-content-various__link" href="https://www.infoworld.com/video/3543373/how-to-create-and-work-with-zip-archives-using-python.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">video</span> </div> <h4 class="card__title" id="how-to-create-and-work-with-zip-archives-using-python">How to create and work with zip archives using Python</h4> <div class="card__info"><span></span></div><div class="card__info card__info--light"> <span>Oct 01, 2024</span><span>5 mins</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div></div> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/10/3543373-0-24502000-1727791824-Youtube-Thumbnails_Template-OLD.png?w=444" alt="Image" loading="lazy" width="400px"></div> </a> </div><div class="col-4@md col-3@lg suggested-content-various__item suggested-content-various__item--active" data-filter-value=" video"><a class="suggested-content-various__link" href="https://www.infoworld.com/video/3518570/how-to-implement-modes-in-software-with-a-game-as-an-example.html" aria-label="Go to content"><div class="card card--xxs"> <div class="card__header"> <span class="card__content-type">video</span> </div> <h4 class="card__title" id="how-to-implement-modes-in-software-with-a-game-as-an-example">How to implement "modes" in software, with a game as an example</h4> <div class="card__info"><span></span></div><div class="card__info card__info--light"> <span>Sep 12, 2024</span><span>4 mins</span></div> <div class="card__tags"><span class="card__tag"><span class="tag">Python</span></span></div></div> <div class="image"><img decoding="async" src="https://www.infoworld.com/wp-content/uploads/2024/09/3518570-0-51110700-1726158878-Youtube-Thumbnails_Template-OLD-1.png?w=444" alt="Image" loading="lazy" width="400px"></div> </a> </div></div></div></div></div></section></div> </div><!-- .entry-content --> </article><!-- #post-100007594 --> </main><!-- #main --> <footer class="footer"> <div class="container footer__container"> <div class="grid footer__content"> <div class="col-12 col-9@lg grid grid--cols-9@lg footer__main"> <div class="col-12 col-6@md col-3@lg footer__menu"> <details class="accordion" data-accordion-enabled="mobile" data-accordion-expanded="desktop"> <summary data-accordion-summary class="accordion__summary"> <div class="accordion__title"> <div class="footer__menu-title">About</div> </div> <div class="accordion__icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" > <use xlink:href="#icon-circle-chevron-down"></use> </svg> </div> </summary> <div class="accordion__content" data-accordion-content> <nav data-content aria-label="About navigation menu"> <ul class="footer__menu-items"> <li class="footer__menu-item"> <a href="https://www.infoworld.com/about-us/" class="footer__menu-link">About us</a> </li> <li class="footer__menu-item"> <a href="https://foundryco.com/our-brands/infoworld/" class="footer__menu-link">Advertise</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/contact-us/" class="footer__menu-link">Contact Us</a> </li> <li class="footer__menu-item"> <a href="https://foundryco.com/work-here/" class="footer__menu-link">Foundry Careers</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/contact-us/#republication-permissions" class="footer__menu-link">Reprints</a> </li> <li class="footer__menu-item"> <a href="/newsletters/signup/" class="footer__menu-link">Newsletters</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/brandposts/" class="footer__menu-link">BrandPosts</a> </li> </ul> </nav> </div> </details> </div> <div class="col-12 col-6@md col-3@lg footer__menu"> <details class="accordion" data-accordion-enabled="mobile" data-accordion-expanded="desktop"> <summary data-accordion-summary class="accordion__summary"> <div class="accordion__title"> <div class="footer__menu-title">Policies</div> </div> <div class="accordion__icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" > <use xlink:href="#icon-circle-chevron-down"></use> </svg> </div> </summary> <div class="accordion__content" data-accordion-content> <nav data-content aria-label="Policies navigation menu"> <ul class="footer__menu-items"> <li class="footer__menu-item"> <a href="https://foundryco.com/terms-of-service-agreement/" class="footer__menu-link">Terms of Service</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/privacy-policy/" class="footer__menu-link">Privacy Policy</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/cookie-policy/" class="footer__menu-link">Cookie Policy</a> </li> <li class="footer__menu-item"> <a href="https://foundryco.com/copyright-notice/" class="footer__menu-link">Copyright Notice</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/member-preferences/" class="footer__menu-link">Member Preferences</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/about-adchoices/" class="footer__menu-link">About AdChoices</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/e-commerce-affiliate-relationships/" class="footer__menu-link">E-commerce Affiliate Relationships</a> </li> <li class="footer__menu-item"> <a href="https://www.infoworld.com/your-california-privacy-rights/" class="footer__menu-link">Your California Privacy Rights</a> </li> <li class="footer__menu-item"> <a class="ccpa-btn eea-consent-ui footer__menu-link">Privacy Settings</a> </li> </ul> </nav> </div> </details> </div> <div class="col-12 col-6@md col-3@lg footer__menu"> <details class="accordion" data-accordion-enabled="mobile" data-accordion-expanded="desktop"> <summary data-accordion-summary class="accordion__summary"> <div class="accordion__title"> <div class="footer__menu-title">Our Network</div> </div> <div class="accordion__icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" > <use xlink:href="#icon-circle-chevron-down"></use> </svg> </div> </summary> <div class="accordion__content" data-accordion-content> <nav data-content aria-label="Our Network navigation menu"> <ul class="footer__menu-items"> <li class="footer__menu-item"> <a href="https://www.cio.com/" target="_blank" class="footer__menu-link">CIO</a> </li> <li class="footer__menu-item"> <a href="https://www.computerworld.com/" target="_blank" class="footer__menu-link">Computerworld</a> </li> <li class="footer__menu-item"> <a href="https://www.csoonline.com/" target="_blank" class="footer__menu-link">CSO</a> </li> <li class="footer__menu-item"> <a href="https://www.networkworld.com/" target="_blank" class="footer__menu-link">Network World</a> </li> </ul> </nav> </div> </details> </div> <div class="col-12 col-9@lg footer__logo-container"> <a href="https://foundryco.com/" target="_blank" rel="noreferrer" aria-label="Go to Foundry website"> <svg id="a" width="156" height="57" version="1.1" viewBox="0 0 156 57" xmlns="http://www.w3.org/2000/svg"><defs><style>.b{fill:#fff;}</style></defs><g transform="matrix(.67576 0 0 .67576 .37936 .26588)"><path class="b" d="m35.79 77.23c0-1.83 1.94-2.45 3.97-2.45h1.14v-0.57c0-1.26-0.48-1.79-1.7-1.79-1.09 0-1.7 0.46-1.82 1.42h-1.26c0.17-1.8 1.6-2.47 3.13-2.47s2.89 0.62 2.89 2.83v5.22h-1.26v-1c-0.59 0.74-1.3 1.13-2.47 1.13-1.47 0-2.63-0.71-2.63-2.33zm5.1-0.58v-0.98h-1.09c-1.59 0-2.75 0.39-2.75 1.56 0 0.82 0.39 1.33 1.5 1.33 1.33 0 2.35-0.68 2.35-1.91z"/><path class="b" d="m44.65 71.5h1.26v1.26c0.36-0.74 1.24-1.39 2.54-1.39 1.63 0 2.79 0.89 2.79 3.19v4.86h-1.26v-4.95c0-1.39-0.59-2.01-1.86-2.01-1.17 0-2.21 0.74-2.21 2.17v4.8h-1.26v-7.92z"/><path class="b" d="m58.32 68.6h1.32v10.82h-1.32z"/><path class="b" d="m62.47 68.6h2.86c3.72 0 5.48 2.3 5.48 5.31v0.14c0 3-1.73 5.37-5.51 5.37h-2.83zm2.8 9.75c2.79 0 4.18-1.66 4.18-4.31v-0.12c0-2.5-1.21-4.25-4.19-4.25h-1.47v8.69h1.48z"/><path class="b" d="m72.5 74.08v-0.12c0-3.16 2.13-5.53 5.24-5.53 2.15 0 4.07 1 4.4 3.44h-1.32c-0.3-1.72-1.48-2.39-3.06-2.39-2.48 0-3.91 1.82-3.91 4.46v0.12c0 2.68 1.33 4.44 3.88 4.44 2.35 0 3.36-1.53 3.41-3.45h-3.16v-1.09h4.45v0.8c0 3.13-1.92 4.8-4.69 4.8-3.33 0-5.24-2.32-5.24-5.48z"/><path class="b" d="m83.75 80.19c0.65-0.09 0.94-0.35 0.94-0.82-0.58 0-0.97-0.32-0.97-0.91 0-0.51 0.44-0.91 0.94-0.91 0.58 0 1 0.41 1 1.11v0.29c0 1.33-0.85 1.91-1.91 1.97z"/><path class="b" d="m91.33 68.6h1.32v10.82h-1.32z"/><path class="b" d="m95.39 71.5h1.26v1.26c0.36-0.74 1.24-1.39 2.54-1.39 1.63 0 2.79 0.89 2.79 3.19v4.86h-1.26v-4.95c0-1.39-0.59-2.01-1.86-2.01-1.17 0-2.21 0.74-2.21 2.17v4.8h-1.26v-7.92z"/><path class="b" d="m103.88 75.55v-0.12c0-2.42 1.73-4.06 3.84-4.06 1.65 0 3.19 0.76 3.44 2.77h-1.24c-0.2-1.26-1.1-1.73-2.19-1.73-1.44 0-2.54 1.15-2.54 3.01v0.12c0 1.94 1.06 2.97 2.59 2.97 1.12 0 2.13-0.65 2.27-1.94h1.17c-0.17 1.71-1.54 2.98-3.45 2.98-2.21 0-3.88-1.56-3.88-4.01z"/><path class="b" d="m112.87 78.53c0-0.54 0.44-0.97 0.97-0.97s0.97 0.42 0.97 0.97-0.44 0.97-0.97 0.97-0.97-0.42-0.97-0.97z"/><path class="b" d="m119.75 75.55v-0.12c0-2.42 1.73-4.06 3.84-4.06 1.65 0 3.19 0.76 3.44 2.77h-1.24c-0.2-1.26-1.1-1.73-2.19-1.73-1.44 0-2.54 1.15-2.54 3.01v0.12c0 1.94 1.06 2.97 2.59 2.97 1.12 0 2.13-0.65 2.27-1.94h1.17c-0.17 1.71-1.54 2.98-3.45 2.98-2.21 0-3.88-1.56-3.88-4.01z"/><path class="b" d="m128.41 75.53v-0.12c0-2.38 1.65-4.04 3.89-4.04s3.89 1.65 3.89 4.03v0.12c0 2.39-1.65 4.04-3.91 4.04s-3.88-1.71-3.88-4.03zm6.48 0v-0.11c0-1.83-1.01-3.01-2.59-3.01s-2.59 1.18-2.59 3v0.12c0 1.8 0.98 2.98 2.59 2.98s2.59-1.2 2.59-2.98z"/><path class="b" d="m138.17 71.5h1.26v1.21c0.36-0.74 1.23-1.35 2.36-1.35 1.01 0 1.91 0.42 2.32 1.48 0.54-1.03 1.73-1.48 2.71-1.48 1.42 0 2.66 0.85 2.66 3.15v4.9h-1.26v-5c0-1.39-0.59-1.97-1.68-1.97-1.03 0-2.09 0.7-2.09 2.12v4.84h-1.26v-5c0-1.39-0.59-1.97-1.68-1.97-1.03 0-2.09 0.7-2.09 2.12v4.84h-1.26v-7.92z"/><path class="b" d="m151.98 71.5h1.26v1.33c0.45-0.77 1.53-1.47 2.68-1.47 2.07 0 3.6 1.51 3.6 3.98v0.12c0 2.42-1.42 4.09-3.6 4.09-1.3 0-2.23-0.65-2.68-1.44v4.06h-1.26zm6.24 4.03v-0.12c0-2-1.1-3-2.44-3-1.47 0-2.59 0.97-2.59 3v0.12c0 2.03 1.06 2.98 2.6 2.98s2.42-1.06 2.42-2.98z"/><path class="b" d="m160.85 77.23c0-1.83 1.94-2.45 3.97-2.45h1.14v-0.57c0-1.26-0.48-1.79-1.7-1.79-1.09 0-1.7 0.46-1.82 1.42h-1.26c0.17-1.8 1.6-2.47 3.13-2.47s2.89 0.62 2.89 2.83v5.22h-1.26v-1c-0.59 0.74-1.3 1.13-2.47 1.13-1.47 0-2.63-0.71-2.63-2.33zm5.1-0.58v-0.98h-1.09c-1.59 0-2.75 0.39-2.75 1.56 0 0.82 0.39 1.33 1.5 1.33 1.33 0 2.35-0.68 2.35-1.91z"/><path class="b" d="m169.71 71.5h1.26v1.26c0.36-0.74 1.24-1.39 2.54-1.39 1.63 0 2.79 0.89 2.79 3.19v4.86h-1.26v-4.95c0-1.39-0.59-2.01-1.86-2.01-1.17 0-2.21 0.74-2.21 2.17v4.8h-1.26v-7.92z"/><path class="b" d="m180.77 78.6-3.1-7.1h1.35l2.42 5.68 2.19-5.68h1.29l-4.37 10.67h-1.27l1.5-3.57z"/><path class="b" d="m113.87 0.82c4.27 0 6.75 2.78 6.75 6.75s-2.47 6.75-6.8 6.75-6.75-2.83-6.75-6.75 2.47-6.75 6.8-6.75"/><path class="b" d="m95.74 39.61c0 2.78-0.26 5.2-1.13 7.21-2.32 5.3-7.16 8.09-13.75 8.09s-11.69-2.78-14.01-8.09c-0.88-2.01-1.13-4.43-1.13-7.21v-21.48h9.27v20.96c0 1.65 0.1 2.99 0.57 4.07 0.98 2.27 3.09 3.09 5.31 3.09 1.96 0 4.07-0.82 5.05-3.09 0.46-1.08 0.57-2.42 0.57-4.07v-20.96h9.27v21.48z"/><path class="b" d="m129.16 32.6v21.58h-9.27v-20.91c0-1.65-0.1-2.99-0.57-4.07-0.98-2.27-3.09-3.3-5.46-3.3s-4.48 1.03-5.46 3.3c-0.46 1.08-0.57 2.42-0.57 4.07v20.91h-9.27v-21.58c0-2.78 0.26-5.2 1.13-7.21 2.32-5.3 7.16-8.14 14.16-8.14s11.85 2.83 14.16 8.14c0.88 2.01 1.13 4.43 1.13 7.21"/><polygon class="b" points="193.6 18.13 203.79 18.13 211.37 32.19 218.99 18.13 228.83 18.13 215.9 41.51 215.9 54.18 206.42 54.18 206.42 41.51"/><polygon class="b" points="10.44 33.63 10.44 26.53 26.98 26.53 26.98 18.13 1.17 18.13 1.17 54.18 10.44 54.18 10.44 41.98 25.85 41.98 25.85 33.63"/><path class="b" d="m113.87 0.82c4.27 0 6.75 2.78 6.75 6.75s-2.47 6.75-6.8 6.75-6.75-2.83-6.75-6.75 2.47-6.75 6.8-6.75"/><path class="b" d="m95.74 39.61c0 2.78-0.26 5.2-1.13 7.21-2.32 5.3-7.16 8.09-13.75 8.09s-11.69-2.78-14.01-8.09c-0.88-2.01-1.13-4.43-1.13-7.21v-21.48h9.27v20.96c0 1.65 0.1 2.99 0.57 4.07 0.98 2.27 3.09 3.09 5.31 3.09 1.96 0 4.07-0.82 5.05-3.09 0.46-1.08 0.57-2.42 0.57-4.07v-20.96h9.27v21.48z"/><path class="b" d="m129.16 32.6v21.58h-9.27v-20.91c0-1.65-0.1-2.99-0.57-4.07-0.98-2.27-3.09-3.3-5.46-3.3s-4.48 1.03-5.46 3.3c-0.46 1.08-0.57 2.42-0.57 4.07v20.91h-9.27v-21.58c0-2.78 0.26-5.2 1.13-7.21 2.32-5.3 7.16-8.14 14.16-8.14s11.85 2.83 14.16 8.14c0.88 2.01 1.13 4.43 1.13 7.21"/><path class="b" d="m181.65 42.8h-5.82v11.38h-9.27v-36.05h17.2c6.9 0 12.05 4.58 12.05 12.26 0 4.74-1.96 8.34-5.36 10.51l5.56 13.29h-9.89l-4.48-11.38zm-5.82-16.69v8.6h5.82c3.45 0 4.94-1.65 4.94-4.33 0-2.52-1.49-4.28-4.94-4.28h-5.82zm5.82 16.69h-5.82v11.38h-9.27v-36.05h17.2c6.9 0 12.05 4.58 12.05 12.26 0 4.74-1.96 8.34-5.36 10.51l5.56 13.29h-9.89l-4.48-11.38zm-5.82-16.69v8.6h5.82c3.45 0 4.94-1.65 4.94-4.33 0-2.52-1.49-4.28-4.94-4.28h-5.82z"/><path class="b" d="m132.31 54.18v-36.05h13.34c11.69 0 18.54 7.11 18.54 18.03s-6.13 18.03-17.98 18.03h-13.91zm9.27-8.14h3.86c6.03 0 9.27-3.3 9.27-9.89s-3.25-9.89-9.27-9.89h-3.86zm-9.27 8.14v-36.05h13.34c11.69 0 18.54 7.11 18.54 18.03s-6.13 18.03-17.98 18.03h-13.91zm9.27-8.14h3.86c6.03 0 9.27-3.3 9.27-9.89s-3.25-9.89-9.27-9.89h-3.86z"/><path class="b" d="m45.93 17.41c10.87 0 17.31 7.98 17.31 18.75s-6.7 18.75-17.31 18.75-17.36-7.93-17.36-18.75 6.75-18.75 17.36-18.75m-0.05 29.05c4.89 0 7.98-4.07 7.98-10.04 0-6.59-3.09-10.56-7.73-10.56-5.05 0-8.14 3.97-8.14 10.04 0 6.49 3.09 10.56 7.88 10.56m0.05-29.05c10.87 0 17.31 7.98 17.31 18.75s-6.7 18.75-17.31 18.75-17.36-7.93-17.36-18.75 6.75-18.75 17.36-18.75m-0.05 29.05c4.89 0 7.98-4.07 7.98-10.04 0-6.59-3.09-10.56-7.73-10.56-5.05 0-8.14 3.97-8.14 10.04 0 6.49 3.09 10.56 7.88 10.56"/><polygon class="b" points="10.44 33.63 10.44 26.53 26.98 26.53 26.98 18.13 1.17 18.13 1.17 54.18 10.44 54.18 10.44 41.98 25.85 41.98 25.85 33.63"/></g></svg> </a> </div> </div> <div class="col-12 col-3@lg footer__social"> <ul class="footer__social-items"> <li class="footer__social-item"> <a class="footer__social-link" href="https://www.linkedin.com/company/164364" target="_blank" rel="noreferrer" aria-label="LinkedIn"> <span class="footer__social-link-text">LinkedIn</span> <span class="footer__social-link-icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-linked-in"></use> </svg> </span> </a> </li> <li class="footer__social-item"> <a class="footer__social-link" href="https://twitter.com/infoworld" target="_blank" rel="noreferrer" aria-label="X"> <span class="footer__social-link-text">X</span> <span class="footer__social-link-icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-twitter"></use> </svg> </span> </a> </li> <li class="footer__social-item"> <a class="footer__social-link" href="https://www.facebook.com/InfoWorld" target="_blank" rel="noreferrer" aria-label="Facebook"> <span class="footer__social-link-text">Facebook</span> <span class="footer__social-link-icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-facebook"></use> </svg> </span> </a> </li> <li class="footer__social-item"> <a class="footer__social-link" href="https://www.youtube.com/@InfoWorld" target="_blank" rel="noreferrer" aria-label="Youtube"> <span class="footer__social-link-text">Youtube</span> <span class="footer__social-link-icon"> <svg class="icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> <use xlink:href="#icon-youtube"></use> </svg> </span> </a> </li> </ul> </div> </div> <div class="footer__copyright"> <div class="entry-copyright"> <a href="https://foundryco.com/terms-of-service-agreement/">Copyright 漏 2024 IDG Communications, Inc.</a></div> </div> </div> </footer> </div><!-- #page--> <!-- Start Subscriber Embed Code --> <script type="text/javascript"> var subscribersSiteId = "d73925e9-37f6-478a-9804-7901f9e3a2ae"; var subscribersServiceWorkerPath = '/?firebase-messaging-sw'; </script> <script type="text/javascript" src="https://cdn.subscribers.com/assets/subscribers.js"></script> <!-- End Subscriber Embed Code --> <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5JGZ3LH" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <link rel='stylesheet' id='typekit-styles-css' href='https://use.typekit.net/uow1hrg.css?ver=1.0.0' media='all' /> <link rel='stylesheet' id='robotofont-css' href='https://www.infoworld.com/wp-content/themes/iw-b2b-child-theme/src/static/fonts/roboto.css?ver=1.0.0' media='1' /> <script id="child_ajaxload_posts-js-extra"> var ajaxload_params = {"ajaxurl":"https:\/\/www.infoworld.com\/wp-admin\/admin-ajax.php","nonce":"000dd4877d"}; </script> <script id="frontend-scripts-js-extra"> var siteData = {"site":"infoworld.com","connectedhub":"b2b"}; var googleSearch = {"search_engine_id":"011881588825642368632:wfa05lybzqg","search_title":"Search","search_slug":"search"}; </script> <script id="ajaxload_posts-js-extra"> var ajaxload_params = {"ajaxurl":"https:\/\/www.infoworld.com\/wp-admin\/admin-ajax.php","nonce":"9af8550e6a"}; </script> <script id="ajaxload_events-js-extra"> var ajaxload_event_params = {"ajaxurl":"https:\/\/www.infoworld.com\/wp-admin\/admin-ajax.php","nonce":"57df80a10b"}; </script> <script type="text/javascript" src="https://www.infoworld.com/_static/??-eJyl0N0KwjAMBeAXMpYp/uxCfJa2qVtm15Ymc/r21l0MBUXQq0DgfDlEjQlsDOKCKOupDOgHSH5oKLAibEBayghJZ7kpJBbFNlMSVqc85RBM1gFTZAHjoz0vO16oJ1Za17tijWBWBmxLHmHavXK601cfNUKjxZWDxeNPVKn1sIxm944yQ0DvfgzPPf5pMCPuUlIflW8vSakkj/2h2q2rut7U+213B6Fjn/w=" ></script> </body> </html>