Closed StoneCypher closed 7 years ago
The author chose one dying and progressively niche language - one which had no progress for more than a decade, and which now has trivial progress - and represented it as the only path other than node
.
This was pretty obviously meant as a joke, but since you two have decided to respond for the author:
.
Let's question that: why not?
@riconeitzel - Because it's dying faster than any other major language, is famously garbage for development and maintenance speed, has a higher security defect rate than any other major language, has such a weak internal development culture that it failed to progress for more than a decade because of an argument over how unicode should be implemented, still got the choice wrong after the decade was past, has only two major users anymore (WordPress and MediaWiki, both of whom are in the process of leaving, because as the largest users of this language on Earth they've realized that it's a terrible choice,) pays about half what the other languages do because no developer worth their salt will touch it, et cetera.
.
It's mature, reliable, wide spread and still under development and maintenance
Seeing PHP in the wild, or defended as mature, is like stumbling across a company that uses Perl, Cobol, or Fortran. It was time to move on more than ten years ago.
Still under development? Guffaw. It made no progress for more than a decade, and 7 is basically a weak collection of compiler tricks, type enforcement that's less powerful than you'd expect from a rider library in most other languages, &c. Nothing interesting has been added to the language since 2014.
Think I'm kidding? Here's the PHP7 changelog. Goes back to 2015. Search the word added. Find one thing you can say is interesting at the language level with a straight face.
If you say operator <=>
, I'm going to send you to the Perl UG.
If you're feeling particularly grim, here's the PHP5 changelog, since 6 never existed, because it was a committee catastrophe the likes of which only Javascript else has ever seen. I can't find anything interesting before 2014's timing attack safe string comparison, and even that's kind of silly.
The PHP subreddit is just a bunch of framework drama. The PHP stackoverflow is an amateur hour "how do I shot web" ghost town.
I can't think of a major language less under development than PHP. Can you?
Can you think of a major language which you feel has less going for it?
Have you just never seen a language die before?
At this point most professional programmers consider the advocacy of PHP to be a significant red flag warning, in the fashion that one might be startled to find someone still using ColdFusion, or WebObjects, or Lisp-2.
@StoneCypher I've been wanting to expand further into backend development and I'm already working on learning Node. What would you suggest as a replacement to PHP to go alongside Node?
Also, given that Slack has grown considerably over the past year I'm curious, what do you think of this article in favor of PHP?
@casenjo - I think someone will always defend something, and that Slack's cost per user and near perfect horizontal scaling are a radically special case.
Node seems fine on its own. Why do you need something to go alongside it?
@StoneCypher Mainly to stay flexible I guess. I worked at a startup for the past 3 years and it took so much of my time that I made the mistake of focusing too much on one language (PHP unfortunately). While there's still lots of jobs out there that look for PHP, I do want to have more options available to me so I figured having Node and something else like Scala or Ruby could be a good compliment. Would you suggest something else though?
@casenjo I agree partly with stone, I have always felt php is a disappointing language to use and it's hayday is certainly in the past. That being said, it still has a very large community and you are always going to find work as a php developer for years to come.
You could try learning typescript which compiles to JavaScript and introduces more complex concepts that once you grasp, you could pick up java / c# etc very quickly.
For web development node is certainly winning at the moment. C# and modern asp.net is great to work with and has made loads of progress going cross platform in the last few years, but can seem very enterprisey and I wouldn't use it for small personal projects yet.
I've heard scala is good but have no experience with it.
I personally hate ruby but it too had a huge web community. Give rails a try I guess if you want to focus purely on web development.
@StoneCypher I was expecting someone would raise this question:
Personally, what I believe is you should not become a (PHP, Node, Ruby, Python or put any language)-Developer, you should rather tend to become a developer.
Having said that, the reason why I included PHP is mostly because:
It has more jobs in the market than any other language. There isn't much of a learning curve; one needs to start somewhere, once you have the basics out, it wouldn't be much difficult to move to something else. Look at the ecosystem, you will find tons of packages for anything you need. Agreed you can find a lot of people building crap, people asking foolish questions on stackoverflow and all that but it all boils down to the people and not the technology. You can find lots of nice stuff built in PHP as well. And surely you can find people writing crappy software in any of those cool-kid languages. For the people hating on PHP, most of them are just following the hyperbole, others who tried it years ago when it was a mess (I am not saying it has no problems now but it has namespaces, strong OO, reflection, lambdas, good frameworks, libraries, testing frameworks etc) and others hate it just because of the fanboy ego.
Lastly, your customers and business does not care what you use to build your app as long as it solves the problem and brings money to the table. Heck, even use Cobol if it brings you money.
For the development pace part, it is equally slow in Python, Ruby and Java (languages, libraries, frameworks, ...) or maybe even slower. It is for sure missing a few things that I would want to see but I don't think it is going anywhere any soon.
What I think is important is to keep a healthy appetite for learning. Languages come and go, you should try not to become a language developer. A professional developer should constantly be adding tools to the belt, and be agile enough to take on the demands of a company/industry.
Supporting a language like a fanatic is not good for a developer i suppose. Just ask questions "What i need?, How can i do it?, Which language makes it easier?". That's the spirit wanted to see.
Because 80% web is php https://w3techs.com/technologies/details/pl-php/all/all
I don't agree with @StoneCypher, but I think this is a good point:
.. and represented it [PHP] as the only path other than node.
Maybe also create a subtree atleast for Python and C#. Both of these languages are getting used in production a lot. In the roadmap, it seems like they're just a small language without any further frameworks and package managers or so.
I'm fine with: "PHP is not the only way to do things" as @StoneCypher and @BrunnerLivio say. But to be honest @CurlyBraceTT made a point: Most of medium sized hostings only provide PHP.
On the other hand: I had my hands on nodejs as well and it really drives me crazy that every other day significant parts of the ecosystem (dependencies) change in a way that it breaks other parts of the application. that said I can mainly develop all by myself or use a less flurry language.
PHP gets the job done and my personal belief is: I need an almost bug free, stable and performant ground to build my applications on. I'm a magento developer and I really hat the focus on FEATURES instead of reliability, quality and "bug free"ness. That's why "search for added" is NOTHING I care about.
Just a thing, @StoneCypher, about development.
@kamranahmedse already said awesome things about being a developer, this quote is the best to me:
Personally, what I believe is you should not become a (PHP, Node, Ruby, Python or put any language)-Developer, you should rather tend to become a developer.
PHP is good. Ruby is good. Python is good. Node is good. Every language is good.
As long as it:
Today every newcomer developer is harrassed by ego-filled guys telling that today's world is crap, past was better, and future becomes brighter with new tools.
Just take the example of Docker: now, everyone wants to use docker, but everytime someone uses docker, its configuration is more complex to understand than the application's code it contains. Just read the "It's the future" article by Paul Biggar on CircleCI, to see how you look like by spitting on one single language like you do.
Next, you talk about Node as a nice alternative and seem to think it's the best option for "modern development". As well as Paul Biggar's article mentioned above, feel free to read the same kind of article about Javascript development world these days, called "How it feels to learn Javascript in 2016", by Jose Aguinaga.
Every day you have new tools popping up in NPM registry that pretend to be the best tool for something.
With PHP, at least, you have PSRs, Composer (which is far better than NPM, thanks we have Yarn that brings up better dependency management in NodeJS...), and every framework tries to bring good development practices. Of course you can still find people doing shit with these frameworks (I've seen plenty guys doing perfect shit with Symfony, almost breaking the framework itself...), but the fact is, if you have learnt to be a developer before becoming a {whatever language} developer, you will read articles about the languages/frameworks you use, you will get in touch with changelogs sometimes and conferences about new stuff, you might experience some tools in sandboxes or small projects.
And you will realize something: The problem almost never comes from a language or a framework. The problem is the chair-screen interface. The problem is human.
If you spit on a language like this, first, you receive this kind of response with so much text that I don't even think is useful at all when we see how absolute you seem to be in your opinion. Next, you will be stuck in the same narrow-minded developing strategy, and if you have to teach something to a student one day (poor him if it happens), you will tell him shit like "PHP is dead, don't learn it. Learn DuckmoleFrameworkJS or TranstypecompilerScript2035, it's the future.". And the guy will be like "Ok, let's try this stuff", and never think about the most important question: Why?.
Why do we become developers? Why do we like certain languages or frameworks more than others?
We could make a big survey about this, and I bet that if the survey is fair enough about how it's distributed (I mean, if we have an equivalent amount of PHP/Java/C/Python/whatever developers), we will have cool stats about the fact that every language is almost equivalent, with its strengths and weaknesses. And we'll see that the problem doesn't come from the language but from the developers themselves, arguing about which language is the best to learn.
I recently had a tough question to ask to StackOverflow community, there: http://stackoverflow.com/questions/42761937/stateless-asynchronous-web-server-with-php-and-symfony Actually my idea could be reduced to this single question: "When will native async PHP will be available?", but I wanted more than that, I wanted a debate and big answers like the ones I received, I wanted to make people explicitly say the question: "Why?", and even if the answer is just personal (I just want PHP to allow async usage for some purpose, that's all), I now have a visible example that PHP is not the problem. The problem is that I want async PHP. The problem comes from the developer. (and I still would like async PHP) I'm glad of the answers because they just expose the fact that problems come from developers, not languages. My "problem" seem to be asked over PHP's lack of support for async, but it's just an opinion.
Your problem is that you just argue that "PHP is bad, m'kay, you should stop usin' it, m'kay".
I love PHP, but I also like NodeJS, I haven't much experienced Ruby but it's interesting, and have not really used Python, but I can just say that these languages are awesome, and their frameworks too: Symfony is awesome, SailsJS is awesome, Ruby On Rails is awesome, Django is awesome, etc. Why? Because they are community-driven popular frameworks that have proven they can keep on making innovative stuff in this world where everything changes on every second, they are strong and secured, and the only flaw they have is that they are used by humans.
So the answer to the question you asked
Why is PHP involved in a roadmap with a year above 2011?
Is just the following:
Because it has to.
I'm fine with: "PHP is not the only way to do things" as @StoneCypher and @BrunnerLivio say. But to be honest @CurlyBraceTT made a point: Most of medium sized hostings only provide PHP.
@riconeitzel My concern is more, when a new developer sees this roadmap, he might think "oh there are just 2 way to go as a backend developer, all the other ones are small and not well fleshed out languages", which is absolutely not true off course. Maybe we should discuss this in another issue?
Love what @Pierstoval said, so much truth there. I just want to add my 2 cents, I think people today are so focused on this whole stacks/libraries/frameworks/modules/etc/etc "rabbit hole" and on the engineering of the app (I see so much over-engineering nowadays), that they forgot how to actually write good smart code. Just the other day I've seen such an example, lots of cool libs, dependencies and such, but, otherwise, at its very core there was a simple developer logic mistake. Sometimes I wonder if some of these new cool things are used by people to hide their inadequacies.
It's pretty boring watching people try to slot me into languages I haven't recommended
So far people have tried to make me out to be a Ruby developer and a Node developer
I'm a polyglot. Almost all languages are good enough.
Speaking as a former PHP professional, PHP actually isn't.
.
And you will realize something: The problem almost never comes from a language or a framework.
It's been since I was a junior developer who only spoke a few languages and a few frameworks that I believed this.
It turns out both languages and frameworks make an enormous difference.
If you ever stop arguing with a joke to stand up for PHP, and try learning some others, you might learn why it is that all of the forward looking platforms with 15+ languages supported seem to be omitting PHP (and Cobol and Fortran and Perl.)
.
My actual point was "why are you acting like there are only two choices, and if there were only these two, why did you choose one made from buffalo skins and stone knives"
Unfortunately the stone knife society is here to let me know that stone is mature and maintained and there's really no difference between tool types
You keep on chugging if you want to believe that, guys
.
Every day you have new tools popping up in NPM registry that pretend to be the best tool for something.
With PHP, at least, you have PSRs, Composer
"NPM is bad because it's got too much stuff in it. With PHP, you have standards that everybody else has too, and an NPM clone that's kind of a graveyard."
.
Why is PHP involved in a roadmap with a year above 2011?
Is just the following:
Because it has to.
Lol, a "roadmap" to development is no more obliged to include PHP than it is to include WebObjects or ColdFusion. It's a terrible choice.
Let's question that: why not?
It's mature, reliable, wide spread and still under development and maintenance ... and at most: perfectly suitable for web applications?!?