On Jan 22, 6:16 pm, Jon Kiparsky <jon.kipar...@gmail.com> wrote: > "They'll create this amazing script, and it's so amazing that only a high > skill programmer in whatever specific language could figure out how it > works. Somehow this is a badge of honor to some, but it seems like it > should be a badge of shame when you create things no-one else can work > with." > > I do hope that clouds parted, angels sang, and a beam of light shone down > upon you when you wrote that. Yes, yes, yes, a thousand times yes: code > that is not written to be understood is bad code, regardless of how smart > you had to be to write it in the first place. Brilliant writing is writing > that communicates brilliantly, not writing that communicates the fact of > the writer's (supposed) brilliance.
However, there are situations where going outside the world of your project's preferred language is the only useful and maintainable way to go. I remember learning flex and bison to generate code for an Objective-C project I was on. No one wanted to maintain it, but doing the work by hand would have taken a lot more time. In the Java world, I would have used ANTLR or JavaCC. Most of us know enough SQL to get by; even if projects prefer JPA or Hibernate or another ORM tool, it's important for the programmers to know the basics. I'm not saying that one should add additional languages to a project on a whim or to pad one's resume. I'm not sure Java/Scala, Java/Groovy, or Java/Clojure projects are worth the effort. Using all the capabilities of the libraries that your code depends upon seems easier, though I've run into conflicts even there. But if the additional language is the correct language for the problem domain, and if it can be used clearly and integrated clearly, I see no reason to object. You do need to work in harmony with your coworkers, though. Fifteen years ago, I was programming in a language named MODSIM-2, by CACI. There were no supporting tools; people used point-and-grunt editors, and spent most of their time mousing around from one file to the next. Out of frustration, I cored out the Emacs Modula-2 mode and created a MODSIM-2 mode, and I improved it over the years. People were alternately impressed and appalled. I could not persuade anyone else to use it, though it would have made their work a lot easier. Of course that was the fault of my 'winning' personality. Respectfully, Eric Jablow -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to javaposse@googlegroups.com. To unsubscribe from this group, send email to javaposse+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.