A New Platform For Business Application Development
Anybody who has been involved in developing a business application, has already exhausted the long list of frameworks/libraries in JVM, .NET and Python platforms searching for something that reduces the costs while increases the development speed. However it's almost proved to me that one should seek the answer in less explored/popular platforms. Let's meet Pharo!
As a polyglot programmer, for the past 5 years, I've been trying many different languages and platforms to find one which would help me reach my goal: to write a business application (ERP) which can be run in hosted mode (SaaS) and is easily maintainable; and I had a short list of features/characteristics I was looking for in any of them.
Note: I will elaborate on software as a service (SaaS) business model soon in a separate article.
Note: I will elaborate on these criteria in a separate article soon.
Basically, Pharo is a Smalltalk with a vibrant and active community, a clean light-weight environment and access to all Smalltalk libraries/frameworks like
Please note that since Pharo is a Smalltalk, it enjoys every advantage Smalltalk has.
This means the syntax and fundamental blocks are not going to radically change anytime soon.
The syntax doesn't allow you to do any magic -unlike for example C/C++- and it's not bloated -unlike for example Java- and verbosity doesn't kill your concentration while it's not too concise -unlike for example Lisps- which means everybody can read and understand it.
And Seaside web framework takes this power even one step further. Debug/edit your server code right from the web if you need to. Just take a look at the picture below:
As you can see, it's all happening inside your browser. If you need to fix a bug, just change the code inside the browser, click the "Accept" button and voila! The server is running your new code.
Just imagine what you have to do to fix a bug in Java/.NET or even Python.
This is crucial for developing and maintaining a business software.
Introduction
Well, the title of this blog entry may be a bit confusing as the platform I'm going to talk about is not "new" at all! In fact, it's been around evolving far more than most of us know and could imagine.As a polyglot programmer, for the past 5 years, I've been trying many different languages and platforms to find one which would help me reach my goal: to write a business application (ERP) which can be run in hosted mode (SaaS) and is easily maintainable; and I had a short list of features/characteristics I was looking for in any of them.
Note: I will elaborate on software as a service (SaaS) business model soon in a separate article.
Criteria
To find my dream platform, I was looking for all of the following criteria in any platform I tried.Note: I will elaborate on these criteria in a separate article soon.
- Maturity: I don't need a platform that changes the fundamental stuff frequently.
- Clear and clean syntax: The syntax should disallow any magic and be easily understandable.
- Light-weight: I'm talking about the hosted model; an application that requires 4GB of RAM to run is of no use for me.
- Debuggable: The application and the platform should be debuggable; meaning that it should be easy to find the source of the problem and patch it.
- Runs on Linux/Unix.
Here Comes "Pharo"
From the Pharo website:"Pharo is a clean, innovative, open-source Smalltalk-inspired environment."Basically, Pharo is a Smalltalk with a vibrant and active community, a clean light-weight environment and access to all Smalltalk libraries/frameworks like
- the brilliant Seaside web framework
- GOODS OODBMS (object database)
- SUnit testing framework
- OpenGL bindings
- ORM
- and many more...
Please note that since Pharo is a Smalltalk, it enjoys every advantage Smalltalk has.
Mature
Smalltalk has been around for more than 30 years now and has been adopted and used by many corporations (like Fortune 500) and universities. Also The syntax has been standardised back in 1998 (ANSI 98).This means the syntax and fundamental blocks are not going to radically change anytime soon.
Clean & Clear Syntax
Belive me, Smalltalk code is very clean and readable. In fact, I was reading (and understanding!) core libraries at the end of day 1!The syntax doesn't allow you to do any magic -unlike for example C/C++- and it's not bloated -unlike for example Java- and verbosity doesn't kill your concentration while it's not too concise -unlike for example Lisps- which means everybody can read and understand it.
Light-weight
As someone who had been doing Java for many years, it was really shocking to find out the whole Pharo memory footprint was less than 100MB! Yes, 100 megabytes and I was doing web development! Can you imagine that with Java/.NET!?Debuggability
Pharo is debuggable to the core and I mean it. Whenever something goes wrong, you have the chance to inspect the stacktrace of the live system, make changes to the live system and let the live system continue operation with the new code without ever needing to shutdown the live system. Yes!And Seaside web framework takes this power even one step further. Debug/edit your server code right from the web if you need to. Just take a look at the picture below:
![]() |
Figure 1: Seaside - Live code debug/edit inside a browser |
Just imagine what you have to do to fix a bug in Java/.NET or even Python.
Linux/Unix friendly
It is indeed. Pharo supports Linux, Windoze and Mac. I don't have a Mac machine but I tested it on Linux and Windoze and it ran equally smoothly.Bonus
There are some points that add to the value of Pharo for a business application which I have not included in my criteria.Open Source
Pharo is open source under MIT license.Very Small Learning Curve
Pharo (and in general Smalltalk) is very easy to learn. When I decided to try Pharo, I knew absolutely nothing about it --I was attracted to Pharo by the Seaside web framework. I started reading Seaside Tutorial and to my utmost surprise I was already coding my first application in Pharo at the end of day 1 --add to this the simple syntax that let me read the code of core Pharo and libraries.Active & Helpful Community
As a newcomer, I had lots of questions about Pharo and how this or that works. Happily there's a mailing-list for such questions and it's a very active one (with an average of 20-30 messages per day). People are nice and try hard to help you.This is crucial for developing and maintaining a business software.
Comments
Post a Comment