An yes, then there's Drupal, Laravel, Symfony, and many others, and they're going strong too. Heck, even Joomla is actively developed even though it's probably small enough today to be considered legacy.
Most newbie coders would start out coding their own blogs in PHP/Nodejs or Python on shared hosting, some web host use web framework as well.
Perl is still heavily used. I wrote more than 2K lines just last week, lots of it is throwaway. But hey not many languages make it easy for you to write thousands of lines of throwaway code in hours.
It's still the most useful language in the backend/unix world. This comes from me, who actually writes lots of Python code. But I wouldn't use Python where I use Perl. It would just make me slow and it wouldn't get the job done just as well as Perl.
It's not used as frequently for web dev, or other places where Java is used. But it's very good at what it does. Glue language for the Unix world.
Agreed. For any one-off (or occasional) task that in any way involves juggling text (which in Unix CLI world is nearly all of it), perl is still the fastest way to get done.
Back in '92 (roughly when I started using perl), its regex support was revolutionary. Today, all languages have decent string handling and regex support. And yet, none is quite so naturally well integrated as in perl. So here 30 years later, if I need to pick apart and recombine text, give me perl.
Besides merely being an old technology doesn't mean legacy. SQL is fairly old.
But, I'm pretty sure there's plenty of new projects being started nowadays in PHP, Ruby, Java, etc, because they're the most effective tool for the job.
It's just that this is not news. News is yet-another-standard-tool-written-in-rust.
Ex. I had to implement a task that would need to check if an image is similar to other image (not related to porn/csam). I implemented it with just a few line of PHP and no 100+ package dependencies. How? I run a linux CLI app from inside PHP, super easy.
but, but , you can do it with node too, - yes, but guess int he past in a node project, soem dev instead of calling ffmpeg directly he npm installed some shit package that called ffmpeg. The package was basic and it did not include or options needed , some other dev would have installed other package to get a new ffmpeg feature, /
I removed all those packages and done it directly.
My point is that we need to use the best tool for the job, if there is a CLI app or Java program/library that solves your problem a developer should present teh client the truth "I can solve your problem using this in 1 day or I can rewrite it in CoolLang and CollFramework and CoolPacakgeManager and CoolTranspilter with 100+ shit dependencies in 1 month. I am afraid many developers are choosing the last option to pad their CV and pump their ego.
I would say is also the ecosystem, PHP has a bit ecosystem and it can always use all the Linux applications (once in a project I integrated PHP with node program puppeteer) so there is no limitation, I miss more features in JS then I miss them in PHP.
Also, in general passing untrusted input to shell commands is probably a bad idea. FFmpeg has had many CVEs over the years and taking an upload from a user and piping it to a CLI command is asking for trouble. There are considerations beyond just doing the easiest thing that could possibly work.
This is why you escape the shell command arguments, but if you blindly npm install a shitty wrapper you probably hit the issue with security issues. Sure review of the dependency would be great but I did not seen many devs doing it, if they would have reviewed the ffmpeg wrapper would have noticed the simplicity and implemented themselves and on top of that learned some new stuff.
>Or, maybe developers who choose other languages are also competent professionals
I did not say that all of node developers are beginners, I am saying that many developers are not using the right tool for the job but use the cool tool for the job and some developers just blindly npm install shit because this is the only thing they know.
And I can confess I was guilty of this, on a project I propose to use Qt4 over Adobe Air because I was fan Qt and hated Adobe , turned out in the end I was forced to use Adobe Air and I loved it, for what we were doing it was the best tool for the job.
I am sure the stats are somewhat off due to what others said about it being harder to detect Python, etc. But it's probably not that far off, this community greatly overestimates the usage of more "developer friendly" language combinations like Python+Django, etc.
What people really want is a solid CMS or off the shelf product they can tailor to their needs and since pretty much everyone of the most popular CMSs (Drupal, WordPress, Magento, PrestaShop) is PHP based this is no surprise.
That leaves a small portion of asp.net CMSs (Kentico, Umbraco, episerver, dotnetnuke, etc) and a bunch of hosted solutions (Wix, SquareSpace, etc).
Modern languages have also time and time again forsaken the ideal of making development LESS COMPLICATED than prior languages, and this is why they don't take over markets. Creating more abstract languages just to do the same things that PHP, Python, Java, JS, and other "legacy" langs have accomplished (over many years) does not make sense. Too many people get credit for reinventing the wheel these days and it's a distraction from truly game-changing innovation.
Relevant and reliable function resides in a separate lane than innovative new solutions. They shouldn't be hyped and rushed to market as "PHP killers" simply because they generate buzz and new contract money.
And FTR... If you still have to compile code in 2021 prior to running it, you're burning a lot of extra valuable time off your life and away from your family in frustration just to find out that the advice on Stack Overflow was not relevant to your framework's new update, and you'll regret the lost years on your death bed... probably... Sorry, That had to be said... :P
LOL... j/k. :P
Architecture design and Agile now compensate for the traditional compile/test procedures... DEV > STAGE > PROD
When it's practiced with discipline it works well, catching most issues prior to the system going down anyway on deployments to PROD :)
Of course I do. No other environment is identical to prod, real data, real users, real scale.
...showing my age with this comment
I almost never run my code. If it compiles I know it's correct.
I write native Apple software (Swift/UI/App/WatchKit), and my server stuff is PHP (and works great).
I like to spend as little time as possible on the backend. I totally admit its not my strong suit, so having a robust, highly-supported, standardized, performative, language like PHP, with a gazillion assistive resources and examples around, is nice. I've been writing stuff in PHP for over 20 years, so I sort of know my way around it.
I'll be expanding my Apple native stuff into the new "pseudo-reactive" realm of SwiftUI, but I don't really plan to keep growing my backend chops. PHP is doing fine for me. If I need anything else, I'll hire the talent.
To make a slightly problematic, somewhat poor taste analogy: 50% of the worlds houses (not a real stat, I’m lazy) have sheet metal roofs. All of the following are likely true:
- sheet metal roofs are wayyyy better than nothing for keeping the rain out. If you can’t afford anything else, definitely use them.
- Most people with sheet metal roofs would probably prefer something else, and would choose something else if the option was on the table.
- The prevalence of sheet metal roofs as a roofing material says less about sheet metal’s awesomeness as a roof than it does about factors that have little to do with sheet metal roofs (like global inequality).
- If you talk to construction workers in developed countries, they’d grant you that sheet metal roofing is quite prevalent worldwide, but they’re more interested in other materials and techniques that provide real substantial benefits.
That being said, I know a fair number of PHP developers. None of them are in SV or Seattle. They are in cities many have not heard of. They're all over. Some do public sites. Some do company internal web apps.
Take a project like Symfony, a PHP framework. It's popular but not the most popular. Now, take a look at the download stats for its packages [2]. They are large.
There is software development happening all over the world. A bunch of it is in PHP.
I think this is probably the biggest part of the HN bubble: the idea that "tech hubs" like Silicon Valley make up all, or a supermajority, of tech workers.
I've never even visited the west coast, never lived in a town larger than about 20k people, and frankly never really want to live in a city. Yet I work in tech, and have my entire adult life. (At this point, I am, in fact, primarily a PHP programmer.)
And I'm hardly an exception.
Nearly every company over a handful of employees needs tech support, programming, a website, even servers managed. Many of these will hire internally. Others will turn to contractors—who are also locals.
Silicon Valley, with its high concentration of tech workers and ludicrous salaries, is very much the exception here, and a lot of HNers would do well to remember that, lest they end up looking as out of touch with the real world as Lucille Bluth asking about the price of a banana. [0]
Not really a big deal. I'm pretty cutting edge, on the frontend (native apps for Apple systems, in Swift), but a bit stodgier on the backend (I use PHP). I’m not surprised at all by the survey results.
PHP works great for me. If I need something different (not an issue, so far), I'll hire it in. I'm actually fairly good at big projects in PHP. My code is maintainable and high-quality. It may not be “leet” PHP, but it works well.
Here’s an article about this kind of thing, that is a bit “meta”: https://veekaybee.github.io/2019/05/10/java8/
PHP is great fit for that, because all dependencies are part of the system updates in that case.
For at least the last decade I've been pondering re-implementing it in some fancy new language - but as it just keeps working, it slides down the priority list.
With all due respect, that is one hell of a bubble :). Plenty of companies use PHP (not just WordPress) and there are plenty of PHP devs who work with core, symfony, Laravel etc.
PHP is battle tested and even though it has its quirks, you can never go wrong with it if you are looking to build a web application.
P.S: We are hiring web developers for our company and PHP experience is preferred considering our stack.
I think your experience is probably limited then. Or you're not looking for them. ??
People from other languages don’t seem to want to believe it.
I don't think a lot of new companies are based on Ruby anymore seeing on how there's hardly any talk of Ruby anymore. But that's just an observation.
Of course, that's in relative terms. It's nowhere near the size of the Java, JS or even Python market size, but demand is strongest than ever and salaries show that, too
I am curious about that Scala number though. 2% of 10 million is quite a lot: 200,000 Scala websites? I would have never guessed!
I am actually finiding it difficult to get good paying jobs in Ruby and thinking of moving to Typescript.
1. Yes there are lots of Rails jobs but they wanted senior or at least mid level people who learned the deep nitty gritty of Rails at other companies. Few companies were willing to hire you as entry level to work on the job. The few entry level jobs had an ocean of candidates from the bootcamps.
2. I hated looking at Ruby code. Coming from a Java/C# background in college, it just make no sense to me and was ugly. I learned that while there are a billion guides on how to build basic Rails apps, there is very little on doing more complex things. A lot of that knowledge is just spending the time in a job learning a lot of things you can't learn in a book.
Now that I have internalized MVC architecture much better now I have considered going back to Rails to learn what I couldn't comprehend back then but every time I think about it I think about all the horrible nights I was sitting in my basement depressed that I was forcing myself to learn this crap and getting nowhere.
3. I should have dropped it much sooner. Instead I dragged myself in misery day in and day out and entered a deep depression trying to get some position....anything in Ruby/Rails.
4. I even resorted to unsavory tactics such as super fuzzing my resume just to get my foot in the door and ultimately bomb final interviews when asked about the inner working of libraries such as ActiveSupport among others. (Like seriously? Did I have to read all the C source of Ruby to get some basic job?). This fuzzed resume got me in a position where I was getting a 90%+ callback rate and the majority of them led to the final technical interview where I would end up not knowing some Rubyism or having difficulty solving a Ruby question in their existing codebase. Many rejections were due to the fact that while I solved the problem, I didn't solve it in the "Ruby" way. I guess Java/C#/C ruined my brain. I am not worthy of Matz's greatness.
Eventually through sheer dumb luck I managed to get a Angular2+/Flask position at a super large oldschool company only due to my nice manager knowing nothing about the tech stack so he took a chance on me. I thank god for this opportunity as I was maxing out my credit cards trying to survive. This low stress position allowed me to fall in love with Angular and Python and I have never looked back on the horror that is Ruby/Rails.
Thinking about my experience now(and this is subjecting to my experience interviewing at dozens of NYC companies), I noticed Rails being used at all these silly hipster startups that mostly produce garbage anyway. I remember interviewing for this "art studio" that was producing a revolutionary camera system in partnership with an Italian company. The company was just one giant room with round tables where Rails people would be making the web backend that connected with their camera system. They produced the product and got rid of their Rails people a year later. That seems to be the nature of the ecosystem. I saw so much of that in the Rails community.
6. This experience taught me that the community of the language will evidently affect your day to day life and overall career prospects. The niche nature of Rails allowed people who got in super early to make massive mounts of money (hence all the Senior Rails job ads promoting 200K in NYC) but you are mostly stuck working for these "cutting edge" hipster companies and if you don't or want to fit that scene then you are SOL. Likewise Angular and Python attracted some startups as well as enterprise companies due to Microsoft's backing and its excellent library ecosystem for enterprise applications. The community is quite nice and has opened my eyes to what it is capable of. You can find startups using it or relax in an enterprise shop. Was a world of difference from Ruby/Rails.
Sometimes I shed a tear for losing almost two years of my life to this. But the reality is that I made many poor decisions from my college days up until I got this Angular job.
It doesn't help that despite the impressiveness of the 15 minute blog demo, Rails has always been somewhat difficult to get up and running, particularly on Windows, and it seems like that has only grown worse over time.
And the corporate world move slowly.
And dev cost money. Most websites don't need more, they were fine 10 years ago and still are.
Although I'm not sure we have the whole story. I'm assuming we get high stats because of wordpress, which is not a good indicator of language popularity, but rather of platform popularity.
The more likely scenario is that a framework with a front controller is used, which is invoked by php-fpm, proxied by nginx.
It's easy enough to do, though.
I'm also quite happy to see Ruby continuing to grow in this report.
When interviewing developers, I always ask about their experience in handling sites large enough to comprise a farm, not just a single server. In all my years of searching, I've only ever come across one developer with such experience.
But here on HN, it makes it look like the multiple load balanced web and app servers we've got across multiple tiers, not to mention Docker and k8s, are on the small side.
There's definitely a big difference between those conversing here and "the unwashed masses".
I seem to recall a perl CMS - was is movable type? - that required mod_perl. This certainly gave it a perf boost against other CMS, but the overhead in setting up and maintaining a mod_perl system, and dealing with making code updates, was huge compared to PHP. I think these qualities continually get overlooked, decades on.
No regrets because the last few years, never has an ecosystem been so bright.
I'm convinced if you are a typical medium-sized business trying to recreate that technology with Node, Express, React, and a billion NPM packages, your are doing things the unnecessarily hard way.
PHP has a huge market share in web sites, but much less in web apps.
Take a look at the YC job board. A surprising number of the companies use RoR.
The worst aspect of it is how unaware HN is of its biases.
I have a comment from yesterday that is (rightly) sitting at -4 (https://news.ycombinator.com/item?id=28501661) that seems relevant: The rise of Ruby on that chart can be directly correlated with the rise of Shopify.
Elsewhere they note that Shopify "accounts" for 3.9% of the top million websites. The bulk of Ruby's increase.
Though I'm suspicious of the accuracy of their numbers. Most modern tech stacks don't announce themselves in the way that PHP did, and they clearly used curated metadata to attribute some major content engines (e.g. Shopify = Ruby, Wordpress = PHP, Wikis = PHP, etc), which means that anything outside of the top identifiable content engines isn't going to have proper attribution.
Further, note that literally any use gets credited. Look at the "popular sites using Shopify" at -
https://w3techs.com/technologies/details/cm-shopify
Overwhelmingly they get the shopify/ruby credit for linking to a minimal checkout experience on a subdomain. That seems...incredibly dubious.
Still neat though. But what it really demonstrates is that product wins, not technology. Wordpress is clearly a winning product. Shopify is a winning product.
Most discussions here happen around new/exciting/cool/weird technology. And don't get me wrong, I love those discussions! That's why I come here!
But reality outside of this bubble is people building and maintaining web apps as efficiently as possible and PHP hasn't stopped being very efficient. On the contrary, it's getting better with time.
Interestingly enough, Ruby (my personal interest, here) has been steadily gaining share in that chart year over year, despite not being "cool" anymore.
If you ask me, it's good to have a dose a reality from time to time!