Slashdot Log In
Do Scripters Suffer Discrimination?
Posted by
timothy
on Mon Feb 24, 2003 03:00 PM
from the oh-the-humaninity dept.
from the oh-the-humaninity dept.
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?"
This discussion has been archived.
No new comments can be posted.
Do Scripters Suffer Discrimination?
|
Log In/Create an Account
| Top
| 1216 comments
(Spill at 50!) | Index Only
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Yes (Score:5, Insightful)
(http://slashdot.org/)
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.
PHP scripting/coding/whatever (Score:5, Informative)
(http://blacknova.net/ | Last Journal: Wednesday March 26 2003, @11:06AM)
Pointing out that Yahoo is now using it as their default language - and that Rasmus (author of PHP) actually was hired by Yahoo as a result is simply dismissed as bad judgement on their part.
It's like arguing religion or politics...
So I just sit back and listen to the tirade - and try not to egg him on...
Re:PHP scripting/coding/whatever (Score:5, Funny)
(http://slashdot.org/ | Last Journal: Thursday November 01, @12:01PM)
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...
Re:PHP scripting/coding/whatever (Score:5, Insightful)
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.
Re:PHP scripting/coding/whatever (Score:5, Interesting)
(http://kavlon.org/ | Last Journal: Friday March 21 2003, @02:10PM)
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.
Re:PHP scripting/coding/whatever (Score:5, Funny)
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.
Re:PHP scripting/coding/whatever (Score:4, Funny)
Re:PHP scripting/coding/whatever (Score:5, Funny)
(Last Journal: Saturday October 08 2005, @03:57AM)
Re:PHP scripting/coding/whatever (Score:4, 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.
Re:PHP scripting/coding/whatever (Score:4, Insightful)
(http://digg.com/)
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.
Re:PHP scripting/coding/whatever (Score:4, Interesting)
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.
Re:PHP scripting/coding/whatever (Score:5, Informative)
It depends on how well you code.
JSPs are translated to Java exactly once, so the performance is equivalent to regular Java servlets. For a good coder and using a modern VM with the run-time optimization, you can get performance reasonably close to what you can get with C.
For one of my clients I built a pretty complex dynamic site. On the generic P733 box I have handy, I can easily pull 20 megabits, even though I've spent almost no time optimizing the site.
The reason you see a lot of slow JSP sites is that Java is the language of choice for large corporate shops. On average, these outfits have many drawbacks:
And that's just getting started. One of my clients had a team of twenty spend two years developing a site that was deployed on $2m in fancy hardware and software licenses. With three top-notch developers, I could have redone the whole thing in four months and run it all on maybe $10k of generic Intel hardware and free software.
Of course, they never would have let me; even if one development manager had taken the risk, the others would have done everything they could to sabotage the project, as it would have made them look bad.
Re:Yes (Score:5, Insightful)
(http://slashdot.org/)
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.
Re:Yes (Score:5, Insightful)
Re:Yes (Score:4, Insightful)
Sure, but (Score:5, Insightful)
(Last Journal: Saturday April 16 2005, @12:17PM)
But ya wanna know what? I *love* scripting. When I'm building a large scale application, I'll often embed a scripting engine, just so that (a) I can modify smaller bits of functionality, without a recompile, and (b) others can do the same.
Heck, often I'll write unit tests in a scripting language, so that I can drop them into a production system in order to test, or do some ad-hoc/on the fly debugging.
Scripting is a type of programming, that to compiled-languaged developers, somehow fails to feel like programming at all. It's often viewed as some sort of "configuration language".
When it boils down to it, I don't know *why* scripting/scripters are discriminated against, it just seems that they are.
Alright, you scripters! Back of the Bus!
Re:Sure, but (Score:5, Informative)
(http://en.wikipedia.org/wiki/User:Khalid_hassani)
His main point is that all the basic infrastructure API and so on, what he calls system programming should be done in compiled language (like C, C++, etc) and offer clean API to applications aprogrammers, because experience shows that people are much more productive in interpreted languages, and you can change much easily. Well, he has has many other points but this the most important I recall.
One of the nice way you could to this is by using SWIG : http://www.swig.org which helps you all your API from many scripting language (Perl, Python, Shell, etc)
You all are missing the biggest thing.. (Score:5, Insightful)
Scripting limits the choices of the developer in terms of licensing. It can cause incompatibilities when the user needs different interpreter versions for different scripts. And god forbid a pointy haired boss accidentally edits the program in ms word and it no longer works. I can just imagine the support phone calls..
Re:You all are missing the biggest thing.. (Score:5, Funny)
(http://www.peer2peerporn.com/)
On the contrary - (Score:5, Insightful)
True, (Score:5, Insightful)
(http://slashdot.org/ | Last Journal: Friday August 20 2004, @12:38PM)
Legitimate concern (Score:5, Insightful)
(Last Journal: Sunday October 03 2004, @04:03AM)
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.
I disagree 100% (Score:5, Insightful)
(Last Journal: Monday November 27 2006, @04:43PM)
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.
Re:I disagree 100% (Score:5, Insightful)
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.
Re:I disagree 100% (Score:5, Insightful)
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.
Re:I disagree 100% (Score:5, Informative)
Maybe not quite true for Perl, but for Python, this is an understatement.
I've never seen code written in any low-level lanugage, much less in Java (!) that was half as readable as the equivalent code written in python
The only real disadvantage of interpreted/scripting languages is raw power. They are just a greater abstraction from pure machine code than lower level languages like C, etc., which are themselves abstractions from that machine code.
Re:Legitimate concern (Score:5, Funny)
(Last Journal: Saturday October 27, @04:36PM)
Isn't that the core philosophy of Microsoft's Windows Update service?
I'm curious (Score:5, Funny)
(Last Journal: Monday April 25 2005, @07:47PM)
Re:On the contrary - (Score:5, Insightful)
I beg to differ. Consider a program script that sits on a web server and does something reasonably complicated for each person that hits the server.
Now consider that said program runs
Now consider that the website gets 100,000 hits a week. Thats almost 14 hours a week wasted. So we're up to almost 60 hours a month. How much time did you save using perl instead of C?
Re:On the contrary - (Score:5, Insightful)
(http://www.generosity.org/stoner/)
Re:On the contrary - (Score:5, Insightful)
(http://slashdot.org/)
Re:On the contrary - (Score:5, Insightful)
(http://www.klio.org/mlk/)
Flip side (Score:3, Funny)
(Last Journal: Monday October 22, @04:01PM)
Re:Flip side (Score:5, Insightful)
Re:Flip side (Score:4, Insightful)
(http://lacqui.com/ | Last Journal: Thursday May 17 2007, @10:38AM)
Re:Flip side (Score:5, Insightful)
(http://slashdot.org/)
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.
Re:Flip side (Score:5, Funny)
(http://slashdot.org/)
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.
Re:Flip side (Score:5, Funny)
(http://nugnug.com/)
Interesting definition. My distinction has always been that if I can fuck up memory, then I'm programming. Otherwise I'm scripting.
--Richard
I once heard (Score:4, Interesting)
(http://www.kaillera....topic=1743&forum=5&0 | Last Journal: Tuesday August 10 2004, @02:43PM)
IT's called a standard (Score:5, Insightful)
(http://www.tschopp.net/)
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
Re:IT's called a standard (Score:5, Interesting)
(http://slashdot.org/)
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".
Don't blame the intern! (Score:5, Insightful)
(http://www.kompas-media.nl/)
I agree, but... (Score:5, Interesting)
(http://noseserver.caltech.edu/~sisk)
This is why I use VB and ASP. (Score:4, Funny)
(http://www.soonersports.com/ | Last Journal: Thursday March 13 2003, @03:39PM)
Nevermind I just forgot my point...
my belief (Score:5, Interesting)
(http://theunfunnytruth.ytmnd.com/)
Re:my belief (Score:5, Insightful)
(http://slashdot.org/)
A better definition (Score:4, Interesting)
(http://autopr0n.com/ | Last Journal: Saturday August 06 2005, @01:30AM)
Never had that problem (Score:3, Interesting)
(http://lacqui.com/ | Last Journal: Thursday May 17 2007, @10:38AM)
Wrong Person, Not Language (Score:5, Interesting)
(http://www.bengarvey.com/)
Re:Wrong Person, Not Language (Score:5, Insightful)
(http://lacqui.com/ | Last Journal: Thursday May 17 2007, @10:38AM)
Re:Wrong Person, Not Language (Score:4, Insightful)
(http://theunfunnytruth.ytmnd.com/)
Re:Wrong Person, Not Language (Score:5, Insightful)
(http://soliddesign.net/)
On the other hand I've worked in companies that could grok any language. We even made them up when we needed to.
Joe
Mountains and molehills.. (Score:5, Insightful)
(Last Journal: Monday December 06 2004, @10:11AM)
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.
Re:Mountains and molehills.. (Score:5, Insightful)
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.
Re:Mountains and molehills.. (Python apologia) (Score:5, Interesting)
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.
Re:Mountains and molehills.. (Python apologia) (Score:5, Funny)
(http://parliboy.com/diner)
If those 30 developers can't decipher all of 10 lines of python (or any language) it's time to get some new developers.
vs programing? (Score:3, Insightful)
Scripting vs Programming (Score:3, Insightful)
(http://skwirl.net/)
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?"
Not Quite (Score:4, Funny)
(http://lpetr.org/ | Last Journal: Wednesday February 07 2007, @11:02AM)
Absolutely. (Score:5, Interesting)
(http://slashdot.org/)
Use BOTH! (Score:5, Insightful)
(http://slashdot.org/~wowbagger/journal/87552 | Last Journal: Monday September 03, @08:07PM)
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.
All in how you say it. (Score:5, Funny)
(http://www.grub.net/blog/index.html | Last Journal: Wednesday June 27, @08:48AM)
"I am good at scripting." == lame.
"ph34r my l337 skr197x0r sk1llz, f44g0rz." == cool.
Hardware is so fast and cheap... (Score:3, Insightful)
(Last Journal: Thursday March 31 2005, @02:40PM)
Blame the dot-com goldrush... (Score:5, Interesting)
(http://codemines.blogspot.com/ | Last Journal: Tuesday March 28 2006, @06:33PM)
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
Re:Blame the dot-com goldrush... (Score:4, Insightful)
(Last Journal: Saturday January 06 2007, @01:13AM)
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
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.
A rose by any other name (Score:5, Insightful)
(http://watson-wilson.ca/)
Certainly (Score:5, Insightful)
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.
Re:Certainly not (Score:4, Informative)
Wow, such a complete misunderstanding of CSS... CSS is intended to separate content from presentation. That's it. It has nothing to do with Flash or "exciting animated graphical effects".
It's unfortunate that CSS is so misunderstood, as it is really a quite elegant model for web presentation.
Re:PSST (Score:5, Insightful)
(http://trolltalk.com/ | Last Journal: Saturday November 24, @08:16AM)
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.
It's about stability (Score:5, Insightful)
(http://www.joeandmonkey.com/ | Last Journal: Friday March 21 2003, @03:44PM)
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.
Re:Oh please! (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"?
I guess I am biased against scripters as well... (Score:5, Insightful)
(http://www.wiizy.com/)
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...
There are no scripters. (Score:4, Funny)
(Last Journal: Thursday September 27, @01:43PM)
There's no such thing as a 'scripter;' there are merely those who use just-in-time or per-execution compilers.
Does the end user know the difference? (Score:5, Funny)
20 system "start iexplore -k http://localhost/index.php"
30 goto 10
40 profit
Re:Does the end user know the difference? (Score:4, Funny)
(http://oralse.cx/)
How true
Programmers vs amateurs? (Score:3, Interesting)
my $0.02
weeks vs. hours (Score:5, 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.
Happens all the time (Score:5, Insightful)
(http://farnorthracing.com/ | Last Journal: Saturday July 21, @10:50AM)
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
Re:weeks vs. hours (Score:4, Insightful)
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...
It's all about the gory details (Score:3, Insightful)
(http://www.g4tv.com/~CySurflex)
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.
There really is a difference (Score:5, Insightful)
(http://dresese.thehyatts.net/)
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".
Scripter Discrimination.... (Score:3, Interesting)
(http://kuparuk.blogspot.com/)
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....
scripting "cowboys" (Score:5, Insightful)
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...
Oh Hell Yes!!!! (Score:4, 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!
The Question is Discriminatory (Score:5, Insightful)
Many (not all) programmers will analyze the problem, design a solution, perhaps have their design checked, implement it, and run some tests. This is based on education, experience, and the requirements for programming, but they will do this EVEN WHEN SCRIPTING.
Many (not all) scripters who aren't programmers will simply start writing the code. Lots of iterations. No formal design. Very quick to first test, but not nearly as likely to be the right solution the first time.
The typical result is that the same problem, solved by a script, will often work better and solve the problem completely sooner coming from a programmer than from a scripting non-programmer.
Typically I would expect management to be asking only scripters with exceptional track records at the same time as they ask the programmers. Because management isn't interested in which tool was used to solve the problem, or even in minimizing cost of solving the problem. Management is interested in solving it once and having the solution work. If that means using a developer who implements overkill at double the initial cost, but with much lower ongoing support and revisiting costs, that's fine.
The best (Score:3, Insightful)
(http://theboolean.blogspot.com/)
But regardless of what solution you choose, document. Even one-liners.
Equal Opportunity? (Score:4, Funny)
Just hope you get a geek judge who sees no difference between human and computer languages
The right tool for the right job, and maintenence. (Score:4, Interesting)
(http://www.slightlymad.net/)
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.
Hammers and nails (Score:3, Interesting)
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.
Since you ask... (Score:3, Interesting)
(http://slashdot.org/)
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.
Law of leaky abstractions (Score:5, Insightful)
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...
Yes, scripters get short shrift (Score:5, Insightful)
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.
Standards (Score:3, Insightful)
(Last Journal: Sunday November 03 2002, @01:58PM)
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.
Do Scripters Suffer Discrimination? (Score:5, Funny)
(http://www.smarter-i...er/web_developer.asp)
What is the difference? (Score:4, Funny)
(http://payloadz.com/ | Last Journal: Tuesday February 18 2003, @01:44PM)
That means I'll have to chnage my business cards
Seriously, what is the difference? Depth of the manguage? I don't know.
System Administrators and a scripting culture... (Score:5, Interesting)
(Last Journal: Wednesday January 05 2005, @01:10PM)
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!
Scripting Is Becoming Programming (Score:3, Interesting)
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?
Caveat to the Small Fish (Score:5, Insightful)
(http://www.nathanpralle.com/blog/ | Last Journal: Wednesday August 14 2002, @11:47AM)
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.
Nope (Score:3, Insightful)
When I have to write something in C it's just never as easy or bug free.
sh + sed vs. Java (Score:4, Insightful)
(http://www.lp.org/)
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.
"Executive-level" management (Score:3, Insightful)
The way out: "Prototyping Language" (Score:3, Insightful)
(http://www-oss.fnal.gov/~mengel | Last Journal: Monday August 30 2004, @05:02PM)
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.
Government Contracts (Score:5, Interesting)
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.
It's not entirely unreasonable (Score:5, Informative)
However, the main reason I see for preferring C++ for long-lived projects is one that has not been mentioned here: the stability of the language specification. The specification of C++ is extremely thorough, and changes glacially slowly. That's a big advantage for software that will have a long life. Remember, folks, that the main work that programmers do is not developing code. It's maintaining code. I've only ever used Perl 5.x; I'd hate to have to maintain something written in an earlier version that didn't have references. And in a year or so, I wonder how someone who started with Perl 6 will like MY code
All languages have this problem but C++ has it much less than Perl.
As for the boundary between "real" programming languages and the wannabes: for me, the test is whether it's well enough specified that you can determine from reading the language spec whether a piece of code is valid, and if so, what it does. Perl passes this test. (well, 99%). Others, Ruby for example, don't. For this reason, I regard Ruby as a waste of time. But I'm very results-oriented. If you have a more playful disposition, YMMV.
Actually the right way is to use both languages (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
Technology choices are seldom rational (Score:5, Insightful)
(http://www.ancar.org/)
After all, if technology selection was rational, everyone would be using Lisp or Smalltalk.
The problem isn't scripters (Score:3, Insightful)
(http://freefall.homeip.net/)
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...
Supportability (Score:5, Informative)
Guys...cant we work this out? (Score:3, Insightful)
Here're my tips to keep both sides productive and respecting each other:
The Difference (Score:3, Interesting)
(http://www.hotpop.com/)
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.
Wtf is a 'scripter'? (Score:5, Insightful)
(http://autopr0n.com/ | Last Journal: Saturday August 06 2005, @01:30AM)
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.
The race is not always to the swift... (Score:4, Insightful)
(http://www.kali-tai.net/)
Dickerson wrote:
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.
HEY! Who has the Authority here? (Score:3, Insightful)
Leave the technical decisions to those most closely coupled to the technical problem. Perhaps a few companies should learn a bit from Demming.
C//
God is in the chip tracings (Score:5, Funny)
(Last Journal: Thursday February 27 2003, @03:22PM)
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.
Engineering. (Score:3, Insightful)
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.
Languages are just tools people! (Score:3, Insightful)
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.
doubt this is true: (Score:3, Insightful)
(http://slashdot.org/ | Last Journal: Thursday February 21 2002, @04:37PM)
If it is, they need to get some different C++/Java programmers.
Future Reality of Software (Score:4, Insightful)
(http://www.aesgi.com/)
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
Because the word "script" is too lightweight. (Score:3, Insightful)
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
Scripting vs. Programming (Score:4, Interesting)
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.
Real values vs marketing clout (Score:3, Insightful)
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.
It's inevitable (Score:3, Insightful)
(http://slashdot.org/ | Last Journal: Tuesday July 24, @05:09PM)
Scripters vs. Programmers (Score:3, Interesting)
(http://lbpp.sourceforge.net/ | Last Journal: Tuesday October 23 2001, @07:14PM)
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.
Re:Right tool for the job (Score:5, Insightful)
(http://www.scorchingbeauty.com/)
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?
Re:Solution (Score:4, Funny)
(http://trolltalk.com/ | Last Journal: Saturday November 24, @08:16AM)
Re:Script kiddies should be fired (Score:3, Insightful)
On the other hand,
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
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.