The risks of using vulnerable dependencies in your project, and how SCA helps manage them https://pvs-studio.com/en/blog/posts/csharp/0987/
PVS-Studio
The risks of using vulnerable dependencies in your project, and …
Most applications today use third-party libraries. If such a library contains a vulnerability, an app that uses this library may also be vulnerable. But how can you identify such problemati…
ML.NET: can Microsoft's machine learning be trusted? https://pvs-studio.com/en/blog/posts/csharp/0988/
PVS-Studio
ML.NET: can Microsoft′s machine learning be trusted?
In 2018, Microsoft created ML.NET, a machine learning framework for .NET developers. Since then, the machine learning library has undergone significant changes and acquired new features to …
The check of the Rhino JavaScript engine or how the unicorn met the rhino https://pvs-studio.com/en/blog/posts/java/0990/
PVS-Studio
The check of the Rhino JavaScript engine or how the unicorn met …
Among the wide variety of programming languages, what our users want the most is that the PVS-Studio analyzer to start supporting JavaScript. The Rhino engine is a project that our team can…
Sorting in C#: OrderBy.OrderBy or OrderBy.ThenBy? What's more effective and why? https://pvs-studio.com/en/blog/posts/csharp/0991/
PVS-Studio
Sorting in C#: OrderBy.OrderBy or OrderBy.ThenBy? What′s more effective and why?
Suppose we need to sort the collection by multiple keys. In C#, we can do this with the help of OrderBy().OrderBy() or OrderBy().ThenBy(). But what is the difference between these calls? To answer...
Reworking C and C++ front-end — or how we deal with 16-year legacy code in PVS-Studio https://pvs-studio.com/en/blog/posts/cpp/0992/
PVS-Studio
Reworking C and C++ front-end — or how we deal with 16-year lega…
In 2022, the PVS-Studio static analyzer for C and C++ turns 16 years old. If the analyzer were a human, it would have already finished high school! This project was started a long time ago,…
A talk with Jason Turner: the history of CppCast, and why it was shut down https://pvs-studio.com/en/blog/posts/cpp/0993/
PVS-Studio
A talk with Jason Turner: the history of CppCast, and why it was…
In this article, we are going to talk to Jason Turner, one of the CppCast founders. CppCast is the first podcast for C++ developers by C++ developers. From 2015 to 2022 CppCast had weekly c…
Stride Game Engine error review https://pvs-studio.com/en/blog/posts/csharp/0994/
PVS-Studio
Stride Game Engine error review
Stride is a free, feature-packed and cross-platform game engine implemented in C#. Stride may certainly become an alternative to Unity, but what about the quality of its source code? Let′s …
Do you plan to take on .NET MAUI? Get ready for an adventure with NullReferenceException https://pvs-studio.com/en/blog/posts/csharp/0996/
PVS-Studio
Do you plan to take on .NET MAUI? Get ready for an adventure wit…
.NET Multi-platform App UI is a framework written by professionals. However, the code of some of its functions looks like the developers could have forgotten what null reference dereferenci…
Misbeliefs in programming career or how to survive as a newcomer https://pvs-studio.com/en/blog/posts/0997/
PVS-Studio
Misbeliefs in programming career or how to survive as a newcomer
This article is purposed to be in a friendly spirit manner and carries neither mockery, nor snobbery. It intends to protect from unnecessary stress those who are entering the programming wo…
Is there life without RTTI or How we wrote our own dynamic_cast https://pvs-studio.com/en/blog/posts/cpp/0998/
PVS-Studio
Is there life without RTTI or How we wrote our own dynamic_cast
There aren′t many things left in modern C++ that don′t fit the Don′t pay for what you don′t use paradigm. One of them is dynamic_cast. In this article, we′ll find out what′s wrong with it, and...
Top 10 C++ conference talks 2019—2022 https://pvs-studio.com/en/blog/posts/cpp/0999/
PVS-Studio
Top 10 C++ conference talks 2019—2022
Lots of interesting developer conferences take place in the world. It would be great to invent teleportation so you could attend every talk you′re interested in, but let′s make things easier. You can...
How PVS-Studio prevents rash code changes, example N6 https://pvs-studio.com/en/blog/posts/cpp/1001/
PVS-Studio
How PVS-Studio prevents rash code changes, example N6
Developers often make mistakes accidentally, or because they are in a hurry. Wondering how to find such mistakes quickly? Welcome to another article in the How PVS-Studio prevents rash code…
What's new in C# 11: overview https://pvs-studio.com/en/blog/posts/csharp/1002/
PVS-Studio
What′s new in C# 11: overview
C# 11 is coming, so we′re going to explore its new features in detail. You may find these new features pretty curious even though there are not that many of them. Today let′s take a closer look at...
Examples of errors that PVS-Studio found in LLVM 15.0 https://pvs-studio.com/en/blog/posts/cpp/1003/
PVS-Studio
Examples of errors that PVS-Studio found in LLVM 15.0
Compilers are evolving: they issue more and more warnings. Do developers still need to use static code analyzers like PVS-Studio? Yes, because analyzers are evolving too. In this article yo…
0,1,2, Freddy came for Blender https://pvs-studio.com/en/blog/posts/cpp/1004/
PVS-Studio
0,1,2, Freddy came for Blender
This article could have been named How PVS-Studio prevents rash code changes, example N7. However, naming articles like that becomes boring. So today Freddy Krueger′s name is in the title, …
How we were looking for a bug in PVS-Studio or 278 GB of log files https://pvs-studio.com/en/blog/posts/cpp/1005/
PVS-Studio
How we were looking for a bug in PVS-Studio or 278 GB of log fil…
Here is an interesting story of how our team were looking for a bug in the PVS-Studio analyzer. Well, we make mistakes too. However, we are ready to roll up our sleeves and dive deep into t…
Lifetime extension of temporary objects in C++: common recommendations and pitfalls https://pvs-studio.com/en/blog/posts/cpp/1006/
PVS-Studio
Lifetime extension of temporary objects in C++: common recommendations and pitfalls
After reading this article, you will learn the following: ways to extend the lifetime of a temporary object in C++, various tips and tricks; pitfalls of the lifetime extension that a C++ programmer...