Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Nick12345's avatar

Do not waste your time with C#. I wasted 2 years of my life on that mess of frameworks. Its all nicely presented junk code that no one cares about. Don't fall for the well presented nonsense that is C#.

Truth is, if your just doing web stuff for yourself than definitely just stick with php/laravel etc and javascript/+framework. Though if your looking for a job than Java/C# are what you need, however be warned these will likely take you 3+ plus to really get good at using their ecosystems efficiently.

1 like
nolros's avatar

@naczu the answer always is depends. What are you looking to write? Mobile apps, desktop, what OS, why type of apps, etc. Do you have a Computer Science BG? PHP is not going away. I've heard that for over a decade and it remains a top 10 language.

For example, if you plan to start a web development business then PHP is probably in the top 1 - 3 languages. If you want to join a company without a CS BG then Javascript, etc. PHP does not have the overhead of many of the other languages, which as C# and Java, when I say overhead, requires and enforces disciplined programming. I would argue that if you are starting programming and looking to freelance that PHP and Javascript are probably the best path to pursue to get ramped quickly and start generating income. I say that without really thinking about it.

I've worked in the software industry for a long time and in almost all cases, especially in cyber security, the framework is .NET, but these companies are hiring BS graduates .NET is an excellent platform because it is architected for dev teams and complex workflows. Also, the support is great, but companies are paying a lot for these tools and that level of support.

If I had to give someone advice without any of those questions answered then I would say look at R, Rust, Go, and Python as the future will be AI and these languages shine in that environment. PHP is not going to be in that mix anytime soon or ever. Personally, I’m a huge fan of Python, R and Rust as they are great programming languages and really shine in AI / ML.

brunomoura's avatar

I've never agreed so much with a person. I'm in the same situation!

cjedgerton's avatar

I'll follow up since my last post in case it may help someone in the same boat down the road.

Quarantine has allowed me to put in a month of full time work in .net core. I'm building an insurance sales and policy management web app and responsible for the whole thing, DB design, and front and back end. While I'm just scratching the surface I have already reached a point where I am finding a workflow, getting comfortable, and enjoying it.

Initial Concerns and thoughts thus far:

  • Type safety: What I thought might be a hurdle with in c# has turned out to add an extra layer of satisfaction to the programming experience. I used to sprinkle it in when convenient in PHP but now It's forcing me to learn new patterns and improve.

  • Environment: I've been using a pretty vanilla instance of Sublime for Laravel dev for some time. While I've used Visual Studio in the past to maintain some basic VB.NET console apps, the thought of using it full time made me cringe. However I'm getting used to it and finding the intellisense is actually teaching me the platform as I go. I know about OMNI sharp and may look at that later, but there other features there that are teaching me the platform overall (and using SQL Server Data Tools). The solution/project layout also is awesome for separating out different parts of your application and keeping things organized.

  • Tooling: Migrations, seeding, package management, front end asset management, I was initially overwhelmed trying to figure out how I will perform all of the tedious tasks that Laravel has built in solutions for. So far though I am finding what I need, or building out little helper tools (just add a console app to the solution). Nuget works great and is built in. One huge benefit is not needing to configure anything to get started with development, just install VS and your done. If anyone has had configure Laravel on Windows, or IIS you might know what I mean. Also there are deployment tools built in to the ecosystem which I'm already using for a QNA version of the front end site.

  • Database: As mentioned above I'm using SSDT for DB development rather than Entity Framework migrations. I found my self using Eloquent less and less over time as my applications required more complex queries, so I'm skipping Entity framework and using stored procedures. SSDT has become my alternative workflow to code based database development.

TLDR: After getting over the initial hurdle, .net core and C# have proved to be an enjoyable platform and is helping me to become a better programmer.

2 likes
jlrdw's avatar

Many years ago I did java (jsp, ejb, servlets) at a medium logistics (trucking) co. Years ago php would not even be considered for a large enterprise app.

But fast forward to now. Any of the main languages are very viable and good. In other words php has come a long way.

I have limited asp.net experience, but a little.

The only thing I dislike about asp.net is it changes too often. Even .net core the first one verses 3.1, already deprecated items.

PHP yes has had changes, but really minor and easy to keep up with.

Java has real long term backwards compatibility. A java ee 1.4 app would still work good now. However you would need to at least stay updated on newer password hashing and things like that.

But I agree, it depends.

igmacedo's avatar

Sorry, PHP was not made to build computer programs or operating systems, in the first place, it was not done with the same focus of Net Core that allows the creation of multiplatform applications, and Net Core is not necessarily something dependent on a web browser to serve the content, unless the application is facing the web, then the comparison is cowardly. PHP does a great job on the server side, can be used on Linux or Windows servers, has a great community, formidable documentation, you learn, create, debug and solve application problems very quickly, you can create sockets for you to communicate with your php application, nothing prevents you from creating an Android or Windows application that uses a php application API / socket. The php is powerful, you just need to know how to use it, have clear objectives, it is not a mere weak typing language as you suggest, in addition, the low performance in laravel is typical of any framework, the problem is that it passes for dozens of files, make several requests, not only serve the content, have checks to be done, one of them is to validate the csrf tokem, this is hell for a server, he is dealing with several clients, he is taking risks, and every requisition he is forced to process a flood of information, this is not a particular php problem, facebook created ReactJS and started using ajax to modify the content, their tactic is to decrease the number of requisitions and this is the way, the server needs breath, otherwise it reduces performance until it actually dies.

If the performance of the laravel bothers you, it is appropriate that you build your own framework, but make no mistake! Contrary to what you say, php is for professionals, I challenge a layman in php and composer to create a framework like Laravel, this is not an easy task, it takes many months and many hours of study, you need to know about php, about the server, about the http protocol, you need to create self-defense mechanisms against client-side attacks, php handles this very well, its focus is on the web, it has nothing to do with Net Core, if you want to install things the path is a PWA application, modern developers only opt for languages ​​like assembly, C# and c ++ when this is really necessary. PWA is the future, nobody needs Net Core or multiplatform language, to do something really good.

1 like
Stardust's avatar

I came to ASP.Net Core from Laravel, because PHP is slow. It is not a compiled language, it's restarting the whole app on every request and it is not async, that's why you get huge CPU overhead with PHP. Not much you can do with it without a huge pain. I was sure that PHP is fast as long as I didn't start researching and testing on my own server. It's fast but only if you compare PHP 5 to PHP 7.

At first, I tried NodeJS with NestJS framework, but I found out that NodeJS community is extremely immature comparing to PHP community and there are a lot of other solutions with async I/O, but I loved the TypeScript, so I chose to try out C# and that's what I can say after like 8 months since I moved from Laravel+VueJS to ASP.Net Core+Angular:

  • It was a pain in the beginning. You have to use types everywhere, you have to configure everything, you have to implement many things by yourself, but while you do all that, you become a much better developer.

  • You actually do pretty much the same things as you would in the Laravel, like auth, migrations, CRUDs, logging and stuff, but you get much deeper understanding and get more control on them.

  • The developers are even more mature than in the PHP world and it forces you to become better. You find yourself not just learning in theory, but using better architecture and patterns. For example now I'm using DDD and CQRS instead of simple MVC CRUDs with Service layer.

  • You find out that static types actually make your life much easier because you're getting rid of hours of debugging.

  • With async non-blocking I/O you know that a long request to Db or another API won't block your app and it costs nothing to you, just put async/await and it works.

  • C# is one of the best and modern languages today. You don't feel like you're using something old. E.g. the new feature in PHP is lambda expressions. It was introduced in C# like in 2007. Async/await is there since 2012. Many features of Kotlin are already in C# for a long time

I love Laravel, it's great for what it's made, for rapid development of small apps with great developer experience, just like I love VueJS, but I use ASP.Net Core and Angular for the reasons above.

2 likes
Previous

Please or to participate in this conversation.