Groovy-Eclipse 2.0.0 Released!

 The most important new features that Groovy-Eclipse 2.0.0 provides are:
  • a new approach to compiling joint Groovy-Java code that does not require a stub compiler
  • advanced and extensible content assist
  • vast speed and memory improvements over previous releases
  • debug support
  • deep integration with the Java Development tools
Also, over 380 bugs have been addressed since the previous release. See the release notes. The Eclipse update site is available here:
  • http://dist.springsource.org/release/GRECLIPSE/e3.5/

Top 5 Web Technology Trends for 2009

Here are 5 additional web technology trends that will be important in 2009, in no particular order:
  1. Actionable Web Analytics as part of Enterprise BI and Dashboards.
    Web Analytics in many organizations is still an orphan with no real parents. Every department looks at its data but rarely does it get a strategic priority as an indicator of business trends and business intelligence asset. Investment in web analytics allows for customer insights, marketing spend ROI, conversion optimization and can impact the bottom line. As companies invest in sophisticated BI and analytical dashboards, web based data that is not transactional is usually not there. Integrating web traffic and user interest data into these systems can result in new insights and better actionable data.
  2. Phone Browser Compatibility
    Mobile computing is booming. About 13M iPhones were sold so far, and the support for location and browser that both the Android, Blackberry and all Microsoft based smartphones are offering, the percentage of traffic to web sites coming from phones is already in the 3%-10% range and will only increase. These are not the early 00’s WAP/WML jokes but full HTML browsers. Still, these special browsers are very different from the full version used on PC’s and Laptops. Bandwidth is still a challenge and their support for Rich Applications such as Flash and Silverlight is lacking. If you have a fancy Flash based site, your users will most likely not see a thing. Companies that have ignored it so far will have to adjust their sites or redirect mobile traffic to a mirror mobile optimized site.
  3. Location based services
    Continuing from the previous point, these mobile devices have GPS included and location based applications can drastically impact the user experience. Either as an iPhone/Android application or websites, the ability to share location information and get back location specific data about local services, other people, events, sales or anything else adds a new dimension to mobile applications.
  4. Increased reliance on open source infrastructure products and technologies
    Free is always a powerful word. Strong and reliable open source environments allow companies to create a robust e-commerce infrastructure with little or no proprietary platforms. The excellent Apache OFBiz for example, provides strong open source modules for e-commerce, ERP, CRM and many others. Alfresco offers a great content management solution and multiple open source development environments are available. The case for Enterprise Open Source web environment is getting stronger every day.
  5. Approaching Social Networking and Collaboration in a Strategic way
    Everyone now realizes the power of social networks and is rushing to get in, establish a FaceBook page, a Twitter account and get’s their PR to sprawl the web to “engage” people. Internally, companies are haphazardly trying various collaboration methods. We see a maturity process happening through 2009 that will force companies to look at all their collaboration points in a strategic way and tie them to business goals and processes. This new approach will transform them from toys to tools and will establish their place and value in the new order.

Difference between compiler and interpreter

 http://www.mattcutts.com/images/compiler.jpg



http://wyvern.cs.uni-duesseldorf.de/hhu-dynlang/figures/bytecode-interpreter-diagram.png 
A compiler first takes in the entire program, checks for errors, compiles it and then executes it. Whereas, an interpreter does this line by line, so it takes one line, checks it for errors and then executes it.

Eg of Compiler - Java
Eg of Interpreter - PHP


Explanation 2:
interpretor translate the program line by line and compiler translate the entire program interpretor requires less memory and compiler requires more memory

definition of compiler:
Compiler is a program that translates a computer program written on one computer language to another computer language. A "compiler" is primarily used for programs that translate source code from a high level language to a lower level language (e.g., assembly language or machine language). A program that translates from a low level language to a higher level one is a decompiler. A compiler for a relatively simple language written by one person might be a single, monolithic, piece of software. When the source language is large and complex, and high quality output is required the design may be split into a number of relatively independent phases, or passes. Having separate phases means development can be parceled up into small parts and given to different people. It also becomes much easier to replace a single phase by an improved one, or to insert new phases later.

Interpreter is a program that translates an instruction into a machine language and executes it before proceeding to the next instruction..... A high-level programming language translator that translates and runs the program at the same time. It translates one program statement into machine language, executes it, and then proceeds to the next statement. This differs from regular executable programs that are presented to the computer as binary-coded instructions. Interpreted programs remain in the source language the programmer wrote in, which is human readable text. Interpreted programs run slower than their compiler counterparts. Whereas the compiler translates the entire program before it is run, interpreters translate a line at a time while the program is being run. However, it is very convenient to write an interpreted program, since a single line of code can be tested interactively.