This is Paul Davis's Typepad Profile.
Join Typepad and start following Paul Davis's activity
Join Now!
Already a member? Sign In
Paul Davis
Recent Activity
I'm a fan of PHP - and I've been using it for a while now. I prefer to work on top of Code Igniter (a nice MVC framework). I'm also a business, I provide services to my clients, blazingly fast, solid and DONE when they're supposed to be done. If you *really* want to replace PHP with a language you think is "real", well, it will be challenging. As a businessman, here is what it must be able to do: 1. Be anywhere I want without install/setup complications. I should NEVER have to worry about it being everywhere and ready when I want it. I don't want to waste time or my money setting up some software just so we can start to actually work. I don't want a dedicated person to the setup and configuration of the development language, its tools or plug ins or requirements and so on. That is just a waste of a job on something that adds no value at all. 2. It must come with adequate tools to complete common tasks - session management, database connectivity, file management (upload, file system access), image manipulation, compression, security, email, and so on. These should all work "out of the box" without much configuration or concern about the server or what not. Having to develop these is a waste of time and money. 2a. To use said services, I shouldn't need more than a couple lines of code - or even a single line of code to implement it. 3. It must be extremely well documented in plain language (English and all) - with implementation examples that are meaningful. Seriously, the autodoc "documentation" is utterly useless. I can usually find the solution to any issue I have with PHP using Google in a matter of a few searches. And when I say 'solution', I don't mean a document page that explains the function I'm wrestling with, I mean an actual example of the code that solves my problem almost line for line exact. Otherwise, I've got to spend time developing solutions to known problems - there is nothing new under the sun and, pretty much, no matter what the task is, someone somewhere else did it before you. 3a. It must also have a serious amount of third party detailed examples of implementation. 4. I shouldn't need any special tools or special/additional skills to use the language. By this I mean, I shouldn't have to waste time learning (developing a skill) how to use the server merely to complete using the language for any reason. If the language requires compiling, it should happen automatically without me having to tie files in or deal with configuration issues merely to see the code work. In PHP, it is upload the file, open a browser, test it, done. I shouldn't have to do more to work with any replacement. I shouldn't need a special IDE which can work with the language to make it so that I can do what I do in PHP (instant testing). The additional time to merely compile and configure files for compilation adds no value to the project and is an inferior aspect of a language. 4a. It should be loosely typed. I really don't care if the data is an int, double, float, char or blob, just deal with it as I want you to. Seriously, casting variables or creating functions to convert them is "better" than the language automatically doing it? The best smartphone has one button on it and the touchscreen reacts differently depending on how it is interacted with, I don't need to tell it when I'm scrolling to scroll, or when I'm tapping a link or resizing the page, it just does it automatically - this is the best design out there - and I think there is nothing wrong with expecting my language to be just as flexible, especially when it really only matters to esoteric metrics on what is a "real" language or not... 5. It needs to work flawlessly with mySQL and/or any other database that shares the same distribution as mySQL. It should be able to manage the connection and all transaction to the database and it should do it in a few lines. Creating our own connection code or transactional libraries is a waste of time. They should be extendable for custom functionality as needed. 6. It needs to come with complete MVC frameworks, from small, light and tight to large, complex and complete. It needs to have a TON of applications built in it so that I can take one off of the shelf and modify it and then publish the work in weeks or a month. I shouldn't have to reinvent the wheel ever. Essentially, everything above is related to rapid development to contain development costs. My clients don't pay for esoteric development done at whatever you think is "right" - they want something setup, installed, stable and working NOW. Until you can provide a language that is as versatile and economical to develop in, PHP is simply a better language because it can do that while all of the other languages can't. The measurement isn't how well the language adheres to some metric or design concepts that you believe are relevant, the measurement is how the language solves the problem. Right now, I have a client who uses PHP and mySQL to serve over 2 million visitors a month, I've seen the complexity of the operations and to re-do this in one of your so-called "better" languages would take a considerable budget and a team of several developers (having seen similar projects at a corporation I'd worked at a few years back). I'll complete the MVC re-write of the site in a few months on my own (have about three weeks to go to complete phase 1, phase 2 will take another two months - then its done - and I'm part time with them). The best language is the language that gets the job done for the most economical price. Simply paying more to develop in a "better" language that adds no value to the end product isn't a better, but a bad business decision.
Toggle Commented Jul 3, 2012 on The PHP Singularity at Coding Horror
CONGRATS on the kids! I've got three, all boys, 16, 9 and 7. Loved the article - kids don't come with manuals, have "error messages" that make Microsoft envious as they aren't as obtuse, do not follow any patterns, factories, instantiation methods, nothing - seem to be the only devices that truly can do randomness, have no concept of "standards" and couldn't care less that they aren't. Oddly enough with the same input, they all came out different. They consume tremendous amounts of system resources and the output is, well, for the first few years, everywhere out of every orifice too.... later on they do manage to control that process (mostly anyway), but then, as they get older they consume everything that is edible (and in the fridge or pantry). I'll never forget the first time we went out to dinner when our first was at grandmas - every time we'd gone out before with him, he's take great pleasure spreading out the sugar packets and "sharing" them with other tables (or the floor, especially the floor) - so much so, sometimes we'd order food, and before it would get there, we'd be packing him up and take the food to go, we didn't want to ruin other people's meals because our boy wouldn't behave) - we sat there and stared at each other with a "what do we do now" as we'd not been out by ourselves in so long. So, I spilled the sugar packets over the table and we talked about our son for the rest of the night. Kids change you forever. Chaotic bliss at times, and, yep, a PITA the other 49%. I always have to remind myself, these kids will be picking my nursing home, so be nice to them :)
Toggle Commented Oct 24, 2011 on On Parenthood at Coding Horror
Paul Davis is now following The Typepad Team
Oct 24, 2011