What makes an expressive computer language?
Is fealty to a natural language an advantage for a programming language? Bruce Tate, in Beyond Java says "Ruby has a beautiful syntax. It reads like English, and it miraculously stays out of your way." But is that a good thing? Some of us in Mac circles have long bashed the straining-to-be-English AppleScript as "the world's only read-only programming language" (typically contrasting it with Perl, the insidious write-only language).
Fernando Lozano takes this assumption directly to task in his weblog, What makes programming languages easier?, in which he writes:
Natural language is imprecise, ambiguous, and its real meaning has to be inferred by the reader. Not all people who reads an article will understand exactly the same thing the author intended to tell them. This doesn't look to me as a good way to express computer instructions that should produce a reliable and predictable result.
In fact, being similar to a specific natural language has the potential to be a hazard to everyone who doesn't speak that language. Of this, Fernando writes:
Actually, I think we non-English speakers (I'm Brazillian, my language is Portuguese) have a little advantage over Americans and other native English speakers: we don't fall into the mistake of trying to read a computer program as if it were natural language.
The funny thing is, I don't even see the "English-ness" of Ruby, and it seems a peculiar trait if it does exist, given that Ruby's creator is Japanese. But back to the Fernando's main point: doesn't resembling a natural language make a computer language less precise? Or, to take a contrarian position to its extreme, does this mean assembly language is the most precise language, since it unambiguously specifies which instruction the CPU is supposed to execute in any given state?
Somehow the sense of what really matters is still out there, waiting to be defined. Do you know what it is? Or are we foolishly seeking the 100 year language?
Also in today's Weblogs,
Konstantin I. Boudnik has an in-flight epiphany in
Java. Quality. Metrics (part 3):
"Sitting here I got an idea, that "quality" isn't about something good for anyone. It's more about a reasonably acceptable level of things and services. It's like these two entries in a flight's menu and both are "reasonably" good."
In WebStart and 29 seconds, James Todd discovers and takes advantage of new Java Web Start features:
"It does pay to periodically revisit "what you (think you) know" and tune accordingly. As such, following are some findings I uncoverred based on real world, end user Java WebStart deployments of which the gory details are captured via the relevant developer list."
rickcarsonis working through Web Start problems in
In Re: Web start to actually work, he says:
"Turns out that my suspicion was correct. 1.5 won't run 1.4 classes at all because the class file format changes. So much for that. To solve my intallation woes (webstart not working, manually downloading and running the JREs from Sun not working, web start console crashing and refusing to start [seriously, the list goes on]), I fiddled with the J2SE parameter in the jnlp file. When I specified an exact version (ie stripped the + off the end of 1.4.0+)* then webstart would go and grab that version and install it and use it to run the app... yes, even the ones that were crashing if I downloaded them and ran the installer myself. Weird. Looks like you shouldn't install any of the JREs 'by hand'."
mthorntonhas seen some good results getting
File System information via JNDI:
"Having suggested this I have created a simple JNDI provider for the Windows file system that uses some JNI to obtain file information. Although currently very incomplete, I can test the performance against using java.io.File to enumerate the files and directories. The values of t are the elapsed time measured by System.nanoTime, while the percentages are the elapsed time relative to the faster code. Thus scanning using the JNDI context is 2.5 times faster than using File.list and File.isDirectory."
This week's Spotlight features the Jini Technology Starter Kit 2.1:
"Announced at the Ninth Jini Community Meeting, the Jini Technology Starter Kit 2.1 is the first to be released under the terms of an Apache license. The kit, available from the downloads page offers an implementation of JavaSpace05, along with ease-of-development and ease-of-deployment improvements, plus support for multiple IP addresses and URL-based deployments."
In Projects and
the 58th issue of the JavaTools Community Newsletter has been posted, featuring new projects that joined the community in the last week and a tip on how to use RSS for reading project forums and mailing lists. The newsletter also has an extensive round-up of tool-related news from around the web.
The Portlet Community is highlighting the SDN article Configuring IDE's for Portal Development and Deployment, which shows how to use Sun Java Studio Enterprise 8 and Ant to build a portal and deploy it onto multiple servers (such as development, staging, and production servers).
Portlets take center stage in Also in
"When speaking of Web application development today, it's difficult to ignore the overwhelming influence of the Portlet Specification (JSR-168). Even before the specification was formally finalized by the expert group, the Java world saw older CMS application implementing it and new portal software arrivals in the market. The proverbial "gold rush" to develop new applications as portlets, refactor existing applications to comply with the specification, and deploy new Web sites on portal software is not without good reason." In Are Portals the 'Magic Bullet' of Web Application Development?, Julien Viet and Roy Russo provide an overview of portals and portlets and point out some of their advantages.
"In the last three years, a number of new standards related to information
security have been developed. The most recognized of these are Web
Services Security (WSS), the Security Assertion Markup Language (SAML),
and the Extensible Access Control Markup Language (XACML)." Are those
three more standards than you currently understand? The dev2dev article
Demystifying Security Standards reveals the stories, purposes, and concepts behind each.
In today's java.net
News Headlines :
- JBoss Cache
- TrueZIP 3.X
- JDock 1.3 - Swing
- Krish Magic -
Convert Classes to Database
Registered users can submit news items for the
href="http://today.java.net/today/news/">java.net News Page using our
form. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href="http://today.java.net/pub/q/news_rss?x-ver=1.0">java.net News RSS
Current and upcoming Java
- October 25, 2005 - Detroit JUG Presentation: Object-Oriented Design: From Principles to Patterns
- October 28-30, 2005 - Northern Virginia Software Symposium
- November 1-4, 2005 - Enterprise Java Architecture Workshop: San Francisco
- November 4-6, 2005 - Lone Star Software Symposium 2005: Dallas Edition
- November 8-10, 2005 - JavaOne Tokyo 2005
- November 11-13, 2005 - Rocky Mountain Software Symposium 2005: Fall Edition
- December 7-10, 2005 - The Spring Experience 2005
- December 10-11, 2005 - Weekend With Experts
- December 10-14, 2005 - ApacheCon 2005
- December 12-16, 2005 - JavaPolis 2005
Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e"> events submission form.
All submissions go through an editorial review before being posted to the
Archives and Subscriptions: This blog is delivered weekdays as
Today RSS feed. Also, once this page is no longer featured as the
front page of java.net it will be
archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.
What makes an expressive computer language?