Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Which ones? I suppose then there are also 1000 line Perl applications that can be replaced with 15 lines of Java. There are enough bad programmers out there...


Admin wise, I find a lot of 20 line Perl applications can be replaced with bash scripts. Most Perl developers seem to think Bash is Bourne shell, and don't know how to use functions or arrays. It's unfortunately pretty common to see 20 lines of Perl invoked to do things like check a network port is listening, around 2 lines of Bash.


Doesn't it take 10 lines to say "Hello World" in Java.


You were probably exaggerating, but for reference:

    public class hello {
    	public static void main(String args[]) {
    		System.out.println("Hello World");
    	}
    }
Also, I interviewed with a large company that shall remain nameless (probably not who you would expect), and one of the interviewers mentioned that their build system was a MILLION lines of Perl...


Yes, I am exaggerating. I would call this three lines. As there are 3 constructs here.

A million lines of Perl, was maintaining that part of the job description?


Yes, the position was for the build team, so I assume maintaining that beast was part of the job.


Must be HP then?


Why is that always the first point of comparison? Why does it matter how much shorter hello, world is in Lisp (or Python, Ruby, etc) vs Java?


Hello world shows how much boilerplate is required before you can print a message to stdout. It's one of several important factors for any language you might use for quick and dirty throwaway programs. You want it to be two tokens only - the name of the print function and the string to be printed.


ah, quick and dirty throw away programs. Personally I think writing output to the console should be harder (but I'll save that for later). I'd like to see more sane comparisons, like: making a TCP connection, making a web request, encrypting and decrypting a string, computing base64, md5, etc.

And in Python, print "hello, world" is bad form. It would be proper to write (news.YC is omitting some newlines below)

def main(): print "hello, world"

if __name__ == "__main__": main()


well we don't have to do that. Though this isn't the same test as what you propose. This guy has compared many different web frameworks. http://video.google.com/videoplay?docid=6297126166376226181

I think the reason the LOC count is significant is because it means that there is less code for one to look through to figure out what is going on. Fewer lines imply that the solution has high level abstractions. Each one of the examples you mentioned is one construct in lisp (if you use libraries).


I think thats a bit of a fallacy (and I also think this guys video is a bit of a waste of time...).

More abstractions can be nice, but don't mistake it for less code. Its still code somewhere, and that can lead to much more subtle and hard to find problems if you don't understand exactly what's going on. Of course, some environments are bigger culprits than others, but its something to keep in mind.


well, a big difference in total LOC might be significant, but that's slightly different claim than saying that a difference in LOC for "hello, world" has any importance.

The reason you can get by with a shorter hello world program in most dynamic languages is because you're doing it in the "module" definition, which I think is not proper form in any non trivial programs. So any differences in LOC for hello world really mean nothing over the course of a real application.


Depends on the formatting - you can write it in one line without any problems whatsoever.


Things that perl was designed for...extracting text from other text. The Mechanize library helps.


I googled for it, but I only found a "Mechanize" library for Ruby. What does it do?

I actually like the way regular expressions are being handled in Java. The only problem is that "\" has to be escaped in Java Strings, so the regex patterns tend to have a lot of slashes.


http://www.google.com/search?q=Mechanize+perl

Screen scraping. I don't have any major problems with Java--it's just that it lends itself to serious over-engineering. Maybe that has more to do with business culture.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: