Tedious: Tedious Survey Results (May 2017 - Jan 2018)

Created on 22 Jan 2018  ·  5Comments  ·  Source: tediousjs/tedious

Here are the survey results from the Tedious survey which ran from May 2017 to January 2018.

In what projects do you mostly use Node.js + SQL Server?

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | Enterprise Projects | 20 | 41%
2 | Small-Medium Business Projects | 23 | 47%
3 | Personal Projects | 5 | 10%
4 | Prototyping only | 1 | 2%
  | TOTAL | 39 | 100.00%

What types of projects do you use Node.js with SQL Server for? (Select all that apply)

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | Web Applications | 41 | 84%
2 | Back-end Applications | 37 | 76%
3 | Desktop Applications | 6 | 12%
4 | Mobile Applications | 14 | 29%
5 | IoT Projects | 1 | 2%
6 | Data Science/Machine Learning Projects | 3 | 6%
7 | Other, please specify: [Open-ended answer] | 1 | 2%
  | Etl batch jobs | |
  | (49 Respondents)    TOTAL | 103 |

What driver do you use to connect your Node.js apps to SQL Server?

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | tedious (https://github.com/tediousjs/tedious) | 23 | 47%
2 | mssql (https://github.com/patriksimek/node-mssql) | 16 | 33%
3 | msnodesql (https://github.com/Azure/node-sqlserver) | 3 | 6%
4 | msnodesqlv8 (https://github.com/TimelordUK/node-sqlserver-v8) | 3 | 6%
5 | Other, please specify: [Open-ended answer] | 4 | 8%
  | We use tedious, but mostly via sequelize and sometimes with node-mssql. |   |
  | Sequelizejs |   |
  | https://github.com/mysqljs/mysql |   |
  | https://github.com/mysqljs/mysql |   |
  | TOTAL | 49 | 100.00%

What are the best attributes of your driver? (Select all that apply)

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | Pure Javascript implementation | 19 | 39%
2 | Performance | 15 | 31%
3 | Connection Resiliency | 14 | 29%
4 | Ease of Use | 30 | 61%
5 | Ease of Setup | 26 | 53%
6 | Compatibility with older SQL Server versions | 5 | 10%
7 | Database Feature Completeness | 11 | 22%
8 | Other, please specify: [Open-ended answer] | 3 | 6%
  | officially supported by Microsoft |   |
  | simplicity, raw access |   |
  | Windows Authentication for SQL Server! |   |
  | (49 Respondents)    TOTAL | 123

What improvements would you like to see in your driver? (Select all that apply)

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | Performance | 21 | 43%
2 | Connection Resiliency | 21 | 43%
3 | Ease of Use | 22 | 45%
4 | Ease of Setup | 13 | 27%
5 | Compatibility with older SQL Server versions | 4 | 8%
6 | Database Feature Completeness | 16 | 33%
7 | Other, please specify: [Open-ended answer] | 13 | 27%
  | json to xml procedure parameter conversion. |   |
  | Don't know yet |   |
  | Windows Auth in Tedious. Windows Auth, Windows Auth, WINDOWS AUTH |   |
  | Promise support |   |
  | connection pooling |   |
  | MsSql 2016 |   |
  | none |   |
  | More examples best practices |   |
  | Sample code and sample projects. |   |
  | Especially performance related to serialization. |   |
  | Windows integrated auth from Linux |   |
  | Didn't have any issues |   |
  | Event hooks, like node-postgres with triggers. |   |
  |(49 Respondents)    TOTAL | 110 |  

What is the one most necessary thing that needs to improve in your driver?

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | Open-ended answers | 22 | 100%
  | Better patterns for writing safe code without falling into callback hell. |   |
  | ? |   |
  | I don't want msnodeqlv8 improved. I want Microsoft to implement Windows Authentication for SQL Server in Tedious. Insane that the PR and feedback haven't resulted in Windows Auth for SQL Server in Tedious yet. Need help MS? |   |
  | Support latest version of Node |   |
  | More feature-parity with the .NET SqlClient driver |   |
  | connection pooling with resiliency |   |
  | Connection pooling. Need that performance. |   |
  | Needs an async interface (Promises, async/await). Instead of wrapping it with another library like tedious-promises. |   |
  | No really necessary changes. A more modern async/await API would be great now that those have landed in Node.js LTS. |   |
  | Can't think about for now. |   |
  | Documentation maintenance. |   |
  | Documentation |   |
  | More useful error reporting. |   |
  | Serialization performance. Receiving large data sets can take a long time and use an incredible amount of blocking CPU.Using a streaming interface can be helpful, but often it doesn't make sense when you only need 1000 rows and need to buffer all of them. |   |
  | JSON support. |   |
  | Would like to use table value parameters outside of stored prices (mssql's .query() function, instead of .execute()) |   |
  | TOTAL | 16 | 100.00% |  

How important is it to fix the improvement you mentioned in the previous question? (1-5, where 5 is the highest importance)

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | 5 | 15 | 38%
2 | 4 | 12 | 31%
3 | 3 | 2 | 5%
4 | 2 | 3 | 8%
5 | 1 | 2 | 5%
6 | N/A | 5 | 13%
  | TOTAL | 39 | 100.00%

What platform do you use for your development environment?

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | macOS | 14 | 29%
2 | Red Hat/CentOS | 4 | 8%
3 | Ubuntu/Debian | 7 | 15%
4 | SUSE | 0 | 0%
5 | Windows | 21 | 44%
6 | Other, please specify: [Open-ended answer] | 2 | 4%
  | windows, debian, centos |   |
  | archlinux / docker / alpine linux |   |
  | TOTAL | 48 | 100.00%

What platform do you use for your production environment?

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | macOS | 0 | 0%
2 | Red Hat/CentOS | 9 | 19%
3 | Ubuntu/Debian | 14 | 30%
4 | SUSE | 0 | 0%
5 | Windows | 19 | 41%
6 | Other, please specify: [Open-ended answer] | 4 | 8%
  | Anywhere Node runs - Windows, Linux, Mac |   |
  | windows, debian, centos |   |
  | Amazon Lambda |   |
  | ubuntu / docker / alpine linux |   |
7 | I don't run Node.js in production | 1 | 2%
  | TOTAL | 47 | 100.00%

What version of SQL Server are you using your driver against? (Select all that apply)

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | Azure SQL Database | 10 | 21%
2 | Azure SQL Data Warehouse | 0 | 0%
3 | SQL Server 2017+ | 6 | 12%
4 | SQL Server 2016 | 14 | 29%
5 | SQL Server 2014 | 5 | 10%
6 | SQL Server 2012 | 5 | 10%
7 | SQL Server 2008 R2 | 6 | 12%
8 | SQL Server 2008 | 0 | 0%
9 | SQL Server 2005 | 0 | 0%
10 | Other, please specify: [Open-ended answer] | 3 | 8%
  | 2008-2014 |   |
  | I usually use AWS. |   |
  | mariadb |   |
  | TOTAL | 49 | 100.00%

What version of Node.js are you primarily using?

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | Node.js v7.x | 28 | 57%
2 | Node.js v6.x | 13 | 27%
3 | Node.js v5.x | 0 | 0%
4 | Other, please specify: [Open-ended answer] | 8 | 16%
  | v8.9.1 |   |
  | Node.js v8.6 |   |
  | v8.x now, previously v7.x |   |
  | Node.js v8.x |   |
  | 8.9 |   |
  | 8.0.0 |   |
  | TOTAL | 49 | 100.00% |  

What Javascript frameworks do you integrate with your driver?

Order | Answer | Responses | Percent
-- | -- | -- | --
1 | ReactJS | 12 | 27%
2 | Express.js | 36 | 82%
3 | Meteor | 0 | 0%
4 | AngularJS | 8 | 18
5 | Angular2 | 10 | 23%
6 | jQuery | 9 | 20%
7 | ember.js | 1 | 2%
8 | Vue.js | 5 | 11%
9 | Backbone.js | 2 | 5%
10 | D3.js | 2 | 5%
11 | Other, please specify: [Open-ended answer] | 4 | 9%
  | Feathers.js |   |
  | knockout.js |   |
  | We also use in-house libraries for interacting with Kafka. |   |
  | KnockoutJS |   |
  |(44 Respondents)    TOTAL | 89 |  

Most helpful comment

@David-Engel tedious-connection-pool is not actively maintained. There are packages in npm that allow connection pooling via tedious, for now it would be best to direct users to use them 🤔 mssql and sequelize(ORM) are widely used ones.

All 5 comments

@David-Engel Thank you SO MUCH for posting these! 👍 😍

I got to say, I love that sole user that apparently uses tedious to connect to mariadb. 🤣

For the couple of users who responded that they would like connection pooling, I wonder if they know about https://github.com/tediousjs/tedious-connection-pool. I also wonder if that library is being kept up-to-date with the latest release of tedious. It looks pretty simple. Is that something we should contribute to? Or maybe integrate it into tedious? Just wondering...

@David-Engel tedious-connection-pool is not actively maintained. There are packages in npm that allow connection pooling via tedious, for now it would be best to direct users to use them 🤔 mssql and sequelize(ORM) are widely used ones.

Was this page helpful?
0 / 5 - 0 ratings