Have a suggestion?
Click here to suggest a blog item.
Newsletters Archive
Catch up with DonationCoder by browsing our past newsletters, which collect the most interesting discussions on our site: here.
Editorial Integrity
DonationCoder does not accept paid promotions. We have a strict policy of not accepting gifts of any kind in exchange for placing content in our blogs or newsletters, or on our forum. The content and recommendations you see on our site reflect our genuine personal interests and nothing more.
Latest News
July 2, 2024
Server Migrations Coming
- Donationcoder server migration is slowly proceeding, expect some hiccups as we get all our ducks in a row..
July 19, 2022
Software Update
Jan 3, 2022
Event Results
May 13, 2020
Software Updates
Mar 24, 2020
Mini Newsletter
Dec 30, 2019
Software Updates
Jan 22, 2020
Software Updates
Jan 12, 2020
Newsletter
Jan 3, 2020
Event Results
Jan 2, 2020
Software Updates
Dec 30, 2019
Software Updates
- Automatic Screenshotter v1.16
- Screenshot Captor v4.35 beta
- Find and Run Robot v2.238 beta
- Clipboard Help and Spell v2.46.01
- LaunchBar Commander v1.157
- Mousers Media Browser v2.0
- MultiPhoto Quotes v2.09.1
- DiscussionList for Android v1.08
April 27, 2019
Software Updates
Feb 26, 2019
Software Updates
Feb 23, 2019
Software Updates
Feb 14, 2019
Software Updates
Jan 6, 2019
Event Results
Dec 2, 2018
Software Updates
Nov 13, 2018
Software Releases
July 30, 2018
Software Updates
June 24, 2018
Software Updates
June 6, 2018
Software Updates
Apr 2, 2018
Fundraiser Celebration
Apr 2, 2018
Software Updates
Feb 24, 2018
Software Updates
Jan 14, 2018
Major Site News
Jan 10, 2018
Event Results
Latest Forum Posts
May we recommend..
Screenshot Captor is our most well-known tool. A best-in-class tool for grabbing, manipulating, annotating, and sharing screenshots. It's different from other screenshot utilities in several notable ways...
Our daily Blog
This page spotlights the most interesting posts collected from our forum every day.
You are viewing a specific blog item. Click here to return to the main blog page.
Mewlo Web Framework Blog Entry #1Mewlo Web Framework Blog Entry #1 - August 12, 2013
For my first entry in the Mewlo blog, it probably makes sense for me to discuss history and motivations. I've been programming for 30+ years. My "native" programming language is C++, and I'm an unabashed proponent of object-oriented programming. As much as I enjoy traditional application/desktop coding, more and more I find that the large project ideas I come up with involve creating custom "community" web sites and services -- that is, services where users sign up and create accounts and profiles online, create and share projects and interact with one another. The primary roadblock to creating a novel, custom community website, is building the "boring" foundational structures to support the site. The user and group accounts, the infrastructure to deal with spammers and logging, moderators, performance issues, etc.. There is an absolutely astounding amount of foundational work required to build a non-trivial community website -- in fact this foundational code vastly exceeds the "custom" new code that one would write for most custom sites. This foundational code is not just massive in size, but is full of difficult design decisions that effect efficiency, maintainability, and extensibility. It's code that is frequently implemented poorly in custom sites precisely because its the "boring precursor" work, not the heart of the new interesting ideas being implemented. It's code that gets reinvented over and over and over again on the web. Now, there are a great many web "frameworks" and extensible content management systems in active development, and these frameworks are attempting to provide SOME of this common infrastructure. Unfortunately, I have not found anything in existence which I have felt really good about using. That is not to say that there aren't some truly excellent frameworks available. The closest to my interests is probably Django, but Pyramid (also Python) is another strong choice. Php also has some strong contenders, like Drupal (a content management system but also arguebly a web framework), CodeIgniter, and Yii (which I was so fond of that I used as the starting point for my first version of this project). I'm less familiar with the Java, C#, and more esoteric frameworks. And of course there is Ruby on Rails. It's not that these frameworks aren't excellent -- it's that they have different philosophies and different goals. For the most part they are designed to be general purpose web frameworks that could be used to produce any kind of web service. And because of that, the user/group/moderator stuff does not get treated as a first-class concern. Such features are relegated to multiple competing plugins and addons, which are often out of date and don't work well with each other. Or they go too far in the other direction, and are primarily content management systems that are designed for non-coder administrators. What I have in mind is a framework that is somewhere in between these all-purpose lower-level web frameworks on one end, and dedicated content management systems on the other. Furthermore, my experience using frameworks and libraries has taught me that if you are coding something where the library can be used without modification, then it can be a huge time saver. But as soon as you need to make changes to the framework/library to bend it to get it to do things it wasn't strictly designed for, you pay an enormous cost in terms of code maintenance effort and code clarity. There is a real benefit to starting from scratch and building a framework with a singular vision and focus and consistency. While the initial coding task is huge -- I believe there is a very real potential reward in terms of producing a framework that is better designed to solve this particular program -- providing the foundational infrastructure for custom user-driven community web services. I also know from experience that even when there are some good existing tools, as a project matures it tends to find a useful niche and naturally differentiates itself from the alternatives. I am confident that over time, a new web framework like the one I am describing would find a place for itself separate and apart from the other web frameworks. Creating such a large project from scratch, and being able to control exactly how things are structures and organized, is one of the most enjoyable things a programmer can be involved in. A good part of the motivation for working on this project is the pure enjoyment of that. As a programming project -- this is a huge challenge and a giant project. This is the second time I've actually started working on it. The first time I started was about a year or so ago, under the name "Yumps", written in PHP. For the last month or so I have restarted the project, this time in Python, under the name "Mewlo". I don't love Python -- but I think it's currently the best choice for a large web framework (one of the aims of this project is to create not just the code base for this framework, but the object structures and API so that it could be ported to a new better language in a few years). I have created a GIT open source code repository for the Mewlo project and have begun uploading code there (see this thread for more info and links). What I would really LOVE to do is find some more serious Python coders who are interested in being part of the team creating this. It's a huge project and it's going to need all the help it can get. |
||