{"id":5599,"date":"2014-08-04T11:55:22","date_gmt":"2014-08-04T09:55:22","guid":{"rendered":"http:\/\/blog.zhaw.ch\/icclab\/?p=5599"},"modified":"2014-08-25T11:44:23","modified_gmt":"2014-08-25T09:44:23","slug":"most-suitable-language-for-sdk-development-for-sdn","status":"publish","type":"post","link":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/","title":{"rendered":"Most suitable language for SDK development for SDN?"},"content":{"rendered":"<p>We at ICCLab are embarking upon an exciting project to make a software development kit to enable SDN researchers develop exciting products and innovative protocols overcoming the challenges and drawbacks of decades old network protocols in use today. We had a huge debate internally to decide which programming language to use for this development. Since, internally we had quite strong and vocal supporters of both Java and Python, it led to stalemate. So how did we resolve it?<\/p>\n<p><!--more--><\/p>\n<p>We threw open the question to SDN research and development community, we created a really simple survey and sent it to the communities of Trema and FloodLight. Below is the summary of responses we got within just 2 days of opening our survey.<\/p>\n<figure id=\"attachment_5611\" aria-describedby=\"caption-attachment-5611\" style=\"width: 658px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5611\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png\" alt=\"Distribution of responses\" width=\"658\" height=\"457\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png 658w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM-300x208.png 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM-431x300.png 431w\" sizes=\"auto, (max-width: 658px) 100vw, 658px\" \/><\/a><figcaption id=\"caption-attachment-5611\" class=\"wp-caption-text\">Distribution of responses<\/figcaption><\/figure>\n<p>The table below gives the distribution of the answers, and clearly Java seems to be the development language of choice. This survey broke the stalemate in our group fair and square!<\/p>\n<table style=\"width: 100%;border: none;text-align: center;background: #FBF5EF\">\n<tbody>\n<tr>\n<th>Language<\/th>\n<th>Responses<\/th>\n<th>Percentage<\/th>\n<\/tr>\n<tr>\n<th>Java<\/th>\n<th>18<\/th>\n<th>64.29<\/th>\n<\/tr>\n<tr>\n<th>C<\/th>\n<th>4<\/th>\n<th>14.29<\/th>\n<\/tr>\n<tr>\n<th>C++<\/th>\n<th>1<\/th>\n<th>3.57<\/th>\n<\/tr>\n<tr>\n<th>Python<\/th>\n<th>4<\/th>\n<th>14.29<\/th>\n<\/tr>\n<tr>\n<th>Other (Ruby)<\/th>\n<th>1<\/th>\n<th>3.57<\/th>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Just out of curiosity, we decided to plot the geo-location of all responders, and below is the map showing the locations. We got responses from all over the world.<\/p>\n<figure id=\"attachment_5601\" aria-describedby=\"caption-attachment-5601\" style=\"width: 584px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-5601\" src=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-10.54.43-AM-1024x720.png\" alt=\"Location of responders to our SDK4SDN survey.\" width=\"584\" height=\"410\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-10.54.43-AM-1024x720.png 1024w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-10.54.43-AM-300x211.png 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-10.54.43-AM-426x300.png 426w, https:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-10.54.43-AM.png 1025w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><figcaption id=\"caption-attachment-5601\" class=\"wp-caption-text\">Location of responders to our SDK4SDN survey.<\/figcaption><\/figure>\n<div class=\"pt-sm\">Schlagw\u00f6rter: <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/programming-languages\/\">programming languages<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/sdk\/\">sdk<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/sdn\/\">SDN<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/software-defined-networking\/\">software-defined networking<\/a><br><\/div>","protected":false},"excerpt":{"rendered":"<p>We at ICCLab are embarking upon an exciting project to make a software development kit to enable SDN researchers develop exciting products and innovative protocols overcoming the challenges and drawbacks of decades old network protocols in use today. We had a huge debate internally to decide which programming language to use for this development. Since, [&hellip;]<\/p>\n","protected":false},"author":78,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1,10],"tags":[438,436,293,437],"features":[],"class_list":["post-5599","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-community","tag-programming-languages","tag-sdk","tag-sdn","tag-software-defined-networking"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Most suitable language for SDK development for SDN? - Service Engineering (ICCLab &amp; SPLab)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Most suitable language for SDK development for SDN?\" \/>\n<meta property=\"og:description\" content=\"We at ICCLab are embarking upon an exciting project to make a software development kit to enable SDN researchers develop exciting products and innovative protocols overcoming the challenges and drawbacks of decades old network protocols in use today. We had a huge debate internally to decide which programming language to use for this development. Since, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Engineering (ICCLab &amp; SPLab)\" \/>\n<meta property=\"article:published_time\" content=\"2014-08-04T09:55:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-08-25T09:44:23+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png\" \/>\n<meta name=\"author\" content=\"Piyush Harsh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Piyush Harsh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/\"},\"author\":{\"name\":\"Piyush Harsh\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/2769375907ea1077b28a72e26889f003\"},\"headline\":\"Most suitable language for SDK development for SDN?\",\"datePublished\":\"2014-08-04T09:55:22+00:00\",\"dateModified\":\"2014-08-25T09:44:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/\"},\"wordCount\":222,\"commentCount\":2,\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png\",\"keywords\":[\"programming languages\",\"sdk\",\"SDN\",\"software-defined networking\"],\"articleSection\":[\"*.*\",\"Community\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/\",\"name\":\"Most suitable language for SDK development for SDN? - Service Engineering (ICCLab &amp; SPLab)\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png\",\"datePublished\":\"2014-08-04T09:55:22+00:00\",\"dateModified\":\"2014-08-25T09:44:23+00:00\",\"author\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/2769375907ea1077b28a72e26889f003\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#primaryimage\",\"url\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png\",\"contentUrl\":\"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/blog.zhaw.ch\/icclab\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Most suitable language for SDK development for SDN?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/\",\"name\":\"Service Engineering (ICCLab &amp; SPLab)\",\"description\":\"A Blog of the ZHAW Zurich University of Applied Sciences\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/2769375907ea1077b28a72e26889f003\",\"name\":\"Piyush Harsh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/1bff005c7d14996aa22495163abeb371e92daff6c0219e40790dea7d8723d578?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1bff005c7d14996aa22495163abeb371e92daff6c0219e40790dea7d8723d578?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1bff005c7d14996aa22495163abeb371e92daff6c0219e40790dea7d8723d578?s=96&d=mm&r=g\",\"caption\":\"Piyush Harsh\"},\"sameAs\":[\"http:\/\/piyush-harsh.info\/\"],\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/author\/harh\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Most suitable language for SDK development for SDN? - Service Engineering (ICCLab &amp; SPLab)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/","og_locale":"en_US","og_type":"article","og_title":"Most suitable language for SDK development for SDN?","og_description":"We at ICCLab are embarking upon an exciting project to make a software development kit to enable SDN researchers develop exciting products and innovative protocols overcoming the challenges and drawbacks of decades old network protocols in use today. We had a huge debate internally to decide which programming language to use for this development. Since, [&hellip;]","og_url":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/","og_site_name":"Service Engineering (ICCLab &amp; SPLab)","article_published_time":"2014-08-04T09:55:22+00:00","article_modified_time":"2014-08-25T09:44:23+00:00","og_image":[{"url":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png","type":"","width":"","height":""}],"author":"Piyush Harsh","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Piyush Harsh","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#article","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/"},"author":{"name":"Piyush Harsh","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/2769375907ea1077b28a72e26889f003"},"headline":"Most suitable language for SDK development for SDN?","datePublished":"2014-08-04T09:55:22+00:00","dateModified":"2014-08-25T09:44:23+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/"},"wordCount":222,"commentCount":2,"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png","keywords":["programming languages","sdk","SDN","software-defined networking"],"articleSection":["*.*","Community"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/","url":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/","name":"Most suitable language for SDK development for SDN? - Service Engineering (ICCLab &amp; SPLab)","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#primaryimage"},"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png","datePublished":"2014-08-04T09:55:22+00:00","dateModified":"2014-08-25T09:44:23+00:00","author":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/2769375907ea1077b28a72e26889f003"},"breadcrumb":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#primaryimage","url":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png","contentUrl":"http:\/\/blog.zhaw.ch\/icclab\/files\/2014\/08\/Screen-Shot-2014-08-04-at-11.10.01-AM.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.zhaw.ch\/icclab\/most-suitable-language-for-sdk-development-for-sdn\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.zhaw.ch\/icclab\/"},{"@type":"ListItem","position":2,"name":"Most suitable language for SDK development for SDN?"}]},{"@type":"WebSite","@id":"https:\/\/blog.zhaw.ch\/icclab\/#website","url":"https:\/\/blog.zhaw.ch\/icclab\/","name":"Service Engineering (ICCLab &amp; SPLab)","description":"A Blog of the ZHAW Zurich University of Applied Sciences","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/2769375907ea1077b28a72e26889f003","name":"Piyush Harsh","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1bff005c7d14996aa22495163abeb371e92daff6c0219e40790dea7d8723d578?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1bff005c7d14996aa22495163abeb371e92daff6c0219e40790dea7d8723d578?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1bff005c7d14996aa22495163abeb371e92daff6c0219e40790dea7d8723d578?s=96&d=mm&r=g","caption":"Piyush Harsh"},"sameAs":["http:\/\/piyush-harsh.info\/"],"url":"https:\/\/blog.zhaw.ch\/icclab\/author\/harh\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/5599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/comments?post=5599"}],"version-history":[{"count":32,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/5599\/revisions"}],"predecessor-version":[{"id":5637,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/5599\/revisions\/5637"}],"wp:attachment":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/media?parent=5599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/categories?post=5599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/tags?post=5599"},{"taxonomy":"features","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/features?post=5599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}