There’s an article on wikipedia comparing different web frameworks:
The scope and breadth of these frameworks is quite vast, and it would be nice to do a more thorough comparison, especially among the ones using the same language.
ASP.NET for example, has no less than six different web frameworks; quite daunting if you wanted to start your own project. The variety of choices makes it hard to settle on one web framework to use. It’s similar to Joomla vs Drupal vs WordPress; they’re all good CMS but for different purposes depending on how much flexibility and usability you want.
Flex is the widely used for flash applications; Lift vs Grails is much like the comparison of Scala vs Groovy; both has its ups and downs. Ruby on Rails is still quite popular, but honestly the language itself isn’t as widely used as Java, PHP, or Python. As for those three languages, there’s just way too many frameworks there to choose from. PHP programmers have the choice of Zend vs Cake vs Symphony vs Codeignitor, etc while Java and Python have a plethora of different frameworks to choose from. C++, ASP.NET and Smalltalk round out the rest, which aren’t as widely used for developing web applications as the former ones.
I think to pick one framework you think you can work with is a good thing, but the variety of frameworks out there makes it hard, because its hard to see which ones will last, and to which extent the community will support those frameworks. I hope that someday each language will have one or two frameworks, instead of having five or six; having less means having more support around it, instead of diversifying the architecture around several different ones.
Most have some themes in common; Ajax, JSON+REST for HTTP services, support for open source, a form of ORM, the MVC methodology, and some have my personal favorite practices including convention over configuration and don’t repeat yourself, which makes it easy to set things up. I’ll stick with PHP, Java and Python though, the three languages I’m most familar with. *Sigh* Decisions, decisions…
Edit: Ok, so I used Appfuse at first but runnig into too many errors when I try to integrate with Oracle and Maven. SpringSource has a bunch of other web frameworks including Grails (my personal fav, but no one knows Groovy) and SpringRoo. Gonna take a look at that later… and if not there’s still a ton more -_- (Seams? Cmon)
Edit: Frameworks are stackable. Example: Oracle->Hibernate->SpringRoo->GWT->Jquery/Prototype->Client, any idea how many frameworks are bundled in that? It gets more complicated when you debug.
Looks like some things are finally going under way. Our group accomplished alot on CSC318, and am almost done part 4. Good copy should be finished by tomorrow.
CSC301 I finally figured out how to get the canvas element to work with CAKE, and apparently zoom is fixed as well, so looks like there’s hope for us after all.
Finally, I thought of an idea for a wordpress proposal and will type up the rough draft tomorrow, I also emailed several mentors hoping they could back up my ideas. As you will notice, every time you reload this page (the blog page), the header image should change. That’s because I wrote a dynamic php script that’s embedded in the sidebar to change themes every time the page is loaded. That is one of the things I want to incorporate into my proposal, dynamic themes and fully functional theme frameworks. As times goes on, these dynamic themes should be switchable by users to customize their look and feel of the site, as well as different functionality.
More on this later, I need some sleep and there’s one economics question that my math can’t seem to solve and is bugging me. Grr. =/.
Firstly, this post is designed as a way to show off my Piclens slideshow capabilities so the amount of images present may be more than my previous posts.
Today, I’d like to talk to you (dear readers and stalkers of my blog) about an important issue in society today. We are experiencing, or perhaps in the midst of, a digital revolution, started in the 1980s and continuing through the present. Like the industrial revolution before it, this revolution has social, political, economic, military and industrial impact. Therefore as soldiers of the digital revolution, our first step would be to familiarize ourselves with the technology.
The first trend I want to talk about is the notion of cloud computing. Cloud computing is the concept of computing in a cloud – that is, the need for desktop applications is reduced to the concept of computing inside web applications. It combines the trends of software as a service and Web 2.0 in order to provide the needs of “anytime,anywhere” computing to everyone who has access to the internet. This development is another example of tying together other technological trends which I will explain further.
Social networking and media sharing
We live in an age where unprecedented access to information has become commonplace, where a person with no access to any books or institutions but can still obtain knowledge via the internet. This is vastly different then what we had 20 years ago and it is one of the most striking amenities of the digital revolution.
The propagation of social networking allows us to be connected to people all around the world, giving us a constant source of contact and with it, its good and ills. In a way, this proliferation of constant networking gives us citizens a deprivation of privacy but also a good platform for our social agendas. Even games allow us to network with others and to escape to a different life online, separate and distinct from our real lives, perhaps out of a need for social interaction or a need to have fun. Regardless, the social web is everywhere and it is hard to not be caught in it.
In addition, the advent of these web trends and techniques allows us to view photos, art,audio and video like never before. New sources of inspiration exist for users worldwide. The importance of ideas such as web, media and technological convergence is thus an important goal for the future. I will take a look at more of these devices later in this post, but take note that devices aside, all we need is a browser in order to enjoy the fruit of web convergence’s labors.
We as people, also have the right to refuse the invasion of our privacy for social purposes. But in this ever more interdependent world, are we losing contact with the outside world? Are games and social networking and MSN distracting us from the pressures of real life? Are we pressured to adopt the new trends of the time in order to stay ahead?
I think as this revolution sweeps over everyone, we have the urge to always stay ahead with new technology concepts.
Integration with real life
The extent of how online services affects us extends to our daily needs. Shopping online is now considered as a normal alternative to shopping at a brick and mortar retailer. Online matching making and sites such as craigslist blurs the online and offline way of interacting in a way that we have never seen before. Imagine that not so long ago, computers were limited to those with a high income and now it permeates our lifestyle where ever we go.
Open source development and hardware
So as we struggle to stay ahead of all these new innovations, developers such as myself will also have to learn new web programming techniques. This is also facilitated by new Open source software development, new web programming tools such as AJAX and Ruby on Rails, and new CMSs such as the one on this website. Even development methodologies such as Agile has been used to take advantage of fast-paced development. These new trends allow developers, alongside consumers to develop new tools to establish this notion of cloud computing and web convergence.
But as we move forward, we take notes from the tools of past so we can better serve the people of the future. These new tools for web programming, that allow developers to serve the consumers, must evolve as the trends evolve. But as I will explain further, this evolutionary process is not only for the web, but extends to the whole of this digital revolution.
We can also see the power of PCs grow exponentially over time, as predicted by Moore’s law. The evolution of all this should lead us to believe that in a few years time, the supercomputers of today will be the laptops and PCs of tomorrow. Such is the rate of technology that a brand new device would be rendered obsolete in a matter of weeks. Such is the convergence of technology that the smartphones of today were the PCs of yesterday, and even simple devices such as mp3 players can double as clocks and calculators. Such is the importance of internet to our daily lives that pocket-sized computers, tablets, and miniature laptops called netbooks (all with GPS functionality) were designed primarily to access the internet anywhere where there’s a wireless or cellular (3G) reception.
So looking from that standpoint, one must wonder when the digital revolution will end? Perhaps it never will, since over the past century, developments such as the automobile, airplanes, telephones, TVs, electric appliances and the PC which came about in only the last 20 years have come at a staggering pace in comparison to the previous centuries. Therefore, to wrap up this discussion, I think the question of “What’s the next big trend?” is not as important as “What trends will be the most influential and the most lasting?”, because just because a trend is big doesn’t guarantee it a status in this ever changing world. It’s the trends that have the most lasting consequences, the ones which act as ‘milestones’ in this digital revolution, that will shape the trends after it. So I encourage everyone to take part in computer science and software design and be a part of it, because although this field is constantly evolving, the rewards for experiencing the future are much greater. Thank you.