The Source for Java Technology Collaboration
User: Password:



John D. Mitchell's Blog

Distributed Archives


DSLs feelin' groovy (or, graduating from elementary school)

Posted by johnm on November 17, 2005 at 11:04 AM | Permalink | Comments (8)

Ben Galbraith has posted the first of a series of blog entries about How I Learned to Love Domain-Specific Languages. It's great that more and more people are starting to see the value of explicit, focused languages over ridiculously inhumane "formats" like XML. Hopefully, we're finally reaching a tipping point.

Explicit DSLs feel weird to a lot of programmers because there's been so little mainstream focus on them. I.e., as shown by one of the comments, developers have been herded and otherwise sucked in by shiny-looking tools (by poor education, management, laziness, peer-pressure, ignorance, lack of training, marketing hype, etc.) and haven't (consciously) realized the power of domain languages. It's amazingly odd to me how little energy has been applied to languages among mainstream developers given how much programmer time is spent arguing about the minutia of programming languages and tools.

The fact is that we're already surrounded by and are constantly implementing "DSLs". Look at the "language" of printf and friends, the declarative "specification" of makefiles, the myriad "protocols" that we deal with everyday like HTTP, SMTP, SSH, and FTP, the "APIs" of code libraries, the "design patterns" embodied in frameworks, the analogies and "metaphors" we use to described software architectures, the implicit languages that we create each time we define a class, the jargon we use to talk with each other, etc.

A big part of the problem that I see happening right now is that too much of the discussion around "DSLs" is being framed as some sort of "either/or" / "black/white" conflict when it's really just a more conscious and explicit approach to things that we've already been doing. Whether it's the hype juggernaut of Ruby on Rails or the Java is old, boring, bloated, etc. ideas exemplified by Beyond Java or the "IDE" wars between Eclipse, NetBeans, IntelliJ IDEA, and Emacs, or whatever, the biggest issue with this "us/them" thinking, IMHO, is that people are fighting the wrong fights. The leverage that matters most is the ability of developers to think and communicate clearly with themselves, each other, systems, business folks, and users. Biologically and sociologically, human are built to be linguistic.

That is, languages are fundamental to how we work internally and with each other. Sure, we have various tools to help us communicate but isn't it clear that e.g., PowerPoint isn't the point, it's just a tool — and, alas, a tool that usually induces poor communication rather than enriching conversations). On the other hand, look at the "modern" killer apps and how they are all about helping us (manage our) communicating: email, web, blogs, P2P, wifi, cell phones, faxes, VoIP, agile/XP, open source, etc. I.e., we've graduated from the elementary school building blocks (word processing, spreadsheets, databases, Belief of Control, etc.) to the middle school of communication. Now, we just need to learn and develop languages and tools built around this new level of understanding and put aside our old, comfortable, but ultimately dead-end habits.



Binary XML?

Posted by johnm on January 19, 2005 at 07:38 PM | Permalink | Comments (21)

Well, there's seems to be a fair bit of discussion lately about various approaches to making XML less of a bloated sack of protoplasm. Technically speaking there's a Sun article on talking about the Fast InfoSet draft specification. More generically speaking, here's a CNet article asking: How do we make XML faster?

Alas, I don't see anyone asking moderately important questions like:
  • If binary XML is the answer, what exactly is the question?
  • If XML is the answer, what is the question?
  • Why are people using XML for so many things that it's horrible for?

IMHO, all of this stems from the fact that people have been mislead by XML's name into believing that XML is a language when XML is really just a data format. Very sad.



SubEthaEdit turns 2.0: Is that a good thing?

Posted by johnm on May 19, 2004 at 10:52 AM | Permalink | Comments (9)

For the most part, SubEthaEdit is just a tidy little editor that runs only on Mac OS X. However, it's claim to fame is the fact that it supports concurrent editing of documents by multiple people. SubEthaEdit is a fascinating tool for collaborative editing things like conference notes or, heaven forbid, source code (i.e., pair programming where you don't have to strain your neck peering over each other's shoulders :-).

In the v1.0 days, the license was basically donation-ware and there was a clear statement in the FAQ that talked about them cleaning up the code to release it as "open source". Alas, in this v2.0 release, the license has gotten more pointedly commercial (with a non-commercial/demo/trial exclusion) and all mention of any open-source take has disappeared. Now, it's their code and they can do what they want with it but I must confess that I feel misled.

To add insult to injury, v2.0 has switched to a completely different protocol (based on BEEP, blech) and there's no interoperability between v1.0 and v2.0. What are they thinking?



IBM's open lettter to Sun: Open-Source Java

Posted by johnm on February 26, 2004 at 10:56 AM | Permalink | Comments (12)

In response to Sun's Simon Phipps' rant about Eric Raymond's open letter to Sun to open-source Java, IBM Vice President Rod Smith has called for Sun to open-source Java in a letter to Sun Vice President Rob Gingell. Smith offers IBM's support to create an independent organization to control Java.



JSR 166, A Case Study

Posted by johnm on February 10, 2004 at 03:48 PM | Permalink | Comments (0)

Check out my Artima blog entry on the case study of JSR 166: Concurrency Utilities.



SERVE put onto the back burner

Posted by johnm on February 08, 2004 at 03:25 PM | Permalink | Comments (0)

According to a NYTimes article, the US administration has decided not to use the SERVE e-voting system in the fall elections. According to Deputy Defense Secretary Paul D. Wolfowitz:

"The department has decided not to use SERVE in the November 2004 elections. We made this decision in view of the inability to ensure legitimacy of votes, thereby bringing into doubt the integrity of the election results."

As I recently blogged, the SERVE system is catastrophically flawed. Alas, the powers that be, while caving to the pressure with respect to the November elections, Wolfowitz says that they will continue to develop the system.



Killing the Servlets, softly, with his song...

Posted by johnm on December 22, 2003 at 12:54 PM | Permalink | Comments (0)

Greg Wilkins, creator of the open-source Jetty servlet engine, spouts off in his blog about why he thinks that Servlets must DIE! Slowly!!

It's hard to argue that the servlet specification isn't full of cruft and that the servlet expert group of the JCP should take a major refactoring approach for the 3.0 version of the Servlets specification. However, does Greg's notion of "Contentlets" make sense for the Servlet specification?



Security State

Posted by johnm on December 16, 2003 at 09:17 PM | Permalink | Comments (0)

Philip Brittan blogs about his various articles dealing with Security Strategies.

State is the second worst thing in distributed computing.
No state is the worst.
--John Ousterhout


Dating Design Patterns

Posted by johnm on December 05, 2003 at 02:06 PM | Permalink | Comments (0)

Check out Dating Design Patterns for a refreshing take on just how powerful and useful patterns can be.



Why can't I WiFi?!?

Posted by johnm on June 13, 2003 at 11:50 AM | Permalink | Comments (5)

Hmm... Java Everywhere and Mobility have been pushed at us all week long. Great. So then, why isn't there ubiquitous, open access wifi throughout the conference? There's a handful of private networks that are available in various areas but nothing at all in most of the conference rooms.

Not a very coherent message that the Java community is leading the technology world. :-(



Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds