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

1,044 comments

  1. yes by Anonymous Coward · · Score: 0

    true.

    1. 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)
    2. Re:yes by neostorm · · Score: 1

      Not all facilities operate this way. I'd say it's about 50/50 in my experience, so you're neither absolutely wrong or right.
      Sounds like you could just be working for the wrong company.

    3. Re:Yes by Yanthor · · Score: 1

      I agree with you, that a person or company should use the best tool for the job. But that is not bias, it is just good common sense. :-)

      I think the bias this discussion is talking about is that people who know C++, Java, etc. sometimes look down on people who use PHP, Perl, etc. as not being as talented.

      --
      ---=+=---
      "Now if I were a landing thruster, which one of these would I be?"
      -- Londo in Babylon 5
    4. 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.

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

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

    7. Re:Yes by jadavis · · Score: 1

      To some extent, I think it's because it's easier to call yourself a perl/php/python scripter without actually knowing anything about programming. That means that people run into a lot of people who call themselves "perl programmers" that don't know how to program, and so they might make a bad association.

      If they're a coworker, they should really take the time to get to know how talented the real programmers actually are. However, casual acquaintences won't necessarily be impressed because you say you can program perl.

      Since it takes more skill to write something simple in C, people will be more impressed. They might know from one simple text processing program that you understand:
      -dynamic memory allocation
      -pointers
      -complex iterative algorithms

      wheras a comperable perl program might not demonstrate a deep understanding of anything.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    8. Re:Yes by pi_rules · · Score: 1

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

      Yeah... I've seen that before. Watched somebody write a 20-30 line perl script because he didn't think bash was powerful enough to actually do something worthwhile. The script was roughly:

      #!/usr/bin/bash

      `command 2`;
      `command 2`;
      $variable = `command 3`;
      `command 4 $variable`; ...etc.

      I later 'ported' the script.

    9. Re:Yes by pi_rules · · Score: 1

      Crap.. that should be #!/usr/bin/perl ... not #!/usr/bin/bash

      I even previewed it! I swear!

    10. Re:Yes by Anonymous Coward · · Score: 0

      You are an idiot; if I can do a job in less time with one tool, that is the rigt tool for the job. No I would not start a 50,000 line project in perl unless that project could be reduced to 10,000. If you want to argue that execution speed or maintainability will suffer, tell it to your boss and let him decide.

    11. Re:Yes by Anonymous Coward · · Score: 0

      As regards portability, for shell scripts there's actually a POSIX standard, as opposed to perl which changes incompatibly from version to version. Unfortunately few people know how to code properly in POSIX sh, even though the Unix98 standard docs are freely available...

    12. Re:Yes by alexborges · · Score: 1

      (e.g., perl scripters are higher up the ranks than bourne scripters)

      WHAT!? perl is easyer, thus, codemonkey needs less neurons

      --
      NO SIG
    13. Re:Yes by chthon · · Score: 1

      I can give you one good reason why I rate myself on a higher level with Perl scripting, than my colleagues with Bourne scripting.

      Perl gives me the advantage of reading very quick input from large files and process them in minutes.

      My colleagues otoh use a construct using head and tail and an index to process sequentially the contents of text files, and then they complain that their scripts are slow, and then they make things even more complex by creating caches for all kinds of data.

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

  3. 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)?
  4. And you know what's really funny? by Anonymous Coward · · Score: 0, Offtopic

    I got this FP by writing a perl script.

    W00t!!!!

    --The AC

  5. 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 Anonymous Coward · · Score: 0

      As for Java - it is compiled into machine code

      you mean pseudo code or byte code right ...

    4. Re:Flip side by Anonymous Coward · · Score: 0

      Besides virtually nothing is "compiled into assembly language" these days.

      Gee, way to show you don't know what you're talking about. Every compiled language turns the result into assembly language.

      Java is not compiled into machine code, because there is no machine. I've HEARD some java compilers actually can compile into ASM, but I haven't seen them, because everyone whinges and bitches about how this defeats java's imaginary "write once run everywhere".

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

    6. Re:Flip side by mmol_6453 · · Score: 1

      What's the difference between a bytecode language and an assembly language?

      Just because Java's lowest level is more "high level" than general x86 programming doesn't make it less useful, does it?

      After all, there are CPUs that will run both systems natively. Which one is faster depends on the effort that has gone into developing and optimizing it, right?

      --
      What's this Submit thingy do?
    7. Re:Flip side by Reality+Master+101 · · Score: 0

      You have a very warped view of what "real programming" is. Compilation v interpretation has nothing to do with it.

      Actually, it has a lot to do with it. When you are programming in C or C++, you are very close to the "bare metal" of the computer. To write efficient code, you have to have an understanding of what compilers do and how assembly language works. There are definitely right ways and wrong ways to write code. Real programmers understand assembly language.

      On the other hand, when you're using scripting languages, you are shielded from the details of how things are actually implemented. You are at the mercy of how good the interpreter is.

      As for Java - it is compiled into machine code, it's just that all the platforms it runs on emulate the target machine.

      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.

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

      And there are also plenty of Java verions that produce native executables.

      Big deal. There are Perl compilers as well, but that doesn't count either. Hell, back in the old days they produced APL compilers.

      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.

      By the way, none of this is meant to say that Java is not useful in certain circumstances. Just that it isn't and never will be appropriate for "real" programming such as operating systems.

      --
      Sometimes it's best to just let stupid people be stupid.
    8. 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.
    9. 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

    10. 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
    11. Re:Flip side by yeti+(dn) · · Score: 1

      Compilation v interpretation has nothing to do with it.

      True.

      Besides virtually nothing is "compiled into assembly language" these days.

      No. Anything in C/C++ is compiled into assembly language. You may never see it because you are normally not interested in. But the assembly phase still do exist and you can tell the silly thing to actually output the assembly code. And all C/C++ programs together are not "virtually nothing".

      --
      Life is the slowest way to death.
    12. Re:Flip side by RedWizzard · · Score: 1
      Gee, way to show you don't know what you're talking about. Every compiled language turns the result into assembly language.
      Way to show you don't know what assembly language is. Compiled languages such as C used to be compiled to assembly code which was then assembled to machine code (i.e. an executable). Now days virtually every C compiler produces executable machine code directly.
      Java is not compiled into machine code, because there is no machine.
      There is a machine - the JVM. The process is of compiling Java to JVM machine code (what's called Java Bytecode) is essentially the same as compiling C to x86 machine code. The fact that there are no machines that run Java Bytecode natively is irrelevant. Such a machine could be made and Sun did make a half-hearted attempt to do so (see here, or search Google for "Java processors").
      I've HEARD some java compilers actually can compile into ASM, but I haven't seen them, because everyone whinges and bitches about how this defeats java's imaginary "write once run everywhere".
      Do some research. GCJ is an example of a Java compiler that produces native machine code (I'll assume that's what you mean by "ASM").
    13. Re:Flip side by Skeezix · · Score: 1

      Leave out the -e.

    14. Re:Flip side by RedWizzard · · Score: 1
      No. Anything in C/C++ is compiled into assembly language. You may never see it because you are normally not interested in. But the assembly phase still do exist and you can tell the silly thing to actually output the assembly code.
      GCC does, but that's a bit of a special case (due to portability). Most compilers (e.g. Intel's C compiler) don't produce assembly language unless you specifically ask for it - by default the compiler backends produce machine code directly. I don't think you even have the option with Visual C++.
    15. Re:Flip side by zaphod110676 · · Score: 1

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

      It is most certainly "machine code". It is just not the "machine code" that runs natively on the processor. A virtual machine is just as much of a machine as computer hardware. Look at any computer science text book that studies programming languages and you'll see that. From the perspective of the compiler designer there is no difference.

      Now will code compiled for a virtual machine run as fast as code compiled to run on the native hardware? Probably not. At least not now. In the future who knows? We could find a way to solve the halting problem and traveling sales person too. It could happen.....I'm not going to hold my breath though.

      --
      To Do: 1. Take over world 2. Pick up Milk and Bread on the way home
    16. Re:Flip side by tundog · · Score: 1


      You raise an intersting point. I've been making a transition from Java to C++ because I want to start my own consulting gig soon and IMHO if you're serious about a User interface, MS is the only way to go.

      One of the things I have been considering alot lately is, in an MFC environment, why does the language 'short' variables (aside from backwards compatibility issues). I mean really, in a Moore's Law world with minimal desktop machines packing 256M+ ram, the saving you get in using a short versus an int are insignificant. Why even bother? I wouldn't even be surprised if some compilers allocate short as int.

      --
      All your base are belong to us!
    17. Re:Flip side by aridhol · · Score: 1
      The standard doesn't say anything about the absolute length of a 'short' variable, just that it must exist and:
      sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)

      Actually, I can't remember whether 'long long' is part of the current standard or not. And there's something about the minimum range of each of these types, but no maximum range. There's nothing preventing the compiler writer from making all integral variables the same. The point is, 'short' is there because it's always been there, and one of the guidelines that the ISO C group follows is that changes in the standard shouldn't break existing code. Getting rid of short would definitely do this.

      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    18. Re:Flip side by dabootsie · · Score: 1

      The primary reason Java is "so slow" is that most of the people claiming that haven't used it in years.

      I've got a quick little test I like to use on various compilers and languages. Impliment the quicksort algorithm and run it on a randomly-generated-once 100,000 element array.

      Here are the results:
      C compiled by GCC 3.2: 15.38 seconds.
      C++ compiled by GCC 3.2: 18.56 seconds.
      Java compiled by Sun JDK 1.4.1: 1 minute, 8.93 seconds.

      And just for a larf... C++ compiled by MS VC++ 6.0: 33.70 seconds.

      No special optimization flags are being passed to any of these compilers.

      Java is still slow, and always will be. It's a virtual machine; you're simply never going to see native speeds until they make a native processor to run it on. That said, speed is not java's strong point and was never meant to be.

    19. Re:Flip side by jhines0042 · · Score: 1

      The company that I work for currently and the company that I used to work for would argue against your point and could do so just by naming customers of their products. Products that are written, in whole or in part, in Java.

      Cross platform compatability through Virtual Machines is worth more that 100 programmers trying to get C/C++ programs to work the same on two platforms (much less 6 or 7) and then all the testers, support engineers, etc... to maintain all the different versions of the same program.

      Sorry, you are wrong.

      --
      42 - So long and thanks for all the fish.
    20. Re:Flip side by sQuEeDeN · · Score: 1

      Programming is a way of thinking, not a specific task.
      It could be said that those who specialize in software design are just as much programmers as the folks at the keyboards. It is not easy designing whole applications from the ground up, regardless of whether you use gcc or an expo marker.

      --

      Recursive (adj.): see 'Recursive'
    21. Re:Flip side by dabootsie · · Score: 1

      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.

      Sometimes you need bigger numbers than signed data types can hold, and fitting them into small unsigned data types is an efficient way of doing things.
      C can fit the number 50,000 into 2 bytes. Java can't.

      I find it amusing that you disregard issues of efficiency like this and at the same time claim that Java runs quickly.

      but please get your criticisms right.

      Indeed.

    22. Re:Flip side by CoughDropAddict · · Score: 1

      One of the things I have been considering alot lately is, in an MFC environment, why does the language 'short' variables (aside from backwards compatibility issues). I mean really, in a Moore's Law world with minimal desktop machines packing 256M+ ram, the saving you get in using a short versus an int are insignificant.

      Maybe one short vs. one int is insignificant. But when you have an array of 100,000 shorts (think '16-bit audio buffer on its way to the sound card') the savings become more significant.

      Also consider a data structure that is being read or written from disk; say, the header of an audio file. If the format of the header includes 16-bit integers, you want to be sure that exactly 16 bits are allocated for that variable in the structure. Having this power of the in-memory layout of a structure makes it possible to read straight from the file into the memory structure and have all the structure's members take on the correct values.

    23. Re:Flip side by consumer · · Score: 1

      In what way would Java have helped? It's not as if there was a an existing application like Slashdot, especially at the time Slashdot started. Performance between mod_perl and a fast Java servlet container are basically equivalent, and coding in Perl is quite a bit faster than coding in Java. Moreover, coding Slashdot in Perl enabled some people with a dream but not a lot of experience to build something that many have enjoyed. It's unlikely this would have happened so easilly in Java.

    24. Re:Flip side by autopr0n · · Score: 1

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

      What do you code in, Intercal? C and C++ are compiled into machine code these days. Just like Java.

      --
      autopr0n is like, down and stuff.
    25. Re:Flip side by cerberusti · · Score: 1

      While it is true that most compilers will do this, they generally still turn it into assembly first, the assembler is run as another pass by the compiler. Sometimes the assembly is not saved to disk, but that does not mean it is not produced.

      --
      I'm a signature virus. Please copy me to your signature so I can replicate.
    26. Re:Flip side by ideut · · Score: 0
      In the future who knows? We could find a way to solve the halting problem and traveling sales person too. It could happen.
      Actually, you're wrong on both counts.

      The halting problem is provably unsolvable. And we already have a solution for the travelling salesman problem. Any teenager studying maths could come up with solution. The difficulty is in finding an algorithm with lower complexity than the naive solution so that large instances of the travelling salesman problem can be realistically solved in the time and space available to us.

      --

      --

    27. Re:Flip side by Anonymous Coward · · Score: 0

      Unless you describe the environment you conducted this test in, you're not saying anything with these figures. Did you use the exact same code in each instance or were you required to make significant, language-dependent changes? Are you including the overhead of loading/running the JVM in the java test? What kind of machine did you use? What JVM did you use? Etc. Etc.

    28. Re:Flip side by Anthracks · · Score: 1

      Actually, you can use the /FA compiler flag to get Visual C++ to output assembly code, in Visual C++ .NET anyway. I know the option exists in version 6 also, although it might not be the same flag.

      --
      Rock over London, Rock on Chicago. Wheaties: Breakfast of Champions.
    29. Re:Flip side by darnok · · Score: 1

      > I don't pretend that it's real programming though.

      "Real programming"? - that's easy to explain. It's getting the job done well, within a set of time and resource constraints.

      More and more, scripting languages enable people to meet these criteria, *particularly* as the focus of almost all companies seems to be on reducing time and resources as much as possible.

      Your classic C programming "expert" may be going the way of the dinosaur - not due to any inherent flaw in the language, but because there's now better ways of getting lots of job done within shrinking time and resource constraints.

      I really like C, but more and more I'm using scripting languages just so I can deliver on time and under budget. *That's* what employers want; not speed of execution or some sort of intangible "expertise" that really adds nothing to the bottom line.

    30. Re:Flip side by RedWizzard · · Score: 1

      No, there's no point. An assembler is a very simple beast compared to a compiler. An assembler is basically a macro expander (similar to a C pre-processor), and a translator. The translation is very close to one-to-one between assembly and machine code. A compiler generally won't have much use for macros, and there is nothing to be gained by generating the target code as assembly language statements and then translating them to machine code versus generating the target code as machine code. It's just a waste of time doing the extra translation.

    31. Re:Flip side by 0x20 · · Score: 1

      doh, i'm not a programmer!

    32. Re:Flip side by MxTxL · · Score: 1


      C compiled by GCC 3.2: 15.38 seconds.
      C++ compiled by GCC 3.2: 18.56 seconds.
      Java compiled by Sun JDK 1.4.1: 1 minute, 8.93 seconds.


      Ability to run the compiled bytecode on any platform: priceless.

    33. Re:Flip side by egomaniac · · Score: 1

      You, sir, are completely full of shit.

      I compiled and ran the following test case:

      import java.util.*;

      public class Test {
      public static void main(String[] arg) {
      long time = System.currentTimeMillis();
      Random random = new Random();
      int[] test = new int[100000];
      for (int i = test.length - 1; i >= 0; i--)
      test[i] = random.nextInt(Integer.MAX_VALUE);
      Arrays.sort(test);
      System.out.println("sort (including array generation) took " + (System.currentTimeMillis() - time) + "ms");
      }
      }

      It uses the built-in quicksort implementation in java.util.Arrays, but if you go check the source for that class you will note that it is 100% Java.

      I happen to be using a 400MHz Pentium II with 256MB of RAM running Windows 98 right this second, so I'll use this machine. Here goes:

      C:\temp>java -version
      java version "1.4.1_01"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
      Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)

      C:\temp>javac Test.java

      C:\temp>java -cp . Test
      sort (including array generation) took 220ms

      220 milliseconds. Admittedly, the system timer isn't all that accurate under Windows 98, but I can certainly say that the wall-clock time is under two seconds (and that includes Java VM startup).

      Now, I don't know what the hell kind of machine you're running on -- for all I know it's a programmable toaster -- but I cannot possibly see how a simple sort could take 15.32 seconds on ANY machine (which is your stated C time). Are you sorting legos using a robotic arm? Or did you just make these results up because you didn't feel like doing any real work?

      --
      ZFS: because love is never having to say fsck
    34. Re:Flip side by Anonymous Coward · · Score: 0

      What about this? [.pdf document] There are several such processors out there.

    35. Re:Flip side by adamruck · · Score: 1

      if I may ask so kindly.. what the fuck are you talking about... did they come out with some sort of new processor that actually runs a high level language?

      scripts get read by programs that are compiled into assembly, then depending on the content of the script different portions of assembly code are run...

      so yes... everything boils down to assembly...

      --
      Selling software wont make you money, selling a service will.
    36. Re:Flip side by Piquan · · Score: 1

      Compiled languages such as C used to be compiled to assembly code which was then assembled to machine code (i.e. an executable). Now days virtually every C compiler produces executable machine code directly.

      Delete /usr/bin/as and see how well your C compiler works.

    37. Re:Flip side by Goth+Biker+Babe · · Score: 1

      If C++ is going to be standard then all implementations of the language should support all the types the standard defines and that includes 'short'. Your post suggests that you are desktop centric. Shorts (in the neo-traditional short is 16 bits, int is 32 bits) are useful in embedded systems where a one to one relationship between variable sizes and registers is important (ARM thumb mode is 16 bits for example).

      As for MFC being the only way to go for a serious UI. Try using that bloaty pile of poo on a set top box!

    38. Re:Flip side by RedWizzard · · Score: 1

      See my other comments re GCC. As it happens I'm developing using Visual C++ and the stand alone assembler is not installed.

    39. Re:Flip side by Anonymous Coward · · Score: 0
      (in the neo-traditional short is 16 bits, int is 32 bits)
      This isn't entirely true, the int type isn't always 32 bits. Int is generally as wide as the processor's bit width, so while on most computers you'd be programming today (PCs and Macs) that's 32 bits, when you're programming C for 16 bit processors (or I suppose when you're programming for 64 and 128 bit processors, although I'm not positive about this) then the value of an int is different.
    40. Re:Flip side by egomaniac · · Score: 1

      C can fit the number 50,000 into 2 bytes. Java can't.

      Ummmm ... okay. Wow, that's such a useful feature in the real world that it makes a huge difference in overall application performance.

      I'm sure my 100,000 line Java app would run noticeably faster if only I could store the numbers from 32,768 to 65,535 in two bytes rather than four. Yep, that's the single biggest hurdle holding Java back.

      Seriously, if you view that as anything but a non-issue your priorities are seriously screwed up. Show me a way to eliminate the potential of buffer overrun security exploits (such as the automatic array bounds checking in Java) and you have a useful real-world feature that needs to be talked about. Show me that you can store numbers from 32,768 to 65,535 in two bytes rather than four and I don't give a flying crap.

      I'm not even saying that Java shouldn't have unsigned datatypes. I'm just saying that it doesn't matter. I've been writing Java code for six years, and I have never once had a desire for an unsigned datatype.

      --
      ZFS: because love is never having to say fsck
    41. Re:Flip side by Anonymous Coward · · Score: 0

      Ummm....

      char x = 50000;

      In Java, the char data type is unsigned 16-bits, capable of holding the values between 0 and 65,535, inclusive.

      Now, before you go and picka new number, let me pick one for you. Why don't you go stick the number 65,536 into two bytes in C. Can't do it? I'll tell you where you might stick t instead.

    42. Re:Flip side by Trinition · · Score: 1

      What benchmark did you use to decide coding in Java was slower than coding in Perl? KLOCs?

      Honestly, its the languages shortcuts that make programming any faster or slower. Shortcuts might be syntactical shortcuts (... || die;), library shortcuts (Collections.sort(...);), etc. Each language has some.

      Now, while I haven't used Perl seriously in a couple of years, I would venture to say the CORE Java API is richer than the CORE Perl API, and Perl has a much more capable syntax than does Java.

    43. Re:Flip side by Anonymous Coward · · Score: 0


      While pulling off a null pointer is hard,
      you can still do silly things like... say...
      run an exponentially recursive function
      on your server; the memory will get fucked
      up in some way eventually :)

    44. Re:Flip side by Anonymous Coward · · Score: 0

      YOU are ABSOLUTELY RIGHT!

    45. Re:Flip side by Goth+Biker+Babe · · Score: 1

      That's why I said neo-traditional i.e. what most coders experience most of the time.

      I don't think you can use your rule of thumb either. Modern desktop machines actually use 64 bit processors but an int is considered to be 32 bit. Windows 3.1 had 16 bit ints even when running on a 386 or above processor. The size of int seem more determined by the operating system 'size' than the processors register size so a 16 bit operating system has 16 bit ints and so on.

      I think the moral of the story here is don't assume the size if you are writing cross platform C/C++.

      Finally most of the computers I program are hidden in side black or silver consumer equipment.

    46. Re:Flip side by bluelan · · Score: 1

      He ran the sort multiple times so the sort cost would dominate startup costs. Iterate your randomization 10-20 thousand times and time it. Then add the sort back in so that each random array gets sorted and time that. That way you can see what the sort really cost by subtracting the two times, if you're interested. Running a single sort won't tell you anything.

      --

      I used to be a narrator for bad mimes. (wright)

    47. Re:Flip side by toriver · · Score: 1

      Java bytecodes are just a numeric version of the Java language.

      You haven't actually read about bytecode mnemonics have you? It's an instruction set for a stack-based machine with heap. A compiled class doesn't look any more like the Java language than a '386 executable looks like the C it came from.

      The bytecodes cannot be efficiently interpreted.

      Sure they can. I mean there's the evidence of JIT, Hotspot and so on that means a Java class only exists as bytecodes for fractions of a second before the native code takes over.

      Unless you run with the -Xint option just to support your ignorance.

    48. Re:Flip side by tage · · Score: 1
      • The lack of an unsigned datatype is probably the most egregious flaw.

      char is basically a 16 bit unsigned int. Though having the "unsigned" and "signed" modifiers would be nice. Specifically I would have loved it last year when I wrote an implementation of Karatsuba's algorithm and got my input (very large ints) as byte arrays. I would have loved to have been able to cast those to unsigned byte arrays...

    49. Re:Flip side by INT+21h · · Score: 1

      Heh, so by opting not to use the inbuilt gc all the time, you're automatically "promoted" to programmer? Guess I'm a programmer then, out of sheer laziness :) (Who can remember to turn the bloody cycle-checker *on* anyway?)

    50. Re:Flip side by zaphod110676 · · Score: 1

      > The halting problem is provably unsolvable.

      Probably, yes. But it could happen. I'm not going to begin to assume that we know everything there is to know about mathematics. I did say that I wasn't going to hold my breath.

      > And we already have a solution for the travelling salesman problem.

      You're correct. I should have been more precise. I should have said that we could find an optimal solution to the problem in something closer to linear time. Again, I'm not going to to hold my breath.

      --
      To Do: 1. Take over world 2. Pick up Milk and Bread on the way home
    51. Re:Flip side by Anonymous Coward · · Score: 0

      He ran the sort multiple times so the sort cost would dominate startup costs. Iterate your randomization 10-20 thousand times and time it. Then add the sort back in so
      that each random array gets sorted and time that. That way you can see what the sort really cost by subtracting the two times, if you're interested. Running a single sort
      won't tell you anything.


      That's very insightful. The way you do a test for a thing like this is running each test several tens of thousands of times ... by putting a loop in your test code to run the test say 20,000 times NOT by starting the program 20,000 times and timing each one induhvidually ... then you find the average time that each one of those loops would have taken.

      So in example say we had a test that we ran a C program that generated and sorted 20,000 times and it ran for 14.7 seconds. Then we run a Java program that generated and sorted 20,000 times and it ran for 15.2 seconds. That would mean each time through the C loop cost something like 0.000735 seconds and each time through the Java loop cost 0.000760 seconds. If you were really ambitious you could find the number of seconds a clock cycle takes ... imagine something like 0.000001 seconds or something imaginary and now you've got 735 clocks for C and 760 clocks for Java.

      Ofcourse all these numbers are imaginary but if someone actually sat down and did this you'd have a real metric to compare with.

      I'm not going to do it... I have to go back to work!

    52. Re:Flip side by yatest5 · · Score: 1
      My distinction has always been that if I can fuck up memory, then I'm programming


      When I fuck up memory, I'm smoking :)...

      --
      • Mod parent up! [a] by Anonymous Coward (Score:5) Thurs, June 31, @13:37
    53. Re:Flip side by Anonymous Coward · · Score: 0
      Interesting definition. My distinction has always been that if I can fuck up memory, then I'm programming. Otherwise I'm scripting.

      sudo python -c 'open("/dev/mem", "w").write(chr(0)*1024*1024)'

      Once patched a live kernel that way, though.

    54. Re:Flip side by bluFox · · Score: 1
      Two doubts


      If all you say is true ,then ,,

      why is tomcat an order of performance slower than apache ?

      why have i never found an IDE implemented in java
      (even very general purpose ones like text editors) which provide the same response as that of editors implemented in native code ? (oh yes yes yes the native library thingies.. but try to understand why they are faster.)


      Next,

      Java is probably not a scripting language because it fails to provide the higher level of abstraction (I am not talking about OO here) so common of scripting languages.(Yes it provides a useful set of libraries but that is a different thing from abstraction)


      and Last

      What you said about pico java is totaly out of context. The printers implement a postscript intrepretor in their circuitory, does it make programing in postscript any more non scripting language ?. If that is what you want to do, just grab a c compiler and modify it to compile java programs into native code instead.


      yes , I do work in java 1.4.1 , tomcat , and have tried most java IDEs. but i have seen better environments.

      --
      ~561
    55. Re:Flip side by Anonymous Coward · · Score: 0

      ok i'm sure you know this, but "perl -e file.pl" will do nothing at all.

    56. Re:Flip side by 0x20 · · Score: 1

      well it would if the file was named "print \"blah\"; =)

    57. Re:Flip side by ideut · · Score: 0

      > The halting problem is provably unsolvable.


      Probably, yes. But it could happen. I'm not going to begin to assume that we know everything there is to know about mathematics. I did say that I wasn't going to hold my breath.



      I said provably, not probably. As the proof is fairly straightforward, new mathematical knowledge isn't going to change the situation. Claiming otherwise is as bizarre as claiming that Pythagoras's theorem is probably true in planar euclidian space.

      --

      --

    58. Re:Flip side by Anonymous Coward · · Score: 0

      why have i never found an IDE implemented in java

      You've never used Borland's JBuilder? It is pure Java.

    59. Re:Flip side by Mike1024 · · Score: 1

      Hey,

      Besides virtually nothing is "compiled into assembly language" these days.

      Yeah, most compilers compile directly into machine code.

      You see? It's funny, because that's what the poster really meant!

      Michael

      --
      "Goodness me, how unlike the FBI to abuse the trust of the American public." -- The Onion
    60. Re:Flip side by RedWizzard · · Score: 1

      I figured that, I was just being pedantic. I really should just stick to the point sometimes.

    61. Re:Flip side by Tet · · Score: 1
      I think the moral of the story here is don't assume the size if you are writing cross platform C/C++

      Indeed. In fact, the only thing you can guarantee is that sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long). Remember that. One day, you will encounter a system with an 8-bit char, 12-bit short, 12-bit int and 16-bit long. Then you'll curse yourself if you made any assumptions about size...

      --
      "The invisible and the non-existent look very much alike." -- Delos B. McKown
    62. Re:Flip side by bluFox · · Score: 1

      Please ,
      I use JBuilder 8 now(used most versions) and have used Codeguide JDeveloper and what not, to find one that could give me the responsiveness i was looking for.
      My system is a P-3 with 512 mb of ram (Corporate developement envt.) but even with this much memmory it simply doesn't cut it. Yes i have seen these IDEs run a little faster in the latest p-4s but i wont say it is any where as fast as the native ones

      --
      ~561
    63. Re:Flip side by J.+Random+Software · · Score: 1

      You're right, with the caveat that char, short, and long will always be at least 8, 16 and 32 bits, respectively. Other bogus assumptions:

      • CHAR_BIT == 8.
      • Integers are twos-complement with silent wraparound.
      • A long is big enough to hold any pointer.
      • You can walk a pointer through a buffer and dereference unaligned values.
      • Structs contain no padding.
  6. 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"

    1. Re:I once heard by Anonymous Coward · · Score: 0

      It would be nice to have an example of a problem that takes so much longer in c/c++ to solve.

      Programming c/c++ is relatively easy and quick (i.e. using a library that sets up a basic environment). Much time can then be spent on the problem with very short compile times in most cases.

      It seems to me that with proper classes and such, a problem could be solved much faster with a programming language than a scripting language.

  7. 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 JourneymanMereel · · Score: 1

      Ya, he's pretty sure that he's talking about Perl which contains the use script; directive.

      --
      Life has many choices. Eternity has two. What's yours?
    4. Re:IT's called a standard by korgull · · Score: 1

      Good point.
      In my company we also set standards regarding languages. So far a few engineers complained but none of them ever came up with good arguments to break these standards.
      I'm sure none of them ever will because it would be up to them to set the new standard, which whould mean a lot of hassle like arranging training, support, maintenance .... pretty much everything needed to make it an accepted standard within a large company.

    5. Re:IT's called a standard by Anonymous Coward · · Score: 0

      At my company we have a standard 'hammer.' But some of these young upstarts just waltz in here and insist on using 'pliers' and 'screwdrivers.' There's even a real wacko with something he calls a 'phillips-head' screwdriver.

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

    7. Re:IT's called a standard by Anonymous Coward · · Score: 0

      s/script/strict/

    8. Re:IT's called a standard by kin_korn_karn · · Score: 1

      so which one are YOU talking about?

    9. Re:IT's called a standard by Anonymous Coward · · Score: 0

      And if CluelessScripter _had_ used Perl, _and_ had enough of a clue to use "use strict," he would not have had so many problems.

      Thank you for that incredibly accurate portrayal of the sort of arrogance this story complains about.

    10. Re:IT's called a standard by JourneymanMereel · · Score: 1
      s/script/strict/

      Doh, I hate it when I make a silly typo like that... of course had it been in an actualy perl script the intrepter would have told me it couldn't find the "script" module in @inc :)

      --
      Life has many choices. Eternity has two. What's yours?
    11. Re:IT's called a standard by binaryDigit · · Score: 1

      I've worked for a large company where this type of thing occured/s too. Part of the problem however is that it's a large company. Often times dev group A in Product Group B in Location C runs off and does whatever they think is right. When the dev group and product are then integrated into the fold, you often have problems. One very common example of this is acquisitions. It is very common to have to deal with many variant platforms, languages, etc due to the acquisition of other companies.

      The biggest challenge is that no matter how you got there, coming up with an effective solution for dealing with what you have. Unless a product is end of lifed, there's ongoing development which get's in the way of doing the maintenance work to get eveyone talking on the same page. Trying to juggle your resources so that you can still move forward, but at the same time trying to re-architect or refactor or rewrite is a very significant challange. One that many companies simply punt on until forced, or gets long and drawn out (all of which I've experienced).

    12. Re:IT's called a standard by jbolden · · Score: 1

      You work for a very large company and only have 8 OSes and 24 languages? That is terrific for a very large company.

    13. Re:IT's called a standard by MadHungarian · · Score: 1

      Yup, same thing where I work, a long while back they but in a buch of consultants to work on a OO/C++ project for an OpenVMS system.

      They did a lot of work in REXX (OS/2) - they left, code got thrown out and rewritten.

    14. Re:IT's called a standard by jemfinch · · Score: 1

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


      So would PyChecker, which would also have caught a wider variety of errors than "use strict" would have.

      Jeremy
    15. Re:IT's called a standard by Anonymous Coward · · Score: 0

      Anyone who can't learn python well enough to keep up with an intern shouldn't be allowed to program for your company.

    16. Re:IT's called a standard by MeanMF · · Score: 1

      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.

      There's an easy way to avoid this situation... I had a consultant with basically the same attitude - in this case it was that VB was a toy and that it was C++ or nothing. I showed him the door, hired somebody without an attitude, and got the project done without any support headaches.

    17. Re:IT's called a standard by BethLogic · · Score: 1

      We had the same problem, except that it wasn't an intern, but instead a VP.... We can blame him just the same, though.

    18. Re:IT's called a standard by FatherBusa · · Score: 1

      I get really tired of this argument. A skilled programmer should be able to pick up a language well enough to maintain code in a weekend. If the developers are of the "if it ain't Perl we can't deal with it" camp, they may not be worth keeping around in the first place.

    19. Re:IT's called a standard by Sebastopol · · Score: 1

      while i agree that a good programmer should "stay current", there isn't always the time. especially when you discover that an important piece of code is broken when you under a deadline. learning the language to debug the code may take more time than just re-writing the code.

      then there's the question of why even waste the time? will that language be around? is it going anywhere? if i spend a weekend learning Python, and then don't touch it again for three months, i have to spend another weekend learning python.

      i see your point, but sometimes it really is cost effective to stick to the status quo.

      (hey! i used status quo in a sentence!)

      --
      https://www.accountkiller.com/removal-requested
    20. Re:IT's called a standard by FatherBusa · · Score: 1

      I understand what you're saying, and you're right.

      But I'm thinking of the following scenario. A programmer has a job to do, and they do what most of us think of as a Good Thing: they look around and say, "This is a perfect job for [insert language] because it has [insert library], and I'll be able to knock out robust, readable code faster than with [insert language]."

      Now, I think that really is a Good Thing. Java isn't good at everything, and neither is Python, and neither is Perl, and neither is C . . . On the other hand, these languages are all the best possible solution for certain kinds of jobs, and an adroit programmer can figure out which is which.

      It's in that situation that the code standard starts to really get in the way, and it makes the "I know Perl. I'll rewrite it in Perl" attitude all the more odious.

      I guess what we really need is some sort of rubric for multilanguage environments. People need to make the case to the group for why a particular language is ideal, and have a plan for what happens when that person leaves (or whatever). That would prevent not only the case of the Perl rewrite, but it might also help to mitigate the converse situation: I'm going to write it in Ruby (or whatever) because Ruby is cool."

    21. Re:IT's called a standard by Anonymous Coward · · Score: 0

      At my previous job, someone decided to implement a scripted part of the system in Python. I dunno, maybe Python was voted cool language of the week on Slashdot that week. Anyways, the people in production support were untrained in the finer details of Python and couldn't visually easily dsistinguish a series of spaces from a TAB in the simple TEXTAREA input they were given on a JSP page to edit the scripts. It wreaked havoc.

    22. Re:IT's called a standard by Anonymous Coward · · Score: 0

      A half-way decent Python programmer will us PyChecker to go over their code. This will highlight any problems like the one you mentioned, as well as a few other unexpected ones.

    23. Re:IT's called a standard by maxm · · Score: 1

      Had you developed the application in Python, those problems probably would not have been there!

      It is *far* more cross platform than c++/c.

      --
      Max M - IT's Mad Science
  8. 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 Anonymous Coward · · Score: 0

      Hey, waddaya know.
      Visual Studio created a GUI app for me after 4 mouse clicks and the entering of a project name.

      I must be an elite programmer.

    2. Re:my belief by Anonymous Coward · · Score: 0

      Web forms are GUIs as well. Just because the browser parses your markup to generate the GUI is meaningless.

      A GUI app will almost certainly use a GUI toolkit that can potentially make things as easy or easier.

      Can't believe this bit of pap is getting modded up.

      Guess it just goes to show the first person to post something halfway coherent gets the points.

    3. 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
    4. 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.

    5. Re:my belief by Anonymous Coward · · Score: 0

      So what about those of us in the middle who do complex 'programming' in a scripting language but happen to use the browser as the front-end GUI? Intranet site development could fall into this category, after all since most interactive web applications can be boiled down at some point into just processing a web form, albeit with many side effects.

      Also what if I write a page in JSP, then that is Scripting? If I were to create the same result as a Servlet, then I would be Programming? Even though JSP is compiled by the application server into Servlets which would identical files?

    6. Re:my belief by MattCohn.com · · Score: 1

      I don't like the word elite. It's too hard to define.

      You are a programmer. You are not a good programmer. If your program did something to solve a problem, then it would be worthwile programming. You can make a one line statement in perl to output a line of text but it doesn't make you a worthwile scripter.

    7. Re:my belief by Anonymous Coward · · Score: 0

      Don't worry.
      The poster is an idiot.

      So is MattCohn.com who completely failed to get my sarcastic point.

    8. Re:my belief by Ender+Ryan · · Score: 1
      Sure, but IMO it's more than that. I think the structure of the code, the size of the project(I've seen some pretty complex forms :-), etc.

      There's a different process involved with each. Programming requires creating a solid infrastructure, whereas, IMO, scripting is basically gluing a bunch of shit together as fast as possible.

      For example, I've seen plenty of GUI apps that are structured like your average web form processor, and I've seen plenty of web-based stuff that's beautifully structured, and based on a solid foundation.

      YMMV, YHBT, HAND, AYBABTU, etc.

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
    9. Re:my belief by Guppy06 · · Score: 1
      "Processing a web form is scripting. Writing a GUI app (be it in Win32 or wxPython) is 'programming'."

      So the GUI in and of itself is what makes a program a program? What if you include the HTML code that the script uses as a front-end? Or does that not count because it requires a browser? If so, what if I were to point out that using Win32 or wxPython is also using Somebody Elses Code instead of making your widgets? By that logic, only writing your own GUI interface from scratch (probably in assembly) is the only "real" programming there is.

      Wouldn't a web form at some point become more than "just a web form?" We can all probably agree that a guestbook isn't "real programming," but what about something that figures out the ways a package of weight X can be shipped, the price ranges for the available shipping options, the totals for the available shipping options, including the cost of a box/envelope (if any, varying by shipping option), and which of the options are cheapest to a particular destination and/or overall?

      At any rate, I wrote said code in JavaScript both because it was easier to cut-and-paste the generated HTML code from one Moz tab to another for my eBay operations and because I refuse to consider myself a "programmer."
      • "Programmers" are those people that churn out computer logic for fun on the weekends ("I think I'll make an ASCII graphical interface for Doom so I can play through a Telnet terminal!"). I only dabble with Linux maybe once or twice a year. I don't compile my own kernels. The most complicated OS-level "script" I ever wrote was a DOS .BAT file.I have no desire to do anything more.
      • "Programmers" are those people that do what they teach in those God-awful high school and college programming classes I went through. I don't go through a "programming process," I don't do "pre-coding," I don't do flowcharts, I just fulfill particular needs as they arise and stop when the code is good enough to do what I need it to do (no matter how kludgy it looks).
      • "Programmers" are those people that code for other people. I don't want to code for somebody else for a living and I don't think I could code for somebody else for a living. Read previous bullet.
    10. Re:my belief by FatherBusa · · Score: 1

      My belief is that there is a shimmering line between programming and scripting that doesn't really hold up in the face of technical definition. Compiled vs. interpreted doesn't work (few people think of Java as a scripting language), form processing versus standalong GUI development doesn't work (is it scripting when you design a complicated MVC framework that dispatches form data to variable types of backend storage?). Even "quick-and-dirty" versus slow and elegant doesn't work; you can do either in any language. I can't think of single reason why Java is a "systems" language and Ruby is a scripting language.

      I think we're left, then, with an essentially social phenomenon, which helps explain why there is a perceptible divide between one type of activity and another. If I were dictator, they would all be called programming languages.

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

    12. Re:my belief by mosch · · Score: 1
      Processing a web form is scripting?

      What if that web form acts as the general ledger for a fully web-enabled accounting system?

      Not every web form consists of 'vet some posted variables then put them into a database with no alteration'.

    13. Re:my belief by zephc · · Score: 1

      evidently too many people are not getting that i was using examples, not that web form processing is the end-all and be-all of scripting, and GUI work for programming. Someone else made the good point that scripting could be defined as glueing components together.

      The line between the two is so blurry that I used the scope of a project as my own definition, because larger projects tend to require more components that interact, and usually more creativity required (which makes programming an art, rather than just being a code/script monkey).

      Again, i said it was my belief, so it's my subjective way of judging the two. YMMV.

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

      Processing a web form is scripting.

      Not when the web form is part of an enterprise application including database connectivity, session management, etc.

    15. Re:my belief by michael_cain · · Score: 1

      Where do you put a complex Excel spreadsheet that handles a range of inputs? These get used for multi-million dollar decisions all the time.

      I got kicked out of a meeting one time when I asked to see the test plan for the spreadsheet on which the company was basing a $100M decision. I believe the comment that got me kicked was something like "If I wrote code for the implementation like that, you'd fire my ass!" implying that I expected the business analyst to have made some reasonable effort to be sure the complex financial calculations were correct. I have seen a spreadsheet where an intermediate result was multiplied by the constant 10 rather than 100, and the error was uncovered rather late in the process (like just before presenting to the CFO).

      My own opinion is that if it's going to run more than once and the results are supposed to be right across a range of inputs (certainly true for a business case with sensitivity analysis on the key variables), it's programming. Processing a Web form such that there are complex and persistent side effects (eg, a credit card charge) is programming, no matter what it's written in.

  9. 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.
  10. 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 srmalloy · · Score: 1
      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.

      I don't think that it is typically the job being assigned to the wrong person, but that it is the job being assigned by the wrong person -- someone who does not have enough comprehension of the problem and the available tools to make a good decision about how a task will be addressed, and who is unwilling to accept the advice of the subordinate they assign to the task that another method (or another person) would be better for the task. Or if the subordinate is unwilling or unable to give feedback to the person assigning the task. There have been too many occasions where a design was finalized in the upper levels of management and dropped on the programmers to implement according to the design, with the programmers -- or anybody else with a clue how to solve the problem -- given no opportunity to suggest better ways to complete the project to be able to count the wasted man-hours.
    6. Re:Wrong Person, Not Language by Anonymous Coward · · Score: 0

      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.

      No, you don't.

      Haven't you ever heard a sysadmin talk about how a Windows fileserver used to crash all the time, and they got heat fromt heir boss for it... until they replaced it on the sly with a Linux machine running Samba. Been up ever since, no downtime.

      And management still doean't know....

    7. Re:Wrong Person, Not Language by asland · · Score: 1

      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.

      A good work environment should include your feedback! If you (the implementor) is aware of a better solution to a problem, you should present it to TPtB and your PHB. If they are unresponsive, either you need to evaluate your job or whether you are really right. They may have a specific reason why you need to use the in-house language.

    8. Re:Wrong Person, Not Language by Anonymous Coward · · Score: 0
      A good work environment should include your feedback! If you (the implementor) is aware of a better solution to a problem, you should present it to TPtB and your PHB.

      "Feedback" was a touchy-feely thing for the dotcom era. In a down economy, management knows they don't have to mess with any of that esoteric crap, and if the propellerheads don't like it they can pack their shit and look for another job.

      Now shut up and eat your gruel!

    9. Re:Wrong Person, Not Language by srmalloy · · Score: 1
      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.

      If you read the article, it's not so much a question of directing that the program be written in Perl just because it could be written faster in that language by a Perl programmer than a Java programmer, even if you don't have any Perl programmers, but (using your example) ordering that it be written in COBOL even though it could be thrown together in VB in an hour or two. The article uses the 'interpreted vs. compiled' dichotomy to illustrate the productivity losses resulting from selecting an inappropriate development language from the ones a company has development skills with, not just the script-vs.-executable wars. The 'it's just a script, it's not a real program' can be carried to lots of other languages.
    10. Re:Wrong Person, Not Language by aridhol · · Score: 1
      I am currently looking for a new job, in large part due to TPtB ignoring feedback (not about language choice, but things like spam, security, legalities, and other fun stuff).

      So if anybody's looking for a slightly-disgruntled programmer in Winnipeg (sorry, can't relocate), let me know ;)

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

      Actually I'd just shorten your statement a bit:

      the right language probably isn't perl, no matter what the problem is.


      Just Kidding! I don't want 10 million zomby eyed perl hackers coming out of the woods looking for $blood

    12. Re:Wrong Person, Not Language by Anonymous Coward · · Score: 0

      programmer in Winnipeg

      I am not familiar with the Winnipeg programming language. Is it a real programming language or just for scripting?

      can't relocate

      Where are you located now?

    13. Re:Wrong Person, Not Language by aridhol · · Score: 1

      Winnipeg the city, not Winnipeg the language. Have I just been trolled?

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

      Yup winnipeg the language, it's a lot like C++ but instead of colons we use "eh?" at the end of fuctions.

    15. Re:Wrong Person, Not Language by Anonymous Coward · · Score: 0

      You need to learn how to manage the managers. If the pointy haired boss doesn't show you the respect you deserve as an engineer and clearly superior intellect, there must be some way you can make that very costly for him (i.e. hurt his career and maybe even get him fired) without exposing yourself to any risk. You just need to learn to be devious.

      And there's nothing wrong with that; an arrogant manager that rules by dictat can't be a good manager, and in my experience the only way such people ever learn the error of their ways is through systematic humiliation.

      You should probably begin your education by reading through the files of the BOFH :o)

    16. Re:Wrong Person, Not Language by zCyl · · Score: 1

      That doesn't work if The Powers that Be have decided on a solution ahead of time.

      If "The Powers that Be" are doing the work of the people beneath them and choosing their favorite language rather than the right language, then already the wrong person has decided. Corporate managers are usually not in a master/apprentice relationship and shouldn't pretend that they are.

    17. Re:Wrong Person, Not Language by aridhol · · Score: 1

      Sorta hard to get the owner fired ;)

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

      Let me guess: You didn't something stupid and now you've convinced yourself it was TPtB' fault. Well take some responsibility for once. No way I'd hire you.

    19. Re:Wrong Person, Not Language by aridhol · · Score: 1
      LOL That's about the speed of things here, eh?

      Blah. I really am looking for a new job, BTW. I'll be out of town next week, but when I get back I'm going to post my resume (already looking in the paper and the search webites).

      Way off topic, but does it bug anybody (who's still listening to this thread) that all the job-search sites are so USA-centric? It sucks to have Canada listed as a state - I don't want jobs in Nova Scotia or Ontario, just here in Winterpeg, Manisnowba.

      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    20. 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."
    21. Re:Wrong Person, Not Language by Anonymous Coward · · Score: 0

      What about Monster.ca, and HotJobs.ca?

      If there isn't much listed there, perhaps that's just a sign of how crappy the Canadian economy is right now.

      Oh well... Good luck!

    22. Re:Wrong Person, Not Language by MonsterChicharo · · Score: 1

      I you have experience with C language I would strongly suggest you to use Objective-C for your project.

      Trust me.

    23. Re:Wrong Person, Not Language by ab762 · · Score: 1
      We even made them up ...

      That was a BNR/Nortel tradition. Every serious project wrote its own compiler for a custom language. Generally, these were unnecessary, but really useful for creating organizational silos.

    24. Re:Wrong Person, Not Language by David+Eppstein · · Score: 1

      You do know that you can program using the native Cocoa toolkit in Python, right? If not, check out http://pyobjc.sourceforge.net/

    25. Re:Wrong Person, Not Language by ADRA · · Score: 1

      Plow driver not cutting it anymore? :-)

      --
      Bye!
    26. Re:Wrong Person, Not Language by zephc · · Score: 1

      a) yes, I'm using ObjC
      and
      b) yes i know about PyObjC, but it seemed rather a hack to me, at least last time I checked it out. Tho it was still a lot better than the f'ugly Perl/ObjC/Cocoa bindings

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

      We even made them up when we needed to.

      Everyone who loves 'Rule Language' raise their hand!

      Ooh, ooh, me!

  11. Right tool for the job by Anonymous Coward · · Score: 0

    I think any good programmer (or scripter) would know there's the right (or better) tool for any job.

    I hate it when I spend too much time writing C/C++ code, and figuring out later that it could be replaced by a simple 4 line Perl script.

    1. Re:Right tool for the job by Jeremy+Erwin · · Score: 0, Flamebait

      A good programmer who knows his perl may be able to replace a lengthy C/C++ program with a few lines of perl, but what happens when that programmer moves on?

      To the untrained eye, perl looks like line noise, and may be rather difficult to maintain. Admittedly, perl is rather popular, but suppose that a programmer decides that lisp, haskell, or intercal is apropriate to the job at hand?

    2. 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.
    3. Re:Right tool for the job by Jeremy+Erwin · · Score: 1

      Let us suppose that a hacker is hired by a company, and decides that the "best tool for the job" is not C/C++, but perl. This hacker, shortly thereafter, decides to leave the company.

      The next hacker hired will have to know perl as well as C/C++. He is also familiar with Eiffel, and decides that another component of the project is to be coded in Eiffel.

      Three years down the road, the company decides to higher more programmers.

      Wanted: Programmers. Must be fluent in C/C++, Haskell, Eiffel, perl, Python, Ruby, Oberon and Common Lisp. Experience in Intercal a plus.

    4. Re:Right tool for the job by betis70 · · Score: 1

      >>Wanted: Programmers. Must be fluent in C/C++, Haskell, Eiffel, perl, Python, Ruby, Oberon and Common Lisp. Experience in Intercal a plus.

      You just described most of the jobs in my last Dice.com search. Apparently noone out in the corporate world sticks to a standard--or they are just looking for the top dog, guru type only right now.

      --
      I forget...are we at war with Eurasia or East Asia?
    5. Re:Right tool for the job by hondo77 · · Score: 1

      That is a problem caused by bad project management, not Perl.

      --
      I live ze unknown. I love ze unknown. I am ze unknown.
  12. 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.

    3. Re:Mountains and molehills.. by Grrreat · · Score: 1

      I happen to aggree with you. My self I do mostly scripting exclusively and find that most hired programmers no very little how to do though. I don't know why this would be the case except that they learned an Object Oriented language and never bother with scripts or batch files. They come to me when they need that.

    4. Re:Mountains and molehills.. by FatherBusa · · Score: 1

      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.

      No, it's bad development. Re-writing code into a language "you like" is incompetence. Period.

    5. Re:Mountains and molehills.. by Anonymous Coward · · Score: 0

      The right solution is to have someone who knows the most languages the best decide on the language(s) used for a project, with no consideration for whether the project team actually knows those languages.

      On the long term, this is for the best, because the entire project team will learn more languages and will become capable of making better language decisions themselves in the future.

      This would be a humbling experience because a lot of people would be forced to admit that their favorite language is not necessarily useful for all that many things...

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

    Hmm. I thought scripting *was* programming.

    1. Re:vs programing? by Anonymous Coward · · Score: 1, Insightful

      Indeed.

      Sometimes the issue may be more related to the company wanting to keep to their standards. If C++ is their standard programming language then it makes sense for them to enforce that. That way when someone is hired they know what skills that person needs and the hiree knows which skills they will need. It makes it easy to bring new people onto a project as well.

      However, I think the issue is that most companies don't have a standard scripting language but they need one. If a company needs to standardize then they need a standard compiled/general purpose language (or two), and a standard scripting/high level language (or two).

    2. Re:vs programing? by RevAaron · · Score: 1

      It is. But that is the point of this entry- a lot of people seem to distinguish "real programming" and "scripting." They are the same thing. One may be programming something in a different domain, but it doesn't make it not-programming.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    3. Re:vs programing? by SeverianDragon · · Score: 1

      Good question, I've wondered that too. The only "language" differentiations I look at are weather a "language" is Turing Complete. Ei: for web apps PHP is a language whereas HTML isn't. Maybe the difference is in speed. A compiled language runs faster whereas a "script" is compiled on the fly.

      --
      Once more into the birch deer fiends!
    4. Re:vs programing? by rnicey · · Score: 1

      If I had points, I'd share the karma.

      Quite. A real difference between most scripting vs 'traditional' programming is the library support. If you took Perl and removed it's regex, handy functions like split/join etc. and did away with the CGI library it might not be as popular.

      Similarly take C/C++ and add natively add regex, split/join and a nice CGI system (some call it Java, save the VM) and all of a sudden C++ becomes real easy to 'script' in.

    5. Re:vs programing? by ideut · · Score: 0
      PHP is a language whereas HTML isn't.

      Incorrect. HTML isn't a programming language, but it *is* a markup language.

      --

      --

    6. Re:vs programing? by rabidcow · · Score: 1

      You must be a scripter. ;)

  14. cry me a river..... by Anonymous Coward · · Score: 0

    Show me a talented scripter that does not know another language, and I'll show you a dot-bomb refugee.

  15. 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
    2. Re:Depends... by Anonymous Coward · · Score: 0

      Oh so you also work on Slashcode as well, eh? :D

    3. Re:Depends... by DrinkDr.Pepper · · Score: 1

      P.S. I work for a NASA subcontractor. And you wonder why things cost so much.

      --
      0xfeedface
  16. I completely agree! by xXunderdogXx · · Score: 0, Redundant

    All the ladies give my Python some respect.

    Yes, I'm -that- guy from TV.

  17. I agree by Anonymous Coward · · Score: 0

    The company that I am working at (Fortune 500) is in the process of a Linux migration on some of their servers. I was asked to write a VC++ application to run as a service on a dedicated Win2000 server. The service reads text files from the Linux server, modifies the text formatting, and then puts them back on the Linux server. I could do this in BASH using GREP in about 1 hour, but instead the company requires a "program", which is going to take a week or two to code, QA, test, and deploy. Crazy.

  18. tools by gol64738 · · Score: 2, Insightful

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

    1. Re:tools by Anonymous Coward · · Score: 0

      Right on.. Many of us program in all languages, including scripts. It just depends on what you're trying to accomplish. A real computer professional can learn and use any language whether it be C++, Java, Assembly, Python, Perl, Ruby, PL/SQL, etc. If your skill set lies in only one area you're not as useful.

    2. Re:tools by Quimo · · Score: 1

      Actually using the right tool for the right job isn't always as simple as you seem to think it is.

      How much the application will be used

      How much processing the application will take.

      What will this application be expected to do in the future.

      What the existing skill/tool set is.

      There are Probably many more things that I can't think of off hand.

      The more appropriate statement should probably be "Chose the most appropriate tool based upon the circumstances."

    3. Re:tools by Anonymous Coward · · Score: 0

      Thank you Captain Obvious.

    4. Re:tools by soulsteal · · Score: 1

      When all you have is a hammer, suddenly every problem can look like a nail.

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

  20. Script kiddies are 313+3 too by IgD · · Score: 1

    In other words, it doesn't matter if you are a script kiddie or a hacker just as long as you get the job done

  21. Some programming requires structure. by expro · · Score: 1

    Choosing a language or programmer which is not strong on structure is a judgement call that is sometimes appropriate and sometimes not.

    I think we would need to hear exact and complete cases before we could make any sort of intelligent determination.

    Mistakes happen. Bad judgement happens. Also, good judgement happens that isn't recognized by someone lacking expertise and the big picture.

    1. Re:Some programming requires structure. by Anonymous Coward · · Score: 0

      The thing is, modern scripting language (e.g. Python) are fairly strong on structure.

      The line between scripting languages and other languages is blurring. Still, it doesn't eliminate the need to choose the right tool for the job, which is usually overlooked. The problem is, most programmers are so fanatic about the languages that they already know that they refuse to be exposed to possibly better tools.

      I wouldn't consider someone capable of choosing the right tool for the job unless they had, in addition to the usual compiled and scripted languages mentioned in this discussion (C, C++, Java, Perl, Python etc.) also learned (and actually used) at least one language in the Lisp family and at least one language in the ML family.

      Proper closures, type inference and pattern matching are powerful language features, but most "programmers" don't even know they exist!

  22. 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!
  23. 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.

    1. Re:Use BOTH! by royalblue_tom · · Score: 1

      We do the same thing - generally, if you have people out in the field that don't have access to your handy neighbourhood compiler, then it's nice to have a "work around" scripting language that's powerful enough to cope. We build in C++ and VB, and script in TCL, and the company has standardised on those. Given the API the company provides with the scripting language set up, I could recode almost our entire product line if I had to (it wouldn't run as fast though)!

      And whether it's readable is nothing to do with scripting vs. programming. It's to do with writing it properly. Your next job may be as a maintenance coder. Or, if you are really unlucky, you move to a new job and you end up supporting software used by the team you left, who will curse you to your face (true story - the guy's only comments were his initials and the word hack).

      Writing code that is unmaintainable is a reason to get fired, not to get retained. Unreadable code just makes you look unprofessional. Always remember that "irreplaceable" employees have to be replaceable - what happens if they get hit by a bus! Truely irreplacable employees are insured for millions. Ask yourself - has your company issued itself specifically against your loss ;)

  24. Re:Score 5: Funny by Anonymous Coward · · Score: 0

    How did that comment get Score 5: Funny ?!

  25. 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,
    1. Re:All in how you say it. by Xerithane · · Score: 1

      *sigh*, Yes, I can whip up that script for you == Programmer forced to learn how to write in Perl to maintain employment.

      --
      Dacels Jewelers can't be trusted.
    2. Re:All in how you say it. by Anonymous Coward · · Score: 0

      "I can program HTML." == l4m3rz!!

  26. 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 Anonymous Coward · · Score: 0

      Ah, so you must be a Microsoft programmer, huh? Hardware may be fast and cheap, but not everyone can afford to upgrade their servers every two years just because of poorly optimized code.

    2. Re:Hardware is so fast and cheap... by Anonymous Coward · · Score: 0

      Agreed, when programming trivial tasks on short-lived projects, it's only the development time that matters. However, large-scale transactional processes or datawarehousing applications (for example) often have serious consequences as a result of programming time.

    3. Re:Hardware is so fast and cheap... by Anonymous Coward · · Score: 0

      This seems like the 'hardware is fast so optomizing code isnt needed anymore' argument, sorry if i understood your statements wrong before i finish my reply.

      This is the problem with many many of the applictions released today. Look at sim city 4, get more then a couple thousand ppl in your city and the fastest systems built chug along. I guarentee there are many tousands of optimizations that no one thought to make because, well the hardware out is fast enough!

    4. Re:Hardware is so fast and cheap... by Anonymous Coward · · Score: 0

      Yes hardware is cheap. In general execution time is trivial.

      But when you consider time to maintain, and especially comprehend the code later in its life cycle... It seems to me that the initial programming time is less important.

      Scripting is popular for the 'quick and dirty' projects. Unfortunately some code/script survives for years, and other code/script lasts only weeks or months.

      You don't know in advance which it will be. Of course you should always prefer that it is the code that survives, since it is easier to maintain.

      In this particular example, the original poster badmouths Java... but neglects to mention that Java now includes Regex (and has had fast substring operations since at least 1.02). (See below for 'anti' Java remarks)

      (Rhetorical question) Given this, why would you prefer scripting? (Except to ensure job :)

      One of the other posters wrote of how he included scripting in his project (p25?) how cool is that? I would like to hear more about that.

      It seems to me that is the most compelling time you would use scripting and nothing else, when it is embedded in another program.

      In the mid 90s I worked for one of the largest IT companies in my country (in top 5) I was basically the only one that would put my hand up for anything other than VB/Oracle. Most of the programmers working there thought that C and C++ were 'too hard'. VB was the 'soft' option. I noticed that in the market place C programmers were paid twice as much, but there were 50 VB jobs for every C job. In that kind of environment it would have been absolutely irresponsible for me to run around doing everything in C (or a scripting language). Who would maintain it after I had gone?

      I worked (briefly) for another outsourcing firm that tried to achieve this kind of job security. They chose Visual FoxPro to write the payroll system for our countries largest company (there were no other companies doing Visual FoxPro development in that city at that time). The development rate was very cheap, but their maintenance contract would have done the Marquis de Sade proud... A friend in another industry the other day referred in an offhand manner to a particular project and said that it was no 'payroll for XXXX co.' - it is surreal to think that I had worked on something that has achieved a legendary status of badness. I told him the background and that I left because I thought their business practices were immoral.

      I wonder if the same kind of people who would have avoided C as 'too hard' are now (or have been) gravitating towards Java? Maybe this is why there are so many really bad Java programmers?

      At my current workplace the scripters are all the network admins... and I try to undo the damage of the Java programmers that went before me in the applications/development area.

      My experience with Java is that there is a 'right and natural' way to do things. A way where everything flows smoothly and you feel like the language is doing all the hard work for you. And there is the other way. The way of pain and suffering. The way of wailing and gnashing of teeth.

      Q: Why do so many new/average programmers choose the lesser of the two paths?
      A: They do not understand (grok) objects.

      Thats what I think it comes down to. Someone who is exposed to objects very early on will have a much easier time of it than someone stuck in procedural land.

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

  27. Re:Script kiddies should be fired by Anonymous Coward · · Score: 1, Insightful

    I know this is just flamebait, but I must reply. Scripting has a place, as does "programming". Use the right tool for the task, and you will win (normally).

  28. 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 nullard · · Score: 1

      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.

      All professional Perl or Shell scripters were once amateurs. That's how things work. If there are no amateurs, there will be no new scripters.

      --


      t'nera semordnilap
    2. Re:Blame the dot-com goldrush... by t0ny · · Score: 1
      I think he is refering to people who are supposedly experts doing amateur work. In enterprise computing, people should not get paid to learn new things at work under the guise of completing a project.

      That is generally where knowledge meets BS. There is nothing wrong with not knowing, but covering up a lack of knowledge is a big problem if you have non-technical people making technical decisions.

      --

      Manipulate the moderator system! Mod someone as "overrated" today.

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

      --
    4. Re:Blame the dot-com goldrush... by Ender+Ryan · · Score: 1
      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.

      You obviously haven't looked at enough amateur C/C++ code! :)

      I must concur though; scripting languages HAVE been "tainted" by the Web. Damn those fashion designers!

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
    5. Re:Blame the dot-com goldrush... by mbessey · · Score: 1

      The difference I suppose, is one of basic skills. If I needed to write a program in Python or PHP (to name two languages I've never used), while my first effort might not exactly be beautiful, it'd at least be organized sensibly, and commented.

      On the other hand, somebody with no training and no pre-gold-rush experience will probably cobble something together by cutting and pasting from someone else's scripts that they don't understand, and end up with a mess that "kinda" works...

      C tends to reward that kind of "programming" by not compiling your program, or having it crash immediately. Perl, on the other hand, will happily accept almost anything, and unless you turn on diagnostics (which nobody but me ever does, apparently), you won't even get a warning about you egregiously broken code.

      Yeah, there's some real bad C code out there. But at least everybody who writes a C program has read at least one book prior.

      -Mark

  29. Scripting is a *lesser* form of programming by Anonymous Coward · · Score: 0

    Sorry to point this out so bluntly, but scripting is a *lesser* form of programming. Scripts are usually very specific to their task (i.e. they take in non-generic inputs/generate specific output). The actual code in a script is usually structured very badly, without any regard to future maintainability of the code. Primary task is to get the script working to solve a particular problem as quickly as possible, resulting in code that is of lesser quality than a program would be that solved the same problem.

    Don't get me wrong, there is nothing wrong with this (non-maintainability/bad code etc.) in some cases... I'm just trying to point out, why some firms would be prepared to "waste" 5 days (time and $$$) getting a "program" written to deal with the problem, rather than a "script".

  30. 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.
    2. Re:A rose by any other name by RedWizzard · · Score: 1

      I disagree. The thought processes necessary to solve the problem may be basically the same, but the thought processes to implement the solution in assembler versus Java are very different. It's not uncommon that great procedural programmers really struggle when they first start using OO languages (and vice versa).

    3. Re:A rose by any other name by SaXisT4LiF · · Score: 1

      Scripter, programmer what's the difference?

      I too am rather confused by the distinction.
      You could probably even write a macro to translate most perl scripts into C. Any takers?

      The thought process is the same whether you are using cshell, java, assembler or any other programming tool.

      The end result is the same, but the thought process is entirely dependent on the tools you choose to use (or someone else chooses for you). How do you compare the design processes between functional and object orientented programming? Any problem can be solved either way, but the planning processes are radically different.

      This is like saying that speaking another language will make a difference in mathematics.

      However, programming languages are not all necessarily mathematically equivolent. The power to generate functions on the fly is limited to only a few languages (LISP for one) can handle, and is an essential component to higher level mathematics.

      Besides, your conception of mathematics is highly dependent on your primary language. In Russian, they have words that are better suited for set theory than their English translations.

      --
      Fight or flight its all the same
      Live to die another day

      --Ryan
    4. Re:A rose by any other name by Anonymous Coward · · Score: 0

      "This is like saying that speaking another language will make a difference in mathematics."
      Scripting wont make a difference in your math, but it will take you longer to get the answer. =)

    5. Re:A rose by any other name by Anonymous Coward · · Score: 0
      This is like saying that speaking another language will make a difference in mathematics.

      How many great spanish-speaking mathematicians can you name?

      (This is not a troll, xenophobia or mere provocation. It's a rather curious observation, which was made to me by a world class mathematician. I have no explanation for it. A language brings a culture with it, maybe?)

    6. Re:A rose by any other name by Anonymous Coward · · Score: 0

      While that sounds pretty, it's totally stupid and wrong. Symbolic calculus produces a more precise result than 'counting boxes'. Two programs in high and low level languages can be 100% equivalent - no difference in accuracy or result.

      High-level languages are not an "approximation".

    7. Re:A rose by any other name by Piquan · · Score: 1

      The thought process is the same whether you are using cshell, java, assembler or any other programming tool.

      "A language that does not change the way you think about programming is not worth knowing." People think about problems differently depending on which language they're using. Or, people like myself, take an alternate approach: I choose the language depending on the problem.

    8. Re:A rose by any other name by yebb · · Score: 1
      Very true. This whole argument is bung. A good programmer will know and use both "types of programming".. although I'm not at all convinced that there really is a difference. In my experience they both compliment each other, and there is a large area of overlap where either can be used.

      C++ programmers dislike scripting untill they've used Perl to do complex data gathering across a dynamic distributed system.

      Perl programmers dislike C++ untill they've programmed/maintained monolithic client applications.

    9. Re:A rose by any other name by lubricated · · Score: 1

      The Reiman Sum(counting boxes) approaches the actual value as the partition width approaches 0. This means that you can achieve arbitrary precision by "counting boxes". Since you can achieve arbitrary precision using a Reiman Sum it is no less precise than the solution given to you by symbolic calculus (especially on a computer) and the Reiman sum can be used where symbolic calculus cannot.

      Counting boxes is valid, and it's what computers generally do to calculate the area under the curve.

      --
      It has been statistically shown that helmets increase the risk of head injury.
  31. Why? 'cos Perl sucks by Anonymous Coward · · Score: 0

    Answer, yes. Reason--because Perl sucks. If you want a problem solved in a few hours and you want the resulting product to be unmaintainable, call a Perl scripter. The Perl guys have given all scripters a bad name--I don't know anything in my workplace that is built with Perl that is maintainable by anyone other than the scripter who wrote it. Quality of the solution over the speed of the solution---

  32. Funny how those companies work by Anonymous Coward · · Score: 0

    Should they take a look at the scope of the work. Do some estimation, then assign the time? Yes, if they assign the time wrongly, why the programmers/scripters words up?

    Then, no one has good estimate on things, so, shouldn't the engineers/programmers/scripters update the progress to his boss on detail basic so, things would not be so understimated?

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

    2. Re:Certainly by wolverian · · Score: 1

      ASP is not a language. Perl, with mod_perl, does not use CGI.

      --
      -- wolverian
    3. Re:Certainly by BollocksToThis · · Score: 1

      I think you're code

      Well, I think you're a script

      --
      This sig is part of your complete breakfast.
    4. Re:Certainly by djcatnip · · Score: 1

      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.

      I envy people who can walk on their hands, maybe some day when I have sufficient time, I'll learn how... but when I have to run from a fire, I use my legs, because I'm faster at running with my legs.

      --
      I make these: http://beatseqr.com
    5. Re:Certainly by FyRE666 · · Score: 1

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

      I always find it funny when someone says that. There's nothing wrong with using tables - they are in fact the ideal, and obvious choice to set out tabular data, or to split a page up into rows and columns. Why the hell do web "experts" spend so much time working on ugly hacks to emulate tables in Netscape 4+/IE4+/Opera 4+ etc? I'm guessing it's to prove some sort of point since it's certainly not for reasons of efficiency or portability.

      While there are still browsers out there that don't actually work with these hacks (NS4 is notorious) then why not use the technology that is proven to work? Using a technology for the sake of using a technology is ridiculous...

      I'm sure that is /. changed over to using nothing but stylesheets there would be a tonne of complaints - the current layout works - why criticise?

    6. Re:Certainly by kafka93 · · Score: 1

      I wasn't trying to suggest that tables should not ever be used -- for 'tabular data' they're fine. But they're really not ideal for 'splitting a page up into rows and columns' -- that's the job for CSS, and it's *not* an 'ugly hack'. CSS allows you to logically separate elements on your page, and to position them as you wish -- and differently for different media, if you so wish.

      It's not a matter of 'using the technology for its own sake', either -- and suggesting that CSS is the 'hack' is ludicrous: it's using tables which is the hack, and which leads to its own problems both for older browsers (issues with missing closing tags, nested elements, etc.) and for platforms for which tables don't make much sense (a visual layout hacked together using tables becomes a garbled mess when rendered in a linear format).

      Tables also add a considerable overhead in terms of the sheer quantity of HTML data required. CSS does away with these in a decent fashion, and will be increasingly useful for a wide variety of layouts as Microsoft fix their browser to do things properly.

      But it *is* for precisely the reasons of efficiency and portability that the likes of CSS are a good thing.

    7. Re:Certainly by Anonymous Coward · · Score: 0

      I've yet to see a CSS-based layout that didn't fall on it's ass as soon as you set your fonts to "Largest" (200% in Mozilla).

      Like most W3C inventions, it works great, academically.

    8. Re:Certainly by Stephen+VanDahm · · Score: 1

      "I've yet to see a CSS-based layout that didn't fall on it's ass as soon as you set your fonts to "Largest" (200% in Mozilla)."

      I've seen very few table-based layouts that look good in Lynx. Even in IE or Mozilla, if I make the browser window really narrow (~300 pixels), just about any layout will break down. Everything is a tradeoff.

      I think Jamie Zawinski said that all operating systems suck, but that UNIX sucks less. Any web page can be broken by the user, so you have to go with the layout that's the least breakable.

      I think that using tables for layout is a dirty, evil hack from hell, but my grandmother uses Netscape 4, and I want my personal pages to be viewable by my family. So I use the tables anyway because, of all my options, they suck the least.

      Steve

  34. Yup. by ambisinistral · · Score: 1
    There is a bias where I work. Where I work you're not a "developer" unless your code gets compiled. What's worse is they've been using that definition to deny pay raises lately. Well, except for themselves of course.

    --

    deserve's got nothing to do with it...

    1. Re:Yup. by Anonymous Coward · · Score: 0

      i suggest you to piss on them and search a better employer.

  35. Scripting Languages are Superior by Anonymous Coward · · Score: 1, Insightful

    for optimum use of porgramming time. A programmer can often accomplish the same amount of productive work in one tenth the time using scripting languages such as Ruby, Python, Perl, etc., than when using systems languages like C, C++ and Java. This is a real productivity savings that companaies ignore at their peril; processor speeds are improving as Moore's Law operates over time; but human brains are hard wiored and don't evolve so fast ;-)))

    Programmer productivity, that's what it is all about; I defy anyone to define a good reason not to use scripting languages where they are appropriate! (Fire away!)

    Scripting Language City at http://www.awaretek.com/slc.html offers many detailed insights into scriptign langauiges, their uses, and how to learn them and get the most out of them.

    1. Re:Scripting Languages are Superior by MyTwoCentsWorth · · Score: 1

      Hmmm...
      It's not worth shooting at - You're just tempting me to define "where they are appropriate!" to mean nothing at all.

      Your question is pointless - it's all in how you define what's appropriate, and that's what this discussion seems to be about

      Have fun,

      Daniel

    2. Re:Scripting Languages are Superior by Anonymous Coward · · Score: 0
      Programmer productivity, that's what it is all about; I defy anyone to define a good reason not to use scripting languages where they are appropriate! (Fire away!)


      I defy anyone to defend the use of scripting languages where they are not appropriate! (Fire away!)

  36. 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 Ageless · · Score: 1

      The difference is in the way the languages are actually used. C is almost always compiled. Perl and PHP are almost always interpreted.

      Also, assembly and machine language (code) are not the same. Assembly still needs to be compiled (assembled) to become machine code.

    3. Re:PSST by Anonymous Coward · · Score: 0

      Obviously written by someone who doesn't have a CS degree.

    4. Re:PSST by Anonymous Coward · · Score: 0

      Actually, Perl CAN'T be compiled to assembly, but it's still an excellent tool. And even assembly and machine languages require a "middleman" - assembly code must be run through an assembler before it's usable and machine code is converted to microprogramming by the processor before being executed.

    5. Re:PSST by Anonymous Coward · · Score: 1, Informative

      I'm afraid you are incorrect. The difference between a compiled language, such as C, and an interperted language, such as Perl, is that the interperted language needs another program to execute its instructions (the interperter). Calling both the compiler and the interperer as the same "middleman" is misleading. The compiler is run once to produce a binary executable. An interperter is run every time you wish your code to execute.

      Of course if Perl is compiled into a binary executable, it becomes the same as C, but I believe this is not commonly done.

      Also, assembly and machine languages are not the same. Assembly code needs an assembler to translate it to binary machine code. However, it is indeed more difficult to code and debug.

    6. Re:PSST by DrunkBastard · · Score: 1

      Well, let's take it a step further! Nothing is a programming language because it all has to be interpreted at the hardware level!

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

    8. 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/
    9. Re:PSST by bacs · · Score: 1

      You are using a non-traditional definition of interpreted. With compiled code the translation into machine code is done completely before execution. In interpreted languages, pieces of code are translated and then executed on the fly. For this reason compiled programs are faster, but must be compiled for a particular platform.

      If you want to get really technical, by your definition assembly is interpreted as well. Assembly code will be translated from human readable text to 1's and 0's for the processor.

    10. Re:PSST by trb · · Score: 1
      C is a scripting language
      The statement above is pedantic. You may have an interpreter that executes C line by line, and you may have a compiler for Tcl. But C is designed to be compiled, so its syntax and semantics do not take advantage of the rich features of a scripting language like Tcl (or Perl), which was designed to be interpreted.

      In Tcl, it is simple to use regexes to good effect. Few C programmers bother with regexes since they're not so readily available. And in Tcl, you can perform useful string operations on names (of variables or procedures) that would be much messier in C. For instance, a proc called proc_$thing or a var called var_$thing .

      Scripting languages like Tcl have associative arrays (Perl hashes) well integrated, C/C++ certainly do not.

      Calling C a scripting language may be true in a strict sense, but in practice, it's silly.

    11. Re:PSST by Anonymous Coward · · Score: 0

      "Also, assembly and machine language (code) are not the same. Assembly still needs to be compiled (assembled) to become machine code. "

      It's not really true actually. Assembly IS machine code, just using short terms in front of the bytes. So I prefere to use the term "translation" than "compilation" as it's only a 1:1 conversion.

      That's why each CPU architecture has it's very own assembly language, because it's simply a humanization of the straight binary.

    12. Re:PSST by TaliesinWI · · Score: 1

      Not quite true. "Interpreted" in the sense you're using it is not the same as "run time compiled" or "two stage interpreted".

      When a Perl program, for example, is run, the code is _completely_ compiled into a bytecode before a single line is even run, and then the bytecode is interpreted (in the above sense) as the program is run. That's why gross syntax errors in Perl or Java are spotted before the program even runs, but logic errors that (say) result in a division by zero error might not crop up until the code is actually encountered.
      It's also why, even if you get Perl to spit out bytecode, you still NEED the Perl executable to RUN the bytecode - the Perl executable contains the interpreter for the bytecode. It would be another step entirely to convert that bytecode into a completely stand-alone executable - see the "Perl to C" and similar projects that are kicking around the Net.

      Now, BASIC, that's an interpreted language (not counting VB and such...I'm talking good old fashioned, IBM ROM BASIC or earlier cousins.) Each line is checked for validity and run, one at a time, as each is encountered. Try typing in a ten line "Hello World" style program in a legacy BASIC sometime, with one of the lines having a syntactical error (like "gosub" to a non-existant line number). You won't usually hear a peep out of the program until it encounters that error halfway into the program, at which point it aborts and prints the error, losing all of your work.
      Shell languages would count as "interpreted" as well. Each line isn't executed until it is encountered.

      And don't use "assembled" and "compiled" synonymously either. One "compiles" one or more C (for example) subroutines into object (.o) files, which are then "assembled" into the final program.

    13. Re:PSST by Anonymous Coward · · Score: 0
      Oh no! Assembly is not just translation, in fact,
      your program is useless after it is translated
      to machine code.


      You still must go to the linking stage, and that
      is non-trivial nowdays with objectdom. (All of
      of sudden, your translation is no longer that
      different from compilation translation. Even the end products are sililar after translation.)

    14. Re:PSST by Lodragandraoidh · · Score: 1

      I like to call this the 'box within a box'. Everything is virtualized - which makes computers the ultimate simulation machine:

      Shape of a spreadsheet -- POOF! - a spreadsheet appears

      Shape of an Airplane -- POOF! - a flight simulator appears

      Shape of a raincloud -- POOF! - a meteorological simulation appears

      ( POOF! = design and implementation btw)

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    15. Re:PSST by Kiwi · · Score: 1
      Except for the hardware "interpreter" running those codes on your motherboard

      Very good point. At one point, there was no such thing as mahcine language for computers. Computers were hardwired to do a given task; to change what a computer did meant rewiring the computer. It was Von Newmann who suggested wiring a computer to interpret numbers in memory (which were only previously used to store values when processing) as instructions to run. And thus machine language was born.

      In fact, it is a good deal faster to run things by hard-wiring it than to run it in machine language. This is why FPGAs are faster than CPUs, and why ASICs are even fater. For example, there is a ASIC design which runs AES at "only" 200mhz, but is faster than a Pentium IV running AES at 3ghz because each "tick" encrypts an entire block.

      - Sam

      --

      The secret to enjoying Slashdot is to realize that it should not be taken too seriously.

    16. Re:PSST by Anonymous Coward · · Score: 0

      no Perl interpreters exist

      well ...

    17. Re:PSST by Anonymous Coward · · Score: 0

      *buzz*

      "Can't" is not a word that applies to computers and conversion to assembly language. All your computer does is run assembly language, that's all it CAN do, therefore perl programs MUST execute as assembly language at some point, even if they go through different software layers - therefore perl programs can be converted to ASM.

    18. Re:PSST by NaugaHunter · · Score: 1

      I've found that a better distinction between scripting languages and programming languages lies in the definition of "script". Even allowing for loops, all scripting lanuages (TIHSIANO*) produce something that has an entrance and an exit with no direct, external, interactive interaction. This holds true from what I've seen for php, perl, sql, vbscript, javascript... On the flip side while programming languages can be used to write programs that process something and quit, many are designed to run continuously and react to direct input.

      Note that by "direct, external, interactive interaction" I mean that either they maintain some kind of user interface, or they are a background process running continually and monitoring something. This does not mean processes that are repeatedly launched, do their thing based on what was passed to them or current conditions, and quit.

      *TIHSIANO - That I Have Seen, I Am Not Omnipotent. Not very catchy, but while I'd like to learn of counter-examples I don't wan't to be flamed for ignorance.

      --
      R: That voice. Where have I heard that voice before? B: In about 365 other episodes. But I don't know who it is either.
    19. 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 :-)

    20. Re:PSST by dkf · · Score: 1
      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).

      In other words, you're defining things exactly so that you get the answer that your prejudices against scripting have biased you to believe in the first place.

      I don't know about you, but I don't like playing games where the rules say "You lose, I win!"

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    21. Re:PSST by tomhudson · · Score: 1
      quote: In other words, you're defining things exactly so that you get the answer that your prejudices against scripting have biased you to believe in the first place.

      If you check up on me, you'll see that I'm a big fan of perl and php as well as compiled languages such as C/C++, etc...

      It's the old saying - the proper tool for the job.

      C is not a scripting language. C++ is not a scripting language. Assembler is not a scripting language. It has nothing to do with non-existent prejudices, it's just a simple fact. I'm sorry you can't seem to accept that.

  37. Re:Score -1: Idiot by Anonymous Coward · · Score: 0

    Agreed. He's trying to cash in on some karma by posting early, even though he might have had something insightful to say if he had thought it out. The least he could have done is provide some EXAMPLES of scripters being biased against, since he seems to have such person knowledge.

  38. 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 GrayCalx · · Score: 1

      I guess I don't see your point, because couldn't that same programmer in charge of maintenance find a bug in a piece of the compiled code that did not follow the norm of the project?

    2. Re:It's about stability by psin+psycle · · Score: 1

      A concept may be easier to express in Latin, but you don't see many novels written in English with Latin added here and there - errr, wait. Yes you do.

      --
      Need a website host? Try out http://WebQualityHost.net
    3. 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....

    4. Re:It's about stability by Nept · · Score: 1

      OTOH, you do (or did) used to see a lot of novels written in english with french and/or latin added here and there.

      --
      "Teachers leave us kids alone ..." - Roger Waters, Pink Floyd
    5. Re:It's about stability by pipacs · · Score: 1
      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.
      Depends. In large projects, quiet often programmers are not familiar with each others code. But you are right: whenever you add a scripting language to the mix, you should make sure the quality standards are maintained.
      Therefore, in a serious project, with millions invested, scripting can be a dangerous shortcut that may plague the project a year later.

      [...]

      Uniformity often leads to quality.

      There is no uniformity in large projects. Perhaps the core is written in C++ or Java. But the database is accessed with SQL. Stored procedures have their own DB vendor-specific language. The build environment is made of a bunch shell scripts and makefiles with their own language. And the installation programs, application startup scripts, and a web GUI with huge dependency on JavaScript etc. etc.

      On the other hand scripting languages can contribute big time to the overall quality of products. First, because scripting languages can really help to avoid some common mistakes, mainly pointer miseries. Second, because they can easily reduce code size to half or more. Less code, less bugs; less coding, more time for testing!

    6. Re:It's about stability by Anonymous Coward · · Score: 0

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

      maybe not, but you should hang out with people who all speak multiple languages. You'll notice the language change many times over the course of a conversation, often for only a phrase or two.

    7. Re:It's about stability by dkf · · Score: 1
      Therefore, in a serious project, with millions invested, scripting can be a dangerous shortcut that may plague the project a year later.

      Given that one of the major problems for the computer industry is the sheer number of projects not delivering anything, your concern is not the only one that project managers should be looking out for...

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
  39. Hanlon's Razor by HaeMaker · · Score: 1

    I agree, and this sums it up...

    "Never attribute to malice that which can be adequately explained by stupidity."

  40. Oh please! by sielwolf · · Score: 1, Insightful

    Not only are the two groups not-mutually exclusive, but both tools are used akimbo. How often do programmers run their compiled binaries with shell scripts? Or Perl?

    Any such distinction between them is better explained along the software programmer versus system admin dimension (programmers do more programming, admins more scripting). At that point its more of a trivial social exercise: the same with Emacs versus Vi (and how often has someone been "discriminated" against for that?).

    In the end this is ridiculous. No one is getting denied health care, civil rights, or a way of living depending on their ability to code or script. If work was denied to you it just means the person is an asshole. And assholes only follow their own twisted logic. They might shit on you for being a woman, or fat, or any other non-important reason.

    In the real world, this pales against real issues.

    --
    What is music when you despise all sound?
    1. 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"?

    2. Re:Oh please! by smcavoy · · Score: 1

      Dude, this is slashdot, since when do you compare real world issues to those found here????

    3. Re:Oh please! by bushboy · · Score: 1

      Ah Butt !

      One group PROGRAMMES and another SCRIPTS.

      You have to draw a line right inbetween them and say "YOU SUCK MORE FUX0R !"

      --
      A slashdotting - you get the stick first and then the carrot !
    4. Re:Oh please! by Anonymous Coward · · Score: 0

      "No one is getting denied health care, civil rights, or a way of living depending on their ability to code or script"
      Oh, really? I passed from CORBA to COBRA in 24 hours for wanting to do all with Linux and not Solaris to save the company some cash...

  41. Re:Score 5: Funny by LPetrazickis · · Score: 1

    It didn't. Its actual score is 0.

    --
    Is this a sigs-optional kind of place? 'Cause I am totally down with that if you know what I mean.
  42. Re:Script kiddies should be fired by Rocko+Bonaparte · · Score: 1

    Because sometimes the development time is faster in using a script than an application. There are plenty of tasks where resources aren't an issue as much as just getting the damn job done. That way, everybody can get back to the real work at hand.

    --
    No I'm not trolling.
  43. 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.

    1. Re:Of course it's true by Anonymous Coward · · Score: 0

      Missed the most important one:

      D) Educate

    2. Re:Of course it's true by Anonymous Coward · · Score: 0

      Are you seriously implying that VB programmers are worth as much as C++ programmers?

  44. 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 ?
  45. 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!

  46. Yes, As long as Program Managers are morons by clevelandguru · · Score: 1

    I think it is lot to do with the Program Manager who decides how a task has to be implemented. In most cases, these guys are not technically good.

  47. Poor Management by gotvim · · Score: 1

    I've experienced this first hand in the past, when I was merely a "scriptor". I don't believe however that it is descrimination so much as poor management, or managements lack of understading it's uses. A good manager should be well-rounded and probably a programmer her/himself with knowledge of both compiled and scripted languages. I've recently become pretty handy at both, and I'm finding that more often than not, I end up choosing a script, say perl or php,etc over c or java for day to day utitilties.

  48. Re:Score 5: Funny by Anonymous Coward · · Score: 0

    Are you sure? It says "Score 5: Funny".

  49. Re:Score -1: Idiot by Anonymous Coward · · Score: 0

    yeah whats up with the bigotry angle. with coding there is actually a difference in the different languages, but with skin color it's no difference. are you honestly comparing the plight of people who have suffered from racism to a stupid programming language

  50. Standards are great but... by Anonymous Coward · · Score: 0

    Why should the standard be a Programming Language (C++ or Java) and not a Combination of Programming Languages and Scripting languages (Java & Perl)

    As its been said in the past, always use the best tool for the job. And sometimes you need to standardize on a set of tools instead of one tool (Metrics vs. Standard, etc.).

    At my office we use Java for quick GUI apps but use Perl when trying to manipulate files before processing in the Java apps. Trying to do it all in on language would take way too long and way too complicated.

    As far as maintenance, keeping up to date on Perl and Java isn't too tough. Just keep the # of languages to a minimum and things should be just fine.

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

  52. Discrimination or Ignorance? by TPIRman · · Score: 1

    the real 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

    This phenomenon sounds like ignorance of scripting's capabilities rather than discrimination against it. I doubt that many companies would deliberately assign extra work just to stick it to the Perl programmers. C++ would seem like the safe solution to a manager too busy or lazy to learn about a scripting approach. To the most literal-minded manager, a "program" will likely seem like a more robust solution than a "script." It's a PR problem.

  53. 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.
  54. 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
  55. can scripters program by cheeseSource · · Score: 1

    Anyone that can script cannot necessarly program. Whereas those that can program can pick up a scripting language in very little time. However if you have someone who can script and a programmer who hasn't picked up that particular scripting language then common sense says go with the scripter as they already know what the heck they are doing.

    --
    (Sponsored by cheeseSource for President 2012)
    1. Re:can scripters program by Anonymous Coward · · Score: 0

      Exactly, it comes down to the scope of the project and depth of complexity. It's much easier to create a simple website than a simple program, aside from those damn pointless calculators....

  56. 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.
  57. Re:Script kiddies should be fired by Langalf · · Score: 1

    Execution speed is hardly the only consideration, and often is way down the list of priorities. A one-shot, ad-hoc request for data can be quickly fulfilled with a script that might otherwise take hours of programming/debugging. Even fairly complex tasks that are not speed dependent might be more easily maintained in a scripted language. The requirements of the task should drive the language decision, not some arbitrary concept of what "real software" is.

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

    1. Re:You better believe it by Anonymous Coward · · Score: 0

      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.

      He was probably referring to the effort required to do it correctly ;)

  59. Scripters vs. Programmers? by Anonymous Coward · · Score: 0

    That distinction is retarded. Use the right tool to solve the problem.

    "Java Programmer" or "Perl Programmer" are things to put on paper, not to actually practice. Why use a hammer on a screw?

    Unless you're a "Python Programmer". Then you should be put up against the wall, you commie scum.

  60. Re:Script kiddies should be fired by bluprint · · Score: 1

    Assuming this isn't sarcasm... It's because frequently the development time is a hell of a lot faster. Sure, you may be able to write a program in C that runs in half the time as my Perl script, but when my perl script runs in 15 seconds to begin with, you've probably spent several more hours (at least) to lave 7.5 seconds. I guess I must be both a programmer and a script kiddie. When appropriate, I use Perl frequently. Other times, I use C/C++ with/without Oracle's ProC compiler. Sometimes one is better, sometimes the other.

    --
    A modern day witchhunt.
  61. perhaps... by lfourrier · · Score: 1

    ... the real bad attitude toward scripts is based on experience...

    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 think that scripts should be limited to small and easy to understand tasks. They are often easily broken. They often make dangerous assumptions.

    Another point: I know good classic programmers that are also good scripters. I know far less scripters able to become good classic programmers.

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

    2. Re:perhaps... by lfourrier · · Score: 1

      python is interpretted, but can we still say it is just a script?

    3. Re:perhaps... by mrkurt · · Score: 1

      You can look at Python as being a lot like Java: it's compiled when you import a module with the interpreter, and a compiled Python "bytecode" file is created (.pyc). But it is still interpreted by the Python runtime. Whether you want to call it a "script" or a "program" is up to you. Maybe it depends upon what you're using it for: for systems programming or CGI, it could be a "script"; for a Tkinter GUI or some other purpose, it could be called a "program". What sets Python apart from traditional scripting languages, in my opinion, is that it can be object-oriented-- you can create classes and utilize inheritance and polymorphism (which works a lot better with Python than with strongly-typed languages). Usually, scripts aren't compiled, but with Python, you can call the .pyc files as a prorgram too-- the interpreter doesn't care. I don't know that the performance is any faster, but they are compiled files. I think the prejudice from scripting is from the tendency of interpreted prgrams to run more slowly than lower-level apps.

      --
      Always look on the briight side of life! (whistle, whistle)
    4. Re:perhaps... by Fizzlewhiff · · Score: 1

      I'll take python over C in a maintainability contest any day. Pointers and memory management are notoriously hard to maintain.

      Especially when all you know is Python.

      --

      'Same speed C but faster'
  62. I don't know about you guys here.... by whazzy · · Score: 1

    ...But yeah,budding Scripters in Hollywood really feel discriminated by the production programmers:-)

  63. Re:Script kiddies should be fired by Anonymous Coward · · Score: 0

    I've never understood why people want to write anything in a compiled language, given that hand crafted binary 1's and 0's are, without exception, faster than compiled languages (C/C++, Java, O'Caml). Perhaps people who write real software resent those who try to take shortcuts with their software engineering.

  64. Re:Script kiddies should be fired by The+Locehiliosan · · Score: 1

    An excellent example of someone who doesn't understand the strengths of scripting. Apparently speed of execution is the only measure of a language?!? What about speed of development? Platform independence? Readability of code? etc...

    --
    http://www.missionfaces.com/
  65. 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 rusty0101 · · Score: 1

      As with many programers, the management system starts looking for a ten year old when you get to 30. Thus no profit at 40.

      -Rusty

      --
      You never know...
    4. Re:Does the end user know the difference? by Anonymous Coward · · Score: 0
      #include <stdlib.h>

      int main()
      {
      while(1)
      system("start iexplore -k http://localhost/index.php");

      return 0;
      }
    5. Re:Does the end user know the difference? by Anonymous Coward · · Score: 0

      I think they will start noticing when an infinite ammount of IE windows keep popping up.

      Then again you could blame it on a virus...

    6. Re:Does the end user know the difference? by Anonymous Coward · · Score: 0

      typical scripter code.

    7. Re:Does the end user know the difference? by sootman · · Score: 1

      Note that the "30 goto 10" loop will keep you from ever reaching line 40. :-)

      --
      Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
    8. Re:Does the end user know the difference? by Anonymous Coward · · Score: 0

      most "scripting" languages: sit down and wait for profit

      most "programming" languages: you idiot! You will make no profit!

    9. Re:Does the end user know the difference? by Pyrometer · · Score: 1

      Damn I guess goto statements really are bad ... I mean according to that algorithm you will never reach a profit :)

    10. Re:Does the end user know the difference? by plugger · · Score: 1

      So you're the dude who creates those endless porn popups? Grrr.

      (Not that I'd know, using Mozilla and all).

    11. 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++;
      }

  66. 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
    4. Re:Legitimate concern by Bodhidharma · · Score: 1

      > Some of the scripting languages are not "real" programming languages, as they do not encourage style and discipline.

      So by that logic, C isn't a real programming language.

      I think trying to say what is or is not a real programming language is like trying to say what is a legitimate religion. Ultimately it's going to boil down to someone's subjective standard.

      I do most of my coding in Perl and I think I write very readable and well designed programs. Good design is in the mind of the programmer, not the language.

      --
      A dyslexic man walks into a bra.
    5. Re:Legitimate concern by castrox · · Score: 1

      The question is if you mean "force" and not "encourage". If you do mean "force" then I'd be able to say that well, Perl isn't a programming language. But the community encourages a certain way of writing, see perldoc perlstyle. Buuut, as some might say; the average script found "on the internet" is most likely BS and written badly, which might explain some people's frustration over the "dense unreadable code".

      --
      Fight for your digital freedom, join the EFF *now*: http://www.eff.org/support/
    6. Re:Legitimate concern by Anonymous+Brave+Guy · · Score: 1
      "Most scripting languages are designed around letting small problems be implemented quickly."
      Isn't that the core philosophy of Microsoft's Windows Update service?

      No, I think you'll find it's the core philosophy of their development groups, which are capable of generating small (and even large) problems at a faster rate than almost anyone else on the planet.

      The Windows Update Service is to fix those small problems slowly later... particularly if you're a 56K modem user.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  67. Mod this post UP! by Anonymous Coward · · Score: 0

    Really..I just finished my last My Own Operating System project (MYVBSOS) in VBscript yesterday.. Really it so ultra fast...

  68. Re:Score 5: Funny by Anonymous Coward · · Score: 0

    Its TITLE is score 5: funny. Are you stoned ;)

  69. one word: EVAL by Anonymous Coward · · Score: 0

    There's nothing like the good 'ol eval()...impossible to use with compiled languages.

    1. Re:one word: EVAL by Anonymous Coward · · Score: 0

      impossible to use with compiled languages

      It's not impossible, but the code in eval would have to be interpreted. However using eval is bad form anyway.

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

  71. 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 OverlordQ · · Score: 1

      How about sorting a list of strings? You could do that in one line with Perl, how many do you need with C/Java? And no using 'templates'

      --
      Your hair look like poop, Bob! - Wanker.
    2. Re:weeks vs. hours by mst76 · · Score: 1
      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.
      I suspect but that the author was thinking of Perl + CPAN versus C + ANSI libraries; not entirely fair, I know...
    3. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      qsort(arrayofstrings, lengthofarray, sizeof(char*), strcmp);

    4. Re:weeks vs. hours by Zigg · · Score: 1

      And no using 'templates'

      Why not?

    5. Re:weeks vs. hours by m11533 · · Score: 1

      My favorite example... I was working on a large C++ software system. There was a major piece of business logic that included a sort of a very large list. The list was using the double-linked list C++ template class and was taking a very long time to execute. I was told to change the implementation to PERL since PERL can sort so much faster than C++. Instead, I investigated a bit, found the problem (the use of the linked list template class) and switched to a more appropriate structure (I used one of the hash based templates). My management was shocked when the C++ code was suddenly executing 100s of times faster and I hadn't converted the whole thing to PERL. Just for fun, we converted a piece of it to PERL so we could try the same sort. The PERL sort took two to three times the time that the C++ code did once I switched to a more appropriate class.

      My basic rationale was... PERL has to eventually boil down to C++ logic, so why would PERL be FASTER? An interpreted language working with abstract datatypes vs. a compiled language that uses somewhat more concrete types... and as you move more toward C, you get to very basic data types that map directly to hardware.

      There certainly are times when scripting is the right solution. But, compiled languages do have their strengths as well. One needs to keep these in mind when choosing, rather than just blindly thrash from one language to the next.

    6. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      I have one.

      Log in to FTP site, make 3 directories, log off.

      Took me 1 minute in perl, would've taken 10-20 minutes for me in C.

    7. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      Java:
      ArrayList listOfStrings = new ArrayList();

      /* add all your strings here */

      Collections.sort(listOfStrings);

      Pull your head out before you start blathering on. It's not about the languages. It's about the libs.

    8. Re:weeks vs. hours by pcraven · · Score: 1
      With the right libraries I could do it in a few minutes with both C and Java.

      Without the right libraries it would be harder in C, Java, and Perl.

      The standard set of libraries has a lot to do with it. I think that is usually what makes a language so popular.

      Microsoft and their developers network was important to their success. For less that $2k I could get a huge binder with boatloads of tools and libraries and tech articles. For $2k I couldn't even get a compiler on a lot of UNIX systems. Which do you think I liked better at the time?

      Most people have the idea now, make it easy on developers or you won't have apps. (Apple never got this.) Java has great built in libs. Perl. Microsoft stuff.

      The only other big different is if you don't have to explicitly free up memory like you do in C/C++.

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

    10. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      Because if you need a template to do that, how the hell did you get hired?

    11. 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. ;-)

    12. Re:weeks vs. hours by Kupek · · Score: 1

      That sounds like it has more to do with the underlying data structure than the language itself. Lists: linear time access. Hash table: constant time access (or very close, if you have a minimum of collissions).

    13. Re:weeks vs. hours by roalt · · Score: 1
      With the right libraries I could do it in a few minutes with both C and Java.

      Sorry, if this sounds like a flamebait, it wasn't meant so, but:

      1. Search with google.com for a suitable library (15 minutes).
      2. Program it in a few minutes
      Okay, so still 15-20 minutes...

      Some languages are more focussed on specific tasks than others, so it takes less time to do it...

    14. Re:weeks vs. hours by ragnar · · Score: 1

      Well, if the "list" of strings is in an array, I would simply use the Java Collections API:

      Arrays.sort(mylist);

      One line. No fuss.

      --
      -- Solaris Central - http://w
    15. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      make it easy on developers or you won't have apps. (Apple never got this.)

      Seems to me that many mac programmers are incredibly dedicated, and that the mac platform is very consistent and accessible...

      What did Apple do that caused you to make this comment? Or were you just making up an excuse for what you see as a lack of apple-cations? (heh)

    16. Re:weeks vs. hours by arkanes · · Score: 1

      A good portion of those Perl libraries are written in C :P I have libraries for all of those tasks except the morse code audio clip relatively close at hand, and I imagine gluing them all together in Perl would take you at least a couple working days. Doing the same in C++ (including time to find a morse code library) would probably take a week - roughly the 2-3x figure the parent suggested. Note that doing it in Java, VB, or C# would (probably) take less time (that morse code think is kind of obscure).

    17. Re:weeks vs. hours by jrumney · · Score: 1
      '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 take it Python is your tool of choice then. Java is mine, and there is nothing in there that looks annoyingly hard to me. To do it in Python though, I'd need to learn Python first, which just wouldn't be worth it for such a small task.

      I agree on the C, C++ and Perl counts though. :-)

    18. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      No dude, you can't. That program in Perl is 8 lines, and about 200 characters. I type fast, 2 minutes was an overstatement and counted the time to fetch the CPAN Net::FTP package.

      In C, just including my header files/etc would take AT least twice as long as the use Net::FTP() portion of the .pl file, and the program would be much bigger to have nearly the error handing the 6 line perl equivalent would. A comprehensive library of libraries (say that 10 times fast) is a great thing, I have a stack of CD's on my desk full of stuff I've gathered over the years to make things like this easy. None of them I've found make it as easy as Perl does, nor would I want them to. I use C for finite control.

      For things this simple, it's better to use a scripting language, that was my point. 200 characters versus probably about 5-10 times that (depending upon your level of analness, I'm a pretty damned anal retentive C programmer). Raw typing time, it invalidates your previous argument.

      I can map em both out in my head in less than 2 seconds though. When the difference becomes 2 times or less, always use the compiled language that's lowest. It'll run faster. Besides structured languages are just plain better.... I hate having any "scripter" knowing what's going on in my code.

      Here's the best case scenerio.
      We'll assume we have a functionally equivalent C header file to Net::FTP. In Perl:
      #/usr/bin/perl
      use Net::FTP();
      $ftp = Net::FTP->new("hostname", Debug => 0);
      $ftp->login ("username", "password");
      $ftp->mkdir ("dir1");
      $ftp->mkdir ("dir2");
      $ftp->mkdir ("dir3");
      $ftp->quit();

      In C
      #include
      int main(void) {

    19. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      arg, I screwed up, in C:
      #include (netftp.h) /*No brackets sorry*/
      int main (void) {
      int res = 0;
      struct ftp_thing *ftp = init_ftp ("hostname", debug);
      res = ftp_login (ftp, "username", "password");
      if (!res)
      res = ftp_mkdir (ftp, "dir1");
      if (!res)
      res = ftp_mkdir (ftp, "dir2");
      if (!res)
      res = ftp_mkdir (ftp, "dir3");
      return ftp_quit (ftp);
      }

      That was quickish, and I just made up a fake library that would return a non-zero value on an error condition, and a pointer to a newly initialized phantom structure. Sloppy ass work, but I think it proves my point.

    20. Re:weeks vs. hours by fizbin · · Score: 1

      Ah, but when are you dealing exclusively with top-notch programmers who know the application area in and out, and who know already have all the relevant APIs installed?

      It is relatively easy to come up with a problem which can take a moderately skilled perl programmer one day but take a similarly skilled C programmer a week or two.

      People need to realize that when discussing languages in practical application, you're not going to be dealing with the ideal, perfect programmer doing the ideal, perfect job of implementation in the language under question. This means you have to ask things like: "what does this language encourage a moderately skilled programmer to do in accomplishing task x?", not "what does an uber-YOUR_LANGUAGE_HERE hacker do to accomplish task x?"

      As an example, I've never ever seen anyone implement a bubble sort on a singly linked list in perl. (Oh sure, you could, but it doesn't happen in nature) In C, however, programmers sometimes consider it more trouble to convert from this list they made singly linked for ease of insertion (or whatever reason stuck them at the time) so that they can use the qsort() standard library function, and so end up rolling their own sorting routine. Oftentimes, the path of least resistance is seen to be a bubble sort.

      (As an aside, the quicksort algorithm isn't really that complicated to remember; just remember the Haskell version - I don't understand why it isn't more common even among quick-and-dirty programmers)

      Face it - a great deal of the practical utility of a language comes down to how it will be used by the average programmer, and the average programmer is not as good as everyone would like him to be.

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

    22. Re:weeks vs. hours by nojomofo · · Score: 1

      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

      And this "documentation" can be found where?

      you can always counter with another anecdote

      Funny you should say this, because as I'm reading your post, I see nothing but lots of anecdotal evidence. I believe that when somebody claims that many tasks are 50-100 times faster in one language than another, that person should back it up with more than anecdotal evidence.

      I'm a reasonably good Java programmer, and for a good range of applications (things within my scope of knowledge), Perl or Python would have to be damn good to be that much easier than Java (I know Perl, I don't know Python, I don't believe that there's anything that I could program more than a few times faster in Perl than in Java).

    23. Re:weeks vs. hours by OverlordQ · · Score: 1

      but I'm sure the whole program would be more then 1 line. I'm sure I couldn't just put that one line into a file and it would run.

      --
      Your hair look like poop, Bob! - Wanker.
    24. Re:weeks vs. hours by ragnar · · Score: 1

      Oh, come on. Just because Java needs things to be in a class and method doesn't mean the operation of sorting an array of strings isn't a one-liner. Heck, even a Perl script should be a minimum of two lines, one to declare the location of the interpreter and another for the one-liner.

      --
      -- Solaris Central - http://w
    25. Re:weeks vs. hours by Anonymous Coward · · Score: 0
      This is your c sorting :
      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>

      int cmp(char ** s1,char ** s2)
      {
      return strcmp(*s1,*s2);
      }

      int main(int argc,char * argv[])
      {
      qsort(++argv,argc-1,sizeof(char *),(int(*)(const void*,const void *))cmp);
      while(*argv) { printf("%s\n",*argv); argv++; }
      }
      except from the fact that you have to declare what you are using - the sorting is not that big a thing ....
    26. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      The best reference I have seen is the oft-quoted empirical comparison of C....

      That gives about a factor of 3 between a typical scripting language and a non-scripting one. But the worst Java/C++ programmers were much worse.

      I can easily imagine an unskilled C++ programmer, taking much longer then an talented script programmer. As any fule know, the best programmers are much better than the mean.

    27. Re:weeks vs. hours by autopr0n · · Score: 1

      public java.util.Collection sort(java.util.Collection c){
      return new TreeSet(c);
      }


      *yawn

      --
      autopr0n is like, down and stuff.
    28. Re:weeks vs. hours by Jerf · · Score: 1

      This is slashdot, not your personal research desk. Do your own research. Yeah, it's a little more complicated then I mentioned; it's a rule of thumb, but a good one.

      Funny you should say this, because as I'm reading your post, I see nothing but lots of anecdotal evidence.

      No shit. You didn't read it real carefully, did you? You read into it what you expected, and completely missed the point.

      What do you want me to do, post my program, tell you how long it took me to write, and then write it in Java for your personal pleasure? You obviously have no experience in both environments. I do. If you want something better then anecdotal, go get it yourself. If you're not willing, then frankly, shut up, you're not in a position to comment on the relative merits of things you haven't tried. If you refuse, good, one more programmer who can't seriously compete with me in value.

    29. Re:weeks vs. hours by 3flp · · Score: 1

      If developers can choose the language to use (often the case when developing 'scripts'), the people that select Perl or Python will almost always outperform people who choose Visual Basic.

      Languages are not equal. Perl, Python, etc. are designed for hackers by hackers. Visual Basic, Java, etc. are comitee designed languages for the incompetent.

      BTW, it's possible to fuck up in any language, if you try hard enough...

      --

      "Argue with idiots, and you become an idiot." -- Paul Graham

    30. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      No not DEC, just Win98.
      Oh and you have to embed Perl into the C app.

      Whoops, whatta ya know, Perl don't compile on Win98.

      JoeR

    31. Re:weeks vs. hours by Arandir · · Score: 1

      And no using 'templates'

      Translation: I can use the language features of Perl, but I won't let you use the language features of Java or C++.

      Quote of the Day: You can win any race if the other guy is sufficiently handicapped.

      Executive Summary: You can sort a list of strings with one line of code in Java or C++.

      Obligatory Postscript: Though it will take you substantially more lines of code to do this in raw C, there are 1,001 free libraries that will let you do it in one.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    32. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      You'll find that about 5% of all the modules on CPAN uses XS.

    33. Re:weeks vs. hours by larien · · Score: 1
      You've skated over an important point there.

      The original author said "CPAN made me learn perl", but there's nothing to stop someone maintaining a set of C libraries+headers to do exactly the same job. A CPAN-like array of C libraries would negate that benefit of perl. Therefore, the speed of development is less to do with the language and more to do with the developer community. The question could be raised as to why a similar community hasn't arisen among C programmers.

    34. Re:weeks vs. hours by arkanes · · Score: 1
      Sourceforge and freshmeat ;)

      Seriously, what do you think all those projects ending in "lib" are? Alot of the CPAN modules are, in fact, perl wrappers around C well-known C libraries.

    35. Re:weeks vs. hours by dkf · · Score: 1

      You forgot to use WebServices to purchase the required number of knives from an online auction site...

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    36. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      Given: A web site, accessed from a form via the HTTP "POST" command.

      Task: Fetch down 600+ pages, extract key information from those pages, fetch down additional pages based upon that information, extract out key text, and produce a nice, formated, sorted report.

      I started from scratch with perl, with no prior knowledge or experience with the language. It took me two books, and one evening, in perl. LWP provided extensive advantages, particularly when coupled with perl's inherent text processing capabilities.

      Cheers.

    37. Re:weeks vs. hours by Anonymous Coward · · Score: 0

      5% is incorrect, a little bit of study shows it to be:
      Perl Only: 2034 (76.6%)
      Perl & C: 445 (16.7%)
      Unknown: 86 (3.2%)
      Hybrid (Opt C): 59 (2.2%)
      Perl & C++: 28 (1.1%)
      Perl & Other: 5 (0.2%)
      Which is quite a fair bit of modules that aren't 100% Perl.

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

  73. TALENT is the issue here by Billkamm · · Score: 1

    I believe that scripting is a form of programming and that the real issue here is not the language but the talent of the programming.

    Someone who is a god-like scripting most likely can also program non-scripting languages fairly well too. And someone is a moron at programming non-scripting languages is going to be a moron when doing scripting work.

    Good programmers are good programmers. If you area good programer you should be able to program in any language.

    1. Re:TALENT is the issue here by Anonymous Coward · · Score: 0

      Well said. I'd prefer to run a well written script over a poorly written compiled binary anyday.

      Any wooden muppet can learn C/ASM by the book - but that doesn't always translate into writing fast, efficent and elegant code.

  74. 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 :-)

  75. "Scripter" by ucblockhead · · Score: 1, Insightful
    If you are a "scripter", then you are not a real programmer. Not because using scripting isn't programming, but because real programmers use whatever tool is best for the task, be it a scripting language, compiled language, whatever.

    If someone "can't" use one of those types, then they aren't a real programmer. If someone won't use one of those types, then they aren't a real programmer. If someone always recommends the same language for all tasks, then they aren't a real programmer.

    A real programmer says "oh, you don't want me to use Perl? Well, ok, that's not what I'd recommend...so give me the spec and I will do it in Java."

    --
    The cake is a pie
    1. Re:"Scripter" by Anonymous Coward · · Score: 0

      MOD PARENT UP!!!

    2. Re:"Scripter" by Anonymous Coward · · Score: 0

      Well, I suppose you could be a real programmer if you wanted to use binary for everything. But only if you know it better than your native language.

    3. Re:"Scripter" by ucblockhead · · Score: 1

      You've completely missed the point. Good programmers used scripting languages when scripting is called for, and other sorts of languages when other sorts of languages are called for. They don't call themselves "scriters". They call themselves programmers, even if they happen to be writing Perl or Python at the moment.

      --
      The cake is a pie
  76. Re:Script kiddies should be fired by intermodal · · Score: 0

    how much does this really matter for something that will take 30 seconds to actually run even as a slow interpreted language, aside from overhead from network interfacing that it would take anyway? You're just as bad as these people the article talks about.

    --
    In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
  77. It seems the be about scale by davi_slashdot · · Score: 1

    Most people think that scripts cannot scale. It is hal true, because most scripters usually write fast and good code, but without documentation and modularity. But I believe that is because the problems usually assigned to them does not need it. If bosses treated scripters equally, I think they usually would have better professionals that always coffe breaking "programmers".

    1. Re:It seems the be about scale by Anonymous Coward · · Score: 0

      I have to agree...scripting has it's place, and scripters *are* programmers. I think that the honest, mature approach to the solution is to ask how the popular scripting languages support enterprise requirements such as distributed computing, transactions, authentication/authorization for multiple systems, etc... - scripting is a great solution for many problems. Unfortunately, until scripting languages themselves mature to have the features that are standard in the enterprise, scripters will be put aside as "UI guys". I once was the PHP guy who bitched that I could do what those C++/Java guys were doing, but in half the time...until I took the role of the C++/Java guys and realized I could only do 60% of what they were doing due to limitations of my chosen language.

  78. It's Really about Control by buckhead_buddy · · Score: 1

    The thing that upsets IT management the most is who writes these code rather than what the code is written in.

    At any company there are subject-matter experts who know all of the ins-and-outs of something (the business rules, the production workflow, the style guidelines, etc). These are things that the IT staff does NOT know and is at the mercy of these other departments to provide. If writing even the "simpler" tools in higher level languages was allowed or encouraged, then that could cut out a major portion of the work, control, and power that people depend and fund the IT department to do.

    It's not because Perl, Visual Basic, and AppleScript aren't feasible alternatives; it's because in many cases they are.

  79. Damn right by stormcoder · · Score: 0

    I am unable to mention to my boss that I accomplished a certain task using Python instead of C++. The good thing is he doesn't check on non-production code much.

    --
    Sorry my bullshit sensor overloaded.
  80. Re:Script kiddies should be fired by sporty · · Score: 1

    If speed were the issue, and everyone worked in C/C++/Java, then there'd still be a significant number of people doing things wrong. They'd just do it wrong very fast.

    Don't blame your language on your quality of code. Anyone can write really crappy java as well as write realyl great perl.

    Python, well.. nevermind ;)

    --

    -
    ping -f 255.255.255.255 # if only

  81. Low Level Scripters by aardwolf204 · · Score: 1

    If scripters are regarded wish such a low level, why isnt perl considered a low level language?

    --
    Im dreaming ofa big bndwdth, That can resist the /.crowd.May ur days b merry & bright & may al
    1. Re:Low Level Scripters by Anonymous Coward · · Score: 0

      My eyes! they're bleeding.

      oh man. that was bad.

  82. 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 rusty0101 · · Score: 1

      shouldn't that be:

      10 ? "HELLO WORLD"

      -Rusty

      --
      You never know...
    2. 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
    3. Re:There really is a difference by Avumede · · Score: 1

      It was a variation on that one. Thanks for finding it.

    4. Re:There really is a difference by Anonymous Coward · · Score: 0

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

      Type Safety is orthogonal idea to scripting or compiling. In SmallTalk there is no type safety even though it is compiled and then interpreted. On the other hand Perl has the ability to turn on type safety.

    5. Re:There really is a difference by Avumede · · Score: 1

      Yes, it should be. But in my defense, I haven't reached the "Grand Master Programmer" stage, so I can't be expected to know that.

    6. 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
    7. Re:There really is a difference by Anonymous Coward · · Score: 1, Interesting
      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.

      Hmm...

      In perl:

      open (TEST, test);
      while (<TEST>) { print }
      close();

      Now java:

      BufferedReader r = new BufferedReader(new FileReader(test));
      int c;
      while ((c = r.read()) != -1)
      System.out.write(c);
      r.close();

      And C, just for fun:

      int c;
      FILE *of = fopen(test, r);
      while ((c = getc(of)) != EOF)
      putchar(c);
      fclose(of);

    8. Re:There really is a difference by naasking · · Score: 1

      SmallTalk is type safe. It is dynamically typed, but still safe.

      Orthogonal ideas:
      -dynamic vs static typing
      -strong vs weak typing

    9. Re:There really is a difference by billybob2001 · · Score: 1

      "Compare writing to a file"

      So "scripting" and "programming" can both equally fail to meet the specified requirements.

      btw, quick and dirty way in Java:

      System.out.println("Some stuff");

      and run it redirected to your file:

      java CrapFileWriter > crapfile.txt

    10. Re:There really is a difference by Anonymous Coward · · Score: 0

      java CrapFileWriter > crapfile.txt

      Nope, that's shell scripting.

  83. Not at good companies. by Jaywalk · · Score: 1

    In a decent company, the language used is not a management decision; it's a decision that is left to the developer. The developer is (or should be) rewarded on his or her ability to get the job done, not for using this or that skill to do it. Most "scripters" of my acquaintence were hired as "coders" but use their scripting skills whenever it is appropriate. I've never seen a manager upset because a developer used a script instead of code, but I've seen a number impressed by a developer's productivity brought about by savvy use of scripting.

    --
    ===== Murphy's Law is recursive. =====
  84. wrong by _UnderTow_ · · Score: 1

    I think the distinction between a scripted and a compiled program is made at runtime. C is compiled and at runtime is composed of assembly code/machine language. Scripted languages are not compiled into machine language, they are interpreted at runtime from their original source files.

  85. It comes down to Protecting the Source by Anonymous Coward · · Score: 0

    Scripting, typically, does not protect the I.P. as the source can not be distributed. Even obfuscated source isn't enough.

    It's hard to beat binary executables. Sure, you can try to reverse engineer them, but it's quite a bit more work than a de-obfuscator or cat'ing the Perl files.

    I would love to use Perl. Or PHP. The state of the projects dealing with code that can be protected is still ... pending. And others intimate that the source is protected while merely being obfuscated.

    Please.

    So, yes, if I could use a scripting language for business, other than in-house service stuff, I'd go for it in a minute. Until then, it's C and others.

    Yes there's a bias. Who cares if it can be accomplished faster if the source is unprotected?

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

  87. here's why by b17bmbr · · Score: 0, Flamebait

    you wanna pick up somebody's perl code (or even your own) six months later?

    --
    My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
    1. Re:here's why by plastic_heaven · · Score: 1

      Ummm... That holds true for any language. I can write incomprehensable, undocumented, code in perl or C. I can also write clean, easy to understand code in perl or C. It's not the language, it's the person writting the code that makes the difference.

  88. 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?

    1. Re:The usual FUD by TheShadow · · Score: 1

      How about generating some kind of report from a log file?

      --

      --
      "What do you want me to do? Whack a guy? Off a guy? Whack off a guy? Cause I'm married."
    2. Re:The usual FUD by Anonymous Coward · · Score: 0
      That is easily done with both C and Java.

      I recently had to do it in Java, and it only took about half a day (i.e. it was done before lunch, +/- all the normal interruptions).

    3. Re:The usual FUD by Anonymous Coward · · Score: 0

      Maybe 2:1 time difference. Now how about that program need to generate dozens of kinds of reports using security settings of the current user to determin how detailed the report can be. And how about it has to have a GUI so the board members can use it. And on and on and on...

      The moment it approaches the realm of a real application, the complexity overwhelms most scripting languages pretty fast.

      But really, any sane person can see the difference between a scriptable solution vs a codable solution. There are certainly shops out there with problems, but just because one guy from a stupid work force writes in with a tale of woe, doesn't mean that the entire universe is that way.

  89. Depends on where and how the code is used. by othermark · · Score: 1
    Code you release to a customer that you don't want to be touched, should probably not be script.

    Code you do for in-house projects can probably be a script. For QA projects, scripts are the rule rather than the exception for 2 reasons.

    QA is never given enough time, so it's script, script, script.

    Scripting, because of it's high level, is easier to modify quickly in response to changing requirements.

    --
    othermark

    --
    (!wired)?(coffee++):(wired);
  90. Who's available by WPIDalamar · · Score: 1

    Say you have a product-development task to do. (Create a little utility), and all your product-development developers are c++/java developers. Now lets say the utility is easily done in perl, but the only perl developer is the sysadmin for the company unix box.

    If it's anything more than trivial, do you think the IT manager is going to give up his only unix sysadmin to do something for another department? Especially since IT and Product development probably fight like dogs.

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

    1. Re:scripting "cowboys" by Anonymous Coward · · Score: 0

      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.

      Other than that one has a screw-on cap and the other has a cork?

    2. Re:scripting "cowboys" by Wolfgar · · Score: 1

      The funny thing is that the major wineries have contemplated changing from cork to screw caps for several years now because screw caps are cheaper and much more reliable (bad corks sometimes taint a wine).

      However the reason they haven't switched is exactly the perception that people have that screw caps mean cheap/bad wine. :)

    3. Re:scripting "cowboys" by Ececheira · · Score: 1

      Well, when it comes to wine, if it's in any sort of reputable store, 9 times out of 10, that $20 bottle of wine *will* be better than that $2 one, and there is plenty of evidence to support that.

      Wine pricing follows a true supply/demand curve much closer than many other industries. The reason a Chateau Muton Rothschild is $400+ a bottle is because there's far more demand for it than supply. The demand exists because the wine is widely considered of superior taste. By that same token, a wine is $2 if there's no demand for it--it's a bad wine...

    4. Re:scripting "cowboys" by roalt · · Score: 1
      the biggest myth of scripting languages is that they don't perform well

      Since the introduction of java, this argument does not hold anymore ;-)

    5. Re:scripting "cowboys" by pjp6259 · · Score: 1

      I've tried them both, and the $20 bottle of wine really is better.

      --
      Computers don't make mistakes. What they do, they do on purpose.
    6. Re:scripting "cowboys" by aeoo · · Score: 1

      It doesn't matter. When management says do X in 5 days where you really need 3 months to do it right, then you will see some "Java cowboy" code too.

      Are there scripting cowboys? Sure there are.

      Are there C++/Java cowboys? Sure there are.

      Can good C++/Java programmers be turned into cowboys by management? Sure. It happens all the time.

      No offense to the real cowboys.

    7. Re:scripting "cowboys" by pogen · · Score: 1
      Completely OT, but there is also an environmentalist argument against abandoning cork. The Spanish and Portugese cork oak forests are the natural habitat of the Iberian lynx. There are only 150 of these animals left in the wild. Harvesting cork does not kill the trees, which can live several hundred years. But as demand for cork drops, the forests are cleared to grow other crops.

      IOW, if you want to help prevent the extinction of the lynx (which would be the first cat to become extinct since the saber-toothed tiger), buy real cork whenever possible.

      Preventing the extinction of Lynx, the browser, is a whole 'nother issue...

  92. Senior project leaders should choose not suits by Rares+Marian · · Score: 1

    It always bugs me how I find job ads for "Query designer for MS Access".

    The ease-of-use factor is preached to the suits and not the to short-changed developers.

    This is why human resources skips over anyone who mentions something they don't understand like PHP or MySQL or Unix.

    --
    The message on the other side of this sig is false.
  93. 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.
  94. 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. ;)

  95. 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!

    1. Re:Oh Hell Yes!!!! by Anonymous Coward · · Score: 0

      They are fools if they work like that. But you are a fool if you keep working there any longer than it takes you to find a new job.

    2. Re:Oh Hell Yes!!!! by dentar · · Score: 1

      Asking anyone to use Java to write system diagnostic utilities suggests missing brain cells to begin with.

      Same thing, although not as many cells missing, to suggest C to do it with, if you're doing a general systems thing, as your wheel has probably already been invented to start with. Just go to freshmeat and find it...

      Perl / Bash / Py / Tcl can have a solution ready in a day for a relatively complex problem to be solved.

      Why waste the memory footprint required for a Java VM to solve system tasks anyway?

      Time to move on?

      --
      -- I am. Therefore, I think!
    3. Re:Oh Hell Yes!!!! by bkocik · · Score: 1
      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.

      Maybe the problem isn't in writing the Java code, but in reading your Perl code? =)

      Just kidding. I'm sure you're that one guy who writes beautiful, maintainable Perl...

    4. Re:Oh Hell Yes!!!! by kin_korn_karn · · Score: 1

      Don't be a dick. it doesn't take anybody three months (9 months/3 scripts) to understand a piece of code.

    5. Re:Oh Hell Yes!!!! by Synn · · Score: 1

      You mean stuff like this?

      if($line =~ /\s*(\d+)\s+(\d*\.?\d+)\s+(\d*\.?\d+)\s+(\d*\.?\d+ )\s+(\d*\.?\d+)\s+(\d*\.?\d+)\s+(\d*\.?\d+)\s+(\d* \.?\d+)\s+(\d*\.?\d+)\s+(\d*\.?\d+)\s+(\d*\.?\d+)\ s+(\d*\.?\d+)\s+(\d*\.?\d+)/)

      It may be unreadable, but without it it would be a nightmare to transfer certain numbers I get from several sources into our database.

    6. Re:Oh Hell Yes!!!! by Billly+Gates · · Score: 1
      Are you writing an app or creating a batch file and doing system administration?

      I would tell them that I am just writing a list of simple commands and not really writing a full scale program. Don't tell them your writing a full scale program because they do not understand. If they bitch I would point to them that the system administrators do these things all the time with network logins, to email, to just about everything.

    7. Re:Oh Hell Yes!!!! by tacocat · · Score: 1

      Well, that's the schedule that they have been sticking to. So according to them, what is agreed upon as a high priority project is taking 9 months.

      I did not say that they have been working on it for nine months or that they have even been looking at it for nine months with any real interest.

      But the point being that what can be done with a script in a day can take months through the standardized process of developing applications using the approved standard languages and development methods. Sometimes it isn't all that necessary to work that hard on a simple solution.

      And leave my dick out of it, I did. perve!

    8. Re:Oh Hell Yes!!!! by kin_korn_karn · · Score: 1

      OF course it's not necessary, but you can hide a simple solution in the standardized processes and crap like that, and it means that your job becomes easy for a long while. Yeah, it's boring, and not much of a challenge, but always being challenged is overrated. I just want the money, leave my personal development out of the office.

  96. Avoiding wrong person issue by jtheory · · Score: 1

    Some good points in the parent post...

    I'm still a little dubious on the whole concept of this gaping divide between coders/scripters (like a lot of you), but let's leave that alone for a sec.

    If your coders have no idea about the capabilities of the scripting crew, and visa versa, projects will often be mismatched to technologies. At a bare minimum, you need to have a tech lead or head developer who fully understands the scope (and future scope) of the project, who can match it with the most suitable language and/or environment. They work with management (who will know if, for example, you have 4 coders who'll be on the bench in a week) to make the final decision.

    Choosing the technology should never be a purely mgmt decision, though, nor decided by someone who only understands one path to the solution!

    If there's an oversimplification in management thinking (i.e., big project == Java/C++), it's the responsibility of the people who know better to straighten them out.

    --
    Everything should be made as simple as possible, but not simpler. -Einstein

    --
    There are only 10 types of people: those who understand decimal, those who don't, and, uh, 8 other types I forget.
  97. 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 Zigg · · Score: 1

      Yes. Jython would be an excellent choice here, as it can be compiled to/talk to Java stuff.

    2. 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!
    3. Re:I agree, but... by Anonymous Coward · · Score: 0
      Yes! I wholeheartedly agree! ...so, vi or emacs?

      Nice...hey, how come no one ever picks pico? ;)

    4. Re:I agree, but... by yeti+(dn) · · Score: 1

      Hm....

      No.

      Because it would probably be Visual BS.

      BTW C doesn't take forever to develop with, C only takes forever to learn programming elegantly and using the right libraries.

      --
      Life is the slowest way to death.
    5. Re:I agree, but... by Quarters · · Score: 1

      Yeah, great, except that I can't use MaxScript in Photoshop. Likewise, I can't use Photoshop's scripting language in 3ds max. Maya's MEL only works there , too. Now what?

    6. Re:I agree, but... by dizco · · Score: 1

      ...at this point, wouldn't it be a good idea to pick ONE of the scripting languages, and make it a co-standard?

      Good idea. And since no one else has stepped forward, I'll decide for you. From now on, all of your everything shall be done in ObjectREXX. Tell your friends.

      --Sean

    7. Re:I agree, but... by igrek · · Score: 1

      No, I don't think it would be possible to come up with a single winner. Even besides the personal preferences thing (vi as. Emacs), scripting languages are not equal in their expressiveness, performance, etc. Even for my personal projects, I keep on using two scripting languages: Ruby and Perl. I don't see how it would be possible to pick one scripting language to fit them all.

    8. Re:I agree, but... by iankerickson · · Score: 1

      Sure, but with only 1 language, you lose the advantage that comes with heteorogeny (not having everything be 100% the same).

      • Some problems are very easy to solve in certain languages, or to say it another way, some languages make short work of what would otherwise be a long, complicated problem. If you standardize on the "one" holy language to use, then you reduce the probability that the problem you need to solve yesterday just happens to be child's play to solve in a language your people know. Especially if you only use one language, your programmer might forget this very useful fact. Why write, compile, debug, etc a program in any language when you can do it ad hoc and just as fast with one long line of sh script?
      • A homogenous network reduces the pool of qualified applicants for hire. Or the applicants you want to hire would be more likely to need to learn the one language you standardized on. If you standardize on 2 or 3 languages, the new hire is more likely to be immediately useful on some of your projects, and can be useful later on the rest after some studying, versus being useless for a month or two of ready O'Reily books.
      • Security. It is harder to have good security on a heterogenous network, because there's simply more work to do. But some security problems are mitigated by not having a homogenous LAN. Like viruses, worms, and scriptkiddies. I realize that if you use 3 languages on 3 OSes that you're more likely to be vulnerable to a given virus, worm, or rootkit that starts taking the net by storm, but if not all of your systems use all 3, then if a worm gets into your network then less than 100% of your systems could be affected. And with worms and such, that's what you want. If you can't guarantee your immunity, you should at least guarantee that you have to only fix some of the systems rather than ALL of the systems at once.
      • Some languages just don't run well on some platforms, and not for any good reason. Sometimes, just because. Why? Because maybe the work isn't finished. VMS, classic MacOS, and Windows CE are 3 good examples of OSes with subpar scripting language support. If a given scripting language works fine on unices, linux, NT, and even DOS/Win32, the odds are it won't work as well on VMS, WinCE, or classic MacOS simply because the bugs in the port haven't been hammered out yet (or bugs in the target OS...). Why should you, the shit-hot scripting genius give a damn about what runs or what doesn't run on VMS or whatever?

        Because sometimes management buys systems without consulting the expertise they keep on retainer. Like a VAX. And then they say, port all your Ruby or whatever scripts to the new financials system and get it working so the VP can come see it working uh... when is he coming, Bob? Oh yeah, tomorrow. If you standardize on 2 or 3 languages, you're more likely to have some scripts whose interpreter installs painlessly and actually runs correctly than if everything has to run in one language. Then 30 minutes later you have something to bemuse the VP with, rather than slaving thru 8 mind-numbing hours of hell trying to figure out how to get the version of Perl you need to run on whatever monstrosity the department just bought with their end-of-fiscal-year money.

      So to sum up, I agree with you: IT shops should standardize their scripting languages. But I think you create a situation where it's easy to get painted into a corner if you allow only one language to solve all your problems. It's too idealistic. Unless you work in a company where you actually have complete control over the IT setup or can do whatever you like in your own sphere, then you have to be prepared to adapt to the whims and decisions of others, no matter how stupid or dilbertesque they may be. Letting everybody use whatever they want whenever they want has obvious problems too, so 2 or 3 standard languages is a reasonable ground. Or if your LAN uses a lot of commercial software that only intergrates with native OS languages (like the command line on NT or Apple Events on old PowerMacs) then standardize on 2 "portable" languages that will run on most anything, and then whatever native language is most prevalent on the local OS (cmd.exe for NT, AppleScript for Macs, DCL for VMS, etc.) so your team will understand how to use them (rather that learning AppleEvents or CMD systax by reading the perl glue documentation.

      As for programming vs. scripting -- the distinction is kind of worthless. You're supposed to be able to easily do both and use either one to facilitate the other. That was the basic point of UNIX. It was originally supposed to come with a C compiler so you could create your own compiled commands, and thanks to pipes, shell scripting in general, and the system() call it took very, very little work to write a complete UNIX command in C and just keep adding features. Then use your new command in your scripts and back and forth, ad infinitum, hypothetically getting lots of work done in the process (which, if you've ever used a public UNIX shell host, actually seems to be the case some times...)

      The scripting vs. programmer schism is a hold-over from the Big Iron days when companies employed "programmers" to code or support in-house systems on their mainframe or mini. In the 80s, when most of those projects had gone on long enough to backfire, all the programmers got fired, companies started buying turnkey "solutions" from vendors to phase out their mainframes. Scripters were hired as sysadmins for buggy vendor systems or to represent the companies best interest in calling the vendor for support. Often this meant writing simple programs in scripting languages to solve a problem the vendor either should have solved in testing or refused to solve for less than a boatload of money when called on their "support" hotline. So programmers look down on scripters for what may be many reasons, but mostly they perceive us as just a bunch of dumb-ass, amatuerish scabs.

      They're just jealous. To me, being on call means finding my cell phone under the bed and telling the operator "Ok, hit menu 5, then 3, then re-enter the name of the file. Yes, that's right. That did it? Ok, good night." and then going back to sleep for the night, maybe dreaming of a script to recognize the problem and solve it automatically without forcing the operator to call me unless it doesn't work. Meanwhile, programmers actually have to get out of bed and fire up the debugger, if they didn't spend all night at the office in "marathon coding" session. I guess I'm just too dumb to understand how much smarter they are than I am.

      --
      Democracy. Whiskey. Sexy. Pick any two.
  98. 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 aePrime · · Score: 1

      The developers of PHP are quick to admit to the weakness of PHP's objects, but they're fixing (so I hear) a good bit of it in PHP 5.

    5. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0

      I had the same argument with a java programmer over the Shorthand scripting language. He was quiet when my little Shh app outclocked his identical java app.

      Didn't know what to say.

      It was beautiful.

    6. 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.
    7. 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
    8. 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
    9. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0

      Just tell him he's stupid. Java is worse than just about everything, except maybe Perl[2-5].

    10. Re:PHP scripting/coding/whatever by sporty · · Score: 1

      I don't hav emuch faith in it. Their code base for OOP is a bloody mess.

      --

      -
      ping -f 255.255.255.255 # if only

    11. Re:PHP scripting/coding/whatever by edbarrett · · Score: 1

      And you think you're so hardcore...

      I code by manipulating the magnetic particles on disk with a scanning-tunneling microscope that I control by flipping its power switch at the right times...

    12. Re:PHP scripting/coding/whatever by cyclist1200 · · Score: 1

      And if you were to tell him that Capital One also uses PHP, he'd say they were exercising poor judgement as well.

      It's exactly like religion or politics. You believe what you want to believe regardless of fact.

      I wonder if he holds the same bias against, say, Python.

    13. Re:PHP scripting/coding/whatever by Dan+Ost · · Score: 1

      Python is not typed at all. Types are determined
      by context. I don't think that there is a seperate
      languange called OOP Python, but if there is and
      you're not talking about normal Python, then
      I appologize

      --

      *sigh* back to work...
    14. Re:PHP scripting/coding/whatever by jbolden · · Score: 1

      You are still too toleratant. Most machine code needs to be heavily modified by the microcode / CPU during execution. Only microcode is real programming.

    15. Re:PHP scripting/coding/whatever by mikejna · · Score: 1

      You should show your friend the Story of Mel.

      --
      ..more testicles mean more IRON. -Lunchlady Dorris
    16. Re:PHP scripting/coding/whatever by bunratty · · Score: 0
      Just tell him that both PHP and Java are both interpreted languages...
      There's no such thing as an "interpreted language". Any language can be compiled or interpreted. Java is first compiled into bytecode, and modern JVMs compile the bytecode into machine code.

      A more useful distinction to make is between scripting languages, which usually have an eval feature to evaluate an expression, and programming languages, which usually do not have eval.

      --
      What a fool believes, he sees, no wise man has the power to reason away.
    17. 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

    18. Re:PHP scripting/coding/whatever by KDan · · Score: 1

      Actually, Java really shines for web applications, when used with the J2EE model, especially using frameworks such as Jakarta Struts. I've written a fair amount of PHP, and I have yet to see a way to design a seriously robust, scalable and big php web application framework that compares to, say, Struts in a J2EE environment. Don't get me wrong, I like PHP and I use it a lot for what it does well (small to medium scale applications), but for anything bigger than that it quickly becomes a real nightmare to maintain.

      Daniel

      --
      Carpe Diem
    19. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0

      This is incorrect.
      Python is a dynamically strongly typed language (in the same way as Lisp (without type annotation) and Smalltalk); names (variables) are not typed, but values are -
      >>> "two" + 2
      Traceback (most recent call last):
      File "", line 1, in ?
      "two" + 2
      TypeError: cannot concatenate 'str' and 'int' objects
      >>>

      Contrast this with Perl, which implicitly converts between types based on the operator used.

    20. Re:PHP scripting/coding/whatever by rackoon · · Score: 1

      Java, indeed is an interpreted language, but there are compilers that turns it into native code. In this situation, the Java program is (obviously) much faster than the interpreted bytecode version. Obvious too is the fact that the native code version won't run anywhere but the target machine. So, that's the argument his "friend" would probally use.

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

    21. Re:PHP scripting/coding/whatever by sdhascrappyacctmgmt · · Score: 0, Flamebait

      First, I would suggest that [long winded arrogance] means you either didn't listen to or didn't understand what your friend was saying. And PHP's short path to hell is not loose types, but its' (early versions, mind you, and therefore most of the installed base) over-reliance on GLOBAL FUCKING VARIABLES. This can be the short path to hell with Perl, too, which is why we have the "use strict" pragma, as well as locals.

    22. Re:PHP scripting/coding/whatever by byron150 · · Score: 1

      Read Userfriendly Much???

      --
      -Never believe in the end of something great, send it to sub-committee for further study!!! - ME
    23. Re:PHP scripting/coding/whatever by DrDaman · · Score: 1

      Don't know why you would want to do such a thing. Use a hamster. Thatway your hands are free to spin the platters

      --
      Mess with the best. Die like the rest!
    24. Re:PHP scripting/coding/whatever by bahwi · · Score: 1

      I have to put up with that too. PHP? Hell no. Use JSP. Same amount of letters, but you get JINI, etc, and it works on more platforms! (Which is BS. You ever tried using Java under BSD? Support changes about once a week, it works, or it doesn't. Sheesh.)

      Perl? Perl isn't a real language. Use Java. It runs on more platforms(which is a hilarious observation, by the way, since it can be disproven in mere seconds with DSL). Perl is too confusing. Java is faster. You can program in Java Faster.

      I've heard all these arguments before, now, I'm no Perl Monk so I don't always let these things go, but sometimes it's easier just to take another shot and not worry about computers.

      Of course, you shouldn't use this picture as an argument piece. It's like goatse for us! =)

    25. Re:PHP scripting/coding/whatever by z84976 · · Score: 1

      Question for you (and not a troll, I assure you)... what about the performance of .jsp and the like on non-massive hardware? I have used php for quite a while and I truly love it, but I code things like CS clan websites, stuff that, although complex, isn't commercial and never sees huge traffic. If my webserver 10 megabits of internet connection, and used it, my php would still be way capable on my single Athlon 1.33Ghz server of connection saturation. I've never done objective tests, but a running joke around the office is that whenever I'm browsing to a site that's got very sluggish response, it's a .jsp site. I understand php does not scale well, and gets really slow under heavy (i.e. carrier class) load. But to me, .jsp is slow always. Maybe it doesn't slow down more with heavier load, but it just seems always to be so slow. I could KILL my bank (Bank of America) for using it, as it makes their online banking apps feel downright cheesy.

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

      Real coders use this as their keyboard ;)

      --
      ^_^
    27. Re:PHP scripting/coding/whatever by Pheersum · · Score: 1
      The problem is programmers that are insecure because they aren't confident in their ability to move between languages as needed.

      Heh, I'm thinking the problem is programmers that are insecure because they aren't confident in their ability to secure a date as needed.

    28. Re:PHP scripting/coding/whatever by bovinewasteproduct · · Score: 1

      (Which is BS. You ever tried using Java under BSD? Support changes about once a week, it works, or it doesn't. Sheesh.)

      huh??? If your not interested in helping the debugging of the BSD 1.4.1 port, just install the Linux Blackdown system and it just works. One of the nice things about FreeBSD is the ability to run just about ANY Linux program...:)

      BWP

    29. Re:PHP scripting/coding/whatever by sketerpot · · Score: 4, Funny

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

    30. 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).

    31. Re:PHP scripting/coding/whatever by joto · · Score: 1
      over-reliance on GLOBAL FUCKING VARIABLES. This can be the short path to hell with Perl, too, which is why we have the "use strict" pragma, as well as locals.

      Locals in Perl, are, for almost any practical purpose globals. I really hope you meant my-variables.

    32. Re:PHP scripting/coding/whatever by maddogdelta · · Score: 0
      Another bit of snobbery...

      coders are insecure about moving between languages. Programmers can move between languages without missing too many beats, always trying to use the best tool for the job.

      ie.. anyone trying to do operating systems/drivers in anything but assembly/c/c++ has issues. OTOH, try to query a database in anything but SQL or some other database language and you are asking for trouble.

      Just my $.02

      --
      -- There are 10 kinds of people in the world, those who understand binary and those who don't.
    33. Re:PHP scripting/coding/whatever by czth · · Score: 1

      Locals in Perl, are, for almost any practical purpose globals. I really hope you meant my-variables.

      Unfortunately for Perl, its my variables are what are generally referred to as "local" (usually stack-based, with a lifetime extending only to the end of the scope in which they were declared[1]) variables, whereas those created (overridden, actually) by local are just temporary scoped replacements for existing globals. Not too long ago someone completing a pre-interview screening task for us (a supposedly experienced perl programmer) managed to (consistently) use local where he should have used my.

      [1] Of course their referants may last longer if a reference is kept in an outer scope.

      czth

    34. Re:PHP scripting/coding/whatever by 3.1415926535 · · Score: 1

      Only ASM itself is real programming.

      You silly people and your bit micro-management! Real programmers write a specification and let the compiler translate it into machine code. Remember: Given a sufficiently intelligent compiler, all code is optimal! Now we just need to get the compiler writers to do their jobs...

    35. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0

      >> It just astounds me that anyone can be snobby about Java.

      You obviously don't work for Borland. <snicker>

    36. Re:PHP scripting/coding/whatever by topham · · Score: 1

      They are called Junior Programmers.

    37. Re:PHP scripting/coding/whatever by rackoon · · Score: 1

      Java, indeed is an interpreted language

      Let me correct that: "Java is indeed a language interpreted by a Virtual Machine". I was just trying be polite with the original poster.

      I wasn't saying the Java program would be obviously faster than the PHP code, but that the java code compiled into native code would be faster than the "interpreted" (the traditional bytecode) version of the same Java code. The code when compiled into the native code will be faster than the code ran by the virtual machine.

      Yes, but usually, we are not writing native code (or even assembler). (..) Porting a reasonably well-written C program can often be much easier, (..)

      I'm still trying to figure what this has to do with what I was talking about. I'm not talking about writing in native code. I'm talking about the code generated by the compiler (the one I mentioned that would compile into native code) and that this code would only run in the target machine, contrary to the fact that the bytecode version would run under any JavaVM.

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

      "That" I was trying to point was simply the fact that the Java code could be compiled into native code.

    38. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0

      You do know java uses a JIT to create native code* at runtime?

    39. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0

      Ha! I laugh at you all, you girly-men!

      I wave my mighty penis at the disk, and it in terror programs itself! Next I shall tell you of viruses and trojans! Um... Hehe.

    40. Re:PHP scripting/coding/whatever by belverus · · Score: 0

      i agree. However, I'd like to throw BASIC into the mix along with the xBase langs - like Foxpro. ;)

    41. 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.
    42. 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

    43. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0
      Youre arguments are the same ones we hear every time scripting vs. compiling comes up.

      The OP's points were largly correct.

      Oh. And your sign off makes you look like an asshole. Are you?

    44. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0

      it's also good to remember that it's not always necessary to code on a enterprise level; it is necessary to make money out of code.

      i also use php, perl, c, c++ in my apps, but i do not use java ANYMORE, because , the snob in me, it does not have REAL pointers (LOL).
      actually because it's eating up resources and it's not THAT portable anyway

      btw, just read a post on /. a few days ago about SUN recommending its own staff to AVOID java solutions in solaris OS

      in conclusion, it the lang is doing the job who cares if it's just the sh, right?

    45. Re:PHP scripting/coding/whatever by RevDiaBLo · · Score: 1

      Perl programmers usually call these "my-variables" by their proper name: lexicals.

    46. Re:PHP scripting/coding/whatever by jgerman · · Score: 1

      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.


      Not true. Not even remotely true. For a poor programmer that may be true. But Perl can ALWAYS be beaten by C.


      Though I do agree with most of your other points, for the most part.

      --
      I'm the big fish in the big pond bitch.
    47. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0

      >The problem is programmers that are insecure because they aren't confident in their ability to move between languages as needed

      complete rubbish. most programmers i know use both script and lower level languages as and when necessary.

      it is true that coding a script to solve a problem is often faster than doing it in a lower level language (how many people write dynamic web pages using assembly?), but this comes at a price of performance and system resources. perhaps this is part of the reason, you have less control over just what the script engine is doing to execute your script, whereas with a low level language you can tailor this more. for large-scale enterprise apps this is more an issue, for smaller systems (or single instance executions) this isn't usually a problem.

      personally i tend to use a mixture. and when the script gets slow, write a low-level component to do the slow bits fast, and then call this from the script.

      t

    48. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0

      How did you find out that PHP is unsuitable for large projects? Presumably by attempting to write a large project using PHP. Wouldn't it have been better to use the appropriate language in the first place? Now you're stuck with a large project written in a language that makes it difficult to maintain. w00t.

    49. Re:PHP scripting/coding/whatever by Reziac · · Score: 1

      Pikers... REAL programmers use "copy con program.zip"!!

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    50. Re:PHP scripting/coding/whatever by Reziac · · Score: 2, Funny

      Sounds exactly like OS arrogance, eh? :)

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    51. Re:PHP scripting/coding/whatever by Anonymous Coward · · Score: 0

      Nonetheless, the Java 'compiler' is written in Java, whereas the PHP 'compiler' is written in C.

    52. Re:PHP scripting/coding/whatever by MikeFM · · Score: 1

      Not at all. It was MY large project done for my own geek needs. The main problem with PHP was it's very limited namespaces and object oriented features. It gets extremely complex maintaining things as your code base grows.

      The proper way to write a big app in PHP I think is to write backend stuff in a cleaner language such as Python and use PHP just for connecting the backend to the web. Python makes it a lot easier to keep your code clean and keeping the frontend sepperate from the backend keeps you from tangling the UI in important stuff. Of course db stuff is good to write in SQL and low level speed intensive stuff in C/Asm.

      Simple life lesson I've found holds true... somethings it helps to do things the wrong way so that you know why the right way is better. Just don't do it for mission critical stuff. ;)

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    53. Re:PHP scripting/coding/whatever by KDan · · Score: 1

      Yes, what the above poster said is valid. Also, it is worth pointing out that the large projects for which J2EE is mostly useful for (because of its high maintainability if done properly) usually have much higher development costs in consulting fees than hardware cost, so they can afford to buy whatever machines are needed - what they require in exchange is high that the stuff works 24/7 and can be expanded and maintained. If you've coded any large-scale php sites, you know what I mean about php being very bloat-sensitive... ie once a php site goes over a certain size, it seems to naturally develop problems.

      Also J2EE is very scaleable so that you can keep adding machines as needed, so normally the speed problem won't come from the J2EE platform, but from the other legacy systems (as the above poster mentioned).

      There's a tool for each job. PHP is great for small to medium sites. J2EE is great for large sites. It's pointless to use J2EE for small sites (2 weeks of development for your home page, anyone? :-P), and equally pointless to use PHP for large sites.

      Daniel

      --
      Carpe Diem
    54. 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.

    55. Re:PHP scripting/coding/whatever by joto · · Score: 1
      I'm still trying to figure what this has to do with what I was talking about.

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

      What I was saying had two main parts:

      1. Java's claim to "run anywhere" is very far from the truth. Any nontrivial java program is likely to only run on the exact same version of JDK as it was compiled upon.
      2. In real life, it's not really hard to recompile. Since java gives exactly the same kind of problems, except that they occur at runtime instead of compile-time, are harder to debug, and never documented anywhere, I fail to see what the big advantage of "run anywhere" is.

      Understand now?

    56. Re:PHP scripting/coding/whatever by rackoon · · Score: 1

      You didn't get the point.

      1. My comment did not generalize the fact that Java runs everywhere. Java runs where a java vm exists.
      2. I wasn't talking about advantages or disadvantages. It was just a simple straight comment on the differences of the native code and the bytecode version.
      3. What I was trying to figure was not the fact that it had absolutely nothing to do with anything, but the fact that your comment was irrelevant to the post's subject, which was plain and simply "the java code can be compiled into native code". The speed, the fact that it can't run anywhere but the target, etc, were not important at all, just a parenthesis, and your comment was target against Java, which I was not defending at all

      So, your rant on the importance of running everywhere, the needed for classes, libraries, and the heck, indeed had little to do with what I was talking about (and I suppose now you understand that it was not pointing Java's advantages).

    57. Re:PHP scripting/coding/whatever by darqchild · · Score: 1

      personally i think typing is a matter of prefrence and a matter of application. I tend to prefer strongly typed languages and those that are very structured, because it's harder to make careless errors (say whatever you want, but nobody's perfect).
      But some problems are just infinately easier to solve using a loosely typed language such as perl.
      It is unfair to say that language Foo is better than language Bar, because they all have a purpose.
      Assembler is fast.
      Java is platform independant.
      PHP and ASP are good for webpages
      Some languages might be inappropriate for a certain task, but there is no such thing as a bad language.
      Except cobol. cobol is a tool of the devil

      --
      What? Me? Worry?
    58. Re:PHP scripting/coding/whatever by Goldberg's+Pants · · Score: 1

      Correct. I know a Java developer who has a database program (for baseball stats). Sun released a MINOR revision to the JDK, and it broke the program completely. I think it was the switch from 1.4.2 to the next from that. (Or maybe 1.4.1. to 1.4.2, I forget).

      Not a good sign for a language when a minor revision breaks peoples programs.

    59. 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.
    60. Re:PHP scripting/coding/whatever by jcast · · Score: 1

      Lisp isn't a programming language? Why?

      --
      There are reasons why democracy does not work nearly as well as capitalism.
      -- David D. Friedman
    61. Re:PHP scripting/coding/whatever by jcast · · Score: 1

      I know from experience I can beat an average Perl programmer on the same task when writing the code in Scheme, C, or Java.

      For what kind of tasks?
      --
      There are reasons why democracy does not work nearly as well as capitalism.
      -- David D. Friedman
  99. 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
  100. True to an extent by j_kenpo · · Score: 1

    Well, that sounds like poor management. There's an old saying, the proper tool for the job. There are definitely tasks that can be performed quicker and easier in scripting languages such as Perl or even VBScript (particularly in Office documents, if you have VBScript enabled outside of that your asking for trouble (figured Id head that troll off at the pass)) that can be performed quicker and easier than in C, C++, or whatever. We used to have discussion with professors about C++ vs. Visual Basic, and how some tasks could be performed better in VB than in C++. This is a generalization excluding things such as code size and such. But I would have to agree that there is definitely a distinction between "programmers" and "scripters" in the eyes of management and employers. I guess they see things such as automated memory management, interpreters and scalar variables as being weaker than declared typed variables and compiling. Kind of reminds me of the Artist vs. Inker/Tracer argument from Chasing Amy/J&SB Strike Back.

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

  102. Language Bias by SparafucileMan · · Score: 0
    The number one problem with computers is that they move too fast for humans to comprehend© In almost all cases, the computer lays idle while the user stares at the screen and tries to figure out what the hell is going on© For this reason, properly written code that makes sense and has a good user interface is far more valuable than program speed ¥in general© The bias against certain languages for certain tasks is a product of the STONE age of computers, when most programmers were engineers working with, what, less than 64k of memory© It is now the 21st century, and there is no reason why we should be held back by our languages© This is why I say anyone should be able to write with what they are comfortable with© Think this leads to disorganization or lack of business standards? Then have someone write a program to keep organization© Think this is disorganized? Then write an organization program for your organization program© Too slow? Fire your programmer for the two weeks he'd be slacking off reading /© and use the proceeds to buy a faster computer©

    Personally, I'm still pissed LISP machines never took off©

  103. Scripting leads to shortcuts/performance problems by DotComVictim · · Score: 1

    I've seen scripting lead to shortcuts or obvious breaks far too often. It's far too easy to miss details in scripting by making assumptions that are convenient for the fast paced development tool. For example, assuming that input is line oriented, or that all of the input can be held in memory at the same time. Yes, you can make the same mistakes in C/C++. It's not done nearly as often, because the rapid developement and general assumptions that make scripting so fast and easy are missing - you have to think about each piece.

    Scripting is slower as well. First of all, it's interpreted, not compiled, and most scripting languages are not lightweight to parse - they have a very flexible syntax. Also, it's fairly common for these syntaxes to transparently support different data types - meaning your data gets converted from strings to numbers or whatnot in all sort of places you wouldn't normally do that in C/C++. Often, regular expression matches/rewriting are thrown in as an additional feature, and abused for doing very simple things - changing case, re-ordering terms. Yes you can use perl hash tables and write fast scripts. Yes, you can write very poorly performing C/C++ code. I have yet to see a case where a well written C program can't outperform a scripting language.

    Yes, scripting can be done well. In practice, most of it is thrown together quickly, or maintained by multiple authors with varying degrees of skill, and it quickly looses its value as a reliable and efficient tool. I think this is why it is relegated to the "quick and dirty" prototype status.

  104. This does exist by truel · · Score: 1

    I was a contractor at a bell company doing internal tools that screen scraped from the old mainframes that they had.

    You could write in C, yacc, lex, sed, awk or ksh. Not Perl.

    They didn't trust it.

  105. 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
    1. Re:Hammers and nails by Anonymous Coward · · Score: 0

      "When your hammer is C++, everything starts to look like a thumb."

  106. Not where the company is healthy by Anonymous Coward · · Score: 0

    As an ex IBM'er we used whatever language served the purpose the best. For things that took a lot of IO with test equipment we used C or C++. For parsing the 100meg HDL files for the circuits we tested I used PERL. I think that scripting does get a bad rap as it truly in NOT a real language but I think that in the end it only matters the task at hand get done.

  107. Scripting programming?? by gmuslera · · Score: 1

    And in what category will fall a C or C++ programmer if you have things like C/C++ interpreters ?

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

  109. 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.
  110. 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?
    1. Re:Precisely! by Anonymous Coward · · Score: 0

      i think you're right on.

      i am definitely a scripter, even though i have had a little formal CS (C++, data structures)... i consider myself that because of the huge difference in skill between my and my programmer friends. i'm fine with office automation, munging, web (presentation layer, SQL) stuff... but it's SO easy to see where my skill set ceases to be useful.

      my code is clean because i do this stuff for fun (most of the time) and i know where i'm not competent. i am slowly picking up good style and practice as i go along... but if i were hired to do this stuff i pity the company paying me. it would be a mess. i have no education in algorithms, and i really do see that as the dividing line - it's a whole level of abstraction above the simplistic stuff i can do, far more sophisticated way of understanding programming.

  111. Re:Script kiddies should be fired by Anonymous Coward · · Score: 0

    if the grep function were to be available as a function in C, it would take you the same amount of time. The problem is that C code is more primitive and that the necessary libraries are not available.

  112. Hrm. Redefine the job. by philovivero · · Score: 1

    If you want to be a scripter, but don't get no respect, perhaps you need to find the job that fits your skills. As a DBA, I find that employers always specify that I must know shell scripting and something else along the lines of Perl.

    So I'm a BASH and Perl guru. I have to be not only to get my job done, but also to be employable and to get the respect a DBA gets.

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

    1. Re:Law of leaky abstractions by jaoswald · · Score: 1

      I think Joel is off-base in his whole conception of "Leaky Abstractions," but I think your argument works better the other way around.

      High-level/scripting languages give you abstractions to work with, and those abstractions are meant to be used, and generally work pretty darn reliably. Example: Perl regular expressions.

      In C, a low-level language, very few facilities are provided. You either must find a library which supports regular expression searches, or code your own C code that does the parsing.

      There is no guarantee that any library you find will be more robust than the one built into Perl. Similarly, if you roll your own in C, it will be either less flexible than Perl regex, require a huge amount of development time, or be buggier.

      If your abstraction "leaks" in a meaningful way, then you need a new abstraction that plugs the "leak." Or you abandon abstraction and end up with an inflexible solution to a single problem.

      The only potential problem with abstractions is when the facilities provided by a language do not provide a scalable solution to address the problem being solved. The more facilities that a high-level language has, the easier it is to choose the wrong one, and not know it until you try it in production.

      For a case where built-in facilities are important, consider the behavior of C integers. By definition, they are an abstraction which "leaks" on overflow. They aren't really integers, but just act like them until you overflow. In Lisp (a much higher-level language), you don't get integer overflow until you run out of memory to represent it. You can roll your own or use libraries to get bignum facilities in C, but they will never work as smoothly as something that has been built into the language for decades, i.e. you have to rewrite all of your code that uses integers in order to get the benefit. Then, you are no longer writing in C, but rather in C+bignum library.

      When you need to code in C+bignum library+automatic memory collection+real object orientation, then you might as well program in Lisp, which has all of them, designed in to the language from the start, instead of kludged in.

    2. Re:Law of leaky abstractions by Tablizer · · Score: 1

      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.

      Java is hardly "close to the metal", yet it is becoming the "new Cobol".

  115. 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 ralphclark · · Score: 1

      There is definitely something to that argument about scripting languages having an advantage where they require less code.

      The "right" language to solve a particular language in is surely whichever one offers the best fit to the problem domain. That means availability of appropriate high-level constructs.

      So for a problem in which most of the intelligence resides in the particular class structure employed, use a language which makes it easy to implement a class hierarchy like Smalltalk or Java or one of the object oriented C's (not necessarily C++).

      For a problem in which the main meat is in processing or accessing poorly structured data (like text) or data in different formats from a variety of different sources, choose Perl.

      Thats not to say that you can't do OO in Perl, I know that you can, and you can even get good at it, but if I suggest that everybody should just do everything in Perl I'm bound to get shot down in flames :o)

      The point is just this: choose the language that does as much of the work for you as possible.

      or me that's usually Perl. All praise CPAN!

    4. Re:I disagree 100% by Shads · · Score: 1

      and realistically, if you are a crack c/c++/java programmer, the time it's going to take you to decode a perl program is miniscule for the most part unless someone was intentionally obfuscating it.

      --
      Shadus
    5. Re:I disagree 100% by jim3e8 · · Score: 1, Interesting

      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.

      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. So you are correct to a certain extent, but compile-tile checking can sometimes cause more problems than it solves.

      By the way, modern scripting languages now have unit testing frameworks, which addresses your excellent point of partitioning the work up and testing each bit.

    6. Re:I disagree 100% by MagikSlinger · · Score: 1
      ... as scripting languages require less total code, and therefore it's easier to absorb quickly.

      No, it doesn't. If you are talking one small script that does one thing, sure, but I have never seen that. I inherited a mess of Perl from someone who wrote things in incredibly little amounts of code, but wrote many, many of these things and then tweaked them to do more than what they were intended to do. It took me a while to figure out what they were doing, but my colleague who had to learn Perl on the job is totally lost in the maze of code.

      A lot of this is due to scripting languages giving way too much freedom with little or no way of putting a leash on when you need it. Don't agree with me they need a leash? Read the Apocalypses from Wall or check out the direction Python has been heading in for awhile. Sometimes, I just want to code a one liner and be done with it, but if I want to make something larger, it would be nice to have type checking and boundaries between modules to make it easier to enforce my coding discipline.

      I have a problem with scripting language biggots (just as scripting language lovers rightly have a problem with conventional language biggots): they have the world's best hammer, and everything and everyone is a nail.

      --
      The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
    7. 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.

    8. Re:I disagree 100% by PimpNinjaWannaBee · · Score: 0

      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.

      So that's disagreeing 100% eh?
    9. Re:I disagree 100% by aziegler · · Score: 1

      Try Ruby, then. Ruby is dynamically typed, but has strong (but not static) typing available (as an extension). Ruby is very modular and a joy to use.

      In particular, look at http://www.rubygarden.com/ruby?RealWorldRuby for examples of people using Ruby in the real world. In addition, Amazon clothing is apparently written in Ruby by the Pragmatic Programmers (www.pragmaticprogrammers.com).

      The other REALLY nice thing about Ruby is that its extension capabilities are apparently a joy to work with, so time critical sections can be rewritten in C (C++ with some work) or can extend existing C libraries without much difficulty.

      -austin

      --
      Ni bhionn an rath achx mar a mbionn an smacht (There is no Luck without Discipline)
    10. Re:I disagree 100% by Anonymous Coward · · Score: 0

      Your title says 100%, but your writing says something like 75%.

      Anyways, script writing is often delegated to inexperienced programers. Untill languages like Python and Ruby, most scripting languages where very free form. That means the programmer must excersize more discipline in order to produce good code. Inexperienced programmers will often flounder a bit without the syntax/compiler enforced structur of compiled languages and more modern interpreted languages. This tends to result in poor code that takes too long to write. Add to this most clasic books on scripting languages are truely awfull. As an example, all ksh books tell you how to unset a variable, but none tell you why you would want to do so. How in the world is a new programmer suppose to learn to use a language corectly when all the liturature is crap? All this goes to sour managments view of scripting.

      I'm completely fluent in ksh/bash, and make. My former managment knew this, and so did all of my coworkers. None of them would willingly start a complicated project using a scripting language, because of fear. Most have been burnt befor, trying to scale some poorly writen, quick and dirty, scripts into a larger system. But any programmer knows, there are some things that really need to be scripted. When I volunteered to create a new code build/distribution system ( equivilent to RPM with the addition of doing package distriputions to remote sites), everyone was overjoyed. Scripting task were always coming out of the woodwork. "Lets get Mikey, he'll code anything!"

      As far as Python is concerned, it is precieved as an advanced interpreted language, and not as a scripting language. PERL still has that scripting stigma, and concidering some of the PERL code out there, no wonder. Notice, most people refer to Python or sometimes even PERL files as "programs", while ksh and bash are always "scripts", regardless how big the system is. Any managment reluctence to use Python is more from unfamiliarity with it, and resistance from PERL zelots, whos activities, by the way, are helping to keep PERL, relegated to quick and dirty little tools.

    11. Re:I disagree 100% by Fulcrum+of+Evil · · Score: 1

      Java is dynamically typed - that's why it defines things like a ClassCastException.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    12. Re:I disagree 100% by cerberusti · · Score: 1

      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

      They are incompetent, that is what type casting and void pointers are for.

      --
      I'm a signature virus. Please copy me to your signature so I can replicate.
    13. 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.

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

    15. Re:I disagree 100% by igrek · · Score: 1
      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.

      Easily:
      void baz(Bar* bar);

      Foo foo;
      baz((Bar*) &foo);
      See - it's possible to pass the pointer to an object of class Foo to the function that expects pointer to Bar.

      It will fool the compiler and you will probably get unpredicted error in run-time. While in stronly-typed language, you would get run-time class type exception.

    16. Re:I disagree 100% by Nyarly · · Score: 1
      They are incompetent, that is what type casting and void pointers are for.

      You know, when I read "amazingly fucked up atrocities," the first thing that came to mind was

      foo(void *data, int type)

      --
      IP is just rude.
      Is there any torture so subl
    17. 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).

    18. Re:I disagree 100% by maraist · · Score: 1
      Java is dynamically typed - that's why it defines things like a ClassCastException.


      That's a perversion of the words dynamicly-typed. ClassCastException is similar to c's dynamic-linking errors.

      Perl/Scripting languages are dynamically typed, not because they can load modules at run time (which just about every language I've ever heard of can), but because they auto-declare variables, because you can create/modify code at run time as part of the native language. The symbol table of perl is nothing more than a modifyable hash-table (except for lexically typed variables (my $foo)). This includes variables, functions, "magic" symbols, etc.

      Yes, Java does have reflections, which allow completly dynamic interaction, BUT, would you write any substantial fraction of a program using this? This was an exception to the original java-rule-set, which allowed for greater total flexibility, but I would be hard-pressed to call Java Dynamic because of it.

      --
      -Michael
    19. Re:I disagree 100% by Fnkmaster · · Score: 1
      Sorry, I like Python too for small to medium-sized projects, and while it's undoubtedly a highly readable language, this does not mean that it is more maintainable. A weakly typed language like Python is hard to manage in large projects for a very simple reason - it becomes incredibly hard to remember what object type you have where and to "black-box" function/method calls by the objects you are passing into them. I've heard Python developers and gurus suggest that the IDE should perform this job by "guessing" or interpolating the object type from context - and this is reasonable for a project being worked on by one person, but the concept of code libraries and black-boxing that we use to manage large (even medium sized, depending on what kind of projects you are talking about here) don't work very well in weakly typed languages.


      Frankly these methods don't work terribly well with a statically, implicitly typed language like OCAML either, which I think is part of the reason they haven't caught on broadly in industry use.


      When I open up a JavaDoc, I like to know that Interface Foo has a method called Bar and I need to pass it two ints and a Baz object, be able to click on the Baz object and see its JavaDoc information too. Python with optional type declarations or "boundary" declarations for surrounding your libraries with a well-defined interface contract might solve this problem, but until that exists, Python projects over 50k-100k lines of code are just too confusing to be manageable.

    20. Re:I disagree 100% by Mike+McTernan · · Score: 1

      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

      Erm, neither C or C++ have strong type checking.

      --
      -- Mike
    21. Re:I disagree 100% by MagikSlinger · · Score: 1
      Try Ruby, then. Ruby is dynamically typed, but has strong (but not static) typing available (as an extension). Ruby is very modular and a joy to use.

      I keep meaning too, but I don't have the time to really learn it. I suspect Ruby was hamstrung because it started in Japan, and without English documentation or support, there was no way to help it make it mainstream. From what little I've seen of it, it looked pretty interesting.

      --
      The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
    22. Re:I disagree 100% by Anonymous Coward · · Score: 0

      For Some Reasion, I think I agree

    23. Re:I disagree 100% by castrox · · Score: 1

      Well there are prototypes for checking number of params and the type of param. This doesn't include checking for e.g. "int" or "float", since they don't exist as types in Perl, merely if it's code, reference, list, etc. (This also enables some fancy ways to write code to subs..)

      --
      Fight for your digital freedom, join the EFF *now*: http://www.eff.org/support/
    24. Re:I disagree 100% by nihilogos · · Score: 1

      Erm, neither C or C++ have strong type checking

      Erm, he said strongly-typed. Go compile this and maybe you'll understand

      int a(int);

      int main(void) {
      int c;
      c = a(0.1);
      }

      int a(int b) {
      return b;
      }

      --
      :wq
    25. Re:I disagree 100% by fredrik70 · · Score: 1

      If you're a true man of danger:

      void foo(void *stuff) {
      srand((unsigned)time(NULL));

      switch(rand() % 5) {
      case 0:
      int *ptr = (int*)stuff;
      break;

      case 1:
      char *ptr = (char*)stuff;

      case 2:
      std::string *ptr = (std::string*) stuff; ....

      }

      now *that's* brave!!

      }

      --
      if (!signature) { throw std::runtime_error("No sig!"); }
    26. Re:I disagree 100% by cduffy · · Score: 1

      No, C++ is not strongly typed -- if you're talking to an Ada programmer. :)

      Honestly -- it depends on where you're coming from.

    27. Re:I disagree 100% by DonGar · · Score: 1

      One, I don't consider C++ to be a strongly typed language. Ada or Modula-2 yes, but not C/C++. The typing information is there, but it's easily bypassed, and often MUST be to do normal operations.

      Two, language based compile time error checking mechanisms often introduce many new types or errors that are artificial. For example, have you ever worked on a project where some pieces (perhaps external libraries) use 'const' regularly, and some don't? You get a lot of compile errors and have to fight with them, despite the fact that the code and logic may be perfect!

      Three, C/C++ are languages in which MANY kinds of behavior are undefined. This leads to what you (and I) call the worst kind of bug (random crashes, non-evident behavior). Truly high-level languages, have very little undefined behavior, and so don't have nearly so many of this kind of error. How much time have you spent tracing down a NULL pointer error, or an array overrun in C++? How much in Python?

      I personally think that the best of all worlds is to create a language in which all behavior is defined, and the language is easy to work with.

      Over time, we develop smart tools that do analysis of the code for possible run-time errors, and points them out to the programmer. When we learn how to build better error detection, we improve the tools, but don't have to change the language.

      I think modern scripting languages are a step in this direction, and are an improvement over what we've had before. I think that the performance issues can and will be overcome if we decide that it's worth the effort. Psycho for Python is an example.

      --
      plus-good, double-plus-good
    28. Re:I disagree 100% by igrek · · Score: 1
      Not really. ClassCastException just shows that Java is strongly typed. However, Java is statically typed language. You can check the Sun's own definition:

      The Java language is simple, yet flexible and powerful; object-oriented (with single inheritance); statically typed, multithreaded, and dynamically linked.

      Think of it this way - in statically typed language you can't start using objects if their type is unknown on the compilation stage. Even if you have object of class Object, you need to cast it first, and then to use it:
      // Java
      void foo (Object obj) {
      SpecificClass so = (SpecificClass) obj;
      so.bar()
      }
      While in dynamically-typed language (Smalltalk, Python, Ruby, etc.) you would just have
      # Ruby
      def foo(obj)
      obj.bar()
      end
    29. Re:I disagree 100% by FireballFreddy · · Score: 1

      I passed a Foo on the way to work. He was driving too damn slow. "Foo!" I yelled at him. Then I passed a pointer to a Foo "Get out the way!"

      Damn Foos.

      -FF

      --
      SQUEAK, the Death of Rats explained.
    30. Re:I disagree 100% by igrek · · Score: 1
      It's irrelevant. If you don't want pointers, this is how you could pass the objects:
      void baz(Bar bar);

      Foo foo;
      baz(*(Bar*)&foo);
    31. Re:I disagree 100% by Mike+McTernan · · Score: 1

      Try looking here and here. The second link gives the perfect examples:

      int a = 5;
      float b = a;

      typedef int Date;
      Date c = 12345;
      int d = c;

      C and C++ cannot be called strongly typed. Try Haskell instead

      --
      -- Mike
    32. Re:I disagree 100% by aphor · · Score: 1
      ...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.

      The problem with being unspecific is that one often fails to realise the assumptions that become invalid when other people read/compile/execute in different environments. Sometimes this is harmless. Sometimes the assumptions are critical and will cause the whole thing to fail.

      Do all C and C++ programmers always create "amazingly fucked up atrocities" to deal with strong typing?

      Do only some C and C++ programmers always create "amazingly fucked up atrocities" to deal with strong typing?

      Do all C and C++ programmers sometimes create "amazingly fucked up atrocities" to deal with strong typing?

      Do only some C and C++ programmers sometimes create "amazingly fucked up atrocities" to deal with strong typing?

      To correct the problem of atrocious code, I am unsure of whether you suggest a weak or strong relationship between the coder and the atrocity or a weak or strong relationship between the language and the atrocity. All I know if I trust what you said is that at least once, you saw some C or C++ written by either a C or C++ programmer to get around the strong typing requirements of C or C++ (respectively).

      At face value, it is a problem with some programmers some of the time. To that I suggest weak type languages prevent atrocity in the same way that strong type languages like C and C++ cause atrocity. The atrocity is probably just as much a style issue as a language issue.

      --
      --- Nothing clever here: move along now...
    33. Re:I disagree 100% by Nyarly · · Score: 1
      Um, there is a line between brave and stupid. The limits of bravery is trusting another entity to format your memory (i.e. int type) or relying on funkass sizeof voodoo. Stupid is writing code that will fail with remarkable frequency.

      now *that's* brave!!

      And forgetting to delimit your comments will prevent the whole thing from comipiling.

      Oh, but the whole trope was high-larious. Pity I'd already posted or I'd sling you some karma.

      --
      IP is just rude.
      Is there any torture so subl
    34. Re:I disagree 100% by naasking · · Score: 1

      I'd be curious to see one of the problems where weak type checking allows for a "better" solution.

      dynamic typing != weak typing

      Dynamic typing is the anti-thesis to static typing. Strong typing is the anti-thesis to weak typing. For example:

      C/C++: static, weak typing
      Ruby, Lisp: dynamic, strong typing
      Ocaml: static, strong typing
      (not sure of an example of dynamic, weak typing)

      Weak typing is certainly bad, dynamic vs. static typing is still an open issue however.

    35. Re:I disagree 100% by fredrik70 · · Score: 1
      I wouldn't call it stupid, it more a question of beliveing in good, believing that Murphy's law is defunc or something. Which, I must admit, is a rather broken belief in it self. ;-)

      And forgetting to delimit your comments will prevent the whole thing from comipiling.
      Ah, You might think so! but it does actually compile! I give you one hint:
      the preprocessor... *grin*

      --
      if (!signature) { throw std::runtime_error("No sig!"); }
    36. Re:I disagree 100% by jinx_ · · Score: 1

      regardless, at that point, you're no longer passing a Foo, you're passing a Bar.

      fool, c++ is strongly typed. casting is merely a method of acknowledging that types disagree, but also pointing out that you don't care. ...and why the hell would you cast to a Bar *, take the address of, and THEN dereference?

      baz((Bar)foo); would have done the same thing.

      i suppose you're one of those guys that does this number: printf("%d", &somearray[4]); someone teach these people pointer arithmethic.

      --
      jinkusu
    37. Re:I disagree 100% by be-fan · · Score: 1

      Correction. C does not have strong type checking. C++ has quite strong type checking, but provides a decent set of automatic conversions and provides an "out" for those that need it. reinterpret_cast(&foo) does not magically slip into your code. Not only is it pretty long to type, it's hard to spell "reinterpret." If it's there, you did it on purpose. And if you did it on purpose, the language should get the f**k out of your way and let you do it.

      --
      A deep unwavering belief is a sure sign you're missing something...
    38. Re:I disagree 100% by be-fan · · Score: 1

      Um, an automatic conversion from 'int' to 'float' does not imply the language is not strongly typed. An 'int' and a 'float' represent the same concept (a number) and have similar representations at the machine level. As for the typedef, a typedef does not create a new type (if it did it'd be called 'typecreate'). It simply creates a shortened alias for a type. In the second statement, both 'Date' and 'int' are the same type, thus there is no conversion going on, thus the "strong-typed'ness" of the language isn't even being called into question.

      PS> Introducing a new type with 'typedef' would be a major pain. Consider the case of template classes, which often are typedef'ed into a more readable representation:

      typedef std::vector<int> IntVector;
      typedef std::vector<int> NumberVector;

      void foo(IntVector& iVec);

      Clearly, in a strongly typed language, foo should be able to take either an IntVector or a NumberVector, because they're the same type! Typedefs, in C++, are largely a convenience mechanism, and thus has semantics that lean towards convenience. Now, you could argue that there needs to be a 'typecreate' keyword that creates a new type out of an existing one, but that's another kettle of fish. The real question is, why not just use the existing type if it suits your purposes as is?

      --
      A deep unwavering belief is a sure sign you're missing something...
    39. Re:I disagree 100% by Nyarly · · Score: 1
      And forgetting to delimit your comments will prevent the whole thing from comipiling. Ah, You might think so! but it does actually compile! I give you one hint: the preprocessor... *grin*

      You're smoking crack (or else your pp is...). Empirical study with gcc indicates that no such thing will happen. What do you think the pre-processor is going to do? gcc -E adds some newlines, and nicely closes the char constant, but still doesn't know what this now * type is. &;lt g>

      --
      IP is just rude.
      Is there any torture so subl
    40. Re:I disagree 100% by be-fan · · Score: 1

      One, I don't consider C++ to be a strongly typed language. Ada or Modula-2 yes, but not C/C++. The typing information is there, but it's easily bypassed, and often MUST be to do normal operations.
      >>>>>>
      Whoa there. Name *one* example where you *have* to do a typecast in properly written C++ code. Hell, just name one example where it is significantly cleaner/easier (to a C++, not C, programmer!) to do a cast rather then doing it the "right" way. Note, dynamic_cast, const_cast, and static_cast don't count, since they're type-checked, safe casts. Only reinterpret_cast here!

      --
      A deep unwavering belief is a sure sign you're missing something...
    41. Re:I disagree 100% by fredrik70 · · Score: 1

      now *that's* brave!!

      damn, it's not gonna work, is it???
      If I could fing a way of swapping out the "that's" with nothing and jsut typedef the now to whatever type I'd be surely sorted, but now....
      Never tested that actually, if I just do a
      #define that's
      it just means that 'that's' is defined (unless the preproc barfs at the ''' char).
      could I do a :

      #define that's *
      #define brave!! ptr;
      typedef char now;

      thus it all ends up with a pointer to a pointer to a pointer?

      --
      if (!signature) { throw std::runtime_error("No sig!"); }
    42. Re:I disagree 100% by gregmac · · Score: 1

      That's not necessarily a good thing. In the "programming" world, particularly with languages like C and C++ that force the programmer to deal with memory (pointers, etc), it's posssible to have buffer overflows, put the wrong data into pointers, and problems like that are typically much more severe than when you put a character into a variable expecting an integer.

      --
      Speak before you think
    43. Re:I disagree 100% by Anonymous Coward · · Score: 0

      WHOA!

      If you MUST typecast to get anything significant done your NOT doing it right.

      also

      long *xyz = NULL;
      *xyz = 99;

      Is PERFECTLY defined. Start at memory address 0 and write 4 bytes there. The OS usually seg faults it. Because you usually do not own that area. Defined. Most people never take the time to learn how and why it works.

      Scripting languages are just a change of how we do things. Instead of compiling to asm code which is in itself a language. You are compiling to a run time engine. With its own set of quirks.

      One is not inherintly better than the other. You can write just as crappy code in either.

      You seem to like mutable types. I do not. I find they create more bugs than they are worth. To me a value means 1 thing. Not 50 different things sometimes.

      I use casts as little as possible. This way I am letting the compiler work for me. Not against me. This is called knowing your tool.

      Programming is not EASY. Programming takes that little thing holding your ears apart. Not some language. You will NEVER make a 'perfect' language. For the same thing thing that users do. Invent a fool proof method and the world will create a better fool.

      Most 'bugs' I see are people that do not take the time to do it right. But just 'hack it' in for now and fix it later. The next kind are poorly defined things. 'OH make it so this field shows the usres name'. So you make it say lastname, first. 'OHHH I didnt want that I wanted firstname last'. Bug. The third kind is poor coding. DOING things like the example I gave above without realizing it. You should never had let it happen in the first place. You did not define your inputs AND outputs. You only defined some of your outputs. The language was neither 'good' nor 'bad' for letting the user of the language do that. I have uses for the above example. But usually its for error condition testing. But there IS a use. Testing the bounds of what you make is why you get paid the big bucks. If you hack crap together that fails on most conditions. You did not do it right. If you only need one condition to work. You better make sure that ONLY that condition happens. Notice I did not say the language let you do this. It let you write code that had 1 good condition but YOU wrote it, and it let you do what you need to do.

      I have found most language bigots get their reasoning from 'its faster to code with', or 'its quicker to get something working'. You will always get the 90/10 rule. You will just spend more of the time in the 10% part. I have maintained a few projects that were 'quick to get started'. They are horible messes. They were poorly planned. I am usually petrified to change anything because of side effects. Guess what this is ALL in 4 different scripting languages, and 2 compiled languages.

      Also ANY language can be a scripting language. Its just a matter of effort to write a compiler/runtime enviroment.

      Me? I use flow analysis to find and fix things. The language matters not...

      Also this whole thread is just one giant holy war. Dont ya think?

    44. Re:I disagree 100% by jphr3ak · · Score: 1

      In support of the parent arguement, I provide this FOLDOC defintion of type.

    45. Re:I disagree 100% by Anonymous Coward · · Score: 0

      Let me see. . .

      varmint: {2} gcc -Wconversion test.c
      test.c: In function `main':
      test.c:5: warning: passing arg 1 of `a' as integer rather than floating due to prototype

      I got an warning; you must be wrong.

    46. Re:I disagree 100% by aminorex · · Score: 1

      I think you're missing the point. "Properly written"
      code is not something found in the wild. In the
      real world, you have to deal with Other People's
      Code more often than not.

      --
      -I like my women like I like my tea: green-
    47. Re:I disagree 100% by doghouse41 · · Score: 1

      I would rephrase that...

      The best bugs never get specified
      The next best bugs never get designed
      The next best bugs never get written...and so on.

    48. Re:I disagree 100% by lars_stefan_axelsson · · Score: 1
      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.

      Well, that's close, but usual terminology is slightly different:

      Strongly/weakly typed has to do with what types we consider equivalent. Strongly typed means that the type has to stem from the same definition, weakly typed that they have to be "compatible" e.g. have the same structure. Hence two new types that both derive from are not equivalent in a strongly typed language, while they are equivalent in a weakly typed language. Ada is the prototypical strongly typed language here. Also surprisingly C is also strongly typed, but only because of the twist that 'typedef' doesn't introduce a new type, but only a new name for an old type.

      Static/dynamic is as you use it, i.e. has to do with whether the type of the program can be determined statically (at compile time) or dynamically (at runtime).

      Now, what you call strong/weak is really type safe/type unsafe. I.e. can the execution of the program ignore the types or not. C.f. C where you even though you have strong static typing, it's also type unsafe, i.e. the running of the program can result in a silent type error, whereas in Scheme for example it cannot, all type errors will be found.

      Speaking of types, myself I prefer languages that statically typed, and type safe (with polymorphism). The static types aren't really a problem if you use a language with a Hindley-Milner (like) typesystem, since it will automatically infer the types of all your expressions, meaning that you don't have to annotate the source with types unless you really want to. Such langages as Haskell and O'Caml meet these criteria.

      --
      Stefan Axelsson
    49. Re:I disagree 100% by Anonymous Coward · · Score: 0

      Are you a Troll? You sound like one....

    50. Re:I disagree 100% by Anonymous Coward · · Score: 0

      > A weakly typed language like Python...

      *plonk*!

      Python is certainly not weakly typed! As a matter of fact once you have your variable, you can never change the type of that variable (= definition of strongly typed). You have to make a new variable having the converted value, whatever that is. Compared to e.g. Perl, it doesn't have any magic typecasts and you have to be damn explicit and damn sure about the point of using that variable. Don't blame the language for a naming-habit that gets in the way of maintainability, monsieur.

    51. Re:I disagree 100% by dkf · · Score: 1

      Abstractions are both good and bad things. They are good because they let you accomplish complex tasks without understanding every last detail of it (just as I shouldn't have to know the details of how a fuel injection system works in order to drive a car). They are bad in that they almost inevitably lead to inefficiency as you have to add code on both sides of the abstraction layer itself to work to that abstraction.

      On the whole, I prefer to have those abstractions even in languages like C. Hell, even assembler is an abstraction over reality, and a really nice one (computing relative jump offsets by hand was one of my least favourite tasks when writing machine code directly.) Similarly, not having to worry about memory allocation and deallocation at all because of the use of a higher-level language than C is really nice, even though there is definitely some sacrifice of control for this. And when you've got to join bits of programs together that were never designed to do so, that scripting language comes into its own since at least then the types won't be actively conspiring against you.

      Horses for courses...

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    52. Re:I disagree 100% by cduffy · · Score: 1

      Not quite -- in new versions, conversions from 'int' to 'long' can happen behind ones' back:

      >>> a = 1000000000
      >>> a
      1000000000
      >>> type(a)

      >>> a *= 10
      >>> a
      10000000000L
      >>> type(a)

    53. Re:I disagree 100% by Nyarly · · Score: 1
      The preproc is definitely going to choke on

      #define that's *

      But oddly, not the way I'd expect. gcc's pp defines that as "'s *". Here's my solve, see what you think:

      #define now char
      #define that aChar=&
      #define brave!! t'

      Now the result is that aChar (I think) holds the address of the character constant 's* t', which if you've done any Mac programming, you know is legal, but very strange, and probably very unwise. Or maybe just brave, eh?

      --
      IP is just rude.
      Is there any torture so subl
    54. Re:I disagree 100% by be-fan · · Score: 1

      To quote the original poster:

      "...but it's easily bypassed, and often MUST be to do normal operations."

      I'm asking when the second part of the statement is every true. When "MUST" you bypass the type system to "do normal operations."

      --
      A deep unwavering belief is a sure sign you're missing something...
  116. It's part of a larger phenomenon by CrosbieSmith · · Score: 1
    Yes, I think it's true. I also think it's part of a larger I.T. phenomenon where systems are rated on how difficult they were to build and not how useful they are. In general systems get respect if:
    • They've got lots of lines of code
    • The staff cost lots of money
    • The technology cost lots of money
    So, write a database front end with Perl and DBI in two weeks, and that's virtually an admin task. Get a team of five high-paid Java developers using Weblogic to do the same thing in six months, and that's worthy of respect!
  117. Script != BAT by Sabalon · · Score: 1

    I'll admit - a lot of the little processes to do this and that (sync a database to LDAP, expire users, etc...) are scripts.

    I think too many bosses have the idea that scripting consists of what they remember about Batch files and that's it.

    Sad thing is the ones that think that perl or php is some toy scripting language have no trouble buying into a series of asp SCRIPTS written in VB.

    At least I don't hit resistance, just "You can do that? Wow."

  118. 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?)

    1. Re:Static type checking is good by Anonymous Coward · · Score: 0

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

      Oh I don't know, how about C?

    2. Re:Static type checking is good by jwbozzy · · Score: 1

      Pike does this to a fairly decent extent. Its more or less C as a scripting language with objects(I avoid saying C++ because of syntactical ugliness in the connotation). I've used it for a few small things, I haven't had the time to really explore the language in depth, but i have a hell of an XML-RPC server running in it.

      --
      perl -e 'printf("mmm %x\n", 3735928559)'
  119. 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.

    1. Re:Yes, scripters get short shrift by Anonymous Coward · · Score: 0
      the crappy hackers were able to slam in crappy code that worked fine but was fragile and hard to maintain.

      In many cases, you would say "Who Cares!" The vast majority of code that is written is very short-lived... systems and software projects that get worked for 1 or 2 months become obsolete in 1 to 2 years. So if it is only 95% working and has a bunch of obscure holes and is a quick hack with no documentation... That's ok- the cost of making a 100% correct solution is not justified.

      And this rapid obsolescence is particularly true of scenarios which one would call "scripting"

  120. 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?
  121. 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.
  122. Definition by Anonymous Coward · · Score: 0

    "Not only are the two groups not-mutually exclusive, but both tools are used akimbo."

    "Akimbo" means with your hands on your hips and elbows out point outward.
    definition

    1. Re:Definition by sielwolf · · Score: 1

      Huh... Didn't know that. I used it in the "guns akimbo" style. The way John Woo's protagonists are described when they run around with a pistol in each hand.

      --
      What is music when you despise all sound?
  123. 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.

    1. RE: Do Scripters Suffer Discrimination? by sproketboy · · Score: 1

      Yes and franky, I've always detested the term "scripting". This is a term that came out of Apples marketing departement in the late 80s with HyperCard.

      Programming is programming. Some things are better to develop in C/C++/Java and some in higher level languages.

      The week before last my boss asked me and our Java guru for an estimate on how long it would take to write a simple KnowledgeBase for our intranet. My estimate using dBASE (of all things!) was 5 hours, his - a week.

      Yes, the Java version would have been enterprise ready, etc, etc... but he wanted it now.

      So I wrote it in 2 hours over the weekend and demoed it last monday (3 hours more to add some miscelaneous features he wanted).

      Smell the glove.
      http://www.dbase.com

    2. Re:Do Scripters Suffer Discrimination? by spacefight · · Score: 1

      No kidding? Your Java Team has no bathroom at all?

  124. Re:Certainly not by kafka93 · · Score: 1

    Bizarre assertions. My experience is that 'modern web techniques' rely less and less on IE -- the DOM is well-ratified, cross-browser support is ever improving (particularly if you force IE to behave in a compliant fashion), and single-browser-only stuff has fallen out of favour, at least from where I'm sitting.

    CSS has no intrinsic relationship to anything like Dreamweaver - at any rate, to argue that it's 'weak compared with Flash' is to ignore much of its strength - that it degrades gracefully and provides an elegant approach to developing for multiple (present and future) web platforms, from traditional browsers to handhelds, projectors, printers, or whatever. CSS isn't 'about' graphical effects, either -- in fact, there are probably more parallels with something like Acrobat than with Flash.

    I've no experience with CSS 'interacting badly with firewalls and proxy servers' -- what could be 'hostile' about CSS, which essentially just provides a text-based presentation layer?

  125. 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...
    1. Re:In response to scripting apps faster by rv23 · · Score: 0

      From a rational point of view the choice between languages like C++/Java, scripting languages and hybrids (like Visual Basic) is merely a question of where management wants to invest their intellectual capital: spend large amounts of time at the beginning in modeling and specification OR roll and code and get it out on the road. Bypassing specification (for instance the necessity of designing data structures in C++ and Java because of data typing) the "speed" associated with Scripting languages after all slows down due to future (in most business cases, inevitable) redesign requirements. The prejudice against scripters grows from the experience of grappling with a scripted program's resistance to change over time and by different hands. The whole object based force in programming arose because of the necessity of developing evolving requirements over long periods of time and by many hands. Dot notation, which is common to both scripting and compiled languages, is simply syntactical simplification and does not equal the use of data structures. The presence of data typing in a language, which slows initial development, is the very reason for the necessity of implementing data structures. The correctness of data structures in both design and implementation provide ongoing proof cases for asserting (in the debugging sense of the word) the validity of inputs and outputs which will vary widely over the lifetime of an application. The issue revolves around the primitive distinction between languages which require data types and those that don't. The validity of source code which does not rely on typing is many times difficult to obtain. Of course if the lifetime of an application is short and it's problem set narrow to the overview of one programmer then validity is not relevant. A problem exists when robust and scripting occur in the same paragraph because I have no idea how you would measure and reasonably certify the robustness of reusable scripted code without types besides of course by just making the claim.

    2. Re:In response to scripting apps faster by jwbozzy · · Score: 1

      For an example of why languages should not allow myriads of syntax, see Perl.

      --
      perl -e 'printf("mmm %x\n", 3735928559)'
    3. Re:In response to scripting apps faster by azav · · Score: 1

      First, you shouldn't have gotten modded to a 0 on that reply. Bad moderator. :[

      I think that "where" scripting langs are used is important.

      If you are going to use a batch script, an applescript or a perl script to convert a buncha media to another format, then I'd feel that you're taking proper advantage of one of the scripting lang's benefits.

      If you're going to code a speed dependent part of your core code in an interpreted/tokenized scripting language, then I'd question your approach.

      BUT if the execution speed of the scripting language is "fast enough" for what you are doing and all other constraints are satisfied, then it should be seriously open for consideration.

      --
      - Zav - Imagine a Beowulf cluster of insensitive clods...
  126. Of course scripting is evil by Anonymous Coward · · Score: 0

    That is why its banned on most MUDs.

    And if its not banned, it gets banned after I come on and write my scripts.

    1. Re:Of course scripting is evil by Anonymous Coward · · Score: 0

      :)

  127. What are you talking about? by rxed · · Score: 0

    My manager doesn't even know the difference between scripting and programming. PS. I work as a sanitation engineer in LA.

  128. 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.
  129. Definition by phavens · · Score: 1
    I think that it comes down to definition.

    A project that mus be done, should be done what would be best whether in a scripting (Perl, TCL, PhP) or Programming Language (C, C++, Obj-C, Java). Though true that both C & Perl can be compile into run-level code, Perl isn't as optimised as C can be. And in the same way Scripting Languages that Haven become Programming Languages (ie. Visual Basic) has bcome a bane because of the amount of slow buggy crap that ends up out there because it's written in VB.

    <RANT>
    We use a system that is basically an Access Database manipulated by Visual Basic, and then compiled to make it look pretty. It's dog slow.. buggy as all hell and has slowed down a system that we use to be able to supply a quote in 5 to 10 minutes to taking almost half an hour. So I am biased against scripting turned into a programming language or compiling a script and calling it a program.
    </RANT>

    Mind you I have done both programming and a lot of scripting and I realize that there are strengths and weeknesses in both. But, and here's a big but, when a boss looks at the big picture they will look at costs in both training AND upkeep. Plus will look at what they know. They need a widget to access their database on a terminal... Use C/C++. Access the same daatabase from the web use Perl/PhP. It's not fair... it's just the way it goes.

    --
    Patrick Havens (Mr. 573333 to you.) Graphic Artist / Coder / Father / Journeler
  130. Welcome to the real world: management & polit by Morgaine · · Score: 1

    The primary reason for such discrimination (which does happen, as a freelance contracter I've seen it repeatedly in many places, from both sides of the compiled/scripted fence) usually has very little to do with the view that one type of language system is a professional tool and that the other is amateurish.

    In my experience, the main reasons tend to be simple departmental strategy and politics (the last two are inseparable), internal empire building and associated defensive stances, and management concern that lone or paired scripters are harder for them to control than the typically more cumbersome compiled development team which usually requires a management presence to even work.

    There is alas also a secondary issue at work, namely that because scripting is "easy" (largely an illusion on non-trivial projects, but nevertheless also partly true), every Tom, Dick and Harry dabbles in it, and as a result there are an awful lot of pretty incompetent scripters around, in an engineering sense. And that is a valid consideration: when a scripter hasn't even heard of regression or unit testing let alone doesn't do any (as an example), you can see how questions can be raised regarding what else is lacking in his or her CompSci education.

    Ultimately, there are no good or bad scripters or C, C++, or Java coders, there are just good and bad software engineers in the broadest sense of the term, and a good professional always uses the best tool for the job in hand. The trouble is, you can't become a software professional overnight, even if you are the world's most insightful Perl guru, because there is an awful lot more to creating solid systems than knowing a language inside out. It takes a solid background first, and it takes a lot of hard-earned experience as well. The coding is just the easy bit in the middle, and unfortunately the amount of non-language experience you get from sitting at home working on your own apps is minimal.

    In summary, yes, the discrimination exists, and a lot of it stems from some pretty nasty internal politics in a lot of places. However, a little of it may be justified, as the average level of competence among scriptors seems to be a little lower than among compiled language programmers, probably owing to very few of the latter being self-taught.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  131. Insightful? by Anonymous Coward · · Score: 0

    How about +4 ignorance / flamebait.

    1. Re:Insightful? by Anonymous Coward · · Score: 0

      agreed. That was without a doubt a troll post. Ad revenue must be down, so the /. editors are posting trolls to get more banner views.

  132. Isnt it all about typing by Zo0ok · · Score: 1

    I pick scripting/programming language based on what datatypes and datastructures I need. Script languages (Perl, VB) usually have no strict typing which is a good thing as long as you do not care. When I know that I will/might use things like byte-arrays, linked lists, multi-dimensional arrays etc I go for C/Java/C#.

    Some things are fundamentally easier to write if you got full control (like with c), given that you are competent enough to handle the task and needed tools ;)

    First consider Perl: if in doubt consider Java: if still in doubt consider C. In the MS world I think it is slightly different: Only consider C# ;)

    I really should start using Python, right?

    Harder tasks can be solved in real programming languages than in script languages, thus programmers solve harder problems than scripters... And scripters solving hard tasks using scripts (or worse: Excel) are obviously stupid.

  133. Re:Why? 'cos Perl sucks by jsnider · · Score: 1

    If I may...

    I don't see how that is the fault of Perl.

    Several posts here have attempted to make the same flawed point: If it's a script, it is therefore unmaintainable and poorly written. That's absurd. A bad programmer could write C that would induce a coma, while a skilled Perl coder could write a script that their grandparents could love. The language is irrelevant.

    Don't blame the language for the mistakes of it's users. English is an excellent example of this principle.

  134. Is it true by Stalemate · · Score: 1

    Is it true that some people are so overcome with bias that they must categorize everyone into a "coder" or a "scripter"?

  135. Kit Bashers vs. Engineers by Genady · · Score: 1

    I look at it this way. Scripters of the world are kit bashers, they take all kinds of bit and pieces and assemble something to do a job quickly. Programers are more engineers, creating a solution to fit the design goals. Both solutions have their place. Just as it's costly to build a bridge everytime you want to get your tank company across a river it's also kind of short sighted to demand that the pontoon bridge you put in place goes on to serve as a permenant bridge.

    Personally I've never seen much friction, usually because the scripters are also the SysAdmins and lord knows we don't want to have to actually support our own code, unless it makes us look more productive.

    --


    What if it is just turtles all the way down?
  136. Yes it is 100% true by Anonymous Coward · · Score: 0

    I am in a large "initech" like corporation and yes, we are forced to write slow bloated java apps instead of small fast perl/php scripts. So much so that people get fired for still doing it. It is a damn shame. I guess that "100% j2EE enterprise architecture" is a buzzword that no VP or higher can live without.

  137. Scripting Vs. Programming by Anonymous Coward · · Score: 0

    I have a thing that I tell people when this comes up: At one time I thought I knew UNIX. Then I programmed in C. At that point I learned I was only beginning to understand Unix.

    I use both Perl/Shell/JavaScript/C/Java/Makefile, and etc int my development duties. Many of these scripting langauges do not fit in embedded systems so 99% of the time I stuck to C or I can do the extreme and do assembler.

    In my dev enviroment, I use scripting for building code, server emulation, testing embedded devices real fast (expect). And for day to day UNIX server managment. But when it comes down to management of those devices, I usually allways rely on what I learned of Unix Internals to understand what is going on.

    I think it is not Scripters Vs. Coders but more
    Internalist Vs. Enthusiasts. Where the Enthusiasts may not fully understand the interals of th OS. To me it is more like the coders that did CICS and those that did Mainframe Assembly. The CICS codes knew just enough about the hardware to write CICS code where the assembly programmers knew enough for the hardware.

    In the competive job market I believe the more you know the better. So learn scripting learn prgramming and learn your OS from the kernel outward. Market yourself as a well-rounded person that knows computers. Not just perl and not just C. You never know when you might need the other.

    These are just my opinions.

  138. Who Cares? by Anonymous Coward · · Score: 0

    Do Scripters Suffer Discrimination?

    Who cares?

  139. compiled Java by Tumbleweed · · Score: 1

    Doesn't gcc now have the ability to compile Java into assembly?

  140. Can it REALLY be done in a few hours by litewoheat · · Score: 1

    Sure you can come up with some computational program in Python etc. in a few hours as opposed to 2 weeks with C++/Java. Is that Pyton app going to be as easy to use for Joe Smith in shipping with a GED? Or will he have to go to night classes to learn how to use a command line with a config file?

  141. Yes by Anonymous Coward · · Score: 0

    And rightfully so,

    The rise of the scripting languages has caused a loss in those who worship the tin god.

    On any decent sized project I can code it just as fast in C with the core routines in assembly than most could do it in perl. On a small project, it depends on how many times it is going to be executed what route I would take (only once a day or so, I'd probably script it, very very frequently and I'll hard code it in something else). ANSI C is portable, faster than Perl (by FAR), faster than Java, etc.

    No, scripters aren't programmers, you don't get close enough to the machine to qualify. You script, and it's closer to programming than say IRC scripting, which is probably what caused this entire debacle in the first place.

    A language that was written in another language is always going to be more limited than the original language. Scipters cause bloat, execution time is important, hardware is getting cheaper but damnit you people need standards.

    Looking over these comments I'm disgusted at what passes for a software developer these days. Efficiency doesn't matter... No wonder there's so much bad code and scripts out there. If you have developed any kind of libraries over the years you even put CPAN's perl modules to shame with the pre-optimized stuff you can pull off a disk.

    The tin god will come to claim sacrifice soon enough... don't you worry.

  142. Right tools for the job... by Danious · · Score: 1

    I used to work for a majoring outsourcer (think elephants). I was called in to review a project that was way over time and budget. An outside contractor had been brought in to develop a steady-state monitoring system for a large distributed system over many UNIX and NT boxes. He had tried to implement it in C++, because that's what he knew, and had been at it for over 6 months without anything usable coming out. My analysis was that the code was crap, and could be replaced by an experienced Perl programmer using standard UNIX tools in a matter of a few days. In fact, a quick web search located code that could easily have been adapted in a matter of hours. The guy was terminated, his file marked never to be hired again.

    His user manual was beautiful, though. Best description of how to click a gui button I've ever read. Shame the 150 pages never actually got around to describing the what or how of the system, but then I guess he never really figured it out himself.

  143. 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 Anonymous Coward · · Score: 0

      No your not a programmer, you are IQ deficient though.

      Copy your code to a Mac, Win 3.x, Linux, OS/2, AS400, BSD, VMS, or DOS based computer. Does it run? No.

      Your talent is worthless. Your mom probably thought you meant the VCR, not a computer.

    2. Re:What is the difference? by Superfreaker · · Score: 1

      Ah ha Bart!
      You got modded to 0.

      They think you suck and so do I

      ptthhh!!!!

      "you are IQ deficient though"
      Yes, they should make those Mensa admiission test harder.

      Coward.

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

    4. Re:What is the difference? by Anonymous Coward · · Score: 0

      I'd rather not know about the depth of your "man gauge", thanks anyway.

    5. Re:What is the difference? by Anonymous Coward · · Score: 0

      You got modded to 0. They think you suck and so do I

      No, if you knew anthing you would know that AC posts start at zero. Look at the entry, nobody moderated it.

      Yes, they should make those Mensa admiission test harder.
      Mensa doesn't accept people who cannot construct proper sentences or spell.

      If you can't make decent comments or comebacks, you need to find a different forum for your trolls.

  144. Re:Score 5: Funny by Anonymous Coward · · Score: 0

    now that is funny!

  145. 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
    1. Re:Happens all the time by geekoid · · Score: 1

      So, you go to CPAN, and down load moduals OTHER people have written and use that. hmmm

      well, If I was to download a C program that already did what I needed, that would be pretty quick as well.

      "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."
      that is a flaw with the developer, not the language. I can't believe that you would assert that PERL is inheritently easier to read, are you?

      if you are, three words:
      "Leaning matchstick syndrome"

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    2. Re:Happens all the time by autopr0n · · Score: 1

      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.

      Java has built in HTTP and LDAP support. I'm sure there's lots of C/C++ libs you can go out and download.

      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.

      Java got regexes in 1.4. The rest, it's always had. As has the C++ Standard template library.

      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.

      That's ridiculous.

      You obviously don't have any experience using Java, or modern C++.

      --
      autopr0n is like, down and stuff.
  146. 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
  147. Job Type Counts by Anonymous Coward · · Score: 0

    I've seen a lot of good points here, but nobody's delved deeply enough into the "right tool for the right job" aspect. If you're doing something for config scripts or run-once or ad-hoc jobs, you're a fool to choose C++ or some other code-intensive, highly optimizable language. If you need something that's optimized for UI considerations (execution time, bandwidth, CPU) or for a tight batch, or you expect these considerations to be a factor in the future, the case for a tighter, lower-order (more Assembly-like) language becomes a lot stronger. You'll never convince me a strong C++ coder shouldn't make more than a strong Perl guy (unless we're talking about the kind of DBI/CGI/Shell Scripting monster who can be the one System Admin, Web Admin, and DBA in a small to medium-sized shop), but your company's only hurting itself if it doesn't see the value in employing both and having the pathways in place to funnel appropriate tasks to each of them.

  148. Conflict of Interest ??? by alphaFlight · · Score: 1

    If a co-worker or subordinate comes to you proclaiming that perl or php will meet the organizations needs just fine for all projects, yet he or she can't even program in c/++/#/java you have to question whether there is a conflict of interest. Is the person simply acting in the interests of self-preservation.

    --
    -= alphaFlight =-
    1. Re:Conflict of Interest ??? by cruachan · · Score: 1

      And you have to question if your co-worker is worth having in the first place. Every good developer I've ever know has always jumped at a chance to learn a new language/environment. Of course you don't become truly competent in an environment until you've used it for quite some time, but any degree of exposure to anything new invariably impoves your general coding abilities - and good coders know that.

    2. Re:Conflict of Interest ??? by alphaFlight · · Score: 1

      I completely agree you, but believe it or not, its not always easy to get rid of someone. My organization has very strict work rules, so an employee cannot be removed for not adapting. In order to change a non-empty job role, the unit must undergo a tedious process of reorganization.

      --
      -= alphaFlight =-
  149. 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

  150. 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.
    1. Re:Scripting Is Becoming Programming by kilimangaro · · Score: 1

      IMHO the point here is at the architecture level. I mean, that a "scripter" do stuff related to the presentation layer and a "coder" do the logic layer. But as everybody knows, script language such as perl, python and php can do all this stuff.

      --
      "Insanity in individuals is something rare, but in groups, parties, nations, and epochs it is the rule." - Nietzsche
    2. Re:Scripting Is Becoming Programming by bahwi · · Score: 1

      You bring up some good points. Check out this webserver. Completely written in PHP. I think you can write CGI's in C, but I'm not sure. =)

      The thing is, they are not different, they are both programming languages. It's just a matter of how we differentiate them. Yeah, I like apples and am allergic to oranges. That doesn't mean one is a fruit and the other is not. Yeah, the scripting languages do not enforce good programming form(excluding Python, et al.) or practices, but you can make a crappy program in C just as easy. Yeah, I choose C/C++/Obj-C for stand alone programs and PHP/Perl for web and some scripting, but that's _my_ choice. QT/KDE libraries work alot easier with C++, not Perl, in my opinion. Of course, if there is a mail client written in pure perl(there are several I believe) that I want, then I won't not use it because it's written in Perl.

  151. It's not just about time to develop by Crazen · · Score: 1
    • Maintainability
    • Longevitiy/Lifespan of tool
    • reusability
    • tools available/skill level

    Those are issues to concider before starting a tool. If I could have a scripter spit out a tool that will serve my purpose for that day, but end up taking ten times the effort to maintain/extend it, I would rather have it done in a more formal method.

    The fact is that scripting languages take on dramatic changes, which would mean you'd end up haveing three versions of the executation engine on your system.

    Scripting languages provide a lot more flexibility in expressing those rules. If there are ten ways to say something easily then you will see all 10 ways used at some point, and you will have to deal with all 10 ways.

    Also, often times, scripters are craftsmen and not formally educated in the art of software developement. While they come up with means and methods to get the job done, those means and methods are sometimes not the best route (complexity, flexibility of tool, speed, resource usage). So yes, craftsmen vs. engineers, engineers are more highly valued. I'm not saying just because you're educated you're good, it's my belif that one needs to evolve from craftsmen to engineer early in ones profession to be good. Not just become a programmer "because the pay is good" (somebody should have told them the hours and demands)

    I'm not going to get into speed to execute instructions/p-code, it should be obvious, but this is much less of an issue to me, as the resulting internal quality of the tool.

  152. One line. by Anonymous Coward · · Score: 0

    system("sort list2");

    Now, how do you write a realtime system with Perl? Answer: you don't.

  153. Not an Answer but.. by Hellraisr · · Score: 1

    I think any management team that would look down upon a solution that could possibly save time and therefore money is a bad management team.

    All possible resources on hand should be evaluated before beginning a project. That's what a project plan's for!

    If they are just rejecting a language out of hand because of the reputation of the language, they're not doing their collective jobs as one of the core components of systems design happens to be evaluation of all alternative solutions - both pros and cons.

    Now if they actually did honestly evaluate to the full extent and still rejected your perl script.. well that's another thing entirely.

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

  155. 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.
    1. Re:Don't blame the intern! by Sebastopol · · Score: 1



      you're assuming I was the manager or had influence. it doesn't work the way you described. Sometimes managers are so hands off they don't care if the job is done without foresight in mind. Not all managers are brilliant software project managers. Sometimes code is just a tool.

      I watched it all happen from the sidelines. His boss didn't really care, and the intern was simply convinced his way was better. He got the results, 'nuff said.

      --
      https://www.accountkiller.com/removal-requested
    2. Re:Don't blame the intern! by Beetjebrak · · Score: 1

      Then forward my previous post to the kid's boss ;-))

      The world is sadly too much like Dilbert's universe...

      --
      Learn from the mistakes of others. There isn't enough time to make them all yourself.
    3. Re:Don't blame the intern! by Sebastopol · · Score: 1


      also, i should probably state that i didn't intend do paint interns and drooling knuckle-draggers.

      75% of interns do a great job, 5% are astonishingly competent, and 20% just aren't ready yet. hell, i was one for 3 years, and i've seen my code from then. eeew.

      but it is amazing to watch how some interns have great resumes and interviews, but then just crash and burn when the get in the lab. reminds me of the MIT MSEE who tried to _wash_ a motherboard...

      --
      https://www.accountkiller.com/removal-requested
    4. Re:Don't blame the intern! by Anonymous Coward · · Score: 0

      I'm an MSEE and I've got to ask, what's wrong with washing a motherboard? I mean, as long as it doesn't have power connected to it and you don't wash it in battery acid, I think a nice bubble bath would be good for it. Maybe even a sensual massage, and a dozen roses. Those MIT guys get lonely sometimes... maybe they know something you don't...

    5. Re:Don't blame the intern! by Anonymous Coward · · Score: 0

      Radio Shack used to use a standard industral dishwasher to do the final clean on their motherboards when they were making the coco.
      The problem comes from the detergent and/or junk in the water causing lowlevel oxidation on the joints. Clean water won't do that.

    6. Re:Don't blame the intern! by geekoid · · Score: 1

      "why did you hire this intern in the first place?"

      to go get our Mochas, D'uh.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    7. Re:Don't blame the intern! by Speare · · Score: 1

      Why did you let an intern deviate from company standards?

      Some companies choose exactly that time to deviate from company standards: new blood sometimes brings new paradigms. Interns cost little. Interns aren't given strategic tasks. Cleaning up or redoing an intern's work costs little. If an intern does something with an unfamiliar technology, it could be worthless, or it could be the seed of a new wave of opportunity for the company.

      What did Thomas Edison develop during his internship? Do you think it was "within company standards?"

      --
      [ .sig file not found ]
    8. Re:Don't blame the intern! by Anonymous Coward · · Score: 0

      "as long as it doesn't have power connected"



      tell that to the capacitors!


    9. Re:Don't blame the intern! by Anonymous Coward · · Score: 0

      Or perhaps you were just making up a point to make a point. Sometimes works that way too. People claim to be experts on this and that, then drive home a claim they don't really have any knowledge of. See PhysicsGenius for concrete examples.

    10. Re:Don't blame the intern! by Inspector+Lopez · · Score: 1

      When I started grad school I insisted on programming in C in a FORTRAN shop. This turned out to cause tremendous problems, and I've realized that it was a tremendous error to permit me to use a buggy C compiler to write code that none of my colleagues could understand.

      Among other things, the FORTRAN compiler was reentrant, while the C compiler was not. You could have 5 people writing FORTRAN compiling merrily away, and the system would work great. But when I needed to compile, I actually had to tell everyone to take a break --- because it was going to be 5 minutes before they could do anything.

      It made me a rather good C programmer, because I had to write code that would actually work without compiling blindly. But I should have used FORTRAN.

      Now I'm an Extremely Powerful Professor running my own lab. To avoid being dazzled by heterogeneity, we use

      linux
      C
      python
      xml
      latex

      and that's just about it. My students do *not* have permission to use other tools, and they *do* have permission to abandon the legacy perl and C++ code so that we can simplify our overall code base --- at least in terms of minimizing the tools that the next students must be familiar with.

  156. I'm with him by The+AtomicPunk · · Score: 1

    Except for the part where he lumps Java in with C++. Has he used both of them? :)

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

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

    1. Re:This is why I use VB and ASP. by IIRCAFAIKIANAL · · Score: 1

      VB is alright for business applications if you keep it away from morons, but there's just no hope for ASP 3.0. Biggest piece of shit I have ever had the misfortune to work in.

      It's like they took the bad parts of scripting languages and combined them with the bad parts of vb and changed the syntax just enough to drive me nuts.

      --
      Robots are everywhere, and they eat old people's medicine for fuel.
  159. Case in point by DJFelix · · Score: 1

    We sell a transaction processing application that has a CGI based GUI. It's written entirely in C++ because management doesn't believe in scripting languages, and doesn't understand what can be done to protect scripted code from prying eyes. As a result, our GUI is horribly slow, error riddled, platform dependant (HP, Solaris, & Win32), and extremely inflexible. Our customers hate it, and it has lead me to start an open-source project to replace our CGI GUI with an open-sourced PHP GUI. (Done as an un-official external project of course)

  160. 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.
    1. Re:no, it _is_ credible by nojomofo · · Score: 1

      Just comparing two programmers and then concluding "one was faster, so his programming language is better" is just nonsense.

      I certainly agree with you - that's not the point that I was trying to make. What I meant instead of "2 or 3 times that length of time" was "in the same order of magnitude of time", or some such thing. That bit was my saying that it's ridiculous to say that there are tasks that can be completed 100x faster in Perl or Python than C or Java.

  161. it's all about unit tests by filitov · · Score: 1

    You're right, static type checking is great for just that, making sure your program is type correct. But that doesn't at all mean your program really is correct.

    Granted, un-tested scripting code is more dangerous than compiled, un-tested compilable code because of potential type snafus.

    However, tested scripting code is better than compiled, un-tested compilable code.

    And tested scripting code is, assuming you've written good unit tests, just as good as compiled, tested compilable code.

    In scripting code, unit tests take care of psuedo-type checking, plus actual functionality testing which is much more important, to the point where the simple type checking that compilers do isn't really needed.

    Of course the problem is that hardly anybody writes unit tests for scripting code.

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

    1. Re:Caveat to the Small Fish by pclminion · · Score: 1
      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.

      Sounds like they are afraid of getting screwed if you quit. But I think they're actually screwing themselves.

      Suppose you do quit. They now have to hire someone else to maintain this Perl code (probably being paid a comparable amount to your current pay). This person will need a certain amount of time to get up to speed with your code, but this is a ONE TIME cost.

      However, the productivity cost incurred by forcing you to over-document your work is a RECURRING cost which accrues each and every day.

      If I were your employer I'd be more interested in increasing your productivity, and taking on a finite amount of risk if you decide to quit, rather than decreasing your productivity (and increasing your cost per line of code).

    2. Re:Caveat to the Small Fish by Anonymous Coward · · Score: 0

      The secret here is to implant the meme "those guys in insert group here need training in perl" (or python, or whatever), and then to coordinate introduction of the meme with a friend who just so happens to be a sales shill for a training company that is rolling out a new set of perl classes.

    3. Re:Caveat to the Small Fish by tarsi210 · · Score: 1

      Oh, I absolutely agree. And I've tried explaining this to them. The problem, they tell me (in their oh-so-knowing way), is that to hire a competant programmer here in small-town Iowa (right in the middle of fuck-nowhere, I assure you) is no small potatoes, so they're just covering their asses.

      First, I think they're full of it (we have two other programmers here, there's gotta be more out there) and we have a level of paranoia that does not equal the level of productivity.

      Concern, good. Paranoia, bad. Where's the line? Right through my ass. :)

    4. Re:Caveat to the Small Fish by janda · · Score: 1

      tarsi210 wrote:

      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.

      Gee, and you find this strange? Odd? Amazing? Why? If your employer wants mind-numbing detail in their documentation, give it to them or get out.

      --
      Karma: Food Fight (Mostly affected by Date Plate).
    5. Re:Caveat to the Small Fish by tarsi210 · · Score: 1

      There's detail and then there's detail. Detailing how a function works is one thing. Detailing what a function is is another. Or what a class is. It's simply incredible.

  163. Not called S'Kiddies for nuthin' by Anonymous Coward · · Score: 0

    Not called S'Kiddies for nuthin'. Scripts are for kids, and for things that any idiot can do. If they bring in the big guns it's because the job needs a real man, not a s'kiddie.

    1. Re:Not called S'Kiddies for nuthin' by Anonymous Coward · · Score: 0
      Not called S'Kiddies for nuthin'. Scripts are for kids, and for things that any idiot can do. If they bring in the big guns it's because the job needs a real man, not a s'kiddie.

      WOW ITS NICE TO FIND SOMEONE ELSE ON AOL HERE. YOU GOT THE BOLD, NOW YOU JUST NEED ALL CAPS.
  164. I don't get it. by oPless · · Score: 1

    You use the right tool for the job. Period. End of discussion.

  165. Re:Certainly not by kafka93 · · Score: 1

    Yup. It's all because of the name, I think: people hear 'cascading' and immediately think of pull-down menu effects and the like..

  166. Medicinal Compound... by HermanZA · · Score: 1

    Any medicine (programming language) that is held to be a cure for all ills, isn't. This has been documented long ago (in the 19th century already?) in the form of the song 'Lily the Pink' and her medicinal compound, that saved the world from misery by killing everyone that used it. "You have to use the appropriate hammer for a screw of a given size." ;-)

  167. management abstraction by dulakian · · Score: 1

    I think the larger the company becomes, the more removed from reality management becomes. Smaller companies happily use script languages because thier programmer/scripter guy told them to. When you put another layer or two of management in there, the guy who decides and the guy who implements are too far apart to have that shared sense of purpose. Upper management makes a decision without the input of the person or department that will implement that decision, leading to possible bad choices when it comes to the tools used to solve the problem. I'm probably wrong but would argue it over beers anyday.

  168. On the contrary by Anonymous Coward · · Score: 0

    an incompetent C programmer probably is the most likely to create unmaintainable code

    A disgruntled GREAT C programmer will make completely unrecognizable and therefore unmaintainable code better than any incompetent C programmer (e.g. tuples vs. intermediary variable)

  169. Scripting In Large Projects by Jboy_24 · · Score: 1

    is like a baterical infestation. I worked on a large perl based ecommerce project and a large Java based Ecommerce project. In the end, to insure quality code we had 100% make sure use strict was used, we had to forbid many things Perl programmers pride themselves on in order to get 8 delveopers to stop duplicating work, stepping on each others code and make our code maleble to changes in specs.

    In Java project it was sooo much easier. Sure it took a little longer to start up, creating the Beans, the database layer etc, but once we were going everyone used the code we created, adding features and dealing with changing specs were SOO much easier.

    Now comes to the point of the title, we were on a tight deadline, so the bosses got a team from another part of the company to write a PDF generator. That piece came in Perl. Now the piece was writen by good, skilled programers, but dealing with different error log locations, creating processes for the perl interperator to live in etc was a nightmare. If we paid the $$ for a 3rd Party Java PDF writer or developed our own we could have saved a good 2-3 man months off of the code. I learned pretty quickly as the only 'Perl' guy on the Java side of the project, You should NEVER, EVER mix languages in a project.

    Scripting languages are fine for small one-two page cgi programs, but unless you can crack a whip and get the programmers to fall in line, you'd better let the language and enviroment do that.

    btw, J2EE are frustrating to Script Programmers because they were DESIGNED to be. But if you were ever in charge of divying out tasks in a large project you'll realize how J2EE was designed for you.

    1. Re:Scripting In Large Projects by Rick+BigNail · · Score: 1

      I guess you are working in a IT consulting company? IBM Global Services?

      How lucky you are! At least you don't have to know Coldfusion...

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

  171. I call BS by anonymous+loser · · Score: 1, 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.

    I would love to hear an example of this. Off the top of my head I can't think of anything that takes weeks or programming in Java or C++ that you can do in Perl or Python in a few hours. Of course, I'm not fluent in Python really (ENFORCED formatted whitespace in a modern programming language???? What was he thinking?) but I am in Java, C++, and Perl, and although I will usually lean on perl to do my text processing I know from experience that I can do the same tasks in Java or C++ (especially given the now-ubiquitous regexp libraries) with only a little more effort, usually related to the extra work required setting up user interface and file I/O in the other languages.

  172. Programming - Scripting (link) by ScriptGuru · · Score: 1

    Just an interesting instance:
    The latest web based Yahoo! Chat client is DHTML based as opposed to its Java predecessor.

    --
    Yet another signature that refers to itself. The irony and humor is dead.
  173. Gol dang weenies by Anonymous Coward · · Score: 1, Funny

    back in my day we didn't use nothing but assembly language-up hill both ways-in the snow.

  174. Re:Certainly not by arkanes · · Score: 1

    CSS is fine, but it's positioning attributes are hacky and moronic. I'm bitter and unhappy about it, and continue to use tables which render faster, on more browsers, and in less code than the CSS. Not that you can actually implement the full functionality of standard HTML tables in CSS.

  175. a true programmer... by s2kdave · · Score: 1

    ...knows how to do both.

  176. It works both ways by prgrmr · · Score: 1

    At my former job I was not allowed to code in C because the other System Admins (except 1) only knew shell programming, so everything was done via scripting, including some not-so-trivial EDI stuff that would have been much better done in C.

    As soon as management gets involved with decisions like choice of development environment, politics and perceptions of cost (accurate or otherwise) become infinitely more important than applicability to the situation or efficiency of use.

  177. Not all interpreted lenguages are scripting tools. by Anonymous Coward · · Score: 0

    Programming lenguages can be either interpreted or compiled, but they are still programming lenguages.

    I don't think that because python is a interpreted lenguage you can say I write "scripts" in python.
    Or haskell (nice functional lenguage).

    I wouldn't call bash scripting lenguage a "programming lenguage", it has limited usage.

    I believe there is a confusion here. Maybe WE have to check our concepts.

    If there is a bias towards using a interpreted or compiled lenguage, maybe the software engneers are
    doing their jobs right.

    Like many /.ers said you need to know where and how use the right tools.

  178. Generations by delphi125 · · Score: 1
    It's not really true actually. Assembly IS machine code ...

    Another non-CS comment here. Machine code (ones and zeros) is considered to be a first generation language, whereas assembler opcodes are a 2GL. 3GLs are historically common; C, Pascal and Basic being typical examples used.

    I don't quite agree with this, personally I would consider 'English' (SQL, COBOL) as well as other 'do more in less' (Delphi [components], Perl [regex]) to all be 4th generation. This is because 5GL has been considered to be real AI (as in "tell me if anything worthwhile has been posted on slashdot").

  179. This is so obsolete!!! by Anonymous Coward · · Score: 0

    Everybody is SCRIPTING!!!

    Isn't the CPU itself an interpreter?

  180. I prefer good ole shell script, even in Java by Anonymous Coward · · Score: 0

    I like to write everything in shell script, because then I can use lots of sed/awk one-liners. I don't have any problem developing in Java, I just use Runtime.getRuntime ().exec ("/bin/sh") and write the shell script I need to the output stream of the resulting Process. You can do something similar with C++, or a lot of times you can just call the same unix commands as C functions. Sometimes you get iowait problems 'n' have to add another rack sooner than you might have, but...shrug.

  181. My Title by GrayCalx · · Score: 1

    If my title says I'm a Programmer/Analyst then by gum it, I'm a Programmer/Analyst.

  182. What's a "scripter"? by Len · · Score: 1
    What the heck is a "scripter"? A programmer who can't learn another language?

    So far this year I've used C++, VB and VBScript at work. If my bosses insist that a program be written in C++, it's not me they're discriminating against.

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

  184. Hello, India. by BoomerSooner · · Score: 1

    Welcome to our future. Get your $$$ while the gettin is good.

    Outsource everything so no one can afford our product is the way our country is going. Good for the rest of the world, not yet sure if it's good for us, bad for us or makes no real difference.

  185. Not where I work by mikosullivan · · Score: 1
    In the IT department where I work, the policy is "Perl for everything".

    Of course, I am the IT department, so it's pretty easy for my opinions to hold sway.

    --
    Miko O'Sullivan
  186. Re:Certainly not by bitdamaged · · Score: 1

    How the hell did this post get modded up?

    Going off the subject here but CSS/XHTML and Flash are two completely different things. You're thinking of DHTML which in itself is a combination of Javascript and CSS and a totally different subject. CSS has been relatively well supported since the generation 4 browsers. Especially in the layout and font manipulation areas.

    The orginal post was right Tables especially on a site of this size is a mess and slows redering time incredibly.

    --
    "Not all chemicals are bad. Without chemicals such as hydrogen and oxygen, for example, there would be no way to m
  187. Unnecessary work by Anonymous Coward · · Score: 0

    If your programmers are doing 'weeks of unnecessary work' get new programmers.... and management. Perl/PHP etc are no slower to code in than Java/C++/Lisp etc. If you have good libraries and good coders, you have a good product. Process and management mean sooooo much more than programming language. Most projects fail because of bad management not bad programming.

  188. Re:Certainly not by Daniel_Staal · · Score: 1
    Not that you can actually implement the full functionality of standard HTML tables in CSS.

    You're not supposed to: HTML tables still exsist, and can be manipulated via CSS. Just don't use tables when the data isn't tabluar... (Like using it for layout.)

    There are a few table-based layouts that you cannot duplicate with CSS, but very few, and there would be less if certain browsers *cough*IE*cough* would fix their CSS support.

    --
    'Sensible' is a curse word.
  189. Programmers should do both. by shadowpuppy · · Score: 1

    I've seen more cases of people bein biased towards scripting languages. If it were up to me I probably wouldn't hire someone who didn't know C or someother language at a similar level. And thats not because I'm against scripting languages, I just feel that learning to deal with languages which don't hold your hand is good mental training. I've found different languages encourage different ways of thinking. The more ways of thinking someone encounters the better their chances of solving a problem.

    That having been said I find that Perl is more that sufficient for most tasks. And CPAN is the best thing since sliced bread.

  190. Re:Not all interpreted lenguages are scripting too by Anonymous Coward · · Score: 0

    Have you ever heard of the English "lenguage"?

  191. My problem is reversed. by Anonymous Coward · · Score: 0

    I have a manager-type who also knows javascript. He knows it pretty good, too.

    Unfortunately, because of this, it seems every problem in the universe can be solved with a little javascript. Perl? Java? No. It's allllll client side. Server side session manangement? Nope. Custom mod_perl handlers for authentication and authorization? Nah. Just one cgi script (not mod_perl-ized) and a bunch of javascript will do anything.

    And everytime one of these scripts run, it spits out half a dozen warnings.

    I won't go into the horror stories, because I'd have to get too specific. But's its pretty disgusting.

    And he's not even a development manager!!! He's on the business side!

  192. The real business world by Chief+Crazy+Chicken · · Score: 1

    In real business programming, executive-level anything are so out of touch with any sort of programming or scripting that it all appears the same. Our VP of finance described once a project where an excel spreadsheet was modified as a programming project. To him, it was. To me, it was just a spreadsheet, and no more programming than typing a letter in word.

    The bottom line should always be -- does the program do the thing that the user needs it to do, thereby making their job easier, or even possible?

    The rest is just fluff.

  193. 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."
    1. Re:Yes, and partly language designers' doing by aziegler · · Score: 1

      Actually...

      It may not be well known, but Ruby is ten years old today (24 February 2003). Perl is 16 years old (1987). I'm not sure how old Python is. Unicode 1.0 was fully released in June 1992, five years after the projects started (mostly at Apple, apparently).

      Except for a few "gotchas" (which are, per Matz, part of what will be cleaned up on the way to Ruby 2.0), Ruby supports a lot of Unicode (UTF-8 at least) already, as well as other multibyte character systems (Shift-JIS and EUC, primarily, as it was originalyl written in Japan and is still primarily maintained there).

      The point is that Unicode is still immature (4.0 is on the way, but how many systems yet support 3.2?). I suspect that Ruby 2.0 will be fully Unicode compliant. (Even with Unicode compliance, of course, one still has to write programs to be compliant; language Unicode compliance is merely support.)

      -austin

      --
      Ni bhionn an rath achx mar a mbionn an smacht (There is no Luck without Discipline)
    2. Re:Yes, and partly language designers' doing by mparaz · · Score: 1

      How about JRuby? I've tried a little native Ruby. Now I'm looking for scripting languages for our Java-written tools. I already know Python and Jython.

  194. what should be considered scripting by moocat2 · · Score: 1

    One thought that I have been bouncing around my head for quite some while is what differentiates scripting from programming. It seems like many people use whether the language is interpreted at runtime or executed by the hardware/VM to differentiate. I feel that this is not a good way to make the distinction.

    My thought is that the issue isn't the language, but the "process model." The idea is that a program that does most of its work by invoking external executables is a script while a program that does most of its work by internals is not.

    So, code that directly reads the underlying directory is a program while one that invokes "ls" is a script.

    One of the things I like about this definition is that it fits the non-technical use of script as well. A script is a description of what the actors should do. If you consider the external excutables as actors, then this fits nicely.

    An interesting side-effect of this is that a language itself is no longer a scripting or programming language. For example, if you have a
    C program that looks like:

    main()
    {
    system("...");
    system("...");
    system("...");
    return 0;
    }

    then this is a script even though it is written in C.

    That said, some languages will definitely promote scripting by automatically taking an unrecognized word and trying to invoke it as an external process (sh, csh, bash and sometimes tcl). But just because a language might be designed for one style or not, it is the program that matters.

    1. Re:what should be considered scripting by KMAPSRULE · · Score: 0

      Very interesting take on the matter,, I work on a project that **almost** takes this stance, and it works pretty well. The project standard is C++ except for Ada and C reuse and its all glued together by a mryiad array of scripting languages. Basically the best languages for the job.

      --

      --Im an oven mitt, not an engineer! (SLArbys Radio Commercial)
  195. Re:Certainly not by Anonymous Coward · · Score: 0

    First of all, he was referring to XHTML, which is not the same thing as talking about XML in general.

    XML, as originally envisioned, was a way to send structured data from one database to another (i.e. "in situations where no human looks at the content"). It's being used exactly as it was intended.

    It makes no sense to anyone to send generic XML down to the client, unless it's in the form of HTML (i.e. XHTML). You send XML to another server, and it generates some pretty output to send down to the client. CSS is used to determine appearance, as it makes the HTML far easier to generate and less dependent on the program generating the HTML to make appearance decisions.


    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?


    Here's a hint : people who sell things generally don't like having thier prices compared en masse to a whole bunch of other people who sell the same things :)

  196. simple solution by L7_ · · Score: 1

    Change the way you think.

    1. Re:simple solution by arkanes · · Score: 1

      It's true. Good programmers think in code, at least when they're working. This is one of the signs of true geekdom. Note that this doesn't preclude scripters - when I was learning perl, I tended to think of solutions to problems in terms of perl. Now that I mainly work in C++, I think in terms of C++.

    2. Re:simple solution by azav · · Score: 1

      Changing the way you think?

      Sounds easy doesn't it?

      I've done a long term (decade long) examination of whether I should do this.

      1) If I'm to go to a bar and meet girls, I can't think like a geek. Not on the first date anyway. Life outside of code has worth too.

      2) Thinking like C++or javascript isn't comforting. It MAY be efficient when putting down the code BUT when dealing with a multitude of abstract concepts that I must implement, I find that I get the most and best work done when "it" can be expressed with the least mental overhead on my part. I get a better design and I get it faster since it comes more naturally.

      3) Debugging. We've been thinking in English for much longer than we've been thinking in code. When I revisit my code to fix lame crap, looking at it in an english manner makes me get it SO MUCH faster. I need not interpret what I coded, it makes sense more naturally. More self documenting.

      4) Other people must use my foundation classes/libraries therefore it behoves me to make my code as naturally explanatory as possible. Even including multiple layers if possible.

      5) Some people are GREAT at multiple syntaxes and abstract concepts. Others are more creative and artistic and rather poor at abstraction. From what I have seen, with the Lingo scripting language in Director is that it allows people from both skill types to get in and get complicated work done. I happen to be a mix of both, not stellar in either of the abilities. Where C++ was daunting to me, where pascal and javascript looked like it was made for geeks to confuse normal people, Lingo was close to the way I already thought. It provided a bridge into advanced complex concepts (OO design, etc). Now in Lingo I can use object.property but ya know, it just doesn't feel right and when I code foundation classes, what I'm doing has GOT to feel right or I'll produce material that (for many reasons) is not suitable and I can't afford that risk.

      Good topic. I like the discussion.
      Cheers,

      --
      - Zav - Imagine a Beowulf cluster of insensitive clods...
  197. 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.
  198. Re:Score -1: Idiot by Anonymous Coward · · Score: 0
    are you honestly comparing the plight of people who have suffered from racism to a stupid programming language


    I think its easy to compare your statement to a troll.
  199. 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 kin_korn_karn · · Score: 1

      don't forget job security. That Java program gave the guy a week on his status report. Your one-line sed script would have saved you time, but then they'd have to find something else for you to do, and if they can't, you are a cost center and you walk.

    2. Re:sh + sed vs. Java by pmz · · Score: 1

      don't forget job security.

      If choosing the right way conflicts with job security, then a new employer is in order. Companies that allow such wasted effort probably have limited days ahead of them, anyway.

      (Please, no repliess about wasting time posting to Slashdot)

    3. Re:sh + sed vs. Java by kin_korn_karn · · Score: 1

      that's an idealistic viewpoint. There are ways to waste effort while remaining productive. What you do is, you get good enough at your job to get any job done in a short period of time, and then you estimate much more time to do something than you know it'll take. That gives you many hours of slack while you surf, switch windows, and so forth.

      If your employer is sniffing your network traffic, this is more difficult, but THOSE are the kinds of places you don't want to work for.

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

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

    5. Re:sh + sed vs. Java by pmz · · Score: 1

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

      sed and awk get tricky when you get three or four parsers deep (e.g., make + sh + sed + sh in one file); however, even this shouldn't take more than a couple hours to straighten out. The person taking a whole week to do it was either fundamentally inexperienced with shell scripting (and interpreting man pages & O'Reilly books) or was experiencing the ever common 'brain fart'.

      One advantage of scripting is that two hours of rapid prototyping (i.e., trial and error) will usually be successful when all else fails.

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

  201. Re:Certainly not by medeii · · Score: 1

    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.

    You, sir, are mistaken. The original poster was talking about using modern web standards in place of kludgy code, and Microsoft is notorious for not supporting OR promoting those "real" standards. Their home page doesn't validate. I've yet to see any of their applications produce clean HTML or CSS. In fact, the only things that DO work consistently in Internet Explorer are things that break the W3C standards -- the flashy, IE-only effects that few people use but many people deride. Besides which, Mozilla supports those "modern web standards" much better than IE ever has. It boasts full CSS compatibility for Level 1 and most of Level 2; IE doesn't even support a subset of Level 1 correctly. I won't get into DOM support here, but Mozilla and other browsers beat the hell out of IE there, too.

    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.

    Again, you don't know what you're talking about. CSS dramatically reduces coding time, bandwidth usage, and maintenance problems to the point that stylistic changes are no longer a headache. Most browsers now support the majority of CSS L1 -- including IE 5.0+ -- and the sheer savings of selectors versus font tags is incredible. Even on "simple" pages, CSS is more efficient. I've never seen it interact badly with firewalls and/or a proxy server, since when it's done right it's linked as an external file just like an external script.

    You're also wrong to compare it to Flash. CSS is about styling content, not "exciting animated graphical effects." That's what SVG is for, and I suggest you read up on that. CSS has nothing to do with vector animation.

    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 [downside.com] 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.

    False. XML is not intended to be the de facto standard for web communication. It's intended to be a standard data format that multiple, different applications can understand (including human readers.) If XML were the be-all, end-all of a user's browsing experience, the W3C wouldn't be working on another version of XHTML. Moreover, just because you're not seeing XML data doesn't mean it's not useful. Sometimes, companies don't want consumers (or their competitors!) to have access to their inventories and prices. As for XML receipts, I've yet to see a program that does what you're talking about, to say nothing of one that a consumer could use without requesting help from a geek friend.

    Please, get your facts straight.

    --
    got standards? --- http://www.w3.org/
  202. A loaded question by Junks+Jerzey · · Score: 1

    I have never personally seen any positive or negative bias toward "scripters" (a loaded term). I have seen close-mindedness on the part of C++ coders, though. There's a tendency to plead Turing completeness, deciding that Python is just a subset of C++, so what's the difference?

    At the same time, I've noticed that the communities and forums involving languages that are easier to learn than C have a different flavor about them. For example, go through Usenet groups or forums about Delphi and Power Basic. Even though they're fine languages for Windows programming, there's the definite feeling that there are many more newbies and much less general programming knowledge.

    I also think this question is a bit loaded, in that it appears to come from a scripting language programmer who feels he should be on equal footing with C++ programmers. It's not "C++ is awesome! " so much as that you can't write embedded code in Python, or that Python is the wrong choice for the Palm environment, or that you wouldn't write a Game Cube game in Python. So, yes, the C programmer has more doors open to him than the "scripter."

    Even so, I remember when there was an Ask Slashdot about writing CGI scripts, and an appalling number of people said you should use C because "it is much faster."

  203. Reason for discrimination by Anonymous Coward · · Score: 0

    The 'scripters' who are just sucky programmers in disguise ruined it for everyone.

    Scripting languages tend to be powerfull and easy enough to use that they allow people who know hardly anything about programming to 'pretend'. All the ABSOLUTELY horrible code they continue to write has ruined it for everyone else.

    If you don't know C/C++/Java you are a serf. Management asks: did you really decide to use Python because it is the best tool for the job, or is it because you are a fucking incompetent? Usually its the latter.

  204. relative to the products and goals at hand by Anonymous Coward · · Score: 0
    most integration tasks do better to avoid deep or core programming unless you are adding and extending modules based on a robust and readily defined (and understood) API and/or external object model / messaging model. Whether the glue code is interpreted or not is really not the issue here, although the majority of time you ideally want a scripting language to avoid compilation for RAD assuming that interpreted language can do what you need. Aside from the difference between actual interpreted languages and compiled (or bytecode compiled / VM dependent) languages, it really comes down to the classic set of learning curve vs. the "new cool" features of language X, the support for certain functionality (CORBA, COM, XML parsing, etc) that a language has to support the environment vs. the convinience and availability of a more popular or supported language (thus giving up some functionality for the chance of stability and speed) and lastly the whole money and time issue of weighing these. I suppose part of the "what people are comfortable with" also can mean, "what does the majority of your developers use?"

    I can see how a discriminatory setup is established by those who really do not understand the engineering side of software systems. To them, the importance is getting that pretty buzzword class library or the actual implementation down so that they can say "they did that." Use what works. I have seen enough bad code, horrible (or none at all) planning, lack of clear architecture and just plain ol' bad development habits to make Bourne Shell seem a better alternative to whatever language these amateurs implemented. Remember that if you take a trained fighter pilot in a biplane and put him against a modern fighter jet with an incompetent fool... that fool is only going to win by severe waste of resources and perhaps only through a suicide run. The fighter ace will know how to get around their technical limitations and at least make the other idiot pay for any victory. I think before these organizations start barking about "scripters" being lower on the totem pole, they need to really figure out what it is they are wanting to accomplish. Buzz words do not a stable and secure (much less requirements satisfying) system make.

  205. Not a problem by Anonymous Coward · · Score: 0

    The people who think that way usually haven't a clue what tools you used to do it.

    Just write it in Perl in 20 minutes, use a compiler like Perl2Exe to compile it, then give yourself a 2 week vacation, come back and tell them you spent the whole time heads down doing it in C++.

  206. Or Ed... by Anonymous Coward · · Score: 0

    Remember, Ed is the standard editor.

  207. err... by ShrimpX · · Score: 0

    first of all, scripting and programming are not synonymous. you can "do programming" in an interpreted as well as a compiled language.

    now, i have a problem with people referring to java as being different than perl because perl is "a scripting language" and java is not. java is certainly not compiled. in fact, its bytecode stack VM is very similar to Perl's and Python's, the difference being that it's a bit more low level. java also has a much larger memory footprint than perl and an immensely larger startup time, (even _after_ bytecode generation, as the bytecode must be dumped to disk before the VM gets a chance to run) so it doesn't win there either.

    so what's the difference between 'scripting' and 'not scripting' here? static vs dynamic typing? heh. it just shows that this whole issue is bullshit to begin with. people are stupid.

  208. 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'
  209. Re:I guess I am biased against scripters as well.. by Synn · · Score: 1

    I think this is becoming less and less of an issue as the scripting languages mature.

    I've been using OOP design in PHP for several years now, and PHP 5 will have even better objectified design principles behind it.

    Python as a language is extremely modular, easy to read, and very maintainable.

    Traditionaly this hasn't been the case with scripting languages, as the code grew it bloated and was hard to work with(anyone here care to work with a 100k line bash or perl script?). And I think it'll be awhile before the new languages shake off that old stigma.

    But really about the only different between, say, php or python today and java is that the scripting languages don't force you to use a particular design principle. You're free to be as sloppy or clean as you like.

    And in a really big project there should be design constraints no matter what the language will allow you to do.

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

    1. Re:Government Contracts by Anonymous Coward · · Score: 1, Insightful

      I don't think anyone can disagree that Perl is not an appropriate choice of language for production systems.

      I almost didn't want to dignify your bait with a flame, so I'll bite anonymously...

      You don't think anyone can disagree with that opinion? Are you serious?! Do you think embedded Perl support in Apache and Netscape web servers is only for prototyping and non-production systems?

      It's possible, but I'm curious if you believe it.

    2. Re:Government Contracts by dougnaka · · Score: 1
      "Who'd ever want to use PERL in PRODUCTION?" he says without noting the URL in his own web browser...
      "http://ask.slashdot.org/comments.pl?...."

      Not a uber geek place like /.
      using ... gasp.... perl... in ... gasp .. production
      well I guess this isn't production, either that OR the .pl is just an extension, and in this case comments.pl is a just a compiled C program... with a .pl extension.. for backwards compatibility..

      give it up, production usable is a myth, plenty of systems widely used are extensions of trials or prototypes that were useful so people jumped on and then they couldn't be taken down becuase they were in production. The least you can do is write them in a language that is easy,fast,powerful,extensible, and let's not forget just plain cool..
      production is what works, it's like what language should you use? The one that can get the job done is the only correct answer. If it's perl, it's perl, if it's C, probably should look at perl again.. course if it's java... damn... did you even look at perl?

      I've yet to see a cool sig in C/C++, and I've seen dozens in perl...

      --
      My Linux Command of the Day site : LCOD
    3. Re:Government Contracts by hughk · · Score: 1
      but certain contracts let by the government contractually define a difference between 'coding' and'scripting'
      Um, why? I know that managing interferes with deep coding (lots of interruptions), but that shouldn't stop managers who can code from helping with some of the 'grunt' routines, especially with the tech leads. As far as I can tell there really shouldn't be a distinction except when the customer is specifying high performance (need for compiled code) or a scripted component to allow for simple customisation and extension.

      I don't think anyone can disagree that Perl is not an appropriate choice of language for production systems.
      Maybe not, but it (or another scripting language) definitely holds one heck of a lot of productions systems together. You can write obfuscated Perl, but you don't have to. You can also write Obfuscated C.
      --
      See my journal, I write things there
  211. Re:Certainly not by Anonymous Coward · · Score: 0
    Wow. You seem to be missing a basic understanding of what CSS is and how it functions.
    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.
    Man. It's like you just don't know at all what CSS is. And what's this load about "tend to work consistently only with Internet Explorer"? You're joking right. Have you had any experience with the IE implimentation of the box model?
  212. Let's do a comparison by BurKaZoiD · · Score: 1

    Perl or Python = anyone can maintain
    Obfuscated Java and/or C++ = job security

    'Nuff said

  213. Re:Certainly not by namespan · · Score: 1

    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

    I agree that differences in browser support for CSS can be troublesome, but there's a large majority of CSS techniques (even positioning) that work across most browsers. There are also a few clever hacks that can give you broad browser support. The only thing you really have to leave behind is the 4.x browsers -- and the page data will still be accessible (sans presentation) if you've done it right. Saying only IE supports CSS is nearly completely wrong.

    CSS is in a wierd niche - unneeded for simple pages, and too weak to do what Flash can do. If you really need exciting animated graphical effects (and you usually don't), Flash has far better capabilities.

    While CSS can be used to do animation and effects, that's not what it's really about at all. Comparing CSS and Flash is sortof like comparing a power saw and cordless drill.

    Most of what CSS is usually used for can be done on the authoring side, with Dreamweaver templates or something similar.

    With Dreamweaver? Hardly. Maybe the being able to change the whole appearance of a site at once bit. That's a nice side effect of CSS, but CSS is at core the second half of a semantic/accessible web philosophy. The first half is using XHTML/XML -- make your markup semantic. The second half is making presentation of markup purty and accessible in/across different browsers using styles. With Dreamweaver, semanticity isn't even a concern because it's all about visual manipulation of presentation. Not to mention you'll end up making a different version of each page for different browsers (or embedding conditional scripting) andyway.

    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 [downside.com] to do just that for SEC filings, but apart from one obscure client program nobody uses, nobody downloads data that way.

    RSS feeds. XML-RPC. I agree that XML isn't used at all as a human readable format, but disagree that means it has failed (or that it was meant for that purpose). XML is a data exchange format for heirarchical data. It's working to exchange data between websites, outside of organizations somewhat, but more inside because most commercial orgs are a little iffy about just giving away their information in an uncontrolled way. We'll see more of inside and outside exchange (though again, more of the former) as web-service enabled applications become more commonplace.

    --
    Libertarianism is rich wolves and poor sheep playing gambler's ruin for dinner.
  214. The person vs the tool by jlazzaro74 · · Score: 1
    It is possible to use C/++ for scripting, and it is possible to use nice OO Perl for programming. It is really about the skill level of the author and the specific requisites of the task at hand.

    That said, I use Perl and consider myself a programmer, and I deeply shun Visual Basic users, those dirty little scripters. I suppose the bias runs deeper than logic can defeat, after all, everyone has to have an enemy. It's human nature to need someone to look down on.

    -Joe

  215. Not really... by Anonymous Coward · · Score: 0

    I use C, PHP, and BASH. At first, the managers did not know anything about scripting. Once I showed them how well you can automate labor intensive tasks, they fell in love with it.

    Teach your managers when and when not to use scripting. They will see saved $$$ and love you for it. If you can't do that, you're not right for the job (or vice-versa.)

  216. Sorry, misread the question by Anonymous Coward · · Score: 0

    I totally mistook the question for "Do strippers suffer discrimination?"

  217. Scripting is like pornography... by Anonymous Coward · · Score: 0

    I know it when I see it.

  218. Re:Script kiddies should be fired by Anonymous Coward · · Score: 0

    You keep using that word. I do not think it means what you think it means.

  219. 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."
  220. Apple does get it, idiot. by edw · · Score: 1

    My Apple II+ came with a reference manual that contained all of the firmware's assembly source code (not including AppleSoft BASIC, which was copyrighted by MS).

    Apple wanted to ship MacBASIC with the Mac 128K, but MS held a gun to the company's head (kill MacBASIC or no business apps) and Apple complied.

    Apple shipped many Macs during the '80s and '90s with HyperCard, a tool that turned tons of people into Mac software developers.

    In the mid '90s, Apple shipped every Mac with tools for writing programs in AppleScript, a language that uses the Open Scripting Architecture to allow people to with relatively little pain fully automate OSA-compliant applications.

    OS X 10.0 and later shipped with a developer tools CD that contained classic Unix development tools as well as Interface Builder, Project Builder, and everything else necessary to create world-class applications for OS X.

  221. A VP Confesses by volts · · Score: 1

    Once upon a time, a very competent software architect I worked with warned me about this evil thing called PERL - a scripting language that was inherently unstructured and unmaintainable, and that tempted the impressionable from the path of good coding with the temptation of instant results.

    This input influenced my attitude and aligned nicely with personal exposure to shell scripting back when I actually coded in a meaningful way. I think that much of the negativity at senior levels in some companies relates to memories of the days when a few fools tried to do way too much in the shell.

    In reality, dynamic languages like PERL and Python aren't really 'scripting languages' in the sense that the C shell was/is. But they are hard to comprehend if your mindset is "compiled" versus "script". There is a weird beauty to what "my" does that is hard to grok if you come at it from a statically compiled perspective. So it may take some explaining to persuade the skeptical.

    At the end of the day, if senior management hears that you have a better approach that isn't going to bite in the long run it will probably be sanctioned.

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

  223. No. by bellings · · Score: 1

    I'm a "real" developer. Frankly, I have no idea what a "scripter" is.

    When I decide which language to use for a problem, I very rarely ask "which language will make this problem the easiest to solve."

    I almost always ask "which language will make this solution the easiest to support."

    Sometimes I reach into my toolbox and find a "scripting language" to do the job at hand. Sometimes I reach into the toolbox and find a "real languages" to do a job at hand. But, the language chosen is hardly ever a barrier to solving a problem.

    I have to wonder what a "scripter" is. Is it someone who doesn't think about "supporting solutions" but instead thinks about "solving problems?" Then certainly there would be a difference between the type of job given to a "developer" versus the type of job given to a "scripter", although I can't see how the difference would be negative.

    Or, is a "scripter" someone who's so incompentent that they only know one or two languages, and couldn't be bothered to learn more even if the job at hand demanded it? Then, I can't see what good a scripter is at all. I guess they could have the shit jobs that real programmers don't have the time to do, or something.

    --
    Slashdot is jumping the shark. I'm just driving the boat.
  224. Is that pigeon sh*t in your eye? by BurKaZoiD · · Score: 0, Troll

    as scripting languages require less total code

    Tell that to the ravenous VBScript/ASP f*cktards I work with. Jesus Christ, I think these guys have exhausted every possible variable name of all time in their code, in every application they write! The mere mention of instrinsic functions and they get that glassy-eyed stare. And, trying to get these people to write code using VBScript classes (for re-use) is like trying to pull teeth from a Gundark. MIS majors should NOT be allowed to code. (I didn't hire them).

    1. Re:Is that pigeon sh*t in your eye? by Anonymous Coward · · Score: 0

      Gundark? I'm guessing that glassy-eyed stare you're getting isn't due to them not understanding you...it's wondering how the hell such an esoteric elitist ever got hired in the first place.
      [snnzeettt][grrrrk][wizzzakk]

      Get thee behind me, Dork Burkazoid!

  225. Scripting too easy to learn.. by telbij · · Score: 1

    I think the elitism arises because scripting languages tend to be so easy to learn. Aside from basic technical intelligence, what really differentiates a good programmer is a lot of experience with the various algorithms, security issues, and obscure interrelations between various components.

    The easier a language is to learn, the sooner someone can start writing code, and the more ignorant they likely are to important issues that could affect their program. So the elitism is based in the statistical reality of the relative low quality of scripts out there.

    Of course, a programmer who discounts the usefulness of scripting languages or the skill of scripters outright due to that fact is incredibly ignorant and possibly has self-esteem related to others who have done more than just program computers in their past.

  226. All I Know Is This... by Master+of+Transhuman · · Score: 1

    I'm learning C++, Perl, and UNIX shell scripting.

    For my class projects, I find C++ easy to program in (a little harder now that I'm learning various data structures/ADT's, but still...).

    Perl seems to be a very "sensitive" language - meaning I touch the program and it breaks.

    Shell scripting is a fucking nightmare! It takes days to do anything whereas all my C++ projects are usually done in one day, two at the most.

    My conclusion: it depends on whether the language is a "well-formed" language with consistent syntax and semantics and a decent selection of basic data types and operators and functions. C++ is the most mature and well developed of the languages. Perl has some things I'd like to see C++ get, but otherwise I'm starting not to like it. And UNIX shells are a barnacle-like accretion of twenty-year-old shit...which needs to be totally redesigned (or better, scrapped altogether in favor of more modern scripting languages like Python or even Perl... It's no surprise to me that many sys admins use Perl over shell scripting these days...)

    One problem which affects this is the quality of the teaching materials. C++ has a wealth of books and teachers who know the language and can communicate it with some precision.

    Perl has a number of books but they aren't deep or precise and rely on "learning by example" which is okay for getting up to speed but useless as a reference when you run into the details of the language that fell between the cracks - like keyboard buffer handling...

    Shell scripts apparently depend entirely on "trial and error" learning and until you have at least five years of experience using it, you can't know it well enough to be sure you're using it correctly. And the teachers are all UNIX geeks who think this is the way it should be...

    --
    Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
  227. It goes both ways by bkocik · · Score: 1

    This goes both ways. I work on a team of SysAdmins and DBA's, and I use shell, perl, C, C++, and even Java for various things. On my team, I'm the only guy who knows C++ and Java, and one of two who knows C. Everyone else gets by with shell and perl (which is fine).

    Now, I'm guilty of discriminating against the "script kiddies", but they started it. Some of them believe that perl is the end-all be-all language, and anything else is crap. You should especially hear them moan about Java. So, when they started bagging on me about writing some things in Java, I started bagging on them about trying to do everything in perl. I'm all about using the right tool for the job, but when I'm attacked because I'm not using someone's pet language, I fight back, and I fight dirty.

    I've taken to referring to them as "script kiddies" and "knuckle-dragging perl programmers", even though I use perl myself.

    As you might guess, I'm real popular around here. But like I said, it goes both ways. And they started it, dammit... =)

  228. My opinion by Anonymous Coward · · Score: 0

    I learnt the basics of coding through scripting, and I still use it both at home and in my job. That is, Perl, shell scripting, python etc. However, anyone who understands C can certainly appreciate and love the power of the language in most environments.

    IMHO, it depends on what you're developing. For some things... scripting is just a better choice, and often, people are _told_ what to use, it's not a choice.

    Yes, coding C probably does require more intelligence then coding PHP, it probably takes double the time to learn and implement for most people as well. Most people who use C out of choice are control freaks ;)

  229. Re:Certainly not by arkanes · · Score: 1

    I know I'm not supposed to, but I do anyway. That said, MOST of the time, I'm using it for tabular data anyway, so I don't worry too much about it. CSS works fine for simple things like the proto-typical sidebar + content layout. It's crappy with any sort of complex positioning, though.

  230. Hehe by Anonymous Coward · · Score: 0

    Loosers feel discriminated because they are loosers, that's funny :-)

  231. Safety Requirements by mekkab · · Score: 1

    So we write code that people's lives depend upon. Realtime systems have huge safety requirements.

    We have taken scripts written in PERL and painstakingly moved them to C for this very reason.

    P.S.- getopts() sucks equally in PERL and C! ;)
    I just wrote code around it.

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
  232. Should this guy be taken seriously? by tundog · · Score: 1
    '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.'

    While any scripting language offers advantage over other languages with respect to parsing et al., any Programmer that takes weeks to do something in ANY language when it would only take a few hours in another language is not worth his salt. It's a matter of how well you know the libraries in the language you implement that makes the differece. While something might be quicker and easier in Perl, if it takes you weeks in Java, then the chances are you learned Java from either "Java Programming for Dummies" or the "Java in 14 Days" series.

    --
    All your base are belong to us!
    1. Re:Should this guy be taken seriously? by PigleT · · Score: 1

      Yes, I also thought the remit of a programmer was to use the best language for the job - if a low-level language gives speed for an "inner loop" bit of your opplicotion, consider that optimization but if a decent high-level language provides the glue to fling these things around constructively, go for it.

      I've heard the view that the Gimp might not be the nicest of graphics-editing programs, but you've still got to appreciate the combination of lots of low-level C functions for speed with the use of scheme (SIOD) on top to allow you to stick ,em together.

      However, that doesn't stop some people from inflicting their bad experiences with a particular language or means of development on entire departments - to the detriment and segfaults of all :(

      --
      ~Tim
      --
      .|` Clouds cross the black moonlight,
      Rushing on down to the circle of the turn
  233. except ... by Anonymous Coward · · Score: 0

    java *can* be compiled into assembly language.

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

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

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

    1. Re:Actually the right way is to use both languages by cbare · · Score: 1

      This is right on.

      A really good programmer should know at least one lower level so-called "real" programming language and one scripting language. It's even better if the two languages are compatible in that modules for the scripting language can easily be written in the low level language and conversely, the scripting language can be embedding in applications written in the low level language.

      Not only does this give you the right-tool-for-the-job advantage, but also allows a large system to be divided in parts suitable for either tool.

      Good combinations that I know of are:
      C and Perl
      C++ and Python
      Java and Python

      I'm sure there are plenty more.

      --
      -cbare
  237. Perl Unicode Support by Dom2 · · Score: 1
    Perl has excellent unicode support. Yes, it wasn't 100% in perl 5.6, but the 5.8 release is incredibly useful. We've done xml sites with hundreds of megs of articles and the unicode absolutely had to be right. Perl didn't let us down once. Like your example of Java (although plan-9 did it first), Perl supports Unicode in its core. Strings are natively unicode and regex matches and all string operations are done on a character basis, not byte, by default. You can lexically switch into byte oriented mode if you need to though.

    -Dom

    1. Re:Perl Unicode Support by GCP · · Score: 1

      Perl is a difficult example because it started off before it was reasonable to base it on Unicode, and "linguist Larry" went years after Java showed the way thumbing his nose at Unicode, then becoming a convert so fast that the rest of his flock got pretty confused by the sudden switch. His conversion, he says, was not because the Unicode idea of working in sequences of universal characters was better than arbitrary byte sequences, but because XML was based on Unicode, and he felt he needed to catch the XML wave.

      I remember the last time I heard Dan Sugalski give a talk, he listed some absurd reasons why Parrot wouldn't be Unicode based, e.g.: "Because not everybody collates in the same order", as if the encoding determined collation order. One wonders how the Europeans, with so many different national collation orders, could possibly share a single Latin-1 encoding. But no, that was one reason why "they had decided" that Parrot wasn't going to "impose Unicode" on anyone.

      In the meantime, Larry keeps announcing more Unicode-related goodies, so who knows what the attitude will be by Perl 6.0. Maybe Dan has changed his mind, too. I haven't heard.

      I use 5.8 for manipulating existing bytes because I have to untangle the bugs caused by people using non-Unicode tools (like traditional Perl), but for new systems I go with something like Java, where there isn't more than one way to do it. There's just one: Unicode.

      I wasn't aware that in 5.8 the default had changed from "use bytes" to "use utf-8", though, so I'll remove those "use utf-8" lines and see what happens. If so, it sounds as though Perl is aiming to stop simply processing other systems' data and to become a full platform in its own right, like Java or C#. A switch to being all-Unicode (even with legacy and I/O exceptions) is something I would expect of a language trying to move up to running its own show. I hope Larry can convert the flock, if he hasn't already.

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  238. True. True. by Thuktun · · Score: 0

    I've found this true to a certain extent where I work. I'm mainly a C++ developer, but in the past have used PHP, Perl, Tcl, and various shell scripting languages. My current company writes server-side software for mid-sized businesses.

    A good example was a couple of months ago, when we needed to process a not-quite-XML file into a well-formed XML document. I suggested a Perl script with a very simple regex that would solve the problem. The Powers That Be decided it would be better to have a different developer (who had the time) spend days building and testing a custom C++ reformatter application rather than less than an hour building and testing a Perl script.

    To be fair, some are reluctant to ship scripts because not all clients might want to install the scripting interpreter, but some of this is from FUD about scripting being some kind of back-door into the system.

  239. ... same base skill: logic by Artful+Codger · · Score: 0, Offtopic

    Yes programmers get more prestige... so I became one. Employers provided the opportunity to learn Java, so I did. Nonetheless, although the "programmer" tag gets me in the door for jobs, the additional scripting stuff (Perl, Javascript) often adds real value.

    But good code is good code. A good scripter is more valuable than a bad programmer.

    What really gets me is how out of the vaunted realms of "programming" has come some godawful bastards like XSL syntax and struts logic tags. They are seriously fucked up.

    --

    ... plans that either come to naught, or half a page of scribbled lines...
  240. Re:Why? 'cos Perl sucks by Anonymous Coward · · Score: 0

    I don't see how that is the fault of Perl.

    How about because Perl allows it?

    Yes, other languages allow someone to produce unmaintainable code, but Perl takes this to the nth degree (motto: "there's more than one way to do it"), resulting in each programmer having his/her own style - a style which is going to give anyone else an aneurism.

    Other high-level languages enforce some degree of structure on the programmer. Perl seems to allow pretty much anything (how about the ability to do an if-then, but putting the then at the beginning?)

    If Perl didn't allow some of it's more brain-dead constructs, maybe it wouldn't have such a bad rap.

  241. It's not just scripters! by Anonymous Coward · · Score: 0


    As a VB6 programmer, I find that a lot of other programmers look down on what I do. They say that it's not real programming because it's not "object oriented" and it "leaks memory like a sieve".

    If you want to talk about language bigotry, start with those nasty nasty Lisp Programmers!
    </sarcasm>

    In all honesty, a lot of the problem is that scripting languages have a history of resulting in code that isn't well written and therefore isn't maintainable (like VBScript). While this doesn't matter for a lot of us -- we have to adjust to the needs of the business so an archaic code base is as much of a liability as an unreadable one -- it does make it difficult to sell to the program managers... "We could get this project up to date using Python in half the code, bugs and time." "What's it in now?" "VBScript." "Bah, just another scripting language we'd have to support."

  242. It's all a matter of level by PimpNinjaWannaBee · · Score: 0

    It only make sense to solve a problem on as high level as possible while still getting a satisfactory result. Scripting is on a higher level since it uses more of the system at hand. "Ordinary" programming is on a lower level and therefor (most of the time) more efficient but it takes more time to write it. So if you don't need the extra performance; go scripting!

  243. 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.
    1. Re:Technology choices are seldom rational by algebraist · · Score: 1

      Yeah, business decisions are often made for the strangest reasons, like what pot of money can be used to pay for it.

      --
      Jan Theodore Galkowski, (Oo) http://www.smalltalkidiom.net/ MySQL,PHP,ETL,SQL,MinGW C, and plucking the Web
  244. Brings back memories by mschuyler · · Score: 1

    I wrote an entire accounts payable/payroll program which was run by six different organizations for over ten years and accounted for 1/4 billion dollars over that time--in dBase. It had many dozens of tables and thousands of lines of code, but it 'wasn't a real program.'

    --
    How about a moderation of -1 pedantic.
  245. perl is a real language by sbwoodside · · Score: 1

    Certainly perl is a programming language not a "scripting" language. Maybe at some pointin the far distant past, it was just a scripting language since then it's become a full language (for the LOG -- use strict!!!!!)

    Then of course there's languages like XSLT, that are considered "doable" for beginners. In fact, a lot of experience shows that beginners have an easier time picking up XSLT than most programmers. Because, as a functional language it takes a totally differnt programming style, one that newbies can pick up pretty easily (XSLT really is pretty simple language) but people flush with the paradigms of procedural programming can go down the garden path and wind up with broken, broken code really easily.

    So are people who only program in XSLT programmers? I know a few who feel like they aren't, even though they're perfectly handy with functional programming, because they've never done procedural. IMHO that's BS, they're just as much of a programmer as someone who only does C++. IMHO more since C++ is such junk ;-)

    simon

    PS Use Objective-C ;-)

  246. stupid distinction by Anonymous Coward · · Score: 0

    Duh.... you write the parts that have to be fast in code that compiles to assembly. You write the code that binds it all together in scripts. That way you end up with fast little nuggets and reconfigurability!

  247. Strong vs. Weak Typing by stand · · Score: 1

    Aside from the usual compiled vs. interpreted divide, a lot of the differences between programming and scripting languages boils down to strong vs. weak typing. A recent Guido van Rossum (of Python fame) interview was a real eye opener for this primarily programming language coder. For instance:

    In a strongly typed language, when you change to a different data structure, you will likely have to change the argument and return types of many methods that just pass these things on. You may also have to change the number of arguments, because suddenly you pass the information as two or three parts instead of one. In Python, if you change the type of something, most likely pieces of code that only pass that something around and don't use it directly don't have to change at all.

    He goes on to talk about how, as a consequence of this, your scripts are much shorter and easier to read. Of course, one man's flexibility is another man's "coding without a net", but van Rossum makes an important point here that I think gives a huge advantage to scripting languages like Python.

    --
    Four fifths of all our troubles in this life would disappear if we would just sit down and keep still. -C. Coolidge
  248. As always, use the right tool by ummit · · Score: 1
    Me, I'm what you might call a "high-powered C programmer", but a huge portion of the coding I do -- and this definitely includes the day job -- involves shell scripts. (And when I drop down into C, it's usually to write a new general-purpose tool for one of my scripts to use, not to write a special-purpose C program for solving one problem.)

    Of course, I have the luxury of working for a small company where we can choose to use what works, not what's dictated by some myopic corporate standard.

    But anyone who discriminates against a "scripter" -- (first time I've even heard the term) -- is an idiot. It's pathetic how much time is wasted on handcrafted "real programs" which are 90% wheel reinventions, when a competent programmer could whip together a script in 10% of the time.

  249. PHP is a steaming pile by Anonymous Coward · · Score: 0

    Your friend is right. PHP is a STEAMING PILE! It won't last the test of time.

  250. On a lighter note by Beatnick · · Score: 1


    He missed a closing parenthesis in the first sentence. ;)

    1. Re:On a lighter note by Cid+Highwind · · Score: 1

      He missed a closing parenthesis in the first sentence. ;)

      Oh good, there's a compiler in the crowd tonight!

      --
      0 1 - just my two bits
  251. Configuration Management Needed by Anonymous Coward · · Score: 0

    I believe that in overall this is true, but in my experience it has to do more with configuration management (CM) than with programming. Usually, scripts are used to perform a given task on a system/network without any documentation, and sometimes without anyone but the author knowing about it. I've been in situations were a group of systems is performing a bunch of different tasks using scripts, including modified systems scripts, based on different scripting languages and if you touch one script the whole overall system crashes, and the authors of the scripts were long time gone. I think that if scripters would formally document their code and follow a sort of CM process, things would be completely different. But that's usually not the case!

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

  253. 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?
  254. Agree 100% by Tsu-na-mi · · Score: 1

    I came to the same conclusion with my current project (online database/data editing/analysis system). It's written in 98% Perl with some pieces in C++. Perl+Inline is perfect for this.

    We had the following tasks to perform:

    - Web interface for upload/editing/etc.
    - Store fairly large amounts of data in XML format
    - Create analysis in PDF format for download and HTML for viewing
    - Create images of analysis for PDFs and web site

    We decided the best solution was to use existing, proven tools as much as possible, and glue them together in Perl. MSIE as our 'client app', PS2PDF to create PDF files, gzip to conserve disk space, and a host of other common linux command-line tools for various minor tasks.

    The only real problem was image creation. We had very specific requirements, so we wrote custom code for this. However, as Perl lacks adequate memory management, not to mention SPEED, those parts were written as a standalone C++ app. I later learned how to use Perl Inline, so it's now a library of subroutines. Same speed (faster even), and more flexibility.

    Programming languages are a toolbox. The situation disctates what is the most appropriate tool for the job:

    Need rapid development, and frequent changes? Web interface OK? Need complex data structures native to the language (hashes for example)? Use Perl or some other scripting language.

    Massive memory requirements and speed a priority? USe Assembly, C++ or some other compiled language.

    Someone already made a tool (or combination) that will work -- write a shell script.

    --
    I've built up so much character I have an alter-ego
  255. NO! Not csh! by sparkz · · Score: 1

    http://www.faqs.org/faqs/unix-faq/shell/csh-whynot /

    --
    Author, Shell Scripting : Expert Re
  256. There is a reason why. by Anonymous Coward · · Score: 1, Insightful

    The "real programing languages" Like Java, C++, and even (cring) are taught in colleges and will be for a long time to come.. Okay maybe not VB. Scripting tends not to be. It is something that talented people tend to pick up on there own.

    In a big company you have to think long term. What if perl goes out of style? What if Python sort of goes away over time? Where will I find someone to update this cool but critial script?
    My company does use perl for a few utils here. I wrote most of them. I had a person that wanted to do a project in Foxbase. I told him no. He could do it in Java. I can not depend on him being here and I do not want to learn Foxbase.
    Scripts are great of one offs and small utilities. I agree that for big projects the standard languages like C++ and Java are the way to go.Each tool has it's use. besides if you are a hot perl programer than you should beable to pick up java or c++ pretty quick.

    1. Re:There is a reason why. by janda · · Score: 1

      An anonymous coward managed to write:

      I can not depend on him being here and I do not want to learn Foxbase.

      Bigot. If FoxBase is the best language for the application, it's in the best interest of your employer to fire you and find somebody who will work for them, not for a paycheck.

      My initial reaction is that FoxBase wouldn't be a good language choice if this occured in the last decade, but "I don't want to learn" is not an acceptable answer when choosing development tools.

      --
      Karma: Food Fight (Mostly affected by Date Plate).
  257. Classifying languages by drxenos · · Score: 1

    Where in Hell did many people here learn that the delineation between what is a scripting language and what is not, is whether it is interpreted or not??? I *may* give you that most or all scripting languages are interpreted, but just because a language is interpreted does make it a scripting language. I wouldn't consider Java, Lisp, Basic, Prologue, et. al., scripting languages by any stretch of the imagination! And the fact that these languages now have compilers that generate native code makes no difference.

    --


    Anonymous Cowards suck.
  258. 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.

    1. Re:Supportability by vague · · Score: 1

      But, they may well have saved money because they prototyped the project in a language suited for prototyping before committing to the larger project. They may very well have gotten a better product in less time as a result.

      --

      -
      Listen. Strange women lying in ponds distributing swords is no basis for a system of government.

  259. A little story by Anonymous Coward · · Score: 0

    When I was in a contest in our Senior Project, we had a fight. And the source of the fight was really that we weren't going anywhere -- we didn't know where to go. A major part of the problem was that our leadership and our development model [that is, how *we* interacted] wasn't right for the task. Anyhow, we went to our prof, and said "We can't work together." So he asked about what brought this out, and we argued in front of him for a while. Then he said "Pick a new leader. I'm sending you back to work together, because the team that fights first usually wins." Anyhow, our leader before had been a free-wheelin car-salesman kindof a guy. I feel good, you feel good, let's all get along and somehow make this come out. So for our next leader, we picked someone who was in the ROTC, and just a little bit of a jerk. It was perfect. We needed a jerk at that moment, and he stepped up to the plate, and we *all* hit a home run. Anyhow, good luck. Don't be discouraged. Maybe after the current round of fights, things will settle down in a *good* direction. And maybe you'll see that, and rejoin, but realize "hey, I'm not cut out for the directorate. I'm happiest on the sidelines." Who knows.

  260. Maintenance by gidds · · Score: 1
    The proverbial `right person', though, isn't someone who just gets something working the quickest. He or she is also the person who writes code that has fewest bugs, copes best with unforeseen circumstances, and is easiest to enhance, fix, adapt, &c. By other people.

    Of course, you can write unmaintainable code in any language; but some scripting languages can make this much easier, which is why they're sometimes a poor choice. Since (IIRC) on average, something like three times as long is spent maintaining code as writing it, bashing something out quickly is often a false economy.

    And of course Real Programmers care about the quality of their code. Don't we?!

    --

    Ceterum censeo subscriptionem esse delendam.

  261. Those aren't scripting languages... by Anonymous Coward · · Score: 0

    ...we're talking about things like Python, Perl, etc. They are sort-of replacements for "real" programming languages in certain situations.

  262. What? No, no, no by sbwoodside · · Score: 1

    Scripting is interfacing, tying things together on a higher level. Programming is functionality, algorithms and such

    What? No, you're wrong. Scripting is programming with loose typing, non-declared variables, interpreting instead of compiling, and plenty of syntactic sugar to make common tasks easy to type. It has nothing to do with, well, whatever you're talking about.

    Lots of good programmers stick to glue code. Heck, if you've got a good API, you can write highly sophisticated /programs/ without implenting a single algorithm. Take the Cocoa/Objective-C combination. Are you telling me that people write in ObjC to tie together some classes, call some command-line commands and show the results in friendly UI are scripting?

    The smartest programmers write as little code themselves as possible because they know it's better to leave that to the specialists. That's laziness -- spend your time researching the APIs you can use, not coding, and you'll get a better impementation because the API owner is far more knowledgeable about the specific problem than you are. Also, that shifts responsibility for updates to someone else and gives youthe benefits of free fixes and updates without doing any coding yourself.

    Of course, the laziest programmers are also the most efficient and productive because they're using leverage, instead of doing all the heavy lifting themselves. They're also using languages like perl, that has CPAN, the huge library of easy-to integrate modules. There's a good reason why "laziness" is a part of the perl motto, "laziness, impatience, hubris"

    simon

    1. Re:What? No, no, no by kiolbasa · · Score: 1

      Sounds like we completely agree with each other, except, of course, for my somewhat abstract and non-traditional use of the terms "scripting" and "programming" in that post. That's OK, because I was elaborating from the context of the parent post. I was referring to interfacing, which is something that "scripting" in your sense handles nicely.

      --

      Beer wants to be free
  263. Bingo by Anonymous Coward · · Score: 0

    So true. So often I've seen one page perl scripts declined for hundreds of lines of Java. It is insane and wasteful.

  264. 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.
  265. 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.
  266. yes, but your arguments lacks validity by Anonymous Coward · · Score: 0

    CM is used by any professional organization (defined not by whether they get paid or not, but by the standards and ethics in place) but to say that "Usually" in your statement is incorrect from my experience. Actually it is quite the opposite. Good program managers realize that regardless of the specific implements used, the importance of maintaining a good team environment through coordination and communication is what is the key here. I would love to be on a "team" that is not full of incompetent buffoons regardless of the language they abuse.

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

    2. Re:Wtf is a 'scripter'? by Anonymous Coward · · Score: 0

      I agree with you on your basic premise of programmer flexibility. However, two points:

      First, one could argue that *all* java programmers are incompetent by default. You really should give Python a try. Yes, that was a cheap shot, but I really mean the latter part. Python is astoundingly excellent.

      Second, you really should fix the search engine on your site. Find a good scripter! ;)

    3. Re:Wtf is a 'scripter'? by cr0sh · · Score: 1
      If they can only handle a few scripting languages like Perl or Visual Basic then of course they should be discriminated against.

      You seem to be ignorant about something: both Perl and VB are Turing Complete languages, plus VB is a (native) compiled language since version 5, and if you count P-code, since forever (if Java is allowed to be a compiled language yet run on a VM, why can't VB P-code be considered compiled? Also, the VB compiler runs a couple of steps, first a translation of the code into something the VC++ compiler understands, then the compilation is done using the VC++ compiler (since version 5, and when native compilation is enabled). Hell, there may be a Perl compiler out there somewhere as well.

      What I am trying to get at is there isn't any difference between most "programming" languages and "scripting" languages - they are all programming languages - it does not matter if the source is directly interpreted, compiled to p-code (or other byte-codes) and interpreted, or compiled to native machine code (which, BTW, is on most current processors *still* interpreted - ever hear of microcode?). There are scripting "languages" out there that have the C/C++ syntax - would a C scripter be any less of a application developer than a C programmer? Any language can be a scripting language, and just about any scripting language can be a programming language.

      The only types of scripting languages that anyone could even think about rightfully "sneering" at would be a non-Turing Complete one - but in the end who gives a care if the application is developed, works, and satifies the client's needs? THAT is what matters in the end.

      Oh, and BTW - I code in VB, and very well I might add (among other languages I know - I am programmer first, VB coder second)...

      --
      Reason is the Path to God - Anon
    4. Re:Wtf is a 'scripter'? by J.+Random+Software · · Score: 1

      IMHO a "scripting language" is more about style of use than implementation strategy. They tend to play fast and loose with data types, declarations, and error handling. Perl is probably the canonical example, filled with quirks like "xyzzy" not being false even though it's equal to zero and zero is false. You can very quickly produce a script that usually works if its input is well-formed, but you have to be extemely paranoid to make it robust--which is about as much work as using a rigorous language would have been.

  268. 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).
  269. Re:Mountains and molehills.. (Python apologia) by arkanes · · Score: 1

    Well, I dunno about Python, but it's pretty easy to write 3 lines of Perl that can't be decoded even by someone with years of experience in perl, much less someone who doesn't know it at all. You can do the same in C/C++ and many other languages, of course.

  270. 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.
    1. Re:Oh please by Anonymous Coward · · Score: 0

      If you didn't dope the semiconductor yourself, you didn't do shit.

    2. Re:Oh please by Anonymous Coward · · Score: 0

      Transistors? Oh please, that's no excuse. Real programmers use valves and magnetic core for their computations. Enough of this phosphorescent glow or from the TFT loving environmentalists, everyone knows punch cards and printers are the true INPUT/OUTPUT.

      Everything invented after relays introduced bugs. You do know about where the first computer bug was discovered in history? It sure the hell didn't find itself in a vacuum tube.

  271. 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//

    1. Re:HEY! Who has the Authority here? by hughk · · Score: 1

      The client may specify implementation languages for the deliverables but the other issues are maintenance and code reuse. However most programmers can maintain most scripting languages, but the converse isn't always true. Managers may care about this.

      --
      See my journal, I write things there
  272. bah! by Ender+Ryan · · Score: 1
    It all depends on exactly what you're doing! And don't forget, Perl is not the only scripting language, some of your arguments don't apply to others.

    And then there's C... Come on... void * anyone? C++ template syntax, unhelpful compile-time errors related to templates, ABI incompatibilities, etc. For every maintainability problem in any scripting language, there's another to be found in a compiled language.

    Languages are different, and lend themselves to (un)maintainability in many different ways. There's more to maintainability than type checking and OO. In fact, type checking is so overly rated by "compiled language bigots"; I can't count how many times I've see code passing the right type, but the totally wrong thing, and I can count really high! :) Furthermore, many scripting languages have a so much more elegant OO approach than C++ et al`.

    I never said Perl, or even scripting languages in general are fit for every job, quite the contrary.

    Just because everyone and their mother started doing scripting when the WWW became popular, writing the most awful code ever, doesn't mean scripting languages are inherently less maintainable than compiled languages.

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
    1. Re:bah! by martyros · · Score: 1
      It all depends on exactly what you're doing! And don't forget, Perl is not the only scripting language, some of your arguments don't apply to others.

      Yes, I agree! The system I'm working on now in fact uses about half C (for stuff in the kernel, and stuff that talks to the kernel) and half bash scripts. It's just a whole lot easier to make bash do some things than to write it in C (or even in perl, which is what my boss wants). I'm hoping my scripts are self-explanatory enough that anyone else using them can at least figure out what they're doing and hack them do do what they need, even if they're not fluent in bash.

      I didn't mean to make it sound like I was bashing scripting (no pun intended). I use scripts extensively, and there are places where they really shine. Certainly compiled languages have many things lacking, and many people use them in ways which completely negate any advantages they have.

      But seriously, what's the biggest, most complicated program written in perl, compared to the biggest, most complicated program written in C/ C++ / Java? How maintainable is a large (>10,000 line) *well written* program in perl, compared to a *well written* program in Java? That was exactly what the original poster said:

      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.

      People writing bad code, in perl or in Java/C++/etc, are beside the point. Per'aps we have different ideas of what "small" means...

      --

      TCP: Why the Internet is full of SYN.

    2. Re:bah! by Ender+Ryan · · Score: 1
      I didn't mean to make it sound like I was bashing scripting (no pun intended)

      Pun intended or not... :)

      But seriously, what's the biggest, most complicated program written in perl, compared to the biggest, most complicated program written in C/ C++ / Java?

      At some point, any scripting language would probably get really unweildy after growing too large. But FWIW, FYI, etc., I have written and maintained some ~10,000 line projects written in Perl, and kept them maintainable. But I'll definately agree that at some point, they probably would become difficult to maintain, not to mention perform like a dog with bricks tied to it's head.

      Anyway... I think maintainability is a very insignificant thing to worry about when chosing between a scripting language and a compiled language, other language features are generally much more significant. But that's not to say that for certain projects, maintainability could be a huge issue in chosing a compiled language over a scripting language, but I don't think that's the general case.

      Cheers!

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
  273. Business analyst vs. system administrator by jbolden · · Score: 1

    Really I think you are hitting on an aspect of a more widespread problem. The closer you work to the machine and the more abstracted you are from the business the more "hard core" you are considered. Business analysts often program, as do system administrators; and in many companies the business analysts spend more time doing it. OTOH which group is considered the best of the best programmers (if in your company business analysts never code replace with the correct title for most user oriented coding)?

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

    1. Re:begging the question by shodson · · Score: 1

      Since the original article mentioned whether "exective-level managers" are biased, I would assume a large corporate/enterprise setting. You don't see managers like that hitting the golf courses and country clubs with Perl/PHP/Python sales reps.

      I agree that a lot can be done with scripts, even more OO-orinted scripts like PHP and Python. But Java and .NET are what is being sold in most large companies unless there is an inside champion pushing other technologies.

    2. Re:begging the question by sbwoodside · · Score: 1

      Fair enough. Executive level managers should not be making decisions about programming language use in that case. This I suppose is one of the largest problems that results in IT debacles around the world, that executives are making such technical decisions. These sorts of choices must include the line-level managers and coders who know and understand the technical issues. They are, after all, the people who will write the code, and will be the only ones who understand it, since source code is basically opaque.

  275. 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.
    2. Re:God is in the chip tracings by Anonymous Coward · · Score: 0


      Hey I got other things to do besides obssess about Truth




      ... wow ....
      (speechless)

  276. 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
  277. Scripting isn't real programming? by DohDamit · · Score: 1

    I'm guessing anyone who believes this also believes that stored proc's, triggers, and views are all toys. Stay away from my database!

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

  279. I script in secret by Darthnice · · Score: 1

    Since I have a large amount of leeway in my own project's implementation, I decide whether a script or C is the right approach to solving a particular problem. It helps that my main project has a TCL interpreter built in and was designed that way from the beginning. Coding is coding no matter what the language is.

    Don't drive a nail with a screwdriver.

  280. Re:Mountains and molehills.. (Python apologia) by Slashed+Otter · · Score: 1

    The company where I work is primarily a Java shop. However, we used a search engine (InktomiSearch) that forced us to code pages in python.

    The problem was never deciphering the python code...as you said, that's simple and any developer can do that. Hell...before I learned assembly, I could read it and tell what it was doing. The problem comes when you're forced to write it. When you have no experience writing in a particular language, you write bad code. You also take longer to write that bad code. With us, everytime a developer had to make changes to the python code on our search engine, they not only had to decipher what was already there, they had to learn (or re-learn) python to the point where they can make the necessary changes.

    When a Java API became available, we implemented the same thing in Java (2 weeks work) and now it takes far less of our energy to maintain.

  281. I've lost my job over this by HackHackBoom · · Score: 1

    I worked at a company so pig-headed once they wouldn't let me write what would've taken me about 2 hours in PERL a simple reorganization and tabulation program. They said PERL is unstable and innapropriate. All of "OUR" code should be compiled and in industrial strength languages.

    I was so angry, I called them a bunch of idiot morons, walked to my desk, grabbed my valuables (Picture of wife, r00t mug) and walked out.

    --


    "It's not stealing if you don't get caught!"

    1. Re:I've lost my job over this by Anonymous Coward · · Score: 0

      No, you QUIT your job over this.

  282. ancient war stories by ab762 · · Score: 1

    I recall the shock, horror, and derision heaped on someone we discovered had written a program to do something the system file copy command could do simply, correctly, and faster. This was on VM/CMS in the 1980's and the poor sucker had written in COBOL.

  283. Its about perception by denisonbigred · · Score: 1

    It's precisely the fact that you can use scripting to make some tasks drastically faster that it gets so little respect. For many people you cant get any respect unless you have "paid your dues" and done it the hard way. "Blood sweat and tears"=respect. If a task requires less sacrifice people view it with less respect.

    --

    "There's no way to rule innocent men. The only power any government has is the power to crack down on criminals."
  284. 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....

  285. 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?

  286. Re:System Administrators and a scripting culture.. by snapman · · Score: 1

    I personally believe it would do everyone -- whether you call yourself a programmer, scripter, engineer, etc. -- a lot of good if you learn as many languages as feasible, with as much variety as possible. I recently started looking for a job and when I started the search, I only wanted a job in my area where I would use Java as my primary programming language. Much to my chagrin, every job search I would conduct repeatedly produced no results. Only when I generalized the programming languages in my job searches did I start finding job listings. It was big wake up call for me, because I thought Java was a safe language to become an expert in because everyone was using it and there would plenty of jobs out there if I became disenchanted with my current job. Boy was I wrong.

    Companies these days are only interested in a programming language that will get the job done. If they are progressive enough, they won't care which one it is. In an environment where one or two languages are king and all others are treasonous, if you can put up a solid case for your language of choice (and have the time & energy to evangelize it), then do it. Otherwise, get familiar with as many languages as you can and broaden your knowledge base. Because the days of one-language-fits-all (like COBOL or FORTRAN) are gone forever. Money is quickly becoming the deciding factor in choosing languages, and if one language (scripting or programming) can get the job done cheaper and with less effort,, then the bottom line may have more to say about which language you use than anything else.

    --
    "What luck for the rulers that men do not think." Adolf Hitler
  287. This is reality by Anonymous Coward · · Score: 0

    I worked as a Perl scripter at a E-Book company. One of the projects that company was doing was to tag and cross-reference a foreign language dictionary/encyclopedia with all of the foreign languages that were used. They had a PhD in foreign languages who had been working on that project for 1.5 years. I wrote a Perl script that automated the search functions through a multilingual dictionary and grammar subroutine that allowed her to finish the set in a matter of days (she was only about 1/5 of the way through at that point). I probably saved the company a few hundred thousand dollars in manpower ... all while making under $5 per hour.

  288. Bias definitely exists by Anonymous Coward · · Score: 0

    I worked for a large lab charged with doing performance testing - testing applications under extremely high load to see if anything broke. A lot of the work we did required code that ran extremely lean and fast, so there was a natural bias towards C and assembler amongst management.

    However a lot of code in that environment either doesn't have to be fast, or scripting languages are going to be as fast as compiled languages under some circumstances. I got a lot of push back against using Perl and Python, although luckily I was brought in as a relatively senior "expert" and was able to push back myself.

    The issue was finally resolved when I was able to bang together a Perl testing solution to meet an extremely short deadline, and get praise from the customer where we were expecting to get a rap on the knuckles and probably some sort of financial penalty. I was then asked to present to the rest of the group on the advantages of scripting languages vs. C (i.e. speed of development, much less cross-platform issues, low cost of software, freely-downloadable modules from CPAN, and so on), and acquired quite a few converts. A month or so later, Perl books started appearing on peoples' bookshelves and the change had happened. However, it took a near-disaster to get to the point where people were willing to accept that alternatives exist and that (in particular) C isn't the perfect tool for every coding task.

  289. scripting = 4GL by BrianB · · Score: 1

    You know it's funny that a lot of these companies that turn their nosees up at Python or Perl endorse VB or PowerBuilder which are essentially scripting languages...

    OTOH I've seen people write a program in Java to locate files > n days old and delete them...First time it had a bug, I deleted it and added "find -ctime ... -exec rm -f {} \;" to the cron ;-)

  290. Re:I guess I am biased against scripters as well.. by consumer · · Score: 1
    Scripting languages do very well with RDBMS systems. Messaging middleware vendors provide a C API which is then wrapped in a scripting interface. There are very very few real world problems that actually benefit from distributed objects, as opposed to a much simpler parallel load distribution and failover system.

    Some scripting languages, like Perl or Python, have gone to greater lengths to provide the necessary tools for building large programs. These usually center around OOP. Inexperienced programmers using those languages may not be familiar with these features or concepts and thus will tend to write less maintainable code. It's not because the features aren't there.

    Working with 100+ developers on a project in any language is going to be pretty painful. It's no worse in a good scripting language than it is in Java/C++/C#.

  291. 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.
    1. Re:Like a herd of lost sheep... by Qbertino · · Score: 1

      You're sooo cool! May I be your friend?

      --
      We suffer more in our imagination than in reality. - Seneca
  292. 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.
  293. 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.

  294. intepreted vs. compiled... by fredrik70 · · Score: 1

    hey, I do c++ for a living and I got a perl developer who does some *really* weird black magic shit with perl. Got the deepest respect for them.
    Wasn't sure about php, ASP, et, al. but php is pretty much growing into some kind of perl lite, you can do pretty much whatever you want with it.
    all our parsing and natural language intepretation at work is done in perl. we tried a c++ solution and it sucked basically (might have been because the company tried to force the poor perl developers to rewrite it in c++, which they despised before lunch the first day). I would say, use the right tool for the job

    --
    if (!signature) { throw std::runtime_error("No sig!"); }
  295. Yes, well... by dasmegabyte · · Score: 1

    This is basically a procedural vs. modular question. Scripting languages are generally perceived as being great for doing one task but useless for doing multiple ones.

    That is of course bullshit -- Perl, Python and WSH may have messy syntaxes (IMO) for performing OOP operations but they're obviously very good at it, and in some cases can be faster than "high level" languages. But I still prefer to use a more structured, accepted language to code things. Why? The IDE! If you're writing a massive application, it's great to be able to see things graphically. Scripting language IDEs (mostly because of the stigma against them) tend to be "syntax-highlight only."

    Part of this is also the "right tool for the right job" mentality. Since scripting languages are used for automating daily tasks, many managers assume they're not up to par for designing larger, more critical systems. Once again, this is bullshit (i'd trust Perl for speed, reliability and fault tolerance over VB 6 any day), but the stigma exists. After all, if you say "I can do that 1 week app in a day," it sounds like you're cutting corners somewhere. Nobody realises the corners you're cutting are mostly syntactical "accounting" overhead.

    I think scripting languages are gaining in popularity though. Notice the inclusion of regular expressions in Java 1.4 and .NET, and script execution classes for .NET. The leader here of course is the web. With the need to change things quickly without the need for instant gratification, suddenly scripts made MORE sense than compiled code.

    --
    Hey freaks: now you're ju
  296. Re:my belief (really?) by OffTheRack · · Score: 1

    Scripting is interfacing, tying things together on a higher level. Programming is functionality, algorithms and such.

    Have you really thought this through or do you believe that assessment of what programming is?

    Coding is either programming or it is slop. In other words, programming has everything to do with how you do it, not why you do it.

  297. Red Headed Step Child... by PetoskeyGuy · · Score: 1

    Visual Basic, the ease of a scripting language, make binaries to hide your code, and now even does .net if you like.

    It may not be a "REAL" language by some peoples definitions, but of course those people don't get to decide - individual developers and companies do.

  298. I think you're missing the real problem ... by Frag-A-Muffin · · Score: 1

    In *MY* experience. (Note the emphasis on MY! :) I found that there are a lot of people who came from Web Design and are NOT programmers that join the ranks of so called programming after they've learned how to handle a form in perl/cgi. Then they continue on, with no formal knowledge of simple data structures, for example, and tackle bigger projects. It's THESE people that the managers should be scared of. I know I sure am! I've had my share of going through ugly code, and I must say, the worst comes from these types of people. Generally, programmers that program in a more structured language like Java/C have better background/training. It's not to say that there aren't great scripters. There most certainly are, and I love working with these people. The problem I see is the ones with no theory that "pick up" programming working on larger projects!

    My $0.02 CDN

    --

    AirSpeak - http://itunes.com/apps/AirSpeak
  299. 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'
  300. Talk a walk ... by Anonymous Coward · · Score: 0

    ... and get outside a bit more.

  301. Yes of course, if it didn't take a long time and allow our consulting firm to charge more billable hours, what would be the point?

  302. Re:The right tool for the right job, and maintenen by OneFix · · Score: 1

    But, when does a project suited for scripting become a project suited for a more powerful language? For instance a database script that pulls data , parses a few things and spits them out...what is the point at which the code becomes so big that a scripting language is no longer suited to the task? What will happen in a business environment is that your code will become more and more bloated with code on top of code to do new revisions...adding calculations for new things, sorting, etc...

    What's moreso, how does one go about communicating the need for a change and the difficulty in implimenting it?

    I've had that very thing happen to me...

  303. Re:Why? 'cos Perl sucks by Anonymous Coward · · Score: 0

    Perl is a kludge language. It may have started out as a decent language, but there was a definate snowball effect as new versions were released.

    The result? Scripts that can bring any webserver to its knees.

  304. Your analogy fits even worse. by Anonymous Coward · · Score: 1, Insightful

    Let's dispell a myth right now before it spreads. Scripts do not provide a less accurate solution than 'regular' languages.

    And secondly, what makes you think a scripter understands the 'nature' of a solution less than a coder? What exactly is the 'nature' of a programming task that wouldn't be given to both a scripter and/or coder as a requirement in the first place?

  305. Why we *should* discriminate against scripters... by SurturZ · · Score: 1

    As a BASIC programmer from way back, I relish the opportunity of someone else being kicked around for not coding in a "real" language :-)

    Face it, with modern languages, no one is a "real" coder any more. There are probably sixteen guys in the world that can manually convert their source code into binary executable.
    THESE guys are the real coders, since they actually can optimise their code in terms of processor ops.

  306. LDAP to LDAP in Java... by MosesJones · · Score: 1


    Err lets see.... I'd use JNDI which does all the work for me. So in Java a LDAP replicator would take....

    A couple of minutes (and yes I've written one). Because JNDI makes all that work totally trivial.

    No CSV, no intermediate phases. Give me one ldap URL and I'll copy everything over into another.

    NB. This proves nothing but the fact that you don't know what you are talking about.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
  307. Get a grip. by Anonymous Coward · · Score: 0

    "Reality Master"? You better get your feet back on the ground of 'reality' and stop over-romanticizing the craft of programming. How does the touchy-feeling immeasurable 'nature of the answer' you refer to relate to programming?

  308. mod up to 5 mod up to 5 by ZINGYWINGY · · Score: 0

    only smart thing said

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

    1. Re:Typing Atrocities by jim3e8 · · Score: 1

      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 agree fully. I simply wanted to point out that a strong typing system does not guarantee maintainability or robustness, just as a dynamically typed system is not certain death. It's all in how you leverage their strengths. I still believe that each approach has its time and place, and that flexibility may trump compile-time checking in certain problems, or vice versa. I think the continued popularity of languages from both camps is a testament to this.

  310. discrimination... by Alpha_Nerd · · Score: 1

    I love how when people hear the word 'discrimination' they automatially think of some sort of unjust predjudices... One of the deffinitions of 'discrimination' is:

    The ability or power to see or make fine distinctions; discernment.

  311. Oh please by Anonymous Coward · · Score: 0

    You consider "C" strongly typed?

    Did you study at the University of Baghdad or something?

    C is loosely typed.

  312. 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
    1. Re:Both programmers and scripters are doomed by... by algebraist · · Score: 1
      [long post warning]

      This is very true, chaeron. I think it is also a side effect of another phenomenon, something I realized painfully in 2002 while out of work.

      The fact is that software development and information technology is an industry undergoing severe deflation. It used to be such deflation affected only hardware, a byproduct of it becoming a commodity industry. But with interest rates so low and growth not so good, most businesses are really cutting costs and anything which doesn't translate directly and can be seen to translate directly into improved sales or profits is a likely candidate.

      In my opinion, which was discussed extensively in a forum at realrates.com, demand for programmers has been constant since 1990 and, in fact, slightly decreasing. There has been a lot of demand for other computing specialists, including the database development crowd to which I now belong. The reason for this is that businesses have moved to buying shrinkwrap solutions rather than keeping a stable of expensive programmers. For most companies who cannot sell a product to a zillion customers and thereby fund an expensive development group, doing software is just too expensive and consumes resources not related directly to sales or support. Heck, I saw an article in one of those business mags for the suits that recommended rethinking corporate philanthropy so that it is more oriented towards sales and so the business gets something back for it. Buying shrinkwrap is the cheapest form of outsourcing there is.

      If tools for special effects in movies are any indication, large sectors of what were hot domains for programmers are becoming standardized and usable directly by functionals. Naturally, the company that makes these tools needs programmers, but once a market has a dozen competitors offering products that everyone else buys that caps the limit on the number of coders. And, of course, if the sector sees a shakeout, as most eventually do, that trims the demand more.

      I think this phenomenon is behind the rise of one-size-fits-all enterprise packages like PeopleSoft, SAP, and the Oracle Financials entrants. Suits seem to have decided that software is so much a drain they win bigger if they distort their policies and procedures to fit the software rather than using custom. I think this phenomenon is also behind the push for software that lets one DBA administer hundreds of databases.

      Not all software application areas seem to be sucuumbing to this. Games development still looks like it can afford building independent engines and the like. But it'll probably happen there, too. I mean, realistically, what's the point of repeating a creation of a good renderer? Most games today seem to be built using tools that let artist-designers develop scenes and having extensive parameter files. How much longer before a half dozen companies standardize that and make up for any efficiencies by simply exploiting faster hardware?

      Frankly, I think the reason why scripts are becoming so popular and widely used is that they can do a job quickly. That means it's cheaper because it draws fewer programming hours. And, with reason, I think the suits don't see a cost to impossible-to-maintain software, at least not one that's comparable to the price of paying the programmer hours. If there are components of their process that must be maintained carefully, they buy that. Anything else by definition doesn't require long term maintenance. It does require speed, flexibility, and low cost.

      I, like many people here, love to code and it's what I envisioned doing indefinitely. But the demand is decreasing. So, I get my kicks doing ETL, database, and business intelligence stuff, using gawk to do it whenever I can. And with gawk I can knock out applications really fast. Clients often don't even know or care as long as the job gets done cheaply and quickly.

      Hey, we have always known, struggled, and argued with software being too expensive to develop and maintain. Much of the training professional programmers get concerns how to build better software. We've always felt a tension between quality and speed in the sense of rapid development. The suits have decided that we took too long to solve the problem and found their own way. Oh well, the computer giveth and the computer taketh away.

      --
      Jan Theodore Galkowski, (Oo) http://www.smalltalkidiom.net/ MySQL,PHP,ETL,SQL,MinGW C, and plucking the Web
  313. As a programmer, you are weak and worthless by Anonymous Coward · · Score: 0

    These are pussy boy comments.

    Back in the days of real programmers, we would have taken you out back and beaten the snot out of you.

    But now you pussy boys run rampant and we'd end up beating up 3/4's of our employees.

    So your girly-man view eventually will take over.

    Sad. Glad I'll be retired before then.

  314. 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 DEBEDb · · Score: 1
      You know why it does? Because a good programmer,
      IMHO, would just learn the language. No matter, that this particular task is better in the other language - you can recommend it - but if this particular task is better in X, but it also involves changing millions of lines of already working code, then your answer is no good.


      I can see why you can recommend PHP for a small-to-average-size e-business to write somethign from scratch; but a REAL software engineer (I dunno if Mel the Real Programmer would do it) would first check out other factors.

      --

      Considered harmful.
    2. 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.
    3. 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 -
    4. Re:totally agree by JonK · · Score: 1
      Cobol so far has my nomination for most evil language actively used for real work

      So I take it you've never been exposed to RPG/400 or, for that matter, JCL. Boy, do you have some fun coming :-)

      --
      Cheers

      Jon
    5. Re:totally agree by gpoul · · Score: 1

      well said. - But IMHO the same applies to coding IBM Assembler on a zSeries or S/390.

    6. Re:totally agree by chthon · · Score: 1

      > 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 Probably not! Why would you be a bad programmer ? I know c/perl/php/python AND cobol. I have known programmers who only could program in Cobol and JCL.

  315. Scripting problems have to do with maintenance by eyefish · · Score: 1

    First right off the bat: I'm a Java programmer but also script in a few scripting languages.

    Now that that's out of the way...

    The problem with scripting large enterprise-class applications has nothing to do with being productive right off the bat, but rather with maintenance in the future. I'm sure many here can remember at least once in their lives glancing over someone else's Perl code, just to see a whole bunch of confusing syntax being used.

    Don't get me wrong, there *is* a role for scripting jobs (like for example, for gluing executables in different languages quickly), but I just don't see it at the enterprise level.

    Note also that scripters (remember, I am one of them also) also suffer from "script coolness", which translates to "doing the job in the fewest amount of lines of code and keyboard strokes", thus making the code difficult to read for others.

    Similarly, in languages like Perl, there's countless ways of doing the same thing, and although in some areas this is good, when it comes for someone else reading your code that can become a nightmare, since maybe ther're used to doing things in a different ways. This is something that is much more restricted in "traditional" languages like C, C++, VB, Java, Delphi, etc (side note, YES, I know the obsfucated C contest, but that's usually the exception).

    Note that I'm not saying that *everyone* who scripts does it in a way hard for others to undertand, I'm just saying that it is much more common to see this behavior in scripts than in traditional code (where we also find many cases of obsfucation).

    So maybe what we need is a scripting tool that is very simple and fast, as opposed to extremelly powerful and complex. However, by doing so then script writers could probably no longer do a million things in a few lines of code, so maybe this is unlikely to happen (or doom to fail), since it will kill the spirit of scripting languages in the first place.

    Botton line: Use object-orientes languages for large, complex apps, and scripts for small and self-contained tasks.

    1. Re:Scripting problems have to do with maintenance by Da+VinMan · · Score: 1

      I disagree with a lot of what you're saying.

      First of all, Perl is not the be-all and end-all of scripting languages. So, even if all Perl code is hard to maintain (which depends on who wrote it and how skilled they were at making programs maintainable), Perl isn't the only option. Python is specifically designed to be readable. It has very few readability warts. Try it; you might like it. It has some downsides compared to Perl (verbosity, rigidity, etc.), but it has upsides as well (readability is a big one).

      Second of all, for many people, scripting languages also include VB and Java because those are (for the most part) VM style execution architectures. The mainstream thinking has simply evolved as more and more people use them. For many people, "scripting languages" means everything which isn't their favorite programming language (usually C) or simply everything that doesn't talk directly to the OS and/or hardware. It's a matter of perspective.

      One could say "a scripting language is any language which executes the program from the actual source code". What language does this anymore? Java executes from .class files and not .java files. Perl, Python, and VB all do something similar, and so on. Possible TCL is the only one that still executes from source and I only say that because I don't know anything about TCL; I'm probably wrong about that.

      So, to say a language is a "scripting language" is no longer meaningful.

      When choosing a programming language, I think that we ought to be measuring the type and levels of abstraction available in a language and how well that level matches the target problem domain. Obviously, if there is a high degree of agreement between the two, then the language in question is appropriate. But good luck in measuring that one!

      Finally, who said scripting languages aren't "fast"? Fast for what purpose? Do you mean to tell me that you can do "fast" numerical processing in your Java programs (which you clearly consider to be a non-scripting language)? Is that fast? Compared to what? Compared to Perl ? So what! Compared to Fortran? Not bloody likely! There is a such thing as "fast enough"; and that's exactly why hardcode software engineers suffer the existence of any non-assembler language. Good engineering is about balancing trade-offs. No design in existence is going to be cheap to produce, "fast", and easy to maintain. Something always has to give. The question is, did your choices appropriately accomodate the customer's and the system's needs?

      Unfortunately, choice of programming language in a project will continue to be (largely) a cultural one. That means language discrimination will ALWAYS occur when hiring programmers. And that's why programmers play "acronym bingo" on their resumes; it's because the market requires it of them.

      --
      Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
  316. Oh the humanity! by HuguesT · · Score: 1

    And the spelling...

    1. Re:Oh the humanity! by 3.1415926535 · · Score: 1

      I AM TRANISTOR. Your debugging skills are no match for my computational power. MUAHAHAHA!

  317. I disagree to the disagreement of the disagreement by Ender+Ryan · · Score: 1
    ... or something like that.

    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.

    I think that's totally wrong. Get familiar with Perl or Python(or any other similar language) and write something that's semi-complex, and then write it in C. You'll find that your C program is at least 2 - 4 times as large.

    Not that I think Scripting languages should be discriinating against. I can relate to comapnies who want to focus on one language, though.

    I won't argue with that. Sticking to one language _can_ be a good thing, especially if all the company's developers are familiar with said language.

    What it boils down to is needing a good manager to make good decisions.

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
  318. A perfect world. by slonob · · Score: 0

    If I was starting a company from butt scratch, I would choose a language such as C, C++, or Java for doing application programming. For sys admin type of things I would definitely choose Perl, regardless if every machine was Windows, Linux or whatever.

    I have built applications in Perl that are consumed by many to this day. I like it. I know Perl very well and very quickly tap out what I think is very good code. Even so, I am disappointed in the flexibility of these apps. Perl sage say: learn an OO approach in Perl. But once I started to learn Perl OO, I wanted to use something like C++ or Java... something OO by design... something that forced me to think OO, not translate to OO. FTR, I HAVE learned Perl OO. I have jumped to Java. My flirtation with it has become an all out interest. It might take me longer to get rolling with Java on a project, but I have already saved a bunch of time reusing code.

    Anyway, if I built apps in Java in my company, I would also design a framework that, if at all possible, would apply to ALL projects. Given that, you have people speaking the same language at design time. You have people using the same style for coding (and you don't even have to make them use the same coding environment or IDE). You have a large number of people to choose from out in the world that would not find it difficult to jump in, feet on the ground, running. You have a product built on concepts that are easy to sell, such as J2EE. And so on.

    On the Perl side. I can't imagine why I wouldn't use it for sys admin work. I know of a company that has a scheduler that launches VB, Perl, DOS, Korn, and all varieties of scripts. No surprise, there is no handle AT ALL on messaging. Did it succeed? Did it fail? Why did it fail? Well, good luck answering those questions. Sys admin sage says: standardize message handling in these scripts. No-one wants to mess with a script that works, especially when it's dealing with millions of dollars worth of transactions. Anyone here know who made this Korn script? DOS? *gag* With Perl you can run all of the other stuff anyway. You can hook up to a database to run a stored procedure, check the drive space, move a file from disk to disk, move a file from host to host. And so on.

    That's how I break these down in my world. Perl is very important in my world. Java is as well. I have a place for both of them in my ideal company.
    -Slo

    --
    Strict obedience to the law is the key to liberty.
  319. The biggest snobs.... by AutumnLeaf · · Score: 1

    Are the ones who implement their programs in postscript. There's something about using your printer to do computational problems and render the answers that I have to admit is pretty damn cool. Good for balancing checkbooks. Bad for interactive cad apps though. :)

    1. Re:The biggest snobs.... by Anonymous Coward · · Score: 0

      dam, why did I post...

      have a vertual +1 funny.

  320. not even metioned... by Anonymous Coward · · Score: 0


    I'd put my c++ STL code up against any scripting language for execution speed, amount of code, and portability...any day.

    Oh and I saw a comment earlier. An hour of computing time IS more valuable than a programmer's hour of coding. A lot of software runs on servers more expensive than your company's net worth!

  321. Scripting by mslinux · · Score: 1

    Nice article. Perl and Python are catching up with the big, compiled languages, especially Python... It's object oriented like C++ and java, but it's much easier to pick up and actually use. With Python, you can get right to programming and forget about the crazy syntax rules in C++ and Java. The only downside to it is that it's interpreted, but that doesn't matter so much now-a-days with 3 Ghz CPUs.

    1. 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).
    2. Re:Scripting by the+eric+conspiracy · · Score: 1

      With Python, you can get right to programming and forget about the crazy syntax rules in C++ and Java.

      Actually I find Python's use of whitespace as part of its syntax totally offputting. IMHO Java's syntax is far more natural.

    3. Re:Scripting by trouser · · Score: 1

      Actually Python modules are compiled to a non system specific byte code the first time they are run and are recompiled at runtime only if the source has changed.

      The interpreter then interprets the byte code. This is faster than having to parse the original source during execution.

      Writing Python extension modules in C is straightforward, provided you are familiar with C, and is very well documented. This gives you the speed benefits of C. Some of the standard Python library modules have been rewritten in C for improved performance. eg. There are two version of the pickling (data serialising) module. Pickle and CPickle. CPickle is a lot faster.

      I assume Perl can be extended with modules written in compiled languages as well.

      --
      Now wash your hands.
  322. radius server by Anonymous Coward · · Score: 0

    I'd have to agree about the bias. I can cite one case in the company I work for, this is an example of more than just anti-scripting bias.

    When I joined the company they had just spent $US100+k on a highlight redundent sun server and another $US25k on a radius server (because "you get what you pay for"). The solution was to put it kindly crap. The server looked like it had been written on a windoze machine and ported to unix. They been taken for a ride by their supplier.

    I tried to convince them to switch to another radius server (radiator), but they claimed it was too cheap so it couldn't be any good. Further because it was written in perl it must be slow and a toy, it couldn't be a possible be a serious program. It wasn't until the management of the server was handed over to another dept that the server got replaced with 3 sun t1s running radiator and mysql. Total price approx $uS15k!

    I've since written a custom authentication module for one of our projects. Something that would have been impossible with the previous solution.

  323. I won't spin this further ;-) by iion_tichy · · Score: 1

    Get familiar with Perl or Python(or any other similar language) and write something that's semi-complex, and then write it in C. You'll find that your C program is at least 2 - 4 times as large.

    I didn't deny that, I only don't think that shorter code doesn't equate better maintainability. I know some Perl, evaluated Python once, but dismissed it for reasons I forgot. Might try it again, it certainly has some appeal.

    1. Re:I won't spin this further ;-) by Ender+Ryan · · Score: 1
      I didn't deny that, I only don't think that shorter code doesn't equate better maintainability.

      Oh. :) Well, I think it _can_, but it certainly can also do the opposite. Just check out some Perl 1 - 10 liners :)

      Cheers!

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
  324. Re:Certainly not by thogard · · Score: 1

    Do you know what the w3c is? Its a group of control freaks that wanted to be in charge but the industry chose to ignore them. So far it looks like the industry has suppored 0% of their standards even when the standards were based on what the major web browsers were doing. Maybe if w3c adjsuts their standards to the industry they can improve on that 0% a bit. They are irrelevant except for buzword bingo.

  325. well... by Ender+Ryan · · Score: 1
    I mean are you going to say that the task of building slashdot is "system administration"

    I think that's being too generous! :)

    note to /. editors, j/k

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
  326. is because of newbie CS grads !! by Anonymous Coward · · Score: 0

    the two groups that I've encountered w/ the greatest bias towards scripting are managers w/ a superficial knowledge of programming languages and newbie CS grads ( usually java zealots ). Neither really seems to understand what the distinctions of a scripting language are. Frankly I'd prefer that some of our newbie java guys knew scripting because they're largely useless w/ java.

  327. 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."
    1. Re:Ruby by JamesOfTheDesert · · Score: 1

      I'd be very interested in knowing where those quotes form Matz come from, because the impression I get, from following the Ruby mailing lists, is that internationalization and Unicode support is a major concern, and will be addressed.

      --

      Java is the blue pill
      Choose the red pill
    2. Re:Ruby by GCP · · Score: 1

      Sorry for not checking back sooner, but maybe you (JamesOfTheDesert) will see this.

      I can't quote an exact source from memory, but I think I encountered both of these while Googling a Ruby mailing list. There was a long thread in Aug 2002 where a guy named "Curt" was making some very well-informed points about Unicode and Matz was arguing with him. The quote about "whatever doesn't interfere with Japanese" wasn't said by Matz during that thread, but was linked to, as I recall, and I came across that quote twice. Curt didn't mention it, though. It was somebody more familiar with Ruby history who linked to it, again if I recall correctly.

      You can probably find everything I found by Googling for the two terms Ruby and Unicode, then following the threads you encounter and the links included therein. That's how I found everything I found. (And I Googled both Web pages and Usenet ("Google Groups")).

      Hope this helps.

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  328. 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.

  329. Scripting vs Programming by topham · · Score: 1

    Just because I can script something in an hour doesn't mean I can provide it to end users as a solution for them.

    Most of the development effort in an application has little to do with the required process and data manipulation, but everything to do with user interface to it.

  330. Re:System Administrators and a scripting culture.. by Lodragandraoidh · · Score: 1

    Another thing I have found interesting is the amount of 'glue' that needed in complex and crufty systems alike.

    Perhaps your company has an old Cobol or Fortran application that runs to hundreds of thousands of lines of code. Do you rebuild it in GCC? (shameless OSS plug) Or, do you interface it with more modern systems using relatively cheap scripting code?

    As you say, this usually comes down to a situation of money and time. If you don't have the money or the time to rebuild it, you will end up creating something that will make it interface with new systems as painlessly as possible - aka 'glue'.

    Some especially useful glue:
    *Unix shell pipes and output redirection
    *Perl and expect.pm - allows you to manage socket connections - and link multiple applications on the same platform or across the network easily (handles all the socket creation/breakdown stuff seamlessly) and automate the handling of normally interactive interfaces via 'expect' 'send' functionality.
    *TCL and Expect - see above...expect was originally developed as part of TCL (much as the Tk widget set) - but has evolved to perl as well (not sure if there are any other language implementations atm).
    *Any language you can embed into an application (Lisp macros in EMACS for example).

    Again, I think the Unix/Linux culture has more of a propensity to embrace this technique as opposed to 'C++' or 'Java' programming cultures.

    Another thing I have not seen anyone touch on is the methodology and philosophy of the software lifecycle. I see shops that only work with the waterfall lifecycle - and they have a tendency to produce code that is minimally useful (or not useful at all for real end users) and horrid to maintain (regardless of the ease of maintaining a consistent code base; if the concept itself is all wrong you are going to end up rebuilding it anyway - and through a series of enhancement requests - that takes months or years to implement; what was originally desired!). These shops have a tendency to only do one or two languages (C++ and Java usually) well.

    There is a more progressive philosophy that views the project, and its lifecycle as an ever expanding spiral that allows iterative design, code, test, evaluate results and schedule, rinse and repeat. These projects tend to have frequent code releases, multiple mockups, and encompass the real needs of your end user community when all is said and done. Maintenance is a snap because: A) The users get what they need, thus don't put in change/enhancement requests right off the bat, and B) Most maintenance activities center around fixing bugs as opposed to recreating the application. This methodology lends itself to multiple languages and scripting - since the main focus is to get the job done right.

    I have witnessed several waterfall projects that extended over 5 or more years and to this day do not fill the needs of the user base (most of which ended up using glue - like embedded macro languages or scripting to fill in the gaps). It seems to me that more than any other, this is a method of ensuring large numbers of mediocre programmers employment over extended periods of time.

    On the other hand, I have used iterative design, and have had success upon success, with a minimal cost in time and resources - since I am free to utilize the right tool for each job as needed based upon an solid risk accessment.

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  331. fine then! by Ender+Ryan · · Score: 1
    --

    I place this idea under the GPL. Take it, use it, extend it, or print it out and use it for toilet paper.

    I shall use it to wipe my ass :)

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
  332. Wakeup call Java. by Anonymous Coward · · Score: 0

    My company is hell bent on using java for web based dB apps. I devel'd a couple prj's in perl in about 4 months, 1 person. These others are multiple people, over a 1.5 years! - same complexity - and still not done. I don't get it. Its just not that hard!.

    Anyways the Q is: what happens to Java when Sun bites the dust. I predict the death of Java within 3 years.

  333. I feel biased agaisn't for not being Indian by Billly+Gates · · Score: 1, Offtopic
    After all, an Indian can do my job for 5k a year and is more educated according to various lobbiests from the software industry. But I guess we still do not have enough IT workers so we must increase h1b1 visa's to eleminate the problem.

  334. Wrong Tool == Bad Job by IBitOBear · · Score: 1

    As always, use the wrong tool, get a cruddy result.

    On the other hand, if you go around calling yourself a "scripter" instead of a "programmer" you get what you diserve.

    I am a programmer. I program in many different languages. Some better than others. If someone gives me a task I do a quick analysis and pick the right language. If there is someone better suited to the task or language, I pawn the problem off on them.

    If someone *only* knows how to script I do consider them lower on the programming food chain. The typical "scripter" doesn't necessarily understand the cost of their solutions. A (properly trained/talented) programmer usually does. (If he doesn't he isn't properly trained.)

    (If your only language is Visual Basic, you need not apply, you are "a dragger and a dropper". 8-)

    On the other hand there are many reasons that a job that could be done in perl in a few hours might be better given to a C++ developer for a few days. For example, if I am sending this code out into the wild where I know nosy system admins or web weasels might edit the code but then call me for support, they are getting a bound executable, period.

    Similarly, I will not give to a perl "scripter" a program that I know can be written in three lines of bash because they *WILL* write it in perl no matter what.

    "To a man with only a hammer, every problem looks like a nail." -- know the aphorisim, live the aphorisim, be the aphorisim...

    --
    Innocent people shouldn't be forced to pay for inferior software development.
    --"Code Complete" Microsoft Press
  335. Because scripting is a subset of programming! by ishmalius · · Score: 1
    A person who calls himself a 'scripter' is quite likely implying that scripting is the extent of his talents. The same thing applies when someone calls himself a Java programmer, a VB programmer, or a C programmer.

    A good programmer is language-neutral. He knows more than just one grammar; he knows how to program. He has a big bag of tools that includes a lot of languages, including scripting systems. And tries to use the best tool for the job.

    When someone gets religious about any one system, and believes that their one way is the solution to all of life's problems, then he loses value to the business and to himself.

  336. Does Design Methodology Effect This Bias? by Lodragandraoidh · · Score: 1

    I have not seen anyone touch on the methodology and philosophy of the software lifecycle as a determining factor in this so-called 'scripting bias':

    I see shops that only work with the waterfall lifecycle - and they have a tendency to produce code that is minimally useful, particularly if their discovery techniques with key users is inadequate. While lip service is given to 'maintainable code', it is usually horrid to maintain, regardless of the ease of maintaining a consistent code base - particularly since the design itself is flawed. Rebuilding a flawed design is not maintenance. Corrections can take months or years as each request undergoes the scrutiny of the revision control process (a truely draconian process in some organizations). These shops have a tendency to only do one or two languages (C++ and Java usually) well.

    There is a more progressive philosophy that views the project, and its lifecycle as an ever expanding spiral that allows iterative design, code, test, evaluate results and schedule, rinse and repeat. These projects tend to have frequent code releases, multiple mockups, and encompass the real needs of the end user community, when all is said and done. Maintenance is a snap because: A) The users get what they need, thus don't put in change/enhancement requests right off the bat, and B) Most maintenance activities center around fixing bugs as opposed to recreating the application. This methodology lends itself to multiple languages and scripting - since the main focus is to get the job done right.

    ~~

    I have witnessed several waterfall projects that extended over 5 or more years and to this day do not fill the needs of the user base (most of which ended up using glue - like embedded macro languages or scripting to fill in the gaps). It seems to me that more than any other, this is a method of ensuring large numbers of mediocre programmers employment over extended periods of time.

    On the other hand, I have used iterative design, and have had success upon success, with a minimal cost in time and resources - since I am free to utilize the right tool for each job as needed based upon an solid risk accessment. I think this methodology is rarely used in most established 'code factories'.

    This also manifests itself in how we think of our end user communities. Just as the BOFH complains about stupid 'Lusers', I think there is a lack of respect for the people who have to actually live with the products we produce. This is getting the cart before the horse, for without the users there would be no need for programmers or 'scripters' for that matter.

    Of course, I could be completely off base, biased by my limited view of the world. Right.

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  337. Good point, but... by autopr0n · · Score: 1

    Insane compile times are largely a C++ issue. Since each class is a separate compiled file in java, you don't have to worry about recompiling the whole thing, unlike C++. And you don't need to link at all. I honestly don't understand how people can deal with that insane compile/link cycles in large C++ programs.

    --
    autopr0n is like, down and stuff.
    1. Re:Good point, but... by jadavis · · Score: 1

      Normally you just recompile changed files when programming in C/C++. Is there some reason you'd recompile unchanged files?

      Also normally on a project *that* huge I would assume that some of the code is not executed very often, and can be dynamically linked without a significant performance penalty. I would say the dynamic linking pretty much eliminates the linking time argument. I mean, who wants to load a 50MB executable binary anyway?

      The reason that I think a lot of companies do recompiles of all the code is because of some revision control. Maybe they want to build the stable branch to test a release, and they don't have the version specific object files around (because they're working on the devel branch). However, how does java solve that problem? You'd need the right object/class files for the right release, no matter what.

      By the way, nice website :)

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
  338. They just don't know any better. by Lord+Kestrel · · Score: 1

    Seriously, they don't. Some scripting is easy as hell, while some things can be a bitch to implement. I've done scripts that would've been better as actual compiled code, and code that would've been better as a simple tcl script. Unfortunately, management gets what they want. If some manager says that he wants X done with a script, he gets X with a script. Even if it would be easier, better and faster to do it with code. And the same for coding. If one of the users says that he wants a program to do some simple function, my manager makes us write a program to do that function. Even if all it is is a fucking file copy from one server to another.

  339. It depends on the OS by glenebob · · Score: 1

    I'd say that usually the difference is in which OS you're writing for.

    Under Windows, the scripting language of choice is the cmd.exe language, whatever that is. It allows about as much expression as a .ini file. Moving beyond it requires installing extra programming tools, be it Perl or Python or c++ or whatever. Also, scripted programs under Windows are treated like second-class citizens by the OS. You don't get the equivalent of "#!/python" under Windows, you have to execute scripts by executing the interpreter and giving it the name of your script on the command line. Anything but native executables wind up looking cheesy because of this.

    Under most other OS's (especially UNIX-like ones), you have real choice right out of the box. You can choose the best language for the job based on its merits and nothing else. With so many languages available, you rarely have install extra packages to get the work done, and even more rarely to allow a client to use your software. And since a script file appears the exact same as a native executable file (unless you look at it in a text editor), you can write serious software in any scripting language you choose and not have to worry about that cheesy look.

    Also, under Windows there is a much higher chance that you'll run into something you just can't do with a scripting language, because of such things as hard-to-do access to devices (no /dev directory), and hard-to-do access to configuration data (hooray for the registry).

    There are other problems under Windows too. So, if your target platform is Windows, by the time you add up all the little barriers, it almost never makes good sense to use a scripting language.

    1. Re:It depends on the OS by mlk · · Score: 1

      Under Windows, the scripting language of choice is the cmd.exe language, whatever that is
      Not true, I recomend you read up on Windows Scripting Host (which supports PERL, VBscript & JScript), or look at Cygwin.

      hooray for the registry
      Yeah, Hooray. One cenrelised and standardized settings location. No parsing .rc/xml/ini/insert-random-format-here files, just a set of OS given fucntions.

      WSH has one major problem, which does not exist in SH world. Documentation, which is why more ofton than not, I end up using Cygwin (that is BASH) for scripting under windows, and I am no more limited than under insert-unix-a-like-of-choice.

      --
      Wow, I should not post when knackered.
    2. Re:It depends on the OS by glenebob · · Score: 1
      Windows Scripting Host (which supports PERL ...)
      Doesn't appear to support PERL out of the box. And no mention at all about Python. Looks like I get vbscript (*snicker*) or jscript (don't know it, probably not gonna bother). Otherwise it's an additional install for me and anyone who wants to use my code.
      No parsing .rc/xml/ini/insert-random-format-here files...

      Is ". myprog.conf" really that tough? I'd bet there isn't anything even close to that in any language accessing the registry.

      more ofton than not, I end up using Cygwin (that is BASH) for scripting under windows
      Which get's you right into the middle of my point. Cygwin means an extra install, both for you and for anyone who wants to use your code.

      What falls under the falling-off-a-log category in *nix, falls under the probably-not-gonna-fly category under Windows.

  340. Who moderated this insightful? by autopr0n · · Score: 1

    You're an idiot who doesn't know anything about modern web design. CSS is about formatting pages of information, now showing pretty pictures and graphics like flash. You can do some of what you can do with CSS with table layout (the only alternative) but it's stupid.

    Netscape 4's CSS is fucked up, but people using Netscape 4 should stop. The browser should not be supported.

    --
    autopr0n is like, down and stuff.
  341. 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.

  342. Scripts vs 3gl vs ...gasp... doing it by hand by bob_jenkins · · Score: 1

    I haven't seen much bias in favor of C over scripts.

    However, I have often seen insistence on either buying prepackaged commercial solutions, or doing all the work by hand. Sometimes they standardize on prepackaged commercial solutions that don't have a text interface, forcing everything else to be done manually.

  343. I don't even want to know... by Anonymous Coward · · Score: 0

    What they would think of the fact that I do tons of automation with AppleScript!

  344. My thoughts on the subject by Anonymous Coward · · Score: 0

    My thoughts on the subject, "scripting languages" are languages that tend to have all the rapid development features and code reuse that c++/java programmers have been talking about for years.

    I most definately see the bias personally, but there are some major points not to be missed.

    the term script is highly overloaded, however most people consider a script something that branches often and has top to bottom flow. They also tend to be heavily on application specific logic, and have poor error management features. ( the scripts not the language )

    Algorithm use useally falls into the generic catagory.

    Something with specific logic tends to break horribly with a new or revised problem. Taking the time to build a better structure is often a good idea, however the assumption is that it is a language problem.

    In real life what is a script and what is a program is beyond grey.

    The myth that "only scripting languages produce scripts" is in error. Perl/python and other major languages can produce a script, as well as a full blown application. The bias has always been towards natively compiled languages, due to the false sense of removing dependency.

    If java has done anything well, it has helped break the homogeny of compiled binary programs.

  345. Building a Large-scale E-commerce Site with Apache by sbwoodside · · Score: 1

    http://www.perl.com/pub/a/2001/10/17/etoys.html

  346. Say it Loud by Anonymous Coward · · Score: 0

    Say it Loud "I script and I'm Proud!"

  347. Erm... by autopr0n · · Score: 1

    A good coder would have seperated the markup phase of the page generation code from the rest, so it could be easily upgraded, or simply changed.

    --
    autopr0n is like, down and stuff.
  348. Hows This For Concise by Anonymous Coward · · Score: 0

    ...Use the right tool for the job. Amen.

  349. spoken like a real 'computer guy' by geekoid · · Score: 1

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

    in short:

    Sure its slow, but the hardware will cover that up.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    1. Re:spoken like a real 'computer guy' by TheLink · · Score: 1

      Something like that but not exactly, it's more like the problem Sun is facing.

      Many small/medium companies that bought PC based servers are finding that the PC server platform roadmap is typically tracking or exceeding their requirements.

      Now a potential snag is the 64 bit x86 CPU. But if AMD succeeds and doesn't crash and burn, those companies will not need to switch roadmaps (Itanium might as well be Alpha/PowerPC/UltraSPARC for practical purposes).

      --
  350. Re:Holy Fucking Gator Shit Bitch by Gordonjcp · · Score: 0, Offtopic

    There is no link to Gator on that page. There is no drive-by Gator install on that page. Perhaps you'd like to fuck off and bury yourself.

  351. "It won't change" is kinda weak. by SilentStrike · · Score: 1

    Pick your favorite version of perl. Instead of calling it perl, call it my_favorite_perl_version_that_will_live_forever. Instead of programming in perl, program in my_favorite_perl_version_that_will_live_forever, so that you don't have to worry about the langauge changing.

    Honestly, managing a 5 year old version of Python code is likely a lot less painful than maintaining a 5 year old piece of C++ code. If they are performing similiar tasks, I'd bet the Python code is much shorter (factor of 5 is within reason). I'd say the same about the maintainability of perl... except that I've seen perl code :).

    Furthermore, while langauges that have one main implementation (perl, python, etc) change frequently, they rarely drop backwards compatibility, so it's likely the old code can run on a new interpretter. In the worst case, bringing it up to date won't be excessively painful.

  352. Examples? by ellem · · Score: 1

    What would take weeks to cod that script could do in hours?

    I do very small (and silly) Perl scripts to break up the day. I can't imagine that any of the log reading, HTML producing, things I do have a week long equivalent in C, C+, Java.

    But I could be very wrong.

    Anyone?

    --
    This .sig is fake but accurate.
  353. windows start by autopr0n · · Score: 1

    You realize, right, that 'start' can open URLs with the system default browser automatically?

    --
    autopr0n is like, down and stuff.
  354. In research... by mofolotopo · · Score: 1

    I've got about equivalent amounts of Java and Perl under my belt, but I use Perl literally 20-30 times more often. I haven't experienced any anti-scripting bias, what I've experienced more is people who only know "programming" languages asking me for help with scripting chunks of their research.

    I should mention that what I do is pretty much bioinformatics.

  355. there are no real or fake languages* by geekoid · · Score: 1

    only real or fake programmers.

    almost every complaint come down to these things:
    1)speed
    2)re-use
    3)maintainability(read ability)

    1 is a real issue that needs to be properly evaluted.

    2,3 are a result of poor programming techniques.

    *except latin, clearly that is a fake program created by some smart ass 3000 years ago. ;)

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  356. no, this is not an ad by circletimessquare · · Score: 1

    ok, i'll weigh in:

    scripters rool because "Go away or I will replace you with a very small shell script" sounds kewler than "Go away or I will replace you with a heavy memory intensive java applet"

    it's all about meta baby... and scripters are more meta than coders... disagree? what KIND OF website are you reading right now? hint: rhymes with beta.

    meta is all about the next level. in every aspect of life. scripting the building blocks is a level above building the blocks. reading the meta site is a step above browsing the websites. life is more peaceful in the airplane at 20,000 feet than it is in the office tower at 2,000 feet. drinking the beer is better than drinking the water and eating the barley and snorting the yeast... er... you get my drift. ;-P

    --
    intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
  357. programming vs scripting by fldvm · · Score: 1

    Can anyone point me to some links discussing the difference between scripting vs programming in layman's terms. This is not a troll; I really don't know the difference (the last computer class I had was in HS in the late 80's).

    1. Re:programming vs scripting by fldvm · · Score: 1

      Are all Python programmers really scripters?

    2. Re:programming vs scripting by magicianeer · · Score: 1

      I have never seen an article discussing the difference, but in my experience the difference is in the approach to solving a problem.

      "Programming" style development is about building the best possible program. It requires an upfront analysis/design stage . During the design stage, you figure out the most efficient way for your program to do everything it must do. This means you must have a (legally and mathematically) precise idea of what your program must do. Then you figure out the most efficient way to build the program. Finally you actually build the program according to the design. There is a certain art to making the implementation conform to the design when the inevitable unexpected problems occur. Good designs have fallbacks.

      "Scripting" style development is about building the program as quickly as possible. The only planning is perhaps 15 minutes of note jotting and brainstorming. While writing code, you will have at least 1 book (printed from a webpage) open on your desk describing the Funky Toolkit you just installed which does 30-70% of the task for you.

      Programming languages are designed to permit the creation of the most efficient possible program. Scripting languages are designed to permit fastest possible creation of some kind of program. Using scripting style development with a programming language will lead to disaster. However, programming style development works fine with scripting languages, though the programmers will not complete the program much faster than if they had used a programming language.

      --
      You can have it good, fast, or cheap. Pick any two.
    3. Re:programming vs scripting by algebraist · · Score: 1
      --
      Jan Theodore Galkowski, (Oo) http://www.smalltalkidiom.net/ MySQL,PHP,ETL,SQL,MinGW C, and plucking the Web
  358. Re:I guess I am biased against scripters as well.. by darnok · · Score: 1

    > Flame away...

    OK ;->

    You seem to be equating "scripters" with self-taught d00ds who've created a few interactive Web pages and consider themselves experts, and "programmers" with college-trained wizards that can be turned loose on any project and relied upon to deliver.

    Good coding practices are essential for any reasonably complex programming task, regardless of the language being used. In my experience, it's usually easier to get people to conform to multi-developer, project-specific rules using (say) Python rather than (say) C++, and I suspect the reason is that Python OO coding is more intuitive and less open to quirks of individual creativity than C++. On the other hand, I've seen some truly laughable Perl OO code, that defies any sort of analysis without the original coder being present; Perl seems to attract people who want to find new ways to solve old problems, and sometimes that's not what the project requires... The trick is to find coders who solve problems in a reasonably concise, auditable and consistent manner, and who are actually capable of adhering to a set of rules. The old term "software engineer" is key; people who approach coding with an engineering mindset tend to delivery higher quality results more consistently than those who approach coding as a creative outlet.

    In my experience, the best programmers are those who are able to select the right tool for the job. In general, they won't use C++ for GUI design when VB is an option; they won't use Perl for high-speed numeric analysis. Well they might, but only if the decision is taken out of their hands.

  359. Actually by Glonoinha · · Score: 1

    Since we are both a couple of flamebait trolls and nobody is watching, we can now discuss it reasonably.

    Actually I was eager to see what the guy had done in PHP, particularly interested as his chosen inplementation was of Trade Wars - a game I played for fun while I was in college. I was looking forward to reliving my youth, as it were.

    I hit the front page, read the discussion about his changing the economy variables, read some of the faq and when I went back to the main page Gator tried to install on me.

    I hold a guy with a background in Trade Wars, particularly a /.'er that has an enthusiam for linux, to higher standards - that is why I went off. I was (am) very disappointed.

    --
    Glonoinha the MebiByte Slayer
  360. Code Bias by Anonymous Coward · · Score: 0

    I work for IBM, I took a month to get an app ready for alpha test. it was tested on a non-conforming production enviroment. It took another week to code the adjustments for such environments, but the new code was never tested, instead IBM assigned the task to C++ programmers
    After three months, even with being able to impose strict conforming rules, it did not work.
    I eventually spen another week and wrote the data-gathering routine, and then the machine modification code in order to get it to work at a 90% level (My original was 99%) with the requirement that a special code book be pulished to all users and network admins to be able to locate paticular machines.

  361. Re:I disagree 100% (OT) by fredrik70 · · Score: 1

    oh, enjoyed your journal by the way. i must say I do believe in copyright law, I do not believe in record companies as a middle hand though.
    When ti comes to software, I'm bit more unsure. I do believe in the OS model. I do not however belive it might be the right path for every single software company out there. Mind you, I do not see it as an xor kind of thing, I do think they can co exist quite nicely next to each other.

    --
    if (!signature) { throw std::runtime_error("No sig!"); }
  362. Exactly! by /Idiot\ · · Score: 1

    The more junior the staffer the more supervision they need. You didn't have time to learn Python & Ruby? (nether do I btw) - you should have at least had the time to watch over and guide him/her.

    --
    /dev/Idiot/
  363. No Clear Line by Hangman+Jim+99 · · Score: 1

    Scripts are good for fixing quick problems. They are also good for developing a suite of often used commands. the problem is when they get into the hands of those that could not write them from scratch.

    I have seen too many scripts adapted from an origional that are of such bad quality, I would dearly love to rewrite them all. Bad the person who wrote them is an entrenched senior guy who is revered by upper management.

    The fact that they see him as a demi-god and he is a scripter means that scripts are OK, but it also means that his scripts are OK.

    This guy breaks every rule in the book. Magic numbers, hard coded machine names, everything.

    I am writing this after spending 3 hours supporting real-time gas pipeline operatirs because his shit failed. Again.

    Scripts in the hands of non-morons are OK.

    --
    --- I hate my sig
  364. 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 mcgintech · · Score: 1
      Your argument is fairly convincing. The doubters would argue with you about the cost of in-house development, however if they had experienced any of the royal screwing which happens when you outsource your app development, they would know that $10,000 isn't unusual for bug fixes and it isn't good business.

      Who would pay that much? The company who got caught with its pants down when some well meaning, but inexperienced/ignorant project manager signs off on it, putting enhancements and bug fixes into the realm of black mail. Of course there are exceptions to this, but its more common than some people would think.

      I see a foreshadowing of the black mail tactics with some companies who sell open source services also. They offer free applications and tools, but if you want the super-duper version, you'll pay and pay well. Sure you can change it all you want, but you'll pay well for support if you can't manage it in-house. Its like to whole question of what language to use...one size doesn't fit all. Maybe Joe Tool & Die's business doesn't require a super custom app to get things done. Some businesses need the occasional taxi ride and some need the concord daily...it just depends. Sometimes the most important business process can't be automated or programmed. The magic key to each businesses success is different and it could simply be something like the friendly atmosphere or something not quite physical enough to pinpoint which sets a company apart from the rest...it doesn't have to be all about the software people. I'll stop there to let you all catch your breath after that last assertion...

      --

      Uhhhh, yeah, thath dithgustin. [The lady's man]

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

    3. Re:Future Reality of Software by aeoo · · Score: 1

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

      Not necessarily true. Owning a home can be a liability compared to renting an appartment under certain conditions. What you're saying makes a lot of sense under many conditions, but you'd be a fool to think you have a silver bullet here.

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

      Sure. This has been true for a very long time now. Does that mean anything? I don't think so. Companies follow this idea and invest into some ridiculously priced software like commercial J2EE containers, .NET, and other crap. They still get their customized software at the end of the day and they still benefit from the wisdom in your #2 bullet, but that doesn't stop them from investing in proprietary tech, as long as the proprietary vendor leaves enough room to play. And it's scary just how little room is acceptable for some companies (please understand this sentence in more ways than one).

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

      Because you can't build a customized solution that's more cost-effective, long term, than a canned package. Remember that it pays to specialize. You do what you're good at and let the other guys do what they're good at. If every company should also become a software development shop, how well will that work? I'm not saying you can't customize a solution that's better than a canned package, but you imply that it's trivial and obviously the right choice.

      What happened to your numbering scheme? Not very organized, Mr. CEO, are you? A point against you as a CEO.

      Free and open source software will win for some good old-fashioned reasons: freedom, high quality, low price. Just the basics.

      You don't have a silver bullet. You don't have a new insight. What you say is old news. I really hope you have some real software or solution to sell, with real benefits, like 1+1=2 kind of benefits and not some new age mumbo jumbo.

    4. Re:Future Reality of Software by RembrandtX · · Score: 1

      Actually .. as a CEO .. you should know that 'assets' are bad for your bottom line.
      [Defining asset as an accountant would look at it .. not as a banker.]

      Assets are taxable, depreciate, and are a permanant part of your business. In some states, assets [such as perminant display fixtures or furnature] are also taxed each quarter like earnings.

      This explains to most folks, why most businesses lease property/sites instead of buying them. [totally forgetting about long term of being stuck with 50 acres of industrual land in a dying city 15 years later.] A lease is a major expense, and a good accountant can keep a business that is in the black - borderline red with a bunch of major expenses.

      Licenced software is an expense. a one time fee, that actually help your bottom line by offsetting a capital gain. [unless of course, your business is in the red - but I am assuming your working for a company that has more than 3 computers - and can afford a site licence from the evil corporation.]

      If you wan't to change the outlook on open source, have the EFF lobby congress to give tax breaks for anyone using open source software. [including the branches of the govt :P] and see how quickly the fourtune 500 scramble.

      --

      --Ne auderis delere orbem rigidum meum, non erravi pernicose!
    5. Re:Future Reality of Software by goon · · Score: 1

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

      develop for platform independence,
      use platform independent languages/sw, I guess that's
      what your getting at here

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

      having seen this in quite a few companies with these symptoms I can give a few reasons
      why nothing happens. (I'm pretty sure you will already be aware of them)

      *A lot of company software systems are grown and not designed and become
      ad-hoc. If company A chooses (or a vendor suggests) using Windows any can
      only change by increments. A lot of resistance is applied (skills + knowledge
      is threatened, costs). It's easier to loose money. So radical change is avoided
      , just stay with the chosen path.
      (avoid tech fads, pioneer application of *selected tech* AFTER careful evaluation
      Good to Great et.,al PP163)

      *hardware + os = determines software choice, hence developers/engineers
      are chosen for this skillset, AND NOT, choose developers/engineers first that can think
      platform neutral/independent systems.
      (choose people then task. Good to Great et.,al PP41)

      *developers and s/w engineers dont have the final say, the PHB has final say.
      (this is okay but how does the PHB know if the tech fits with the company?
      How do they know how to use tech to accelerate their business? Good to Great et.,al PP163)

      I could go on. I guess the point to make is that in business, the culture
      is more important than just the technology. The same technology in the hands of a
      mediocre company will not make it any better than a
      company with a fine tuned focus and culture.

      A lot of the scenarios above are discussed in a book called

      'Good to Great, Collins Jim, PP144-163, CH 7 Technology Accelerators, Random House, 2001.
      [ http://www.jimcollins.com ]
      Specifically the technology chapter which talks about the Internet boom
      and different approaches taken by different companies.

      --
      peterrenshaw ~ Another Scrappy Startup
    6. Re:Future Reality of Software by Chmarr · · Score: 1
      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.

      Saying they cut their own reeds is exactly analogous to companies cutting their own code. Of course, they're just cutting the part they need customised, and not all of it.

      For example, we'll write our own web application because no application out there does a particuar job as well as we need it to, but we don't write our own OS or Web server or script interpretor, do we? No... we'll build on existing applications.

      There is no one 'Right' solution, but it will depend on how closely any application fits the needs of a company. In some cases, an off-the-shelf product will do the job, in others, perhaps a bit of tweaking, and in still others, perhaps a completely new application.

  365. obligatory Ellen Feiss reference by /Idiot\ · · Score: 1

    Um, yeah. I spilt bong water *all over* this page here in K&R, and well ya know I had to parse and FTP some text files for a highschool assignment, and well my dad bought me a Mac and I couldn't get Borland Turbo C 3.5 to install, and I started hiding under the couch.

    I was sitting there for an hour and then it hit me! I could write a shell script, and um then I had another bong, and I'm not sure where the files went...

    --
    /dev/Idiot/
  366. 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

  367. Bla, bla, bla ... by Anonymous Coward · · Score: 0

    Everyone is protecting their own quarters.

    A *real* programmer/developer doesn't think about what tools he/she *should* be using but investigates and acknowledges the problems and choose the right tool for the job, whatever it might be.

    Adaptation and evolution. That's how we conquer not so well formed problems, not by the language we speak or use.

    A carpenter would never use a drill to cut a plank, he can see the problem and picks the right tool for the job. And that's something many so called developers/designers can't (or won't) do.

    Building an application is far from building a real building since you can't patch it. Why don't we learn from that side of the business?

  368. Language, Free? by shadow_slicer · · Score: 1

    Parent appears to confuse languages with development environments. Languages in general are free. I could write in C, C++, Python, Perl, PHP, etc without paying a cent (for compiler, interpreter, or whatever). What most companies are paying for is a development environment which (supposedly) makes writing and maintaining code easier (usually by integrating many nice features and optimizations). There are both free and proprietary development environments for every language I can think of (from Ada to VHDL) including scripting languages.

    I would agree that there seem to be fewer development environments for scripting languages, and they are generally of lower quality than the ones for more respected languages.

  369. MOD NONSENSE DOWN by 198348726583297634 · · Score: 1

    "The plural of anecdote is not data." It sounds like you've dealt with a handful of faux-hotshot developers who worked primarily with scripts, who left you in a mess. You haven't seen enormous unmanageable VB programs? And factory-fresh talent (as opposed to home-grown) has never turned out line upon line of spaghetti C? Here's the counter-argument: I've worked with people who've produced tens of thousands of lines of PHP and perl that interact with multiple outside vendor systems, multiple various hardware add-ons, presenting a relatively bug-free interface to their users and admins. Some of them were trained in CS, some of them weren't. The difference? These people were good, unlike the people you've had contact with. Good "programmers" exist too - look at the FreeBSD codebase. I'm surprised you didn't post a moronic "Mod me down for my original thoughts" tagline.

  370. Be a polytheist by cfulmer · · Score: 1

    One of the problems that you run into in any sort of language decision is that all sorts of people have religion -- you have the OO/C++ types who think everything should be written in C++, others that think Perl is the perfect language for everything, some who don't think that anything should be scripted in csh, java-bigots and so on.

    I've discovered that I need to have a variety of tools in my toolbox. To use the old analogy, if the only tool you know how to use is a hammer, everything looks like a nail.

    There are certainly projects that should naturally be written in C++, some in Tcl and some in assembler. If you have experience in all of them, then you have the standing to pick the best approach for a given project with the confidence that you know what you're doing and aren't just being 'religious' about it.

    I should note that this idea is true for more than just programming languages -- I've used it with networking technologies, programming environments, editors and documentation systems. You don't need to be an expert in everything -- you just need to know enough.

  371. Scripting languages and Moore's Law by alispguru · · Score: 1

    I believe Moore's Law made the current explosion in scripting languages possible, by lowering the bar for scripting language implementors.

    Take the original scripting language, Lisp. I'm serious - Lisp programs are safe (no naked pointers, no buffer overflows), variables are untyped, development is interactive, the first implementations were purely interpreted. Making a Lisp system perform acceptably was beyond all but a few wizards, who had to invent many of the tricks routinely used to speed up interpreters today.

    Today's desktops are roughly a million times faster than the dinosaurs of the early 60's that Lisp was born on, and a thousand times faster than the Lisp machines of the early 80's that Common Lisp matured on. Today, naieve implementations of interpreted languages have acceptable performance on modern hardware, especially when handling web transactions where network latency gives you more time to compute.

    --

    To a Lisp hacker, XML is S-expressions in drag.
  372. 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...
  373. what do you mean by 'check'? by autopr0n · · Score: 1

    //Assuming that by 'check' you mean check to see
    //if the link works, and the text file is one URL
    //per line, the following code should work:

    import java.io.*;
    import java.net.*;

    public class LinkCheck{

    public static void main(String args[]){
    BufferedReader br;
    string url;
    try{
    br = new BufferedReader(new FileInputStream(args[1]);
    }
    catch(Exception e){
    System.out.println("File error, check to make sure file ");
    System.out.println("exists, and that you named it on the"
    System.out.println(" command line");
    }
    do{
    try{
    url = br.readLine();
    URL u = new URL(URL);
    System.out.println("OK: " + url);
    }
    catch(Exception e){}
    }while(url != null);
    }}

    //This is just off the top of my head, of
    //course. But it only took me 5 minutes. If you
    //could give me a more precise definition, I
    //could probably still come up with something
    //quickly.

    --
    autopr0n is like, down and stuff.
    1. Re:what do you mean by 'check'? by WetCat · · Score: 1

      Nope. The task was to check if those links are actually works and produce live streams in the time
      of check.
      Oopsie for java. No beans for you :)

  374. War and Peace was written in French and Russian. by Anonymous Coward · · Score: 0

    So much for that theory.

  375. Python a scripting languages? What happens when by voodoo1man · · Score: 1
    Python will eventually get an optimizing native code compiler? It has many more useful constructs than does Java/C++ (anonymous functions (although I do hear they are somewhat neutered due to the expressions/statement dichotomy, but that can always (maybe it already has?) change), lexical scoping for those anonymous functions, continuations (for lightweight processes), and of course the might interactive REPL).

    Will Pythoners suddenly jump from being "scripters" to "programmers", or are those priviliges reserved for the people that were brutalized by their Pascal/C/C++ education and think that freeing your own memory is some kind of sick initiation ritual?

    Or how about Erlang? Or any other language that includes abstractions beyond classes (look mah! we're object-oriented! we don't have multiple inheritance or a real type system!).

    As has been pointed out in other posts, the whole field of IT is more fickle than the fashion industry when it comes to choosing technologies, and particularly anything related to development. Sure, use Java because your boss said it's popular and everyone knows it and Sun says so etc. And when you come bitching on Slashdot about how your project can always find Java developers in the future, remember that you're part of the problem. Of course you're not going to find any programmers in language X when you're not offering jobs in language X.

    Apologies for the rant.

    --

    In the great CONS chain of life, you can either be the CAR or be in the CDR.

  376. 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
  377. Discrimination by Arandir · · Score: 1

    Dude! It's not your choice of scripting language that relegates you to the tiny cubical in the corner. It's your hygiene!

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  378. Length of development... by Prof.Phreak · · Score: 1

    Scripts are usually written in a few hours/days. Java/C++ development efforts often take months. Yes, they may do exactly the same thing, and have comprable complexity, but a person who makes the job seem difficult (or more precicely: seems to be doing a difficult job) gets the admiration of managment, etc.

    If you can do something in 2 hours (using Perl), then you're just goofind off and not really putting your effort into development (like C/C++ programmers do).

    Hah!

    Actually, this would happen less and less if people were smart enough to pick the best language for the job. There are programs best written in Perl, there are those best to be written in assembly (microcontroller code?), and those best written in C/C++, PHP, etc. It all depends on the job, not the language.

    --

    "If anything can go wrong, it will." - Murphy

  379. one situation by Anonymous Coward · · Score: 0

    decss is pages long in c, but only 2 or 3 lines long in perl.

  380. Exactly! Sometimes C++ Java/Perl/Python by kupci · · Score: 1

    Here's an example (real-world): Company running Net.Commerce wanted to write a fancy 'configurator'. Java was all the rage then (still is), so it was proclaimed that the configurator be written in Java, in spite of the fact that: We had many experienced Net.Data, and Net.Commerce (C++ based). NC has some nice utilities which make it easy to setup a commerce site, but also has basic utilities for retrieving data. But no, they wrote it in Java. Instead of using Net.Data (since they didn't have experienced Java prog), and even instead of using JSPs, the Java code *built the pages* in Java! Yeah, it looked like page one of the Java servlet tutorial from 8 years ago. Now how easy is that to read and debug? Furthermore, database connectivity was so badly handled, so that the system could handle about 1 user at most without locking up. (Their solution was to synchronize the servlet! yowee!) Granted, with experience Java programmers, with good tools (open source database pooling utilities or WebSphere etc), and knowledge of how JSPs, XMLC, XSL, work they could've done a better job, perhaps better than NC. But for just getting the work done and out the door, and the users happy, Net.Commerce would've fit the fill fine. Most of the time was spent in design - the design was great, the followthrough (the actual app) sucked That was a lesson for all.

  381. Re:Certainly not by fearless_froggie · · Score: 1
    Wether to use CSS or tables is the same as whether to use scripting or programming -- it depends on the situation. Granted, situations where you would use tables instead of css are getting to be much fewer.

    If you need to support Netscape 4 in an elegant manner (ie it has to look good), and you're never going to have more than one person working it that's a half-decent scripter: use tables with templates.

    I work for an accounting association and all the accounting offices in our province still running nescape 4 need to be able to access the website to download documents, etc. And, yes, there are apparently large accounting offices that still use netscape 4.

    My office has a budget for one webperson. They get far more out of a full-time programmer than a full-time graphic artist, so they hired somebody that can program and hire out any graphics requirements. The graphic artist gives the graphics to me, and I create a template out of it using tables and php or python (we're very slowly moving from PHP to zope+python). (Besides, I noticed that good designers get a little carried with image file size. They need need somebody to tap them on the shoulder and explain to them that nobody' going to sit around to wait for that animated chair to download!)

    This way I only have ONE version of the website to keep up to date.

    While I'm at it, I've got to add that I absolutely and completely despise javascript. It is completely and utterly broken if you need to support netscape 4, netscape 6, IE 5, IE 6, and I guess, now netscape 7. I have absolutely no time for it. I only use it for simple mouse overs -- hey cool the arrow changes colour when your run your mouse over it!

    We run a number of online courses that require flash, so most local offices will have flash installed. If I need to program something that can't be done server side, I use flash. I can create one version that runs in all the browsers I need to make it run in. Flash can be annoying, but it definitely has its uses! Rita.

  382. Bias may hurt the 'programmers', too by Oloryn · · Score: 1

    Actually, what disturbs me more than the potential bias against 'scripters' is the acceptance of a situation where the supposed 'programmer' faction are comfortable not knowing at least one 'scripting' language. Even if you're not using a 'scripting' language such as Perl for production code, it still comes in mighty handy for anciliary tasks while programming in your 'production' language. The typical 'production' language boils down, at some point, to plain text, and there will be situations where using the 'scripting' language to generate or manipulate code in your primary language will eliminate a lot of tedious and repetitious coding.

    For example, in a situation where Clarion was the 'production' language, I found myself needing to read a file downloaded from an IBM mainframe. The file had variable-size records (not directly supported by Clarion), with no record-size bytes preceding the records, and the only machine-readable layout for the records was a COBOL copy-file. String fields needed to be converted from EBCDIC to ASCII, except that in some cases the REDEFINES verb was used to re-map parts of the record - in those cases, you can't just automatically do the conversion. COMP fields (16-byte integers) also needed to be byte-swapped. The record layout was large enough that I could have spent a couple or three weeks converting the COBOL layout to a Clarion layout by hand, and writing the code to do the EBCDIC/ASCII and byte-swap conversions. Instead I wrote a series of 3 Perl scripts that parsed the COBOL copy-file, produced the equivalent Clarion layout, wrote the conversion code for those fields which should always be converted, and documented those which might need to be conditionally converted. The result was a Clarion template, so that the code could be easily incorporated into the Clarion development environment.

    Not only was this more efficient than hand-coding, it made dealing with the eventual changing of the format by the vendor much easier, as all that was necessary was to run the updated COBOL copy file through the Perl scripts to produce a new template. If I had done the layout by hand, dealing with an updated layout would have required wading through the COBOL copy files looking for changes, and then made the corresponding changes in the Clarion code, a much more tedious and error-prone activity.

    It's not just a question of using the right tools for the right jobs, it's also a question of having your people know enough different tools to be able to recognize when something other than the primary tool is needed.

    I note that Bruce Eckel (a book author and trainer for Java and C++) is suggesting that Java programmers also know Python, for much the same reasons.

  383. Re:Mountains and molehills.. (Python apologia) by Anonymous Coward · · Score: 0

    Python hard to write? Give me a fucking break.

  384. I run WindowsXP by Anonymous Coward · · Score: 0

    I fuck up memory all the time. Woohoo, I'm a programmer! :)

  385. Topic covered a few weeks ago by Tablizer · · Score: 1

    This topic was pretty much already covered a few weeks ago at
    http://developers.slashdot.org/article.pl?sid=03/0 2/10/2032221&tid=156

  386. Re:The right tool for the right job, and maintenen by magicianeer · · Score: 1

    I encountered this as well with one client. My code had been reused, and repurposed and abused into a sprawling mess.. Be direct.

    Like cars, code gets old and crufty and must be renovated (or thrown out and rewritten). The client won't go for it the first time around, but they now know it must be done eventually and can plan for it.

    --
    You can have it good, fast, or cheap. Pick any two.
  387. everyone wants a lacky by boinx · · Score: 1

    the c++ guys pee on the C guys who pee on the perl/python/java guys who pee on the shell script guys who pee on the javascript/php web guys, etc.

    bottom line, everyone wants to code the 'big problems' and everyone else wants someone else to code the annoying ones. if you want to sit in the front of the bus learn c/c++. its simply not that hard. my experience is that you can learn C/c++ faster than learning perl/python really well.

  388. Perl portability is quite good by Animats · · Score: 1
    Actually, Perl has portability and stability advantages over both C++ and Java.

    With C++, compliance with the language spec is still imperfect at the compiler level. Library compliance is even worse. Look at the horrors of GNU "autoconf".

    Java still has the "write once, compile everywhere" problem. The libraries continue to churn. I wrote in Java for a while, but got so fed up with Sun's bug factory that I gave it up. (I also own three different defunct Java IDEs, which is a bit discouraging.)

    With Perl, I'm able to debug the program on a Windows machine and upload it to a Linux server, and it usually works the first time.

    I'm writing as someone who's developing real-time code in C++ on QNX. I'm not a big Perl fan, but it's available on commercial web hosting systems and it works well there. If you have to get some work done on a shared server, Perl is a reasonable way to do it.

    The language situation today is surprisingly bad. Java had great promise, but was botched. C++ has too much legacy. Perl's object system is a painful hack. Delphi is too closely tied to Borland. Visual Basic is too closely tied to Microsoft. The other languages don't have enough market share. It's frustrating. It's also the cause of much bad code. Our languages really aren't very good.

  389. Why are you coding Patterns in the first place by MatthewNewberg · · Score: 1

    In your long post you mention "The typical 'production' language boils down, at some point, to plain text, and there will be situations where using the 'scripting' language to generate or manipulate code in your primary language will eliminate a lot of tedious and repetitious coding." while it might sound like a good idea, I ask you one question. Why are you coding repetitious code. You should understand ways to reuse the code to produce the same effect with fewer lines of code and no repetition. Not only repeating the same pattern use more code which will slow down your program, it also makes it harder to debug. More Code is bad, and using a scripting language to create more code sounds like shooting yourself in the foot.

  390. It's all about "buzzword compliance" by Anonymous Coward · · Score: 0

    Java is buzzword compliant, C++ is somewhat buzzword compliant, VB and .NET are very buzzword compliant. Pay attention to what magazines the office pukes read, and learn to program the languages that are hot according to the business media. Never mind that old saw about using the right tool for the job... this is a new millenium, and symbolism rules over substance.

  391. Re:Certainly not by Animats · · Score: 1
    continue to use tables which render faster, on more browsers, and in less code than the CSS.

    Exactly.

    Style sheets can do to HTML what macros do to PostScript. Real PostScript documents tend to consist of an enormous block of canned macros followed by the actual content. For most short documents, the macros are bigger than the content. Most of the same arguments can be made to defend style sheets as are made to defend PostScript macros. And most of the same troubles appear. Adobe Acrobat is basically a workaround for the problems of PostScript. It grinds the original, "abstract" code down to a low-level representation for delivery. Style sheets aren't that messed up yet, but give them time.

  392. scripting languages aren't real languages by g4dget · · Score: 1
    Scripting languages like Perl and Python get their enormous power, their flexibility, and their ability to evolve rapidly by having no strong dividing line between the language and its implementation. Furthermore, they usually prefer simple and general purpose mechanisms, to complex mechanisms. Python and Perl objects are essentially hash tables, and you can hack around with them easily.

    But, like anything, that's an engineering tradeoff. By exposing so much of the implementation and having no fixed, defined standard, things can shift under the programmer from release to release. High performance implementations are nearly impossible to create. And issues like scoping may end up being more convenient but less reliable (Python scoping is something no serious language designer would choose to put into a language, for example).

    So, by all means, use scripting languages. But don't expect that code to survive in the long term: 10-20 years from now, the interpreter that executed that code will be gone, and nobody will be able to determine exactly anymore what it actually meant.

    A "real language" is a language with a clear, well-thought-out definition that doesn't change every few years and that does not excessively expose implementation details. And while "real languages" are almost universally less convenient to program in than scripting languages, there are reason why people put up with the hassles.

  393. True by still-a-geek · · Score: 1

    Most of these types of "programmers" are the leftovers from the mid 90's when companies were hiring anybody as programmers. In my experience, they don't have the aptitude to actually design a software system using a software development paradigm. So, the company stuck them in a specialized group that did only scripting with one type of scripting language (e.g.: Javascript).

    If you want to get ahead in your company, make sure you know a compiled language as well as a scripting language. They complement each other when trying to get a project done on time.

    --

    "Happily lived Mankind in the peaceful Valley of Ignorance." -- Hendrik Willem Van Loon
  394. It *is* compiled! by GCP · · Score: 1

    I can't believe that even the defenders of Java are missing this point.

    Java *is* compiled. You don't run the bytecode anymore (except in a very few very small implementations).

    Most compiled languages (like C) are compiled once by the programmer, then the resulting binary is executed many times. In the case of Java today, the source is compiled to bytecode by the programmer, but then the bytecode is compiled to binary -- not each time it's run, but just the first time it's run on a given machine. After that first, slow run, it is essentially the same binary as if it had been compiled to binary by the programmer, but with some advantages of being optimized for the specific runtime.

    It's also true that modules that aren't called don't get compiled until the first time they are called, but then they're cached and they don't get recompiled.

    Java is so fast these days because it has abandoned the "execute the bytecode" ways of its early days. These days, it just does a late compilation to native.

    And for benchmarks like the QuickSort mentioned in this thread, you can't measure it reasonably by doing one run, you have to run the same algorithm several times, then measure one iteration to judge the speed.

    In other words, when running Java servlets serving customer after customer, the first run is really slow because that's when it compiles, but then you get another 100,000 runs of the same object code with no recompilation, and to judge the speed you should look at one of those 100,000 and not just the startup run.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  395. MOD PARENT DOWN! by Anonymous Coward · · Score: 0

    He's giving away our secrets! Hurry, we don't want it to spread any further!

  396. Defining scripting by GCP · · Score: 1

    I believe "scripting" originated as a way to automate the functions of an app. Instead of manually calling the functions, you could write a little script and have the program save it and run it for you on demand.

    So for this reason, it tended to be higher-level, specialized, and slow compared to a "real program" but faster than manually entering the commands.

    Some scripting languages, such as the pseudo shell scripting language that Perl started out as, called lots of outside utilities, then gradually internalized them, then added libraries of its own, then spread across platforms and, as far as I'm concerned, just morphed into general-purpose programming languages.

    For the most part, though, I would stick with defining scripting as high-level automation of features that are implemented in a lower-level language and programming as using a lower level language to create new things, and *yes* I can see that it's a spectrum.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  397. Re:Mountains and molehills.. (Python apologia) by Chester+K · · Score: 1

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

    I'm sure I could whip out 10 lines of Perl that would make any C/C++/Java-only programmer's head spin. Hell... I bet I could implement a flight simulator in 10 lines of Perl.

    --

    NO CARRIER
  398. My experience... by coyote-san · · Score: 1

    My experience is that, as I get older, is that my code has gone from near perfect to so bug-ridden that I'm amazed it ever works.

    Have I gone senile? Or just gotten sloppy?

    Or is it that I've learned to use assertions and strict compiler checks and the like for any program that I won't immediately delete once I have run it once? (I've seen too many "quickie" programs live for a decade or longer.)

    The third possibility is that my code today is a lot more intelligent than the first few years I wrote code. E.g., a few years ago I would never transparently compress my data, but now I use zlib several times a year. But I may only be comfortable writing this type of code after developing those other skills.

    --
    For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
  399. LIES by Anonymous Coward · · Score: 0

    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.

    Up until a couple of years ago Perl had a great reputation as a scripting language. In the mid-to-late 90's it even enjoyed a status as a "hot" language, and Perl programmers were quite sought after. And then, perhaps coinciding with Python's surge to popularity (and definately spurred on by Java programmers who also stand a lot to gain by being disparaging towards Perl) the lies you try to pass off as gospel truth started becoming trendy. Perl became a kicking boy, completely unjustifyably.

    Now, to address the bullshit claims in your post:

    Lie #1 - Perl is "cryptic"

    This single statement shows that you just don't know Perl. Any language can look "cryptic" if you aren't familiar with it's syntax. But if you are competent in the language it is clear as day (unles it's programmed by an awful coder, who no language will help anyway)

    Furthermore Perl, Java, C++, Python, JavaScript, ASP, Visual Basic, and Delphi, to name just some of the most popular languages, are all similar enough in syntax that they're not very hard to decypher if you know any one of the others, and especially if you have a reference book in front of you. So even if you don't know the language you can easily get the "gist" of what is happening. And if you do know the language, you have no excuse for not understanding it (unless the program you're reading is written by an incompetant programmer).

    A related lie I hear is "Perl looks like line noise". What people are likely referring to are regular expressions, which are used all throughout UNIX, not just in Perl but in vi, sed, awk, etc. If you are using UNIX at all you would do well to learn and live regular expressions, because they are super useful and very powerful. Until you learn them shut up about them looking like line noise, because that makes you look as ignorant and bigoted as someone who curses foreign languages for not sounding like English.

    Lie #2 - Perl has a steep learning curve

    If you already know shell scripting and UNIX utilities you're more than halfway there with Perl. Therefore a UNIX administrator's learning curve is _halved_ if he choses to learn Perl over virtually any other language. Not surprisingly, the first niche that Perl carved out was in easing system administration tasks. System administrators loved it and used it on _production_systems_ (see Lie #3), because it was the perfect tool for the job. Since then Perl has aquired one of the most complete library collections of any existing programming language. Therefore you don't even need to learn a lot of the lower-level stuff with Perl, as chances are whatever you need to do with it has already been written for you, you just plug in a module and off you go. Easy.

    Lie #3 - Perl is not suited for use on production systems

    Try saying that with a straight face to any of a million system administrators who are the ones maintaing your production systems. They are the ones who keep your system stable and running, and more often than not they chose Perl to keep it that way. Apart from system administration tasks, Perl is also well suited to application programming, especially when text processing (say HTML, ie. any web application) is involved. I could go on and on about Perl's veteran status for production quality applications, but don't take my word for it, look at CPAN http://www.cpan.org/

    Lie #4 - Perl doesn't encourage "good software engineering practices"

    If you mean Perl is flexible and you can program any way you want, then it's true. However, this is only a problem for very junior programmers or people who shouldn't be programming in the first place. For them you can try to make a virtue of inflexibly sticking by "the one right way" to program. But professional, veteran programmers will want the flexibility to do it their way, and Perl will allow them to do it. And, as veteran programmers, their choice should be respected instead of trying to force them in to whatever new programming fad is in fashion this week as "the one right way" to program.

    In conclusion, Perl is a great language. It's fun to learn, fun to program in, and can hold it's own against any other language out there. But, like all languages, it is just one tool out of many, and can't won't be perfect for every job. If you recognize it's strengths and weaknesses you will be much better off than if you blindly believe the ridiculous insults that are being slung at it by jealous lovers of competing languages. Because that's where these insults really have their origin, not from any kind of objective evaluation of the facts.

  400. Java Blows by Anonymous Coward · · Score: 0

    If it doesn't have multiple inheritence, it can kiss my ass.

  401. Now what if I code in Java Bytecode Assembler? by mparaz · · Score: 1

    I used to do 8086 assembler, and now do Java, so now Java bytecode assembler is interesting!

  402. Scripting for Subhumans by Troll_Kamikaze · · Score: 1

    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?

    Yes, it is true, and I hope it stays that way.

    There's nothing more satisfying than shoving my Python down the throat of an obtuse, lumbering behemoth of a competitor that's too narrow-minded to consider using an unconventional language in an imaginative way. In fact, I get off on it.

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

  404. `executive-level technology management' by infantileIdiot · · Score: 1

    perhaps the term is an oxymoron. from my (admittedly limited) experience, `executive-level' folks don't have much interest or even experience in getting the job done (and no - visions and sales promises don't run on servers, as much as we'd like to hope; code, as flawed as it often is, does)

    take javascript - it's more powerful (as a `core' language) than java (it lets you write code at runtime). now go look for job openings which require js. how many LISP openings out there?

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

  406. OMG! by Anonymous Coward · · Score: 0

    This is SOOOO TRUE!

    I watched a "C++ Guy" give another C++ programmer a project to do which would take him 2 weeks to flesh out, and would only take a day to do in perl since I had done similar projects before.

    And I wonder why that company is gone now.

    Its a shame that program managers dont think "gee, whats going to be faster to code and get the product to our customer faster?" instead of "C++ or nothing".

    Its the reason I bailed from the company before it went under.

  407. And another thing... by Anonymous Coward · · Score: 0

    If you really "don't want to get in to a flamewar" I suggest you keep your mouth shut on controversial subjects, instead of passing off your oppinion as fact.

    If any post on /. deserves the epithet of "flamebait" it is yours.

  408. task complexity by Anonymous Coward · · Score: 0

    There are a large set of problem domains that are inappropriate for scripting and interpreted languages. For instance, you don't find ring-0 code written in scripts, nor many compilers. Such tasks are often many orders of magnitude more complex than the tasks for which scripts are best suited, which perhaps contributes to the bias.

    That said, it seems that there is some fuzzyness between the categories. What's a scripting language, and what's an interpreter? The lines blur, since scripts tend to be interpreted. I tend to think of scripting as simply glueing little bits of externally supplied functionality together, while interpreters are more suited for creating real software with real algorithms and real data structures. E.g: .bat language = scripting language. Perl = interpreter.

    Just MHO.

  409. And here are the reasons i don't like scripts. by Anonymous Coward · · Score: 0

    Scripts always depend heavily on the environment where they are running in; for instance first you usually have to install an interpreter.

    Scripts run as a glueing tool to connect some components togather - they are also great as a tool to creat job security (that's why sysadmins love them ;-)
    Leave out the scripter - and the whole thing is likely to stop functioning once a small little thingy changes in the environment.

    Of course you have similar problems with executable code; but here you are trained from the start to abstract those location specific details away.
    And that's the whole difference.

    1. Re:And here are the reasons i don't like scripts. by shotgunefx · · Score: 1

      I totally disagree.
      It depends on the programmer. Everything more than a -e command line Perl program that I do has locations/ports and everything else abstracted away and all packaged up in a module.

      As far as moving between envrioments, the biggest thing you hit is socket stuff which still with a little care be taken care of nice and easy which is just as easy if not quicker than recompiling a binary.

      --

      -William Shatner can be neither created nor destroyed.
  410. Scripts should be used for prototyping by stephanruby · · Score: 1

    Scripts should be used for prototyping and if the prototype doesn't do the trick, then the original programmer who wrote the script can convert the program to the language of choice.

  411. Re:Mountains and molehills.. (Python apologia) by Anonymous Coward · · Score: 0

    If you don't know about python, it's time to check it out.

  412. Scripter? Programmer? Who cares! by esanbock · · Score: 0, Troll

    They're both unemployed!

  413. My counter-experience by PhilHibbs · · Score: 1

    I work for a large consultancy, the sort that I thought would be infected with this kind of bias, but discovered that pragmatism is very much valued. I was head techie supporting a large application that someone else had written in C, and when we had to fix a bug, I came to the conclusion that recompiling it was probably quite hazardous (we had loads of source code, but couldn't be entirely confident that we had the right code, or that we were using the right compiler options) so I wrote a 20-line Perl script that would run after the main batch processing program, and would fix the mistakes that it made. It was accepted, and implemented. Quick, reliable, and it didn't risk breaking anything.

  414. Umm... by Anonymous Coward · · Score: 0

    After much wasted time, I have decided that exactly 97% of you are 12 year olds taking an introductory BASIC course.

    Shut Up

  415. Scripting is now legitimate thanks to InfoWorld! by Ed+Avis · · Score: 1
    At InfoWorld, scripting languages are not only first-class citizens, they have received my CTO Medal of Honor.
    Just wait till I tell my boss this! Java's days here are numbered!
    --
    -- Ed Avis ed@membled.com
  416. Runtime dependency by rendle · · Score: 1

    If you compiled a program using gcc 3.0 and deployed it, chances are it's still working now.

    If you wrote a script for PHP 4.0 and deployed it, and someone upgrades the PHP runtime to 4.3, chances are it's buggered.

    I realise that second thing probably applies to Java VMs too, but I hate Java, so that's cool.

  417. Migrating from scripting to Java, C++ and back? by totierne · · Score: 1

    I am an experience shell scripter [9 years, experienced as in they are not pretty but they work], I am also an experienced C programmer and more recently a java programmer [5 years]. I have written up some short notes on sed and shell coding [Shell_Boot_Camp] (and examples) .

    Is there an equivalent small reservoir of java programs that do much the same thing, ie a bit of regex, find and pipeing? Whenever I have a small problem to solve that can be scripted I can never be bothered to gear up a java program 'from scratch' so I never build up a small set of java programs to do the job.

    I feel I thrash so much between techniques, I should stick to java where possible, as this is the closest to one size fits all.

    Hey I work in migration so the same goes from moving, or switching back and forth, between different languages, so equivalent hello regexp, find and pipe in shell (csh,bash,ksh),c, perl, msdos batch files, java, python would make a good entry in a migrationdotcom site.
    This is currently a very small hint at what a database migration community site might look at, but is so light on implementation it could go any where, but most likely nowhere ...

    1. Re:Migrating from scripting to Java, C++ and back? by Rick+BigNail · · Score: 1

      Ever heard about Beanshell?

      it may help...

  418. Scripting or programming isn't about language... by Qbertino · · Score: 1

    ... it's about the problem and the solution you want or need.
    For instance:
    Just now I'm working on a software agent that automates information retrieval and update via the web. It's a long row of subsequent tasks that have do be followed by the book in a very procedural manner. Meaning I would call the resulting Software a 'script' more than an actuall 'programm'.
    Now if some time later we move on to build a more general information agent 'engine' I'll do it in 'serious' OOP, separating the regex-runner, scancycler and whatnot in different classes. Easy done with the very same language as I'm using Python (yep, here Perl goes byebye...).
    Until then I just need a working system and anything more than JIT compiled Python in scriptstyle - as opposed to precompiled/frozen post-Python binary - would be a hideous bloat. Same if I would be using Java for just that.
    Bottom Line:
    To me anyone who, for whatever reasons, draws a line between 'scripters' and 'programmers' is a silly goof that really doesn't know what he's talking about.
    Oh, and btw.: OOP is also about working with a team. The extra OOP bloat is easyly outrun by the teamworks productivity gain. If the programm is overseable and done by one alone it could look very much more like a script and be just as good.

    --
    We suffer more in our imagination than in reality. - Seneca
  419. honestly, who cares? by jesse.k · · Score: 1

    if you feel that the man is keeping you down because you only do scripting, get off your obese ass and learn programming.

    jesus people, it's not rocket science.

  420. 2 technical problems with scripting languages by Anonymous Coward · · Score: 0

    I don't mean to be religious, but there are two aspects of at least one of the scripting languages that bother me, and caused me to abandon it. It was either Perl or Python (or both), but it was long ago. Tell me if this applies to your language:

    1) If you write a variable name in a script, it automatically becomes a valid variable. This is a problem because, being human, one can make a typo in using that variable's name somewhere else throughout the code. Unfortunately, that variable is entirely valid, albeit initialized to zero. With compiled languages, you can catch such common mistakes.
    2) Lack of strong function prototyping, ie, you can call a function with a varying number of arguments, without having an explicit coded idea of the number of arguments it expects. For example (using C style syntax)

    void My_Function( )
    {

    }

    could be called with 0 to 100 arguments; anybody who didn't write the program would have no idea how many parameters are required. I think this was a Perl problem, but I think the interface between Python modules also has this problem.

    Feel free to correct me if I'm wrong. Maybe those languages have changed since the last time I looked.

  421. You're on. by Anonymous Coward · · Score: 0

    Hell... I bet I could implement a flight simulator in 10 lines of Perl.

    Go on. I dare you.

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

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

  423. So many good points by horza · · Score: 1

    In the companies I have worked for, there is definately a rivalry between the 'scripting language' group and the 'low-level language' group. The former calling the latter dinosaurs, and the latter saying 'yeah whatever, we get paid more than you do'. In reality this competition is a good thing and makes each group think seriously about what they can gain from each other. The former group get to learn the concept of "version control" and the latter can copy the libraries to improve their productivity. Personally I would pair one of each together in a team!

    In my opinion, a good programmer can eg name three different sort algorithms, not name {insert low level language here} as his favourite language. A good programmer will also be able to go in and bug fix a language he has never seen before, given a basic guide to the syntax and decent comments in the code.

    Phillip.

  424. Re:Exactly! Sometimes C++ Java/Perl/Python by battjt · · Score: 1

    Sounds terrible, but "out the door" is completely different than IT. For in house development, the greater cost is maintenance. In IT, rarely do you get to throw the product over the wall. Even as a contractor to multiple companies, I get called back to work on things that I haven't seen for 6 years.

    6 year old C code is easier to read than 6 year old perl.

    There is no cure for bad programmers (not the person, the whole package of technical skills, communication, and tools) and I would argue that a bad programmer is worse than no programmer.

    Joe

    --
    Joe Batt Solid Design
  425. "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.

    1. Re:"Enterprise" != Scripting by DigitalSorceress · · Score: 1

      Wow, it sounds like you work for the same people I do.

      At heart, I'm a PHP/Perl and .sh kind of person. Since I am a webmaster for a company whose sole product is a web application, one would assume I'm allowed to use the right tool for the job - nope - we've got a "Chief Scientist" (I kid you not, that's his title) who is in all probability, a good programmer. However, his "religious" attitudes in favor of "enterprise coffee pots" (I WILL have to remember to use that one on him) and his total disdain for scripting languages mean that anything he is trying to do, I could have done 10 times faster on cheaper hardware.

      He once actually told me that he was an "engineer" and that people who code assembler or script languages (or really, anything not Java) were NOT engineers. I countered with something my best friend (a former DEC programmer of formidable skill) told me:

      "An engineer is someone who has the skills and knowledge to work with the parties involved to implement a REAL-WORLD solution that works best given the particular requirements, time and budget of the task at hand"

      I get my little satisfactions on my job from the knowledge that I have written the glue that binds his "enterprise coffeepots" together using Perl and Bourne Shell scripts, and that it would infuriate him if he realized just how much his precious utterly depended on such "unworthy" procedural tools.

      --

      The Digital Sorceress
  426. Bukkshit. by jotaeleemeese · · Score: 1

    I mean, bullshit.

    The CS degree gives you the tools of the trade. The "drive" or "values" (whatever that SUBJECTIVE things are) are a personal trit that nothing has to do with a fscking professional education.

    Although you need to be a self learner the basics given by formal education are invaluable. A good scripter normally can't manage to work under the constratints of a big programming porjects. Real programmers can because that is part of the learned trad (serious programmers know about project management, time constrains, working in teams, formal software specification, etc).

    --
    IANAL but write like a drunk one.
  427. Re:I guess I am biased against scripters as well.. by dkf · · Score: 1

    Just because a body of code is huge and written in C/C++/Java/.NET does not mean that the code is any good. Bad, and more particularly indifferent, programmers write awful code in whatever language they use. (Bad programmers have trouble writing code that recognizably belongs to any particular programming language!) Doesn't matter if the language is a scripting language, a systems language or machine code toggled in on the front panel.

    OTOH, the pointyness of the boss's hair does seem to be inversely proportional to the quality of the code...

    --
    "Little does he know, but there is no 'I' in 'Idiot'!"
  428. Re: Tradewars for the Web _in_C_! by Sun+Tzu · · Score: 1
    Back when I wrote my tradewars for the web system, I didn't have no steenkin' PHP. I had to hand code it, along with the webserver, from scratch. Sure, it sucks, but we *liked* it!

    Send us your Linux Sysadmin articles.

  429. It's not what language you use... by TonyJohn · · Score: 1

    ...it's what you do with it.

    It strikes me that a "script" is a list of things to do in order (such as a theatrical script), with a high level of abstraction.

    A program on the other hand is more low-level. It is concerned with data structures and flow control and is generally harder work to write and interpret.

    It is quite possible to write script in C (hello-world is a good example - it does everything in order, and what it does do it calls from elsewhere). Likewise, in most languages it is possible to write a complex program. Of course, C is much better adapted to "programming", and, say shell is better adapted to "scripting", but this does not mean that they could not do the same job as each other.

    Therefore I conclude:
    - The distinction between "programming" and "scripting" is not discrete, but continuous.
    - For a job at a particular point on the scale, almost any language could be used, but some languages will be better than others.

    TJ

    --
    Owl tried to think of something wise to say, but couldn't.
  430. Discrimination by Scholasticus · · Score: 1

    My boss is always asking me to writ Perl scripts. Unfortunately, I'm the janitor.

  431. *Ahem* by TaranRampersad · · Score: 1

    Perl isn't a script language... it *can* be a script language, but it isn't defined as one. You can go native if you wish.

  432. In scripter's defense... by Anonymous Coward · · Score: 0

    From a generic point of view, programming is simply writing instructions for a computer to carry out. These instructions usually have to be compiled into programs that can then be run.

    Scripting is writing instructions that are compiled on-the-fly, or on a use-by-use case. They might be a few milliseconds slower, but accomplish the same task.

    Tasks that are "do this and terminate" are better off left done by scripts. Tasks that are needed again and again by other objects are better left to already-compiled programs.

    1. Re:In scripter's defense... by BigLonely · · Score: 1

      Exactly! I once ran some FreeBSD and Debian servers that were so heavily scripted, it was hard to keep track. I did keep a log foe future "undo's", but it is easy to loose track. Most of the scripting concerned security, firewalls, and interaction with home-brewed IPtables. The "spirit" of some of those scripts today are integral parts of certain firewall applications. It all starts with the ~/.tcshrc file, then you can't stop. It gets tooooo good.

  433. Gator... by Ron+Harwood · · Score: 1

    Sorry - I use a couple of different ad companies right now... and that can sometimes happen...

    It's not me directly...

  434. I'm biased for scripters! by foxtrot · · Score: 1

    I've seen the code most of y'all programmer types turn out!

    Seriously, though, a few years ago I took my "senior design" course in college. I'd never used java before, but the other two competent people on my team had, and what the heck, it's just a programming language, right? So we decided to do it in Java, using Swing for our GUI.

    Java, to me, feels more like scripting than programming-- it felt like everything anyone would ever want to do was in a library, and all I had to do was write some glue, just as if I was writing some ksh to glue together sed or awk. I really began to wonder whether there was truly any difference between "programming" and "scripting" anymore.

    Of course, I then went home and put in some work on the game I was writing for the Intellivision, and that's completely different-- but there aren't many bits-and-registers programmers anymore. Modern programming, for the vast majority of us, is really not so different from scripting.

    -JDF

  435. Discrimination by Martin+S. · · Score: 1

    The article should be moderated as Flamebait.

    It's promoting victimhood and marginalise competence. It is miss-using the word 'discrimination' to presume a negative connotation and automatically associates a negative moral imperative to it. Discrimination is the process where a determination between states is made. There is nothing inherently imoral or wrong with discrimination providing it is based on objective criteria.

    Yep programmers do generally look down on scripters and managers too and yep this is discrimination, however to assume this is wrong as the article suggests is to fall for crude double think.

    What differentiates programmers from scripters is not the language used but the scope of the languages available for use. If you can develop software independent of language then you are by definition a programmer and also by definition more skilled that a scripter who can only develop software in scripts. Programmers are by definition more widely skilled that scripters.

    AIH I consider myself a software engineer, because I am competent in wide range of skill I can system engineer, analyse, design in multiple paridigms, I can program in half a dozen languages from multiple paridigms. Oh and yes I can script. I can also construct a cost benefit analysis to see which is the best approach to utilise, a quick a dirty script that will be used once or a well designed and engineered system that is robust and flexible.

  436. Re:I disagree 100% (OT) by Nyarly · · Score: 1
    It isn't that I think that copyright should be abolished, but the holders need to understand that it's a special status extended to them because they've voluntarily stepped off the path of real scarcity. We help them because we like what they do, but I really like the analogy to handicapped access laws or affirmative action: they're established to help the disadvantaged, and screaming to loud about how they're not good enough ought to be met with a certain amount of righteous disdain, rather than fear, trembling and legislature.

    Quite honestly, I hold a couple of copyrights, so I theoretically have an interest in those rights being protected. Even if, as is the case, those interests are mosly academic, since the actual properties don't have any proven value.

    It's been nice meeting you. I hope I'll see you around. A pointer to a pointer to a pointer, indeed.

    --
    IP is just rude.
    Is there any torture so subl
  437. Web Guy Pokes Head In by Anonymous Coward · · Score: 1, Interesting

    Seems like corporate decision makers are so wrapped up in a finite number of choices that often scripting languages are completely overlooked. Something like a "Java" is a safer choice because people have heard of it, vs.--say--PHP.

    Because I started as a Web hack guy, all I know is scripting languages like PERL and PHP. And JavaScript. Ah, JavaScript, my old friend. I was sitting and listening to managers talk about the feasibility of customizing a links menu on a Web site. Emails flew back and forth, and consultants theorized that a java applet coupled with the user database blah blah blah. (Not at all feasible at this particular stage.)

    I couldn't take it any more. "I'll do that in JavaScript," I claimed. And I did. Took me like an hour, coding from scratch.

    "I didn't know you could DO that in JavaScript," my boss said. "I looked all OVER the internet and couldn't find anything like that. How did you do that?"

    "Well, I know how to *program* in JavaScript." Cutting and pasting, of course, is how we LEARN, but writing from scratch is how we deliver the right solution based on the given problem.

    Not enough decision makers even consider scripting programs. PERL: Some kind of old-fashioned Unix code used on old-fashioned web sites. PHP: Some kind of wacky open-source fetish. JavaScript: Crap that you cut and paste from Websites, or that mysteriously gets generated by FrontPage. If it doesn't take 8 weeks to program, it couldn't possibly do the job.

  438. 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)
  439. This is completely silly. by ins0m · · Score: 1

    Here's what I consider stupid about all this. If you write something that is stateful and capable of Turing decision, you just wrote a program. You programmed; SGML is not programming, it's markup. However, shell, C, Ruby, Perl, FORTRAN, MIPS assembly... what have you. It's all programming. You write a coherent path from A to B that allows for some varied input to calculate. Decisions are made based on the state that is carried; so where's this bias coming from?

    I am a C programmer by nature; I love inline asm like no other, even if it kills portability. I'm fortunate enough to be comfortable in x86 and SPARC assembly, so I can reasonably roll out different versions of my projects if needed. However, the first language I ever picked up was Perl, and I'll be damned if anyone can part me from the power that the regex system in that language carries. It makes a lot of low-priority, mass-storage parsing a hell of a lot easier than coding it up into a fully-compiled language.

    Now, that said, I do think that this comes down to using the right tool for the right job. I'd be a fool to think that I could write some of the heavily-traversed data-access software we use (since we're currently running some bargain-basement DBMS, there's quite a bit of in-house work to interface) in an interpreted language. We'd never be able to get all the day-end reports printed before midnight (and the office closes at 5; we burn trees like no other). Nevertheless, sometimes I'll knock out my algorithm in Perl to lay out the concept before attacking it in C; that saves me a lot of algorithm checking when I'm debugging. Hell, it probably saves me 3 days' debug time by punching up the algorithm in Perl in one day.

    The beauty of computing is that there is no one "right" way of solving a problem. Deadlines, urgency, process priority, systems load... These are the things that determine which angle to approach "How do I code X?", and anyone who thinks otherwise is pretty foolish and closed-minded.

    --
    Never attribute to Hanlon that which can be adequately attributed to Heinlein.
    1. Re:This is completely silly. by ins0m · · Score: 1

      Obviously, I shouldn't be ragging on SGML's, as I just b0rked the tag. *sigh*

      --
      Never attribute to Hanlon that which can be adequately attributed to Heinlein.
  440. Who knows the difference ? by sad_ · · Score: 1

    True story once again;

    somewhere down in the past, the department next to us was the internal programming team. basicly they did everything in VB.
    Now at a sudden time, i'm writing this gigantic bourne shell script while one of the VB coders next to us comes over to ask me some stupied question. anyway, he looks at my screen and sees my script and says - wow, you know C ?

    just goes to show the world is full of clueless coders...

    --
    On a long enough timeline, the survival rate for everyone drops to zero.
  441. Strong Typing & Maintainability by BlueFrog · · Score: 1
    Sounds like we're largely in agreement here. "Use the right tool for the job" and all that.

    But I believe that stron typing does make for more stable, maintainable code. Here's why:

    If I write a function in a strongly-typed language (I'm thinking in Java here), I can nail down exactly what I'm getting. All my assumptions about parameter types is made explicit to other programmers, and checked by the compiler.

    On the other hand, if I'm using a weakly-typed, or untyped language, my assumptions cannot be checked by the compiler. (There are languages that get around this, but I'm taking the simplified case for now.) All the assumptions I'm making about the types of arguments I'm going to get are implicit in the code. If I'm calling that function, I need to know about its implementation in order to determine what kind of thingy it will work on. Likewise, if I want to change the implementation of the function, I need to know not only about the kind thingy it was meant to work on, but all the other types of thingies that are actually getting passed to it.

    There are languages that get around this, with implicit typing, etc. But the bottom line seems to be that some kind of typechecking is simply too powerful a tool to give up in favor of letting programmers be a little lazier. In other words: Yes, Lazy is Good, but cover your ass at all times.

    Computers are really good at remembering things and checking the consistency of large systems. These are exactly the things that humans are bad at. Strong typing just seems like a smart division of labor.

    1. Re:Strong Typing & Maintainability by jim3e8 · · Score: 1

      When I program in Python or Perl I sometimes wish for stronger typing. You can pretty much add any attribute to any object you want, which can be very dangerous, and also basically circumvents Perl's "use strict" directive. But I've also seen this used in a powerful way: some of ESR's "metaclass hacking" in Python would probably take forever to implement in a more static language, and the complexity would probably outweigh the benefit of the stronger typing. Perhaps this is not always the case, though.

      I think we raised some good points here--although they're unlikely to be seen now, since my original post got moderated into oblivion. Oh, well.

  442. Why does everyone pick on VB coders? by cr0sh · · Score: 1
    I am a VB coder - I also know a slew of other languages (at home I mainly play with Perl, Java, and PHP - occasionally C - on my SuSE box). I don't consider myself a "hammer-nail"-only type guy, I have a bag of tricks for various things. If you have noticed any of my other comments on various topics around here, you also know that I know more than just coding - but I digress...

    That code you showed was probably the WORST example VB code I have seen. I agree that it was crap code - but not because it was done in VB, but because it was crap - heck, it wasn't even a valid implementation of a bubble sort (it doesn't terminate when no swaps are done, and it "waterfalls" or something with the "i" loop variable that slows it down by iterating through progressively larger and larger sets). Furthermore, the variable are declared (default) as type Variant, rather than a faster Long or Integer type (depending on how many items are in the array). I can almost forgive the array for being of a Variant type, but it given that he was sorting directory contents, probably should have been String. Gsize being a long, but having to be typecast to a Variant for the "i" For-Next. Plus, two loops? Should be doable with only one. Damn, all I can say is that is crap VB code. Had he just made those improvements, it would have ran marginally faster.

    Yeah, a Quicksort would have been better - any competant VB coder already has a Quicksort function available in their toolset, or knows where to find a C version to translate from. If raw speed is all you want, Quicksort is the way to go. But you also need to know when to balance speed of execution with speed of coding - unless you already have a VB Quicksort function available, it might take a bit to cobble one up and verify it works properly. Depending on the task, a form of sort not a lot of people know about - better and as easy to implement as a bubble sort, and faster - but slower than a Quicksort - in fact, it only takes a couple more instructions to add into a proper bubble sort to get it working - it is called the "comb" sort.

    For most directory content listing sorts, it would work fine (yeah, there are cases where there are a bajillion entries to sort through - this sort isn't for it, but it handles way more entries than a bubble sort in less time - it actually isn't too bad, and is as easy to implement as a bubble sort). Also, depending on the number of entries (for example, if you knew you were always sorting 10-50 items), a Quicksort would be overkill to implement, especially if the project needed to be done yesterday, whereas a bubble sort would be fine for the task, at least until you got a breather to implement something better.

    Yeah, the code was crap - not the language (ok, I concede that VB isn't the be-all-end-all of programming languages - but you got to admit that it holds its own - and there are a TON of applications out there written using it, albeit for Windows only, sadly). Personally, I think that if there was an open-source implementation of a VB-like language (ie, a RAD language, with the BASIC-like syntax, but drop the GOTO verb, dammit!), for *nix, you would see the general application market on *nix explode (and by applications, I mean "real-world" apps businesses use, not necessarily desktop or games stuff).

    Like it or not, VB is *the* thing that has really made Windows for Microsoft, acting as both a simple to use application development platform, and a glue language/scripting platform that was simple to understand. Unfortunately, that is also its weakness, in that it allows just about anyone to be a "programmer" and create crap code like your co-worker...

    --
    Reason is the Path to God - Anon
  443. Re:Why we *should* discriminate against scripters. by algebraist · · Score: 1
    (intending to be humorous)

    Yes, and we know the reason why VB was introduced was to give Jolt a market to sell their caffeine-free products to.

    Sorry, couldn't resist.

    --
    Jan Theodore Galkowski, (Oo) http://www.smalltalkidiom.net/ MySQL,PHP,ETL,SQL,MinGW C, and plucking the Web
  444. 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));
  445. Slash has got separation... kind of. by zanderredux · · Score: 1

    Slashcode actually uses the template toolkit. Presentation is separated from logic in the same fashion ColdFusion pages are separated from data.

  446. You think that's bad try this... by BoomerSooner · · Score: 1

    I shit you not go download the Embedded Visual Tools which has VC++ 3.0 and VB 3.0. I thought I'd do a simple project for the local school (notice my name) and it would be a quick few bucks. What's happened is the scope is all f'd up (I'm covered on this because I submit detail design docs to cover my rear) because the specs keep floating. The other problem is eVB is a PIECE OF SHIT. Say for example you're connecting to a local cdb (access file format for wince/pocketpc). You can Select data, you can delete data, hell you can even insert data. So you'd think you can fucking UPDATE data, oh wait, that's not implemented. I guess if you decide you want to use the Left() function/method/whatever you'd better be ready to create your own because it is a Known Bug that will never be fixed (not to mention the 100's of other f'd up things I've encountered).

    I really wish I would have just done the project in Embedded VC++. It would have taken an extra few hours initially but tracking down the nonimplemented "features" that should be available in eVB has been a nightmare.

    BTW I develop for Solaris (Java), Linux (Java, C/C++), Windows (Everything a client could desire), Mac OS 9, Mac OS X, PocketPC, WinCE and even maintain some POS old DOS code. I don't really hate VB as a lot of people do here on slashdot but it is really only good for quick & dirty internel apps. I would never (again) develop a commerical app in VB.

    If I could have one wish for a development tool this would be it:
    Java + MFC (not MFC but like MFC instead of JFC) + VM OR Native Compiled Code + Completely ANSI Standardized and OSS.

    If my company(s) take off I may devote a few developers to building a cross platform toolkit that meets my needs (choke*pipe-dream*choke).

  447. Scripting certainly has it's place, but..... by Anonymous Coward · · Score: 0

    Relatively objective points:

    * Script interpreters or just-in-time compilers are so diverse and
    non-standard that situations often arise where you can't count on having a
    given extension or function. With C/C++ you have things like libc or MFC.
    They are totally ubiquitous and even though there are different versions
    you can depend on things like ANSI/POSIX/C99 standards. Those type of
    standards are woefully lacking in most script languages.

    * Most companies creating a commercial product would bawk if the end result
    of their time and money resulted in script(s) that anyone could pop the
    hood on. Obviously this only applies to script languages that can't be
    compiled (like Java with gcj) or rolled into some byte code (like
    PHP/Zend).

    * Most companies have standards and don't want to spread development efforts
    across a large number of languages. So, they pick a few languages and
    stick with them.

    * Some tasks are absolutely unsuited for script. Writing optimized device
    drivers comes to mind. You might be able to do it in script, but if
    someone laughs at you for suggesting it, I wouldn't exactly call their
    hazing baseless.

    Just my anecdotal experience:

    * I've seen bad ASM/C/C++ and I've seen bad scripting. Bad script takes the
    cake when it comes to the "most deserving a clown college scholarship".

    * Many (most?) people writing code in script languages are inexperienced
    programmers and it shows in their work and end result.

    * People who are pure scripters rarely use version control.

    * Scripting is easy to learn and takes much less mental discipline than C
    for example. I'm not saying that makes C a better language, but I am
    saying that it creates a situation where the first rung on the ladder is a
    bit higher and thus the programmers who learned C/C++ are more likely to
    be brighter folks. This also fuels the perception by non-programmers that
    people who write scripts are not as smart/good as those who write "real"
    code. Here in the real world, their prejudice/heuristic often turns out to
    be justified but not always by their own reasoning.

    * Expanding on the last point, I personally write some things in script and
    some things in C or ASM. I consider myself to be a better judge of the
    "right tool" than someone who can only write script. More experience leads
    to making better choices.

    * When I'm searching at Freshmeat and I see items that are coded with
    scripting languages I usually pass them by. Why? Because experience has
    taught me that they are usually low quality and half the time getting them
    to even run on anything less than the author's configuration is more
    trouble than it's worth.

    * Java zealots make some decent arguments about why Java is good as a
    language. They also say often "if you still think Java implementations
    suck then you haven't seen the better ones as of late". But I have seen
    them. They are better, but they still suck. Slow GUI performance, slow
    load times, and resource hogging are still a problem. Just less of a
    problem.

    * "But wait you can compile Java with gcj!" Yeah, and have you tried it? Many
    Java extensions don't work with gcj, and what's more the code isn't
    optimized very well (slower performance across the board with the tests I
    performed like FFT and Huffman code). Binaries produced by gcj are about
    3x to 4x larger than the same thing done in C++ or C. However, the fact
    that you can compile Java at all is a big step in the right direction IMO.

    * Perl code is 'terse' by design. However, in my opinion it makes for some
    very ugly and unreadable code. It also creates problems for people trying
    to maintain code they didn't author. You could write ugly code in any
    language, Perl just makes it easier.

    * Try writing a raytracer, 3D modeler, device driver, MMORPG, office suite,
    or network stack in a scripting language. I'm not saying it can't be done,
    but do you think the results of such an undertaking will compare with the
    same thing done in C/C++ you are in for a surprise.

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

  449. 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++.

  450. Raw power in a scripting language by alienmole · · Score: 1
    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.

    Try Scheme. It has all the dynamic flexibility of the best scripting languages, and the abstraction capabilities of the most high level academic languages, but can be compiled to very fast code. On benchmarks, some of the compiled Schemes are up there with languages like C.

  451. My experiences by A55M0NKEY · · Score: 1
    'Writing a script' to do something sounds quicker and easier than writing a 'full blown program'. But programming and scripting are synonymous. The first thing I did in IT out of college was babysitting a large expensive canned software package which sometimes involved writing cron jobs in Korn shell ( the big dumb company wouldn't use perl because there was nobody to sue if there were ever a bug )

    My next that I kept for a couple of years was C++ programming for a large client/server program that would have been easier and better as a web application. I was one of the best if not the best C++ programmers they had but soon I quit because I didn't like working for them.

    With 'full blown programming' credentials on my resume, I got a job programming web/cgi pages in perl - a scripting language. The company was a small linux/perl shop. I learned more about programming there in a month than I learned the entire time I was a C++ programmer. Perl is full of nifty things that make 'real programmers' happy like regular expressions ( HA! finally that class in finite automata/grammars/turing church et al is USEFUL for something. Glad too because the math geek in me loved that class ) Perl is imperative or functional as you desire ( kewl! learning scheme was useful ). It is tied well to unix. Though I had used only AIX for my entire term of employment after college I was actually a unix newbie. It's been said that if unix is War and Piece, then perl is the cliffnotes - so true. That is the place where I really cut my teeth as a programmer - using perl a 'scripting language'.

    Only idiots see this with prejudice. Because it is possible to write quick and dirty perl 'scripts' to do small tasks doesn't mean it isn't possible to write large software with it as well. Those convenient tricks that perl provides are a strength not a weakness. You can follow all the rules of large scale OO project design or you can write a one time use only data migration script. It's a swiss army knife with all the tools you could want built in or in modules but unlike a swiss army knife which becomes bulky and cumbersome when more features are added perl has a very 'ergonomic' grip that is easy and comfortable to use.

    Scheme used to be my favorite language then Java, then C++ but now I like Perl best of all. It's almost everything one could want in a programming language.

    --

    Eat at Joe's.

  452. This has been going on since the beginning... by $$$$$exyGal · · Score: 1

    Since the beginning of time, those with screwdrivers have screwed everything, and those with hammers have hammered everything. The new part? Those with hammers and and screwdrivers are told by their bosses that hammers are easier to maintain, so please use a hammer to knock the screws in. Nobody wants to train someone to turn their wrist when everybody already knows how to swing their arms.

    --
    Very popular slashdot journal for adul