Thursday, April 11, 2013

Screaming Architecture, Is That...

Screaming Architecture, is that when your project top folder structure looks like:



SRC/
  MAIN/
    JAVA/
  TEST/


Ok, joke, HA-HA. No, I really deeply sympathize with the idea.

Related thoughts: I have a friend who's very much into asian culture; he made an interesting argument that chinese signs/characters are far superior to our 'western' characters rooted in sound: the signs remain much more interpretable across time. It must be true, basically, although I believe it's not as true or simple as one might first think. So these characters must then be more 'screaming' than our own, essentially arbitrary encoding, in the sense discussed here. Too bad they don't have upper case.


Inherently Polyglot

This blog has been turning into a link blog lately. It's tempting to post some links just to keep posting something at all. I hope any damage from the last two isn't lasting.

It's mostly to do with the fact that fleshing out ideas from the long list of un-fleshed-out ideas is work, time, effort; and the amounts are uncertain. But this one seems quick enough to write down... [Turned out not to be.]

I've often joked about Java development being not one language, but, like, five or six; depends heavily on style of course:
(*) Java.
(*) Xml. Gotta have xml. A universe of DSLs to follow.
(*) Annotations; new in 1.5. The basis for numerous small 'DSLs'.
(*) Property files. Very simple 'language'.

The list grows with tools often used:
(*) IDE .classpath (XML!).
(*) Ant, Maven, etc (XML), or other build language.

Frameworks:
(*) EL -- expression language.
and so on.

I believe that this is a big burden of added complexity.

Now, the Point: what kind of problems are what you might call 'inherently polyglot'? The idea is of course inspired by the idea of 'inherent complexity'. Perhaps: what kind of problems inherently call for using multiple languages, as opposed to trying to adapt the use of your old, crusty one? What kind of things do you not want to do in only the main language used? Is it not really that the main language is too weak? Too verbose? Too non-declarative? Or just a tools issue?

Should one always start using a LISP type language, just in case one feels the need for more languages?

Ok, that'll have to do. I'm leaning towards the conclusion that it's not that useful as a concept. It's more to do with what the existing language is like, and what you think it cannot do, and what the tools situation is like, who the users are, things like that.

Soon, maybe: on the added costs and problems of extra languages. Now I can post two link posts, maybe.