One of the things that I wanted to accomplish this year, was to learn a new programming language. There are so many different languages that now are able to run on the JVM, that I didn't know exactly where I would focus my attention.
Originally, I started out with the idea that I wanted to learn Scala. One of the main reasons why I wanted to learn Scala is because it is a functional language. I have never worked with a functional language before. I was interested to see if solving problems in a functional manner, would inspire me to approach problems in Java differently. I downloaded it and started to go to the different tutorials online. To be honest, I was a little intimidated. The syntax is very different, and I don't think that I would be able to spend the amount of time necessary in order to get up to speed with this language.
The next language that I considered learning was JRuby. Of course, everyone has heard all of the hype around Ruby. However, I was more interested in learning more about JRuby because I have a ton of Java code / experience that I didn't want to lay waste. With JRuby, it is possible to use all of the fun Ruby syntax, but not have to give up your Java code / experience. Ultimately, I decided not to spend time looking into this language either. I think that I am still interested in picking this up in the future, but now I am even more interested in....
Groovy. I like Groovy. I like Groovy, a lot. One of the main reasons why I like Groovy so much, is because I have just started using it, and already I have been able to apply it to solve real customer requirements. We had a need to generate XML files based off of a Database query. Now, you can imagine how much Java code would be necessary in order to accomplish such a feat. By leveraging Groovy's integrated Sql features together with their Template approach, I was able to solve the problem very easily.
Another reason why I enjoy this language so much is because it was built with integration with Java in mind. If you cannot think of a Groovy way to get a task done, you can always import a Java class and use it. I didn't know the best way to format a Date in Groovy. However, in Java, I know that I can use the SimpleDateFormat. So that is what I did. I imported it at the top of my Groovy script, and used it. Simple.
What are you learning new this year?
Tuesday, February 12, 2008
Sunday, February 3, 2008
Groovy - Dynamic Language for Java Developers
Every Software Developer should be able to program in both a static and dynamically typed language. There are some situations that call for the flexibility of a dynamically typed language, and others where it makes sense to depend upon a statically typed one. I am more comfortable writing large scale enterprise applications in a statically typed language. However, when it comes to quick little scripts that I need to develop, and would probably never see production, it would make sense in those situations to write these programs in a more dynamically typed language. As a Java Developer, I am very interested in the Groovy language.
Groovy is a very interesting language because it was designed and developed to be compatible with Java. From many of the articles that I have read, you can change many of your *.java files and make it a *.groovy file and *presto* you have a groovy script. It also has the capability of leveraging your existing Java code base. Using Groovy, you can import any of your Java code, and leverage it in your Groovy script.
If you are interested in learning more, Guillaume Laforge has started a series of articles under the title "From Java to Groovy". Currently, there are two installments:
For something a little more advanced, please refer to John Carnell "Lightweight meets Heavyweight: Spring, Groovy and the Enterprise". In this article he demonstrates how to build a JMS message publisher and consumer using Groovy and Spring.
Enjoy.
Groovy is a very interesting language because it was designed and developed to be compatible with Java. From many of the articles that I have read, you can change many of your *.java files and make it a *.groovy file and *presto* you have a groovy script. It also has the capability of leveraging your existing Java code base. Using Groovy, you can import any of your Java code, and leverage it in your Groovy script.
If you are interested in learning more, Guillaume Laforge has started a series of articles under the title "From Java to Groovy". Currently, there are two installments:
For something a little more advanced, please refer to John Carnell "Lightweight meets Heavyweight: Spring, Groovy and the Enterprise". In this article he demonstrates how to build a JMS message publisher and consumer using Groovy and Spring.
Enjoy.
Monday, December 31, 2007
Eclipse Startup Options: showlocation
If you are like me, then you probably have multiple installations of Eclipse installed on your computer. For example, I have one install for all of my JEE development, and another for my RCP development. One of the hardest things that I have found is distinguishing between which instance I am currently running.
Recently, I learned about the Running Eclipse startup option called "showlocation". By leveraging this startup option, you will always know which version of eclipse you are running because it will show you your workspace in the Eclipse title bar. Even better, if you are using at least Eclipse 3.2 - which was last year's Callisto's release, you can pass a String to describe the instance that you are currently running, and that will be shown in the Eclipse Title bar instead of the workspace.
Here is how I have my shortcuts currently configured:
JEE version
C:\myPrograms\Eclipse\eclipse-jee-europa-win32\eclipse\eclipse.exe -showlocation JEE -refresh -vmargs -Xms256M -Xmx256M
RCP version
C:\myPrograms\Eclipse\eclipse-rcp-europa-fall2-win32\eclipse\eclipse.exe -showlocation RCP -refresh -vmargs -Xms256M -Xmx256M
Share and enjoy...
Recently, I learned about the Running Eclipse startup option called "showlocation". By leveraging this startup option, you will always know which version of eclipse you are running because it will show you your workspace in the Eclipse title bar. Even better, if you are using at least Eclipse 3.2 - which was last year's Callisto's release, you can pass a String to describe the instance that you are currently running, and that will be shown in the Eclipse Title bar instead of the workspace.
Here is how I have my shortcuts currently configured:
JEE version
C:\myPrograms\Eclipse\eclipse-jee-europa-win32\eclipse\eclipse.exe -showlocation JEE -refresh -vmargs -Xms256M -Xmx256M
RCP version
C:\myPrograms\Eclipse\eclipse-rcp-europa-fall2-win32\eclipse\eclipse.exe -showlocation RCP -refresh -vmargs -Xms256M -Xmx256M
Share and enjoy...
Wednesday, December 19, 2007
Is Mac redefining PC?
Apple may be well on the path to redefine the term PC. For years now, PC has been synonymous with Windows machines - instead of it's true definition of Personal Computer. With the current advertisements from Apple, we may have to adjust our definition of PC.
Don't you just love the new Apple commercials, comparing Windows and the Mac? Whoever is heading up this marketing campaign is earning every dollar of their salary and then some. I am curious to how many people will be receiving their first Mac this year for Christmas. I am pretty sure that I will be part of the crowd.
For years now, I have wondered why so many of my software developer friends prefer Macs to Window machines. I have had the stereotype that Macs were used by people who enjoy web development and graphic design. I always assumed that these types of people was the crowd that Macs were appealing to. My perception changed when I found some hard core Java developers who prefer the Mac environment to Windows. Then, I watched the demo of the latest release of OSX, Leopard, and I was hooked. The features and functionality that comes standard with this OS is simply amazing, and it appeals to everyone, not just software developers.
What does this mean to me? If I am right, and more people start switching from Windows to Mac, then that means that the overall Windows community is going to decline over time - windows specific languages, may not be the best investment of time and effort in learning. The current perception is the .NET should be used to develop desktop applications on the desktop while Java is more suited on the server. In the long run, maybe Java will not only reign supreme on the server side, but also on the desktop.
What are your thoughts?
Don't you just love the new Apple commercials, comparing Windows and the Mac? Whoever is heading up this marketing campaign is earning every dollar of their salary and then some. I am curious to how many people will be receiving their first Mac this year for Christmas. I am pretty sure that I will be part of the crowd.
For years now, I have wondered why so many of my software developer friends prefer Macs to Window machines. I have had the stereotype that Macs were used by people who enjoy web development and graphic design. I always assumed that these types of people was the crowd that Macs were appealing to. My perception changed when I found some hard core Java developers who prefer the Mac environment to Windows. Then, I watched the demo of the latest release of OSX, Leopard, and I was hooked. The features and functionality that comes standard with this OS is simply amazing, and it appeals to everyone, not just software developers.
What does this mean to me? If I am right, and more people start switching from Windows to Mac, then that means that the overall Windows community is going to decline over time - windows specific languages, may not be the best investment of time and effort in learning. The current perception is the .NET should be used to develop desktop applications on the desktop while Java is more suited on the server. In the long run, maybe Java will not only reign supreme on the server side, but also on the desktop.
What are your thoughts?
Thursday, December 13, 2007
OSGi on Software Engineering Radio Podcast
The Software Engineering Radio Podcast if featuring an interview with Peter Kreins and B.J. Hardgrave on the subject of OSGi. For many people who ask me what OSGi is and why would someone want to use it, this is a great place to start. Enjoy.
Monday, November 19, 2007
GLSEC was awesome...
The Great Lakes Software Excellence Conference was great!!! I had a chance to meet some of the technical talent here in West Michigan (and beyond), and learn a lot of new and interesting things regarding technology and Project Management.
One of the greatest parts of the conference was listening to Bob Martin speak. I have never heard him speak before, and he is great. He is very passionate about software development. I took away many of nuggets of wisdom from his talk titled Clean Code, and I will plan to share some of them in future posts.
Overall, I think that my talk, Classical vs. Mockist Test Driven Development was well received. I was definitely nervous, especially since I had to follow Bob Martin's Clean Code talk. In the end, however, it is very natural to talk about a topic that you enjoy - in this case Test Driven Development.
I also attended the first day of tutorials offered at the event. I spent the day with Chad Fowler, learning Ruby and Ruby on Rails. I was really impressed with what is capable with Ruby on Rails. To be able to whip out web applications so fast with such little effort, is definitely enticing. If you are a Java Developer, I highly recommend you taking the time to look at this language. I believe that in the future, dynamic languages on the JVM is going to become more and more popular, and it will be important to know these concepts in the future.
Standing ovation to all of the people who dedicated so much time to the GLSEC making this event the success that it was. I am definitely looking forward to it next year.
One of the greatest parts of the conference was listening to Bob Martin speak. I have never heard him speak before, and he is great. He is very passionate about software development. I took away many of nuggets of wisdom from his talk titled Clean Code, and I will plan to share some of them in future posts.
Overall, I think that my talk, Classical vs. Mockist Test Driven Development was well received. I was definitely nervous, especially since I had to follow Bob Martin's Clean Code talk. In the end, however, it is very natural to talk about a topic that you enjoy - in this case Test Driven Development.
I also attended the first day of tutorials offered at the event. I spent the day with Chad Fowler, learning Ruby and Ruby on Rails. I was really impressed with what is capable with Ruby on Rails. To be able to whip out web applications so fast with such little effort, is definitely enticing. If you are a Java Developer, I highly recommend you taking the time to look at this language. I believe that in the future, dynamic languages on the JVM is going to become more and more popular, and it will be important to know these concepts in the future.
Standing ovation to all of the people who dedicated so much time to the GLSEC making this event the success that it was. I am definitely looking forward to it next year.
Wednesday, October 24, 2007
Presenting at GLSEC
Great news!!! Yours truly was selected to present at this year's Great Lakes Excellence Software Conference to be held November 7th and 8th in Grand Rapids, Michigan. I will be presenting on the topic of Classicist or Mockist Test Driven Developer - a continuation / explanation of my original blog post of the same name.
Although I have spoken many times at different local user groups, this will be the first time that I have submitted and been selected to speak at a conference. I have found the whole experience to be quite rewarding thus far - submitting the talk to the council, receiving the acceptance letter /email, and preparing for the presentation.
In addition to being excited about speaking at the conference, I am also excited about meeting and networking with so many wonderful technology professionals. Some of the people you may recognize that are going to be at this event include Bob Martin, of Object Mentor and Chad Fowler the Ruby Maestro. Chad Fowler wrote a very interesting book titled My Job Went to India: 52 Ways to Save Your Job. I have not had a chance to pick up my copy yet, but I did get a chance to listen to a podcast where he was interviewed about his book, and was very impressed with his thoughts and ideas.
I hope that you are all able to go to the conference. I am sure that it will be a great time.
Although I have spoken many times at different local user groups, this will be the first time that I have submitted and been selected to speak at a conference. I have found the whole experience to be quite rewarding thus far - submitting the talk to the council, receiving the acceptance letter /email, and preparing for the presentation.
In addition to being excited about speaking at the conference, I am also excited about meeting and networking with so many wonderful technology professionals. Some of the people you may recognize that are going to be at this event include Bob Martin, of Object Mentor and Chad Fowler the Ruby Maestro. Chad Fowler wrote a very interesting book titled My Job Went to India: 52 Ways to Save Your Job. I have not had a chance to pick up my copy yet, but I did get a chance to listen to a podcast where he was interviewed about his book, and was very impressed with his thoughts and ideas.
I hope that you are all able to go to the conference. I am sure that it will be a great time.
Subscribe to:
Posts (Atom)