DeepCode is now part of Snyk. Learn more about Snyk Code.

DeepCode added two new major languages – Welcome PHP and C# to the family!!!

Sunday, October 25th, 2020

As of now, DeepCode supported languages are JavaScript, TypeScript, Python, Java, and C++ in beta. As promised, we worked restlessly to add new capabilities. We have been asked to add support for two different ecosystems. As of today, we added support for two new languages that bring new, massive diversity to the tool: PHP and C#.

PHP – Born in the Web

Since its invention in 1994, PHP has seen wide adoption, especially in web applications. According to W3techs PHP is driving 78.9% of all websites as the server-side programming language. This whopping success is for sure related to widely used Content Management Systems such as WordPress.

There are downsides to this success and let us mention two here: First, running large amounts of web servers provides exposure and made PHP a primary target for security probing. Over the years, the language as well as its frameworks saw massive changes triggered by security exploits. Secondly, PHP attracted professional developers as well as hobbyists and amateurs. And, well, to put it bluntly: Some projects show it. It would be wrong to simply blame PHP as you can produce great code with the language but even PHP enthusiasts admit there are some amazing (in the sense of horror) projects out there. And when you inherit a PHP project, get ready for some surprises – both security as well as performance and style-wise.

DeepCode is here to help. We added support for PHP and started to train the system in the usual manner. We are not done yet, so please treat PHP for now as a beta but you will see some amazing results already. Our initial results are promising and we will stack up over the coming weeks.

C# - Entering the .net world

C# and its underlying .net framework are a whole new world for itself. C# was introduced in 2000 and therefore had its 20th anniversary this year. In all this time, we saw 8 releases and version 9 is available as a preview while I am writing this. To give you an idea of how rich the language became over time, let us just list the supported typing disciplines: Static, dynamic, strong, safe, nominative, and partially inferred. On top comes the .net framework that provides a full environment for backend, rich client, web, embedded, and mobile applications. Overall, this tested our ability to include all features from a language perspective as well as learn and train fast in a totally new environment.

.net has a wide fanbase and is used in lots of business-critical services. Again, during its history, it saw a collection of data access frameworks coming in and being depreciated. With the introduction of a new language, features came best practices, and maybe there are more elegant ways today than what is used in your legacy code.

That said, there are still the typical issues - see below:

You can use DeepCode’s new feature using the typical channels - Online or using the IDE plugins we provide. Online, just go to the DeepCode Website, log in, and scan your code. We provide IDE plugins for Visual Studio Code, Atom, IntelliJ, SublimeText. And if you need a CI/CD pipeline integration, we provide a CLI interface.

Give it a try for free and please, provide us feedback - what you like, dislike, or miss. Use the methods inside of the dashboard or write us an email at