[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Neil Williams wrote: | On Monday 21 March 2005 1:46 pm, Martin White wrote: | |>Hmm, i've not, no. To my mind it has always fallen into the category of |>"not mainstream" | | | Ooops! I think it might be best to retract that before you go joining other | projects! Never slag off Perl, Python, Emacs, Vi, C, C++ or Java as not | "mainstream".
I think it is the manner people choose to slag languages and tools off that causes religious wars. If the criticisms are valid, and the strengths acknowledged people can accept it as fair comment. The problem ~ is it is too easy to fall into shorthand "X is bad" because you've found something that fits your needs better, when other people have different needs.
I get miffed when people dismiss "Java as slow", one might with more justification dismiss "C as insecure", useful shorthand perhaps for some sort of thinking(?), but the reality is of course much more complex.
People who understand C skip the worst of the bundled string libraries, use pointers appropriately, and in some cases use tools to catch their remaining errors (at compile and run time) and produce C no less insecure than Java. But you can write an insecure program in C very easily.
Similarly Java will produce slow code if you do extensive manipulations of strings because of how the strings class in implemented (indeed something that is a basic type in most languages being an object will make it slow enough if you use it), but if you use appropriate classes and methods for text handling (byte arrays are what you'd use in C, and they call them strings) you can implement fairly complex multi-threaded apps using algorithmns and techniques that would make a C programmer shake in fear at the thought of maintaining and debugging, which are as fast or nearly as fast as their C equivalents and far less likely to spit out garbage or segfault (witness things like the freenet project, or the old SUN Java webserver), and far more likely to "just work" on the next machine you port it to.
So if you have less clue than needed you produce slow Java, just as clue deficient C programmers (myself included) produce insecure C.
Which I think sums up a lot of experience with a lot of modern programming technology not just Java (count GNU autoconf and related tools as an Elephant), learning to use the "big technologies" is just too much like eating an elephant. You don't have to eat an Elephant to use Java like you use C, but if you want to exploit the real power of the technology it is a five course meal, all elephants.
Just like portable C requires an elephant to be consumed, where as portable Java is easy in comparison.
PERL I find really hard to write, it lacks all user defined structures I'm use to using in programming languages (even C), and tries to replace them with about 3 structures, and a lot of hope and indirection, which tends to end up looking like a bunch of brackets, ">" and "$" signs.
On the other hand some of the little utilities I'm happiest with are written in PERL, because it has CPAN, and the C in CPAN really does mean comprehensive. And because PERL forces a simple modular structure on you in simple scripts, making it also surprisingly maintainable. It also has those little features like taint mode that make it surprisingly easy to write fairly secure CGI scripts.
CPAN also manages to feel like a eating termites, rather than an Elephant, there is a lot of them, but you don't usually have to eat more than one or two at a time, and the documentation is always in the same format, and the same place, ....
Interestingly if I were doing document manipulations like creating PDF documents PERL would be one of the first tools I would look at, precisely because I'd expect CPAN to "just do it", and sure enough...
PDF creation, parsing, reusing, converters to and from various other formats, and a load more that I don't even understand the description, but no doubt a PDF programmer would.
Mainstream - don't you need PERL to install Solaris these days - I think that is close enough to mainstream - at least mainstream where the real programmers live ;) -----BEGIN PGP SIGNATURE----- Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCPxm0GFXfHI9FVgYRAgcLAJ0Qe1pc+fF4Gl190hRe8hcoAP2nlACgi798 UoK/yY4mKG2dx7dBQZNYCoQ= =JzZI -----END PGP SIGNATURE-----
-- The Mailing List for the Devon & Cornwall LUG Mail majordomo@xxxxxxxxxxxxx with "unsubscribe list" in the message body to unsubscribe. FAQ: www.dcglug.org.uk/linux_adm/list-faq.html