DEV Community

loading...

Discussion on: 5 Mistakes Web Developers Should Avoid

Collapse
chains5000 profile image
Pablo Fradua

I don't really see the problem with #5.
If it's a good product, free, I can read and modify the source code, and it's well maintained, why not use it? Just cause somebody's making money out of it? Isn't that most programmers goal?

Is it because they're not "pure" open source? If something like that exists...

Collapse
liviufromendtest profile image
Liviu Lupei Author

The problem isn't that someone is making money from that open source solution, the problem is that they might be spreading misinformation and it might affect your work in a negative way if you use it.

Let's take a look at two open source examples from the testing world.

1. Selenium.
It's open source and free to use.
There is no for-profit corporation behind it, it's literally built and maintained by a community of developers.
There are no limitations, you can use it in any way you want.
All the popularity that it has gained is due to it being effective.

2. A Selenium competitor, I won't mention their name, but let's call them "Cupressus"
It's open source and free.
But there is a for-profit corporation behind it.
It's built and maintained by employees of the Cupressus company.
It has limitations and in order to bypass them you have to purchase a paid service from them called "Cupressus Dashboard Service".
A large part of the popularity that it has gained is due to paid advertising and paying developer advocates to promote it.

The approach taken by Cupressus is unethical.

Because if you do not read the fine print and use it in your project, your team will discover later that they can't add your Cupressus tests to a CI/CD pipeline and they need to purchase the paid service in order to do that. And you've basically locked yourself into paying a subscription for something that you thought was completely free.

The other problem is with the concealing of the severity of issues and limitations.

For example, if Selenium has a limitation that would be a deal-breaker, you would find details about it, no person or corporation would have any interest in making you think that the issue is not a big problem.

As for Cupressus, it's a different story.

Let's look at an example.

One of the many limitations is that it does not work on Internet Explorer and Safari.

You can try an experiment, go to the public Cupressus Gitter channel and mention something that you're not sure if you're supposed to use Cupressus due to those limitations.

In less than 3 minutes, you will see one of their paid "henchmen" jump and say something like "There is no need to test your application in IE and Safari in 2020, everyone is using polyfills".

Because they have a financial stake in the game.

You will also see blog articles by writers paid by Cupressus to bash Selenium and call it "old", "flaky", "unstable", "unreliable", etc. Which is not true. In this case, it seems that they are spreading misinformation.

As developers, we tend to trust what we see on open source communities.

So, if you're not careful, you might end up using Cupressus because you read a few articles where they said it was the bomb.

And after a few weeks, your company realizes that they need to pay money so you can add your Cupressus tests in a CI/CD pipeline.

And after a few months, you notice that your website is not working correctly in Internet Explorer and Safari and your employer is losing money because of that.

Notice the difference between real open source and honeypot open source?

Collapse
chains5000 profile image
Pablo Fradua

That's one project out of how many thousands?

Thread Thread
liviufromendtest profile image
Liviu Lupei Author

I didn't say that all or most open source solutions are promoted through unethical practices, I'm just saying that we should always investigate an open source solution before we use it.