First off, I hope this is the right board for this question - it seems the most obvious one for me.
I have produced a good few websites which have been everything from simple sites in Yii to more complex Yii web apps involving quite heavy data processing to WordPress/Woocommerce sites. It was something I initially did quite casually but I have been thinking more and more recently about taking things a lot more seriously in terms of an income stream and would quite like to code fulltime.
I was just interested to know what others think of the place of Yii and PHP in the future of web design? It would seem that there has been something of a backlash against PHP in the last 18 months or so, with people arguing it is becoming redundant and the market’s preference now is for the likes of Python/RoR. However, there is also the stat floating about that PHP has <80% of the server-side language share. So, I personally don’t buy the idea that it is dead, but it does seem to me that more and more people are moving away from it to other frameworks.
JavaScript in it’s raw form (rather than jQuery etc) is something I have been meaning to learn for a while now and I think I now have the time and drive to do so. I am also intrigued by the likes of BackboneJS, NodeJS, Angular etc, and I have mention that JS is the future of web (application) design.
So… I just thought i would put it out there. Don’t get me wrong - I love Yii (switching over some of my sites from Yii1 to Yii2 as we speak) and I PHP was my first language so it’s also close to my heart but I would be interested to know people’s opinions on where the market is headed?
I don’t know about Yii Framework, if it’s going to be around in a few years(and if it doesn’t, there’s always alternatives) but my own opinion is that PHP as a language ain’t going into any grave anytime soon, it’s just impossible, it is just going to get better and better and it will stay top language for web development and all the python/ruby fanboys can die of hate for this, it’s just the pure truth, as bad as a language PHP is, with it’s shortcomings, it’s the language that gets shit done in the web development world and oh boy it does it nicely and easily.
That being said, if you have the time, learn a compiled language too, you will learn discipline, you will learn how memory allocation and management works, pointers and many other nice things, so that when you write php you will understand what the code underneath php actually does (php is written in C) and how you can write it better.
After giving a try to C and later to C++, I actually found GO to be very easy to learn for somebody coming from PHP world.
At some point there will be things were PHP isn’t good at, and you need other tools and that’s when a compiled language can save you from going nuts
You said you want to learn javascript in it’s raw form to use with nodejs and backbone/angular/etc rather than jquery alone. Do that, it’s an easy language and you’ll pick it up easily and enjoy writing code in it.
Don’t waste your time with nodejs though, trust me, does not worth if you care about your sanity. Real world usage is very different than hello world benchmarks. Again, learn a compiled language because you’ll have a win in the long run.
I’ve actually done a fair bit of VBA a few years ago, so I have worked with compiled languages. I think I will delve into JS soon though, and I might also have a play around with RoR and Python too, just to see the comparison etc (it can’t hurt).
Regarding your opinion that PHP is here to stay for a while yet - I have to agree with this. Trends and trends, but an 82% market share isnt going to vanish overnight.
Most of the complain about php in the times where fixed version by version, now oop is quite mature, most of the function carzy names where fixe and have a more logical scheme.
With the upcoming version php 7.0 also performance and memory issue will be addressed.
This means that php developers and community is quite active and responsive and the language is adapting to the web evolution.
So I think that php will still stay around for along time.
Following on from the original question, what are your opinions on required technologies to produce all solutions that an web agency would be asked to produce?
Yii (obviously ) as an PHP MVC option to produce entirely bespoke web apps. WordPress to give the option to produce faster, less complex sites using templates and Woocommerce can be added to make e-commerce sites.
Aside from the PHP MVC option (Yii) and the template-based framework (WordPress), what else might a developer need to have at their disposal? Do any of you developers more experienced than I think there are many gaps to the filled that WordPress and Yii can’t do? If I am going to take this seriously as a profession, I would like to be able to offer all solutions out there and not be “caught out” with gaps in the skills offered.
I am still going to learn JS properly and try to full understand it’s application as both a client-side and server-side technology.
I would say depends on competence. If you are a single man agency you better concentrate on what you know first, and then see the market to chose the next step.
Trying to do many things at same time there is the risk to not have good knowledge of any instrument.
Web developing is on 2 side.
Server side (php, pyton, java…)
Client side (javascript, css, html)
on server side I you already have a programming language
on client side you still need to identify javascript and css framework.
Going back to server side you were talking about wordpress so this would lead you to jquery and bootstrap on client side since 90% of the themes for wordpress are based upon these.
Do not under estimate the need to know jquery and boostrap to handle personalisation on wordpress theme and plugin.
Angular Nodejs python… well my opinion is that they are valid but are still rather unknown to the masses.
If you want to get a client by names is already hard with php, but fortunatly they know wordpress joomla and facebook name and you can tell them they are developed in php.
Other tools you can offer expertise on depends on your business target. You can check for a crm if you think this can apply to you target.
So make some kind of business plan in which you identify your targets, this will help you finding the tools.
I might have been a bit lazy in my earlier post. So, to clarify, I assumed (probably wrongly) that Bootstrap and jQuery are understood to be part of Yii. Yes, I know they are not part of Yii (yiisoft), but they are intrinsic to the web apps now.
So, what i should have said is that I have actually quite a lot of experience with Bootstrap/responsive design/CSS/jQuery/jQueryUI. I have heavily customised responsive WordPress themes from CSS customisation to rewriting PHP/HTML in the view fragments.
I think I should probably have said that for a complete skill set for web design, would you consider this to be adequate?
Server-side - PHP (with Yii as the framework), MySQL
Client-side - CSS3, HTML5, JavaScript, jQuery, jQueryUI, responsive design (in this day and age, using Bootstrap)
As per my original post, it seems PHP has been getting some bad press lately. I have no problems adopting a new technology (I would consider actively doing where value can be seen to be vital to the trade), I was just interested in other people’s opinions on technology stack I suggested above. For instance, for mobile-compatible apps, there is obviously some call for iOS/Android (neither of which I have any experience in but would be willing to learn) but I have also heard that a well-developed app in the technology stack above is more than adequate for web apps and there is no need to delve into iOS/Android unless you are looking to develop something that is native/specific to those devices.
As for the service I am planning on offering - I would like to offer something more towards the web app side of things, with a focus on business process automation. Now, grabbing a WordPress template and configuring it is a LOT less technical (although having a solid grasp of the technologies on which is is built is vital if you to have any real freedom of customisation) but I would rather orientate myself towards web apps. I have actually already built quite a few and previously worked in data quality management in banking so between my career skills and teaching myself web design, I have very considerable experience in data modelling, data cleansing, business process automation, front end design, REGEX, data validation, PHP, SQL, CSS, HTML, JavaScript (and it’s libraries such as jQuery) etc etc. I also have been a professional VBA developer.
Anyway… just wanted to hear any thoughts anyone might have. I guess it’s not a straight-forward question and answer thing, more just giving out my thoughts and wanting to hear the thoughts/constructive criticism of others
I have been developing for a long time and have used many languages and frameworks. Currently I am a senior Java Developer by day and a PHP web developer by night.
I can say this, I have tried many php frameworks and always end up dumping it because they are just to complicated. Yii was the first framework I can really say was very easy to use and quick to learn. Yii 2.0 was a major jump from Yii 1.0 and still only took me a week or so to get the hang of it.
For those who think php is dying, I am sure you guys are the “plug and play” type developers. The type who don’t know what to do when a client asks for something specific and a plugin for the solution does not exist. PHP is not dying and for the hardcore developers who need to code very specific web solutions, it is just what we need. It’s a strong, solid language with cheap hosting and loads of free help. Yes, that’s right, even this Yii framework is free.
PHP until I die, or at least until my wife starts making more money than me in which case I can be the stay at home dad
Thank you. A very positive and helpful comment. Much appreciated.
I am now very much confident that I have the right skillset to do what I want to do (provide the solutions I want to provide). I am taking extra care in what I do to prepare, such as reading HTTP RFCs etc so I have a true mastery of the subject rather than simply relying on plugging in parts to a framework and not being able to resolve technical issues should they arise.