You are not logged in.

#1 2005-07-15 15:06:31

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Sick of Java

This is a rant that is bordering on belonging in Off Topic. In fact, it's almost worthy of a blog. But I hate blogs (I didn't write the 'Why I Fucking Hate Web Blogs' article, but I would have if it hadn't been done).

This topic is inspired by:
http://today.java.net/pub/a/today/2005/07/14/sleep.html

WTF is the use of a Perl-like scripting language for Java. IMNSHO, People that still code Perl should be eligible for early retirement. Sure it was a wonderful language, totally dynamic, don't have to declare anything pretty much brand new concept when it originally came out. It was revolutionary.

But we've got Python, Ruby, and PHP now, not to mention 50 million other scripting languages that only a few people (their original developers, I think) use. Perl was a great idea, but the new languages, while based on Perl, are much easier to read and write. They're better languages.

Ok, Java. I'm really pissed off right now about the number of scripting languages available for Java. I can't even list them all... Jython, Groovy, Beanshell, Javascript, Jacl, Sleep, Nice... to name but a few. I think there's even a JRuby interpreter now. Sure having more options is a great thing, but who really wants to context switch between scripting language designs every time they need to write a script for Java.

Originally, I thought that Sun was going to try to standardize on one language. I'd heard rumors that it would be Groovy or Beanshell. Both of these languages have JSR's standardizing them. But then they turn around and put javascript in the new JRE.

Now, a short aside ranting on XML. Java and XML are married with children. Its virtually impossible to work on a Java app without coding some XML. All the frameworks love XML. Ant is XML. Maven is XML. TestNG is XML. XML XML XML. Bah. XML is ugly and a waste of bytes. In my personal project's I've attempted to avoid XML as much as possible, but this SEVERELY restricts me in my choice of Java libraries. There must be something wrong with me as a Java developer. All the others seem to think XML is a good thing.

Back to Java. The JRE is too big. Rather than choosing what is best, Sun seems to have decided to throw every single option into the runtime environment in hopes that it will attract developers that will use one or the other of those options. (I haven't yet installed java.lang.KitchenSink, but I hear its coming)

Back to those pesky scripting languages. Why does Java need a scripting language? Because its too big and bulky to be used for these simple tasks by itself. Nobody would ever dream of writing a scripting language for Python! We don't even need a data definition language (like *drumroll* XML) for Python. We can just code it in Python itself.

But scripting languages are powerful. Why does Java need a scripting language is a stupid question. A good question, with an obvious answer, is why do scripting languages need Java?

Ok, what about package distribution? Some of you probably know about my efforts to standardize Java package distribution on Arch Linux. It's horrible; every major program has to include copies of the external libraries that it needs.  There's nothing remotely resembling dynamic linking. THis problem is being lessened by the fact that a lot of external libraries are getting folded back into the JRE. Which, of course, exacerbates the other problem -- the size of the JRE. Its a pretty big download, isn't it? Not really worth it if you just run one or two Java apps.

I am a Java programmer. I have been for quite some time. I'm quite good at it. I enjoy it... or at least, used to enjoy it.

I think the problem here is that I like Arch Linux. Arch users like a KISS philosophy. I've tried to apply this philosophy to Java programming. I've managed it with a fair amount of success, but it seems no other Java developers like to keep things simple. So in trying to keep my Java programs simple (read: elegant), I have to fight the language, the interface, third party libraries, and documentation. Its possible, but I'm tired of fighting it.

Finally, I'm not saying there's anything wrong with people who use Java. They seem to like it. It seems to be good for enterprise work. Its just wrong for me. I guess Java is to programming languages as Red Hat is to Linux Distributions.

I didn't really have a purpose in this rant. It just saddens me that I feel this way about something I've loved for a long time. I find it depressing to know that very few people here will disagree with me (perhaps soniX, arooaroo... Mr. Green).

Dusty

Offline

#2 2005-07-15 15:13:42

Mr Green
Forum Fellow
From: U.K.
Registered: 2003-12-21
Posts: 5,914
Website

Re: Sick of Java

sorry what was the question again ?


Mr Green

Offline

#3 2005-07-15 15:58:55

cactus
Taco Eater
From: t͈̫̹ͨa͖͕͎̱͈ͨ͆ć̥̖̝o̫̫̼s͈̭̱̞͍̃!̰
Registered: 2004-05-25
Posts: 4,622
Website

Re: Sick of Java

egggggsscellent..

I wholeheartedly agree. The major benefit of java is/was portability. At least, at first. Now that most scripting languages have windows and linux (and just about anything) interpreters, that benefit is considerably reduced.

Java still has libraries out the arse. Some people find that as a benefit for sure. Less coding for large projects. But like you said, if you want to accomplish something from small to medium size, it is damn overkill, and a huge download.
Many java apps are far smaller than the runtime! That seems so wrong..


"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍

Offline

#4 2005-07-15 16:11:48

iphitus
Forum Fellow
From: Melbourne, Australia
Registered: 2004-10-09
Posts: 4,927

Re: Sick of Java

Agreed.

In particular bitching about Sun's Al but the Kitchen Sink approach.

We cannot include Java in archie, the jre is a 20mb download,90mb extracted.

Now we do include python. Python has a kitchen sink approach too (fortunately it's not as big though). But the difference, is that if we needed, we could cut down python.

If we did that to java, which is what we wanted to do, we'd be breaking the license. Which is shit.

btw, I want to hear your why you hate blogs ramble sometime too.

iphitus

Offline

#5 2005-07-15 16:29:53

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: Sick of Java

Dusty wrote:

Now, a short aside ranting on XML. Java and XML are married with children. Its virtually impossible to work on a Java app without coding some XML. All the frameworks love XML. Ant is XML. Maven is XML. TestNG is XML. XML XML XML. Bah. XML is ugly and a waste of bytes. In my personal project's I've attempted to avoid XML as much as possible, but this SEVERELY restricts me in my choice of Java libraries. There must be something wrong with me as a Java developer. All the others seem to think XML is a good thing.

I don't understand XML configurations either... I remember when XML was new, I had been working on a message transfer system from VMS flat files and PLCs all the way up to an Oracle DB on a unix box... there was no real good way to pass messages because some parts were "user entered data" - so what I did was to format the data seperated with carets (^) because it's distinct enough, and escape carets from the message...

you would get data like this:
1234^XXIFIDD^Y^N^1000^Some data^More data

Now that's fine and dandy, and at the time of XML's birth, was the best thing to do vs specifically defined length (i.e. chars 1-10 are the ID, 11-14 are this, 15-16 is that).  The problem is that on the recieving end, you need to have rules defined for each message type in order to parse/validate it properly before jamming it in the DB... the message that sent the data above needed to know that the 1st and 5th tokens were numeric and the 3rd and 4th were boolean.  Yeah, you can add meta data in there, but it would start making things more and more messy...

XML would solve this issue very easilly, as far as the meta data and delimiting goes (simplified version):
<int>1234</int><str>XXIFIDD</str><bool>Y</bool>...etc...

doing it this way also allowed for an easy mechanism to send multiple rows in one message:
<row><int>1234</int><str>XXIFIDD</str><bool>Y</bool>...etc...</row>
<row><int>1235</int><str>XXIFIDD</str><bool>Y</bool>...etc...</row>

Sure all this can be done other ways, but the standardization and uniformity gained through XML message passing is great...

Offline

#6 2005-07-15 16:54:13

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: Sick of Java

iphitus wrote:

Now we do include python. Python has a kitchen sink approach too (fortunately it's not as big though).

Doing things in Python takes fewer lines of code than in Java. So Python can hold more stuff in an equal amount of space... or hold the same amount of stuff in less space. Stuff is a technical word. I like it.

btw, I want to hear your why you hate blogs ramble sometime too.

http://mama.indstate.edu/users/bones/Wh … bLogs.html

He says it so much more eloquently than I can...

Dusty

Offline

#7 2005-07-15 17:30:40

xerxes2
Member
From: Malmoe, Sweden
Registered: 2004-04-23
Posts: 1,249
Website

Re: Sick of Java

hehehe, that was one he** of a rant, smile

even though i haven't coded one line of java i agree with it completely, 8)


arch + gentoo + initng + python = enlisy

Offline

#8 2005-07-15 17:37:18

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: Sick of Java

xerxes2 wrote:

even though i haven't coded one line of java

I don't think you can code one line of Java. The minimum is five lines:

public class Test {
  public static void main(String[] args) {
    "System.out.println("Java requires extra lines of code");
  }
}

Ok, maybe you can combine those onto one line, but it would be too hard to read.

When you have a Java programmer become this disenchanted with the language...

I was coding on Ensmer last night, mostly in Groovy, some Java, customizing the groovy build script so I wouldn't have to use ant's XML. And I wondered why I was doing that.

Dusty

Offline

#9 2005-07-15 19:04:49

cactus
Taco Eater
From: t͈̫̹ͨa͖͕͎̱͈ͨ͆ć̥̖̝o̫̫̼s͈̭̱̞͍̃!̰
Registered: 2004-05-25
Posts: 4,622
Website

Re: Sick of Java

xml is great for some things, but it is not a panacea.
It is good machine readable format. It is not good as a user interface language (ie. there should be little or no hand writing of xml).


"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍

Offline

#10 2005-07-15 19:19:19

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: Sick of Java

cactus wrote:

It is not good as a user interface language (ie. there should be little or no hand writing of xml).

zing! take that glade!

Offline

#11 2005-07-15 19:21:42

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: Sick of Java

cactus wrote:

xml is great for some things, but it is not a panacea.
It is good machine readable format. It is not good as a user interface language (ie. there should be little or no hand writing of xml).

It isn't a good machine readable format. Why are XML parsers always so big? Because its hard for machines to read. It was meant to be both machine and human readable, and it turns out to be neither.

Dusty

Offline

#12 2005-07-15 19:33:38

cactus
Taco Eater
From: t͈̫̹ͨa͖͕͎̱͈ͨ͆ć̥̖̝o̫̫̼s͈̭̱̞͍̃!̰
Registered: 2004-05-25
Posts: 4,622
Website

Re: Sick of Java

phrakture: as far as i know, glade has a ui generator, that creates the xml for you. By user interface language, I meant a language that the user interfaces with. Not a language to build user interfaces with. I guess I should have been more clear.

And dusty, I was not referring to parser size. Using that as a definition of whether or not a language is good at a certain task seems a bit limiting to me.

Anyway, I was referring to the fact that XML is self describing. Metadata baby.
If you dont agree...more power to you.


"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍

Offline

#13 2005-07-15 19:47:15

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: Sick of Java

cactus wrote:

phrakture: as far as i know, glade has a ui generator, that creates the xml for you. By user interface language, I meant a language that the user interfaces with. Not a language to build user interfaces with. I guess I should have been more clear.

yeah I know, but I wanted to display my sheer hatred for glade

Offline

#14 2005-07-15 19:51:46

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: Sick of Java

cactus wrote:

Anyway, I was referring to the fact that XML is self describing. Metadata baby.
If you dont agree...more power to you.

No wait a minute, I don't get what you're saying.

When you say 'self describing', I read that as 'human readable'. But you said earlier that only machines should read it.

What I am maintaining is that machines would have less trouble reading something that is delimited, for example, by only one type of token, instead of dozens of types. XML delimits on whitespace, both angle brackets, the /, quotes (inside tags), ampersand, equals sign (inside tags), etc.

The reason I used parser size as a good indication is that the number of lines of code it takes to parse a file is an indication of how 'easy' it is to parse. I contend that XML is not an easy or efficient language to parse.

On another angle, there are a lot of wasted bytes in an XML file. I mean, the name of every tag has to be typed twice (opening and closing), its delimited on dual angle brackets, there's extra whitespace and quote marks...

Dusty

Offline

#15 2005-07-15 20:00:07

xerxes2
Member
From: Malmoe, Sweden
Registered: 2004-04-23
Posts: 1,249
Website

Re: Sick of Java

i haven't got any data on how slow/fast xml is to parse but it's made for beeing fairly easy to read also, it's just a markuplanguage that anybody should be able to fix things in by hand,


arch + gentoo + initng + python = enlisy

Offline

#16 2005-07-15 20:01:07

cactus
Taco Eater
From: t͈̫̹ͨa͖͕͎̱͈ͨ͆ć̥̖̝o̫̫̼s͈̭̱̞͍̃!̰
Registered: 2004-05-25
Posts: 4,622
Website

Re: Sick of Java

By self describing, I mean a system that has no idea about the format of the data in a token dilimited format, will have no chance at understanding the data.

This works fine if everyone knows about that data. Until the format changes. Then every system that uses the data has to change as well. "First field is no longer name. That is the second field now. We had to make the first field longer, now it is the address! Patch all the systems that use it." Who knows why something so silly would happen, but sillier things do happen with spec changes.

With XML, since it is a tree parsed model, with metadata about the data included, it is much easier to use without foreknowledge of the format (like using ^ as a delimiter, field order, etc).

That is not to say that all XML is good. XML is a structure, it has to be applied properly. RSS is probably a reasonable example of XML usage, as would be soap. XML-RPC isn't bad either. I dont know about glade..

But yeah, there are a ton of really, really, really shitty usages for XML, and some really awful DTD's.

As for size and wasted space concerns, if interoperability is the chief concern, then a few extra bits here and there dont matter as much. XML is usually mostly text anyway, so compress the shit out of it.


"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍

Offline

#17 2005-07-15 20:56:45

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: Sick of Java

ok,I agree with all of that.

But why:

<xmltag attrib="info-about">
  some data
</xml>

when, as an example, this takes fewer bytes and would be easier to parse:

(xmltag attrib:info-about) {
  some data
}

Or, even better, let's use a python style notation:

xmltag(attrib:info-about):
  some data

I have no problem with the idea of XML; a fully extensible customizeable interchangeable language for describing data. My problem is the actual syntax of the language; its bulky and inelegant.

I'm a master of HTML and Java, and I'm fairly fluent in Python. So I can read any of the examples above. But the XML version is ugliest to me, and Python is cleanest. I find it difficult to believe anybody would disagree...

Dusty

Offline

#18 2005-07-15 21:34:40

cactus
Taco Eater
From: t͈̫̹ͨa͖͕͎̱͈ͨ͆ć̥̖̝o̫̫̼s͈̭̱̞͍̃!̰
Registered: 2004-05-25
Posts: 4,622
Website

Re: Sick of Java

I personally hate the fact that python is whitespace dependant, so any parser based upon that would get a thumbs down from me. Not to mention that nesting would be complicated because of it.

Your second example seems more reasonable. My compiler courses are far behind me these days, and I was never really a master at BNF form and LALR parsing anyway. So I dont know which would be intrinsically easier to parse given an unknown predefined structure.

XML was developed based off concepts/ideas in SGML, if I remember correctly.
SGML is damn scary. XML is a "scaled down version" of SGML. wink

So likely that is where alot of the ideas and concepts, and probably some cruft too, came from.

In summary, I think idealogically we can agree that XML is not always the right tool for the job. We can probably even agree, like you said, that a fully extensible, customizeable, self-contained, and interchangeable language for describing data is a good thing.

Insofar is it seems inelegant, as I said, I dont think it is meant to be read or written by hand very often. I also think that any language that fulfills the above requirements, is going to be a bit bulky and inelegant.

Still, if something cleaner, simpler, and better comes along, you can be sure that I will use it instead. I have little love for XML itself, only the ideas behind it do I like.

so says me while speaking in english, one of the most bulky and inelegant languages ever. wink


"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍

Offline

#19 2005-07-16 05:53:40

iphitus
Forum Fellow
From: Melbourne, Australia
Registered: 2004-10-09
Posts: 4,927

Re: Sick of Java

I like xml (so shoot me).
The main reason being, that it's easy to parse (pyxml's sax parser), and easy to read/write by hand.

I agree that it is used too much, excessively in Java it seems, but for web based things, RSS, AJAX, SOAP, it's great.

Offline

#20 2005-07-16 17:14:06

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: Sick of Java

iphitus wrote:

I like xml (so shoot me).

Why shoot you? :-P You gotta be careful saying that, cause somebody might take you seriously. Maybe its not like that in Australia (I would have expected it to be...), but here in Alberta... oh, and if you tried it in Texas... *shudders*.

I digress, as usual.

I guess my problem with xml is that it is so prolific. We've agreed that its a great concept. But the syntax sucks, at least, in my opinion. And I can't get away from it, because everybody's using it.

On the other hand, if all XML code is auto generated, and I never have to read or write it, why should I care if XML is used in the underlying structure? Its ok then.

But why the hell is it used in configuration files!!!!!!!

Compare VRML-97 syntax to X3D. Can anybody honestly say that X3D is more readable?

Dusty

Offline

#21 2005-07-16 17:28:39

cactus
Taco Eater
From: t͈̫̹ͨa͖͕͎̱͈ͨ͆ć̥̖̝o̫̫̼s͈̭̱̞͍̃!̰
Registered: 2004-05-25
Posts: 4,622
Website

Re: Sick of Java

Dusty wrote:

But why the hell is it used in configuration files!!!!!!!

Bad design maybe. I still dont think XML should be hand written by users, except in rare cases. There are far more user friendly formats for configuration files.


"Be conservative in what you send; be liberal in what you accept." -- Postel's Law
"tacos" -- Cactus' Law
"t̥͍͎̪̪͗a̴̻̩͈͚ͨc̠o̩̙͈ͫͅs͙͎̙͊ ͔͇̫̜t͎̳̀a̜̞̗ͩc̗͍͚o̲̯̿s̖̣̤̙͌ ̖̜̈ț̰̫͓ạ̪͖̳c̲͎͕̰̯̃̈o͉ͅs̪ͪ ̜̻̖̜͕" -- -̖͚̫̙̓-̺̠͇ͤ̃ ̜̪̜ͯZ͔̗̭̞ͪA̝͈̙͖̩L͉̠̺͓G̙̞̦͖O̳̗͍

Offline

#22 2005-07-16 23:01:01

dust
Member
Registered: 2005-06-04
Posts: 152
Website

Re: Sick of Java

I personally like xml for configuration, mainly because it IS easy to read. Though I agree it shouldn't be hand written/read often, its a config file after all, but the fact that I can open it and read it without knowing any special syntax as a prerequisite makes it ok for me.


Writing stories for a machine.

Offline

#23 2005-07-16 23:32:20

max_sipos
Member
From: Ithaca, NY
Registered: 2004-10-31
Posts: 106
Website

Re: Sick of Java

Well, another reason to use XML as config files is that then you can use preexisting XML parsers to parse the config files. Instead of what happens is that programs tend to have their own homebrew configuration parsers (last time I checked - gaim).

Another cool thing is that, as long as you have a sane text editor, you get indentation and highlighting for everything that uses XML - that at least helps a little bit when you have to edit it by hand. And theoretically, there could be an XML gui editor with some nice layout handling - I don't if there is something like that? I would definitely love it for docbook.

On the other hand, my experience so far with XML was with openbox (not my favourite program to edit, especially the menu) and docbook (which is pretty neat actually, once you get the grip, although the XML -> XHTML is awfully slow, but I could be doing something wrong).

Offline

#24 2005-07-17 01:01:45

Gullible Jones
Member
Registered: 2004-12-29
Posts: 4,863

Re: Sick of Java

What about the perpetual problems of good applications written in Java? They may be the best at what they do (e.g. Azureus), but Java apps take freaking forever to start, and run like a depressed snail once the get going. The Java virtual machine seems to eat about 50 megabytes of RAM, from the word go. Yeah, I get the idea, Java is supposed to be multi-platform... But Python can be used to write multi-platform apps, no? And C#? And probably a dozen other languages.

Offline

#25 2005-07-17 01:20:23

Dusty
Schwag Merchant
From: Medicine Hat, Alberta, Canada
Registered: 2004-01-18
Posts: 5,986
Website

Re: Sick of Java

I've never seen any proof of the rumor that Java is slow. Well, not in the last four of the five years I've been coding in it, anyway.

But that may be because I tend to consider the aesthetics of the code to be more important than the end result, in a twisted sort of way...

And THAT is why I'm tired of Java. It's ugly. Or a better way to put it, perhaps, is I'm tired of oil paints and I'm thinking of switching to watercolours.

Dusty

Offline

Board footer

Powered by FluxBB