@shanselman Not digging the bandwagon MS hatred for #PHP. #cantwealljustgetalongI tweeted the title of this blog post tonight and it got me to thinking about some of the encounters I have as a more or less polyglot developer who finds good and rewarding employment in PHP.
— Alexander Trauzzi (@Omega_) March 5, 2015
I just finished attending the excellent and stimulating Praire Dev Con 2015 this week. I'll let the web site speak for itself, but in summary it's a regional conference that attracts speakers from far and wide. For two days, men and women enjoy a brief glimpse of professional-speaking disneyland, returning home late in the evening and passing out from social and intellectual exhaustion.
One thing that many of my coworkers past and present have noted about this conference though is that it is very .NET centric. Now to me this is of course no discouragement at all. These are exciting (or possibly intimidating) times for many a Microsoft dev. I've discovered over the past few years that you can learn a lot from people who practice with tools and technologies different to your own.
For those within my own circles however, I think they would feel more comfortable if the pool of experience hailed from a more diverse sampling of technologies.
There are a few reasons for this, but I think the most prominent one is quite sad: It's actually very hard being a PHP developer at a conference. Especially .NET ones.
Seriously, even the PERL guys take the occasional swipe.
If you take a general temperature check on PHP in any Microsoft circles, you may find that there is a strong tendency for people to look down their noses at anyone who self-identifies as a "PHP developer". It's as if even the very combination of the words "PHP" and "developer" raises their hackles.
Which is oddly contradictory, because today we see recognition for nodejs, ruby and many other newer technologies from the .NET community. Languages that frankly even as a PHP developer, I have a strong distaste for because they are so blase about code structure, global state and mutability. But when it comes to PHP the policy is almost decisively still scorched earth!
I don't know if this is because ASP never made headway into tag-soup. I don't know if it's because the "M" in LAMP ate all of Microsoft SQL's TCO babies. And I probably will never know if it's because 2006-2007-era efforts to win them over with free copies of Visual Studio was only done to prove that PHP developers were just a bunch of lost causes.
What I do know is that it's 2015, Core CLR is now open source on github. ASP.NET is on github. Both projects are soliciting everything from commits, to suggestions, to drawings from peoples' children and homework questions.
If nobody has done it yet, let me be the first person to welcome you to the brave world of free and open source cross platform development. I know some .NET developers have been using NuGet and were getting a small taste of this world.
But this is even more different still and before you get too much further, I would implore .NET as a community to do something about unexploded ordinance left behind from a time when things were radically different. Certain relic ideals that fly in the face of reality and defy the successes of many that back then said "We don't believe you" -- and won.
Certain sentiments that show the .NET community is prone to large pockets of stagnation and ignorance towards things outside of their bubble.
I see this kind of yucking all too often.
Let's be totally honest and set the record straight here: Everybody can win. .NET is getting runtime compilation, simplified project configuration, conventions, packages, cross platform and independence from IIS. PHP has some type hinting, closures, packages, traits and some strong OO advocates.
It's no big secret, I have complete language envy over C#. I wish I could have the environment of PHP with the capabilities of C#. The way things are going, it's starting to sound like I just might get that too! The difference is that I don't go around lampooning the people. No, I learn from your Scott Hanselmans, your Jeff Atwoods, your Greg Youngs and your Dino Espositos. But have you heard my Taylor Otwells, Fabien Potenciers, Benjamin Eberleis and Jordi Boggianos?
When I write PHP code, you'd be hard pressed to say you couldn't with minimal effort transpose it to some infrastructure-friendly C#. To say that the PHP I author is inferior is tantamount to making the same claim about yourself.
We are converging and soon you won't be able to tell who is a cylon and who isn't - well - mostly. I may not wear a suit and my preferred topics of discussion outside of technology may offend your sensibilities. But would you believe that as a PHP developer I enjoy DDD, CQRS, onion architecture, [non]leaky abstractions, composition, conventions, strong typing, weak typing, closures, functional programming, unit of work, active record, repositories and POPO (POCO) services...just as much as you do?
Join with the global community and shed some of the tired marketing and animosity from the old days. Don't be afraid to learn from PHP and admit the language got lots of things right.
And for goodness sake, if you do really need to take a swing, have the professional courtesy to do it about current challenges!