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.
Sunday, February 3, 2008
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.
Friday, September 7, 2007
Object Oriented or Still Procedural Driven?
Well, according to Chris Richardson, I am not the Object Oriented Developer that I thought I was. In his talk at SpringOne 2007, he challenged his audience to question whether they are actually doing OOD (Design / Development) or if they have carried over the habits of Procedural Programming into the Java language.
I must admit, he has made me think. Many of the points in his article reflect the types of projects that I have been on - heavy service objects full of business logic while the domain objects are basically reduced to Value Objects / Entities to persist without any business logic being in them. His argument is that this is fundamentally procedural programming brought into an Object Oriented programming language. Instead, we should have the business logic contained within the domain model (which includes both business logic and state) and the service objects that use them are a thin layer around the domain model that clients delegate to.
Overall, I think that this may be a "purist" position on OOD, and I am suspect of the claims of ease of maintainability and supportability are really true. Of course, I am speaking from the position of not having any experience with this style of programming - but I am very curious about it. Ultimately, I do believe that he is promoting the Domain Driven Design approach to software. Does anyone have any experience with Domain Driven Design? Can anyone vouch for this style of programming?
I must admit, he has made me think. Many of the points in his article reflect the types of projects that I have been on - heavy service objects full of business logic while the domain objects are basically reduced to Value Objects / Entities to persist without any business logic being in them. His argument is that this is fundamentally procedural programming brought into an Object Oriented programming language. Instead, we should have the business logic contained within the domain model (which includes both business logic and state) and the service objects that use them are a thin layer around the domain model that clients delegate to.
Overall, I think that this may be a "purist" position on OOD, and I am suspect of the claims of ease of maintainability and supportability are really true. Of course, I am speaking from the position of not having any experience with this style of programming - but I am very curious about it. Ultimately, I do believe that he is promoting the Domain Driven Design approach to software. Does anyone have any experience with Domain Driven Design? Can anyone vouch for this style of programming?
Subscribe to:
Posts (Atom)