Slashdot Mirror


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?"

202 of 1,044 comments (clear)

  1. Yes by OneStepFromElysium · · Score: 5, Insightful

    Yes, often scripters are biased against.

    No, it is not fair.

    Programming is programming; solving problems is solving problems. What tool you use is just as pointless of a reason to express bigotry as the color of one's skin or one's gender is.

  2. On the contrary - by Sabu+mark · · Score: 5, Insightful

    - many in my company believe that scripting languages are often more suitable for all applications except those where processing power or speed is absolutely critical. The added performance overhead is paltry compared to the development overhead involved in writing code to the more exacting specifications of compiled languages.

    --

    What Would Jesus Do
    (for a Klondike bar)?
  3. Flip side by sulli · · Score: 3, Funny

    Is it true that some companies are so overcome with script bias that they'd assign years of unnecessary work rather than give it to the coding untouchables?"

    --

    sulli
    RTFJ.
    1. Re:Flip side by Reality+Master+101 · · Score: 2, Insightful

      That's funny, except what's funnier is that I consider Java a scripting language.

      If it ain't compiled into assembly language, it ain't real programming.

      That said, I personally do more programming in Perl nowadays than C or C++ because it's appropriate to the primary project that I work on. I don't pretend that it's real programming though.

      --
      Sometimes it's best to just let stupid people be stupid.
    2. Re:Flip side by RedWizzard · · Score: 4, Insightful
      That's funny, except what's funnier is that I consider Java a scripting language.

      If it ain't compiled into assembly language, it ain't real programming.

      I personally do more programming in Perl nowadays ... I don't pretend that it's real programming though.

      You have a very warped view of what "real programming" is. Compilation v interpretation has nothing to do with it. Besides virtually nothing is "compiled into assembly language" these days. As for Java - it is compiled into machine code, it's just that all the platforms it runs on emulate the target machine. And there are also plenty of Java verions that produce native executables.
    3. Re:Flip side by 0x20 · · Score: 4, Funny

      Yeah. Better yet, if you don't actually hand-craft each of the electrical impulses for the CPU, in order, one by one, with a tiny hand-powered generator, you are not a real programmer.

      What kind of logic is it that makes people think that invoking a compiler on their textfiles is the step that turns them into "real" programmers?

      gcc file.c
      woo, i'm a programmer!
      perl -e file.pl
      doh, i'm not a programmer.
      gcc file.c
      woo, i'm a programmer!
      perl -e file.pl
      doh, i'm not a programmer.

    4. Re:Flip side by aridhol · · Score: 3, Insightful
      There are things in Java that will NEVER allow Java to be useful as a general purpose language. The lack of an unsigned datatype is probably the most egregious flaw.
      Be careful of making predictions in the computer world. It was once said that only Assembler could ever be used to make an operating system. Compilers would never be able to make code efficient enough. Then along comes these guys, Dennis Ritchie and Ken Thompson who proved them all wrong.
      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    5. Re:Flip side by repetty · · Score: 5, Funny

      "If it ain't compiled into assembly language, it ain't real programming."

      Interesting definition. My distinction has always been that if I can fuck up memory, then I'm programming. Otherwise I'm scripting.

      --Richard

    6. Re:Flip side by egomaniac · · Score: 4, Insightful

      Er, no. Java is compiled into an intermediate form, just like every other scripting language such as Perl, Python, etc. Calling that "machine code" shows an ignorance of programming in real assembly language. Java bytecodes are just a numeric version of the Java language.

      Wrong, wrong, wrong.

      First, your precious native-code compilers compile into an intermediate language as well. No modern CPU runs a program as-is -- they all have tricks like microcode, out-of-order execution, register renaming, and other hand-waving that make the actual program run by the CPU quite different than the one sitting on your disk. I'm sure "that's different" for some reason, of course.

      Second, Java bytecodes are a machine language. Admittedly, no 100% complete implementation of the machine in question exists, but I fail to see how that makes a difference. Are you saying that if I extended the picoJava CPU core to natively handle the last few instructions that are currently emulated, suddenly Java would switch from being a "scripting language" to a "real language"? That's asinine.

      That's the primary reason that Java is so slow. The bytecodes cannot be efficiently interpreted.

      The primary reason Java is "so slow" is that most of the people claiming that haven't used it in years. Java 1.4.1 is pretty damned fast as I see it. The other reason that Java is seen as slow is that its GUI libraries are not as fast as the native libraries. That doesn't have a thing to do with bytecodes, but rather with how they were designed.

      There is nothing special about bytecodes that makes them any more difficult to run efficiently than any other programming language. In fact, they open the door to a lot of optimizations that are all-but-impossible with other languages.

      There are things in Java that will NEVER allow Java to be useful as a general purpose language. The lack of an unsigned datatype is probably the most egregious flaw.

      The only reason that unsigned datatypes matter one iota is in interfacing with someone else's code that does use an unsigned datatype, in which case nasty conversions must be done. If you don't need to interface with such code, you find that they are completely unnecessary. I fail to see how that is such a serious flaw.

      I'm not saying "Java is the bestest language EVAR!!!", but please get your criticisms right.

      --
      ZFS: because love is never having to say fsck
  4. I once heard by t0qer · · Score: 3, Interesting

    In reference to perl vs. C that scripting is good for a quick and dirty "proof of concept"

  5. IT's called a standard by TedTschopp · · Score: 5, Insightful

    At the very large company I work for there are standards. And if they were followed we wouldn't be in the trouble we are in now with over 16 different databases, 24 different programming languages, 8 different OS's.

    The reason a company wants you to develop in Java or C++/C or whatever is to maintain the standard, do you have any idea how much money is going to have to be spent to maintain the employee knowledge to support so many different databses, OS, Languages, etc...

    That's what standards address. Now the real question is what is the process to create a diviation from the standard, and is it justified?

    Thats what this questino should address.

    Ted

    --
    Fantasy remains a human right; we make in our measure and in our derivative mode... -- JRR Tolkien
    1. Re:IT's called a standard by Sebastopol · · Score: 5, Interesting


      No kidding!

      We had an intern who wrote a bunch of stuff in Python and Ruby. He was all gung-ho on those languages and made a big deal about how they were "it". When he left, no one had the time to learn how to support these languages, so we ended up re-writing them in Perl so that everyone could support them.

      FYI: his scripts sucked, too. He'd make lots of dumb mistakes like assigning a variable called "retval" and then checking "ret"!!! Duh. gcc would have caught this immediately, so would "use strict".

      --
      https://www.accountkiller.com/removal-requested
    2. Re:IT's called a standard by Ben+Hutchings · · Score: 2, Interesting

      Python will also catch reading of a variable before it has been assigned to. Python does not have a 'use strict' directive. Are you sure you know which languages you're talking about?

    3. Re:IT's called a standard by dagnabit · · Score: 2, Insightful

      I think the comment was in reference to their rewriting in Perl. And if CluelessScripter _had_ used Perl, _and_ had enough of a clue to use "use strict," he would not have had so many problems.

      My interpretation of it, anyway...

  6. my belief by zephc · · Score: 4, Interesting

    is that it stops being 'scripting' and starts being 'programming' based on the scope of the project. Processing a web form is scripting. Writing a GUI app (be it in Win32 or wxPython) is 'programming'.

    --
    "I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
    1. Re:my belief by kiolbasa · · Score: 5, Insightful

      Sounds good, but I'd break it down more specifically: Scripting is interfacing, tying things together on a higher level. Programming is functionality, algorithms and such. This still has nothing to do with language choice, as many languages can handle both to a degree.

      --

      Beer wants to be free
    2. Re:my belief by gmuslera · · Score: 2, Interesting

      Separating things is not good, put a difference where is not. With scripting you can do very simple things i.e. call phpinfo(), or build large and complex programs. and almost all the ground between can be called programming.

      For me, if you do a sequence of instructions (and if, a loop, a sequence, whatever more complicated that a simple invocation of the scripting engine) you are programming, whatever is the language you used (mmm this definition could have problems with what "main {}" or the tipical "hello world" are :)

      With this kind of concepts, visual programming, logical programming or functional programming will be soon not considered "programming", because is not is exactly the way that "normal" (procedural? modular? object oriented?) programming is.

    3. Re:my belief by JWW · · Score: 2, Insightful

      Someone mod this up!!

      Scripting is the glue to tie all of the other stuff together, and automate routine tasks.

      When all is said and done the design problem with many systems is making the assumption that integrating them with other systems is "easy".

      Scripting is a necessary component of system integration and in that sense if you don't make it so you can use scripts to tie your systems together, you end up coding in more and more interfaces and wasting time changing things in complex code when what a simple solution would have sufficed.

  7. Never had that problem by aridhol · · Score: 2, Interesting

    I've been lucky. The management at my previous job was all tech-savvy, so they knew to use the right tool for the job. The management for my current job are completely un-tech-savvy, so they don't know the difference ;)

    --
    I can't say that I don't give a fuck. I've just run out of fuck to give.
  8. Wrong Person, Not Language by Washizu · · Score: 5, Interesting

    Typically these jobs that take weeks instead of hours are assigned to the wrong people, not the wrong language. The right person should figure out the best solution for the problem and tackle the problem correctly. The wrong person will go after it in his favorite language and ignore the best way if it includes any amount of work before he begins coding.

    --
    OddManIn: A Game of guns and game theory.
    1. Re:Wrong Person, Not Language by aridhol · · Score: 5, Insightful

      That doesn't work if The Powers that Be have decided on a solution ahead of time. If TPtB decide that you must use an in-house language that takes a few thousand lines to code what Perl can do in a few dozen, you can't use the right tool. You have to do what TPtB and the PHB have decreed.

      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    2. Re:Wrong Person, Not Language by vivek7006 · · Score: 2, Informative

      "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)

    3. Re:Wrong Person, Not Language by zephc · · Score: 3, Insightful

      I agree. I started using wxPython for a project I'm working on in OS X. It's great, and beats the poop out of Swing, but I decided that using the native (Cocoa) toolkit, while it may take longer, will give the program the spit-and-polish I desire from the app.

      --
      "I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
    4. Re:Wrong Person, Not Language by battjt · · Score: 4, Insightful

      And the "right" language is not just a technical question. If the company only has Java, VB, and COBOL experience and the permanent staff isn't very flexible, the right language probably isn't perl, no matter what the problem is.

      On the other hand I've worked in companies that could grok any language. We even made them up when we needed to.

      Joe

      --
      Joe Batt Solid Design
    5. Re:Wrong Person, Not Language by 2names · · Score: 2, Funny
      I happen to work in a place where the Powers that Be are absolutely 100% clue-free when it comes to technology. Unfortunately, that same bunch of technical morons truly believe that they know IT. I'm not kidding. They will look you in the eye and lie. They will nod and act like they understand what you are saying when they don't even know what planet your words came from. I.E.,

      Me: "You do know that roaming profiles and node-locked access are mutually exclusive, right?"
      IT Director: "No they aren't."
      Me: "Yes, they are. If you want people to be able to log in to any machine and get their same environment, you can't lock down their access to those machines."
      IT Director: "Yes we can, we'll use Active Directory."

      Me: "Have you tried pinging it using the machine's FQDN?"
      Network Manager: "What's that?"
      Me: "The Fully Qualified Domain Name."
      Network Manager: "You mean the IP Address?"

      Me: "You understand that a firewall is only as good as the knowledge of routing the Firewall Admin has, right?"
      Network Manager and IT Director(in unison): "We're not talking about routing! We are talking about the firewall!!"

      And the big Twinkie of all time:

      IT Director: "You can talk about your 1's and Zero's and theory all you want, but that doesn't explain to me why DNS worked this morning and it doesn't work now!"
      Me: "It is because your PC's were NEVER using DNS, they were using WINS, and the WINS server is DOWN."
      IT Director: "If we were never using DNS, then how did we get to other machines by typing the names in?"
      Me: "Because as I said before, the machines were using WINS."
      IT Director: "You can't tell me that ALL these machines were set up WRONG!"
      Me: "I'm not telling you that ALL these machines were set up wrong. Just about half of them were."

      These are the kinds of people who are making decisions...

      These are exactly the kinds of people who would make a programmer use Fortran simply because they heard Fortran was a powerful language. Nevermind that the project is a web based HR database...

      These are the same kinds of people who would say, "Don't use Perl. Perl isn't standardized. Use Java instead."

      [insert diety name] help us programmers/scripters.

      --
      "I'm just here to regulate funkiness."
  9. Mountains and molehills.. by k98sven · · Score: 5, Insightful

    Call that "discrimination" is hardly justified,
    what it most likely is, is good old managerial incompetence,
    perhaps with a dashing of conservatism as well.

    Anyone who claims that one programming language is superior for all and any purpose is obviously incompetent to make such decisions.

    Personally, I wouldn't stay long at a company like that. Unfortunately these kinds of things are very, very, common. Bosses know one way of doing things, and they want it done that way, no matter if its not a good way or not.

    1. Re:Mountains and molehills.. by Gallifrey · · Score: 5, Insightful

      I think you're over symplifying. Managers realize that the more different languages are used means that, most likely, the harder future support becomes. Instead of just giving the programmers free range in what language they should use, two or three languages should be selected that provide good coverage of various functionality, and development should be limited to those languages.

      I've worked places where the developers use whatever language they want. Guess what? Every time one of the developers leaves, their stuff gets rewritten since no one else likes their choice of language. That's not good business.

      The title of idiot manager should not be placed on anyone that wants to reduce the choices of the developers. Instead, it should be placed on managers that don't recognize that at least more than one language will be needed and force everyone into C++. Unfortunatly, it seems that if management makes a decision that limits the "freedom" of the developers, they are labeled idiots irregardless if their decision makes sense business-wise.

    2. Re:Mountains and molehills.. by Anonymous Coward · · Score: 2, Funny

      Anyone who claims that one programming language is superior for all and any purpose is obviously incompetent to make such decisions.

      Sorry to burst your bubble, but Java is in fact superior for all purposes. Good safety, awesome performance, beautiful API's... good stuff.

      That is all.

  10. vs programing? by nuzoo · · Score: 3, Insightful

    Hmm. I thought scripting *was* programming.

  11. Depends... by Koldark · · Score: 2

    In my environment, we use whatever solution works. If it is a simple script, we do it, if it is a complex program. We do it!

    --
    Mike http://thenextgenerationofradio.com
    1. Re:Depends... by DrinkDr.Pepper · · Score: 3, Funny

      In my environment, we use whatever solution works worst. If it is a simple script, we do it as if it is a complex program. If it requies a complex program we do it as a simple script. We do it!

      --
      0xfeedface
  12. tools by gol64738 · · Score: 2, Insightful

    People, please use the right tool for the right job. period.

  13. Scripting vs Programming by skwirl42 · · Score: 3, Insightful

    I think the only difference, generally, between the two, is nomenclature. Although scripting languages are generally interpreted, all in all, there isn't too much difference.

    So the name comes up as the big deciding factor. You call yourself a scripter, you're actually limiting yourself in the eyes of those who want to see a difference between scripts and "programmed" software. I've actually found a lot of resistance among people who write in scripting languages to call themselves programmers, even when, by rights, they do the exact same tasks.

    Of course, no one ever stops to question when a programmer writes in a scripting language... except maybe to say "why are you bothering with that garbage?"

  14. Absolutely. by Marx_Mrvelous · · Score: 4, Interesting

    There seems to be this mindset in large corporations that all "programs" have to be written in C, Java or another "compileable" language. In my job at a very large company (Caterpillar) we especially see ancient VAX-based apps or newer web applications that months are spent on, when a simple Perl script would do the same job in a matter of weeks or days.

    --

    Moderation: Put your hand inside the puppet head!
  15. Use BOTH! by wowbagger · · Score: 5, Insightful

    On a project I designed, I deliberately designed the system to have TCL built-in, for a very simple reason.

    Scripting has its place, as does more conventional compiled code.

    Use compiled code to do the heavy lifting - in my case, things like FFTs, signal analysis, and such.

    Use scripting to tie it all together.

    That way, when you are trying to figure out the problem domain ("Now, what does the radio expect me to do when it sends a GTC message - maybe it wants a CASSN message? Clicky-click - No, doesn't seem to be it. Maybe a IDN message? Yep - that's it.") you can try things out very quickly.

    You can also very quickly string together smaller functions into larger blocks ("Ok, to test the radio, first I do this, then that, then the other.")

    I cannot even begin to imagine how long simple things would take if we didn't have an embedded scripting language.

  16. All in how you say it. by grub · · Score: 5, Funny


    "I am good at scripting." == lame.
    "ph34r my l337 skr197x0r sk1llz, f44g0rz." == cool.

    --
    Trolling is a art,
  17. Hardware is so fast and cheap... by Univac_1004 · · Score: 3, Insightful

    ..that the only time that really counts is programming time. Execution time is trivial. And this saving continues to be true over the entire lifecycle of any product. [as an assembler and C/C++ coder I will admit certain exceptions do exist in hardware dependent areas, but these are rare & getting rarer -- which is why I'm looking for work ;D

    1. Re:Hardware is so fast and cheap... by pmz · · Score: 2, Insightful

      Execution time is trivial.

      Even today, this is very frequently untrue. I think it's more accurate to say the data structures have grown sufficiently to tax even the newest processors. This is true in the graphics industry, manufacturing, electronics design, etc. In other words, we are tackling ever larger and more difficult problems in about the same amount of time.

      I'd also add that large programs will never compile fast enough. 90,000 lines of C code still takes long enough to warrant a short coffee break. Much more than that, and SMP or grids are needed to remain highly productive during the day. Huge projects have to leave full compiles to an over night batch job.

  18. Blame the dot-com goldrush... by mbessey · · Score: 4, Interesting

    Hey, if all those art majors and wanna-be fashion designers hadn't decided to become "web developers", maybe someone who can write an actual program in Perl might get some respect.

    Seriously, scripting languages have been "tainted" by the Web. "If it's a script, it can't possibly be worth anything" is a pretty common mind-set these days.

    While I've seen some pretty awful C and C++ code out there, it's nothing compared to the horror of amateur Perl or (shudder) Shell scripts.

    It's interesting to consider that scripting languages have been able to ride Moore's Law to the extent that you can reasonably implement things in a scripting language hat would have really needed to be compiled a short time ago.

    -Mark

    1. Re:Blame the dot-com goldrush... by TheLink · · Score: 3, Insightful

      "It's interesting to consider that scripting languages have been able to ride Moore's Law to the extent that you can reasonably implement things in a scripting language hat would have really needed to be compiled a short time ago."

      No kidding. Example: Apache webserver: 700 pages/sec on Dell Poweredge 1300 PIII 550MHz (in 2001). Perl webserver: 700 pages/sec on my beige box Athlon XP 2000+. Kind of funny to do pattern substitutions on the fly on webpages ;).

      At my prev company, due to a request from my boss to filter out various sorts of email, I configured some dot qmail stuff to call a perl program. Sure C could have been faster, but while with Perl I was introducing a performance hit, I could be pretty certain I was not introducing a security problem - no risk of buffer overflows, and if memory usage gets too high, ulimits kill the process. The code was short and simple - return different exit codes depending on what sort of patterns matched.

      Nobody noticed any performance slow downs (the final windows based mailserver was usually the problem ;) ). Boss happy. And it was easy for me make my own custom filter to bounce off a fair amount of junk/spam from my own work account :).

      For fun I recent wrote pop3, smtp and plug proxies in perl. AFAIK stuff like this would be fine for small orgs. By the time most small orgs double in size, I'm sure PC hardware would have doubled in power or more, and they would need to replace aging hardware anyway. They probably won't even need to upgrade for the first few doublings.

      --
  19. A rose by any other name by Neil+Watson · · Score: 4, Insightful

    Scripter, programmer what's the difference? The thought process is the same whether you are using cshell, java, assembler or any other programming tool. This is like saying that speaking another language will make a difference in mathematics.

    1. Re:A rose by any other name by Reality+Master+101 · · Score: 2, 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.

      --
      Sometimes it's best to just let stupid people be stupid.
  20. Certainly by kafka93 · · Score: 5, Insightful

    I don't know about 'weeks', but there's little doubt in my mind that tasks are often assigned to C or other 'proper' languages that could more easily be tackled with a so-called scripting language. Whether this comes down to 'prejudice' or mere ignorance to the potential of perl and the like is open to question.

    And, without wishing to develop too much of a flamewar, this same issue comes up -- more frequently, even -- with the battle between 'traditional' web development languages that use CGI -- notably perl and C -- and more modern languages like PHP, ASP, etc. It's my view that a truly experienced and effective developer, whatever the particular circumstances or decisons to be made, will be sufficiently open-minded to consider multiple alternatives: those who show a propensity for platform elitism, or for discounting certain solutions out of hand, often seem to prove poor developers - for the very reason that they show a lack of imagination, an unwillingness to consider different options, and so forth.

    Also, people often only consider one side of the equation -- and it's the least important side: the particular language used often has vastly less impact upon the success of a development than does the ability of the developer to write clean code, to think in a sensible fashion -- and to get a *full* picture of what's going on. Take Slashdot -- perl-driven, perhaps, and working reasonably well in its way -- but betraying a lack of understanding of modern web development techniques such as the use of XHTML/CSS in place of kludgy tables and the like.

    Long story short: the language won't make the difference, and the developer or manager who thinks it will is deluded -- and will pay for it in the long term.

    1. Re:Certainly by jmauro · · Score: 2, Insightful

      Take Slashdot -- perl-driven, perhaps, and working reasonably well in its way -- but betraying a lack of understanding of modern web development techniques such as the use of XHTML/CSS in place of kludgy tables and the like.

      But none of these cool technologies existed when slashdot first started. There was only tables. If you were writting slashdot and supporting slashdot from the same start time, I think you're code would be full of things like "kludgy tables". The "cool" stuff you seem to like was all invented in the post-slashdot era. They run a web-site and are not fortune tellers.

  21. PSST by Travoltus · · Score: 2, Insightful

    C is a scripting language. It is no less interpreted than Perl. Perl can, by the way, be compiled into assembly code. So can PHP, I believe. C cannot run on its own, nor can Perl or PHP - it must all go through a middleman (interpreter/compiler) first.

    The ONLY language that IS NOT scripting language, is assembly/machine language. Machine code needs no middleman interpreter or compiler to run. It is also 100,000 times harder to code and debug.

    C is just more.. prestigious... than other scripting languages.

    --
    --- Grow a pair, liberals... stop letting the Republicans bully you!
    1. Re:PSST by ruriruri · · Score: 3, Funny
      Machine code needs no middleman interpreter or compiler to run.

      Except for the hardware "interpreter" running those codes on your motherboard. Wheels within wheels, man.

    2. Re:PSST by tomhudson · · Score: 4, Insightful
      According to your definition, assembly is also scripting, because the mnemonics have to be translated by an assembler before your code will run.

      C is not a scripting language, because the end result, after compiling and linking, is an executable that can be run by the OS w/o a separate runtime (I'm including linked-in runtimes, such as the old dbase runtime kit, as 'separate', b/c the end result still goes thru the run-time interpreter).

      Oh, and assembler is not 100,000 times harder to code. I actually found perl made me cross-eyed for quite a while before I grokked the mind-set behind it, and now I use it whenever I need a quick-and-dirty script to fetch some data, process it, and give me the results.

    3. Re:PSST by tramm · · Score: 2, Insightful
      Ageless wrote:
      C is almost always compiled. Perl and PHP are almost always interpreted.
      Perl is always compiled and no Perl interpreters exist. When ever you run perl on a Perl script, it is compiled and then executed by the Perl virtual machine.
      --
      -- http://www.swcp.com/~hudson/
    4. Re:PSST by tomhudson · · Score: 2, Insightful
      Interesting point of view. I was going to disagree the first time I read your comment*, but I think that it points out a valid difference between a "script" and a "program", at least when using a scripting language.

      How about if I modify it along these lines:

      • When using a scripting language, if it behaves "like an actor with a script, just following some (more or less) simple guidelines", it's a script
      • When using a scripting language, if it passes a certain level of complexity, so that it's no longer "simply following a script", but perfoming complex actions, it's a program.
      Mind you, in such an instance, one man's script is another man's program.

      Actually, I think a better analogy is like, where do we draw the line between living and non-living - are viruses (the biological kind) truly alive, or are they just chunks of dna with the ability to convince host cells to replicate them? That debate's been going on for decades, and isn't decided yet either :-(

      * what made me re-read what you wrote was the TIHNSIANO. I think it's pretty catchy, at least on a par with TMTOWTDI :-)

  22. It's about stability by Joe+the+Lesser · · Score: 4, Insightful

    When you are building a software application, you try to get everything synchronized, so all programmers will be able to understand and feel confident in each other's code.

    Many times programmers, in charge of maintenance, have had to search through code only to find the bug related to a script which does not follow the norm of the project.

    Therefore, in a serious project, with millions invested, scripting can be a dangerous shortcut that may plague the project a year later.

    My point is not that scripting is a waste of time or an unneccesary technique, since it can indeed be useful, but it is likely that an average manager's gut instinct to avoid the technique unless it is the only way to achieve something, because the more it's intermixed with C or Java code, the less standardized the project becomes.

    A concept may be easier to express in Chinese, but you don't see many novels written in English with Chinese added here and there. Uniformity often leads to quality.

    --
    "I only speak the truth"
    Karma: null(Mostly affected by an unassigned variable)
    1. Re:It's about stability by syo · · Score: 2, Insightful

      A concept may be easier to express in Chinese, but you don't see many novels written in English with Chinese added here and there.

      I don't know about that...I think the common usage of words from other languages in English writing provides a certain je ne sais quoi. Admittedly, use of other languages in English writing can be confusing. Especially when it is done to showboat, attempting to project the ersatz impression one is a member of the intelligentsia, when in fact they are little more than a schmuck, a putz, et cetera...in any case they deserve a good kick in the tokhis. If this gets out of hand things could run amuck. Capice?

      Now, the problem of when to use a foreign word in your writing could be the source of considerable angst. How do you know when its the appropriate moment for a bon mot. Are you expected to be some kind of polyglot!? It could drive you loco!

      I think your choice of metaphor is excellent - unfortunately it comes close to proving the opposite of your conclusion. Using the best tool at the right time can be very efficient. Even quickly throwing something together can be very effective, just making it up on the spot to fit your need...ad hoc, so to speak, e.g. the word television (although half Greek and half Latin...well you know...)

      English itself is a lower Germanic language that has been infused/hybridized with Scandanavian, French, Latin and Greek, to name just the most significant influences. In fact most of our grammar is latinate by custom, imported omnibus by pompous scholars who thought English 'ought' to be like Latin, not by need and certainly not because that's the most useful place for our language to be at. (Reminds me of how every language seems to read like C these days...)

      I don't disagree that uniformity often leads to quality, but it isn't a precondition. Standards are important - but ultimatly those standards are in place to affect cost savings and if a "script" can provide a real efficiency than it's a good bet that it would be beneficial to use.

      Anyways, I don't claim to be any kind of guru or sensei about this stuff. But from where I stand, just like the struggle between providing security and providing features that is seen when designing an application, the tension between standards and specialized tools when choosing what coding platform to use is all part of a balance.

      It's sort of a...yin-yang kind of thing....

  23. Of course it's true by gewalker · · Score: 2, Interesting

    As a consultant for many years, I can assure you I've seen bias in many forms in many companies

    Male vs. Female
    White vs. Black
    In-house vs consultant.
    Cronies vs. Others.
    Bootlickers vs. others.
    Microsoft vs. Linux
    C++ vs. VB.

    Why should scripters vs. coders be excluded?

    Now, if corporations are stupid enough to be biased (as opposed to simply making logical decisions based on the facts), they are hurting themselves, and hurting others. If you are so affected you should: A) complain, B) find new employment, C) put up with it but let it not bother you. Personally I prefer B, but A and C are also reasonable choices in some cases.

  24. True, by Archfeld · · Score: 4, Insightful

    but often scripts are seen as quick and dirty solutions to problems that should have been solved by the inital program. Not to mention documentation, scripting is SO free form that it often intimidates management...

    --
    errr....umm...*whooosh* *whoosh* Is this thing on ?
  25. Source by FrostedWheat · · Score: 2, Interesting

    A lot of companys don't like scripted languages because the source is required to run the code. For small companys like the one I work for this isn't a problem, but larger companys that may spend a lot of money developing there programs may feel better if they only have to distribute binaries.

    No doubt that scripting is a better choice from a programming point of view for many of these types of systems, but often it's not the programmers making the choices ;)

    Can understand both sides!

  26. I guess I am biased against scripters as well... by shodson · · Score: 5, Insightful

    I guess I would be labelled as biased as well. Scripters often are talented, home-grown and self-taught but true enterprise systems require more enterprise-capable features and capabilities offered by RDBMSs, tranaction coordinators, asynchrnouse messaging, distributed computing, etc. I'm sure some or all of those things can be accomplished with scripts as well but vendors and products in these categories tend to API their products to programmers (Java, C++, .NET)

    Also, I find scripts like Perl/PHP/ASP and other harder to maintain for larger projects. And, if the original scripter is fired/laid off how much easier is it for a new scripter to jump in and successfully maintain that code base? I think people in OOP-land work really hard to creating standards and methodologies that make code maintainable over the long haul (just attend an OOPSLA conference some time).

    As far as hiring biases, it depends. I've seen people hire scripters because they can get their site up just as good or even better than a programmer. That works great in small organizations, but if you are working on products with 100+ developers then scripting becomes pretty painful, hirers of large teams would probably rather like to stick with tradidional business development tools, languages, platforms, products, etc.

    Flame away...

  27. Not Quite by LPetrazickis · · Score: 4, Funny

    Script kiddies, by definition, do not write their own scripts.:)

    --
    Is this a sigs-optional kind of place? 'Cause I am totally down with that if you know what I mean.
  28. scripting not the problem by t'mbert · · Score: 2, Insightful

    The problem that arises is that many scripts become mission critical, and yet are "hidden" in root crons or some other root-owned facility, and are not maintained in the corporate source control system. So other developers can't see or alter them. Worse, they don't often go through the same QC process as other pieces of software in the organization.

    There is a healthy aversion by management to anything that is critical but not touchable but by a few, and which breaks all the controls put in place by management.

    I personally like scripting. It does solve every-day problems efficiently. But I think it gets a bad wrap because of these lack of controls.

    1. Re:scripting not the problem by Deacon+Jones · · Score: 3, Funny
      But I think it gets a bad wrap

      Hey, shouldn't that be "it gets a bad wrapper?"

      hahahahah.

      Allrighty then, I'm sorry.

      --
      I pulled a jack move to cop this sig
  29. There are no scripters. by SuiteSisterMary · · Score: 3, Funny

    There's no such thing as a 'scripter;' there are merely those who use just-in-time or per-execution compilers.

    --
    Vintage computer games and RPG books available. Email me if you're interested.
  30. You better believe it by Anonymous Coward · · Score: 2, Insightful

    I'm one of the people hit by this. My company used to have a group that was formed to use scripting technologies to help customize our core products. The C++ folks in R&D looked down their noses at the 'amateur' work we did, and during the last downturn the group was disbanded, the senior people assigned to core R&D and the rest sent packing.

    After a year, they've found out they don't have a single major customer who's operation doesn't depend on some work done by the 'amateur' group, and they're unable to incorporate the required functionality into the core product. They're stuck having people port the scripts in order to get customers to upgrade. Meanwhile, some of the folks that left are making a healthy living doing consulting for our dealers and major customers.

    This morning I heard the principal engineer estimate that it would take 2 years to adapt the core product to include some functionality that I wrote in Perl in 5 weeks... 6 years ago.

  31. Does the end user know the difference? by aardwolf204 · · Score: 5, Funny

    10 Echo Starting Application
    20 system "start iexplore -k http://localhost/index.php"
    30 goto 10
    40 profit

    --
    Im dreaming ofa big bndwdth, That can resist the /.crowd.May ur days b merry & bright & may al
    1. Re:Does the end user know the difference? by Ageless · · Score: 2, Funny

      Was the fact that this program never produces profit a mistake, or very clever? :)

    2. Re:Does the end user know the difference? by Spunk · · Score: 3, Funny

      Warning: profit unreachable.

      How true :)

    3. Re:Does the end user know the difference? by SoupIsGoodFood_42 · · Score: 2, Funny
      Surly you meant this script?:

      var i = 0;
      var profit = 0;
      while (i == 0) {
      window.open('x10add_loop.html', '', '', '');
      profit++;
      }

  32. Legitimate concern by 0x0d0a · · Score: 4, Insightful

    I'd have to say that that's a legitimate concern.

    Most programming languages are designed around keeping a codebase usable even at large sizes.

    Most scripting languages are designed around letting small problems be implemented quickly.

    They each have a place. Using one in the place of the other really is a bad idea.

    1. Re:Legitimate concern by Guppy06 · · Score: 5, Funny

      "Most scripting languages are designed around letting small problems be implemented quickly."

      Isn't that the core philosophy of Microsoft's Windows Update service?

    2. Re:Legitimate concern by redhog · · Score: 2, Informative

      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.
    3. Re:Legitimate concern by Shads · · Score: 2, Informative

      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
  33. Programmers vs amateurs? by guacamole · · Score: 2, Interesting

    I think it's not about compiled vs scripted languages but programmers vs amateurs. Lots of scripting languages have an easy learning curve and many people who are hired to write scripts have not really been trained as programmers. This, also why we often hear "perl code is such a pile of mess". Well, most of it seems to been written by people who learned it from tutorials and have no idea about basic concepts of software engineering, algorithms, programming styles and such. Most companies just can't afford to hire a person with a computer science degree from a respectable CS school for every job that requires coding.

    my $0.02

  34. weeks vs. hours by nojomofo · · Score: 4, Interesting

    An author loses all credibility to me when he asserts things like "developers spend days and weeks writing Java and C++ code to solve problems that those talented Perl or Python programmers could have knocked out in a few hours", with absolutely no substantiation. I guess that with anecdotal evidence, you can prove anything.

    I'd challenge anybody to come up with a problem that could be solved within a few hours in Perl or Python that couldn't be solved within 2 or 3 times that length of time (longer, but not "weeks") by a competent C or Java programmer. Certainly, there are jobs where Perl is absolutely the right tool. But I have a very hard time believing that there can be that much of a difference.

    1. Re:weeks vs. hours by Clover_Kicker · · Score: 3, Insightful
      I'd challenge anybody to come up with a problem that could be solved within a few hours in Perl or Python that couldn't be solved within 2 or 3 times that length of time (longer, but not "weeks") by a competent C or Java programmer.
      I want a program that

      It took me 20 minutes of browsing CPAN to come up with this (admittedly stupid) example, I'm sure I could throw in lots more freaky CPAN modules to make life harder for the C folks.

      CPAN is what forced me to learn Perl. I'm sure a lot of these libraries exist for C, but it's much harder to find 'em, and who knows if they work on your platform? Let's stipulate that our program will be deployed on a DEC Alpha running WinNT...

    2. Re:weeks vs. hours by sigwinch · · Score: 2, Interesting
      I'd challenge anybody to come up with a problem that could be solved within a few hours in Perl or Python that couldn't be solved within 2 or 3 times that length of time (longer, but not "weeks") by a competent C or Java programmer.
      Example: Monitor both POP3 and IMAP servers, and fetch any messages that arrive. For each message do the following: Store a copy of it in the SQL DB. Make sure there is an attachment containing a custom data format. Extract every RFC2822 address from the message body. Parse the attachment, check it for validity, and convert it to an array of numbers. Calculate the complex fast Fourier transform of the numbers. Save a copy of the results to the SQL DB. Construct a multipart MIME message containing a description of the results, and the results as an attachment . Using SMTP, send a copy of the results to each address that was found previously. Periodically collect bounce messages from POP3 or IMAP servers and note the results in the DB. There must be a web-based front end that monitors throughput, and provides summary graphs of activity in the past N hours. The system must be able to make reasonably-efficient simultaneous use of all processors on a 32-way NUMA machine.

      'Twould be a hideous task in C, nearly as bad in C++, annoyingly hard in Java, and fairly trivial in Python. (Dunno about Perl--I hate Perl.) I am assuming that common libraries can be used for the heavy lifting, that the system must work reliably for years in the face upgrades and hostile input, that the system must be maintainable when all the original designers and implementors are gone, and that the original designers and implementors are of merely ordinary skill in the chosen language.

      --

      --
      Kuro5hin.org: where the good times never end. ;-)

    3. Re:weeks vs. hours by Jerf · · Score: 2, Insightful

      I'd challenge anybody to come up with a problem that could be solved within a few hours in Perl or Python that couldn't be solved within 2 or 3 times that length of time (longer, but not "weeks") by a competent C or Java programmer.

      You issue a challenge where you will never accept the answers, because you can always argue that a C++ programmer could theoretically beat that time. And you'd be right, because the well-documented LOC difference for significant programs between, say, Java and Python is on the order of 5 to 10. In theory, if both programmers program perfectly correctly, the Java programmer will only take 5 to 10 times as long, because that's how much more typing they need to do. Thus, you'll never be satisfied with the answers, because you can always counter-argue, and in the absense of experience you can always counter with another anecdote, or accusations of incompetence in the programmers use of C++ or Java.

      However, I'm not going to argue on your terms. Instead, I simply say this: In the experience of people who have used both, Python or correctly-used Perl (which, BTW, tends to look pretty Pythonic if you want it to be maintainable) does indeed give advantages on the order of 10 at the minimum, usually more. I find the advantages multiple exponentially as the product gets larger; to lay my cards out on the table, I believe that most conventional applications, even ones sized in the multi-megabytes, should be written in "scripting" languages*.

      I'll briefly justify this by waving my hands in the direction of the well-known facts surrounding how many lines of code one programmer can produce and maintain, and point out that the effects are exponential as each module requires fewer lines, but it's handwaving and any Slashdot comment, which can't be book sized, must consist mostly of hand-waving. So instead I offer this challenge: Based on people's experiences (LOTS of people's experiences; just search on groups.google.com through comp.lang.python, for instance), and based on this LOC justification, try Python for a good six months, on something serious. Do your own research.

      Worst case scenario, you learn another language which might expose you to a few idioms you didn't know before. Best case scenario, your effective productivity multiplies, which will easily pay back the time you put into it. I can't prove this for you, you can only learn yourself.

      *: And I'm putting my money (well, "time", but time is money) where my mouth is. I have a large application I'm building, all in Python, and while it's not done, I've only spent my spare time on it and the parts that are done are ahead of all the competition I've looked at so far, almost all of which are done either in conventional languages, or someone who is still writing Python as if it were a conventional language. This also includes, in terms of capabilities, my knowlege of the commercial competition, certainly written in C/C++. There are some parts where it would be a full time job to replace a single component in C++ for a whole (person-)month because of the time-sink that strong typing can be in certain situations. (See "Design Patterns" for examples; many of those patterns are ways around type prisons.) Again, in theory somebody could type it in directly, correctly, in one or two days with no mistakes, but we all know it doesn't work that way. C++ requires a lot of debugging. If I were trying to write it in C or C++... well, frankly I would have given up, as I'd never finish it this decade on my own, no matter how 'leet I am at C++. I like C++ for what it is... but it's so... clumsy.

  35. It's all about the gory details by CySurflex · · Score: 2, Insightful
    One of the purpose of a programming language in general is to hide gory details from the programmers, to allow them to better concentrate on the task at hand. Scripting languages excel in this!!

    Otherwise we'd all be programming in Assembler..

    Anyone who's ever programmed Microsoft VC++/COM/ATL/STL/MFC will attest that that particular environment does not do a very good job of hiding gory details.

    I choose the language based on the task, if a scripting language is good enough and performance is not an issue, I'll be the first one to use Perl or even VBScript.

  36. Re:Solution by tomhudson · · Score: 3, Funny

    So, write it as a script, put it in a crontab, and make a VC UI that just fetches a "results page" of text and shows it to the end user whenever he/she/it hits the "refresh" button. Pretend you're working on it for the next two weeks, and spend the time you save doing something useful, like reading '., downloading pr0n/mp3/movies/whatever :-)

  37. There really is a difference by Avumede · · Score: 4, Insightful

    There really is a difference between scripting and programming. Scripting languages tend to be heavily dependent on compiled code. Where would perl be today if all the modules had to be written in perl? Instead, getting a module from CPAN, there's a good chance you are actually getting C code and a perl wrapper.

    Another difference: type safety, programming languages have more stuff being caught at compile time than in runtime, then scripting languages like perl do.

    Another differene: scripting languages make the common things easier, while programming languages opt for generality and extensibility. Compare writing to a file in perl, versus Java.

    There are indeed differences. But that doesn't mean one is better than the other. I remember a joke that circulated around the internet about the evolution of a programmer. In the beginning was the beginning programmer with "10 HELLO WORLD". Then came C, with #include's, a main function that printed "hello world", etc. Then C++ with a #includes, a class, a main function. Then came COM with about 5 pages of code dedicated to making a COM service that outputted "hello world". Finally, the last stage, a grand master programmer: "10 HELLO WORLD".

    1. Re:There really is a difference by tunah · · Score: 2, Informative
      I remember a joke that circulated around the internet about the evolution of a programmer. In the beginning was the beginning programmer with "10 HELLO WORLD"...

      Would that be this one?

      --
      Free Java games for your phone: Tontie, Sokoban
    2. Re:There really is a difference by tom's+a-cold · · Score: 3, Insightful
      There really is a difference between scripting and programming. Scripting languages tend to be heavily dependent on compiled code. Where would perl be today if all the modules had to be written in perl? Instead, getting a module from CPAN, there's a good chance you are actually getting C code and a perl wrapper.
      As opposed to C or C++, where you are dependent on lib functions to do anything non-trivial in reasonable time. In short, there's not much difference after all.

      Anyway, I don't see how it matters which language my compiler (or interpreter) or libs are written in. Programmer productivity matters more. Sometimes that can only be achieved close to the metal, sometimes the effort is better spent elsewhere. The real standard should be "horses for courses." Minimize the number of languages used in order to keep complexity down, but do it in the easiest, most concise way, keeping in mind the skill set of the people who are going to maintain it. And remember the tradeoff between having them do it the hard way over and over again and having them learn something new. Equally important is that the languages chosen (if more than one) have to have well-documented interfaces (for instance, the Python-to-C extension APIs).

      The thing to watch for is that the scripters don't think that the shorter development cycle is a reason to give up testing entirely. This happened with lots of web scripting that I've seen, and may have contributed to the shoddy reputation for scripted code in some quarters. But anyone who thinks that a stricter compiler will save the world is also mistaken, and I've seen C and C++ programmers blow off testing too. What you win with so-called type safety you lose through inflexible semantics and the proliferation of special cases. And remember that the type-checking hoops you have to jump through are imposed by your choice of tool, not by the problem you're trying to solve, so there's little assurance that the bugs you're finding actually make the final software better. My experience is that you get to the bugs more quickly and can fix them more quickly in Python or Perl than in C or Java-- though in some regards Java is halfway a scripting language anyway, so I'd place it midway between C and scipting in terms of ease of use (as well as doing things behind the curtains that you might not always approve of).

      --
      Get your teeth into a small slice: the cake of liberty
  38. Scripter Discrimination.... by Alyeska · · Score: 2, Interesting
    I can vouch for this viewpoint, and I'm not even in IT, per se.

    I work in industrial information management, which is often accomplished using various types of information technology. Just from exposure, I've picked up and used some scripting tools to solve problems.

    The fact that I use scripting tools some of the time was held against me in a review. Remember -- I'm not even *in* IT, not required to know programming *or* scripting -- but the value of "script kiddies" has been so diminished that the management here heard I could use scripting, assumed I was another devalued dot-com remnant, and assumed my value would be much lower. I was able to explain the difference to them eventually, but at the time, I thought their zeal to devalue scripters was noteworthy....

  39. The usual FUD by SlashdotLemming · · Score: 2, Interesting

    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.

    Someone please give me an example of such a task.
    If this is from a real world example (which I doubt) then I think those Java/C++ programmers shouldn't be employed.

    I think that, once again, someone is under the impression that a person is only capable of one skill.
    Is the author in management somewhere?

  40. Re:Oh please! by smallpaul · · Score: 5, Insightful

    Any such distinction between them is better explained along the software programmer versus system admin dimension (programmers do more programming, admins more scripting).

    That's the misunderstanding that leads to problems. Scripting is programming and scripting languages can be used for software programming. I mean are you going to say that the task of building slashdot is "system administration" not "programming"?

  41. scripting "cowboys" by Wolfgar · · Score: 5, Insightful

    There are multiple facets to why scripting is descriminated against. Some of it is justified and some is not.

    For starters, the biggest myth of scripting languages is that they don't perform well. The bottom line is that there are very few applications where the overhead of the scripting language is going to outweigh the performance cost of a bad design or poorly written code.

    That said, the biggest problem with scripting languages is that they are so easy to use. The tends to create a coding cowboy type environment where folks solve a problem really quickly in a script but that script is never kept in version control, or it is written in a language that noone else in the company is trained to use, or it contains hard coded entries for database passwords, or there are hundreds of scripts and it becomes a nightmare to make a change to the way things work because the scripts don't share any codebase...

    Note that none of the above problems are the fault of the scripting language. They are more the fault of developers abusing them. In a sense, scripting languages leave a lot of rope for folks to hang themselves with. And because lots of folks do hang themselves with them, there is a lot of ammunition that people can use to spread FUD on scripting languages.

    But perhaps most importantly, there is this goofy thing called human nature. For some reason, we silly humans are easily duped into thinking that "you get what you pay for". It's marketing/sales 101, and it happens all over the place. For example, if you see two bottles of wine, one for $2 and another for $20, odds are that most people will be convinced that the $20 bottle is a better wine, even though there is no evidence whatsoever to base that decision on.

    Well, scripting languages are typically free, so the natural inclination of people is to think that they aren't as good as products for languages that sell for tens or hundreds of thousands of dollars. Unfortunately, I don't see this ever really changing, but then I've never been accused of being an optimist...

  42. Re:Script kiddies should be fired by crmartin · · Score: 3, Insightful
    "Faster" in what sense? Tight programs in compiled languages can provide faster execution, sometimes by an order of magnitude. And if that's your measure, a hand-coded tight program in assembler can be two or three times faster than an equivalent program in a compiled language.

    On the other hand,
    grep '^foo*bar[a-zA-Z]' *.text

    can be written in 30 seconds, where the equivalent C code would take all afternoon. A C program that evaluates just that one finite state machine will run at least an order of magnitude faster than grep will ... but since most of the time will be spent opening and closing the files and doing read(2), the speed of the program itself won't make much difference. So while the program may be faster in some sense, it will cost ten times as much without doing anything more or shortening the wall-clock time to run.

    To a first approximation, the time it takes to write a program is proportional to the number of lines of code in the solution, whether you're writing assembler or perl. The cost of a program is directly proportional to how long it takes to write it. So if you're going to opt for a compiled language over a "scripting" language, you should be sure that the additional cost is justified by the gains that come from performance.

    In an awful lot of cases, it just isn't.
  43. Re:Mountains and molehills.. (Python apologia) by Phoukka · · Score: 4, Interesting

    One little piece of common sense to remember, though, is that it doesn't matter that e.g. Python would only take 10 lines and is easier to read, if there is only one person at the company who knows Python, and the other 30 developers only know C/C++/Java. You can argue that Python is easy to learn, and easy to use, and I will agree with you to the ends of the earth, but that doesn't mean that a particular individual will find it easy to learn or use.

    The additional factors of training expenses and/or recruiting and hiring someone who knows the language should be taken into account when evaluating the tools used on a given project. This is a basic thing in managing a project. It is only my personal opinion that sending all 30 developers out to learn Python is the obviously correct solution, that will save the PHBs (and developers) time, money and frustration in the long run. ;)

  44. Oh Hell Yes!!!! by tacocat · · Score: 3, Insightful

    Absolutely this is done, and the bigger the company, the more stubborn and thinking!

    I've been sitting here at my little pathetic cube banging out perl scripts in a few hours to run diagnostics and spot problems in the day to day operations of the company.

    The IT monks recently approached me and informed that I was practicing sacrelidge by using Perl instead of C or Java. In order to save my soul they would have to assimulate all my work and do it in Java.

    That was nine months ago. They are still working on the first 3 of 50 scripts that I've put together in about one years time.

    And don't mention the following words to any of them:

    • Open Source
    • GPL
    • Freeware
    • Shareware
    or they will start screaming, running around the room, and hitting themselves over the head with boards asking the IT gods for forgiveness.

    Seriously, the notion of standards in todays IT industry is rather fucked up. They select one tool for every problem and go from there. Hell, if that was the case, then we would all be running Visual Basic and be happy. After all, there isn't anything VB can do that anything else can't.. right!

  45. I agree, but... by siskbc · · Score: 4, Interesting

    ...at this point, wouldn't it be a good idea to pick ONE of the scripting languages, and make it a co-standard? Sure, allowing anyone to code in language du jour isn't a great idea, but taking forever to do code simple programs because C takes forever to develop with...well, that ain't so great either.

    --

    -Looking for a job as a materials chemist or multivariat

    1. Re:I agree, but... by EngMedic · · Score: 2, Insightful

      ...at this point, wouldn't it be a good idea to pick ONE of the scripting languages, and make it a co-standard?
      Yes! I wholeheartedly agree! ...so, vi or emacs?

      --
      filter: +3. Hey, look! all the trolls went away!
  46. PHP scripting/coding/whatever by Ron+Harwood · · Score: 5, Informative

    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"...

    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... :P

    So I just sit back and listen to the tirade - and try not to egg him on...

    1. Re:PHP scripting/coding/whatever by Reality+Master+101 · · Score: 4, Funny

      Just tell him that both PHP and Java are both interpreted languages, and thus are "morally" equivalent. Only languages compiled into assembly are worthy of being considered "real" programming. :)

      It just astounds me that anyone can be snobby about Java. I mean, it's not a terrible language, but...

      --
      Sometimes it's best to just let stupid people be stupid.
    2. Re:PHP scripting/coding/whatever by sporty · · Score: 3, Insightful

      With no judgement on php in this post...

      There's some problem that some java developer sees with php. Some of it being it's OOP implementation. A lot of enterprise stuff that follows OOAD, which a lot of developers and analysts are getting to like, relies on OOP. Strong data types make things easier for automated tools, for say, reverse engineering (by tools, not human).

      Ruby on the other hand, is strongly typed and OOP Python too (I *think*). If he has no problems with those, then he's just an OOP zealot. If he still does, just find everything possibly wrong with java, like large memory footprint, slow startup.

      --

      -
      ping -f 255.255.255.255 # if only

    3. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 5, Insightful

      It just astounds me that anyone can be snobby about Java. I mean, it's not a terrible language, but...

      The problem isn't the language, or anything remotely to do with programming. The problem is that most programmers are as arrogant as all get out. They find something they like, and because they are convinced that everyone is their intellectual inferior, they need to point out the error of their ways.

    4. Re:PHP scripting/coding/whatever by MikeFM · · Score: 5, Interesting

      The problem is programmers that are insecure because they aren't confident in their ability to move between languages as needed. Programmers usually have their favorite tools for any given job but the ones that get really nasty are the programmers that are only comfortable with the few tools they use.

      For me I'm pretty confident in my ability so I can move between any language that exists or is just invented as the job goes along (happens sometimes) so I don't especially get snotty. Python is one of my favorites but it certainly isn't perfect. I have done a lot in PHP but have grown unhappy with it for large projects. It is good for small to medium sized projects. Java is okay for programs that are going to run on servers with lots of memory and that won't be restarting the program often but is to heavy for most of the things I do. C/C++/Asm are good for low level stuff that needs to be fast but IMO should not be used for the bulk of things they get used for.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    5. Re:PHP scripting/coding/whatever by qoncept · · Score: 3, Interesting
      Erm, well, in Java, you wouldn't have most of the problems associated with PHP. That said, you'd have a whole slough of new ones.

      Java is made for applications. PHP is made for dynamic web pages. I think, by default, this gives PHP an extra layer of planning that you have to do, and restricts you to a different set of options. And for your game, I think PHP was a far better choice.

      Remember Barren Realms Elite? If I wasn't so lazy I'd be about half done with my PHP rip-off of it.

      --
      Whale
    6. Re:PHP scripting/coding/whatever by mentin · · Score: 4, Funny
      Only languages compiled into assembly are worthy of being considered "real" programming. :)

      You are too tolerate. Only ASM itself is real programming. Everything else is a joke, no matter how it gets to ASM, via compiler or JIT-compiler.

      --
      MSDOS: 20+ years without remote hole in the default install
    7. Re:PHP scripting/coding/whatever by AndrewRUK · · Score: 2, Funny

      Power switch?
      Luxury!
      I 'ave to peddle my exercise bike connected to a generator to drive the STM, while I spin the disk platters with my 'ands.
      </monty python>

      And yes, someone really has made a peddle-powered generator

    8. Re:PHP scripting/coding/whatever by Soul-Burn666 · · Score: 4, Funny

      Real coders use this as their keyboard ;)

      --
      ^_^
    9. Re:PHP scripting/coding/whatever by sketerpot · · Score: 4, Funny

      Ha ha! You get to use your hands? I have to use my tongue!

    10. Re:PHP scripting/coding/whatever by joto · · Score: 2, Insightful
      Java, indeed is an interpreted language

      No, it isn't. It's a language that can be interpreted. Most java-implementations aren't though...

      In this situation, the Java program is (obviously) much faster than the interpreted bytecode version.

      No, it isn't. Typical scripting languages use heavily optimized string routines, etc... In many cases, an obvious perl (or PHP I guess, although I have no experience with it) program can be faster than an obvious java (or C) program. But it certainly depends on the task you are doing.

      The same is true of many other interpreted languages, optimized for specific tasks, e.g. prolog, mozart, K, J, APL, etc... Sure, in theory, native code is always better, but in reality, we seldom spend weeks, months or years to optimize for performance, but opt for simplicity instead.

      Obvious too is the fact that the native code version won't run anywhere but the target machine.

      Yes, but usually, we are not writing native code (or even assembler). We are writing in a high-level language, and usually, it is not too hard to compile them for different targets. Porting a reasonably well-written C program can often be much easier, then having to keep 60 different versions of JDK around, to be able to run all your Java programs (compiled to .class-files), or even make one non-trivial java program that will compile and run on all those versions of JDK.

      Don't take me wrong, I really like PHP and I don't dislike Java at all. Just wanted to point that

      Fine. I hope you understood what I told you, so you don't have to keep going around "pointing that" (whatever that means).

    11. Re:PHP scripting/coding/whatever by dubl-u · · Score: 4, Informative
      what about the performance of .jsp and the like on non-massive hardware?

      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:
      • Many of them pull data from large, slow databases or mainframe systems.
      • Many of them employ mediocre programmers who value job safefty above all else.
      • A fondness for process means that making big changes is hard.
      • A fondness for high-headcount teams makes it hard to get a coherent design and even harder to change anything later.
      • Throwing money at a problem is generally favored over thinking, especially if said thinking would result in opinions that would make somebody look bad.

      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.
    12. Re:PHP scripting/coding/whatever by buckminsterinsd · · Score: 2, Funny

      Dan wrote:

      "Python is not typed at all."

      Good. Strong Typing is for weak minds...

      best regards,

      buck

    13. Re:PHP scripting/coding/whatever by Reziac · · Score: 2, Funny

      Sounds exactly like OS arrogance, eh? :)

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    14. Re:PHP scripting/coding/whatever by joto · · Score: 2, Insightful
      Not true. Not even remotely true. For a poor programmer that may be true.

      Yes, very true! Take your try at any nontrivial perl-program. Rewrite it in C. Now, pick your alternative: maintainability, speed.

      And I would reverse your statement about a poor programmer. A poor programmer is one that doesn't know to choose the right tool. If you feel like spending months writing in C when I can spend a few hours on a Perl script and get the same result, then you are the poor programmer. (For the record: I'm hardly a perl-bigot, as I work almost exclusively with C and C++ code that is extremely speed-critical, to the point where a single second lost, will most likely cost us a few thousand dollars, if not more. Obviously, for such code, reliability and maintainability is also important. We use perl where it's easier and better).

      But Perl can ALWAYS be beaten by C

      Sure, Perl is written in C itself. By taking out the interpreter, you'll get faster. But for any project with a deadline, it's certainly not true.

      It's not hard for a below average programmer to write a Perl script in a day with a performance and reliability that would take weeks if not months to achieve if it was written by an above average programmer in C. Of course, the opposite is also true, but with the exception that the Perl programmer is likely to never succeed.

      For it's class of problems, Perl is surprisingly fast.

    15. Re:PHP scripting/coding/whatever by jgerman · · Score: 3, Insightful

      Yes, very true! Take your try at any nontrivial perl-program. Rewrite it in C. Now, pick your alternative: maintainability, speed


      Hmmm, the choice is rarely as simple as that. Perl is not inherently more maintainable than C. As far as picking a non-trivial program... project size is usually directly proportional to maintainability in Perl. Additionally, Perl encourages poor coding practices. Note that I'm not saying that Perl forces poor coding. It simply makes it easy for immature coders to be sloppy and lazy. I've seen countless newbies come and go who wrote some god awful code that wouldn't be possible in a more structured language. In a business environment, reliability is important, and the gains made when a project manager knows that a certain class of problems are eliminated by choosing a structured language (though C is not generally the best choice for this) is invaluable.




      And I would reverse your statement about a poor programmer. A poor programmer is one that doesn't know to choose the right tool


      That's hardly a reversal of what I said. We're talking about execution time and you implied that I said C was always the right tool. Untrue, and if you go back through my comment history, (if the last n comments happen to contain one) you'll find me saying the same thing... the right tool for the right job.



      If you feel like spending months writing in C when I can spend a few hours on a Perl script and get the same result

      ...
      It's not hard for a below average programmer to write a Perl script in a day with a performance and reliability that would take weeks if not months to achieve if it was written by an above average programmer in C


      That's bordering on FUD, and is most certainly hyperbole. Hours versus months, no way, weeks vs. a day, uh uh. A good coder who knows both languages can finish them in comparable time. I know from experience I can beat an average Perl programmer on the same task when writing the code in Scheme, C, or Java.


      Perl is incredibly fast, and incredibly useful for a commonly occurring class of problems. Sometimes it's the right choice sometimes it isn't. It's a great language, and has replaced shell scripting for me personally. When I need to whip out a relatively small application I do it in Perl, for the main project it's generally C or Java.

      --
      I'm the big fish in the big pond bitch.
  47. Re:Yes by Purificator · · Score: 5, Insightful

    i even see bias within scripters (e.g., perl scripters are higher up the ranks than bourne scripters).

    in a lot of cases this bias is justified: shell scripts have more portability problems as, say, the location and vendor for awk differs from system to system, or the behavior of "echo -n" changes. this carries over to, say, C vs perl as well: in most cases a C program will run faster with a lighter footprint than a perl script, so when either of those are a big concern then how you solve the problem is as important as the fact that you solved it.

    i'm afraid i share the bias for this reason. i think you should pick the right tool for the job, not just do everything in perl because you're a "perl guy" (or a "C++ guy," for that matter). sometimes that means spending weeks writing a program in C that you could do in a few days with perl.

    --
    "Mister Potato-head --MISTER POTATO-HEAD! Backdoors are not secrets!" (War Games, 1983)
  48. The right tool for the right job, and maintenence. by SlightlyMadman · · Score: 3, Interesting

    I code both, and I agree with the columnist, although the column was a bit lacking in useful information or original opinion (although he did give a decent analogy), so here's my take on the subject.

    When I have to decide what language(s) to use in a project, there are many factors entering the decision, beyond a simple analysis of mile hike vs. Mt Everest. As he touched on, some languages have specific strengths and weaknesses. I wouldn't use java for parsing large text files unless I had other really good reasons to do so.

    The only place this breaks down is maintenence. I think that, and the low entry point actually one of the big reasons scripting laguages are looked down upon. You end up with a lot of scripts in place that were poorly written by inexperienced programmers, which have gotten even worse as other programmers applied patches and bug fixes. ASP is particularly offensive in this way, as, while it is possible to write clean & readable code with it, most people will find it much easier to write nightmarish spaghetti code.

    What the initial programmer expected to be a mile hike, turned out to be something much longer, as scope creep and unforseen bugs turned it into an expedition. Rather than turn back and resupply, the stubborn programmer kept going, marvelling at how clever he was to keep himself alive with only a swiss army knife. Unfortunately, this lack of sufficient tools carries over to every other trip up the mountain to fix a bug or add a feature, and clever hacks turn into brutal kluges.

    There's not always a right answer, but everything has its strengths & weaknesses, and refactoring or restarting from scratch is an often overlooked option at any stage in development.

    --

    Money I owe, money-iy-ay
  49. Re:Certainly not by Animats · · Score: 2, Insightful
    but betraying a lack of understanding of modern web development techniques such as the use of XHTML/CSS in place of kludgy tables and the like.

    Most of those "modern web techniques" cause more trouble than they're worth. They tend to work consistently only with Internet Explorer, which is their real reason for their existence and the reason Microsoft promotes them.

    CSS is in a wierd niche - unneeded for simple pages, and too weak to do what Flash can do. Most of what CSS is usually used for can be done on the authoring side, with Dreamweaver templates or something similar. CSS also interacts badly with firewalls and proxy servers that edit out hostile content. If you really need exciting animated graphical effects (and you usually don't), Flash has far better capabilities.

    Almost nobody uses XML as originally envisioned - as a way to send structured data from a web site to the user's client. I built Downside to do just that for SEC filings, but apart from one obscure client program nobody uses, nobody downloads data that way. We're not seeing XML-tagged price and part number info on sites to allow price-oriented search engines to find the best deal for consumers, now are we? When you buy something online, you don't get back an XML-tagged receipt that goes into your own database. XML is mostly used for in-house and business-to-business applications, typically in situations where no human looks at the content.

  50. Hammers and nails by Badgerman · · Score: 2, Interesting

    If you have a hammer, everything starts looking like a nail.

    A lot of managers don't know about scripting - so they see programming as the solution to everything. Let's face it - scripting is often behind the scenes, doesn't fit well into standards at times, and isn't as flashy on the surface.

    On the flipside, I've often seen scripting-heavy people not communicate the necessity of their work, whereas more coders I know seem to have developed that skill.

    The result? Management doesn't know about the options, so they'll go with what they know.

    Just my 2 cents at current exchange rates.

    --
    "The Sage treasures Unity and measures all things by it" - Lao Tzu
  51. Reality by Gkeeper80 · · Score: 2
    How many projects can you think of that would take weeks for a "programmer" but hours for a "scripter"? Lets be real. Obviously there are diffrent tools suited for diffrent tasks, but from a development standpoint, most languages try to offer the functionality you find in other languages. Granted, the code may not be as pretty, and the final product may not be as efficient, but sometime it's more important to put your competent programmer on the job instead of you incompetent scripter, or just the other way around!

    Decsisions made for buisness aren't usually going to come with rigorus mathmatical proofs of their efficiency. They're typically the gut feeling of a supervisor who's interest is minimising accountability. If your skills aren't needed/appreciated at your job, find a new job or learn the skills that are appreciated

  52. Re:Right tool for the job by hondo77 · · Score: 4, Insightful

    To the untrained eye, perl looks like line noise, and may be rather difficult to maintain.

    To the untrained eye, English doesn't make any sense. When hiring someone to maintain Perl scripts, one should look for the trained eye, yes?

    --
    I live ze unknown. I love ze unknown. I am ze unknown.
  53. Since you ask... by siphoncolder · · Score: 2, Interesting
    Yes. *grin*

    To expand on that: I have found that a lot of people fail to realize that you should first identify a PROBLEM that a static computer program can solve repeatedly. If a process is temporary and won't be used several times yet still requires a lot of processing for the whole 1 time it'll be run, then perhaps a simple script will do.

    Where I worked before, the order of the day was ad-hoc reporting. Management failed to understand that a static processing unit cannot produce very different sets of output - it can handle a lot of different branches of execution, but only those that are explicitly defined. Whereas some simple scripts to get the job done for a short while would have sufficed, they demanded that all output be generated by static compiled binary programs that they could run locally on their computers (no, they wouldn't shell out for a webserver or database server until much, much later, when they hired a new project manager with clue).

    Yes, it was maddening. No, I will never return to work for them under any circumstances (save a large 6-figure salary). And no, they never learned their lesson - they're busy making a giant funding model in a binary program, where the model's implementation is CONSTANTLY changing & being tweaked, having modules added & removed. The program will never get off the ground, but for the past 2 years they've been plugging away at it, desperate to come up with that holy grail of "Static process Ad-Hoc Reporting."

    May God have mercy on their souls.

    --
    i'm amazed that i survived - an airbag saved my life.
  54. Precisely! by redragon · · Score: 2, Interesting

    It's a hell of a lot easier to get a "programmer" to learn a scripting language, and make good use out it, than it is to take a "scripter" and have them learn a programming language and make good use of it.

    I'll use the AutoCAD example:

    AutoCAD has a built-in LISP interpreter. AutoCAD also has a C++ interface called ObjectARX.

    Many "CAD Managers" have picked up LISP (become "scripters") over the years and have used that to automate repetative tasks in AutoCAD. Although useful and helpful, this LISP code is often a train wreck. Suddenly they will reach a place where they can't figure out how to move forward, or need something beyond this simple functionality.

    You also have people that have "picked up" ObjectARX to write "C++" applications, that in reality are just LISP routines ported to C.

    Then you have trained "programmers" that understand OOP and design. These individuals can step in and make use of the "true" power of the engine that AutoCAD has. These same programmers can write LISP or VB/VBA if they have a "quick and dirty" or need a "proof of concept" app. However, you'll never have the other guys comming out with a real robust add-on like the "programmers" can.

    It's not that it's "descrimination," the issue is that people trained in CS are able to choose the right tool for the job, not "fumble around until they figure it out." This has unfortunately become the stigma for "scripters", because scripting is a lot easier to pick up than real software development methods, and as such you have people that may not really understand what they're doing performing the task.

    C

    --
    - Sighuh?
  55. Scripting Benefits by SegFaultCM · · Score: 2, Interesting
    I was in a contract to NASA a few years back. I was in a Configuration Management role and was replacing a more senior CM that was leaving.

    Everyone assumed I would simply pick up his work and continue with what was in place. Upon inspection, I realized a huge chunk of his build system was C-based, with some BASH thrown in to tie the Makefiles together.

    I took on a major task (of course without telling anyone =] ) and rewrote the build system in TCL (and improved the BASH imports to the Makefiles). I can't recall the imrpovement we had, but it was impressive. And it took a couple of weeks.

    It proved to the co-CMs the improvements that could be gained with pure scripting without any need for "code."

    --
    -- SegFault
    "One day, some time ago, something important happened."
  56. Law of leaky abstractions by MisterFancypants · · Score: 4, Insightful
    I think a lot of this discrimination has to do with the Law of Leaky Abstractions. In short, the further people get from the metal, the less likely they are able to fix any subtle problems that may arise when the abstraction breaks down. High level script languages are generally themselves just abstractions to lower level systems.

    Of course, some people who specialize in scripting DO know the lower levels too, and thus the law doesn't apply to them, but many people whose jobs rely around scripting activities would be stuck if their abstractions leaked...

  57. I disagree 100% by Ender+Ryan · · Score: 5, Insightful
    I've done my fair share of Perl, C, C++, Java, etc. programming, and I have to call BS on your comment.

    There may still be a small amount of truth to what you said, however, modern scripting languages are every bit as maintainable as C, C++, or Java. In fact, an incompetent C programmer probably is the most likely to create unmaintainable code, as scripting languages require less total code, and therefore it's easier to absorb quickly.

    Most scripting languages are designed around letting small problems be implemented quickly.

    True, but most scripting languages that are still widely used today have evolved beyond that.

    But in any case, you're certainly correct that they each have their place.

    Cheers.

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
    1. Re:I disagree 100% by martyros · · Score: 5, Insightful
      There may still be a small amount of truth to what you said, however, modern scripting languages are every bit as maintainable as C, C++, or Java. In fact, an incompetent C programmer probably is the most likely to create unmaintainable code, as scripting languages require less total code, and therefore it's easier to absorb quickly.

      What do you mean 'maintainable'? Sure, an incompetent programmer can screw up the best languages. But the programming languages aren't designed to help incompetent programmers -- they're designed to help competent ones. I remember reading about a study done in the 80's that suggested that experienced coders wrote as many bugs as inexperienced ones -- they just found more of them before the ship date.

      With that in mind, there's a hierarchy of places that bugs exhibit themselves, going from good to bad. The best bugs don't get written; the next best are caught at compile time. After that, are bugs which cause the program to crash immediately (fail-stop) and the worst are bugs that cause random, non-evident behavior much later down the road. Anything you can do to push errors up the hierarchy will make programs easier to debug and maintain. Hence strong typing languages, OO, things like that.

      Sure, all decent languages have comments, functions, ways to structure the code that make it somewhat easy to read. But last time I checked (which was a while, granted) Perl didn't have strong type checking to make sure you didn't pass the wrong kind of thing to a function. You have a handful of data types that do everything; it doesn't allow you to make assumptions about what other bits of code are/aren't doing, as you can with a properly-organized strongly-typed language. That's the next step in maintainability -- partitioning the thing into littler bits and making sure they work right, and moving errors up the hierarchy to compile-time errors.

      --

      TCP: Why the Internet is full of SYN.

    2. Re:I disagree 100% by Anonymous Coward · · Score: 5, Informative

      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.

    3. Re:I disagree 100% by igrek · · Score: 4, Insightful

      I think, you're wrong. First, you mix strongly typed languages with statically typed languages. Perl is stronlgy, but dynamically typed language, while C++ is weakly, but statically typed language. But even assuming you meant statically typed languages, your reasoning is flawed. There are 3 things that are pretty much orthogonal:
      a) language is OO
      b) language is statically typed
      c) language is 'scripting language'

      Examples:

      Java: a+ b+ c-
      CLOS: a+ b- c-
      Perl 4 (non-OO): a- b- c+
      Ruby: a+ b- c+
      etc.

      You can have any combination of these 3, but none of them correlates directly to maintainablilty.

    4. Re:I disagree 100% by leviramsey · · Score: 2, Insightful
      I think, you're wrong.

      I'm not sure you're thinking, and I'm certain that you're wrong.

      C++ is weakly, but statically typed language

      Bzzt. Wrong. C++ is strongly typed (try passing a Foo to a function that expects a Bar (where Foo does not inherit from Bar). That's strong typing.

      There are hacks to get around the dynamic typing (RTTI, mainly), but they're considered poor C++ practice.

    5. Re:I disagree 100% by SlashdotLemming · · Score: 2, Informative

      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.

    6. Re:I disagree 100% by leviramsey · · Score: 2, Insightful

      Aha... but you're not passing a Foo, you're passing a pointer to a Foo. Those are two completely different things (and every C++ programmer knows that).

  58. Static type checking is good by daveho · · Score: 2, Insightful

    One reason I would not feel comfortable programming a large project in a scripting language is the lack of static type checking. Compile-time guarantees about runtime behavior are a very, very good thing.

    Someone should invent a scripting language with static type checking. (Are there any?)

  59. Yes, scripters get short shrift by jlusk4 · · Score: 5, Insightful

    A topic near and dear to my heart.

    In places I've worked, the CM system (build, defect-tracking, patching, etc.) was written in scripting languages.

    The people who worked on it were never really considered to be "developers", even though the systems could have benefitted from requirements analysis, design and code review and modular development practices. That had two effects: the good software engineers who were scripters got frustrated, and the crappy hackers were able to slam in crappy code that worked fine but was fragile and hard to maintain.

    It's even easier to produce crap w/a scripting language than w/a compiled, statically-typed language. (Not that you can't produce crap with C/C++, don't get me wrong.) This ties in w/the preceding paragraph, but it's also a good standalone point -- w/out rigorous code review, Bad Stuff is going to accumulate more rapidly on the script side.

    That might be more a reflection of people's attitudes towards the kind of work that gets done w/scripting languages (quick-n-dirty) than a reflection of attitudes toward the programmers who do the work.

  60. Call me a PHB if you like... by platos_beard · · Score: 2, Insightful

    ...but if my programming department is going to have to maintain a system, I don't want some unknown in a different department who thinks he's a slick Perl scripter (programmer, whatever) creating that system. I want somebody I know and trust to put the system together with tools that will likely result in a maintainable system.

    Am I biased against Perl? Hell yeah. But only because I've used Perl. There are tools just as good for teeny tiny projects that won't collapse of their own weight if the grow to be any bigger. Some of them are scripting languages.

    Am I willing to spend more hours of programmers I trust so I'm less likely to get bit in the ass by sloppy work later? Hell yeah again.

    So am I biased against scripting? Hell no. But I will take actions that may look that way, especially to the Perl fanatic who doesn't get to play in the company's programming sandbox when I take away "his" project.

    Sorry

    --
    What's a sig?
  61. Standards by SomeOtherGuy · · Score: 2, Insightful

    Well if you can be sure that the same person who initiates the program will be around in 10 years to maintain it -- then go ahead and use 40 different scripting languages and 20 different compiled languages.

    However -- in the real world (where we have to request specific skillsets for our contractors upon one person leaving and another person coming) we have been forced to standardize on a handful of languages to ensure that we could get the job of 2 people done with 2 people. Not having to employ an extra Python or Perl guru just in case those few programs that the one guy who thought Python was cool and could do it "tons" faster than Java or C need to be maintained or added to.

    Sure -- we have extra up front time writing Java programs in a week when Perl could do it in a day.....But at least if we replace our "Java" resource with a "Java" resource -- we can ensure that future maintenence and enhancments to existing programs has a fighting chance.

    --
    (+1 Funny) only if I laugh out loud.
  62. Do Scripters Suffer Discrimination? by artemis67 · · Score: 4, Funny

    I'm not sure, but in my building, there are three bathrooms -- Men, Women, and Scripters.

  63. In response to scripting apps faster by azav · · Score: 2, Interesting

    I've brought the point mentioned in the top blurb that "some apps can be developed faster in scripting langs" to the forefront in our company. I code in Director's Lingo scripting lang and by using Director as opposed to C++, we have a 2 x improvement in the time required to create our products. That is, we are now 2 x faster at creating our apps.

    From a personal point of view, I think in English, not C++ or javascript. Complex syntax rules generally induce voilent convulsions in my tiny little brain. If a syntax follows the way I think, then I code my projects faster since I don't have to stumble over an obtuse sytax. Now, lingo supports "the property of object" and object.property - so we have a verbose syntax and a dot syntax. Though the dot syntax takes less keystrokes, the verbose is a dream to debug (for me) because I can read it like reading a sentence. it instantly makes sense. This makes me wonder why more languages do not support multiple syntaxes.

    In case you're wondering, with this scripting language I've been able to create robust libraries (foundation classes) so the fact that it is not a "real" programming language is pretty moot to us. We have a C++ guy. Now, if he can only learn to create Director Xtras...

    --
    - Zav - Imagine a Beowulf cluster of insensitive clods...
  64. Re:perhaps... by bwt · · Score: 2, Informative

    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.

  65. Scripts saved us thousands by semper · · Score: 2, Interesting

    I work as a tester for an embedded systems software group. When I started here, all of the tests were hand written and formatted. With information coming out of various databases and models.
    Basically, none of the programmers wanted anything to do with formal testing so the process was a mess. I decided something had to be done. With the use of a MatrixX script and some Perl Scripts, a process that took 4 hours was reduced to 15 minutes.
    Needless to say, this got a lot of attention. Since then, the company has decided to start sending people to training to learn scripting languages.

    --
    Unfortunately no one can be shown what Linux is, one must experience for oneself.
  66. What is the difference? by Superfreaker · · Score: 3, Funny

    I use VB SCript in my ASP development- am I not a programmer? I thought I was. That's what I told my Mom I was. She'll be so disappointed.

    That means I'll have to chnage my business cards :-(

    Seriously, what is the difference? Depth of the manguage? I don't know.

    1. Re:What is the difference? by cranos · · Score: 2, Insightful

      With all due respect, you are not a full programmer you are a web developer, that is something different. Trust me I am also a web developer, though I am trying my damndest to step up. If you want to be a programmer, learn more than just a bastard son of a crappy language.

      I realised this a while ago, and now I have a basic grounding in Perl, PHP, Unix Shell Scripting, C++ and Java, all of which I can build on to further my knowledge base.

      I don't claim to be a l33t coder or anything like that (I mean look at my C++ code- uurrgggh) but at least I know the value of not putting my eggs in one basket.

  67. Happens all the time by DG · · Score: 4, Insightful

    A quick aside: I HATE the term "scripting", as if it were some degenerate form of "real programming" - especially with feature-rich languages like perl that never have to call other applications.

    Anyway, first-hand experience: thanks to the concept of perl modules and the incredible CPAN archive, writing applications that have to go to the network for things like HTTP or (especially) LDAP are trivial in perl but seriously heavy lifting in C.

    You also get string parsing, regular expressions, and garbage collection built right in. Not to mention the incredibly powerful (from a code legibility standpoint) associative array or "hash" data structure.

    Believe it or not, correctly written perl is orders of magnitude more legible than C or Java, because it works at a higher level of abstraction.

    I wrote an LDAP->LDAP replication program, with schema and data format translation, in a couple of hours using perl.

    Doing stuff like comparing the contents of a database dump (provided as a CSV) against an LDAP directory is trivial in perl.

    C is best used when you won't have a perl environment availible and need the binary to stand alone. For pretty much every other task I've encountered in the last 6 years, perl got the job done faster and with much better maintainability.

    DG

    --
    Want to learn about race cars? Read my Book
  68. System Administrators and a scripting culture... by Lodragandraoidh · · Score: 4, Interesting

    I followed the programming (as opposed to hardware) branch within the Computer Science degree program at my University. At the university there was no stigma placed on one language over another, and so armed with my previous experience with basic, pascal and fortran, I dove into classes on perl, sed, awk, and Unix shell programming, as well as C++, Java and Lisp.

    My first job was as a Unix systems administrator/technical support weenie on an proprietary embedded system. The system did not have (and it was not legal to add, without breaking our maintenance agreement) a compiler. So, any automation we needed to perform was in the form of shell scripts.

    I ended up building a full blow interactive application that hundreds of people use on a daily basis to this day. The last bug for this system was found in 1999. Scripting allowed us to extend the functionality on that system, and all of the design tasks and lifecycle considerations were the same.

    I have been in several projects since then, big and small. In every case I always was able to make the decision to use a scripting language if I thought it appropriate (for example, we needed to perform remote administration on hundreds of machines; what better way to automate this functionality than with Perl and Expect.pm - so I did). As a developer I always keep my eyes open for the most efficient means of getting the job done.

    Perhaps being a system administrator for a time helped me avoid the stigma associated with 'scripting'. To me it is all just programming - plain and simple. Those that limit themselves and don't grok as many languages and methods as possible are selling themselves short. Today I am extending my abilities by teaching myself python, and extending my perl repetoire with perl/Tk.

    Holy wars are only an overt attempt to subjugate other's ideas to your own. Its wrong - so, STOP IT!

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  69. Not in my workplace... by SamBC · · Score: 2, Insightful

    Speaking as a coder proficient in multiple languages, in an environment where as a team we cover many many areas and languages of experience, I would say this does not happen.

    The reason being not that management lacks any bias, but simply that management don't tell us what to use - they trust us techies to make such decisions accurately. It's part of our job...

    Sam

  70. Scripting Is Becoming Programming by silvakow · · Score: 3, Interesting

    In 1993, programming was done in C and scripting was one in .bat files or shell scripts. It would be fine, even good to descriminate between scripters and programmers in that environment. Then HTML came along, which was more of the same thing. Any old joe can write HTML, but real programmers use C++.

    In 2003, however, the difference between scripting languages and programming languages is not so clear cut. C can be used to script the CGI that holds up a simple website, and perl can be used for writing programs.

    Is Java a scripting language? It has constraints similar to that of any other programming language, but technically runs on top of a virtual machine and is thus a scripting language. Scripting languages will continue to become more powerful and more difficult to use, and this will further blur the line. With perl even gaining the ability to be a compiled language, it's often hard to tell a programming language from a scripting language.

    In this way, how can you really look down on a scripter because of the choice of programming language when C and perl are almost interchangeable for many tasks?

    --
    In the long run, we're all dead.
  71. Re:Certainly not by RJM · · Score: 4, Informative
    CSS is in a wierd niche - unneeded for simple pages, and too weak to do what Flash can do. Most of what CSS is usually used for can be done on the authoring side, with Dreamweaver templates or something similar. CSS also interacts badly with firewalls and proxy servers that edit out hostile content. If you really need exciting animated graphical effects (and you usually don't), Flash has far better capabilities.

    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.

  72. Don't blame the intern! by Beetjebrak · · Score: 5, Insightful

    Why did you let an intern deviate from company standards??? I don't blame the guy/gal for being a beginner and thus writing "sucky" scripts in whatever language. But you guys have been so plain DUMB for letting the intern go ahead with Python and Ruby knowing full well that you couldn't support these languages. It's sometimes too easy to just blame the intern... YOU (experienced script guru familiar with company policy) should have instructed him/her (fresh out of school newbie) to use Perl and nothing else. And if that weren't an option, why did you hire this intern in the first place?

    --
    Learn from the mistakes of others. There isn't enough time to make them all yourself.
  73. Managers making technical decisions by PurpleWizard · · Score: 2, Insightful
    So many managers make the decisions you have to wonder what it is they understand.

    Some (like my boss) know C++ (sort of) and Perl (he's just been building the web site). Others only know C/C++ as being real languages and think of some of them as childs things. It then comes down to how much they rely upon the advice of their technical staff.

    So I'm not so sure that it is discrimination as opposed to ignorance.

  74. This is why I use VB and ASP. by BoomerSooner · · Score: 3, Funny

    One language, one platform, one big piece of shit.

    Nevermind I just forgot my point...

  75. no, it _is_ credible by n3k5 · · Score: 3, Insightful
    There is no problem that would be substantially easier to solve in, say, Perl than in, say, Java. Java has its restrictions, but no severe flaws that complicate things that would be trivial in Perl. There are Java packages that give you Perl-like regular expressions, self-modifying code, a scripting language, 'practical extracting and reporting' and all the other goodies that come with Perl.

    So, when you have a problem that is perfectly suited for Perl and can be solved by a Perl programmer in a few hours, it can also be solved by a Java programmer in hours. But only by a Java programmer who is already familiar with the aforementioned packages and doesn't have to search, install, evaluate, choose and learn them first. Most Java programmers, however, are more familiar with Java-typical problems and familiar with Swing, J2EE packages and the like. Those could easily waste two weeks writing clumsy code for something they're not experienced with.

    ... that couldn't be solved within 2 or 3 times that length of time ...
    These numbers are ridiculous. A factor of two or three is virtually nothing in software development. It is common that some programmers are ten times faster solving the same task as other programmers who use the same language and went through the same education. If you wanted to prove that a particular language is better suited for a particular task, you'd have to conduct a huge case study in order to get somewhat useful averages in the end. Just comparing two programmers and then concluding "one was faster, so his programming language is better" is just nonsense.
    --
    but what do i know, i'm just a model.
  76. Caveat to the Small Fish by tarsi210 · · Score: 4, Insightful

    The problem I run into with scripting (and indeed, other languages) is that I am one of three programmers at my business and the most experienced in a diverse number of languages, both programming and scripting. I try to use the right tool for the job....Perl for quick string manipulation, handling webpages, PowerScript to ease the pain of banal Windows programming, Visual C++ to handle the lower-level, API-humping apps, and pure C to do fast work when I need speed.

    However, it has come around to bite me on the ass. For instance, I am the only programmer that knows Perl. As good as the tool may be, the company now regards me as an enigma -- something to be dealt with by procedure, policy, and backups. I am now being forced to document my code to a level at which a non-programmer could figure out what's going on and stumble through it. The same with the IDEs (if applicable). My code was well-documented and written before, any competant programmer should be able to pick it up. I am not being forced to do this for languages for which we have other people that know them...just the ones I am the sole intellect on.

    So, as a warning to all of you trying to use your scripting or programming abilities for the good of your job. Good idea. But watch your ass or you'll end up writing n00b manuals for the rest of your days.

  77. total cost by chazman00 · · Score: 2, Interesting

    It may take a week to code what takes an hour to script, but over the life of that script how much maintanence will it require. What you gain in a few extra hours of coding, if done correctly, can create a lifetime of savings.

  78. Nope by Luke · · Score: 2, Insightful

    I write software that handles a lot of Citifinancial's processes - 90% of it is in perl.

    When I have to write something in C it's just never as easy or bug free.

  79. Yes, and partly language designers' doing by GCP · · Score: 2, Insightful

    C/C++ is sort of an exception because it was meant as a jack-of-all-trades before more focused tools were created, but...

    A language like Java or C# is designed with an attitude that it will be used as the foundation for building software systems. It is for creating new systems and new data, and it is at the center of those new systems.

    In contrast, I often hear Larry Wall (Perl) or Matz (Ruby) make comments that sound as though their tools are designed to accommodate themselves to legacy data and legacy systems.

    Java and C# tend to say, "this is the new way to do things", while Perl and Ruby say, "we're doing our best to accommodate the legacy ways your systems do things".

    I'll give you a concrete example: Unicode. Both Java and C# did the smart thing (for a foundation for new things) and said, "in our universe, all text is Unicode. Period. No messing around with old, crippled text encodings. We work only in Unicode, all of our APIs are pure Unicode, we only need one deep set of global APIs (instead of many alternative, shallow sets of regional APIs), and if you're smart, you'll set up your auxiliary systems (the database, for ex.) as Unicode systems, too, because that's what we use here." They can convert from legacy encodings to bring old data "into the system" and convert to legacy encoding if necessary to spoon feed some older "outside" system, but the real system is a Java or .Net world in which there is one canonical, universal, modern format for text data.

    In Perl and Ruby, the idea is, "well our job is to slice and dice other system's data, that's what we do, and we have to accommodate the many text encodings out there. We don't do anything really deep. We do basic, solid byte-pattern matching and processing without any real deeper understanding of language, because the encoding could be anything. We can't assume everybody uses Unicode". Meaning, in essence, we can't make rules of our own, we have to conform to whatever the real system wants.

    It's as if some scripting language designers see their tool as a wrench for tinkering with engines, while the designers of Java and C# see their languages as tools for building engines.

    This is an overstatement of the difference, of course, just for illustration of my point. Certainly Java is sometimes used as no more than "glue", while Perl is used to build whole systems, so there's a spectrum here. And Perl is trying to retrofit fancier linguistic features onto a scripting base as it grows into a "big language".

    But I see the difference that leads to the bias referred to in the article as coming, at least in part, from the original language designer's concept of the centrality of his language's role.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  80. Quick Perl may cost you $$$ by notany · · Score: 2, Interesting
    There is nothing wrong with scripting languages. They are creat. But... somehow hurry + medicore programmers + scripting ends up into costly mess.

    Using traditional programming languages usually involves thinking phase. Something that quick use of scripting does not seem to involve. Have you seen Perl code reviews lately?

    The three principal virtues of a programmer are Laziness,Impatience, and Hubris. See the Camel Book for why.Maintain perl code to see why not.

    Solution: Debug all ductape coders from your system. Let all remaining use the best language.

    --
    Dyslexics have more fnu.
  81. sh + sed vs. Java by pmz · · Score: 3, Insightful

    I watched someone spend an entire week writing a Java program to parse a text file even after I told them a one line sed script could do the same thing.

    It isn't so much about discrimination in the racial or sexist sense, it's about technical ignorance coupled with a reluctance to learn. Fortunately, a person doesn't have to learn the 5 billion different scripting languages out there to resolve this--just sh plus sed/awk or PERL would save weeks of time. The ROI on scripting is at least ten-fold and often much more.

    1. Re:sh + sed vs. Java by tinrib · · Score: 2, Insightful

      I watched someone spend an entire week writing a one line sed script.

  82. "Executive-level" management by deanj · · Score: 2, Insightful

    If "Executive-level" management is making decisions on what programming language people should be using, they're sticking their nose were it doesn't belong. Lower level management (if even that) should be making that decision. Deciding what to use based on biases is always a mistake. I like Java a lot, but using it when something else would be better is a serious mistake....and visa versa.

  83. Re:Yes by deanj · · Score: 4, Insightful
    Amen to this. I'm sick of hearing how people can do anything in "insert-language-here". Well, sure, but just because you CAN doesn't mean you SHOULD. I think a lot of this has to do with the maturity of the programmer, and they're willingness to learn new things.

    ...like they say, when all you have is a hammer, everything looks like a nail.

  84. The way out: "Prototyping Language" by mengel · · Score: 2, Insightful
    Tell Management that the scripting language is being used only to quickly develop a prototype, and that then the prototype will be re-implemented in a "real language" later, with profiling tools used to determine the priority order of which modules get re-implemented first.

    Once the thing works, if it performs well enough, the resources to re-implement will dry up.

    Once enough of it has been done in a compiled language (that is, about 20%...remember the 80%/20% rule). resources to re-implement the rest will dry up.

    Soon Management will realize this new "Prototyping Paradigm" saves them resources, but gives them plenty of busy work (re-implementing scripts in compiled code) for when they need to look busy, and it will turn out to have been Their Idea All Along.

    --
    - "History shows again and again how nature points out the folly of men" -- Blue Oyster Cult, 'Godzilla'
  85. Government Contracts by lobsterGun · · Score: 4, Interesting

    I don't know why they make the disctinction, but certain contracts let by the government contractually define a difference between 'coding' and 'scripting'. On any given contract, some roles may allowed to do both, some one or the other, some neither.

    As an example, project managers are not be authorised to code or script, software engineers may both code and script, technical leads are not allowed to 'code' but are allowed to 'script'.

    My only experience with this policy cones second hand over lunch. It is the case of a small project that consisted of a project manager, a tech lead, and an a small number of junior engineers. The engineers were allowed to write 'code', the tech lead was allowed to 'script', and the project managers duties were restricted to scheduling and budget. Though it sounded like a good idea, schedule concerns required that the tech lead contribute to the project. Since the tech lead was not allowed to bill for time spent 'coding' it was decided to write the project in Perl (since it was considered to be a scripting language).

    I don't want to get into a Perl flamewar, but I don't think anyone can disagree that Perl is not an appropriate choice of language for production systems. Perl _can_ do everything that a more structured language can do, but it doesn't necessarily do them well (it doesn't encourage good software engineering practices, has a steep learning curve, can be cryptic).

    I've probably dis'd Perl too much already. flamewar is certain to follow. I'll stop more before I incite a holocaust. Suffice it to say that Perl wasn't the best choice for that project, yet the distinction between sripting and coding effectivly made it a requirement.

  86. Re:Mountains and molehills.. (Python apologia) by parliboy · · Score: 4, Funny
    it doesn't matter that e.g. Python would only take 10 lines and is easier to read, if there is only one person at the company who knows Python, and the other 30 developers only know C/C++/Java.

    If those 30 developers can't decipher all of 10 lines of python (or any language) it's time to get some new developers.

    --
    "You're never ready, just less unprepared."
  87. Training by Synn · · Score: 2, Interesting

    The problem with that idea is that a CS degree doesn't instill the drive or values required to become a really good programmer.

    I feel you really need to be a self learner in this field, because by the time a language or idea is in the colleges, more likely that not brand new better ideas are already on the horizon. You have to be able to constantly self teach in order to keep up with the trends.

    That takes a passion for the technology which you can't pin down in by looking at the certs someone may have.

  88. Scripting languages or "scripters"? by gibber · · Score: 2, Insightful

    I think that the issue really comes down to the difference between "scripters" and "programmers" not scripting languages and programming languages.

    Scripting languages allow the "coder" ("scripter" or "programmer") a great deal more expressiveness in their coding environment -- they are a more effective way to create ideas in code, often at the expense of some runtime performance. The rigid and non-introspective nature of compiled programs typically yields better execution performance at the cost of time taken to accurately describe the problem in the code.

    The terms "Scripters" and "Programmers" seems to hang on the "coder's" understanding of how the code specifically interacts with the problem. Since scripting languages offer higher levels of abstractions, an uninformed coder ("scripter") may not be aware of the complete ramifications of their code. They are distanced from the computer's actual behavior by a great deal of abstraction. This is true for compiled programming languages too (or anything above, say, microcode), the difference is how much is being abstracted.

    The ideal situation would be to have a "programmer" writing in a scripting language (mixing in compiled code when performance dictates, which it does sometimes). If your only available coders are "scripters" you may do better to have them write in a compiled programming language so they are aware of more of the execution environment.

    Personally, when approaching projects of great scale and criticallity, I belive greater scripting language usage is important to be successful. The key is to have "programmers" writing the code so they can make informed decisions on when and where to use compiled programming languages.

    I'm currently resisting the urge to go on and on about why scripting languages are important to scaling and criticallity ... introspection ... dynamic typing ... late binding ... evaluation environment ... in place rapid development ... abstracted stack exception handling ... *gasp*! cough.. cough..

    I guess I'll be modded down for that lack of self control.

  89. It's not entirely unreasonable by njdj · · Score: 4, Informative

    I'm basically a C++ programmer, but I like and use Perl for smallish text-processing tasks.

    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 ... probably not very much.

    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.

  90. Actually the right way is to use both languages by Anonymous Coward · · Score: 3, Interesting

    This "either or" stance is false. Scripting *is* programming and to be a decent programmer you need to know both a compiled language and a scripting language. Programmers who know only one language can not be called professional programmers in a true sense of the word (BTW in old days one needs to know assembler and a high level language to be called a professional programmer; Programmers who can program, say in only Fortran, or PL/1 were often called suckers ;-)

    Moreover in complex systems it's much better to use both.

    The main advantage of a scripting language it that it permits writing five or more times less lines of code. For a large system this is a tremendously important consideration. Many projects died just because the codebase size exceed a reasonable limit and thus IQ of the development team and the resources of the organization to maintain it.

    When you have that much less code, it's not only easier and cheaper to maintain the codebase, the design itself can be more better. This is the same consideration that eventually killed usage of assembler language for writing compilers. Moreover the time to create the first version and cost of the development can be considerable less. That's why scripting implementation is often done as a prototyping phaze.

    But for most complex projects the development team can benefit from using both scriptnng and a regualar compiled language from the very beginning to the very end of the development cycle and coding different parts of the system in the most appropriate language

    In this case you need a scripting language that links well with your base compiled implementation language (for example TCL+C ) but that gives a lot of possibilities to structure the system more flexibly.

    One important possibility is to have an internal scripting language for the system that you are developing. That is an important advantage for a large class of systems.

    All-in-all scripting language is more important on the initial, exploratory part of the system life cycle. As the system became more mature and design stabilize, it might make sense to rewhite some parts of the system in a high level language. If speed is of primary importance all the system can be rewritten, but this is a pretty extreme and rare case.

    One can consider Java as a language sitting between two chairs: it's too verbose and low level to compete with scripting languages and it's too slow and inflexible to compete with classic compiled languages like C and C++.

    But still using Java is a compromise that helps to achieve some benefits of scripting language and some benefits of compiled languages while using a single language. The main problem is that you often need to write 5-10 times more lines of codes in Java and that's a huge cost difference.

    See http://www.softpanorama.org/Scripting/index.shtml for more inforamtion

    - Nikolai Bezroukov

  91. Technology choices are seldom rational by frank_adrian314159 · · Score: 4, Insightful
    Quite often the technically best technology for a job is not chosen. Many times who is available to work on the code, how sustainable management believes the resulting code will be, and, quite frankly, a plethora of non-technical issues that management views as more important will have more impact than any technical criterion.

    After all, if technology selection was rational, everyone would be using Lisp or Smalltalk.

    --
    That is all.
  92. The problem isn't scripters by SCHecklerX · · Score: 2, Insightful
    It's VB scripters :) Actually, I'm somewhat serious on this one. I think the bad reputation that 'scripting' gets comes from the influx of incompetent programmers that come in from temp agencies when any given company decides to outsource some part of in-house programming.

    Scripting isn't the problem. Slop and using the wrong tool for the job is. Ever try to write an 'application' using Microsoft Access? I was forced to when working in the temp industry...now that I use Apache/DBI/Embedded perl to do much better applications I am so much happier!

    Pretty much all of my sysadmin and desktop customization on my linux boxen are done with a combination of bash and perl. Same with my web databases. Right tool for the job and whatnot...

  93. IMHO it all comes down to definitions... by HalfStarted · · Score: 2

    I do not think it is a matter of languages... like others have said... they are really just different tools. Actually they are well, just different languages, some are more conducive for conveying different tasks than others are. Anyway back to the point, it really has to do with the labeling of people as either a Programmer or as a Scripter. Let's start with definitions. Now remember this is my opinion and should not be read as being an attack against scripters (in fact most of you that script primarily are actually people I would classify as a programmer).

    A Programmer is a person who has a solid understanding of computer operation and a backing (either formally or informally) in computational theory. Because of this a programmer usually demonstrates the ability to learn new languages (interpreted or compiled) quickly and is more apt to choose the more appropriate tool for the job when given the flexibility to do so. Further more through a more thorough understanding of how various computer languages behave a programmer is capable of implementing a workable (i.e. maintainable and adequate) solution to a problem when the ideal languages are not available.

    A Scripter on the other hand is someone that I would view as being of lesser skill or general understanding than a programmer, even though they may possess a deep understanding of any one or two "scripting" languages. I base this on my belief that scripting languages in general where created for one of two uses 1) to automate or simplify specific tasks for programmers to save them time while they are solving more complicated problems or 2) abstract complex tasks or provide interfaces for complex tasks for non-technical or less technical employees to work with.

    So a programmer writing in PERL is just that... a programmer writing in PERL where as a game designer that is writing in his or her shop's game scripting language is just a scripter. (They are still a game designer something that I give them mad props for, I for one am very creative but about as expressive and artistic as a dull brick, but in the context of programmers and scripters they are scripters.)

    Now as for the discrimination, that may me a bit harsh of a term to use but I do concede the fact that yes I have seen behavior that would lead itself towards that interpretation. Most of what I see falls into two categories, first would be what I would call programmers thorough understanding of computers and computational theory looking down on scripters because they are viewed as less competent or knowledgeable about computers. Not making a judgment call on this here, also its nothing new... you see it anyplace you have a group of people that consider themselves in the "in" verses those in the "out"... the stereotypical technical support view of a marketing or human resource employee for example. The second is when management miss assigns a task to a scripter or a programmer either giving the programmer a task that should really be assigned to a scripter or more damaging giving a task that should be given to a programmer to a scripter. In the first case the time of a programmer is wasted solving a problem or implementing a solution that should have been given to a scripter, at the very least it is a waste of programming resources that could be better spent solving technical problems that are outside the abilities of a scripter, but more often that not the programmer is being asked to solve a problem that while they have the technical skills to solve may not have the best background in understanding of the product, intent of the product or general artistic capability. The second situation, the one that I feel is more dangerous, when a scripter is given a task that should have been assigned a programmer at best produces a substandard solution that in the long run will be difficult to maintain in the long run. Many times though the solution is worse than that resulting in eventual product failure because it is not possible, or un-scalable, un-maintainable because of language changes, etc, etc. On top of this when successful management's perception of having a quick and cheep solution in scripters and scripting languages that can be used to solve all of their companies problems is perpetuated and if the projects (usually when not if) the projects fail or it is finally realized that to continue to scale they have to be reimplemented by programmers the unfair perception by programmers that scripters are unskilled and uneducated in the ways of the computer are unfortunately reinforced.

    Ok... I probably babbled a lot more than I intended and took way too many lines to say way too little... ok... I guess I must have had some pent up angst or something.

    Unfortunately this post was not cut short by the need to do real work

    --


    Have you thought for yourself today?
  94. Supportability by johndeaux · · Score: 5, Informative

    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.

  95. Guys...cant we work this out? by uberthinker · · Score: 3, Insightful
    Scripting provides the imperative edge to tasks that are essentially declarative When this barrier gets hazier, you have scripting lanaguages that look like programming languages, and vice versa. The real danger is that of scripters or programmer failing to understand the implications of moving to the other domain. Thats when you have, for eg, the web page from hell - asp/jsp that creates a page full of javascript that creates html which embeds a call to another jsp/asp which opens a socket to include the contents of another asp/jsp. Programmers and scripters live for this kind of masochistic fun.
    Here're my tips to keep both sides productive and respecting each other:
    • Have one predominant style:scripting or programming:That way everyone agrees on the pecking order. if you dont like it, jump ship.
    • Define roles that compartmentalize scripting or programmingThat way nobody gets in anybody's way.The web scripter sticks to jsp/asp/whatever, and calls compiled code developed by the programmer to do the heavy duty stuff.this code does not have any UI code in it.
  96. The Difference by Eric+Savage · · Score: 3, Interesting

    OK, so a big question is what is the difference between scripts and programs? To me, a script is something you just write. A program is something you design, then write. I don't really care what language its in. A 10 line Java program that does some simple operation on args is a script. A huge multi-module Perl file/script is a program. There are other terms to differentiate what most people are talking about, its simply compiled vs. interpreted.

    Re: The Main Topic

    This basically means the difference is that programmers can script but scripters can't program. *ducks* Seriously, if you are writing complex enterprise-critical applications in javascript, you aren't a scripter, you are a programmer (who probably made a bad language choice). Conversely it you are just running search and replace on open source C code to suit some minor business requirement and compiling it, you aren't a programmer.

    --

    This is not the greatest sig in the world, this is just a tribute.
  97. Wtf is a 'scripter'? by autopr0n · · Score: 4, Insightful

    Anyone worth their salt should be able to code in either scripting languages or compiled languages. If they can only handle a few scripting languages like Perl or Visual Basic then of course they should be discriminated against. They're 'real' programmers, sure, they're also bad programmers.

    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.

    No see, what the hell is this? Why couldn't a Java or C++ coder write the same Perl or Python script? If Python is a better solution, you should bring it up with your boss. If they don't go for it spend the extra time and collect the extra cash (assuming your hourly)

    And secondly, I seriously doubt that a Python program could be written in hours that would take weeks in java, unless the coders are completely incompetent. Java has a rich API and is pretty easy to use.

    --
    autopr0n is like, down and stuff.
    1. Re:Wtf is a 'scripter'? by WetCat · · Score: 3, Interesting

      Yes!
      There was a task:
      There was a file with ~600 URL links with real media. A task was to check those URLs.
      My TCL solution took me about an hour and was accepted.
      Another persons' Java solution took 2 weeks of his time and was not debugged at all.
      that other person vas VERY experienced in Java and
      wrote a lot of projects in it.

  98. The race is not always to the swift... by janda · · Score: 4, Insightful

    Dickerson wrote:

    If you put the world's most talented Java developer and the world's best Perl programmer in a room and gave them an unstructured textual document to parse, I would put my money on the Perl programmer to finish first.

    There is no such thing as an "unstructured textual document".

    The person who finishes "first" does not always produce the "best" program.

    What are you going to do in a year when all the developers are gone, and you need to update the program for some reason?

    If you're going to create situations where your pet language will win, let's talk VSAM file manipulation. :]

    Finally, as Dickerson seemingly fails to understand, choice of language should be as close to the programming staff as possible, not with the buzzword-laden clueless managers.

    --
    Karma: Food Fight (Mostly affected by Date Plate).
  99. Oh please by autopr0n · · Score: 3, Funny

    If you didn't lay out the tranistors yourself, you didn't do shit!

    --
    autopr0n is like, down and stuff.
  100. HEY! Who has the Authority here? by Courageous · · Score: 2, Insightful

    As a senior technical consultant for my company, I do not generally recognize any the Authority of any person, outside of the Customer, to specify which programming language I shall use. If the manager types think they know so well, I ask, why aren't they writing code?

    Leave the technical decisions to those most closely coupled to the technical problem. Perhaps a few companies should learn a bit from Demming.

    C//

  101. begging the question by sbwoodside · · Score: 2, Interesting

    "is only enterprise coding REAL PROGRAMMING"

    In other words, you have assumed that the answer to that question is "yes" therefore you are dismissing so-called scripting as not being programming since it's not up to the task of a real enterprise level system (which I disagree with as well, but that's another post and another story).

    Small, one-off jobs sometimes (often?) get overengineered because people start throwing around the term "Enterprise Level" like it's a foregone conclusion. There's lots of cases where, even in a true enterprise, the task at hand is small enough and isolated or isolatable enough that scripting is not only possible, but the better approach.

    simon

  102. God is in the chip tracings by theCat · · Score: 5, Funny

    It seems like the deeper you have to go to get something to work the more immaculate you are. Like everyone is hovering somewhere above laying down silicon, the further away from tracings and transistors the less holy.

    In this regard machine language programmers spank assembly coders, who spank compiler builders, who spank those who use compiled lanagues, who in turn spank scripters, who would spank spreadsheet macro writers if those people ever came to the party. Of course everyone is aiming at getting particular patterns of electrical potentials established across specific etched wires and via arrays of transistor gates. But some of us are closer to God and everyone knows it.

    I figure it is just like any other religion. Closest to God are the self-flagellators, ascetics and grazers, those who abuse the flesh and the mind in order to get to the bare naked truth of God. They would dream in machine code but speak not a word anyone could understand, just mumble. Then the mendicant monks and wild holy men, clinging at the gates of the city, begging alms, pitifully beseeching to God; assemblers. Less mentally scattered beggers with pens would write very terse, almost insane ramblings about how the world is actually made, their searing visions what we would call compilers. Those who would actually take those insane ramblings and teach them as a path to truth? They use languages that rely on the compilers and most people would call them preachers and spiritual leaders and merely pity the others, if not fear them.

    I take my religion easily. I don't preach, and I am not a missionary; nobody is gonna be saved by me anytime soon. I conduct the rare bit of working sorcery, often for personal gain but not always, and my relationship with God (or Goddess as the case may be) is functional and laid-back (obviously). And I'm a scripter. I code to please myself as well as the higher powers. Mostly myself. If it works, groovy God is happy too. Hey I got other things to do besides obssess about Truth and my navel, OK?

    It's those Nancy boys writing spreadsheet macros that are wasting their time. Rookies. ;-)

    --
    =^..^= all your rodent are belong to us
    1. Re:God is in the chip tracings by DrewCapu · · Score: 2
      "It's those Nancy boys writing spreadsheet macros that are wasting their time. Rookies. ;-)"
      I resemble that remark (and am ever so slightly proud of it) =). Some of the work I end up doing in the course of a workweek is exactly that: taking a bunch of figures, putting it into excel, and running macros on it to make it all nice and pretty.

      I do this because:
      1. MS VB is the only programming tool I have access to.
      2. The managers I do this for can't seem to do any of this stuff on their own.
      3. Gives me a little bit of job security.
      4. It breaks the monotony of the other dull tasks I'd be doing instead.
  103. Re:Nope by benzapp · · Score: 2, Funny

    Please erase my student loan debt. Please Please Please.

    I will do anything you ask. I will be your slave for a month.

    Free human servitude.

    You will never get caught, I promise.

    --
    I don't read or respond to AC posts
  104. on the flip side by aeoo · · Score: 2, Insightful

    As you say, "Bad Stuff" thends to accumulate more rapidly on the script side when the conditions are bad (such as when not following basic engineering best practices).

    On the other hand, in the hands of a skilled programmer and in a good environment, "Good Stuff" tends to accumulate more rapidly on the script side too.

  105. Do Scripters Suffer Discrimination? by mrowlands · · Score: 2, Insightful

    As a consultant who has worked for a wide range of company types..... from isp's to government organisations, I have observed that the closer a businesses managerial competences are aligned with engineering competence, the less likely they are to have hangups over the tool you use to get the job done. As you get further out on the edges, the more inclined managers seem to want you use "whatever our main system runs" to fix problems....

  106. the difference between scripting and non-scripting by aeoo · · Score: 2, Insightful

    The difference between "scripting" and "non-scripting" languages is vanishing. Look at Parrot and Perl 6. Ruby is rumored to be getting its own VM (just like Java). Python has Psyco (Python Specializing Compiler, I believe).

    On the other hand, look at clisp. Clisp has an interactive environment. So is clisp a "Scripting" language, even if it was probably invented before the whole "scripting" meme came about? If I make (or buy) an interactive environment for Java, does Java become a scripting language? What about ocaml where you don't have to specify the types, but they are inferred and enforced by the system, AND it comes with a compiler AND an interactive environment AND a VM...so what does that make ocaml?

    I find this whole talk of "scripting" vs. "non-scripting" to be total and utter bollocks. There are good and bad programmers. Period. There are idiot Java programmers who make spaghetti code. There are brilliant Perl programmers who write clean, object oriented code you can understand that doesn't look like line noise.

    It comes down to dynamic vs. static typing. Is there any *REAL EVIDENCE* that static typing results in better code when all else is equal?

  107. Like a herd of lost sheep... by RoadWarriorX · · Score: 2
    Here is an example of why some scripters do not know what the hell they are doing sometimes:

    One day, I a co-worker of mine asked me to help him figure out why was his component code for updating a sorted directory was not working as fast as he hoped. The code was in Visual Basic. He told me that initially it was working well, but after getting into production, the code "decided" to become slow. He was a decent VBScript scripter from what I observed before, but this was his first real Visual Basic code. I changed my opinion of him when I saw the code. This code was real production code, in Visual Basic at one time...
    Private Sub sort_array(ByRef ga as Variant(), ByVal gsize as Long)
    Dim i, j
    Dim temp

    For i = 1 To gsize
    For j = 1 To i
    If ga(i) < ga(j) Then
    temp = ga(j)
    ga(j) = ga(i)
    ga(i) = temp
    End If
    Next
    Next

    End Sub


    Now, who the hell still uses a friggin' bubble sort to sort a large array? This person certainly did. I asked him "Where did he get this code?". He stated that he found it on the net. After explaining the reasons why this code could be better with a Quicksort, I got the impression that the code was over his head. I ended up writing the code in C++.

    The moral of this story is that some of the scripters, especially those who have never had a lick of computer science, have the mentality that they can do the job in less coding time than the compiled languages. For the most part, it is true. The scripting languages have their place. However, once they get into the realm where performance actually matters, then scripters are like a herd of lost lambs trying to find their mommies. They do not know jack. If I can teach them a thing or two (and they remember it), then their value increases in my book.
  108. A better definition by autopr0n · · Score: 3, Interesting

    Would be to say that 'scripting' is a subset of 'programming'.

    --
    autopr0n is like, down and stuff.
  109. I disagree to the disagreement by iion_tichy · · Score: 2, Insightful

    scripting languages require less total code, and therefore it's easier to absorb quickly

    This often heard argument simply doesn't hold. Perhaps some script that looks like
    skjhsd ~/skjh /%askf a $$ kjs hf$"$ s
    can really do the same thing as a half page Java Program. But to debug it, you might need to read a 50 page manual and take consciouness enhancing drugs.
    Not that I think Scripting languages should be discriinating against. I can relate to comapnies who want to focus on one language, though. At least it sounds like a good idea, otoh I don't know if it's very realistic.
    In any case, Programmers could still use scripting languages to speed up their coding in other languages, ie for code generators.

  110. Engineering. by antis0c · · Score: 2, Insightful

    How about that? I'm an Enterprise Systems Engineer. I use both Scripting and Programming languages. I also design systems that incorporate scripts, programs, applications, physical components, etc. That's what engineering is, creating something using many different components. I'm a programmer, a sysadmin, and a 'scripter' if there is such a thing.

    Back in the day the difference between a script and a program was simply how it was run. A script was a interpreted (usually line by line), and a program was compiled into the native machine language. Hense scripting was writing scripts, and programming was creating a program. Back then scripting languages were usually very very simple, such as shell scripting. They would execute a repeated amount of statements and become the glue between programs.

    Today however technology has progressed so much that the line between a script and a program is blurred so much it's become irrelevent. What is Java then? You compile Java into bytecode, and then the bytecode is interpreted into native machine code, sometimes constantly, or in the case of a JIT, once.

    Luckily I'm in a company with a manager who doesn't care how it's done, as long as it's done to specification and done by the set due date (which is flexible within reason). I use all kinds of languages, C, Perl, Java, PHP, Shell scripts, flat out SQL and PL/SQL.

    Of course this is my take on it. And in Slashdot fashion I'm sure at least 10 people will point out 'flaws' in my comment and how it makes me stupid.

    --

    ..There's a-dooin's a-transpirin'
  111. Re:Yes by gregfortune · · Score: 3, Insightful

    Don't look at it as *their* unwillingness to learn new things, but rather as their maturity to recognize that a current tool is "good enough" to get the job done. When it comes down to it, is the (performace gain/footprint/portability/insert favorite reason here) a justification for the increased cost? If it is, then by all means, kick the programmer in the butt and make him learn a new language. If not, save everyone some grief and just get the job done.

  112. Typing Atrocities by BlueFrog · · Score: 2, Interesting
    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've found that when I feel the urge to do this, that's a big fat flashing red sign that I've gotten lazy in my design.

    Working around strong typing is like not wearing your seatbelt: you may get away with it for a while, but eventually something will go wrong, and the consequences will be horribly magnified because you circumvented the safety system.

    A large part of programming is knowing how to get the computer to do your work for you, and a strong typing system can be made to do a lot of work. I make a point of never using Strings or ints to indicate state/type information. I define a DataType object, and implement a Visitor pattern. This lets me leverage strong typing: a method that accepts a DataType object knows exactly what it's getting, and implementing the DataTypeVisitor interface forces me to handle all possible cases, and all of this is caught at compile time, long before it causes any real damage.

  113. Both programmers and scripters are doomed by... by chaeron · · Score: 2, Insightful

    ...the next wave of technology.

    It seems to be the natural evolution of things.

    First we had machine language, where you actually input the programs in binary using front panel switches (yeah....I'm an olde phart and I remember those days!).

    Then we had Assemblers, that made things a bit easier.

    Then we saw the development of C as a higher level of assembler.

    Basic came into play and presaged the scripting languages.

    After that we see rapid progression of C++, Java, Perl, Python, PHP, VB and many others, some closer to the iron and others not. Some compiled, some interpreted, and many both.

    It would seem to me (from my aged perspective) that programmers are seen as dealing with a lower level of abstraction than scripters (this is assuming all other things being equal, such as ability to translate requirements into logical, maintainable code artifacts, which are the same on the part of "good" developers, regardless of language).

    However, the next wave is already upon us. Consider Web Services. Basically a distributed component model with a standardized encoding (XML) and layered on top of internet protocols.

    So what is the best way to "glue" individual Web Services together into an "application"? It's not to write code (be it programming with Java or scripting with Perl...subsitute your fav languages if you don't like my examples), since that pours "procedural" concrete (to varying degrees) on top of a very flexible component model.

    It's to use declarative specification. So we are seeing the emergence of BPM engines (Business Process Management) which can execute the specifications (XML-based more often than not these days) and with graphical modelling/process flow creation tools (typically based on a variant of UML).

    So whether scripters are lower in the esteem rankings than programmers is irrelevant, since the next wave seems to be specifiers.

    --
    .....Andrzej

    Chaeron Corporation
  114. totally agree by morgajel · · Score: 2, Interesting

    I totally agree-the tools make the programmer in some cases.
    for example, I'm comfortable with c/java/perl/php/ruby syntax, and the only real tool I need is vim.
    If you throw me into a situation like COBOL where you need to work on a mainframe, or a logical language like prolog where the syntax is different, I crawl under the desk and weep.

    does that make me a bad programmer?

    probably.

    --
    Looking for Book Reviews? Check out Literary Escapism.
    1. Re:totally agree by MikeFM · · Score: 2, Interesting

      Lisp, Prolog, etc are fun and interesting and not to hard to learn.

      Cobol is just Satanic. Cobol so far has my nomination for most evil language actively used for real work. I could use it but is it worth the effort? If an employer asked me to fix a Cobol program I could but I wouldn't take a Cobol programmer job no matter how much I needed the money. I'd rather flip burgers than code Cobol. :)

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    2. Re:totally agree by Hellkitten · · Score: 2, Insightful

      does that make me a bad programmer?

      No

      Because you're able to admit you have a problem with the languages. And with the set you list I'll be surprosed if you have trouble learning cobol if you have to. What would have made you a bad programmer would have been if you had known only one language, and out of fear of having to learn a new one deem all other languages inferior.

      A good programmer knows his limitations, and how to overcome them

      --
      - We are the slashdot. Resistance is futile. Prepare to be moderated -
  115. Re:Scripting by janda · · Score: 2, Funny

    mslinux wrote:

    but that doesn't matter so much now-a-days with 3 Ghz CPUs.

    The answer to "it runs slow" is almost

    • NEVER
    "more powerful hardware".
    --
    Karma: Food Fight (Mostly affected by Date Plate).
  116. Ruby by GCP · · Score: 2, Interesting

    I don't blame Matz for not basing Ruby on Unicode ten years ago. It *was* immature then, but it's not now.

    But even now, ten years later, Matz has made it quite clear that support for legacy Japanese encodings comes before internationalization. His repeated comments about "EUC-JP is good enough for me" and "Ruby's i18n strategy is simply whatever doesn't interfere with my work in Japanese [which is legacy EUC-JP-based]" make it clear that he is a guy who spends his time on non-globalized Japanese systems, because EUC-JP isn't good enough for anybody except that kind of developer. Anyone else who can use it, fine, but he built it as his wrench for working on legacy Japanese engines, not for non-Japanese to build new, global engines.

    He's the Japanese equivalent of all the Western developers who kick and scream about giving up their byte==char architectures for the sake of non-Western text. They don't want to give up the efficiency of byte==char, that works fine for their own personal "itch", for the sake of a bunch of foreigners who should go build their own languages instead of messing up *mine*. Well, Matz did, and with the same attitude.

    "Unicode compliance" to the extent that it doesn't get in the way of legacy Japanese encodings and utterly absurd systems such as Mojikyo is not what I'm talking about. (There must be 10,000 developers who want to do custom memory management for every one who wants to use Mojikyo, yet Matz thinks making everyone use the same GC is okay (it is), but can't tolerate using a single universal internal string format because -- he always uses it as an example -- what about developers who might want to use Mojikyo instead? Yeah, all 7 of them. Absurd argument.)

    Any language can add "Unicode compliance to the extent it doesn't interfere with the important stuff" as an awkward afterthought.

    I'm talking about languages like Java and C# that are actually Unicode based, Unicode only, not "well, in some future version you'll have the option of doing some things with Unicode if you need to." Languages that take the stance that, although Unicode may not be as good at dealing with EUC-JP data as EUC-JP itself, it is by far the best for creating new large-scale, globalized systems and new data in all major languages. Java and C# have their sights set on the creation of new systems of this magnitude, while Matz seems to see Ruby as a utility for his own smaller-scale, geographically-limited chores.

    I have no argument with a guy building his own itch scratcher, and I wouldn't even have taken notice if he hadn't done such an amazing job in lots of other ways. But the original article is about scripting languages not getting the same respect, and my point is that they seem to have their sights set a lot lower than Java or C# -- not focused on building new worlds but on tinkering with a few existing ones -- and that probably has a lot to do with it.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  117. Languages are just tools people! by Builder · · Score: 2, Insightful

    Languages, be they scripting languages or compiled languages are just tools. You chuck them all in a toolbox and pull the right one out for the right occasion.

    In the same way that you don't use a hammer to remove screws, you don't use c++ to do some quick text munging. You pick the tool that will let you get the task done as efficiently as possible.

    You also take into account whether this is a long term app or a once off problem solver. Do you really need a spec cycle, architecture, etc, to retrieve some data from a postgres db to a csv file? No.

  118. Re:Yes by FatherBusa · · Score: 2, Informative

    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

  119. doubt this is true: by geekoid · · Score: 2, Insightful

    "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"

    If it is, they need to get some different C++/Java programmers.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    1. Re:doubt this is true: by the+eric+conspiracy · · Score: 2, Insightful

      Agreed....

      There have been a number of studies of this very issue, and the general result has been that Java/C++ coders take about 2x longer to write a similar program than Perl coders do. What they get for the additional time spent on the code is generally a faster running program with better modularization.

      You pays your money and makes your choice.

  120. Future Reality of Software by hackus · · Score: 4, Insightful

    I make these comments from the business world, not so much what you do on your off days or as an academic excercise.

    So with that, here begins my tirade:

    In the 21st century, languages for business have to meet the following criteria. If your company is using a language that doesn't meet this criteria, you are in trouble, and probably don't know it.

    Why? Because more than likely your competitor is using a language that does meet the following criteria, and you soon won't be in business.

    As a past CIO, now a CEO, I won't get technical, I will just ask these criteria in the form of a series of questions. If you run a company, it is going to become clear, which language and OS you should be using by the end of the article.

    Here are those requirements:

    1) Software your business invests in, and owns outright is an Asset, not an expense. Obviously this doesn't include any shrink wrap software.

    Interesting point isn't it?

    If you build software or buy it, and toss it out the window because you change hardware platforms or upgrade because your vendor says you have to, you are bearing costs that you don't have to bear, and are throwing your money away.

    I gurantee your competitor won't make the same mistake, because one of my sales people will be explaining it too them real clear like on the telephone.

    More than likely, because you didn't want to listen.

    2) Software is not only an asset, but it is your intellectual property which represents a unique way on how you run your business.

    Software enables this idea. Good ideas are unique, not commodities. When a good idea is applied to a business process, you do more with fewer people, less money and out manuver your competitors as a result in price and service.

    Software built by companies who acknowledge that software is an asset, also understand it is an investment that is to be protected and furthermore acknowledge that as part of the IP capital of the business, represents something a competitor can't BUY ANYWHERE ELSE.

    So with these two points in mind, think about these little diddies

    Why would I buy SAP for example, and Windows 2000, when my competitor can buy the exact same thing?

    What does buying a business process API that anyone else can buy get me? Does it give my business an edge over my competitors if they can buy the same consultants and produce the exact same thing for my competitors?

    Why? Why not?

    If Joe Tool and Die down the street can choose a Shrink wrap software desktop/server system for File/Print and Office Suite from Company A, and I can do the same thing for my end users if I use the exact same.

    What does that get me? Am I beating Joe Tool and Die down the street following his every move?

    Can I somehow make or modify shrink wrap Office Suite Word Processor A, for example, to the point it can make me a unique business process as I invest money and time into growing my infrastructure that my competitor can't duplicate in a way that makes me more money than who my competitor is?

    Especially if Joe Tool and Die decides to woo some of my IT people away from me?

    Can I modify File and Print server shrink wrap software from company A for my users in such a way that my competitor can't, that saves me money?

    Or perhaps, something my competitor can't buy off the shelf and do the same by adding it to company A's file and print server software?

    If Joe Tool and Die can't own his software A, but I can own my own software B.

    What does that get me?

    Does that give me an advantage over my competitor if both sets of software have the exact same features, yet I can modify A and Joe can't modify B without a License?

    Company A has As/400's and Company B has Sun/PC hardware and decides to merge with company A, yet it is decided that company A's software is the real advantage to merging with B.

    If A has to totally scrap its As/400's to rewrite its software on Company B's Suns/PC's, what does that do to the shareholder value of the merger?

    What would have happened if Company A had software that was written to be hardware independant like company B?

    Do you think the merger would be of more value?

    I think it is extremly obvious what I am getting at here, and why software as we know it, is going to radically change.

    Many IT professionals never EVER ask these sorts of questions, Historically. Why? Primarily because until quite recently, the technology wasn't available in any practical sense, to make such decisions very very obvious, and very very easy to do.

    Anyone have thoughts on those arguements and what language and OS do you think I am talking about as I pose these arguments?

    -Hack

    --
    Got Geometrodynamics? Awe, too hard to figure out? Too bad.
    1. Re:Future Reality of Software by jonbrewer · · Score: 2, Interesting

      I disagree with you about home-grown software being an asset.

      At the end of the day, an asset is something that creates money. If you're in the business of providing scientific, engineering, or financial products or solutions, then software can be an asset. If you're in the business of making widgets, software is an expense.

      It's not the software that is the asset, it's the business process. A winning business process can be developed and implemented using shrink-wrap software. Sure your competitor can buy the same software as you, but can they implement it the same way you do?

      Professional oboe players cut their own reeds, because they can't get off the shelf reeds that will sound as good. They don't, however, make their own instruments. Their asset is their ability to produce beautiful music, not perfect reeds.

      Successful craftsmen make their own tools, because they can't get off the shelf tools that do what they need. They don't, however, dig up their own iron ore. Their asset is their ability to build fine cabinets and tables, not home-made tools.

      Profitable manufacturers configure their shrink-wrap ERP systems to meet their needs, often using only a small subset of available modules. They don't write their own ERP systems, they make widgets. Their asset is their configuration of that system, or, in other words, their business process, not a piece of software.

      Large corporate development teams are on their way out. Ten years from now, the majority of programming done outside the software industry will be scripting, and not coding. Scripting is all about solving the problem while minimizing expenses, and that, my friend, is the asset.

  121. Because the word "script" is too lightweight. by WetCat · · Score: 2, Insightful

    For PhBs how the words sounds does matter much.
    If we say "virtual-machine portable languages" instead of "scripting languages", I think the valuation of that languages will rise in the eyes of PhBs

  122. Wimp! by heretic108 · · Score: 3, Insightful

    Only languages compiled into assembly are worthy of being considered "real" programming. :)
    REAL programmers:
    • know that only weak-minded wimps need high-level languages like Mummy Java and Daddy C++ to write their assembler for them, or lets them shirk the responsibility of knowing what's happening in the processor.
    • Are suspicious of assembler anyway, and prefer to write machine code by hand
    All this is just a hangover from the 'programmers in white coats' syndrome from the 1950s and 60s. Keep the machine room door locked. Keep out the infidels. Talk as esoterically as possible.

    IMO, what this discrimination is based on is the fact that with scripting languages, especially Python/Ruby/Perl etc, you can achieve the same task in minutes that in C/C++ or Java can take hours/days/weeks. Same as the recording industry trying to block digital distribution. And same as the ferry operators who would try to stop the bridge from getting built.

    It's just "Job Protection". Period.

    --
    -- In the beginning was the WORD, and the WORD was UNSIGNED, and the main(){} was without form and void...
  123. a place for each by RussP · · Score: 2, Informative

    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
  124. Scripting vs. Programming by Daimaou · · Score: 3, Interesting

    I used to work for a company who insisted that everything be done in Java. Now I work for a company who is in bed with C# and other .NETedness. I can understand standardizing on a set of tools, but I think this attitude is kind of dumb in some respects. Sometimes it feels like hammering a screw into the wall with a somewhat stale loaf of bread.

    I just finished writing a front-end application at work using Python and wxPython (which is incredible I think). It would have taken me at least a week to do it in C, C++, C#, Java, or any other buzzword language, but I finished it in a little over a day using Python. My app has the added benefits of being cross-platform (Windows, Linux, and FreeBSD), it has a native look on each of these platforms, and it runs a lot faster than a Java/Swing app would.

    Ideally, such a time saving technology, and those who know how to use it, would be valued. Yet somehow those pointy haired MBAs that seem to run most companies don't seem to get it.

  125. Real values vs marketing clout by nyndent · · Score: 3, Insightful

    As an avid PERL hacker (for the past 7 years), I find myself increasingly at odds against the onslaught of Java newcomers. It seems that these days, what really matters to IT directors is the "fashion" value of a language and not its real merits.

    Where I work, I see this happening everyday. New projects are, by default, assigned to Java adepts even if they are relatively inexperienced or even fresh out of college/university. The whole market, here in Greece, is quickly veering towards this direction. The funny thing is, that these people quickly discover that doing productive work in Java means you have to have someone with at least a few solid years of coding behind him. So you have a large number of softcos who are looking in the market for people with 2-3 years of EJB experience and the market simply cannot supply them.

    So when we scripters go to them and propose a working prototype in a few weeks (vs a few months) with object orientation, proven performance and plan for future maintenance all we get is a smile, a hint of irony and a short dismissal. No arguments, no discussion.

    Makes you wonder, how these people got to be IT directors at all...

    That said, it is true that scripting, with all the freedom it offers, requires discipline to write maintenable code. Java on the other hand, with it's huge APIs provides a strict framework which sort of guides you through. An inexperienced coder is bound to write better code in Java than in Perl, most probably.

    And that is the crux of the thing. Experienced programmers are hard to get by and command larger paychecks. Once again a financial decision is made opposing technical considerations.

    And the suits win once more.

  126. It's inevitable by 42forty-two42 · · Score: 2, Insightful

    Scripting is an artificial distinction. Both scripted and compiled languages are turing-complete.

  127. "Enterprise" != Scripting by Anonymous Coward · · Score: 2, Interesting

    I work for a company that only uses enterprise coffee pots.

    We are more concerned about products that are considered "enterprise", than solving a particular problem. From what I can see "enterprise" is an alternative spelling for "expensive".

    Scripting languages are free and therefore not taken seriously.

    The perception is that COBOL, VB and Java programmers abound and are therefore technologies worth betting the company on. The perception is that there are so few programmers out there (witness the lack of job listings for programmers) that script code could not be maintained.

    All this is sad because our current Java project is a year behind schedule when at least parts of it could have been scripted.

  128. that too. by Purificator · · Score: 2

    i regularly encounter perl "gurus" who are terrified of lower-level languages. i put "gurus" in quotes because their perl code sucks, too. i think most geeks have picked up on the strong tendency for exclusive scripters to be poor coders because they're just people who picked up a language's syntax rather than really learning how to program.

    hence the heirarchy even among scripters; if you use a unix shell regularly, scripting in that shell is a cakewalk. you just type the commands you'd type at a prompt, but stick them in a file. if you put in some "if" or "while" statements you can congratulate yourself by writing comments and feeling like you have arrived somewhere.

    as a result, i'm not impressed by "i know perl." i AM impressed by "i know C/C++, perl, shell, tcl, expect, python, ada, dibol, java, and pascal." while he's not likely to use pascal anywhere outside of a classroom (ok, maybe the odd legacy job), the fact that he has so many tools in his toolkit shows a broader understanding of how things work and more flexibility in how he'd go about a certain task. it also means he could probably pick up a new language more quickly than someone who just knows perl (and, thus, would be unlikely to understand things like pointers and dynamic memory allocation, CLEANING UP AFTER YOURSELF, and data structures like linked lists or binary trees).

    --
    "Mister Potato-head --MISTER POTATO-HEAD! Backdoors are not secrets!" (War Games, 1983)
  129. Scripters vs. Programmers by lkaos · · Score: 2, Interesting

    A programmer is someone who has (in)formal education in information sciences including common data structures, design patterns, algorithm, and algorithmic analysis.

    With the above skills, one should be able to master any language--compiled or interpretted. Often, the term "scripter" is used to describe someone without an understanding of the above who limits themselves to scripting languages.

    Obviously, the later is inferior to the former. Most people tend to favor a language but even if that's a scripting language, that doesn't make one a "scripter."

    Now as to whether a scripting language could solve problems more effectively, that's simply not relevant. The largest cost in code development is maintaining and expanding existing code bases. Therefore, it is more economical to use languages that are more widely known.

    More people know Java or C++ than python or perl (at least, in enough capacity to do something useful). Therefore, in most circumstances, they are preferrable.

    --
    int func(int a);
    func((b += 3, b));
  130. Lies about Perl... by Deven · · Score: 2, Interesting

    This is why I hate Slashdot. I've never contracted for the US government, so I take your rather interesting comments on that as fact. I have no reason to doubt them, and they seem intelligent and observant. But then you start in on Perl and start pulling assertions out of your ass. And anyone who's reading this and doesn't know Perl well will likely just take your assertions as facts, due to how your earlier statements on government contracting seem authoritative, and you communicate your (mistaken) Perl oppinions as fact, as if "no one reasonable" can disagree with them. And your comment is rated a 5, so some pointy headed boss who's reading this flamewar because he's wondering what the difference between "scripting" and "coding" is is going to see "Perl is not an appropriate choice of language for production systems" and see your 5 rating and think it's a fact.

    But it is a LIE.


    I have to chime in here. I've been programming in C for 15 years, Perl for 13 years and C++ for 10 years. Consistently, I've found that Perl takes much less time and effort to program, because it encourages coding at a higher level of abstraction.

    Note that I'm not talking about the rich CPAN library of modules you can leverage. (Java isn't the only language with a rich API library available.) I'm talking about new code, not slapping together API calls.

    I remember an occasion (about 11 years ago) where I was wrestling with a 20-page COBOL program designed to export data from native COBOL files into flat ASCII text files to be imported into another system. This COBOL program was very slow and kept failing randomly. I could have spent weeks trying to fix this program, but I didn't. Instead, I spent an hour or two analyzing the data format. Before long, I understood the string format and the BCD-encoded number format used by that COBOL compiler, and determined the field layout in the binary data records. Armed with this knowledge, I wrote a Perl script to export the COBOL data into flat files.

    The Perl script was literally around 8-10 lines of code -- the "unpack" line took the most effort, because all that data analysis went primarily into that one line of code. If I recall correctly, there was also a line or two that finished decoding numbers. There was a print statement to output the decoded records as flat ASCII data, and a read loop around the whole thing. It took VERY little code, and most of the effort was analyzing the data format. Writing and debugging the actual code took somewhere between 10-30 minutes beyond the time spent on data analysis.

    This Perl script was bug-free when I finished -- it exported all data records correctly, and was even able to export the record(s) which caused the COBOL program to crash. Moreover, it converted the entire data file in 1-3 minutes, while the COBOL program took several hours to reach the point where it crashed about halfway through. (This was on 386 machines at the time.)

    Now, some people would look at the Perl script, see that it's only a few lines of code in a "scripting" language and conclude that it's not "real programming". That's bullshit. Real programming is about problem solving, not the amount of effort expended. As a programmer, I'll choose the best tool for the job, instead of trying to make one tool (C, C++, Java, etc.) fit every job.

    The same people who would disdain that Perl script would look at that 20-page COBOL program (i.e. >1000 lines of code) and say that was "real programming". It sure took someone a lot more time than I spent on the Perl script, and it looks like a more impressive piece of code to a manager, but both programs solved the same problem. To claim that one solution is more "real" than another is ludicrous.

    Moreover, the Perl program solved the problem better -- it was literally about 1/100 of the size (in terms of lines of code), ran about 100-300 times faster on the same data, and it was more robust (the COBOL program crashed on certain records, the Perl script didn't). By any useful metric, the Perl code was easily 100 times better. (Ironic, given that the COBOL program was handling its native data formats, while Perl had to decode a foreign data format!) The COBOL program could be considered better for the programmer only in terms of politics. It's a lot of work (keeping busy is good for job security) and it's complex enough to impress the non-technical bosses that usually pay the bills, while the Perl code makes this programming stuff look easy by comparison.

    The main reason my boss was impressed with this Perl script was that I had the COBOL program in hand as a baseline for comparison, so he could objectively see that my code was a fraction of the size, orders of magnitude faster, and that it didn't crash when the COBOL program did. Without that COBOL program for comparison (which someone else wrote), my Perl script probably would have looked rather utilitarian. (Which it was, actually!)

    People often believe that I think Perl is the best solution for every problem. That's not actually true, but often time is of the essence, and when optimizing programmer time is a top priority (which is usually is these days), Perl often wins hands-down as the most effective tool. Why spend a few days or weeks writing something in Java or C++ when the same problem can be solved with Perl in a few minutes or hours? With Perl, I can be off to solving the next problem much sooner, which is important these days, when TODO lists always seem to grow faster than items can be checked off. C++ may be faster at runtime, but it takes longer to write the code, and often the added runtime performance isn't critical.

    Perl is a real programming language, and an excellent general-purpose language for many tasks, especially backend processing. Good Perl code isn't cryptic or hard to maintain. If anything, it's easier to maintain because you don't lose sight of the forest for the trees. However, to maintain it you have to know Perl. If the existing developers don't have the Perl skills, isn't that what training is for?

    --

    Deven

    "Simple things should be simple, and complex things should be possible." - Alan Kay

  131. Is it really about programming languages? by ajeru · · Score: 2, Insightful
    Yes it's true, scripters are discriminated but I doubt that it is only because scripting languages are considered to be inferior to "real" programming languages by IT managers. It's also because scripting is associated with hacking away without thinking. This view doesn't do justice to many users of scripting languages and even less to the languages themselves.

    However I do feel that the impression, that pure scripters are, on average, not the most meticulous software designers in the world is not completely contrived, especially when I read many of the comments in this forum. Claims of Perl programmers being thousands of times more productive than Java or C++ programmers are simply ridiculous. This only shows complete lack of understanding for the role of programming languages in the overall software engineering process. But even without things like analysis, design, deployment, maintainance, team communication and so on, I challenge anyone to choose a programming task that he can solve in hours using Perl and that would take me months to solve in Java or C++.