What MVC framework for web development?

Answered in Quora:

Q: Why should I learn the combination of Python/Django rather than PHP, JS/Node? I am a web designer moving to web development. What is the scope of Python/Django?

Python/Django is like learning Ruby/Ruby on Rails. The equivalent in the PHP world would be PHP/Drupal or PHP/Laravel. Equivalents in NodeJS is not Node/JS but NodeJS/Meteor or NodeJS/Sails. In all those examples above the first part would be the underlying web language, and the second would be a MVC framework on top of the language.

(There exist web frameworks that do not provide MVC but just the web server and HTTP request-response plumbing. This isn’t common in PHP since it is embedded in a web server such as Apache or nginx, but in Python it would be flask and in NodeJS it would be Express or Koa— these are sometimes referred to as “microframeworks.”)

However, unlike on the front-end with things like Vue.js, React/Redux and AngularJS, full-service MVC web frameworks have increasingly less utility on the back-end. This is because most the the advantage a framework provides is to do heavy-lifting of tedious but repeatable tasks that require a lot of code (very common when building a user interface) the bulk of which has been moved onto the client in web development. What value is a MVC’s templating system and router when both have moved into javascript on the client-side and all interactions are through an API? This becomes more extreme with standardization of the data interface (a la GraphQL) and the prevalence of more service-oriented architecture popularized by microservices or serverless FaaS architectures.

MVC web-frameworks still provide things such as a configuration management, a data object model and abstraction, but even those can get in the way as a website becomes more mature and this pre-fab approach becomes a hinderance to future scalability and optimization.

Also, when not building to scale or building proof-of-concept, a full MVC architecture will help you starting out on server-side web development because it does all the heavy lifting for you. So it might be good to start out with one, though YMMV (your mileage my vary).

Continue reading about the state of web frameworks after the jump

response to questions concerning the VisualEditor

I feel somewhat responsible for putting James Forrester on the hot seat concerning [this article][Visual Editor post] as I was the one who asked him to take out time from his busy schedule to explain some of the challenges faced by the team concerning the project and manage expectations somewhat concerning the release.

I hope it is clear from the post that the [VisualEditor project][] has to overcome many “firsts” to become a reality. Some of the ones mentioned include:

1. The criteria to support 290 languages is beyond the scope of support of existing software.
2. The VisualEditor UI needs to be programmable in such a manner that “free form” HTML editing cannot be permitted unless those edits can be synced with an internal, client-side “data model.”
3. The VisualEditor needs to leave room for extensibility in all fronts to adapt to the extensible nature of current WikiText capabilities like transclusions and templates.
4. A **two-way** representation needs to be created out of wikitext to HTML *back to wikitext*. This cannot be emphasized enough since before the [parsoid project][], it was actually unclear if this was even possible.
5. In both the parser and in all points of the VisualEditor, edits must be made in a manner that only manipulates the areas intended by the editor so was to not introduce “dirty diffs”.
6. All of this must be done in a forward thinking transactional manner to allow things like real-time collaboration, micro-edits, and the ability to walk through actions.

[Visual Editor post]: http://blog.wikimedia.org/2012/12/07/inventing-as-we-go-building-a-visual-editor-for-mediawiki/ “Inventing as we go: building a visual editor for MediaWiki—Wikimedia”
[VisualEditor project]: http://www.mediawiki.org/wiki/VisualEditor “VisualEditor—MediaWiki”
[parsoid project]: http://www.mediawiki.org/wiki/Parsoid “Parsoid—MediaWiki”Continue reading

Join Wikimedia (Senior LAMP Software Developer)

> “Imagine a world in which every single human being can freely share in the sum of all knowledge. **That’s our commitment.**”

If you don’t know already, [I left Automattic (WordPress)][leaving automattic] and have joined the [Wikimedia Foundation][wikimedia] ([Wikipedia][wikipedia]) in February. Before this, I haven’t posted our regular jobs because I wasn’t too sure how relevant they were, and because I got burned by the Jobvite system spamming [my twitter][twittertychay] followers with jobs. (I apologize profusely!)

This is despite the fact that our infrastructure is PHP ([obviously][mediawiki]).

Until recently the Foundation has had lacked mostly Javascript and UI engineers and not senior-level PHP ones. But I guess when I joined all of the good PHP developers left! j/k 😀

Currently and in the coming months, we will have had three positions open up for a Senior Software full-stack LAMP/PHP engineer. If you want to work for the 5th most popular web property in the world with nearly half a billion monthly uniques (and probably the largest single-install open-source PHP project), you should really consider working [here][wikimedia]

### Job description: [Senior Software Developer at the Wikimedia Foundation][jobvite]

Be a part of a newly forming team that will be tasked to entice new authors to Wikipedia. You will create responsive UI-driven software components in a highly iterative environment to support user engagement experimental features for Wikimedia websites using JavaScript, CSS3, HTML5 and PHP.

#### Some of the projects you’ll work on:

– Develop new experimental editor engagement features for Wikimedia sites.
– Extend MediaWiki software to support new experimental features.
– Participate in periodic technology meetings for design, development and testing of experimental features.
– Scrum master for development team.

#### Required Qualifications

– 5+ years of web development experience, including front-end development (JavaScript/jQuery/HTML5/CSS3), and server-side development using PHP/MySQL.
– 5+ years experience with rapid iterative software development processes, ability to quickly grasp requirements, derive UI workflow and develop functionality.
– Experience deploying code into high transaction volume production environments.
– Experience with A/B testing, cross-browser testing, debugging.
– Knowledge of Agile Methodologies such as Scrum and Extreme Programming (XP). ScrumMaster training preferred.
– Familiarity with version control systems/continuous integration tools (we use Git/Gerrit/Jenkins).
– Must be able to meet aggressive timelines, iterate rapidly, and switch rapidly across multiple projects.
– Strong communication skills: Must be able to communicate clearly and effectively; have strong written and oral communication skills as well as be able to collaborate easily within a cross-functional team.
– B.S. or M.S. Computer Science or related field preferred.

#### Extra Points if you have:

– Experience with MediaWiki and other open source PHP-based content management systems
– Experience in the Wikipedia community
– Experience contributing to a major Open Source project
– Understanding of free culture / free software /open source
– Experience working with online volunteers.
– Experience with wikis and participatory production environments.
– Good sense of humor
– Being creative, highly motivated, hard-working and ability to work effectively in multiple cultural contexts are great assets
– Comfortable working in an open, highly collaborative, consensus-oriented environment

Please provide URLs to any existing open source software work you may have done (your own software or patches to other packages) if possible. We’d love to see what you can do!

#### About the Wikimedia Foundation

The Wikimedia Foundation is the non-profit organization that operates Wikipedia, the free encyclopedia. According to comScore Media Metrix, Wikipedia and the other projects operated by the Wikimedia Foundation receive more than 482 million unique visitors per month, making them the 5th most popular web property worldwide. Available in more than 270 languages, Wikipedia contains more than 21 million articles contributed by a global volunteer community of more than 100,000 people. Based in San Francisco, California, the Wikimedia Foundation is an audited, 501(c)(3) charity that is funded primarily through donations and grants. The Wikimedia Foundation was created in 2003 to manage the operation of Wikipedia and its sister projects. It currently employs 130 staff members. Wikimedia is supported by local chapter organizations in 38 countries or regions.

[Apply by clicking on this link][jobvite] or contact me personally. 🙂

### Why working here is totally awesome

Wikimedia Foundation 90 second HR Video with Disclaimer

Transcoded from original created and uploaded to Wikimedia Commons by WMFer, Victorgrigas.

(It’s probably a good thing this was filmed before I joined the Foundation. A version with me in it would have been rated R due to strong language. 😀 )

You should seriously work here. 🙂

[leaving automattic]: http://terrychay.com/article/automattic-outro.shtml “Automattic Outro”
[wikimedia]: http://wikimediafoundation.org/wiki/Home “Wikimedia Foundation”
[wikipedia]: http://www.wikipedia.org/ “Wikipedia”
[twittertychay]: http://twitter.com/tychay “Me @ Twitter”
[mediwiki]: http://www.mediawiki.org/wiki/MediaWiki “MediaWiki”
[jobvite]:
http://hire.jobvite.com/Jobvite/Job.aspx?j=oHDiWfwi&c=qSa9VfwQ “Senior Software Developer—Wikimedia Foundation @ Jobvite”

Wikimedia 503 Accessibility Hack Day (May 19, SF)

[The Wikimedia Foundation][wmf] is organizing a mini hackathon related to
accessibility (ensuring [our software][mediawiki] is usable by people with
disabilities or special needs). We’re working with Lucy Greco, an
Assistive Technology Specialist at the Disabled Student’s Program of
UC Berkeley on this.

If you’re a front-end developer or UI/UX designer, you can help. We’ll
work with a user of Dragon text-to-speech, a user of
on-screen-keyboard technology, 2-3 users of the JAWS screen reader,
and 1 user of a Mac screen reader. So you can directly help improve
the experience for real people who encounter issues with [Wikipedia] and
our other sites.

The event will be at the Wikimedia Foundation offices ([149 New
Montgomery Street][wmf hq], third floor) on Saturday, May 19, beginning at 10
AM and ending probably in the late PM. Lunch and dinner will be
provided.

Please RSVP with Rachel Farrand rfarrand [at] wikimedia dot] org by May 15 if
you’re interested in attending.

[wmf]: http://wikimediafoundation.org/wiki/Home “Wikimedia Foundation”
[mediawiki]: http://www.mediawiki.org/wiki/MediaWiki “MediaWiki which powers Wikipedia”
[wmf hq]: http://maps.google.com/maps?q=149+New+Montgomery+Street&client=safari&oe=UTF-8&hnear=149+New+Montgomery+St,+San+Francisco,+California+94105&gl=us&t=m&z=16
[wikipedia]: http://www.wikipedia.com “Wikipedia”