I like Vasanth Dharmaraj's post Learning Groovy for a couple reasons. One obvious reason that I like this post is that Dharmaraj specifically references my blog. However, even if he had not done so, I still like it for a second reason: his description of his own experience with Groovy articulates what I have witnessed that many Java developers (includes myself) who aren't big on scripting feel when starting to use Groovy. He starts his post with this: "I have dabbled a bit with scripting languages before but for some reason never really used one long term. I think that might change with Groovy." The remainder of the post provides examples of how he was able to use Groovy to accomplish scripting tasks concisely. I have come to the same conclusion as Dharmaraj regarding Groovy use in a development environment: "Come to think of it Groovy could have saved me a ton of time I spent in writing small tools to help me in development."
Ten One Liners in Your Favorite Language
There was an interesting explosion of blog posts covering examples in different programming languages of single line solutions. It all started with the Scala post, but led to several other languages being covered as well. I found them interesting enough to motivate me to write the post Ten Groovy One Liners to Impress Your Friends. Here is a rundown of the posts that I am aware of as of this writing:
- 10 Scala One Liners to Impress Your Friends
- 10 CoffeeScript One Liners to Impress Your Friends
- 10 Clojure One Liners to Impress Your Friends
- 10 Ruby One Liners to Impress Your Friends
- 10 Python one liners to impress your friends
- F# One liners to impress your friends
- 10 Haskell One Liners to Impress Your Friends
- 10 C# One Liners to Impress Your Friends
- Arturo Herrero's 10 Groovy One Liners to Impress Your Friends
- My Ten Groovy One Liners to Impress Your Friends
Because these posts generally implement the same solution in the different languages, it is an entertaining and enlightening experience to read the syntax and library use in the various languages and compare them. Although I don't use one-liners like these regularly, being able to read and compare them helps to learn more about my favorite languages as well as more about languages I know very little about.
A recent Reddit post made me aware of the existence of CS-Script. The main page for CS-Script describes this project:
CS-Script is a CLR (Common Language Runtime) based scripting system which uses ECMA-compliant C# as a programming language. CS-Script currently targets Microsoft implementation of CLR (.NET 2.0/3.0/3.5/4.0) with limited support on Mono. CS-Script combines the power and richness of C# and FCL with the flexibility of a scripting system. CS-Script can be useful for system and network administrators, developers and testers. For any one who needs an automation for solving variety of programming tasks.
From this description, it sounds like CS-Script exists to meet the same needs in the C# area that Groovy serves in the Java area.
PHP Performance Tips
Eric Higgins has posted PHP performance tips which details "changes that you can make very quickly and painlessly" to "improve the performance of your PHP scripts." He covers things like upgrading the version of PHP and profiling PHP.
Windows Command Line Arguments
The post Everyone quotes command line arguments the wrong way discusses "popular solutions" that are "clear, simple, and wrong" before providing a "correct solution." This is very useful information for running Groovy and other scripts in a Windows environment.
DZone DevOps Site
DZone has added a new "Zone" called DevOps Zone with the subtitle "Bridging the Gap Between Development and IT." This new DevOps Zone features a graphic with overlapping circles that indicate "DevOps" is the integration/overlap of Development/Software Engineering with Quality Assurance and Technology Operations. It also includes a link to the What Is This Devops Thing? post.
C++/Java/Go/Scala Performance Compared
The Loop Recognition in C++/Java/Go/Scala paper generated a lot of buzz on the web recently. As its title suggests, it covers "a well speciﬁed, compact benchmark in four programming languages, namely C++, Java, Go, and Scala." The "Conclusions" section of the paper reaffirms what many of us already believed about the various languages, but it is interesting to see the methodology used and to read the observations. Nothing about it is changing my current language plans.
Oracle Contributes OpenOffice.org to Apache
It was announced this week that Oracle has proposed contributing OpenOffice.org to Apache Software Foundation. Many OpenOffice users are welcoming an Apache 2 license.
The post Bing, Google and Yahoo! announce Schema.org calls out the recent announcement that the three dominant search engine vendors are collaborating on an initiative to "create and support a common set of schemas for structured data markup on web pages." The stated purpose for Schema.org is:
A shared markup vocabulary makes easier for webmasters to decide on a markup schema and get the maximum benefit for their efforts. So, in the spirit of sitemaps.org, Bing, Google and Yahoo! have come together to provide a shared collection of schemas that webmasters can use.
In its current form, Schema.org's sole supported format is HTML Microdata. The Getting Started page states: "You use the schema.org vocabulary, along with the microdata format, to add information to your HTML content. While the long term goal is to support a wider range of formats, the initial focus is on Microdata."
In the post The False Choice of Schema.org, Manu Sporny acknowledges that the Schema.org announcement "may sound good on the surface," but then argues that "it is very bad news for choice on the Web." Sporny starts with the disclaimer that he is biased and acknowledges his interest in RDFa, but states that he makes the arguments outlined in his post because he has "been around long enough to know when freedom of choice on the Web is being threatened."
Android Development: Learn About Android
There is a relatively new blog called Android Development that in its two posts so far has covered the basics of beginning learning and doing Android development: Setting Up Your Android/Java Environment and Getting Familiar with Java/Eclipse. These first two posts make liberal use of screen snapshots and are likely a good starting point for someone new to Android development.
JCP.next Makes Progress
The so-called JCP.next initiative (JSR 348 more formerly known as "Towards a new version of the Java Community Process") received unanimous approval from Executive Committee members in its JSR Review Ballot. This is an early step in delivering on changes to the Java Community Process as described in the Oracle press release.
The posts referenced above cover a wide variety of topics that I have found interesting in the past week.