October 08, 2008

A Change is on the Horizon

One of the noticeable differences between a great programmer and bad programmer is their interest in learning new languages.

Learning a new programming paradigm helps to stretch your mind and makes you a better programmer overall, even if you never directly apply any of the new techniques. Notice I’m talking about paradigms here, not languages. Learning C++ if you know Java may make you a lightly better programmer over all, but going from Procedural programming to OOP for example, can be a mind-bending experience. – Arsalan Zaidi

When a new programming paradigm is accepted, the entire landscape of computing changes. The very reason why Java dominated our industry in the last 10 years is because of the adaptation of Object Oriented Programming (OOP)

Now the trend is moving from OOP to what we call Dynamic/Meta Programming. The languages like Ruby, Groovy and Python belong to this category. They are already making a big impact on enterprise software development.

There is another trend is moving towards Functional Programming. This includes languages like Scala, Erlang and Haskell. They are interesting but suitable for writing scientific applications.

Start learning at least one or two languages from the above list. Even if you are not going to use them in near future, at least, it will help you to become a better programmer.

If you have any problem in selecting a new language, then few more to choose from

August 29, 2006

Enterprise 3.0: Rise of Application Intelligence

As defined by Ross Mayfield and Andrew McAfee, if the Enterprise 2.0 is “use of freeform social software within companies.”, I like to define what I call Enterprise 2.0, as Enterprise 3.0: The Rise of Application Intelligence.

  • Intelligence
  • Flexibility and
  • Ability to evolve

Will be the key of these next generation systems s

Some of the factors which going to drive these changes are

  • Conceptual change in data storage and retrieval techniques
  • Recent success of Meta-programming languages
  • Rise of Domain specific languages

Enterprise 3.0 is going to redefine, the way our software behave, and they way we store and retrieve information and the way we develop software

References:

The four application pillars of enterprise 3.0
Enterprise 2.0 vs. SOA
Enterprise 2.0, SoA And The Freeform Advantage
The Enterprise 2.0 industry discussion continues and evolves

August 18, 2006

Enterprise 2.0: Behind the Hype

Enterprise 2.0 is an evolving concept about the next generation enterprise software solutions. Since the name coined after the Web 2.0 and focuses on collaboration, many think that, implementing Web 2.0 (Blogs and Wiki) in enterprise is Enterprise 2.0.

Even though both share the common thread in terms of collaboration and social network, I believe Enterprise 2.0, is much bigger than blogs and wikis in enterprise.

From a long term strategic point of view, Enterprise 2.0 is an opportunity to

  • build an enterprise wide collaborative platform
  • build integrated meta model and centralised data store
  • re-imagine the way application behave

From a solution point of view, Enterprise 2.0 is about integration, integration of concepts, frameworks, and technologies, this includes

Web 2.0

  • Blogs
  • Wiki
  • RSS
  • Folksonomy

Enterprise 2.0

  • Service Oriented Architecture
  • Workflow Management
  • Content Management
  • Mashup
  • Instant Messaging
  • Enterprise Social Networks
  • Rule Engine
  • Data Versioning
  • Time Machine
  • Business Intelligence
  • Domain specific languages
  • VOIP
  • Mobile Devices
  • Application Intelligence
  • Software Agents
  • Data aware architecture
  • Task based semantic navigation

Some of the related posts are:

Enterprise 3.0: Rise of Application Intelligence

What form will Enterprise 2.0 take?

End of Software As We Know It

Building Next Generation Applications

Application Intelligence

What Is Web 2.0

Enterprise Web 2.0

Enterprise 2.0

My predictions are happening

I felt great this week for two reasons

1) A technology ‘Time Machine’ which I outlined 3 years back after a research titled “Application Intelligence”, is been implemented in Apple’s new ‘Mac OS X Leopard’, that too with a same name.

2) The recently released Gartner’s ‘Hype Cycle for Emerging Technologies’, included every aspect of my predictions which I have posted in the last few years.

End of Software As We Know It
Building Next Generation Applications
Application Intelligence

March 23, 2006

Bringing Innovation and Design

Though these words are spoken at every board room and described in every company’s vision statement, there is no clear process created so far to make that happen.

As Kjell Nordström and Jonas Ridderstråle describe in Funky Business

The ‘surplus society’ has a surplus of similar companies, employing similar people, with similar educational backgrounds, coming up with similar ideas, producing similar things, with similar prices and similar quality.

This truly applies to every organization big or small in the IT service industry, especially the Indian IT companies

The only way in which companies can differentiate themselves, is by bringing radical differences in what we offer to our customers in a proactive way.

This can be achieved only by brining a proactive culture which focuses on innovation and design.

Design Driven Development
(D3), is one of the promising methodologies ever created to make this happen.

I will be speaking on this topic “Bringing Innovation and Design through D3” on the coming Agile India 2006 conference.

February 06, 2006

SOA: Service Oriented Architecture

So much written on SOA and Web Service, unfortunately, again and again, we get it wrong. so I decided to put them in a simeple set of rules.

Rule 1: Service is an Interface

Service is an Interface, not a method; it is a way to open your application or your core engine to external application.

Think Service as a User Interface, before writing service, think about who is going to use it, how they are going to use it.

Rule 2: What is exposed is more important than how it is exposed

Give importance to define the document/data structure and service signature

Many times, we are end up arguing whether to expose services as a plain method call, RPC, or SOAP, instead of think about what exactly we are going to expose.

Rule 3: SOA is not just Web Service

Web Service is one way of exposing your services; don’t start your SOA implementation with Web Service in mind.

For more information on this line, read Common Misconceptions about Service Oriented by Architectures by Werner Vogels, CTO of Amazon.com

and What Is Service-Oriented Architecture

December 18, 2005

End of Software As We Know It

2006 is going to be a great year in terms of software technology; I see a great challenges and opportunities; here is my few predictions for 2006

> This is the year of integration, integration of technologies, frameworks, solutions.

> Content Management, SOA, Workflow, and Mobile Computing will be part of every enterprise application

> Enterprise applications will become the collaboration enabler, VOIP and Instant Messaging will be integrated as part of enterprise applications

December 17, 2005

Building Next Generation Applications

The success of next generation products will be defined, not only by the level of functionalities, it's by efficiency, usability, and intelligence. Applications should support the real work that users are trying to accomplish, making it easier, simpler, faster, or more fun.

The following are the promising technologies, which can provide the solid foundation for building next generation intelligent software products, 

> Smart Client Technology
> Application Intelligence
> Task based Semantic Navigation
> Data Aware Application Architecture

Smart Client Technology

Smart Client applications deliver the best of both worlds, combining the reach of the Internet with the power of local computing hardware. Smart Client applications have all the power and flexibility of the rich client applications, without compromising the ease of deployment and stability of the browser-based applications. Common attributes of Smart Client applications are that they:

> Consume Web services to provide richer functionality and up-to-date information to the business user.
> Take advantage of the local processing power of the client device.
> Can be deployed and updated from a centralized server.
> Can be used offline or online, ensuring that user productivity is not compromised even when the user is not connected.
> Are tailored to run on multiple devices, such as personal digital assistants (PDAs) and mobile phones.

Application Intelligence

Business applications must enable users to perform the tasks they need to undertake with effectiveness, efficiency and satisfaction. This can be achieved only by providing a better way to manage, process and deliver information more efficiently.

Some of the break through technologies and concepts, such as History, Intelligent Agents, Business Intelligence, and Composite Application Interface, can be used to build a better user experience.

Task based Semantic Navigation

This allows the user to navigate the application seamlessly, by providing easy navigation across different tasks. This is based developing application towards WYSIWYN (What you see is what you need) paradigm, instead of WYSIWYG (What you see is what you get) approach.

Data Aware Application Architecture

Application interfaces need to understand meta information about the data. Today’s applications are limited only to the, structure, data type, and size of the data they handle.

Data aware application architecture enables the applications to change the Formatting, Validations, Behavior, and Navigation dynamically, by the use of meta information about the data and structures.

August 10, 2005

Why Eclipse RCP is going to rule the world

For the last few days, I have been evaluating various platforms for an open source initiative, we are amazed with the framework and platform features of Eclipse RCP (Rich Client Platform).

Here is my five reasons, why Eclipse RCP is going to rule the world

  1) Web is not for everything

> All web based enterprise applications are failed in terms of usability
> Web has limited flexibility in terms of adding innovative ideas; everything is limited within the JavaScript boundary
> Even JSF+AJAX /ASP.Net+AJAX cant become a desktop alternative,
unless all the browsers replace JavaScript with Java

2) .Net Smart Client Replacement

> It has all the features of .Net Smart Client Architecture, including Update Manager and Avalon like XML based UI scripting 
> OSGi Framework based pluggable architecture
> Unlike .Net Smart Client, it support all the available platforms including Windows, Mac, Linux, Solaris, etc
> Also uses the SWT, a SWING alternative, which uses the native UI sub systems.

3) Tools and Support 

> Comes with brilliant Eclipse IDE and Plug-in Development Tools to support the RCP application development,
It took us only few mints to get the Hello World done.

4) Its Java

  > World is full of java programmers, finding a java resource is not an issue.

5) Above all, its Free.

> The entire Eclipse Platform, IDE, and Platform Development Tools are available as Open Source.

If you about to start an enterprise/desktop project then, Eclipse RCP is the way to go.

April 16, 2005

AJAX: A New Kid

Finally we have something, which can add a lot more flexibility and richness in developing web applications, AJAX is short form of Asynchronous JavaScript and XML, which uses JavaScript, XMLHttpRequest, and DOM to interact with servers side without refreshing pages. GMail and Google Suggest are the best visible example of this kind.

Already we have support from all the major Web Frameworks, including Struts, Tapestry, etc, also there is new Framework called Echo2 based on this principle.

Above all, I am looking forward to JSF and AJAX Integration which is planned for JSF 2.0. I think, this can change the way we develop web application altogether.

It is not a complete desktop replacement, but something better than before.
Links:
Ajax: A New Approach to Web Applications
Ajax using XMLHttpRequest and Struts
AJAX with Java 2 Enterprise Edition
JSF and AJAX
XMLHttpRequest in Practice

Speaking Events

Event Slides

October 2008

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

I work for