diff options
Diffstat (limited to 'web/news/e026_survey_results.rst')
-rw-r--r-- | web/news/e026_survey_results.rst | 699 |
1 files changed, 0 insertions, 699 deletions
diff --git a/web/news/e026_survey_results.rst b/web/news/e026_survey_results.rst deleted file mode 100644 index 106dce0e4..000000000 --- a/web/news/e026_survey_results.rst +++ /dev/null @@ -1,699 +0,0 @@ -Nim Community Survey Results -============================ - -.. container:: metadata - - Posted by Dominik Picheta on 3 September 2016 - -We have recently closed the 2016 Nim Community Survey. I am happy to -say that we have received exactly 790 responses, huge thanks go to the people -that took the time to respond. We're incredibly thankful for this very valuable -feedback. - -This survey was inspired in part by the -`2016 State of Rust <https://blog.rust-lang.org/2016/06/30/State-of-Rust-Survey-2016.html>`_ -survey. You will note that many of the questions were modelled after -Rust's survey. One of the reasons for doing this was to allow us to easily -compare our results against the results obtained in the Rust survey. In -addition, we of course also liked many of their questions. - -Our survey ran from the 23rd of June 2016 until the 8th of August 2016. The -response numbers are impressive considering Nim's community size; at 790 they -make up just over 25% of the Rust survey's responses. - -The goal of this survey was to primarily determine how our community is using -Nim, in order to better understand how we should be improving it. In particular, -we wanted to know what people feel is missing from Nim in the lead up to -version 1.0. We have also asked our respondents about how well the Nim tools -worked, the challenges of adopting Nim, the resources that they used to learn -Nim and more. - -It is my hope that we will be able to run a similar survey in a years time, -doing so should give us an idea of whether we are improving. -With these general facts in mind, let's begin looking at specific questions. - -How did you find out about Nim? -------------------------------- - -The rationale for the first question was simple, we wanted to know where our -respondents found out about Nim. This is an interesting question for us, as -we do occassionally get users asking us why it took so long for them to hear -about Nim. It allows us to see how effective each website is at spreading the -word about Nim. - -.. raw::html - - <a href="../assets/news/images/survey/nim_found.png"> - <img src="../assets/news/images/survey/nim_found.png" alt="How did you find out about Nim?" style="width:100%"/> - </a> - -The majority of our respondents found Nim via Reddit, HackerNews or a search -engine such as Google. These results are not altogether surprising. There were -also a lot of "Other" responses, some of which were a bit more -interesting. These included multiple mentions of habrahabr.ru, Dr. Dobb's, -and lobste.rs. - -Do you use Nim? ---------------- - -Just like the Rust survey creators, we wanted to ensure that our survey was -open to both Nim users as well people who never used Nim. In addition to -those two groups, we have also included a third group of people: ex-Nim -users. All three are interesting, for many different reasons. -Nim users can tell us how they are using Nim and also how Nim's -tooling can improve. Ex-Nim users give us an -idea of why they stopped using Nim. Finally, respondents who never used Nim -can tell us the reasons for not adopting it. - -.. raw::html - - <a href="../assets/news/images/survey/do_you_use_nim.png"> - <img src="../assets/news/images/survey/do_you_use_nim.png" alt="Do you use Nim?" style="width:100%"/> - </a> - -It's nice to see that we have such a good range of respondents. The Rust survey -had a much larger number of Rust users amongst their respondents, with -no distinction between users that never used Rust and users that stopped using -Rust. - -Should we consider your answers to be invalid? ----------------------------------------------- - -This was something I thought would be interesting to have, after I saw it -being used in another survey. While it does pinpoint possibly -invalid respondents, I have opted against filtering those out. Mainly because -that would require re-creating each of the charts generated by Google Forms -manually. - -.. raw::html - - <a href="../assets/news/images/survey/reliability.png"> - <img src="../assets/news/images/survey/reliability.png" alt="Should we consider your answers to be invalid?" style="width:100%"/> - </a> - -According to the responses to this question, around 94% of our responses -can be considered reliable. - -Nim users ---------- - -The following questions were answered only by the 38.9% of our respondents -who identified themselves as Nim users. - -How long have you been using Nim? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. raw::html - - <a href="../assets/news/images/survey/nim_time.png"> - <img src="../assets/news/images/survey/nim_time.png" alt="How long have you been using Nim?" style="width:100%"/> - </a> - -A large proportion of our Nim users were new. This is good news as it means that -our community is growing, with a large proportion of new Nim users that could -become long-term Nimians. In total, more than 35% of Nim users can be considered -new having used Nim for less than 3 months. With 18% of Nim users that can -be considered very new having used Nim for less than a month. -This could suggest that 18% of our users have only just found out about Nim in -the last week or so and have not yet got the chance to use it extensively. - -The high percentages of long term Nim users are encouraging. -They suggest -that many users are continuing to use Nim after making it through the first -few months. The sharp drop at 7-9 months is interesting, but may simply be -due to the fact that there were fewer newcomers during that period, or it -could be because our respondents are more likely to estimate that they have -been using Nim for a year or half a year rather than the awkward 7-9 months. - -.. raw::html - - <a href="../assets/news/images/survey/nim_time_rust.png"> - <img src="../assets/news/images/survey/nim_time_rust.png" alt="Time using Nim and Rust" style="width:100%"/> - </a> - -The results for Nim and Rust are actually remarkably similar. They both show a -drop at 7-9 months, although Rust's isn't as dramatic. Nim on the other hand -has a significantly higher percentage of new Nim users. - -Do you use Nim at work? -~~~~~~~~~~~~~~~~~~~~~~~ - -An important aspect of a language's adoption is whether it is being used for -"real" work. We wanted to know how many people are using Nim in their day -jobs and under what circumstances it is used. - -.. raw::html - - <a href="../assets/news/images/survey/nim_at_work.png"> - <img src="../assets/news/images/survey/nim_at_work.png" alt="Do you use Nim at work?" style="width:100%"/> - </a> - -While a vast majority of our users are not using Nim at work, more than 25% -of them are. It's encouraging to see such a high number already, even before -we have released version 1.0. In fact, this percentage is likely close to 30%, -because many of the "Other" responses mention using Nim for the likes of -internal tools or small scripts to help with the respondent's work. - -.. raw::html - - <a href="https://blog.rust-lang.org/images/2016-06-Survey/rust_at_work.png"> - <img src="https://blog.rust-lang.org/images/2016-06-Survey/rust_at_work.png" alt="Do you use Rust at work?" style="width:100%"/> - </a> - -Interestingly, a larger percentage of Nim users are using Nim at work than -Rust users. The sample sizes are of course vastly different, but it's still an -interesting result. Combined, nearly 1/5th of Rust users are using Rust -commercially whereas more than a quarter of Nim users are using Nim -commercially. - -Approximately how large are all the Nim projects that you work on? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Finding out how large the Nim projects worked on by Nim users are is also -very valuable. - -.. raw::html - - <a href="../assets/news/images/survey/project_size.png"> - <img src="../assets/news/images/survey/project_size.png" alt="Nim project size for all users" style="width:100%"/> - </a> - -This shows us that currently Nim is primarily being used for small scripts and -applications, with nearly 60% of the projects consisting of less than 1,000 -lines of code. This makes sense as many of our users are not using Nim -professionally, but are doing so in their spare time. - -.. raw::html - - <a href="../assets/news/images/survey/project_size_work.png"> - <img src="../assets/news/images/survey/project_size_work.png" alt="Nim project size for work users" style="width:100%"/> - </a> - -The numbers for part-time and full-time work users of Nim tell a different -story. Over 70% of the projects written by full-time users are between 10,001 -and 100,000 lines of code. Part-time users show a slightly different trend, -with many more small projects, the majority being between 1,000 and -10,000 lines of code. - -Overall it's good to see that there is a few large projects out there which are -composed of more than 100,000 lines of code. We expect to see the amount of -large projects to grow with time, especially with version 1.0 on the way. - -.. raw::html - - <a href="../assets/news/images/survey/project_size_nim_rust.png"> - <img src="../assets/news/images/survey/project_size_nim_rust.png" alt="Nim project size for work users (Nim vs. Rust)" style="width:100%"/> - </a> - -In comparison to Rust the proportion of project sizes for full-time users is -vastly different. This is likely due to our small sample size. Project sizes for -part-time users between Rust and Nim are somewhat similar, with differences of -around 10% for each project size. - -Do you plan to try to use Nim at work? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. raw::html - - <a href="../assets/news/images/survey/planning_to_use_at_work.png"> - <img src="../assets/news/images/survey/planning_to_use_at_work.png" alt="Planning to use Nim at work?" style="width:100%"/> - </a> - -It's also encouraging to see that over 50% of Nim users are planning to use -Nim at work! This is slightly more than Rust's 40% and should help Nim's -adoption into even more areas. - -Nim and its tools -~~~~~~~~~~~~~~~~~ - -In this section of the survey, we wanted to find out the tools that Nim -users are utilising when developing Nim applications. - -What editor(s) do you use when writing Nim? -___________________________________________ - -Programmers are very specific when it comes to their editor of choice, because -of that it's good to know which editor is most popular among our community. - -.. raw::html - - <a href="../assets/news/images/survey/editors.png"> - <img src="../assets/news/images/survey/editors.png" alt="Editors used by Nim users" style="width:100%"/> - </a> - -Looks like Vim is the winner with almost 30%. Followed by Sublime Text and -Emacs. Aporia, the Nim IDE, gets a respectable 15.5%. There was -also more than -17% of answers which included "Other" editors, such as: Notepad++, Geany, gedit, -and Kate. - -What operating system(s) do you compile for and run your Nim projects on? -_________________________________________________________________________ - -This question gave us information about the most popular target operating -systems, as well as some of the more obscure ones. We have asked this question -to find out the platforms on which Nim applications run on most frequently. - -.. raw::html - - <a href="../assets/news/images/survey/target_os.png"> - <img src="../assets/news/images/survey/target_os.png" alt="Target operating systems" style="width:100%"/> - </a> - -This question allowed multiple choices, so each percentage is out of the total -number of respondents for this question. For example, 80.7% of the -respondents selected "Linux" but only 26.6% selected OS X. - -This makes Linux by far the most popular target for Nim applications. -Some "Other" targets included: BSD (OpenBSD, FreeBSD), iOS, Android, and -JavaScript. -It's great to see Nim being used on such a wide variety of platforms. - -What operating system(s) do you develop Nim projects on? -________________________________________________________ - -With this question, we wanted to know what operating systems are used for -development. - -.. raw::html - - <a href="../assets/news/images/survey/dev_os.png"> - <img src="../assets/news/images/survey/dev_os.png" alt="Development operating systems" style="width:100%"/> - </a> - -This question also allowed multiple choices and ended up with very similar -results. - -You can see that Linux is also the most popular developmental -platform for Nim. But it's more popular as a target platform. - -Which version(s) of Nim do you use for your applications? -_________________________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/nim_versions.png"> - <img src="../assets/news/images/survey/nim_versions.png" alt="Version use" style="width:100%"/> - </a> - -At the time of this survey, version 0.14.2 was the latest stable release. -It's no wonder that it is the most commonly used release of Nim. It's good to -see that the older versions are not used as often. The high use of ``Git HEAD (devel)`` -(nightly builds) isn't surprising, Nim is still evolving rapidly and our -release schedule is not regular or frequent. - -Once we go past the 1.0 release, we expect to see much less use of the unstable -``devel`` branch. - -Has upgrading to a new version of the Nim compiler broken your code? -____________________________________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/breakage.png"> - <img src="../assets/news/images/survey/breakage.png" alt="Breakage" style="width:100%"/> - </a> - -Despite the unstable nature of Nim in the lead up to version 1.0, whenever -we make breaking changes we do our best to deprecate things and ensure that -old code continues to work for our users. Of course sometimes this is not -possible and other times it is simply easier to add a breaking change. - -This question was asked to determine how much our user base is affected by -breaking changes between Nim versions. We decided to have three possible -answers for this question in order to give us an idea how frequent the -breakage was. - -It's incredible to see that over 50% of our users have not experienced any -breakage after upgrading. We expect this number to increase significantly -after version 1.0 is released. Of the users that did experience breakage, -over 80% of them said that it was a rare occurrence. - -In comparison to Rust, our results show that there was a higher percentage of -users experiencing breakage as a result of an upgrade. This is to be expected, -because Nim is still in its pre-1.0 period, whereas Rust 1.0 has been released -over a year ago now. - -Unfortunately while we are still in this pre-1.0 period, releases will likely -introduce breaking changes as we refine certain aspects of Nim such as its -standard library, so the number of users experiencing breaking changes may -increase. - -If so, how much work did it take to fix it? -___________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/difficulty_fixing_breakage.png"> - <img src="../assets/news/images/survey/difficulty_fixing_breakage.png" alt="difficulty fixing breakage" style="width:100%"/> - </a> - -Thankfully most of the breakage experienced by Nim users was very easy to fix. - - -If you used Nimble, do you like it? -___________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/nimble_opinion.png"> - <img src="../assets/news/images/survey/nimble_opinion.png" alt="Do you like Nimble?" style="width:100%"/> - </a> - -Nimble is the Nim package manager, a tool that is very important in Nim's -ecosystem as it allows developers to easily install dependencies for their -software. - -The majority of respondents rated it as a 4, showing us that the majority does -like Nimble. With over 55% rating it a 4 or 5. This percentage isn't as -overwhelming as the 94.1% of users that rated Cargo a 4 or 5 in the Rust -survey. Based on these results I think that we definitely need to do a -better job with Nimble. - -In our next survey, it might be a good idea to ask more questions about Nimble -to determine how exactly it can be improved. - -What aspects of Nim do you find most appealing? -_______________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/nim_appeal.png"> - <img src="../assets/news/images/survey/nim_appeal.png" alt="What aspects of Nim do you find most appealing?" style="width:100%"/> - </a> - -We were interested to know the features of Nim that appeal most to our users. -More than 80% of our respondents selected "Execution Speed" as one of the -features that appeal to them. With "Development Speed" and "Readability" -tying for second place and "Metaprogramming" at third place. - -The options given to our respondents are rather predictable, -they do show us which of these features have the highest appeal though. -What's more interesting are the "Other" answers. - -By far the most popular "Other" answer was related to Nim's compilation to C. -Many users mentioned that they like how easy it is to interface with C -libraries and the great portability that compiling to C offers. - -What aspects of Nim do you find most displeasing? -_________________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/nim_displeasing.png"> - <img src="../assets/news/images/survey/nim_displeasing.png" alt="What aspects of Nim do you find most displeasing?" style="width:100%"/> - </a> - -It was only natural to ask this question. The results are almost perfectly -opposite to the previous question's answers, with almost 50% of respondents -selecting "Debugging Tools" -as the most displeasing aspect of Nim. With "Documentation" and "Testing Tools" -in second and third place respectively. There is also a much larger number of -"Other" answers to this question. - -The "Other" answers for this question vary a lot. Here is a selection of -them, ordered by frequency: - -* Small community size. -* Lack of in-depth tutorials. -* Quality of error messages. -* Forward declarations and no cyclic imports. -* Bugs in the standard library. -* No good IDE. -* No REPL. -* No major version. -* Bugs in the compiler. -* Lack of libraries. -* Difficulty installing on Windows. -* Non-intuitive semantics of various constructs. -* Lack of immutable collections. -* Async/await not being production ready. -* Lack of shared collections for threads. -* No Haxe target. -* Memory safety. - -We hope that we can improve these things with time. Many of these issues are -already being worked on, including the removal of the need for forward -declarations. Some of these issues like our small community size are difficult -to fix, but we will nonetheless do our best. - - -Previous Nim users -~~~~~~~~~~~~~~~~~~ - -For users that have used Nim before but decided against using it, we asked just -one specific question. The proportion of our respondents that answered it -was 24%. - -Why did you stop using Nim? -___________________________ - -.. raw::html - - <a href="../assets/news/images/survey/ex_nim.png"> - <img src="../assets/news/images/survey/ex_nim.png" alt="I stopped using Nim because..." style="width:100%"/> - </a> - -Again, this question got a lot of "Other" answers. Apart from that, the -most popular reason for leaving Nim is that it is not stable. Followed by the -a lack of needed libraries and packages and the instability of the -standard library. - -* Lack of IDE support. -* Style insensitive. -* Documentation. -* Dislike the syntax. -* Community is too small. -* Missing language features (for example RAII). -* No opportunities to use it at work. -* Messy standard library. - -The first item, "Lack of IDE support", was mentioned by multiple respondents. -In the future we should look into ensuring that major IDEs have plugins which -enable easy Nim development. - -Based on some of the "Other" answers, it seems that many of the respondents -have not used Nim for very long, for example many respondents complained about -installation issues which they would have run into before getting a chance to -use Nim. Because of this I would consider them not -ex-Nim users but developers that have not had a chance to try Nim fully. -Next time we should also ask how long the respondent has used Nim for to get a -better idea of whether they had a chance to use Nim for extended periods of -time. - -Non-Nim users -~~~~~~~~~~~~~ - -We also wanted to know the reasons why developers decided against using Nim. - -Why do you not use Nim? -_______________________ - -.. raw::html - - <a href="../assets/news/images/survey/non_user.png"> - <img src="../assets/news/images/survey/non_user.png" alt="I don't use Nim because..." style="width:100%"/> - </a> - -The most common reason that people have for not using Nim is that it is -not yet ready for production. Thankfully this will improve with time. -IDE support is also a prominent factor just as we've seen in previous results. - -There is also a lot of "Other" answers, let's have a look at a selection of -them. Some of the most prominent ones, in order of frequency, include: - -* No time to use/learn it -* Syntax -* Documentation is incomplete -* Garbage Collection -* Prefer functional paradigm -* Small community -* Style insensitivity/Case insensitivity - -One respondent made a very good suggestion: they said that the -"Do you use Nim?" question should have included "No, but I intend to" as -an answer. Definitely something we will do in the next survey. Indeed, many -respondents mentioned that they were planning on trying out Nim but that they -just have no time to do so, this is very encouraging! - -Learning Resources -~~~~~~~~~~~~~~~~~~ - -We wanted to get an idea of how Nim users are learning Nim. Every respondent -answered this question, no matter what they answered for the "Do you use Nim?" -question. - -Which learning resources, if any, did you use to learn Nim? -___________________________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/learning_resources.png"> - <img src="../assets/news/images/survey/learning_resources.png" alt="learning resources" style="width:100%"/> - </a> - -The idea behind this question was to understand which learning resources -were most popular among our user base. The -`Nim tutorial <http://nim-lang.org/docs/tut1.html>`_ is by far the most -popular. In previous questions, we saw respondents mentioning that the Nim -tutorial does not go into enough detail about Nim. Thanks to this information -we can come to the conclusion that the tutorial needs to be improved -significantly to make sure that it gives our users the necessary information -to use Nim effectively. - -Indeed, many users also use the -`Nim manual <http://nim-lang.org/docs/manual.html>`_ to learn Nim. -This manual has been -written as a specification and so is not ideal for teaching Nim. Many of -the concepts in the Nim manual need to be explained in a lot more detail in -the Nim tutorial. - -Of course, it's exciting to see our respondents using other materials to learn -Nim. In particular I am excited to see that over 15% of the respondents have -used -`Nim in Action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_ -to learn Nim. I expect that more and more users will pick up the book after it -is fully published. - -Nim in Action -_____________ - -As the author of -`Nim in Action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_, -I wanted to get some statistics surrounding -my book. With this in mind, I have created some questions relating to it. - -Have you read Nim in Action? -____________________________ - -.. raw::html - - <a href="../assets/news/images/survey/book.png"> - <img src="../assets/news/images/survey/book.png" alt="Have you read Nim in Action?" style="width:100%"/> - </a> - -It's good to see that over 50% of respondents have read the book or are at least -planning to read it. Keep in mind that this question was answered by all -respondents, not just Nim users. - -.. container:: standout - - Are you interested in purchasing a copy of - `Nim in Action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_? - If so, you can use code ``wm090416lt`` to get 50% off the printed book today only! - If you purchase it now you will get access to an early access copy of - Nim in Action in eBook form and will be able to take part in the development - of this book. - -Did you enjoy Nim in Action? -____________________________ - -.. raw::html - - <a href="../assets/news/images/survey/book_opinion.png"> - <img src="../assets/news/images/survey/book_opinion.png" alt="Did you enjoy Nim in Action?" style="width:100%"/> - </a> - -Of the people that read Nim in Action it's nice to see that almost 70% have -enjoyed it. - -Nim's future -~~~~~~~~~~~~ - -What improvements are needed before Nim v1.0 can be released? -_____________________________________________________________ - -We were interested to know what our users believe is needed before -Nim version 1.0 can be released. - -.. raw::html - - <a href="../assets/news/images/survey/10_needs.png"> - <img src="../assets/news/images/survey/10_needs.png" alt="What is needed before 1.0 can be released?" style="width:100%"/> - </a> - -It appears that the standard library is the biggest concern. With more than half -of all respondents selecting "The standard library needs to reviewed and -any problems with it fixed". This is in fact something we are already planning -to address, so it's good to see that the majority agrees with us. - -A large proportion of users also believes that the language is great as-is -and that we should focus on stabilising the compiler. This somewhat contradicts -the majority. But perhaps most of them thought that "The language" excludes the -standard library. - -For this question, we decided to give our respondents a dedicated place to -give general feedback about what they feel is needed before v1.0 can be -released. We received over 200 responses to that. Many of these responses -reflect what we have already seen: that the documentation needs to improve, -that we need a good Nim IDE, stability for experimental features such as -concepts, the standard library needs to be cleaned up. - -Unfortunately many respondents used this question to say what needs to be fixed -in Nim in general, not what is definitely necessary before 1.0 can be released. - -Community demographics -~~~~~~~~~~~~~~~~~~~~~~ - -What domain do you work in currently? -_____________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/domains.png"> - <img src="../assets/news/images/survey/domains.png" alt="Work domains" style="width:100%"/> - </a> - - -Nim users are working in a wide variety of domains. It is encouraging to see -people from so many different backgrounds taking part in this survey. - -What programming languages are you most comfortable with? -_________________________________________________________ - - -.. raw::html - - <a href="../assets/news/images/survey/languages.png"> - <img src="../assets/news/images/survey/languages.png" alt="Programming languages" style="width:100%"/> - </a> - -Python and C are the top two programming languages that our respondents are -most comfortable with. This is not altogether surprising. - -Last words -~~~~~~~~~~ - -At the end of the survey we gave our respondents a chance to speak their mind -about anything they wish, with a simple question: "Anything else you'd like -to tell us?" - -There was a lot of great feedback given in this question from people who -obviously really care deeply about Nim. There is too much to outline here, -but rest assurred that we will take it all into account and do our best to -act on it. - -In addition to feedback, we were also overwhelmed by the amount of positive -comments in the answers to this -question. There was a lot of support from the community thanking us for our -work and determination. - -I'll let some quotes speak for themselves: - -.. raw::html - - <blockquote>You rock, seriously.</blockquote> - <blockquote>Nim rocks! Keep it up! Thank you very much!</blockquote> - <blockquote>You've made great progress on the language without any corporate backing, that is amazing. I wish Nim becomes one of the top used languages in a few years.</blockquote> - <blockquote>Nim is elegant and wonderful! Keep at it!</blockquote> - -Our community is truly brilliant. We thank each and every one of you for -filling out this survey and hope that you will help us tackle some of the -challenges that face Nim. - -This survey was a good place to give us feedback, but please don't wait for -the next one. We are always looking to hear more from you and we hope that you -will participate in discussions relating to this survey as well the future -of Nim. - -Thanks for reading, and have a good day! |