Got a news item suggestion?

Contact the editor,
Fikret Hasovic

News topic

 Morfik: Delphi for web applications
 Contributed by Paul & Fikret on 7 November 2005 08:15 AM

Morfik is a revolutionary new development tool for developing web applications. In the way it boosts developer productivity, Morfik is to web apps what VB 1.0 was to GUI development. After five years of development, Morfik is about to release evaluation versions and is getting noticed. The Firebird Database Community News had an e-mail interview with the Morfik team to hear more about the concept, the product and their choice for Firebird as the default database.

FDCN: Morfik has appeared out of the blue for most of us. We were interested to hear a bit more about the background of the team and the company:

1. Can you tell us more about yourself?

Morfik is an innovative software company which has the conviction that the world wide web - already a powerful vehicle for information transfer - is now itself being transformed into a new platform for running business software applications with both online and offline functionality. The availability of a sophisticated application development environment which addresses this opportunity will meet the needs of developers world-wide.

Morfik has created such an integrated development environment and brings a powerful set of new capabilities to web-application developers: the ability to easily, rapidly and reliably generate feature-rich AJAX-based software using a high-level programming language; the ability to create software applications which can also function offline; and the ability to create versions of core business desktop applications which are also web-empowered. We are confident that this unique Morfik technology will be the springboard for a significant advance to the "web-as-platform" paradigm.

2. How did Morfik (the product) get started?

The Morfik product, like many other products, came from a perceived need. The founders of Morfik wished to develop a fully-featured desktop database application that ran through the browser and if required could be remotely accessed. They did not find any tool that could do the job, so they decided to develop one.

3. How did Morfik (the company) get started?

Morfik, which is based in Tasmania Australia, came into existence in year 2000 when an experienced software architect with a successful track record in building development tools for CAD and a software engineer with extensive history in business applications came together to address the need for a development environment targeted at web browsers.

Morfik’s founders envisioned the current web as an embryonic form of a global operating system. They saw Morfik’s users as primarily being small businesses, developers and consumers and they wished to empower them so they could have a meaningful presence on the web. They believed in the concept of ‘smart clients’ on the desktop but saw it from the perspective of the user not the hardware. They believed that information should be owned by those who created it.

FDCN: There seems to be a steady move away from traditional C/S applications written in VB or Delphi, towards applications written for the web browser. "LAMP" and more recently "AJAX" did a lot to promote the concept: apparently browser based interfaces have become "good enough" for practical use.

4. How does Morfik fit into this trend?

We concur with your observations and Morfik’s unique technologies are consistent with this trend. In the context of user interaction, the history of computing is the story of the ascent of the user. In the early days of computing users were merely operators of giant electronic contraptions and gained no direct individual benefit from computing. Personal computers ushered in an era of individual engagement and people began to pursue computing for their own personal and professional benefit. The introduction of local area networks empowered the user to function both independently and as a member of a group. Finally the internet has placed the individual, and indeed - humanity as a whole, at the centre of computing.

As the station of the user was elevated so was the power of the user interface. The modern computing desktop provides an incredibly rich environment that harnesses the full power of the underlying hardware to present a responsive, dynamic and rich content for the user. The emergence of client/server computing more than two decades ago questioned the relevance of the desktop to the data and business logic tiers. Many argued that the desktop should be reduced to a presentation tier in a veiled attempt to turn back the clock and bring back the good old days of dumb terminals and mainframes. However history proved that native desktop applications that harness the power of local processors have an important role to play. Today, on the corporate and personal desktop we find word processors, spreadsheets, graphic design and a host of rich client applications.

With the shift of focus from the hardware to the user and universal spread of web browsers as the primary client application, the old questions have re-appeared and many are asking if we could use the browser for everything including word processing, spreadsheets or graphic design. There is no doubt that AJAX style of development as employed in Google Gmail and Google Maps demonstrate that we have been underestimating the capabilities of the browser. Indeed there are many desktop applications that can be ported to the browser platform and benefit from such a migration. However the primary criterion for such a move must be the scale and the social nature of the application. The importance of AJAX is not that it will allow us to port existing desktop applications to the browser but rather that it opens up new possibilities and ushers in a new class of applications that have no parallel on the desktop.

Recent initiatives that promote the concept of "smart client" seek on the one hand to extend the browser with the behaviour of a desktop application while at the same time extending desktop applications with the behaviour of web browsers. It is obvious that the proposed "smart client" is still tied to the existing desktop and seeks to extend and entrench its dominance by circumventing the simplicity of the original web protocols and binding the user to a large and complex proprietary framework.

Morfik supports the concept of the "smart client" and believes that existing technology can deliver such a client without sacrificing the simplicity and open nature of the web. The "smart client" must be able to function both on-line and off-line and, where appropriate, use the local processing and storage capabilities. The "smart client" must bring web applications to the desktop and take desktop applications to the web.

5. You are based in Australia, so is David Hughes, the inventor of LAMP. What is it about Australia and web apps?

InformationWeek (4 Oct 2005) suggested that " ... in Hobart, Tasmania, where you can build solid technology, free from the distractions of who's moving from Microsoft to Google or who is Oracle buying next." Well there is much merit to this statement. To develop Morfik JST, which is the technology behind the Morfik product, requires an environment where one is not driven by short term objectives. It took five years to develop Morfik JST. This is a VERY long time in Web timelines! This is not to say that innovation can not be done in shorter time blocks, but to develop rigorous software architecture with a solid foundation requires the availability of time as one of its ingredients.

6. How does Morfik differ from a (templated) PHP application?

PHP applications use a partition model where most of the application’s business logic is stored and executed at the server. Morfik puts more emphasis on the client side and by tightly incorporating a web server, a database engine and the content inside the application’s executable allows the application to run both on-line and off-line. This blurs the traditional boundaries between the server and the client.

Morfik applications are comprised purely of HTML and JavaScript and employ the AJAX model to provide a user experience similar to that of desktop applications.

7. Why is Morfik a good migration path for Delphi/C++/VB developers?

With the introduction of the AJAX model for improving the user experience inside a browser, the web has emerged as a serious alternative platform for business applications. Morfik supports the concept of the browser as a universal application platform and has developed a range of technologies to bridge the gap between web and desktop applications.

To allow developers to make the transition from the desktop to the web with minimum interruption and to help them leverage their existing language skills, Morfik has developed the JST. This ground-breaking technology empowers Delphi/C++/VB developers with a familiar IDE and language of choice to develop powerful applications without the need for mastering HTML or JavaScript.

FDCN: Your website explains a lot about JST, JavaScript Synthesis Technology, but is a little short on other background. We are interested in finding out what the main components are, what the developer experience is like.

8. Can you explain a little more how Morfik works?

Morfik is a professional Integrated Development Environment. The developer starts with designing the data layer in a visual environment similar to Microsoft Access or Microsoft Enterprise Manager. This is usually followed by the design of data base queries which again is carried out in a powerful visual environment. For the presentation layer the developer creates forms and reports using a familiar visual environment that resembles VB and Delphi. The application logic is written in the developer’s object oriented syntax of choice (currently Morfik Basic, Morfik Pascal, Morfik C# or Morfik Java). There is also provision for developing web services. Once the individual components are defined and written, Morfik compiles the application into a single executable that incorporates a web server and database engine. This application demonstrates the behaviour of both web and desktop applications. The user can access the application through a browser on-line, off-line, locally and remotely. During the development cycle the developer has access to a comprehensive suit of debugging, profiling and testing facilities. Morfik applications are comprised purely of HTML and JavaScript yet the developer does not need to master these languages.

9. In what language(s) have you written Morfik?

The current version of the software consists of several modules developed in a variety of languages including Object Pascal/Delphi, C/C++, Assembler and Morfik.

10. How does a compiled Morfik application interface with Apache? As a module?

Morfik has a flexible architecture which allows it to interface as required, including as a module.

11. On which OS platforms does Morfik run?

Morfik development environment itself is a Windows application. However, Morfik applications developed by Morfik JST can target Windows, Linux, OS X and FreeBSD. This is one of the reasons we have used Apache and Firebird as the embedded web server and database engine respectively.

12. Is the Morfik IDE a Morfik application?

No. Morfik is a cross-compiler and more. Morfik developers implement the business logic of their application in a high level-level object oriented language of choice. Morfik compiles this code into a JavaScript AJAX engine. This is a true compilation process which avoids boilerplates or code snippet libraries. The source code is put through a parser which includes a tokenizer and syntax analyzer. The parser output is then passed to a semantic map builder which creates a detailed semantic map that conveys the entire ‘meaning’ of the application - a highly effective technique in widespread use by CAD systems. Finally a synthesizer uses this map to create JavaScript code that is semantically identical to the original source and conveys the same ‘meaning’. This output is neither an executable in machine-code, nor a one to one translation of source code, nor a collection of predefined code snippets, but rather it is an accurate semantic equivalent of the programmer’s source code.

FDCN: Morfik is data-aware, perhaps data-centric. The default database in Morfik is Firebird (which comes bundled), but Morfik can also work with other databases. We would like to know more about this choice.

13. What was the 'killer feature' to select Firebird? Or was it the combination of it all?

Two reasons drove us in the first instance to use Firebird: the cross-platform compatibility, and Firebird’s high "power to weight" ratio, that is the fact that it is a powerful SQL server with very low maintenance requirements.

14. Did you consider other databases as the default option?

During the formative years of Morfik the work required to embed an SQL database was carried on concurrently across four different databases. Resource constraints resulted in one database being chosen, namely Firebird.

15. Which version of FB are you using? FB1.5, FB2.0, classic, super,...

Initially FB1.0 was embedded and more recently we have moved to FB2.0 super server (embedded, local and server)

16. Which database abstraction layer do you use?

We use IBO as the database abstraction layer. We use ODBC for the external data source. As we have a desire to run on multiple platforms we have stayed away from OLE DB and any COM-based technology. We are in essence ‘MS free’.

17. Are there things that you are missing in Firebird (if anything)?

FB2.0 has delivered most of the remaining features that we needed for the current stage of our development. What would be of assistance to the community as whole though is better documentation and support.

FDCN: As you know, Firebird is a community developed project. After a sluggish start, the community is picking up a lot of momentum in the last years and Firebird is increasingly recognised as the leading open source database choice.

18. What is your impression of the Firebird community?

Our direct interaction with the Firebird community has been limited, but it is clear that it is driven by a motivated cohort of individuals. Your efforts in developing Firebird has been of great assistance to Morfik as it has charted its course over the last five years.

19. What can the Firebird community do to help you?

Members of the Firebird community who are interested in the vision of the Morfik and/or interested in getting access to the pre-beta version of the product should consider joining the Morfik Pioneers Program. They will then be able to join in collaborative discussions with other Pioneers about the technical details of the technology, as well as conceptual issues relating to the evolution of the WebOS platform and new AJAX-based applications. Through these exchanges, Pioneers will be able to influence the direction of Morfik’s technology and to share insights about future directions for the web.

20. What sort of things would you be willing to do to help the community?

We believe that through the embedding of Firebird within Morfik we will be able to assist in the spread of Firebird especially in the growing paradigm of business applications for the web.

21. Will we see you at the Firebird Conference?

No, we will be unable to attend the Firebird Conference due to release commitments, namely the pre-beta Morfik WebOS Apps Builder in December.

22. Please, wish something to the Firebird community.

We would like to take this opportunity to thank the Firebird community for their passionate efforts to make Firebird a success and we wish them victory.

FDCN: Thank you for this interview and your kind words. The Firebird community prides itself in a 20-year track record of cutting edge innovation (blob's, multi-versioning, etc.) and we have been rewarded with a million-strong installed base. We look forward to documenting the rise to prominence of Morfik and are proud to be part of this breakthrough innovation.

© 2005 Firebird Database Community News

No comments have been posted for this story yet

Post a new comment

Your name:

Body text

Firebird WebRing:     Previous 5 Sites | Previous | Next | Next 5 Sites | Random Site | List Sites