Answer the question
In order to leave comments, you need to log in
PHP vs. all. Does it make sense to learn (in parallel) something else?
Actually, I'm new to web programming, I chose back-end as my main area, I have some basic knowledge in Pascal (Delphi), C / C ++ (studied two courses at the university). Now I am writing a term paper in PHP, at the same time at the university we have classes on it this semester, in general, the choice of PHP was largely dictated by the outside. In principle, everything works out, the language seems rather simple (most likely, because the task does not require serious preparation), but the code, especially after C ++, does not cause any positive emotions. If looking at the code written in C ++, one could unequivocally say that it is beautiful, then for the most part I have the opposite feeling here. Since I'm still a complete beginner, my code is a hodgepodge of html tags and PHP constructs. Generally speaking, it annoys me, but you can live, considering that most of the code is still intuitive (the size of the code is small, it's clear). In addition, the situation is also aggravated by the fact that no matter what topic I go to, which is dedicated to choosing a language for the back-end or comparing / discussing languages from this area (including on the toaster), I see continuous attacks on php, both from developers in python, ruby, and those who write in php (often these are phrases like: "I write because I have to .." or "I'm already too drawn in and won't let go ..." and stuff like that, of course, I heard about "slavery", but not so much). Basically, their main argument is the article dedicated to choosing a language for the back-end or comparing / discussing languages from this area, I didn’t go (including on the toaster), I see continuous attacks on php, both from developers in python, ruby, and those who writes in php (often these are phrases like: "I write because I have to .." or "I'm already too drawn in and won't let go ..." and stuff like that, I, of course, heard about "slavery", but not just as much). Basically, their main argument is the article dedicated to choosing a language for the back-end or comparing / discussing languages from this area, I didn’t go (including on the toaster), I see continuous attacks on php, both from developers in python, ruby, and those who writes in php (often these are phrases like: "I write because I have to .." or "I'm already too drawn in and won't let go ..." and stuff like that, I, of course, heard about "slavery", but not just as much). Basically, their main argument is the article PHP: a fractal of bad design
As a result, along the way, I look towards the same python (with a subsequent "upgrade" to django) or ror. This is not surprising, because there are a lot of enthusiastic reviews of "unfortunate" php programmers who switched to python or ruby (although I also often saw dissatisfaction with its "magic"). I haven’t dealt with these languages myself, but I know that Python is praised for its execution speed (which, it seems, is actually approximately equal to the speed of PHP5.6, but PHP7 is approaching, which works much faster than its closest ancestor) and development, structuredness, and ruby simply captivates with its syntax and you can read the code in it as if it were text in English, but both PHP and Python are slower, and besides, it seems to have lost ground lately (is it true or not? for the Russian Federation, I think, for sure,
In addition, PHP has been developing very dynamically lately ( second life? ), there are a lot of vacancies (but there are no less shit coders, and besides, most of the work is related to the refinement / support of the already existing shit code and cms), there are cool frameworks like symfony, zend, yii. (picked up here, maybe not cool ones)
TL;DR So here's a short list of my questions :
1. Is PHP dying? So why, then, has a dead language been developing lately faster than all (most) living ones (I'm talking about python, for example).
2. If you answer the first question in the style: "How much PHP does not develop, but it is initially an ill-conceived language, not even a language, but a template engine ...", then the following question: Do PHP developers have a chance to catch up in this regard?
In short, the first two questions come down to the following: Does it make sense to learn PHP, is it promising in terms of further work (work, not cms refinement, etc.)? (oh, this is a button accordion, it has already been discussed a hundred times)
3. Do I have time to master something else ( Python + Django|| ROR || Node.js) literally in a couple of months (max. 4) to the level of writing simple systems such as a testing system (difficulties for a beginner can be only in authorization and displaying all kinds of graphs by which it will be possible to analyze academic performance, I don’t say anything about the database , because in php there were no problems with this, but here mb will be?)?
4. Do you need any special hosting features to launch a project on all of the above? For example, will a regular university hosting project run on django? Much will have to change and what will have to be changed at all?
5. Freelancing on any of the above vs. freelancing in php (in terms of interesting work, not a routine that leads to degradation; i.e. we discard tons of php projects where knowledge of a specific cms is required, all sorts of different turnkey sites (most likely), etc.)? Probability of finding a job in a million-plus city (Russia) for a (half) junior?
6. Continue to learn PHP, which combination of PHP +% some framework% is the most "combat-ready"? When to switch to frameworks?
I understand that there are many questions, and in general I am a little insolent to roll such walls of text, people have more important things to do than read my illiterate writings. Therefore, whoever is running out of time, but has something to say, please go straight to the questions without reading the wall above.
PS Please do not holivar, all languages are good, each is designed for its own purposes; language is just a tool, don’t learn a language, learn technologies, etc., but you need to start with something, but I still don’t have enough brains to choose something specific and press it, so as not to miscalculate later. And yes, maybe you should learn everything at once?
PPS I am writing this question because my inner voice does not allow me to write calmly in php, constantly persuading me to try Python or Ruby (doctor, tell me, is this an attempt to merge, or is there something in these doubts and am I just wasting time?).
I would especially like to hear the opinion of OnYourLips , since this person is one of the few who stands up for PHP here (from those answers that I saw).
Answer the question
In order to leave comments, you need to log in
but the code, especially after C ++, does not cause any positive emotions.
the main thing is to decide:
either form-slapping (respected, honorable, monetary),
or serious languages \u200b\u200b(exhaust is far from immediate, but stable in the end)
1. Is PHP dying? So why, then, has a dead language been developing lately faster than all (most) living ones (I'm talking about python, for example).
I read the whole question, but I didn’t have enough answers, so I can repeat something)
Moment 1. Languages. If you really know C++ (pointers, memory management, stack, heap, OOP, etc.), then you automatically already almost know PHP, Python and Ruby. You have an advantage in learning these languages, since you already have an idea of what is really happening in your program and, importantly, under the hood of the interpreter. These languages themselves (in terms of approaches and principles) are not so different from each other. Each of them has a number of its own characteristics, but there are not so many of them and it will not be difficult to master them. At the same time, having studied any of the languages, you will jump to any other without any problems.
Moment 2. Frameworks. It is unlikely that in real projects it will be possible to take the N language, and do something on it with pens from scratch. Most likely some frameworks will be used. But here, again, it is enough to take any framework available in the N language to understand the vast majority of the rest. Yii, Django, Rails, Laravel - they are all much more similar than it might seem. Bottom line - having studied one of them, you can easily jump to another. Each jump will be given more and more easily (relevant for the previous paragraph).
Moment 3. Server. If you want to deal specifically with the web, then the server is obviously an integral part of it. Here the languages have a little more differences than in the first two points. But the essence is the same - if we take the most common configuration, then there should be a so-called. a front-end server (not to be confused with the front-end part of the application), which serves regular files without disturbing the application itself, and a back-end server (or application server). The back-end server is just engaged in the execution of the application code, and here, depending on the language, there are some peculiarities in its installation, configuration and connection with the front-end server. But everything is within reason and quite realistic to study. Less common configurations can be studied along the way, and the essence will be similar.
Moment 4. Node.js. Yes, for him a separate item. Everything in JavaScript is built on asynchronous programming, so it is very different from "classical" languages. I will not go into details, but I recommend that you at least familiarize yourself with it in order to have a general idea of \u200b\u200basynchronous programming, in particular on the server. You can take not Node.js, but some similar options in other languages, but JavaScript is based on this idea, so I think that it is optimal to take it.
Moment 5. Lyrics. Any technology solves a certain range of problems, so to say that it is "bad" is simply incorrect. We can say that it does not solve this particular problem, or there is some other technology that solves it better. Now specifically about PHP, Python and Ruby. As you have noticed in this question, there is a lot of controversy about which is better. The very fact that these disputes have not been extinguished for many years suggests that they cannot be unambiguously resolved.
There is also a trend to say that PHP is a language for suckers. But by saying so, a person once again proves his incompetence and ignorance. Historically, PHP has been the most widely used language, so a huge number of things of different purposes and quality are written in it. There are a lot of people who can write on it (I deliberately did not use the word "programmer"), and it is logical that the quality of the code of many of them leaves much to be desired. Many people talk about the entry threshold, but I would not say that the same Python has a higher threshold. Plus PHP in recent years has gained a lot of good both as a language and as its infrastructure. In short, you can safely take PHP :)
The flow of thoughts turned out to be a little chaotic, but I hope I answered the questions posed.
PHP does not die and will not die soon, but what else you need to know besides it is 100%. A broad outlook and understanding of what tasks are best solved in what language will not interfere with anyone. For example, if the task is to write something with realtime, then it’s stupid to force php for this, but it’s better to look towards NodeJS. Multithreading? Here is JAVA for you. If you need to write, for example, a typical API, then take the one that you know better.
In general, I would probably recommend Python. He's kind of a generalist. You definitely won't go wrong with him.
If looking at the code written in C ++, one could unequivocally say that it is beautiful, then for the most part I have the opposite feeling here.
During the time while the TS wrote this sheet and read the answers, he could already learn a couple of languages.
The "bad design fractal" article was written by a dancer who was greatly disturbed by his balls. And he decided to share this problem with others.
The surrounding people were seduced (especially those who also interfered). Then the problem was blown up. They took a list of cons, inflated the problems with them to astronomical proportions and somehow forgot to say that:
1) not every PL is suitable for every task (writing software for Hubble in PHP is sorry, lol, but the site - why not?)
2) language develops.
A lot of things forgot to say, by the way.
PS To be honest, the very name "bad design fractal" causes great bewilderment. I don't understand what the author meant by the title. And by the way, fellow linguists are also at a loss.
PPS By the way, you should ask the author of the article - what is he writing on now? Maybe some kind of YaP came up with his own, free from the problems of PHP? :)
No need to stir up a blizzard about development.
Java has not developed at all for several years, this does not mean that vacancies and price tags have fallen.
As I was told in one Irish office - "you can make money on php ... yet"
so I would advise you to learn python before it's too late. if it's not too late.
now where you don't spit - one python, even in the same rush.
I advise - python + django now.
Yes, and you need to know the base, it’s easy to jump to technology, a little more difficult to another paradigm.
Bottom line: he doesn’t die, he will live as long as they write on it (they still write on cobol), and a large salary, IMHO, is born from high demand.
The first step is to separate the PHP code itself (processing data, forms, for example, generating data for building a page), from the page building code. The latter is best left to the template engine. I use Smarty, but there are a lot of options, all markers have different taste and color. But mixing PHP code with HTML code, and, God forbid, with JS code - I think this is Blasphemy ... :D
Although PHP allows it, it's tantamount to shooting yourself in the foot ...
In general, I love PHP, especially after Clipper 5.2 and Borland Pascal. I won't be going back for sure.
However, modern trends are such that logic is increasingly migrating towards client code. This is what all kinds of Angular.JS, Ember.JS, Backbone.JS, React.JS and other jQuery do, and with them ...
What is even more remarkable is that JS began to actively migrate towards the backend (Node.JS, Io.JS, etc.)
So, according to my personal experience of recent years, and this is a lot of AJAX + jQuery, the backend is increasingly turning into a kind of proxy model to the database and the authentication / authorization service ... And in this regard, no matter how great PHP7 is, but the work for him, everything is less (because it’s completely up to the lantern, the scripts on which JP give JSON) ... At least in the way in which it was originally conceived and existed before the start of the turbulent AJAX era.
Therefore, my opinion is this, since I started a project in PHP - you need to read the beginning of my post, make your life easier, complete and hand over the project, and then switch to the front-end, and immediately throw all your strength into learning first JavaScript, and then immediately Ember.JS , at least Angular.JS, because that's where the future is now in full swing. Of course, what a front-end developer can be without serious skills in HTML5/CSS3... Therefore, this should also be studied.
This should be done, if only because mastering Ember.JS is tantamount to obtaining a second higher education, and there are more and more vacancies on this topic, and the minimum income of a direct developer on such vacancies is from 60 thousand USD. in year. Of course, you need to speak English, how without it ...
Of course, there is still a lot of work on the backend, and there is one that does not make sense to drag to the frontend, however, the backend is not the same as it was 10 years ago, and will not be the same.
PS: all of the above is purely the fruit of my imagination and personal experience (20 years in development), I will have to think, in any case, with my own head and be responsible for the decisions made, and deal with the consequences of them.
80% of all sites are powered by php, I would like to write something as dead. You pay less attention to the exclamations of individuals about whom you know nothing (as well as about their knowledge of the object of criticism). https://dev.by/lenta/main/top-razrabotchik-php-7-k... read at your leisure about the "dead language".
Learn PHP, don't forget C++/Delphi/etc.
PHP is a scripting language for exchanging text data in a dialog mode (mainly with the user's browser) with processing and further generation of the result based on them.
Anything that requires speed when processing large amounts of data is definitely NOT PHP!
(and something more native and adapted)
When you need a high speed of processing the same type of data - write your module (daemon / service) in a compiled language (which you know) and you will access it from the same PHP to get the result.
www.phptherightway.com
Everyone code
shit, in the beginning, in any language. And that's okay. There is enough in PHP not to do this. If you started learning PHP, there is no point in changing the language, study it, learn how to develop, and then you will see for yourself what suits you more.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question