Do Scripters Suffer Discrimination?
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?"
"Typically these jobs that take weeks instead of hours are assigned to the wrong people, not the wrong language."
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)
I'm afraid you are incorrect. The difference between a compiled language, such as C, and an interperted language, such as Perl, is that the interperted language needs another program to execute its instructions (the interperter). Calling both the compiler and the interperer as the same "middleman" is misleading. The compiler is run once to produce a binary executable. An interperter is run every time you wish your code to execute.
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.
I have written a web-application (game) in PHP... and a friend who is a java snob (he feels no other language is worthwhile any more... and I have to listen to it... :P) constantly is saying thing like "well in java - that problem doesn't exist because [insert long winded arrogance]", or "loose types are a short path to hell - and that's where you're headed with PHP" and "PHP isn't a real language anyway - no one would use it at an enterprise level"...
:P
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...
BlackNova Traders
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.
Sometimes it's best to just let stupid people be stupid.
Script are good for quick and dirty work, but when one come two years after do to maintenance, good plain old langage are perhaps best.
I'll take python over C in a maintainability contest any day. Pointers and memory management are notoriously hard to maintain.
Some of the scripting languages are not "real" programming languages, as they do not encourage style and discipline. But this has nothing to do with them being interpreted or being "scripting languages". For example, all of Scheme, Python and Java (all three interpreted, the two first often seen as only with the title "scripting languages", even though Python has a bytecode interpreter, and there are compiles for Scheme) encourages good coding-style, documentation and code structuring.
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.
--The knowledge that you are an idiot, is what distinguishes you from one.
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.
modern scripting languages are every bit as maintainable as C, C++, or Java.
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.
Would that be this one?
Free Java games for your phone: Tontie, Sokoban
bad form is a maintenance coders nightmare regardless of language. The stricter languages can be written in as poor a form as any given script language. I've had to maintain some c and java code that could easily have been entered in an ob* code contest.
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.
Shadus
I'm basically a C++ programmer, but I like and use Perl for smallish text-processing tasks.
... probably not very much.
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.
I have dazzled many enterprises in an emergency by delivering Perl scripts in hours or days that do amazing things. BUT once the emergency was addressed and they began to look under the hood and saw it was Perl script they had me re-engineer it in C++ or Java (weeks to develop...) because they had no one on staff (besides me) that could support the Perl. They spent the money for the increased amount of time for development to reduce cost in long term support.
On the other hand, I've seen C and C++ programmers come up with the most amazingly fucked up atrocities to get around the strongly-typed nature of those languages, to solve a problem that could have been clearly and elegantly solved with a dynamically-typed language.
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.
Indeed. We have a term for this: Turing completeness. You can write enterprise software in asm if you're a masochist. You can write device drivers in awk if you're wierd. That doesn't mean you should do either of these things
I program in Tcl and Python, and they are great for a certain class of problems, but they are certainly not right for everything.
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.
I watch Brit Hume on Fox News