Monday, January 7, 2008

Things to watch out for in 2008 for Java Developer- Part 1

Life of a seasoned Java Developer is never the same , I did hear this quote some time back "Life is like a Wave with Tides and currents"-I will add "Life of a Java Developer is like a Wave" not even everyday.He has to constantly keep an eye on emerging technologies ,which one to choose ,which one will further increase his caliber and which one will promptly for sure increase his contract tenure(if you are a consultant)and which one will keep him in the good eyes of his supervisor.Now that another year has started and with it comes different challenges to face for a Java Developer,so much development and so
many tools or frameworks are coming in J2EE environment,I choose to discuss and mention about the technologies which I think will take 2008 by storm and they are Scala,Groovy,Raven,Gant,Jython,Rake,Google Android not necessarily in that order.
The salient features of these technologies are :

1)Scala- Scala -http://www.scala-lang.org/ is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java.
Scala is the successor of Funnel, a language based on join calculus.

Scala is object-oriented

Scala is a pure object-oriented language in the sense that every value is an object. Types and behavior of objects are described by classes and traits. Class abstractions are extended by subclassing and a flexible mixin-based composition mechanism as a clean replacement for multiple inheritance.
Scala is functional

Scala is also a functional language in the sense that every function is a value. Scala provides a lightweight syntax for defining anonymous functions, it supports higher-order functions, it allows functions to be nested, and supports currying. Scala's case classes and its built-in support for pattern matching model algebraic types used in many functional programming languages.

Furthermore, Scala's notion of pattern matching naturally extends to the processing of XML data with the help of right-ignoring sequence patterns. In this context, sequence comprehensions are useful for formulating queries. These features make Scala ideal for developing applications like web services (external link).

2)Groovy http://groovy.codehaus.org/
"Groovy is like a super version of Java. It can leverage Java's enterprise capabilities but also has cool productivity features like closures, builders and dynamic typing. If you are a developer, tester or script guru, you have to love Groovy."

Groovy...

* is an agile and dynamic language for the Java Virtual Machine
* builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk
* makes modern programming features available to Java developers with almost-zero learning curve
* supports Domain-Specific Languages and other compact syntax so your code becomes easy to read and maintain
* makes writing shell and build scripts easy with its powerful processing primitives, OO abilities and an Ant DSL
* increases developer productivity by reducing scaffolding code when
developing web, GUI, database or console applications
* simplifies testing by supporting unit testing and mocking out-of-the-box
* seamlessly integrates with all existing Java objects and libraries
* compiles straight to Java bytecode so you can use it anywhere you can use Java
For further understanding, go through this article published in Java Lobby,it atleast gets you started on this language. http://www.javalobby.org/articles/groovy-intro1/

I tried to find out how different is this from Ruby,which is also Object oriented scripting language and then I came across some blogs/articles like this one by Jon Tirsén ,I must say I particularly liked this bit of info , "Groovy’s got a bunch of really nice Rubyesque features like closures, syntax for advanced data structures, inline strings and so on but it’s also very tightly integrated into the Java platform. You can compile a Groovy script directly into a .class file and that’s just going to be like any class in Java and vice versa you can reuse any Java class and library within Groovy"
3)Gant - http://gant.codehaus.org/

Gant is a build tool for scripting Ant tasks using Groovy instead of XML to specify the build logic. A Gant build specification is a Groovy script and so can bring all the power of Groovy to bear directly, something not possible with Ant scripts. Whilst it might be seen as a competitor to Ant, Gant uses Ant tasks for many of the actions, so Gant is really an alternative way of doing builds using Ant, but using a programming language rather than XML to specify the build rules.

Print this post

1 comment:

  1. oh my god.. I have never heard of these technologies at all. Really good stuff to see in this blog.

    ReplyDelete