This is Keith h's Typepad Profile.
Join Typepad and start following Keith h's activity
Join Now!
Already a member? Sign In
Keith h
Recent Activity
A few people above have hit the nail on the head here. Shish2k is one. I'd like to add a few additional points. Cheap, shared hosting doesn't come with shell access. Any language and/or framework that requires shell access to deploy is dead in the water. By proxy, basically any language that has an elaborate reusable component library (i.e. gems, eggs, cpan) is pretty much dead in the water as well, unless there's a *really* straightforward way to bundle the libraries with your app and have them require zero installation or existing libraries. Packaged component library systems like RubyGems and Python Eggs are hell for newbie developers. "import" / "require" / "use". Fucks sakes, it's 2012. Why do we still need to do this shit? Compiling. Bye bye Java, C#, and basically all other compiled languages. You might be awesome in your own right (C#), but it's just too much work and requires too much knowledge about toolchains. The second and third points sounds backward, but half the time the package systems: Don't work nicely on Windows (if at all) Have complex interactions with system vs app installations ...and thus launch into dependency hell Require a lot more knowledge about the underlying system to use properly than a new developer wants to learn For developers familiar with the environment, these systems (mostly) work well. But for devs (even reasonably experienced ones) learning, it's a massive hurdle - and given that they're relied upon so much, it's another "dead in the water" call for the "better" languages. And it's a *gigantic* hurdle for shared hosting deployments. PHP doesn't really have this problem - so much shit is bundled with the runtime installation itself, very few developers need anything that requires PECL, and PEAR is a) pure PHP, so less of an issue, but more importantly b) kinda shit most of the time, so noone bothers to use it. So - to get whatever language system we to actually work, here's what we need: Packaging system: That's done developer-side only. No commands to run on the server. Native code only - no compilation or dependency requirements outside this system itself Packages download as source code into your local application tree, load automatically without importing in your code, and don't require *any* system configuration (env vars etc) Language and runtime: Simple syntax that's readable. A subset of Python would be fine, Ruby might be a little... esoteric. PHP's existing syntax is actually surprisingly good in this regard, save for all the dollar signs. Environment needs to be well-standardised and VERY well featured - stuff like SQL database libraries, gdlib, XML, JSON, DOM etc need to be packaged as first class citizen libraries, and expected to be installed by default The above libraries need to load themselves dynamically without any include() or require or use or import statements. This pretty much means the language needs a very strict and very simple namespacing system. Slow-moving target. Python2.x vs Python3 will cause issues for years. Ruby's release speed causes big issues with old gems etc. Basically, this is a very difficult task. And, there's nothing out there already (that I'm aware of) that does even half this at all well.
Toggle Commented Jun 30, 2012 on The PHP Singularity at Coding Horror
Keith h is now following The Typepad Team
Jun 29, 2012