《SlashData:2023年webassembly 状况报告(英文版)(25页).pdf》由会员分享,可在线阅读,更多相关《SlashData:2023年webassembly 状况报告(英文版)(25页).pdf(25页珍藏版)》请在三个皮匠报告上搜索。
1、1.License GrantThis report is licensed under the Creative Commons Attribution-NoDerivatives Licence 4.0(International).Put simply,subject to the terms and conditions of this license,you are free to:Share You can reproduce the report or incorporate parts of the report into one or more documents or pu
2、blications,for commercial and non-commercial purposes.Under the following conditions:Attribution You must give appropriate credit to SlashDataTM and to The Linux Foundation as sponsors of this report,and indicate if changes were made.In that case,you may do so in any reasonable manner,but not in any
3、 way that suggests that SlashDataTM endorses you or your use.NoDerivatives you cannot remix or transform the content of the report.You may not distribute modified content.2.Limitation of Liability SlashDataTM,believes the statements contained in this publication to be based upon information that we
4、consider reliable,but we do not represent that it is accurate or complete and it should not be relied upon as such.Opinions expressed are current opinions as of the date appearing in this publication only and the information,including the opinions contained herein,are subject to change without notic
5、e.Use of this publication by any third party for whatever purpose should not and does not absolve such third party from using due diligence in verifying the publications contents.SlashDataTM disclaims all implied warranties,including,without limitation,warranties of merchantability or fitness for a
6、particular purpose.SlashDataTM,its affiliates,and representatives shall have no liability for any direct,incidental,special,or consequential damages or lost profits,if any,suffered by any third party as a result of decisions made,or not made,or actions taken,or not taken,based on this publication.Th
7、e analyst of the developer economy|formerly known as VisionMobile SlashData Copyright 2023|Some rights reservedBrayton Noll is a behavioral scientist with a background in climate change and environmental research.He holds a PhD from TU Delft in computational social-science with his thesis focusing o
8、n human behavioral dynamics and climate adaptation.He has five years of experience working with data analytics.brayton.nollslashdata.coNikita Solodkov is a multidisciplinary researcher with a particular interest in using data-driven insights to solve real-world problems.He holds a PhD in Physics and
9、 has over five years of experience in data analytics and research design.nikita.solodkovslashdata.co6 65 519197 72323WebAssembly is a binary instruction format that provides a portable compilation target for a wide range of programming languages.It aims to take advantage of the common hardware capab
10、ilities of a wide range of platforms to enable execution at near-native speeds.The aim of this report is to investigate the current state of this technology.We will explore the languages for which developers use WebAssembly as a compilation target and the performance benefits it provides when migrat
11、ing their projects.We will also look at aspects that attract developers to WebAssembly,the challenges they face,and how optimistic they are about the future adoption of this technology.Finally,we will conclude by focusing on the WebAssembly System Interface(WASI),gauging familiarity levels and uncov
12、ering the key motivations behind its usage.The findings of this report are based on data collected from an online survey designed,produced,and carried out by SlashData in collaboration with the Linux Foundation and the Cloud Native Computing Foundation(CNCF).The survey reached 255 respondents who us
13、e WebAssembly and took place over a period of two weeks in Q3 2023(21 June 4 August).The scope of WebAssembly has grown far beyond the web,with many using it for applications across a wide range of applications and services.The overall sentiment on the future adoption of WebAssembly is mostly optimi
14、stic for both web and non-web environments.However,some developers are not yet convinced by what this technology has to offer.The added flexibility and improved performance that WebAssembly offers attract developers to utilise it in a multitude of ways.With many overlaps,developers write application
15、s that aim to use WebAssembly from the start and port or migrate existing applications with the use of this technology.When migrating existing applications to WebAssembly,30%of respondents experience performance benefits of more than 50%.JavaScript stands out as the most popular programming language
16、 that is used for WebAssembly applications.Rust stands out in popularity in WebAssembly projects compared to other use cases.34%of WebAssembly users state that they are currently using the WebAssembly System Interface(WASI)in their projects.A further 34%report planning to adopt it in the next 12 mon
17、ths.Portability and easier deployment are the most important aspects that attract developers to WASI.HTTP,IO/streams,and SQL stand out as the most anticipated upcoming WASI features.1.1.WebAssemblyWebAssemblyThe capabilities of WebAssembly have grown considerably since its release in 2017,and so too
18、 has its viability of being used in stable software projects.While this technology was designed to be a part of the open web platform,its usage is not limited to the web environment.It is worth noting that while WebAssembly is still primarily used to develop web applications,this is changing over ti
19、me as WASI matures(see Chapter 2).More specifically,58%of our respondents indicate this in a multi-select question about the types of applications or services for which they use WebAssembly.Beyond this,we see a significant representation of this technology across a wide range of projects.This indica
20、tes that WebAssembly has a lot of potential and can be beneficial to all developers across a multitude of sectors and not just those involved in front-end web development.3%14%18%18%18%19%21%22%24%25%27%28%30%32%35%58%OtherServerlessAugmented or virtual realityScientific computingImage processingEnc
21、ryptionAudio/video processingPlatform emulationDesign or graphics toolsEdge computingBackend services(excluding Serverless)GamesArtificial inteligenceInternet of thingsData visualisationWeb applications%of respondents(n=255)1.1.WebAssemblyWebAssemblyThe wide scope of applications WebAssembly can be
22、used for is made possible by the many benefits it offers.Faster loading times(23%)and opportunities to explore new use cases and technologies(22%)are the most frequently mentioned aspects that have convinced respondents of this survey to start using WebAssembly.We also see that sharing code between
23、projects(20%),the use of binaries that run anywhere(18%),and the technology being language agnostic(18%)have relatively high selection rates.The acknowledgement of these benefits indicates that WebAssembly is well-recognised not only for its performance-related benefits but also for the flexibility
24、it brings to software development.3%9%14%14%15%15%16%17%18%18%18%19%20%20%22%23%OtherFollows W3C standardsSeamless integration with JavaScriptCompany policyReduced cloud computing costsAccess to native librariesGrowing community and ecosystemPorting existing applicationsLanguage agnosticSandboxed se
25、curityBinaries run anywhereEfficient execution of computationally intensive tasksImproved performance over JavaScriptSharing code between projectsExploring new use cases and technologiesFaster loading times%of respondents(n=254)1.1.WebAssemblyWebAssemblyWith the flexibility that WebAssembly offers,d
26、evelopers can take advantage of its features in a multitude of ways.Our data indicate that 76%of WebAssembly users are developing new applications with plans to use this technology from the start.A further 64%are taking advantage of the portability that WebAssembly offers by porting their existing a
27、pplications to new platforms.We also see that 62%are migrating existing applications to new programming languages on the same platform.We note that there is a large overlap between the above-mentioned methods,with 34%indicating their involvement in all three across their projects.Some developers may
28、 see tremendous benefits from migrating existing applications to new languages and porting them to new platforms simultaneously.In such cases,WebAssembly provides an easy,two-in-one solution that brings consistency along with all the other benefits that this technology has to offer.1.1.WebAssemblyWe
29、bAssembly%of respondents(n=209)Writing new applications(76%)Porting existing applications to new platforms(64%)Migrating existing applications to new languages on the same platform(62%)19%34%11%10%7%13%6%1.1.WebAssemblyWebAssemblyWhen migrating existing applications to new languages in WebAssembly p
30、rojects,37%of respondents report observing performance1 increases in the 21%to 50%range.A further 30%report that the performance of their applications has increased by more than 50%as a result of switching languages.This highlights that a large percentage of developers are already seeing one of the
31、key benefits of WebAssembly in their projects and sets up a promising future for the technology.However,we should note a small group(6%)of developers report experiencing minimal performance benefits,suggesting that there may still be ways to go in the pursuit of native speeds.1 Respondents were aske
32、d to consider the speed of their applications as the main performance metric.2%4%20%37%24%6%7%It decreased0%to 10%11%to 20%21%to 50%51%to 100%More than100%Not sure/Idont know%of respondents who have migrated existing applications(n=187)1.1.WebAssemblyWebAssemblyWith a selection rate of 45%,JavaScrip
33、t stands out as the most popular programming language for WebAssembly projects.This likely stems from the strongly anchored base of JavaScript in web development,with it being the most popular language for some time.Developers may wish to reuse the code they have already built in JavaScript in WebAs
34、sembly projects.However,we should note that most of its lead over the other languages comes from the“also using”category,with only 13%indicating primary usage.We asked developers which programming languages or platforms they use WebAssembly as a compilation target in their projects.Respondents were
35、asked to select the language that they use the most as primary and any other languages that they are also using in this context.1.1.WebAssemblyWebAssembly2%2%2%2%3%4%3%4%2%3%7%7%11%9%10%13%13%11%11%12%11%13%14%17%19%20%16%22%18%20%20%18%32%OtherRubyKotlinSwiftCOBOLGoCAssemblyScriptTypeScriptPHPRust.
36、NETJavaPythonC+C#JavaScriptPrimaryAlso using%of respondents(n=255)1.1.WebAssemblyWebAssemblyCPHPRustC+C#0%10%20%30%40%50%60%0%10%20%30%40%50%60%Usage for WebAssembly applications%of respondents(n=255)Usage by the wider developer community(Q1 2023)2%of the global developer population(n=15,720)On comp
37、aring the results of this survey to our broader research2,we find that the adoption of most languages aligns well with their global usage levels across other types of projects.From this point of view,we see that Python(29%)and Java(29%)are under-represented in WebAssembly projects.On the other end o
38、f the spectrum,the popularity of Rust in WebAssembly projects(23%)far exceeds its total usage across all types of projects(10%).2 The list of languages excludes COBOL,AssemblyScript,and the.NET platform while combining JavaScript and TypeScript.More information can be found in our“State of the Devel
39、oper Nation”report,which is based on data collected in our global survey that was fielded in Q1 2023(24th edition).1.1.WebAssemblyWebAssemblyAs is the case with all technologies,developers can face a wide range of challenges while working with WebAssembly.83%of the respondents from this survey repor
40、t being affected by at least one of the listed challenges in their projects.Difficulties with debugging and troubleshooting are mentioned by 19%of respondents,placing it at the top of the list.This highlights the increased complexity involved in working with WebAssembly,with many nuances that go bey
41、ond code readability.An example of this can be seen in 29%of respondents indicating that they have suffered from one of multiple runtime-related issues.These manifest through either experiencing different performances(15%)or a lack of consistent developer experiences(15%)between runtimes.Only 6%of r
42、espondents mention that using WebAssembly does not provide sufficient benefits when it comes to the performance of their applications.As noted earlier,With the performance benefits being very important to the respondents,this indicates that WebAssembly manages to meet the expectations of most develo
43、pers.1.1.WebAssemblyWebAssembly%of respondents(n=254)17%1%6%7%8%9%11%11%11%12%13%13%13%14%14%15%15%19%No challengesOtherDoes not provide enough improvement in performanceNo clear use casesPreferred framework not supportedSlow evolution of W3C standardsTools are too hard to usePreferred language not
44、supportedInsufficient non-browser APIsBinaries are too bigToo many tools to choose fromToo much custom code requiredCompatibility issues with certain browsersLack of learning materialsLack of comprehensive toolingLack of consistent developer experiences between runtimesDifferent performance between
45、runtimesDebugging and troubleshooting is difficult1.1.WebAssemblyWebAssemblyThe overall sentiment on the future adoption of WebAssembly is mostly optimistic for both web and non-web environments.With WebAssembly being web-based first,the sentiment on its future adoption is higher for the web than fo
46、r non-web environments.More specifically,39%of respondents are very optimistic about WebAssembly applications running on the web,while only 26%are for non-web environments.Around 22%indicate that they are pessimistic about its future adoption for either web(15%)or non-web environments(15%).Consideri
47、ng that this includes developers who are already using WebAssembly,this indicates that some developers are not yet convinced by what this technology has to offer.However,it is important to note that it is an evolving technology with many features yet to come,some of which we will explore in the foll
48、owing section of this report.5%7%10%7%24%15%35%32%26%39%Non-web environmetsWeb environmentsVery pessimisticSomewhat pessimisticNeutralSomewhat optimisticVery optimistic%of respondents(n=250)2.2.WebAssemblyWebAssembly System InterfaceSystem InterfaceWith all the benefits of WebAssembly,there is a lot
49、 of interest in using this technology beyond the browser.WebAssembly System Interface(WASI)is a modular system interface for WebAssembly aims to do precisely that.This is done through a collection of standardised APIs that do not depend on browsers and are not required to be compatible with JavaScri
50、pt.Our data suggest that 34%of WebAssembly users state that they are currently using WASI in their projects,and a further 34%report planning to adopt it in the next 12 months.11%20%34%34%2%Never heard of it Heard of it,buthave no clearplans to use itHeard of it,andplanning to useit in the next 12mon
51、thsCurrently using itin my projectsStopped using it%of respondents(n=252)2.2.WebAssemblyWebAssembly System InterfaceSystem InterfaceWe asked respondents who are currently using or planning to use WASI in their projects about their rationale.Our data indicates that portability and easier deployment a
52、re the most important aspects that attract developers to WASI,each being mentioned by 42%of our respondents.Along with other attributes,these can help propel the widespread adoption of WebAssembly for those who want to take advantage of its benefits beyond its use in web applications.21%27%28%29%35%
53、37%42%42%Incremental implementationConsistent behaviourModularityRuntime-independentWebAssembly-nativeReduced compatibility issuesEasier deploymentPortability%of respondents who are currently using or planning to use WASI(n=171)2.2.WebAssemblyWebAssembly System InterfaceSystem InterfaceJust like Web
54、Assembly,WASI APIs are developed as proposals through a standardised W3C process.We asked respondents who are currently using or planning to use WASI which features1 they are looking forward to the most.HTTP(35%)stands out as the most anticipated feature,with a selection rate of 35%.This is closely
55、followed by IO/streams(31%)and SQL(30%),along with key-value store(27%),runtime config(27%),and filesystem(26%)slightly further down the line.11%12%13%14%14%18%20%21%21%23%26%27%27%30%31%35%PreopensBlob-storeDistributed lock serviceClocksStdin,stdout,stderrRandomSocketsEnvironmentPollMessagingFilesy
56、stemRuntime configKey-value storeSQLIO/streamsHTTP%of respondents(n=169)1 A list of active WASI proposals can be found on GitHub.In Q2 2023,SlashData designed and ran an online survey for The Cloud Native Computing Foundation(CNCF)to explore the current state of the WebAssembly ecosystem.We conducte
57、d the analysis presented in this report based on the 255 respondents who replied to this custom survey.Many of the questions in this custom survey are specifically designed and co-created to address the CNCFs business objectives.Every SlashData survey is monitored and cleaned to ensure the highest s
58、tandards of retained responses.Our proprietary cleansing is designed to mitigate and remove opportunistic,fraudulent and bot responses.Consisting of multiple criteria formulated around logic rules,speed,consistency and response taking behaviour;this holistic assessment is key to our continued succes
59、s.Developer population sizingDeveloper segmentationWhy developers are adopting competitor products and how you can fix thatEmerging platforms augmented&virtual reality,machine learningWe survey 30,000+developers annually across Web,Desktop,Cloud,Mobile,Industrial IoT,AR/VR,Machine Learning and Data Science,Games,Consumer Electronics and Apps/Extensions for 3rd party ecosystems-to help companies understand who developers are,what they buy and where they are going next.25