I'm approaching the end of the alpha phase of my framework, and the fateful day that I bottle it up and push to GIT or similar repository and let the world marvel at my stupidity
Well, hopefully it won't bomb, but I did choose a dev name that is taken by another project. So I'm looking for a name again. I've always been partial to acronym names, but with those each letter has to reflect what the framework is trying to accomplish.
Remember BASIC - Beginner's All-purpose Symbolic Instruction Code? Well, that's somewhat what I'm trying with this. Here are some tags, features and goals of this thing.
Beginners - this framework is designed for people with little or no PHP experience. Code is fairly heavily commented and the comments themselves are being checked for clarity because I expect them to be read and referenced.
All-Web-Purpose Like the BASIC programming language before it, this framework is not focused on any particular web purpose over another - but it does expect to be deployed on the web.
Apache/MySQL PHP will work with other servers and databases, but for the initial version of the framework they've been eschewed in favor of supporting this extremely common setup. Later versions may support other web servers and databases - the framework is modular to allow for this - but initial support for a wide range of services would make the framework harder to grasp.
Event Based MVC The framework is MVC with the twist that controllers exit in the system as events. The super-controller (the framework itself) is an event dispatcher and maps events to their listeners in a clean fashion where events don't need to know what is listening to them.
Low Level ORM The system has a low level ORM system that can handle common SQL usage scenarios. It's not as robust or feature rich as Doctrine as that isn't it's purpose. Instead it exists as an example of ORM theory in general. It is capable of standing out of the way to allow the user to deploy their own model solution.
PHP Templating Templating is accomplished in PHP itself. It's possible to use smarty and other templating engines with it.
Accessibility The code is written to be easily read, largely self documenting, but clarity is the goal at all times. This is the overarching goal - someone can work with this framework with a few small projects, get their feet wet, and then move to more specialized and robust frameworks. That doesn't mean the framework won't be capable of production level deployment - it will. But I've already sacrificed optimization in some cases just to make the code easier to follow.
DRY philosophy - Don't repeat yourself. Items and methods are in one place only in the code.
So I need a name that can capture all that. And I'm sorta stumped at the moment. I understand that most, maybe all the regulars here, will have no need of this thing. I don't think I'm so smart as to be able to trumph the brilliant teams that work on Symphony, Zend and Cake. But I don't think a good bridge from echo "hello world"; to what their frameworks do exists, and I want to provide that bridge.
You could call it 'spoon' and, as long as it was good enough and you managed to persuade some online IT publications to give it a test drive and a review, it could be the next best thing.
Truthfully, the acronym approach (whilst still fairly used) is a little outdated. You see websites, frameworks and even programming languages coming out in recent years with (often irrelevant) catchy words, which go down a storm. Generally acronyms usually throw extra words in there to turn the acronym into a word, as I showed in post #2 (simple, elegance, web... all annoying buzz words which are used all too much in the names of things).
A good example of not needing a catchy name is XKCD. Unpronounceable as a word, a bit of a pain to remember at first if you're dyslexic and completely and utterly meaningless. However, its one of the largest websites (if not the largest) of its kind.
The hardest bit is coming up with a good description. Once you have a fully unique viewpoint, then the name will just fall out.
Using your initial post (turning on 'rip apart' mode for a minute):
- PHP frameworks are most commonly designed with 'every possibility' in mind. Not unique here, in fact possibly a limitation if aimed at beginners.
- Simple - that's covering about 60% of frameworks out there. You have something with beginners though*
- Using MySQL, possibly migrating to other databases in the future - most frameworks. [*]PHP templating - again very common, though in beginner-oriented frameworks I'd question it.
Turning rip-apart mode off now. I dislike that train of thought. Anyway...
- Your REAL focus here is that it is designed for beginners. It has clear framework code, in that you've sacrificed optimisation for clarity. As such you can market it like that. Don't be afraid to call it what it is. If you call it 'dummy', it might even appeal to beginners who want to build something but aren't confident about it. Call it 'Crutch' to appeal to people who just want a helping hand. Call it 'Curve' if you want to outline its benefits in its approach to a beginner's learning curve.
Apologies for the double follow up. FirstStepMVC is in the right direction. Maybe PFS (PHP First Step).
The name of the software will be its namespace - PFS doesn't conflict with any project I know of. Also, seeing it over and over in the namespace declaration isn't going to be too annoying (I worry that something blatantly beginner titled would be a turn off).
I should also mention a secondary goal of the framework - to provide rudimentary CMS services to small clients. In my experience over the last 7 years I've had many clients that Joomla and Drupal prove to be GROSS overkill for. They want a product page they can update, but once they do they might not touch it for months at a time. The pages as a result remain mostly static.
To that end the framework is designed to cache when possible, and when used with a client site like that it saves overhead by making static the whole site except the admin pages.
I gather your not asking for help on how to market the thing, so I will steer clear of any such discussion.
Perhaps a marketable name such as StepONE or FirstStepMVC would be appropriate?
Frameworks are a tough sell. Most people will not use it unless the marketing site itself looks awesome, not to mention the documentation being stellar and the code being crisp, tested and deployed in real situations.
I personally love downloading frameworks, looking at how others define MVC and other such patterns. It's a great learning experience.
I have no idea how to market it to be honest.
I would want to shy from a name that would make people shy away from deploying it.
The unique selling proposition is that framework exists to prepare beginners for might I say more robust and mainstream solutions. In that way the framework acts like training wheels to help one more to the next step. If you want a name that is meaningful to the purpose I would recommend developing ideas based on the unique selling proposition, not an acronym that nobody within the primary target audience will be able to understand. Just some thoughts.
Simple Web-Event-Driven Elegance.
The logo wouldn't be hard to come up with either.
Thanks everyone. I think I have something. Still doing research to see if its taken.