Ask Slashdot: Should I Ditch PHP? 341
Long-time Slashdot reader Qbertino does PHP for a living, but says he's growing "increasingly frustrated with the ignorant and clueless in the vincinity of PHP."
Crappy code and baaaaad application setups is one thing, but people refusing to fix them or simply not even understanding the broader implications of bad applications or attempting SEO with gadgets while refusing to fix 3.5 MB-per-pagecall are just minor tidbits in a history of increasingly unnerving run-ins with knuckledragers in the "web agency" camp...
Will I leave the larger part of this backwards stuff behind if I move to another server-side programming language such as Java or Kotlin for professional work in the broader web area? Do I have a chance to do quality work on quality projects using PHP, or are those slim compare to other programming languages? In short, should I ditch PHP?
"I think .NET is a much cleaner language to work in with Microsoft's excellent Visual Studio IDE and debugger," argues Slashdot reader Agret , adding "there are many large projects in my city hiring .NET developers and being a strongly typed language the code quality is generally better than PHP."
But what's been your experience? And would a frustrated developer find more quality projects by ditching PHP?
Will I leave the larger part of this backwards stuff behind if I move to another server-side programming language such as Java or Kotlin for professional work in the broader web area? Do I have a chance to do quality work on quality projects using PHP, or are those slim compare to other programming languages? In short, should I ditch PHP?
"I think .NET is a much cleaner language to work in with Microsoft's excellent Visual Studio IDE and debugger," argues Slashdot reader Agret , adding "there are many large projects in my city hiring .NET developers and being a strongly typed language the code quality is generally better than PHP."
But what's been your experience? And would a frustrated developer find more quality projects by ditching PHP?
Naturlich (Score:3)
However, it must depend to some extent on what your constraints are. If you support 32 PHP websites that are online and working (and not running on Intel architecture), migration might be a rather expensive waste of time.
Have you considered becoming a PHB?
Re:Naturlich (Score:5, Insightful)
I worked in a place where the whole codebase was PHP, partially as a result of the web site being done in Drupal. I'm aware of many problems with PHP, but my approach there was to continue to develop with it because of the existing codebase and institutional expertise.
A new guy came in who was big on Python, and immediately started implementing server-side Python stuff. I warned that there may be difficulty integrating the Python and PHP services, but the new guy thought I was just an old who wanted to keep doing the old and busted thing because it's all I knew.
The boss didn't nip it in the bud early enough, and I wound up having to write code to share session information between the PHP and Python services. It was a kludge, but it worked. It would have been seamless if we'd kept working within the same language we'd started in, or if we'd undertaken to port the existing code to Python. Oh, and then the new guy quit and left us with this two-language system that few of the other employees could easily maintain.
Point is, I agree that there's more to consider than what is the "better" programming language.
Re: (Score:2, Insightful)
[...] I wound up having to write code to share session information between the PHP and Python services. It was a kludge, but it worked. It would have been seamless if we'd kept working within the same language we'd started in, or if we'd undertaken to port the existing code to Python.
The correct way is to make it an interface usable from any language. Then it matters not a whit what language you work in. If you do that enough, you can pretty easily migrate from one language to another, one interface at a time, and it simply won't matter to the rest of the code.
This in a way is the same lesson as "GOTOs considered harmful", "structured programming", "object-oriented programming", and so on, and so forth. Programming is about abstraction. Interfaces are the abstraction you need here. Witn
Judge not lest ye be judged, you utter cunt (Score:5, Insightful)
It's also pretty rude to fire an entire team and replace them with offshore monkeys, but it happens all the time. This is just the reflection of that - his obligation ends at the last paycheck.
I can't comment on the specifics from a technical POV because I don't know the details - and neither do you. As for the personal attack, he might have got cancer and decided to use his remaining time travelling for all we know. Even if he was just jumping ship for a better offer, why is that wrong?
Re: (Score:2)
(Says I, who routinely scripts in C and writes applications in shell.)
What C interpreter are you using?
Re: (Score:3)
They probably run the 'a.out' interpreter.
a.out [wikipedia.org] is an obsolete binary format, not an interpreter. There are C interpreters (e.g. picoc [gitlab.com]) but a.out is not among them.
Languages don't write code, people write code. (Score:5, Insightful)
Don't blame tools for the things that people do with them. You'll find the same problems wherever you go.
Re: (Score:2)
Don't blame tools for the things that people do with them. You'll find the same problems wherever you go.
There's a special place in hell for the likes of you, writing Cobol code for the rest of eternity.
Re: (Score:3, Interesting)
I actually enjoyed writing Assembly more than C# and Java. My version of hell involves some idiot making me write factory classes to do basic RegEx comparisons.
Re: (Score:2)
My version of hell involves some idiot making me write factory classes to do basic RegEx comparisons.
What do you think re.compile() is in Python? It's a factory function that takes a regular expression as a string and returns a regular expression object. I fail to see how that's anything like the grave or the second death.
That's even more wrong than the old weapons adage (Score:2)
Because it's within the concepts of specific languages, which may not actually dictate *what* people can do with them, but which clearly specify *how* they have to do it. Which may very well imply different values for the average quality of code for different languages...
Re: (Score:2)
Agree completely. You saved me the trouble of saying the same thing more rudely....
Bad developers is universal (Score:5, Insightful)
Doesn't matter what language you use, bad developers are universal.
The thing is PHP 7.2 is actually pretty good, and 7.3 is looming.
My advice is start your own projects "the right way" (that's subjective), and start your own firm or agency and win with quality.
I'll be 100% honest, this is what I did. Working self employed over 4 years now. Business is doing well. Even have a couple of staff now.
You got a point there. (Score:3)
This is actually one of the things I was thinking / considering.
Not sure yet if I'll go that path, but your feedback resonates.
Thanks for your thoughts!
Re: (Score:2)
Glad you found my comment among the mud-throwing fest any article mentioning PHP seems to receive.
Each PHP 7.x release has depreciated and removed a significant amount of the stuff these people are complaining about.
I find it amazing how many "experts" out there that have never actually tried a modern version of PHP dismiss it and resort to mud-flinging.
Each to their own, I guess.
Re: (Score:3)
Never claimed to be an expert, and my statements were language agnostic.
My point was if he's tired of working with other people's code he should write his own, and use that. If that means moving to a new language and using that, so be it.
I've made a living writing custom software, and while I use PHP where it's appropriate, it's not the only language on my tool belt.
Re: Bad developers is universal (Score:3)
He uses Ruby on Rails, obviously.
What do you think of Python? (Score:2)
If you’d like to specify the language which you think is more suitable than PHP for projects where PHP is often a sensible choice, I’ll be more than happy to come back and offer some specific examples of its failings
I get the impression from eevee's notorious "fractal of bad design" rant [eev.ee] that she'd prefer Python. I've been trying to keep my own page about the issue [pineight.com] more nuanced, distilling the problems that "fractal" mentions into a set of coding standards, inspired by the work of Douglas Crockford, and another set of failures that coding standards alone cannot prevent.
So where does, say, Python fail in comparison to PHP? (Other than ability to collaborate over channels that are broken in that they mangle leading white
Re: (Score:3)
Why devs don't just make a native app instead (Score:2)
Better programmers know they need better tools and will move where they can get them. (Compare and contrast the desperation evident in the endless stream of ``transpile-to-javascript'' contraptions.)
How much of this "desperation" is related to non-JavaScript applications 1. being operating system specific, 2. requiring an install step on the user's part, and 3. in many cases needing approval from the operating system's publisher before they will execute on retail devices?
Re: (Score:2)
I want to point out you're quoting Eeeve's blog post from 2012. This was published way before PHP 7.
Maintenance and reliability (Score:4, Insightful)
There are a ton of languages that makes it easy to "start" something, they lack ... it is trapped into it, sunk cost
- strong typing
- strong debugging support
- reliable libraries
- reliable refactoring
- capability of scaling to large and distributed projects
A beginner starts using the language and
New languages are just reinventing the wheel, really, they are the result of people forgetting history.
The main difference is that a few keystrokes are saved with a resulting code that is impossible to understnd a week after you heve written it.
A pity that Microsoft bashing of Java (to then make Java clone c#) result in knee jerk reactions on the name.
Re:Maintenance and reliability (Score:5, Insightful)
As someone who used the early JVMs i production, Microsoft's was NOT better. It was a JVM that would crash randomly, that could not interface with OLE even though Sun bent over backwards to make it possible, and like many Microsoft code bases at the time had very poor docs and failed to follow even them. That was easily the nastiest buggiest JVM impl that I ever touched.
At least, this is what my flashback tells me, now that you set it off! %-P
Rgds
Damon
Re: (Score:3)
You could equally interpret those events as Sun heading Microsoft off at the pass before the fucking bastards reached the "extinguish" stage.
Re: (Score:3, Interesting)
Microsoft bashing of Java? Are you sure you know the history there? For a long time, Microsoft shipped the best JVM on Windows, better than Suns
Fastest != best
Microsoft's JVM was an incomplete implementation, created for the purpose of deceiving customers, and was used as evidence in the US v. Microsoft antitrust case in which Microsoft was found to be guilty of abusing their position in the marketplace (before being effectively pardoned by Dubya's dog Ashcroft.) This effectively makes it the worst JVM of its day.
Re: (Score:2)
Microsoft never shipped the best JVM. It shipped the most accessible one, but most of the folks I knew immediately installed Sun's JVM and configured IE to run with it because MS's JVM was not very good at all. It was a happy day for me when Redmond dropped their JVM due to legal wrangling with Sun.
Yes (Score:3)
If you are so frustrated with PHP you should switch, perhaps another language will fit you better, or at least it will be a good experience. Keep in mind that PHP doesn't have a monopoly on bad code, bad configuration or bad performance.After you switch to a different environment such as a corporate .net environment you may find you get different types of problems that you you may not even have realized existed when you used PHP. Either way, still good experience.
People use PHP because... (Score:3, Insightful)
..it's easy to get stuff done in PHP. There are certainly languages which are 'better' in various respects than PHP, but it is not going to replace the fact that if you want a website done quickly then PHP is your tool of choice.
Also, it's cheaper to find PHP employees. That doesn't necessarily mean that you find great coders, but looking on the job boards, the level of salaries offered to PHP developers can be half to a third of salaries offered to developers experienced in (say) Node.js/ React. Not only that there a PHP developers on every street corner.
At the moment I'm amazingly doing PHP at what I call 'financial developer' rates. But these jobs are hard to come by
Bad programmers...exist (Score:2)
A bad programmer can screw up in any programming environment. Running away from PHP isn't going to help. The real question is: what is this person doing, that involves him with so many poor programmers?
The differences between PHP and .Net are huge, and should be based on something other than your spleen.
Elixir (Score:2)
Learning Elixir was a very refreshing and pleasing experience. The language, the tooling, the documentation are excellent, developper-friendly. The underlying OTP is powerful for making resilient and distributed applications.. The Phoenix framework is very well-made. Learning functional programming made me a better Python and perl programmer.. I used this online course, I recommend it:
https://www.udemy.com/the-comp... [udemy.com]
(price reduced with the coupon)
question already is its own answer (Score:2)
the question is clearly comprehensive enough that the poster knows there's something deeply, deeply wrong with PHP. a more detailed investigation shows that the actual core developers are ignorant of system-level security programming... but it takes time to actually find that out.
what stood out for me was that the poster clearly sees an extremely high degree of incompetence surrounding PHP. as in: way-above-average. in part this is i feel down to PHP attracting "web-only" developers who have "a bit of HT
Re: (Score:3)
It sounds like the problem you’re highlighting is HOW people are introduced to programming, in early PHP examples, rather that what a language’s expression space permits theoretically.
It’s like learning to draw. If the first exercises are, draw an imaginary forest, people don’t learn to look. If the first exercise is, draw a portrait, it forces you to change your thinking right from the outset, because it will not work unless you focus on learning how to observe shapes.
Mixing PHP int
Re: (Score:3)
There's little to no difference between python and php that isn't purely syntactical.
And there are places where syntax makes all the difference, such as list comprehensions (and the generator expressions that power them).
all the criticisms against php are equally valid against python.
I've found a few [pineight.com], which I'll quote here for convenience:
If Oracle was still behind Java... (Score:2)
... I'd say have a thorough look into Java, at least if you want to keep platform independence as an option, with the JDK offering forays into other and more modern languages too, like Kotlin, Scala, Groovy or many others, and being the next best thing in terms of performance after natively compiled code.
With Oracle's latest change in update policy, though, forcing commercial users to upgrade JVMs/JDKs to the next major version – possibly breaking things – every six months, at least if they want
Re: (Score:2)
Re: (Score:2)
We already have. Oracle can go fuck themselves.
Re: (Score:2)
So far, so good, and OpenJDK is what I've been using personally since I started migrating all my stuff to Linux last autumn. Until now I have stayed at version 8 for compatibility reasons. For commercial use, Oracle will end support for Java 8 come January 2019. I seem to not have fully understood the differences – will OpenJDK continue to be supported with security updates after that date, which can be used commercially, too?
No more Java EE (Score:2)
Oracle isn't doing Java Enterprise Edition anymore. It's under Eclipse's governance now and called Jakarta EE [slashdot.org].
Re: (Score:2)
In my day job, that's where I already am, and I might not get out of it until I retire. That being said, there has been worse stuff where I come from ;-)
Actually You CAN'T (Score:5, Insightful)
If you came from PHP without any other language experience (except javascript). You cannot understand how PHP exclusively fit for Web development until you start do something with other language.
Other languages need for spesific frameworks, configurations, concepts for web projects. PHP was ready to run. When you try to learning other languages web stack you will be frustrated and return to PHP again. Other languages need extra steps to do simple things in web because of their nature.
Sure php much worse syntax and function names most other languages. However that was language quirks any professional can handle.
Problem is, php entry level is low and with abundant documents and training videos people easily put something on web and so they think they can handle big projects.
And without strict guidelines for project management, php can be lethal as a dodge viper on rainy day.
What you need is, find a battle hardened Project manager which uses Jira and other tools to agile development plus getting know automated testing.
After 6 months You will be fine with php any given sunday.
If you insist to change, you should look Google GO. not .NET it was for windows shops for who develop desktop applications. It wasn't just a language, you have to change your development style, development environment working environment etc.
Google GO was logical next step, It was easy (to comparing other static languages) and it was forced writing disciplined code practices by nature. It fast and you do not need change entire environment. Plus you get military grade arsenal (comparing to php) for complicated projects.
My 2 cents after 20 years of PHP Web development.
Re: (Score:2)
Yeah this. Been programming a long time, and like another comment said being able to quickly put some db result into a webpage was a BIG deal.
And yes, I've gone back and looked at my own PHP code from 15-20 years ago and said "uuugghh....". But the only reason I've not said that sooner is because the code - crappy as it is - still works for what we needed it to do.
Also not sure what I would replace it with. What else is relatively light, easy to get up and running, is meant for the web, and isn't client s
Paid by Microsoft? (Score:2)
I left the PHP community in 2002 (Score:3, Informative)
And you should have done the same.
It's just full of bad programmers and the only applications people build in PHP are crappy websites.
Moved to a real programming language with a niche that values skill, and I easily multiplied my salary by 10.
PHP Async sucks (Score:2)
Not Language but environment... (Score:2)
I don't think the problem isn't PHP or not,
but "Web Sites"...
If you make websites you deal with people who wants websites,
And everybody knows how websites are done, right?
This attitude drives away any "good" developers.
So you're stuck with the one you can't or won't or just don't care...
Not all developers in this area , but the majority.
If you want to write good software you need project and customers who understand what "good" means.
The language is secondary,
Your challenge is finding these "good" project
Maybe stop showing off? (Score:2)
Re: (Score:2)
Your argument is the exact point that makes this decision difficult. Hence my "Ask Slashdot".
My salary and working conditions are pretty good considering PHP, so yeah, that's a bit of my dilemma right there.
Should I build on that or leave is what I'm pondering.
Comparing language to library (Score:2)
"I think .NET is a much cleaner language to work in with Microsoft's excellent Visual Studio IDE and debugger," argues Slashdot reader Agret , adding "there are many large projects in my city hiring .NET developers and being a strongly typed language the code quality is generally better than PHP."
I wonder what Agret's thoughts on C# are?
Yo Gang, thanks for the feedback so far! (Score:2)
I was afraid there is no easy answer and I guess we can all agree on that. Truth be told, there is an advantage to being the experience guy in a web agency / PHP shop and I can't really complain about my salary right now either, although I would like it to improve within the next 3-4 years.
Whatever I do, I'm not going to stick with standard PHP fiddeling. If I stay in the PHP camp, I'll specialize and focus on things that come with it, such as web projects as a whole, performance and high-availability and s
PHP's Value Propositions Remain Unchallenged (Score:4, Interesting)
Yes, a great deal of PHP code in the wild seems unruly. However, this is not due to PHP per-se. Choosing a solid framework (such as codeigniter or cakePHP), following its conventions, and practicing good team dynamics makes all the difference. I have been coding since 1984 in a variety of languages and, although PHP's verbosity annoys me (requires too much finger twisting on the keyboard), I have never seen a more generally productive language. You can easily build a lot, fast. The discipline to make maintainable code is worth the effort that you need anyway, even if coding in Python.
Here are the reasons code becomes unruly:
(1) undisciplined and/or weakly experienced coders
(2) not clear design pattern (usually goes with #1)
(3) well experienced coder's tendency to over-engineer
The worst of these is #3 and it's very common amongst head-strong developers who are knowledgeable.
Give something else a try (Score:2)
Example of good PHP code (Score:2)
You'll see a lot of people saying to you stay on.. (Score:2)
Yes, it is. The core is really a mess, features are moved away and returns, the team making the rules has weak technical skills (search for the reas
It's not the language, it's the user base (Score:5, Insightful)
Moving to .net won't make you any happier, because strong typing does not make a better code base. Better programmers make better code base. And neither PHP nor .net require you in any way to be a good programmer. Both come with sufficiently plentiful training wheels that both of them attract people who have no idea what they're doing and rely mostly on cargo cult programming.
But this is how programming is these days. Yes, you still have a few good (and very expensive) people who know what they're doing and who actually understand the implications of using this function (or API call) instead of that one, but for every programmer who does know that, you have at least a dozen who copy/paste most of their code from various online sources after googling the problem du jour. This is an universal problem and not one you can solve by switching the programming language.
If you want to solve that problem, you have to switch the user base.
well (Score:2)
A good programmer can write good code in any language. That said, an average or bad programmer has the tendency to write really horrible code in PHP. Let's say the nature of the language leads you to bad code, more so than say C# or Python. You have to fight the nature in order to avoid it.
Stability Matters (Score:3)
Been on PHP/LAMP for several years now and that bastard never so much as went down once.
Depends on your age. (Score:5, Insightful)
New coders look at crap PHP and think "I can do that!"
Experienced coders look at crap PHP and think "That's crap PHP."
Old coders look at crap PHP and think "Job security."
PHP is a bad language for long lived code (Score:3)
PHP is a bad language for teams with various levels of knowledge of the language, who do not pair-program or when scalability (connection pooling issues mostly, and not only DB connections) matters, of if you want to use microservices inside of a PHP script (there is a circle in PHP hell for that).
In a nutshell, PHP is a bad language to have legacy code in, and not easily scalable. It is quirky, though not unmanageably quirky with the right tools, but once you ignore warnings, do not use proper code quality tools (sonarqube and such), you are definitely fucked with PHP. And these days, I am maintaining several of those nightmare no-framework, reinvent-the-wheel, warnings everywhere and no composer and custom classloading PHP application.
By the way, beware of C# in a team. C# is a huge and complex language. Just like C++, you must agree on a subset of a language, for consistency sake. Once you got your subset, you are good to go.
Slashdot confuses me sometimes (Score:2)
Slashdot really confuses me sometimes.
Re: (Score:2)
Th post the other day about python brought out all the curmudgeons who damned it as a "toy language" not fit for "anything longer than a page". Meanwhile the comments here are people defending PHP as "the right tool depending on the environment" and "its not the language, there are bad developers using every language." Slashdot really confuses me sometimes.
Because they are not the same people. These people defending PHP are either PHP programmers or somehow their paychecks are tied to a PHP project of some kind. I've looked at PHP and its a disaster and clearly not suited to making larger or commercial projects. You can with enough skill and effort make that happen but your organization probably doesn't have that level of skill and management to make that happen. So what will happen is cheap, cargo cult programming that drives away good programmers. This
Re: (Score:2)
Because they are not the same people. These people defending PHP are either PHP programmers or somehow their paychecks are tied to a PHP project of some kind.
While I agree with the premise, the problem was how highly moderated the comments are about php being pretty much ok and blaming poor programmers. I imagine you would have seen the same thing with python, right? Why didn't we see an overwhelming amount of pro-python, highly moderated comments in the other post?
I've used both. (Score:4, Informative)
It breaks down to PHP being much less capable than ASP.NET in its capabilities, though I admit it's been a while since I've used PHP, some of these limitations are built into the basic design of PHP so I'm not sure how they could have improved those aspects since then.
ASP.NET and ASP.NET Core have control of pretty much the entire web server stack (to a point). So you can do things like declare REST APIs and map them to single functions, whereas it is much harder to do that in PHP because first the web server needs to map a request to your PHP script file before you even get control in the first place, so you need to use Apache mod_rewrite or whatever (as opposed to a single line of ASP.NET code embedded with your REST API function.
I think that's really the biggest thing. PHP code starts and ends at the PHP script file and all code is run in the context of a HTTP request. There's no built-in way to do background processing outside of that, and you are writing a collection of scripts, not a full application. In ASP.NET you are writing an APPLICATION, and you get as much control over requests into your application URLs as you need. You can filter requests, add middleware, and your app doesn't even serve static files from disk unless you tell it to.
PHP has also had growing pains, starting out with no OOP support but having such things added eventually and having their APIs eventually converted over to use OOP (I stopped using it before this point so I am not sure how good it is). Also some bad security decisions that had to be corrected have led to things like mysql_escape and mysql_real_escape functions. Meanwhile in .NET you just use SQL parameters and you're good from a security standpoint. It has been awhile so I would hope PHP has SQL parameters now. I can't speak to the current state of PHP from a security standpoint but they've had a rocky journey for sure.
Also as a side note, .NET has EF/EF Core, which is amazing. I fell in love with it. Use any DB you want. Write classes that represent objects. And then EF/EF Core generates DB structures and queries for you; you don't have to deal with any of that. Change the object structure? DBs will be migrated to the new structure. It's pretty much magic. With PHP you're stuck picking a specific database and manually writing queries. If you want objects to represent your records (a database abstraction layer of some sort is a good idea for security reasons) you have to build all that by hand.
Afterthoughts (Score:2)
Re: (Score:2)
You know, the one thing I've ever been able to do is tolerate a framework building SQL queries for me. I get that it makes sense if you're using a number of databases, like nosql and the like, so a level of abstraction allows higher code portability, but in general I simply do not trust any framework's ability to generate a SQL query as optimized as the one I can build by hand. Of course this makes for less portable code, but honestly, I'd rather just do whatever variant of #IFDEF any language has and rewri
Re: (Score:2)
Re: (Score:2)
You know, the one thing I've ever been able to do is tolerate a framework building SQL queries for me. I get that it makes sense if you're using a number of databases, like nosql and the like, so a level of abstraction allows higher code portability, but in general I simply do not trust any framework's ability to generate a SQL query as optimized as the one I can build by hand. Of course this makes for less portable code, but honestly, I'd rather just do whatever variant of #IFDEF any language has and rewrite the query for whatever database the application is hooking in to (yes, I know, lots of reinventing of the wheel) than to trust nameless and faceless framework developers. I know at that point that the SQL is secure, rather than having faith that someone out there knows what they're doing. Besides, I do kind of think in SQL, due to 20+ years of writing SQL code, and it actually helps me at the prototyping stage to get a sense of data flow. I usually work from the database up, because that's just how my brain seems to work.
And you are why SQL injection attacks are still a thing in web dev. And this comes from someone who loves SQL and has written SQL only applications before.
Re: (Score:2)
Where did I say I didn't use parameters?
Re: (Score:2)
Re: (Score:2)
You can do background processing. It just takes a bit of work. That's what cron, flags and triggers were designed for. Admittedly some tools make it more seamless, but really under the hood it's all done the same way. And there are certainly frameworks out there that give you that level of abstraction even in PHP. Mostly it's down to the framework and picking the right IDE. These problems have been solved.
Yes (Score:2)
Should I... (Score:2)
"Should I swap using a hammer for a screwdriver?"
The answer is "maybe". Use the language that makes sense for the project.
PHP lets you write awesome stuff easily, and PHP lets you write hideous stuff easily. I promise you that I can write shitty, buggy, insecure code in any language you want, not just PHP. Or C++. Or Javascript. Or Python.
It's not the fault of the language- you can say "Me so hungry want eat" in any language.
Welcome to software development (Score:2)
and developers. It doesn't matter what it is the cycle always seems to be the same:
1) a language or framework is created to solve a current problem.
2) early adopters show up who in my estimation seem to be on the upper tail of the intelligence distribution.
3) Said developers start solving the problems the new tech was intended to fix.
4) articles appear, discussion groups, etc. start touting said tech as a magic bullet
5) the thundering herd of developers follow it, most of whom are lower skilled than the ea
Re:Switch fields entirely (Score:4, Insightful)
If you can't find decent people to work with in PHP, then you're probably not good enough yourself. No matter what language you'll switch to, you'll find yourself down in the dregs.
The thing is, with PHP it's the blind leading the blind. Nobody has a clue, and starts with Rasmus (by his own admission). No skilled programmer would put up with PHP for any significant amount of time, life is too short for that aggravation. The corollary is, PHP crap never gets fixed because nobody with the skill is willing to go sewer diving to the extent that would be necessary.
Re: (Score:2)
The thing is, with PHP it's the blind leading the blind. Nobody has a clue, and starts with Rasmus (by his own admission). No skilled programmer would put up with PHP for any significant amount of time, life is too short for that aggravation. The corollary is, PHP crap never gets fixed because nobody with the skill is willing to go sewer diving to the extent that would be necessary.
Fine by me, because the challenge usually is not making something perfect, but dealing with imperfections.
This is pretty much the same war as MySQL vs. real DMBS's debate, recognizing strengths and weaknesses and finding methods how to deal with them the best way.
Re: (Score:2)
The thing is, with PHP it's the blind leading the blind. Nobody has a clue, and starts with Rasmus (by his own admission). No skilled programmer would put up with PHP for any significant amount of time, life is too short for that aggravation. The corollary is, PHP crap never gets fixed because nobody with the skill is willing to go sewer diving to the extent that would be necessary.
Fine by me, because the challenge usually is not making something perfect, but dealing with imperfections.
This is pretty much the same war as MySQL vs. real DMBS's debate, recognizing strengths and weaknesses and finding methods how to deal with them the best way.
You are right about this being like the MySQL vs real DBMS debate. On one side we have a real system which scales and behaves reliably. On the other, you have part of a real system that mostly works until it doesn't and doesn't scale very well especially after you are already too deep in to change. To know the difference, you actually have to know what a DB is, how it works, what kinds of features it supplies, and when you need those features. If you don't know anything, you are likely to get your team/
Re:Switch fields entirely (Score:4, Interesting)
I once got hired to fix a PHP-based website that had been done by a couple of fly by nighters. It was a fucking nightmare. Because they were lazy and/or stupid, they had enabled every bad directive from the bad old days. They didn't even use functions, it looked more like BASIC spaghetti code. In the end I refused to do any more work until the contract was rewritten so that I was billing out time. At the end of the day I essentially threw out what these idiots had written and rewrote the whole thing from the ground up. But I vowed after that that I would never take on a job where I had to fix someone else's spaghetti code. Hire me to rewrite, that's fine, but not to repair.
Re: (Score:3)
The thing is, with PHP it's the blind leading the blind. Nobody has a clue, and starts with Rasmus (by his own admission). No skilled programmer would put up with PHP for any significant amount of time, life is too short for that aggravation.
That is absolute nonsense. Take a look at the Symfony framework [symfony.com]. This is a well thought out, well structured, well documented, properly supported, actively developed, stable framework aimed at longevity and used with success in many, many commercial products.
There are also tons of well structured PHP SDKs which are great to use.
With regard to the language, it has made significant progress as compared to for instance Python. Developing in PHP 7.0 or higher in an OOP fashion, creating nice clean, testable and
Re: (Score:2)
The problem is that languages like PHP, JavaScript or C++, that allow you to do practically anything anyway are a very, very, veeeeeery bad choice for beginners
Are you seriously classifying C++ with Javascript????
Re: (Score:2)
Did you mean interpreted?
Re: (Score:2)
Perhaps he means that his compiler removes all bugs.
Mypy (Score:2)
I think aticus.finch meant languages in which the parser does not statically type-check the abstract syntax tree (AST) in the process of producing bytecode that the interpreter proper runs. What counterpart does PHP have to Mypy, a static type-checking extension to Python?
Re: (Score:3)
PHP is the worst language ever.
Apart from all the alternatives.
Re: (Score:2)
I agree, the basic idea is OK.
The reality seems to be that the designers had very little experience and preferred to hack along by themselves instead of asking somebody who did.
Result: An awful lot of it is firmly in the "seemed like a good idea at the time" category.
Re: (Score:2)
What PHP needs more than anything is a major library overall. I find the inconsistencies in library function calls and naming conventions drive me nuts. I get that there's an argument for backwards compatibility, but it's the standard library that irritates me so much. The language itself isn't really any worse than any other.
That's the core of PHP's problems. Backwards compatibility is the overarching theme of its developers, and it's not even a philosophy they ardently stick to, which sadly makes it even
Re: .NET? (Score:2)
Well, I started using pho v1 in 1999, and saw it evolve to v4 with a huge number of functions. PHP was the language where you âoecould do itâ. I also used the first version of MySQL and many subsequent. Your question is akin to asking if you should learn another language if you are native French speaker. Iâ(TM)d say bring a polÃglotos fine but not everybody has the bandwidth and memory to sustain many at a good level of proficiency. So you better focus on what kind of work you like, then
Re: (Score:2)
Fortunately I don't do a lot of front end work. Most of my work is in analytics and data processing these days, so I've been liberated from web development. I always hated it. This way I have a lot more freedom in the languages I use, and so long as everything is well documented, I'm enjoying my liberty!
Re:.NET? (Score:5, Interesting)
PHP has a lot of problems, but what they poster reported isn't near the top of them.
the 3.5 Meg with Gadgets isn't PHP it is Google. Also for a lot of other page size issues, the biggest problem is less with the language but with added Javascript Add ins such as Jquery or Angular.js this moves your few kilobyte page to megs very quickly.
In .NET I had aspx pages that seem to place a meg of session data onto the page, which I normally disable because I don't program websites with point and click, and I would rather have more more control when the screen refreshes or just does an AJAX cal and DOM the results back in.
I have been doing Web Application Development (I don't do web sites) from the beginning I know what is happening in general on all sides of computers the clients and the servers.
A particular web language sometime can help sometimes make particular tasks which are annoying much easier. But they cant stop you from making a crap Web Application, and they all have a feature where people may misuse or abuse to create utter garbage.
The posters experience probably has PHP Developers fresh out of college bight eyed and ambitious, looking to change the world with Open Source Technology however lacking the experience to know how to debug (I still have to show recent college grads on how to use the programming debugger, and they are always worried because for some reason that it isn't pure enough for them, or cheating.. For those college professors out there why arn't you showing these kids normal debugging software that has been around for generations!) and also they are often happy when it works, they don't know when to go back to make it better, or they also don't know when to call it good enough and continue on.
The posters experience with .NET developers are probably with professions who have been doing it for a few years, they have families and their goals to change the world isn't going to be their unique take on how to format that textbox. They have more years experience and learned from their younger years. They know when to dig and optimize, and when good enough is good enough. They uses the tools in .NET (Or in PHP or whatever freaking language they are either told to use or what is best suited for the project) more carefully and more often. They know each tool is a double edge sward while making one job quicker and easier it may have a side effect that you need to mitigate, work around, or decide that it isn't worth it. Now I normally don't code sites with point and click programming, because it really bloats up the Application, that doesn't mean I never do it. Sometimes that method would save weeks off my development cycle. And bloat isn't a big issue for the project.
Experience is more important then the language.
Re: (Score:2)
Whatever the language, you can write a run-on sentence in it.
Re:.NET? (Score:5, Interesting)
There is a higher-order thread running through this argument that has to do with good programming practices regardless of language. Modular code and UI components are Good Ideas, for example. Containers are a Good Idea. Git is a Very Good Idea. Typing is a Good Idea if you generate code. Templating is a Good Idea. Observer Pattern is a Good Idea. Eventing is a Good Idea.
What I do is listen to our industry, study their good ideas, and incorporate them in my next project, fitting them to the language and framework the customer is using. Language is primarily a *business* decision, it has to do with what kinds of IT resources the company is willing to commit to.
That shouldn't stop good development. As John Lennon famously said, "I'm an artist. Give me a tuba and I can get you something out of it."
Now go code. Make beautiful, good code with whatever tools they give you. Be the artist.
Re: (Score:2)
That is true, but it's also true that some languages and some core libraries better facilitate good coding. Those languages also tend to have a higher learning curve, simply because they impose at least some degree of discipline. That's why languages like VisualBasic and PHP have always been so popular, because they have a much lower barrier to entry. Languages like C++, Java and C# really are harder for beginners to just open a text editor or basic IDE and have a running application in an hour or two.
Re: (Score:2)
You don't really get much choice on a jellybean hosted server.
(cue all the armchair experts saying "host it yourself!" and "pay more!")
No. Not with this problem. (Score:2)
It's not about other coders. Other coders in my field are generally nice people although it is strenuous explaining to them time and time again why it's important to do versioning and CI. It's about the whole environment. Doing double and triple the work because someone needs babysitting to do his versioning correctly is a common thing in the web agency / PHP camp. This has nothing to do with self awareness and everything to do with me getting tired of it. Hence my question and request for input.
Thank you f
Re: (Score:2)
Is there a way that you can profit from the fact that many PHP coders aren't as experienced? ... This is exactly the type of decision I have to do right now and it ain't that easy.
I'm really not sure about that. I some ways yes. Building interfaces, debugging broken setups to get them (barely) working again and then moving on, doing 'web consulting' or something like that.
Is there a way that you could use PHP to fix some of the problems?
Yes, there is. But that would involve writing my own set of tools.
If I'
LOL! (Score:5, Insightful)
Ok, I will not rag on .Net just now, but I'm definitely not moving to .Net should I leave PHP behind. So you have a point there.
Re: (Score:2)
There's a point in leaving PHP behind since it's a mess. So is JSP, primarily because it's a mix of three languages/paradigms:
This combo overall generates a headache of mixed code that is hard to debug and is prone to bugs.
It's not easy to build an UI that is stable, secure and useful with any of these combos.
Re: LOL! (Score:2)
Comment removed (Score:5, Informative)
Re:LOL! (Score:4, Funny)
And also, lets not forget that C# was responsible for stopping a whole lot of developers from using Visual Basic. I mean, how could you complain about that?
Re: (Score:2)
Says the clueless guy.
Re: (Score:2)
There's no such thing as "totally secure", and imagining that My runtime environment can save you from your own poor practices is at the heart of every security breach.