Re: Re: Re: Efficiency in maintenance coding...by jepri (Parson)
|on Nov 16, 2001 at 07:22 UTC||Need Help??|
no. not quite. the purpose of my original node was not that by a long shot. The purpose of my node was to discuss the relative complexity between VHLLs and more "systems" languages, especially as related to maintenance programming. To be honset, I am a little bit distressed that it was taken to be a "language wars" node, because I can guarantee you, that was *not* the intent.
Regardless of your intent, you finished with a value judgement that is likely to annoy people from one camp or the other. Similar effects can be achieved by noting that it takes less keystrokes to do the same command in one text editor or another. You may have presented facts, but making the judgement is the problem.
not because we have TheDamian or merlyn or Larry... but because the *language*, as a VHLL, allows me to *express* my program efficiently,
What? You say that it's not because we have good language designers, it's because we have a good language. Can you explain this further? How do we get a good language without the good language designers?
You appear to be labouring under a heavy confusion about language, syntax and functions. I see no syntactic difference between a core function and one provided by a module.
Now the real point you make in your post is that that nobody at Java had the wit to create the map object, and none of the third party developers had the wit to create it and share it. This is not a feature of VHLLs( finally figured it out - Very High Level Language), this is a difference between having good people working in the community and having the best people. It's also about having the best people bruise egos because certain neophyte coders think that they can roll their own better than the best. Java seems to be full of people who are convinced that they are so good that they don't need anyone elses code.
I keep trying to tell you that if someone with more than half a wit wrote some decent routines for java, your example would be invalid. But the core designers didn't. The third parties didn't, or nobody used them. But you can't differentiate languages because of a core function that they do or don't have. You need to compare things like syntax, which are specific to the language, not functions which are common (Turing complete, remember?)
Yet this is what you do. From the examples you give it would be so easy to write a regexp class, and a hash class, and a map object and then use them in a two line example to show how easy it is to count the words in a file using java. Why doesn't anyone (in Sun or outside Sun) write these classes? Could it be because they lack good designers, like Wall, Schwartz, Conway and the rest? People who are also good at figuring out how far to go with the functions and features, but not further?
What you really meant is that perl doesn't let you make such a horrible mess of code like your java example by giving you core functionality to avoid the mess. But that's not true either. You could have written that routine in 20 lines of really bad perl. It's just because the people who design perl care about it's use and smack bad programmers on the bottom when they show bad work around here. We may be one of the last cliques in society where we value a kick up the bum for bad work over someone telling us how great we are for being able to program.
Well, you're never going to get all people everywhere to agree on the 100% right set of modules...
But you get people claiming that the core modules (or functions, or classes) are more correct than the ones in java. It's some form of hero worship, and it's prevalent everywhere. (This isn't a personal poke. I get told so many times that language x is better than language y because of a function that nobody who programs y thought to write)
. However, this node could have been at ISETLmonks or PythonMonks or RubyMonks, or any of the hundreds of other languages which allow the programmer the freedom to *express* their software, rather than mechanically dictate and regurgitate it.
I could go patch the source code (I flatter myself) for any of these languages (including java) or add modules or classes so that you could do your example in two lines of code in any of them. Good coders will always find ways to use a language to express themselves. We have good coders in our community and we are lucky that they write the example docs as well. I bet Larry Wall could turn that java code into something that really sparkles. Good coders can do that.