Do Scripters Suffer Discrimination? 1216
TheTheologian writes "In his InfoWorld column, Chad Dickerson says 'there is a level of quiet discomfort between the "scripting" versus "programming" factions in some corporate development environments in which I have participated. In some instances, executive-level technology management has held scripting languages in disdain as not being "real" languages for day-to-day problem solving, which has discouraged highly talented scripters on staff from practicing their craft. In such an environment, scripters are relegated to the lower ranks ... ' He goes on to say that some companies will assign Java and C++ programmers tasks that take them weeks but could be done by Perl or Python programmers in a few hours. Is it true that some companies are so overcome with code bias they'd assign weeks of unnecessary work rather than give it to the scripting untouchables?"
Re:Wrong Person, Not Language (Score:2, Informative)
Not always. Most of the time, the choice of language is not in the hands of the programmer. Its the pointed hair manager who decides, which language to choose. And most of the time he has no clue, so he sticks with the *standard* C/C++ or Java. (and not Python even though it may be better in some cases)
Re:PSST (Score:1, Informative)
Of course if Perl is compiled into a binary executable, it becomes the same as C, but I believe this is not commonly done.
Also, assembly and machine languages are not the same. Assembly code needs an assembler to translate it to binary machine code. However, it is indeed more difficult to code and debug.
PHP scripting/coding/whatever (Score:5, Informative)
Pointing out that Yahoo is now using it as their default language - and that Rasmus (author of PHP) actually was hired by Yahoo as a result is simply dismissed as bad judgement on their part.
It's like arguing religion or politics...
So I just sit back and listen to the tirade - and try not to egg him on...
Re:A rose by any other name (Score:3, Informative)
This is like saying that speaking another language will make a difference in mathematics.
No, I think it's more like a mathematician using calculus to solve the area under a curve, versus someone who uses graph paper and counts the boxes to arrive at an approximate answer. Both get to an answer, but one has a much higher understanding of the nature of the answer.
Re:perhaps... (Score:3, Informative)
I'll take python over C in a maintainability contest any day. Pointers and memory management are notoriously hard to maintain.
Re:Legitimate concern (Score:3, Informative)
I will not sink to the level of the trolls and name any scripting languages which do not encourage good code structuring, documentation and style, but will leave this as an exercise to the reader.
Re:Certainly not (Score:4, Informative)
Wow, such a complete misunderstanding of CSS... CSS is intended to separate content from presentation. That's it. It has nothing to do with Flash or "exciting animated graphical effects".
It's unfortunate that CSS is so misunderstood, as it is really a quite elegant model for web presentation.
Re:Sure, but (Score:5, Informative)
His main point is that all the basic infrastructure API and so on, what he calls system programming should be done in compiled language (like C, C++, etc) and offer clean API to applications aprogrammers, because experience shows that people are much more productive in interpreted languages, and you can change much easily. Well, he has has many other points but this the most important I recall.
One of the nice way you could to this is by using SWIG : http://www.swig.org which helps you all your API from many scripting language (Perl, Python, Shell, etc)
Re:I disagree 100% (Score:5, Informative)
Maybe not quite true for Perl, but for Python, this is an understatement.
I've never seen code written in any low-level lanugage, much less in Java (!) that was half as readable as the equivalent code written in python
The only real disadvantage of interpreted/scripting languages is raw power. They are just a greater abstraction from pure machine code than lower level languages like C, etc., which are themselves abstractions from that machine code.
Re:There really is a difference (Score:3, Informative)
Would that be this one? [ariel.com.au]
Re:Legitimate concern (Score:2, Informative)
My perl code looks better than 90% of peoples java code... easy to read, well documented, modular, etc.
A coworker of mines java code is about as readable as a foreign language to an alien.
Shrug, don't put off on a language what is entirely in the realm of the individual developer.
It's not entirely unreasonable (Score:5, Informative)
However, the main reason I see for preferring C++ for long-lived projects is one that has not been mentioned here: the stability of the language specification. The specification of C++ is extremely thorough, and changes glacially slowly. That's a big advantage for software that will have a long life. Remember, folks, that the main work that programmers do is not developing code. It's maintaining code. I've only ever used Perl 5.x; I'd hate to have to maintain something written in an earlier version that didn't have references. And in a year or so, I wonder how someone who started with Perl 6 will like MY code
All languages have this problem but C++ has it much less than Perl.
As for the boundary between "real" programming languages and the wannabes: for me, the test is whether it's well enough specified that you can determine from reading the language spec whether a piece of code is valid, and if so, what it does. Perl passes this test. (well, 99%). Others, Ruby for example, don't. For this reason, I regard Ruby as a waste of time. But I'm very results-oriented. If you have a more playful disposition, YMMV.
Supportability (Score:5, Informative)
Re:I disagree 100% (Score:2, Informative)
I'd be curious to see one of the problems where weak type checking allows for a "better" solution.
Strong type checking is huge, especially in the realm of code maintenance. Someone taking over another's code has to worry less about documentation and digging through code just to see what type of object was stuck in a collection.
Also, there are huge classes of bugs that can be eliminated with strong type checking. Bugs that would otherwise only be found at runtime.
I think if a programmer can solve a problem better with dynamic typing, then its a case of programmer experience, not one of weak is better than strong.
Just because I can't drive a back-hoe, it doesn't mean that a shovel is a better tool for digging large holes in the ground.
Re:Yes (Score:2, Informative)
Re:You all are missing the biggest thing.. (Score:3, Informative)
Try Perl2Exe [indigostar.com] .
Re:On the contrary - (Score:3, Informative)
You need a lot more information than was given to prove that writing the code in C and gaining
In order for the C version to be a worthwhile investment, you would have to at least prove that the Perl version was, during its lifetime, going to cost more in terms of runtime resources and maintenance than the C version. That could be a pretty hard sell.
a place for each (Score:2, Informative)
For large projects that are shipped to a customer and must work right in the field, scripting languages are inappropriate. An air traffic control system, for example, should not be written in a scripting language.
Having said that, Python is great for analysing air traffic data and for automated testing of air traffic control software. I know because I do just that routinely.
Re:PHP scripting/coding/whatever (Score:5, Informative)
It depends on how well you code.
JSPs are translated to Java exactly once, so the performance is equivalent to regular Java servlets. For a good coder and using a modern VM with the run-time optimization, you can get performance reasonably close to what you can get with C.
For one of my clients I built a pretty complex dynamic site. On the generic P733 box I have handy, I can easily pull 20 megabits, even though I've spent almost no time optimizing the site.
The reason you see a lot of slow JSP sites is that Java is the language of choice for large corporate shops. On average, these outfits have many drawbacks:
And that's just getting started. One of my clients had a team of twenty spend two years developing a site that was deployed on $2m in fancy hardware and software licenses. With three top-notch developers, I could have redone the whole thing in four months and run it all on maybe $10k of generic Intel hardware and free software.
Of course, they never would have let me; even if one development manager had taken the risk, the others would have done everything they could to sabotage the project, as it would have made them look bad.
Re:You all are missing the biggest thing.. (Score:3, Informative)
Perltidy [sourceforge.net] is a code re-formatter (like C's "indent").
In that there is a --mangle and --extrude option which will do some fairly reasonable obfuscating.