It's a good language, I use it for personal projects.
Name:
Anonymous2013-04-24 12:46
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Name:
Anonymous2013-04-24 12:51
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Name:
Anonymous2013-04-24 12:57
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Name:
Anonymous2013-04-24 13:02
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Name:
Anonymous2013-04-24 13:08
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?
Mail me at jeremiahgoldstein@hotmail.com
25$ a pop
Name:
Anonymous2013-04-24 18:06
>>4
This talk is about why Perl 5 sucks (although Perl 6 became arguably worser, just it's grammar file is about 6500 lines).
- Abominable syntax: Perl's syntax is so non-orthogonal and hideous, it shades all other Perl warts (which are ugly). Perl's grammar isn't context free and can not be reduced to BNF. Perl's parser (perly.y) is 760 lines long (larger than C++ and Haskell), while the lexer (toke.c) is 11000 lines long, which gives a clue how many kludges Perl needs that the parser can't handle itself. Perl grammar is inherently ambiguous, and the resolved by using dodgy look-ahead heuristics. For example, is "print $f +$g" writing the positive value $g to the file $f, or printing ($f+$g) to STDOUT? Is `{ local $a => 1; ... } print "old a=$a"` starts a scope block or a hash? Other example `f / 25 ; # / ; die "oops!";` can parse two different ways: if `f` takes no arguments, then first statement is a division in void context, and the rest of the line is a comment, otherwise it parses as a call to f() with the result of a match operator, then a call to die(). In general, Perl cannot be parsed, because Perl's syntax is undecidable: http://www.perlmonks.org/?node_id=663393
- Broken scoping: Perl doesn't require variables to be declared and just referencing a name introduces a variable, resulting into cluttered global scope and absence of undefined-variable warnings. Although Perl has my and local keywords, they are not enforced, so nobody uses them. All variables have to be prefixed with ugly $ @ % & sigils all time, just to disambiguate in case variable doesn't already hold a value. It is typical to see crazy code, like "my $fh = do {local(*FH);};", which creates a local typeglob named FH and immediately takes it out of scope, returning the now anonymous typeglob. Perl's broken scoping is a fundamental flaw, which cannot be fixed.
- Inconsistent type system: Perl implicitly coerces string to integers, so "123abc"=="123def" and " 123xyz"==123, and even 0.0=="". Sigils everywhere make type system depend on scoping. No OOP encapsulation or overloading: Perl has a mess of unorganized global functions. Most typing mismatches, instead of generating error, return some nonsense value, so void+123 or @x+%y==0 would give you untraceable bug. Finally, Perl has no booleans, so there is no way to discern 0 from false; moreover "" and "0" are false too, but "00" isn't, despite "0"=="00". For some reason void acts as true, but referencing undefined variable returns false. Integers are represented as floating point values, so 99999999999999999999==100000000000000000000.
- Perl is hard to learn, due to non-orthogonality by design: Perl's goal of bundling basic Unix utilities into one language was achieved in haste, ending up producing numerous sublanguages loosely glued together, making Perl look like a deficient Unix clone, where all commands are builtins. Perl implements a lot of standard library on syntax level, making language enormous in size: for example, instead of being a library function, regular expressions are implemented as syntactic construct, allowed at unexpected places, like in "print if /regex/", which also gives no clue what it prints or takes as input. Or take "pos($x) = pos($x)", which does bizarre magic at resetting regex. Other example is ".." operator: "print 1..3" produces a sequence, but "print if 1..3" interpret 1..3 as a range of input lines. Then Perl has a lot of duplication: for example, Perl has `not` operator, but for some reason also includes `!` and `unless`, while keyword `if` is overloaded as infix operator, and don't forger about cryptic if?then:else operator. Having a myriad of these special cases, Perl rejects logic and appeals to humanities and theology students, who love learning random facts by rote memorization, and for whom $_ and <> are perfectly clear, even intuitive. The standard Perl documentation contains over 70,000 lines, add to that all the documentation on CPAN modules, and you face a pretty substantial base of prose just to begin with Perl. "Perl users were unable to write programs more accurately than those using a language designed by chance." -- http://ecs.victoria.ac.nz/twiki/pub/Events/PLATEAU/Program/plateau2011-stefik.pdf
- Perl is inefficient: broken scoping impedes efficient compilation and bad type system hinders any optimization, making Perl agonizingly slow. Aggravating Perl's condition are naive reference counting garbage collector and unparsable syntax, requiring solving halting problem just to parse a Perl source file.
- Perl code is unmaintainable, "clever", unreadable and obfuscated: Perl encourages packing unrelated concepts into a messy one-liner, impeding understanding and modification; TIMTOWTDI-redundancy guarantees style discrepancies, misunderstanding and pointless flame-wars among developers, which is aggravated by the size of the language. Finally, Perl isn't modular: it is common to see Perl script 6000 lines long.
Name:
Anonymous2013-04-24 19:55
>>10
Hey, look, a Lisp hacker down from his mountain.
Name:
Anonymous2013-04-24 20:33
>>10
This is one of the worst versions of these. The Python one was good. The PHP one was good, but this one reeks of desperation and the reasoning behind a lot of what you call shitty are obvious.
Also Perl doesn't require variables to be declared
Every perl programmer worth anything uses strict. Perl is one of the only scripting langauges to get lexical scoping correct.
Name:
Anonymous2013-04-24 20:37
I just started learning perl, and everything that >>10 says seems in direct contradiction, on the surface level, to what is being said in perldoc.
Old or misguided or both or something. Fuck it, I need to learn something new, why not perl?
>>12 Every perl programmer worth anything uses strict.
One language designer "fixed" his language by forking it. No he has two problems.
Perl is one of the only scripting langauges to get lexical scoping correct.
No it doesn't, because strict isn't default. It is like saying C/C++ does memory management right, because you can throw in reference counting through __attribute__((cleanup (scoped))).
Name:
Anonymous2013-04-24 21:14
>>10
Broken scope design arises, when some crook, say Ierusalimsky, does his calculator.cpp undergrad assignment: at some point Ierusalimsky thinks it is a neat idea to have variables, so he implements them using naive hash-table approach, where "x = y" acts as a simple Hash<string,float>.set("x", y); everything works well, while there are just a few vars and a single calculator context, so Ierusalimsky gets high grades from his comp-sci teacher.
Alas Ierusalimsky decides to go big and sell his defective calculator.cpp "language", so he hastily ductapes together for-loops and conditionals, then even gluing subroutines on top and packaging final abomination under a neat title like "Hyper-Text Preprocessor: Enterprise Edition". But suddenly scoping cracks began to show and all the filth leaked out of his neat package! Because you know what? In practice a single calculator context with a few one-letter variables isn't enough, and to describe a general system we need millions of independent calculators, each with its own isolated set of variables, so that an assignment Alice does on her calculator won't affect Bob's calculator, behind his back. And what our "Ierusalimsky" did is called leaky abstraction, because assigning variable on one calculator breaks completely unrelated calculator. Psychiatrist's call it http://en.wikipedia.org/wiki/Schizophasia when different parts of brain clutter each other.
Name:
Anonymous2013-04-24 21:56
No it doesn't, because strict isn't default.
This is a bad argument. The reason strict isn't on by default is because a lot of programmers like to use perl for quick one or two line scripts from their terminal itself. Of course, for actual Perl programs, strict is there for everyone to use.
Perl gives us the tools, just because people don't use them correctly doesn't mean it's a bad language.
Name:
Anonymous2013-04-24 22:02
>>17 people don't use them correctly doesn't mean it's a bad language.
Yeah. Blame the victim.
Befunge is a tool, the fact you can't use it correctly doesn't mean it's a bad language.
When faced with criticism, all Perl apologists spit generic arguments, starting with banal ad-hominem, which speak for themselves: "all languages are turing complete", "languages are just tools", "no language is perfect", "good developers can write good code in any language", "Perl was never intended to solve problem X", "Perl isn't the problem, bad programmers are", "products X was built using Perl, so Perl is good enough", "there are two kinds of languages: the ones complained about and the ones nobody uses", "Perl is free, hosting is available, PHP programmers are cheap", "clients don't care what language is used", "Perl has great community, we are like family", "if you do X then problem Y would be less noticeable", and a myriad of variations. The best examples of Perl apologetics, like https://news.ycombinator.com/item?id=4177516 , contain gems in the lines of "Sometimes you don't care if a function succeeds" - in other words, Perl community doesn't care if their code succeeds.
>>18
What the fuck? All you did was take the php kopipe and s/PHP/Perl/
Looks like I'm done here.
Name:
Anonymous2013-04-24 22:09
Looks like I'm done here.
Please, just fuck off...
Name:
Anonymous2013-04-24 22:15
Please, just fuck off...
Please, just fuck off...
Name:
Anonymous2013-04-24 22:18
I won't.
Spam, shitposts, Mentifex, antisemitism: I like it here.
Name:
Anonymous2013-04-24 22:36
>>22
wow kid ur so fucking edgy
hurr da jews! fuck 'em! im so edgy and dumb i cant even be clever about being edgy
da jooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooos
Name:
Anonymous2013-04-24 22:37
>>17 The reason strict isn't on by default is because a lot of programmers like to use perl for quick one or two line scripts from their terminal itself.
Such programmers should pick APL or J - they look as ugly, but don't waste space on sigils.
Name:
Anonymous2013-04-24 23:01
>>24
Regardless of what the programmers should pick, Perl gives them the tools do it with Perl if they choose.
>>12,15,17,24
You know why >>10,18 is so far winning the argument? You have no counter-argument. Proof it with code, show him how to properly implement his complaints. Better yet, benchmark your implementation with others (i.e. $ time, syntax comparison, etc.) programs, and show him he has no place to talk.
this convinces me otherwise, and many other benchmarks I run: benchmarksgame.alioth.debian.org
>>28
Lol, backwards compatibility and pragmatism of a language does not legitmize technical aptitude, reposibility, or superiority. For spoken/written languages better options are Lojban > Latin > Greek > Esperanto > Korean > Mandarin Chinese. Of course I assume we know why Engrish is still the dominant ``technical language,'' so no need to expand on that.