in a class with an instructor... Java is easy to explain and understand. Sure it might look funny to someone who has never seen code, but the instructor could actually explain what it means. Its not hard to explain "this is a class statement, these always go here like this and you can name it whatever you want..." etc... No in a basic level java class you do not have to explain why its called class, or why there are blocks or anything like that, just that's how it works... then get right to explaining stuff people need to know.
I won't even worry about your second example... theres no way GUI stuff should or would be taught in an intro level programming class.
The GUI example was in jest. But I have mixed feelings about your first point. I do happen to be a programmer, I was exposed to BASIC on the Apple ][ when I was about 7 years old and I've since learned the full gamut of languages from Pascal and C/C++ to Java, Python, and most recently, Ada. So I'm one of those people that would "get it".
My sister, by comparison, is a non-programmer. She does not come from that kind of background at all. While I was always very "left-brained" -- analytical, loved logic problems, great at math and science -- my sister is the opposite -- struggles with math, but excels at art and other creative skills. She tried to take a high school class which involved a unit in programming, and she utterly hated it. She did not "get it" at all. I would try to explain concepts to her that seemed absolutely elementary to me, and she never did catch on. Granted, it was very likely because the instructor didn't teach it "properly". (But my feeling is that there are probably a LOT of bad instructors out there, and this certainly isn't going to help...)
So one could either do like you suggested, and just tell students "Don't worry about what this all means, just copy/paste the words 'class' and 'public static void main' and keep your code inside these squiggly things, and it will work." OK, but now it's a problem of rote memorization. "public static void main" now seems like a magic spell -- make sure you don't forget any one of those words, and it must be in the correct order! And was it "System.out.println" or "System.println.out"? A rote learner has a 50/50 chance of guessing that right. To get a proper understanding you'd have to explain what the keywords mean, and the class/package hierarchy (System is a package, out is a static object of class PrintStream, which is part of the package, println is an object method), which means you'd have to explain what a class is, and now your non-programmer student is glazing her eyes over.
BASIC (and to be clear, I mean QuickBASIC or some variant -- no line numbers,
and no GOTOs!) can be useful for quick prototyping. As recently as 2003 (which, granted, isn't very recent) I remember using QuickBASIC to hammer out a simple AI algorithm that I read about in a textbook and wanted to take a crack at implementing. It wasn't really pretty, but I had it working very quickly.
In short: if you're teaching a class of extreme beginners, some of whom may not even
like programming or have the mindset to "get" programming, a simple language like BASIC or Python will help them with small successes, sooner, and be a stepping stone toward a more complex language like Java or C.