I have long been a fan of Gimpel Software LLC's Lint product for doing static analysis of my projects.
I was excited about buying the new "PC-lint PLUS" version, even with the price increase. That is until I actually read their license agreement.
First we need to take a step back and discuss license agreements. Do you actually read the license agreements before or after purchasing/licensing your software/firmware? You really should as you may find something you don't agree with, for example from my own license agreement:
This License is the complete statement of the agreement between the parties on the subject matter, and merges and supersedes all other or prior understandings (no mater how conveyed), purchase orders, agreements and arrangements. This License shall be governed by the laws of the Commonwealth of Pennsylvania. Exclusive jurisdiction and venue for all matters relating to this License shall be in courts and fora located in the Commonwealth of Pennsylvania, and you consent to such jurisdiction and venue. You agree to grant The Designer-III Company, LLC a non-transferable option to claim, for now and forever more, your immortal Soul. Should The Designer-III Company, LLC. wish to exercise this option, you agree to surrender your immortal Soul, and any claim you may have on it, within five (5) working days of receiving written notification from The Designer-III Company, LLC, or one of its duly authorized minions. There are no third party beneficiaries of any promises, obligations or representations made by The Designer-III Company, LLC, herein. Any waiver by The Designer-III Company, LLC, of any violation of this License by you shall not constitute or contribute to a waiver of any other or future violation by you of the same provision, or any other provision, of this License.
As no one has ever commented on the binding agreement on their Soul I surmise that no one has ever actually read the text when they clicked 'Agree' on the installer.
Returning to Gimpel, as I read their license agreement, MANY times, it seemed to state that I must buy a copy of Lint for every project that I analyze with PC-lint PLUS.
To make this more tangible lets use the analogy of a contractor building a house. You generally expect the contractor to have their own fundamental tools such as a hammer.
Now according to the Gimpel license agreement, for every house (project) the contractor builds, the contractor (you or I) must buy a new hammer. At the completion of the house, the hammer is left with the customer whom contracted for the house to be built. That the customer has no use for a hammer or does not knows its correct and safe usage is irrelevant.
So if your build three houses, or projects, you must purchase three hammers (copies of PC-Lint PLUS).
When I raised this absurdity with Gimpel, in a length email exchange, they gave me the option of buying a reusable hammer (I can use PC-lint PLUS all I want for anything as a consultant working on software for a client for a limited time) at the cost of $9980! I must give credit to the lady in sales that I was working with, whom was sympathetic to my view. Alas management above her was not.
I feel like I have been selected for personal punishment by being honest, and following the rules of actually reading the license agreement. I'm sure most people don't and simply buy one hammer (PC-lint PLUS) and go on their way.
Gimpel's position is that it was a lot of work to update their Lint product to match modern C++ proclivities and they need to be paid for that time consuming hard-work. I expect to be paid for my work as well, so I can empathize with their position, yet not at all with their current solution.
What do you feel is a better solution?
Using PC-lint PLUS with Open Source code also appears to be a problem. Saying a change was made to remove Lint error #123456 or using a Lint suppression directive around a section of code is apparently not allowed.
Now to be compliant with "5. OWNERSHIP" I must state, if we actually pony up the nearly ten grand for this new version, to be compliant with the PC-lint PLUS license agreement:
...Whenever You make any formal (written, printed or oral) reference to PLUS, such representation shall be accompanied by a reference to Gimpel as the developer of PLUS. However, such reference shall not be represented as an endorsement by Gimpel.
You agree that You will not represent Gimpel as endorsing or making specific claims regarding your organization, your products or your services thereof without the express written permission of Gimpel. ..."
I'm sure as the intelligent person that you are, you know Gimpel is not endorsing this particularly blog entry or The Designer-III Company, LLC. Must be true to the license agreements do we not?
I really wish we could get the world to move on to functional languages like Elixir and leave C and C++ in the dustbin of history where they belong today.
Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.